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