Prabhat Jha JBoss, a division of Red Hat Tuesday, March 25th 2008
Agenda What is a portal, do I need one? What's in JBoss Portal? JBoss Portal Demo JBoss Portlet Bridge & Demo Around JBoss Portal
What is a portal?
Portals provide Content Aggregation JBoss Portal Header/Navigation Manufacturing Info Inventory Supply Customer Records Employee Data Product Data
Different perspectives for different Users CSR Portal JBoss Portal Header/Navigation JBoss Portal Header/Navigation Manufacturing Info Supply Customer Records Inventory Inventory Supply Employee Data Product Data Customer Portal JBoss Portal Header/Navigation Customer Records Inventory Product Data Customer Records Product Data Manager Portal
Portal Consumption RDBMS But also: Google widgets Netvibes widgets Your content type Portlet JSP Remote Portlet CMS Portlet JSP
Why use a portal? Why not just use a regular web framework like Seam or Struts Requires all components to be written using the same technology Enterprise environments, sooner or later, deal with multiple technologies Seam and Struts could be used as technologies to build portlets (with some limitations, as of today) Speed up deployment of a portal Existing standard portlets
Integration of different technologies Include a pic with Struts, JSF, RichFaces, PHP, CMS...
Integration of different technologies
Portals and SOA Split your services Maintenance Lifecycle Technology independent Split your web applications Maintenance Lifecycle Technology independent Don't split the UI! The user doesn't like to have to deal with multiple applications A portal is a window on the services
When not to use Portal? A unique simple application like a web-blog wouldn't really benefit from a portal infrastructure Navigation in a portal is somewhat different than a traditional website, the end-user navigates among several web applications on a single page and that's not a traditional scenario. A portal is not made to split one application into windows all portlets should be different applications
JBoss Portal in General
JBoss Portal State of the Union Focus on core portal functionality Aggregation Provides a standards-based environment for serving a portal's web interface and publishing/managing portal applications and content Consistent look and feel Performance and scalability Centralized security Single Sign On across elements of the portal Identity manager LDAP Database
Personalization User Personalization of Individual Portlet Settings New to 2.6 Personal User Dashboards Theme Layout Portlet Content
Standards based JSR-168: Portlet Specification Final release: Oct 27th, 2003 JSR-286: Portlet Specification 2.0 Public Review Ballot: Aug 27th, 2007 Red Hat Middleware LLC represented by: Julien Viet (JBoss Portal project leader) JSR-301: Portlet Bridge Specification for JavaServerTM Faces Early Draft Review 2: Sep 10th, 2007 Red Hat Middleware LLC represented by: Julien Viet (JBoss Portal project leader) Stan Silvert (JSF expert) JSR-170: Content Repository for Java technology API OASIS WSRP v1.0
Leverages other JEMS components JBoss SX JAAS based domain security subsystem JBoss Cache Performance Fault tolerance Hibernate Database independence JBPM Business process Better flexibility JBoss Web Services WSRP
Modularized Deploy/Undeploy components Light bare portal Soft dependency between elements Identity portlets does not necessarily require the workflow service Depends on your needs
Portal Services & AS Services
JBoss Portal in an Enterprise System
JBoss Portal 2.6
JBoss Portal 2.6 SCREENSHOT
Security Improvements Enhanced LDAP Support Built on JAAS based JBoss SX security framework Directly integrate simple/complex LDAP tree structures Users in one or multiple contexts Roles in one or multiple contexts User-Role relationships stored in user, or role Synchronize built in Portal security repository with external repositories Basic integration with any JAAS compliant security store
Identity Server integration A set of interfaces to integrate with any identity server Red Hat Directory Server OpenLDAP OpenDS Sun Directory Server Microsoft Active Directory... User/Role/Profile can be mapped to either database and/or LDAP DelegatingUserProfileModule : use DB for properties that do not exist in the LDAP schema (schema limitation). It's used in conjunction with HibernateUserProfileModuleImpl that has additional synchronization feature
Single Sign On integration Several applications, a unique login challenge to the user A set of interfaces to integrate with any SSO framework CAS JOSSO Open SSO...
Web Services for Remote Portlets support Aggregate portlets coming from external portals Integrate legacy applications using Web Services Integration from other middleware stacks beyond Java EE Split responsibilities Provide content for other consumers Server 1 Act as a Consumer Network Server 2 Act as a Producer Portal Local Portlet Local Portlet WSRP Portlet Markup
Layout and Theme Layout Responsible to render markup that will wrap the markup fragments produced by individual portlets. Implemented as JSP or Servlet Theme Responsible to enhance and style the markup rendered by layout Implemented using CSS, Javascripts, images
Usability Enhancements Improved Interfaces Portal Administration Portlets Portlet Instances Portlet Defaults User Administration Simplified User Creation User Search List Based View Content Management Search for content items to manage Action Based Management Familiar Directory View
A set of portlets for online administration Management portlet Identity portlet CMS portlet WSRP admin portlet
Management portlet Modify your portals with few clicks Add/Remove pages Add/Remove portlet windows... Change theme for a page or a portal Modify security restrictions Change other properties (Drag and drop, Partial refresh...)
Management portlet
Identity Portlet CAPTCHA support jbpm integration More flexibility Verify email address Approve new accounts
Identity Management Portlet
CMS Portlet Based on Apache Jackrabbit Store Database File System Hybrid Online publishing Workflow Configurable Role based approval workflow out of the box Based on jbpm Versioning With live/draft option
CMS Portlet
WSRP administration portlet
Portal Clustering JBoss Cache Used to replicate data among different hibernate session factories JBoss HA-Singleton Used to make a deployer singleton on the cluster With JCR: Jackrabbit does not run in cluster by itself. HTTP Session Replication To replicate portal and portlet session and navigational state Jboss SSO Used to replicate user identity
Feature Summary J2EE-based Portal Framework Java Portlet portability via JSR-168 Content Management (JCR - JSR-170) Content aggregation and personalization Dynamic portal object management (Dynamicity) Pluggable themes (hot deployment) Pluggable identity management (Database, LDAP...) JSF, Struts bridge and Spring MVC support WSRP Portlet instances and services clusterable Personal dashboard
Installation Overview JBossAS/Portal Bundle ~85MB Download Zero Installation Required Start Server Go to http://localhost:8080/portal Standalone JBoss Service Archive (SAR) jboss-portal.sar Core framework code portal-core.war stores layouts/themes portal-cms.sar content mgmt portal-server.war portal server root context... Hibernate DDL/DML executed on initial startup HSQL embedded Not for Production! Clustered Portal jboss-portal-ha.sar
Demo
JBoss Portlet Bridge
An Intro to JBoss Portlet Bridge Grown from the JBoss RichFaces project A JSR-301: Portlet Bridge implementation Link between: JSR-168: Portlet 1.0 JSR-252: JavaServer Faces 1.2 Deploy in a portal environment JSF applications JSF Rich Faces applications JSF Seam application JSF Rich Faces + JSF Seam applications A separate project http://labs.jboss.com/portletbridge A joint effort between multiple teams RichFaces (Alex Smirnov) Seam (Pete Muir) JBoss Portal (Wesley Hales)
Status of JBoss Portlet Bridge JBoss Portlet Bridge 1.0 Beta1 is out! Supports RichFaces 3.1.4.SP2 JBoss Seam 2.1.0.A1 JBoss Portal 2.6.4.GA JSR-301 specification based Supposedly works on any JSR168/JSR286 compliant portlet container (Open source or not) Supposedly works with any JSF implementation MyFaces Sun RI Upfront testing on JBoss Portal and embedded JSF implementation Community based support and testing for other combinations
JBoss Portlet Bridge Demo
Around JBoss Portal
Who's using JBoss Portal JBoss.org ADP - Leading Provider of Outsourced Payroll and Human Resource Services Cendant Orbitz travel agents platform American Red Cross - www.givelife.com (where the public can go to register to give blood), plans to move from Coldfusion to JBoss Portal The US Navy Department of Housing Intranet for sailors and their families Daiwa Securities America Inc Moved from BEA Portal to JBoss Portal
What did they like Modularity Seamless integration Reduced costs Scalable architecture Professional support quality compared to others
JBoss.org
Community A large base of users Active forums Multiple environments, OS, database... User input and early feedback Helps us anticipate needs before final releases 10,000 downloads a month
Related projects JBoss Wiki Wiki portlet JBoss Forums Forums portlet More portlets on portletswap.com (both open source and proprietary) Increasing number of portlets available globally
JBoss Portal as a product Open Source with LGPL license Backed by up to 24x7 Support from the Source JBoss certified partners (HP, Cap Gemini, Alfresco, Atos Origin, Unisys...)
Why would you choose JBoss Portal? We understand the middleware issues Interoperability Extension points Integration Non intrusive customization... We understand enterprise class requirements Scalability Support...
Why would you choose JBoss Portal? Most comprehensively tested open source Portal;-) Total Number of Tests: ~2700 Continuous Database Compatibility Testing Oracle 9i/10g MySql 4/5 PostgreSql MS Sql Server Hypersonic Continuous LDAP Integration Testing OpenLDAP Red Hat Directory Server Open DS Sun Directory Server Active Directory Server (not automated yet)
Why would you choose JBoss Portal? Backward Compatibility with JBoss AS Three previous GA versions Most of EAP versions Performance and Scalability Make sure that for 2000 simultaneous users the average response time is < 1 second Soak Testing: Monitor response time when server is heavily loaded for longer period (24 hours) Scalability Testing: Monitor response time as load and number of nodes in cluster increase while ensuring failover works (currently in the process of being automated)
Future Server agnosticism Run everywhere More Ajax support RichFaces support Seam support Better out of the box experience Federated search Portlet 2.0 (JSR-286) WSRP 2.0 <-- Your needs...
Questions? More information: www.jboss.org pjha@redhat.com