Domino - Lotus Sandbox

Download Report

Transcript Domino - Lotus Sandbox

®
AD201
Lotus Domino, Websphere Portal,
and Lotus Workplace Integration
(Part 1)
George Langlais, Project Leader
Domino Programmability Team
AD201 – AD204: Lotus Domino, Websphere
Portal, and Lotus Workplace Integration
Session
AD201
AD202
AD203
AD204
3
Topics
Monday 3:15 – 4:30
Dolphin Southern I and II
Domino integration features
and an overview of AD20x series
Monday 5:00 – 6:15
Dolphin Southern I and II
Non-programming components:
Prebuilt portlets, DWAP, and Portlet
Builder for Domino
Tuesday 8:30 – 9:45
Dolphin Southern I and II
The Domino Toolkit:
Creating Domino JSPs using
the Domino JSP tag library
Tuesday 10:30 – 11:45
Dolphin Southern I and II
Portal Java programming concepts
and integrating Domino into your
Portal programs
Agenda
 Domino Integration Features
 Brief overview of Domino programmability
Domino
oriented
 Domino connectivity features
• The HTTP task
• The Domino server program and NRPC
• The DIIOP task and remote Java
 DXL and XML
 Overview of the rest of the AD20x series
 AD202 - Integration “without programming”
WebSphere
oriented
4
 AD203 - The Domino Toolkit
 AD204 - Using Domino into WAS, Portal, and Lotus WP Java apps
• Lots of tips and techniques
Many More Sessions Relevant To Domino Integration
 Strategy sessions
STR101
STR102
Introduction to IBM Lotus Workplace (R2)
Lotus Workplace Application Development Strategy (R2)
 Application Development and Best Practices sessions
AD402
BP113
AD308
AD205
BP121
AD206
WebSphere Studio for Lotus Domino Developers
Extending Lotus Domino to WebSphere Portal and Lotus WP
Introducing the Lotus Workplace API
Web Services and Lotus Domino
IBM Lotus Domino + IBM WebSphere Integrated Applications
DXL as a Lotus Domino Integration Tool
 Birds-of-a-Feather (BoF) sessions
BOF201
BOF209
BOF203
5
Lotus Domino Programmability
Portalizing Lotus Domino Applications
Lotus Domino JSP Tag Library
Why Is Integration With Domino Important?
 Each cornerstone Lotus product fulfills distinct customer needs
 Domino - Established, well-known app development and messaging system
 Portal - Innovative way to integrate apps running on a variety of systems
 Workplace – Build vertically-integrated, collaborating apps on a portal base
 “Blended” Domino / Portal / Workplace apps will be very common
 The appdev mix is based on a customer’s specific business needs
• Varies from customer to customer
• Will vary over time
 Domino plays a long-term role in our plans
 Will be providing enhancements, new tools, etc. for years and years to come
 We are committed to preserving and enhancing your Domino investment
6
Making Everything Work Well Together
 Each of the cornerstone
Lotus-brand products fulfills
distinct and important
customer needs
Workplace
 Enhancing them to work
well together amplifies
their individual benefits
Domino
Portal
7
Domino
Integration
Features
8
Some Symbols Used In Today’s Presentation
 These reflect the common 3-level architecture used by every
Notes/Domino program
Notes
A Notes Client
A Domino Designer
A Domino Server
9
Designer
s h
v t
r t
p
d
i
i
o
p
a
m
g
r
r
e …
p
l
System Integrators
 Use any and all programmability features to create, enhance,
and/or connect to Domino apps
non-Domino system
HTTP
browser
HTTP
NRPC
Notes
NRPC
N/D app user
modify
design
IIOP
1
Designer
extend
Domino
10
NRPC
2
s h
v t
r t
p
d
i
i
o
p
a
m
g
r
r
e …
p
l
HTML or XML
based program
C/C++, VB,
“local” Java
N
C
S
O
3
add
server
tasks
Notes/Domino
applications
“remote”
Java
program
4
5
6
connect
to
Domino
Connecting To Domino From An External System
 Three current options
URLs over HTTP
non-Domino system
C, C++, VB, or “local” Java
using NRPC
HTTP
“Remote” Java using IIOP
NRPC
IIOP
HTML or XML
based program
C/C++, VB,
“local” Java
N
C
S
O
d
s h i a r
v t i m e …
r t o g p
p p r l
Notes/Domino
applications
11
“remote”
Java
program
4
5
6
connect
to
Domino
Integrating Domino With Other Products
1 Use the Domino Designer
To extend and integrate new features into existing Domino applications
2/3 Use the CAPI and its Extension Manager
To add your own server tasks and to enhance the behavior of a Domino server
4 Use a program that interfaces with Domino’s HTTP task
To get Domino data back as HTML or XML and to invoke Domino application agents
5 Use a locally-installed Notes client or Domino server to use NRPC
To have C/C++, VB, and Java programs work with remote Domino apps via NRPC
6 Use NCSO.jar and Domino’s DIIOP task
To have your Java programs work with remote Domino apps without having to have a
locally-installed copy of the Notes client or the Domino server
12
Connecting To Domino
Domino’s
HTTP Task
13
Domino’s HTTP Task
 Send URLs over
HTTP to Domino’s
HTTP task
non-Domino system
HTTP
 Receive HTML
pages or XML,
depending on the
URL command
NRPC
IIOP
HTML or XML
based program
C/C++, VB,
“local” Java
N
C
S
O
d
s h i a r
v t i m e …
r t o g p
p p r l
Notes/Domino
applications
14
“remote”
Java
program
A Server-side Implementation Of The Notes Client
 A web browser provides the user interface
 URL commands with arguments are sent by the browser to Domino
 Domino returns a page of HTML
 Can emulate much of what the “rich” Notes Client can do
 But still limited by browser limitations and server latency
 Have introduced web-oriented design elements to help close the gap
 Most useful command for integration – ReadViewEntries
 Returns view entries as XML
 In many cases this is more convenient and useful than using the Java
backend classes
 We are investigating putting ReadViewEntries into the other APIs
15
Portal Integration Uses Domino HTTP In Two Ways
 Run existing Domino web applications
 Some issues to resolve, but we have a roadmap to resolve them
• Domino Web Application Portlet (DWAP)
• More about DWAP later in the presentation
 Get view data via the ReadViewEntries command
 Used by the Lotus Collaborative Components API
16
Connecting To Domino
NRPC
Notes Remote
Procedure Calls
17
NRPC – Notes Remote Procedure Calls
 Standalone C, C++,
VB, and Java
programs call APIs
of locally-installed
Domino function
libraries
 Domino, in turn,
uses NRPC to call
the equivalent
service on a remote
Domino server
non-Domino system
HTTP
NRPC
IIOP
HTML or XML
based program
C/C++, VB,
“local” Java
N
C
S
O
d
s h i a r
v t i m e …
r t o g p
p p r l
Notes/Domino
applications
18
“remote”
Java
program
Clients and Servers Both Use The Same
3-level Software Architecture
Notes Clients
Domino
Servers
network
19
1
Program
level
Notes Client
Domino Designer
Domino Administrator
Domino Server
and server tasks
2
NOS level
Notes Object Services
Notes Object Services
3
File level
Local databases
Local files
network
Shared databases
Local files
A Common 3-level Architecture
C/C++
code
Programs that create,
use, and/or interpret
Notes/Domino
applications
Programs:
Notes, Domino Designer,
Domino Server, etc
function calls
Notes Object Services
data
design notes,
admin notes,
documents
20
Notes/Domino
applications
Core N/D service software:
Notes Storage Facility (NSF),
Notes Index Facility (NIF),
NRPC Client, etc.
Portable, shareable,
replicateable, secure,
document-oriented
local databases
Notes Remote Procedure Calls (NRPC)
 For accessing NOS services running on remote servers
 NRPC "client request" logic is in NOS
 NRPC "server response" logic runs only on the server
 Programming is no different whether service is local or remote
NRPC server
Any Program Using NOS
NOS
NSF
NRPC Client
NOS
NSF
NRPC Client
NOS Portability Layer
NOS Portability Layer
Operating System
Operating System
Notes Client or Domino Server
21
Domino Server Program
Domino Server
The “Local” Programmability Stack (LPS)
 Provides linkage to a local copy of NOS via various computer languages
 You need to have Notes or Domino installed on the computer
you write
programs in
these
languages
Formula
program
the local
programmability
stack
interfaces
to NOS
Formula
Engine
Formulas
LotusScript
program
Java
program
VB
program
LotusScript
Engine
JVM *
COM *
LSX-BE
notes.jar
COM-BE
Backend Classes
Notes Object Services
* not built by Lotus
22
C or C++
program
C API
Logic Outside of Notes/Domino Designs
 Java, Visual Basic, C, and C++
used by N/D integrators
used by N/D app developers
Formula
program
Formula
Engine
LotusScript
program
Java
program
VB
program
LotusScript
Engine
JVM
COM
LSX-BE
Formulas
notes.jar
COM-BE
Backend Classes
Notes Object Services
23
C or C++
program
C API
Using NRPC From An External System
 Install the Notes Client or Domino Server on the system
 This is just to get NOS’ dynamic link libraries onto the system so that
your program can call into them
 You do not actually need to run Domino or Notes, just install it
 Works well in small standalone or client-like applications
 Gives standalone C, C++, Java, and VB programs a way to integrate
Domino data into their applications
 Can be problematic when used by complex server systems
 It is like having two servers run in the same process space
• Servers often assume the can use all available resources, so
there may be conflicts over memory usage, signal handlers, etc.
 WAS applications will experience problems running Domino locally
24
Connecting To Domino
Remote Java
Domino’s DIIOP Task
25
DIIOP – What Is It?
 Common Object Request Broker Architecture (CORBA)
 It’s a specification and not a product
 Controlled by OMG consortium (Object Management Group)
 Main purpose
• Allow objects on servers invoked remotely by Clients
• Data transfer between Object Oriented systems
 CORBA’s Internet Inter-Orb Protocol (IIOP)
 Defines how Orbs talk across the wire to each other
 DIIOP is Domino’s implementation of IIOP
 Provides a platform-independent industry-standard way for Java
programs to access Domino backend objects across a network
26
Local Versus Remote Java
 One Domino Java API, two implementations
 Use Notes.jar to link to a local copy of Domino backend classes
 Use NCSO.jar (Notes Client Side Objects) coupled with DIIOP to
give your Java programs access to remote Domino backend classes
Non-Domino system
Java program
remote
access
NCSO.jar
Your Java program interfaces
to a different jar file for
remote vs. local access
to Domino databases
Domino system
DIIOP
task
Java program
notes.jar
Backend Classes
Notes Object Services (NOS)
Domino databases
27
local
access
DIIOP And Domino-WAS Integration
 The primary way for Java programs in WAS to access Domino
 Useful for Websphere apps leveraging Domino data using JSP tags
 Needed for Portal applications using Domino infrastructure
 We’ve made many improvements to DIIOP in Domino 6.0x
 6.0 removed the need to run HTTP task in order to get the IOR
• Running HTTP was a concern for some users
 Significantly improved scaleability and removed many performance
bottlenecks
 More improvements planned for 7.0x and beyond
 We will address session timeout issue in the next release
 We are investigating removing more performance bottlenecks
28
Integrating With Domino
DXL
A new integration option
29
Domino XML Language (DXL)
 Domino content represented as XML
 Tags and attributes for Domino databases, documents, design
elements, fields (text, numbers, richtext, …), etc.
 Can export DXL from Domino and import DXL to Domino
 A powerful new way to manipulate Domino content using XML
 Nearly all Domino content is available, not just those objects
available through the traditional APIs
• Goal is to represent 100% of Domino data as DXL
 Available now
 Available in CAPI and LotusScript since N/D 6.0
 Available in VB, local Java, and remote Java since N/D 6.5
• Various Lotus Portal and Workplace apps are just now starting to
use DXL to integrate with Domino data
 Investigating adding a ReadDXL URL command for the HTTP task
30
XML And DXL – What can you do with it in Domino
 Import any XML to Domino
books.xml
DXL
XSL
Transformer
DXL
Importer
books. nsf
XSL
Transformer
books. xml
 Export Domino Data to any XML
books.nsf
31
DXL
Exporter
DXL
XML – What can you do with it in Domino
 Publish Domino Data to PDF
books.nsf
DXL
Exporter
DXL
XSL
Transformer
FO
FO to PDF
Composer
books. pdf
 Publish Domino data to HTML
books.nsf
32
DXL
Exporter
DXL
XSL
Transformer
HTML
books. html
Overview of
the rest of the
AD20x series
33
Application Platforms Of Interest
 Domino
 The Lotus Workplace / Portal / WAS stack
 Can do application development at each platform layer
 Apps at higher layers can use the facilities of all lower layers
34
Lotus
Workplace
Workplace
applications
Websphere
Portal
Portal
applications
Websphere
Application
Server
WebSphere
applications
Domino
Server
Domino
applications
Connecting To Domino Applications
 Three potential options
 NRPC, “remote” Java over IIOP, URLs over HTTP
Lotus
Workplace
35
Workplace
applications
Websphere
Portal
Portal
applications
Websphere
Application
Server
WebSphere
applications
URLs
over HTTP
Remote Java
over IIOP
NRPC
Domino
Server
Connecting The WAS Stack To Domino Applications
 Current APIs of choice
 Available -- “Remote” Java over IIOP and URLs over HTTP
 Unavailable – NRPC, due to Domino-WAS software conflicts
Lotus
Workplace
36
Workplace
applications
Websphere
Portal
Portal
applications
Websphere
Application
Server
WebSphere
applications
URLs
over HTTP
Remote Java
over IIOP
NRPC
Domino
Server
The other AD20x Sessions Explain the Following …
AD201
Lotus
Workplace
Workplace
applications
AD202
URLs
over HTTP
Websphere
Portal
Websphere
Application
Server
Prebuilt Portlets
Domino
Server
DWAP
Portlet Builder
Remote Java
over IIOP
JSPs
AD203
37
The other AD20x Sessions Explain the Following …
AD204
Lotus
Workplace
Workplace
applications
URLs
over HTTP
Websphere
Portal
Websphere
Application
Server
38
Any portlet
connecting to
Domino
Domino
Server
Remote Java
over IIOP
JSPs
Lotus Workplace Architecture
Messaging
Team Collaboration
Applications
Learning
Custom…
E-Meetings
Document Lib
Mail
Learning
Chat
Discussions
Calendar
…
 Components 
Infrastructure
Administration
Customization
User Interface
Install
Collaborative Context
Content Mgt
People
Security
Communities
Off-line
Workflow
…
WebSphere Portal
WebSphere Application Server
39
Lotus Workplace 2.0 API Overview
 Designed for developers who want to extend the Lotus Workplace
platform with new portlets or business components
 2 styles of API to begin
 Access APIs
• provide Lotus Workplace business component APIs (i.e. sendMail…)
 Business component service API interfaces
• how to build a new business component
 Delivered in a Workplace Toolkit
 Java and Web Service interfaces
 Documentation and Samples
 Primary tool = WebSphere Studio
40
Lotus Workplace 2.0 API Object Model:
Business Component Data Objects
 Calendar
Calendar
CalendarEntry
CalendarRetrievalOptions
Participant
 Discussion
DiscussionCategory
DiscussionDocument
DiscussionForum
DiscussionRepository
DiscussionTopic
 Document
Document
DocumentFolder
DocumentProject
41
 Learning
Booking
CatalogEntry
Course
Curriculum
Enrollment
LearningCalendarEntry
LearningUser
Location
Offering
Profile
ProfileCategory
Results
Room
UserPreferences
Lotus Workplace 2.0 API Object Model:
Business Component Data Objects
 Mailbox
MailAttachment
PersonalContact
Mailbox
PersonalDirectory
MailFolder
PersonalGroup
MailMessage
SendOptions
 Meeting
Meeting
42
 PersonalDirectory
 Teamspace
TeamSpace
AD201 – AD204: Lotus Domino, Websphere
Portal, and Lotus Workplace Integration
Session
AD201
AD202
AD203
AD204
43
Topics
Monday 3:15 – 4:30
Dolphin Southern I and II
Domino integration features
and an overview of AD20x series
Monday 5:00 – 6:15
Dolphin Southern I and II
Non-programming components:
Prebuilt portlets, DWAP, and Portlet
Builder for Domino
Tuesday 8:30 – 9:45
Dolphin Southern I and II
The Domino Toolkit:
Creating Domino JSPs using
the Domino JSP tag library
Tuesday 10:30 – 11:45
Dolphin Southern I and II
Portal Java programming concepts
and integrating Domino into your
Portal programs
AD202 – Portlets Without Programming
 Prebuilt portlets
 Lotus Notes Components
• Portlets prebuilt by Lotus for accessing Domino batabases
• Supported by the LCCAPI
 Helper components
 Other prebuilt components
 DWAP - The Domino Web Application Portlet
 Allows Domino web apps to run as portlets
• Converts Domino HTML to Portal-friendly HTML
 The Domino Portlet Builder
 A portal-based tool for making custom-built portlets that access
Domino databases
44
Prebuilt Portlets
Provide Access to Information and Apps
 Fundamental building blocks for WebSphere Portal and
Lotus Workplace
 Provide a window into application content and actions
 Dynamically deployed to the server
 Support multiple viewing modes and markup
Portlet for
Notes
Helpdesk
application
45
Where to get portlets…Portal Catalog
 In the box
 On the web
 Build your own
46
DWAP Resolves Issues
Running Existing Web Applications Well As Portlets
 Reverse proxy issue
 The Portal Server is an example of a reverse proxy server
• All request from outside the enterprise should funnel through it
and none should directly access backend systems
• Most existing web apps, including Domino web apps, prepare
browser pages with HTML links directly back to themselves
− This is especially hard to detect when there is Javascript in
the page that generates links dynamically on the browser
 HTML table issues
 The Portal Server uses HTML tables to layout portlets in a page
• Namespace collisions can occur when combining HTML from
different backend systems that do not know about each other
• Many existing web apps generate tags not allowed in table cells
− Some examples: HEAD, FRAME, FRAMESET, etc.
47
Domino Web Application Portlet
Coming in Domino 6.5.1, Q1 2004
 Designed to allow Domino web apps to be surfaced in a
LWP/Portal environment
 Delivered as iframe first, web clipper in later releases
 A low cost and more efficient way to resolve issues rather than using
additional reverse-proxy servers and iframes
 Implements a reverse-proxy portlet
 DWAP uses a set of rules to map Domino generated URLs to
Workplace/Portal such that all requests are channeled through Portal
 This new technology will eventually become part of the Portal core
 Security features
 SSO – supports SSO between Workplace/Portal and Domino
 SSL – supportS secure transfer of data between Workplace/Portal and
Domino
48
Domino Web Application Portlet – View mode
After Hrs
49
Portlets and Portlet Builders
 Out-of-the-box portlets
 Portlets can be installed and used
immediately.
 Faster development
 Business power users create portlets
through the portal UI
 Access to SAP, PeopleSoft, JDBC,
Domino, Siebel
 Fast execution
 Portlets use connectors to access
application through application's own
native interface.
 UI flexibility
 Look and feel of portlet can be
customized.
 Takes advantage of front-end
integration portal technology like Click
to Action and People Awareness
50
Portlet Builder for Domino
 A portlet to build Domino portlets
Simple Web interface to create portlets that access / manipulate data
in Domino
No programming required
Views and documents
Basic create, edit, delete operations
51
Completed Portlet from Portlet Builder
View Switcher
Create New Doc
Search
Read Doc
View
52
AD201 – AD204: Lotus Domino, Websphere
Portal, and Lotus Workplace Integration
Session
AD201
AD202
AD203
AD204
53
Topics
Monday 3:15 – 4:30
Dolphin Southern I and II
Domino integration features
and an overview of AD20x series
Monday 5:00 – 6:15
Dolphin Southern I and II
Non-programming components:
Prebuilt portlets, DWAP, and Portlet
Builder for Domino
Tuesday 8:30 – 9:45
Dolphin Southern I and II
The Domino Toolkit:
Creating Domino JSPs using
the Domino JSP tag library
Tuesday 10:30 – 11:45
Dolphin Southern I and II
Portal Java programming concepts
and integrating Domino into your
Portal programs
Domino Toolkit 1.1 for WebSphere Studio
 Designed to assist developers in using Lotus Domino 6
custom JSP tags.
 Version 1.0 of the toolkit shipped with Domino Designer 6.0.2
 Version 1.1 ships with Domino Designer 6.5
 Custom Domino JSP tags
 An XML vocabulary for accessing Domino data from JSPs
• <domino:view>, <domino:viewloop>, <domino:viewitem>, etc.
 New features
 Support for WebSphere Studio 5.01 and 5.1
 Categorization and drag-and-drop-enablement of all Domino
Custom Tags in the Utilities menu.
 Support for Domino Custom Tags within WebSphere Portal
deployments
54
User interface & functionality
 Domino plugin
 The database elements can
now be dragged and dropped
onto a JSP page
All tags are
now available
in 1.1
55
Drag A View Into Your JSP And Toolkit Adds The Tags
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD> * * * </HEAD>
<BODY>
<P>Place content here.</P>
<%--Single sign-on (SSO) support allows Web users to authenticate once when accessing Web resources across multiple
and comment out the line of code containing the explicit username and password. --%>
<%-- <domino:view viewname="By Category" dbserver="" dbname="Sample_MusicLib.nsf" user="*webuser" > --%>
<domino:view viewname="By Category" dbserver="" dbname="Sample_MusicLib.nsf" user="<%= username %>“ pass
<table>
<tr>
<td><font color="blue" face="Helvetica"></font></td>
<td><font color="blue" face="Helvetica">Title</font></td>
</tr>
<domino:viewloop>
<tr>
<td><font color="blue" face="Helvetica"><domino:viewitem col="1"/></font></td>
<td><font color="blue" face="Helvetica"><domino:viewitem col="2"/></font></td>
</tr>
</domino:viewloop>
</table>
</domino:view>
</BODY>
</HTML>
56
The View Produced By The <domino:view…> Tags
57
AD201 – AD204: Lotus Domino, Websphere
Portal, and Lotus Workplace Integration
Session
AD201
AD202
AD203
AD204
58
Topics
Monday 3:15 – 4:30
Dolphin Southern I and II
Domino integration features
and an overview of AD20x series
Monday 5:00 – 6:15
Dolphin Southern I and II
Non-programming components:
Prebuilt portlets, DWAP, and Portlet
Builder for Domino
Tuesday 8:30 – 9:45
Dolphin Southern I and II
The Domino Toolkit:
Creating Domino JSPs using
the Domino JSP tag library
Tuesday 10:30 – 11:45
Dolphin Southern I and II
Portal Java programming concepts
and integrating Domino into your
Portal programs
AD204 – Using Java To Integrate With Domino
 From one of the people who wrote the book !!!
 Web resources and Redbooks
 Portalizing Domino Applications for
WebSphere Portal Redbook
 Domino Applications and Lotus
Workplace Technical Strategy paper
 WebSphere Portal Developer Zone
• Portlet Builder for Domino article
• Collaboration Center article
• General portlet development related
articles
 Lotus Developer Domain
 Lotus Education
 IBM Software Services for Lotus
59
AD204 - Portal Development For Domino Programmers








Brief Portal/Workplace definition
Overview of Domino access methods
Portlet development introduction
My first Domino Portlet
Portlet design principles
Authentication
Resource management
Portal applications
 Portlet frameworks
 Architecture
 Domino Rich-Text in Portlets
60
Your Turn
AD201
Lotus Domino, Websphere Portal,
and Lotus Workplace Integration
(Part 1).
Questions ?
61