1WebSphere Portal, Portlets and Web ServicesJune 2002Peter FischerDeveloper, WebSphere Portal ServerPortal ArchitectureIntroduction23What 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 Management4Example of a Portal View35LocalPortletLocalPortletMajor Functional ComponentsPortlet ContainerSOAPAggregationCustomizationUser Registration/SelfcareAuthenticationAuthorizationLocalPortletLocalPortletLocalPortletRemotePortletRemotePortletRemotePortletRemotePortletRemotePortletWebServicesUserInformationPortletSettingsPortlet Inst.DataUser‘sSelectionsPortletProxyPortletRegistry6WebSphere 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 UI47Portlet ServicesCredential VaultSearchContent MgmtInternet Internet WebSphere Portal Server ArchitecturePortlet APIAggregationModules(HTML, WML, VoiceXML, ...)Remote Portlet Web ServicesSOAP RouterAuthenticationAuthorizationWebSpherePortal ServerData StoreWebSphereMemberSubsystemLocal PortletsLocal PortletsLocal PortletsLocal PortletsLocal PortletsPortletProxiesGlobalUDDIDirectoryIntranet Intranet CorporateUDDIDirectoryJ2EE/WebSphere APIsJCA ConnectorsEnterprise JavaBeansMessage BeansLocal PortletsLocal PortletsCorporateWeb ServicesLocal PortletsLocal PortletsPublicWeb ServicesWeb Sphere Portal ServerEngine...Site AnalyzerPD WebSeal,WTE Seal,NetegritySiteminder,WebSphere Security, orothers via TAIWPS Database,Policy Director, orNetegrity SiteminderSecure Way LDAP, Domino LDAP, Netscape LDAP,Active Directory, or WMS DBWPS DB or Tivoli Policy Director VaultIntregrated Local Search (Juru)Domino Extended Search, EII.Third PartiesWPS Content OrganizerContent Integration Packs forThird PartiesDB2 or OracleLocal PortletsLocal PortletsPublicRPWS ServicesLocal PortletsLocal PortletsCorporateRPWS ServicesSOAP SOAPRPWS / SOAPPortlets and Portlet API59Portlets 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 extensions10Portlet Action Handling and AggregationConnectorsWeb ServicesPortalServletLocalPortletLocalPortletLocalPortletPortlet API (Invocation)Portlet API (context)Servlet APIJ2EE APIsPortal Infrastructure, User RegistryPersistent and Transient Portal StateEJBsActionPortlet Container611Example 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 method12Example of a Portlet Portlets are specialized Servletspublic 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 ... }}713Example of Portlet View Mode Use of PortletData, Beans and JSP™ componentspublic void doView(PortletRequest req, PortletResponse rsp) throws PortletException, IOException {// Get stock symbols from portlet instance dataPortletData 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);}14Example of Portlet Edit Mode Tie Actions to PortletURLs to process Formspublic void doEdit(PortletRequest req, PortletResponse rsp) throws PortletException, IOException {// Create URI pointing to this portlet instance// and attach a portlet actionPortletURI 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);}815More Information about Portlet Development see Portlet Development Guideavailable at the portal libraryhttp://www-3.ibm.com/software/webservers/portal/library.html16Java Portlet API (JSR 168) Defines interaction between portals and portlets Defines interfaces for interoperability of portals and portlets Based on the JavaTMServlet 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 Community917Java Portlet API Supporters Accenture Apache ATG BEA Boeing Borland Bowstreet Cap Gemini Ernst & Young Citrix DaimlerChrysler Documentum Enformia Ltd Epicentric Fujitsu Hewlett-Packard Hitachi IBM (Spec Lead) Interwoven Macromedia McDonal Bradley Plumtree SAP Portals Silverstream Sybase Tarantella, Inc Vignette IONA Sun (Spec Lead) Computer Associates Peoplesoft SAS OraclePortal WebServicesRemote Portlets1019Web 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
View Full Document