Docstoc

IBM WebSphere Portal Server and Web Services

Document Sample
IBM WebSphere Portal Server and Web Services Powered By Docstoc
					WebSphere Portal, Portlets and Web Services
June 2002

Peter Fischer
Developer, WebSphere Portal Server
Portal Architecture
Introduction
 What are Portals ?


 Common access point to distributed information and
  applications
 Typical Functions:
      User registration
      Authentication and Authorization
      Pluggable portal components: Portlets
      Personalization based on profiles / behavior
      Customization of pages by users
      Search
      Content Management



                                     3
Example of a Portal View





                      4
                 Major Functional Components

     User Registration/
          Selfcare                                        User
                                                      Information

                                                    Portlet Container
Authentication




                 Customization     Authorization           Local
                                                          Local
                                                         Portlet
                                                                                          Remote
                                                                                         Remote
                                                                                         Remote
                                                          Portlet
                                                         Portlet                          Portlet
                                                                                          Portlet
                                                         Proxy                           Portlet




                                                                                  SOAP
                                                           Local
                                                          Local                           Remote
                                                                                          Remote
                                                         Local                             Web
                 Aggregation                              Portlet
                                                         Portlet                           Portlet
                                                                                          Portlet
                                                         Portlet                         Services




     User‘s              Portlet                    Portlet       Portlet Inst.
   Selections           Registry                   Settings          Data
                                                              5
WebSphere Portal Quick Overview

   Multi-Platform: Windows, AIX, Solaris
   Multi-Client: PCs, WAP, iMode
   Multi-Language: Serves different locales concurrently
   Multi-Authentication: Supports most relevant auth proxies
   Provides well-defined Portlet API and portlet auto-deployment
   Many Portlets on the IBM Portlet Marketplace (200+)

 Portlets can exploit WebSphere web service functions
 Supports pluggable, interactive, user-facing web services
 Can publish portlets as web services using admin UI



                                6
                        WebSphere Portal Server Architecture
                                                                                             WPS Local Search (Juru)
                                                                                       Intregrated Content Organizer
                                                                                             Content Integration EII.
                                                                                       Domino Extended Search,Packs for
                                                                        WPS DB or Tivoli Policy
                                                                        Director Vault Third Parties
                                                                                             Third Parties




                                                                                Credential
         WPS Database,




                                                                                                                Content
                                                                                                 Search
                                                                                                                                     Corporate




                                                                                                                 Mgmt
                                                                                  Vault
         Policy Director, or
         Netegrity Siteminder                                                                                                          UDDI
                                                                                                                                     Directory

                                                                                                                                                                       Local
                                                                                                                                                                      Local
                   Authorization




                                                                                                                                                    SOAP
                                                                                         Portlet Services                                                          Corporate
                                                                                                                                                                     Portlets
                                                                                                                                                                    Portlets
                                                                                                                                                                  Web Services
                    Aggregation                                                                                                          Intranet
                      Modules                                                                   Local
                                                                                               Local                                                                   Local
                                                                                              Local
                                                                                               Portlets                                                               Local
                                                                                                                                                                    Corporate
                   (HTML, WML, V                                                                                                                                      Portlets
Authentication




                                                                                              Portlets
                                                                                             Portlets                                                                Portlets




                                                                                                                                                    RPWS / SOAP
                                                                                                                                                                  RPWS Services



                                                                  Portlet API
                    oiceXML, ...)         Web Sphere
                                          Portal Server
                                            Engine                                                         Local                                                       Local
                   Remote Portlet                                                                         Local
                                                                                                        Portlet                                                       Local
                                                                                                          Portlets                                                   Public
                                                                                                                                                                      Portlets
                   Web Services                                                                          Portlets
                                                                                                        Proxies                                                      Portlets
                                                                                                                                                                  RPWS Services
                    SOAP Router
                                                                                                                                         Internet
                                                                                                                                                                       Local
                                                                                                                                                                      Local




                                                                                                                                                    SOAP
                 PD WebSeal,        WebSphere                                       J2EE/WebSphere APIs                                                             Public
                                                                                                                                                                     Portlets
                                                   WebSphere                                                                                                        Portlets
                 WTE Seal,
                                     Member                                                                                                                       Web Services
                                                  Portal Server
                                                                                              Enterprise Java
                 Netegrity
                                    Subsystem      Data Store
                                                                                Connectors



                 Siteminder,                                                                                    Message
                                                                                                                           ...
                                                                                                                          Analyzer
                                                                                                  Beans


                                                                                                                 Beans
                                                                                   JCA




                 WebSphere

                                                                                                                            Site
                                                                                                                                      Global
                 Security, or         Secure Way LDAP, DB2 or Oracle                                                                   UDDI
                 others via TAI       Domino LDAP,                                                                                   Directory
                                      Netscape LDAP,
                                      Active Directory,
                                      or WMS DB
                                                                                  7
Portlets and Portlet API
Portlets
 Components designed to be aggregated in portals
 Aware of portal context
       User profile information
       Per-portlet instance data stored by portal
       Per-portlet settings managed by portal
       Portlet window state (NORMAL, MIN, MAX)
       Portlet modes (VIEW, EDIT, CONF, HELP)
       Portlet events (action / message events)
 Can be packaged in normal WAR Files with descriptor
  extensions



                                  9
Portlet Action Handling and Aggregation




                             Portlet API (Invocation)
                                                         Portlet Container

                                                                Action                      Connectors




                                                                                J2EE APIs
                                                                 Local                       Web
  Servlet API




                Portal                                          Portlet                     Services
                                                               Local
                Servlet                                        Portlet                        EJBs
                                                              Local
                                                              Portlet


                                                        Portlet API (context)


                 Portal Infrastructure, User Registry
                Persistent and Transient Portal State



                                                         10
Example of a Stock Quote Portlet




 Stock prices for user-selected list of stock symbols:
      VIEW mode shows stock prices: doView method
      EDIT mode lets user change stocks: doEdit method
      HELP mode explains the portlet: doHelp method
      CONFIG mode lets administrator select stock quote source to use:
       doConfig method



                                 11
Example of a Portlet
 Portlets are specialized Servlets
public class StocksPortlet extends Portlet {
   public void init(PortletConfig config) {
      ... initialize portlet ...
   }

    public void doView(PortletRequest req,
                       PortletResponse rsp)
    throws PortletException, IOException {
       ... generate the portlet view ...
    }

    public void destroy(PortletConfig config) {
       ... destroy portlet ...
    }
}


                          12
    Example of Portlet View Mode
 Use of PortletData, Beans and JSP™ components
public void doView(PortletRequest req,
                   PortletResponse rsp)
throws PortletException, IOException {
   // Get stock symbols from portlet instance data
   PortletData data = req.getData();

     String symb = (String) data.getAttribute("symbols");
     .. get prices for symbols from stocks service ..

     StockBean stockBean = new StockBean();
     .. put stock symbol/price pairs in stock bean ..
     req.setAttribute("stockBean", stockBean);

     getPortletConfig().getContext().include(
        "/WEB-INF/ViewStockQuotes.jsp",req,rsp);
}



                           13
Example of Portlet Edit Mode
 Tie Actions to PortletURLs to process Forms
public void doEdit(PortletRequest req,
                   PortletResponse rsp)
throws PortletException, IOException {
   // Create URI pointing to this portlet instance
   // and attach a portlet action
   PortletURI saveUri = rsp.createURI();
   PortletAction saveAction = new Action(SAVE);
   saveUri.addAction(saveAction);

    EditListBean editListBean = new EditListBean();
    .. put saveURI and other data into the bean ..
    req.setAttribute("editListBean", editListBean);

    getPortletConfig().getContext().include(
    "/WEB-INF/EditSymbolListForm.jsp",req,rsp);
}



                         14
More Information about Portlet Development
 see Portlet Development Guide
  available at the portal library
  http://www-3.ibm.com/software/webservers/portal/library.html




                              15
Java Portlet API (JSR 168)
   Defines interaction between portals and portlets
   Defines interfaces for interoperability of portals and portlets
   Based on the JavaTM Servlet API
   Provides additional abstractions for portal context
        user object, persistent data objects, device information, portlet modes, window
         states, ...
 Standardization in JSR 168 lead by IBM and Sun
  (see http://jcp.org/jsr/detail/168.jsp)
 A Portlet API reference implementation will be donated to
  Apache Open Source Community




                                       16
Java Portlet API Supporters

   Accenture                          IBM (Spec Lead)
   Apache                             Interwoven
   ATG                                Macromedia
   BEA                                McDonal Bradley
   Boeing                             Plumtree
   Borland                            SAP Portals
   Bowstreet                          Silverstream
   Cap Gemini Ernst & Young           Sybase
   Citrix                             Tarantella, Inc
   DaimlerChrysler                    Vignette
   Documentum                         IONA
   Enformia Ltd                       Sun (Spec Lead)
   Epicentric                         Computer Associates
   Fujitsu                            Peoplesoft
   Hewlett-Packard                    SAS
   Hitachi                            Oracle



                               17
Portal WebServices

Remote Portlets
Web Services
 Web services are platform and language independent
 Description of Web services in WSDL
  (Web Services Description Language)
 Invocation of Web services via SOAP
  (Simple Object Access Protocol)
 Publish & Find through UDDI
  (Universal Description, Discovery & Integration)




                         19
Service Oriented Architecture –
Publish, Find & Bind

                      Service
                      Registry


             Find                  Publish




       Service                        Service
      Requestor                       Provider
                            Bind


                       20
                „Traditional“ Web Service Usage Scenario

                 Portlets using data-oriented Web services
                      Different data-oriented Web services expose different interfaces
                      Specialized UI and proxy code required in specific portlets
                      Local deployment of code is still necessary
                                                                          WS specific
                                                                           interface
                                Portlet API
                                                               Service                    Web Service 1
                                                 Portlet 1
                                                               Specific                    (Data only,
                                              (Presentation)
User‘s Client




                                                               Proxy 1                   no Presentation)

                  Aggregation
                                                               Service                    Web Service 2
                                                 Portlet 2
                                                               Specific                    (Data only,
                                              (Presentation)
                                                               Proxy 2                   no presentation)
                                Portlet API
                                                                           WS specific
                                                                            interface




                                                          21
 Remote Portlets Web Services
      Generic Proxies using user-facing web services
                   All RPWS services have a common API
                   No service specific portlets required
                   Generic RPWS proxy portlet is implemented
                    once and used for all RPWS services
                                                                             Presentation and Interaction Layer


                                  Portlet API
                                                               SOAP              RPWS Service 1
                                                Generic                        (includes data and
User‘s Client




                                                 Proxy                            presentation)
                                                                      RPWS
                                                                      API
                    Aggregation
                                                               SOAP              RPWS Service 2
                                                Generic                        (includes data and
                                                 Proxy                            presentation)
                                                                      RPWS
                                  Portlet API                         API




                                                          22
    Publishing Portlets as RPWS Services

                  (2) Find &          UDDI
   Portal 2       Bind            Portlet Entry       (1) Publish Portal 1

   Portal                         Portlet Entry                      Portal
Administration                    Portlet Entry                   Administration
                                                                    Portal 2



   Portlet     Portlet Proxy Entry                Portlet Entry       Portlet
  Registry                                                           Registry



   Portal               Portlet       RPWS/       Remote             Portal
 Aggregation            Proxy         SOAP        Portlet          Aggregation

                                     (3) Invoke

                                     23
Remote Portlet Web Services Goals
 Allow interactive, user-facing web services to be easily
  plugged into all standards-compliant portals
 Let anybody create and publish their content and
  applications as user-facing web services
 Portal administrators browse public or private UDDI
  directories for RPWS services to plug into their portals
  as new portlets, without any programming effort
 Let portals publish portlets so that they can be
  consumed by other portals
 Make the internet a market of visual web
  services, waiting to be integrated


                           24
Business Scenario Examples
To plug into portals ...
 ... Content Providers publish content as RPWS services
   (e.g. Stock Quotes, News, Lottery Numbers, Sports Results, Flight
   Schedules, ...)

 ... Application providers expose apps as RPWS services
  (e.g. Stock Option Programs, E-Mail, Calendar, CRM, Workflow, Tax
  Calculation, Ticket Ordering, Travel Booking,...)

 ... Portal providers publish local portlets as RPWS services to share
  them with other portals
  (e.g. a content provider‘s portal might publish its portlets for re-use in
  employee portals of different companies)



                                  25
Web Services for Remote Portals (WSRP)

 Standardization taking place in OASIS WSRP TC
  Chairman: Thomas Schaeck
 WSRP services are user-facing, interactive web services that may be
  aware of portal-side user profile information, devices, locales
 WSRP will standardize:
     How to publish, find, and bind to WSRP services
     Metainformation for WSRP services (name, supported
      locales/markups, titles, and descriptions, ...)
     Protocol for interaction between portals and WSRP services

 WSRP Home Page: http://oasis-open.org/committees/wsrp/
 Goal:
       WSRP 1.0 Spec and Implementation year end 2002




                                    26
Companies who participate in WSRP TC

       BEA                      Netegrity
       Bowstreet                Oracle
       Divine                   Peoplesoft
       Epicentric               Plumtree
       Factiva                  Silverstream
       France Telecom           Stellent
       Fujitsu                  Sun
       HP                       Sybase
       IBM                      Tibco
                                 WebCollage
       Interwoven
                                 SAP Portals
       Lexis-Nexis
                                 SeeBeyond
       Lotus
       Moravia IT


                         27
How WSRP and Java Portlet API (JSR 168) fit
 Portlet API defines Java API for local portlets
 WSRP defines user-facing, interactive web services that
  plug & play with portals
 Goals:
      Allow Java portlets to be wrapped and published to UDDI as WSRP
       services
      Allow WSRP services to be integrated in portals by using generic
       portlet proxies




                                 28
Portal consuming .NET-based RPWS Services




                                         Microsoft
                                         Office as
                                        OLE server




                           RPWS

             Portal                        .NET
                                  IIS
            Servers                       object

                      29
RPWS service inside a Word Document




                        WSRP


         .NET                    Portal
        object                  Servers

                   30
Thank you !

				
DOCUMENT INFO