Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
® 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