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