JBoss Portal Radoslav Husár PV219 Seminář webdesignu, 11th March 2009 Language Selection Out tonight's agenda What is portal and why use it? Java specifications Introducing JBoss portal Real life use case How to obtain and deploy JBoss portal Live demo with "hands on" Q&A Get ready... 40 slides and a demo ahead! Portals in general Portals provide Integration & Aggregation Portal consumption Why use a portal? Why not just use a "regular" web framework? Requires all components to be written using the same technology Enterprise environments, soon or later, deal with multiple technologies Some web frameworks have support for portals Speed up deployment of a portal Existing standard portlets Build-in authentication (with SSO) Integration of different technologies CMS, JSF, JSP, PHP, Netvibes, Google... Portals and SOA Split your services Maintenance Lifecycle Technology independent Split your web applications Maintenance Lifecycle Technology independent Don't split the user interface ! The user doesn't like to have to deal with multiple applications A portal is a window on the services - Unify access to your web applications Multiple users ­ Multiple views When to use a portal? Simple application like a web blog ­ No? Intranet, Insurance Portal, Banking & Finance Portal ­ Yes! Have aggregation and integration of content from different sources? Need more than simple personalization? JBoss Portal in general JBoss Portal 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 Presentation framework (Portal vs Portlet level) Scalability JBoss Enterprise Portal Platform scales well Don't forget you still need to scale other resources (e.g. database) Standards based JSR-168: Portlet Specification (Final release: Oct 27th, 2003) JSR-286: Portlet Specification 2.0 (Proposed Final Draft: Dec 13th, 2007) JSR-301: Portlet Bridge Specification for JavaServer Faces (Early Draft Review 2: Sep 10th, 2007) What is a Portlet? User interface component targeted at the portal ecosystem implementing given interface standardized Similar to web applications in Deployed in a portlet container Can better focus on single task Can delegate common ( shareable) concerns Reusable What is new in JSR-286 Portlet Specification 2.0 Better interaction with a portal in a various manners Public render parameters feature (to show improved interoperability) Use cases Several portlets on the same page share the same zipcode, and are able to display informations related to the geographic location Weather Map Address Public render parameters use case - XML Public render parameters use case - Java Leverage of other JBoss Enterprise Middleware Software components JBoss SX JAAS based domain security subsystem JBoss Cache Performance Fault tolerance Hibernate ORM database independence Leverage of other JBoss Enterprise Middleware Software components 2 jBPM Business process Better flexibility JBoss Web Services WSRP REST ...because it runs in JBoss Application Server Identity Server integration A set of interfaces to integrate with any identity server: OpenLDAP Red Hat Directory Server OpenDS Sun Directory Server Microsoft Active Directory others ...it's all about integration! Single Sign-On integration Several applications but a single login challenge to the user Single sign-on (SSO) is a method of access control that enables a user to log in once and gain access to the resources of multiple software systems without being prompted to log in again. Single sign-off is the reverse process whereby a single action of signing out terminates access to multiple software systems. Provided set of interfaces to integrate with any SSO framework CAS JOSSO Open SSO others JBoss Portal as a community driven OSS Community a large base of users active forums multiple environments, OS, database... supported user input early feedback helps OSS to anticipate needs before final releases 10,000 downloads a month Strong points given by users: Why use JBoss Portal? Modularity Seamless integration Reduced costs Scalable architecture Professional support quality Related projects JBoss Wiki Wiki portlet JBoss Forums Forums portlet More portlets on portletswap.com (being revamped) Increasing number of portlets available globally JBoss Portal as a product Open Source with LGPL license ­ use freely, business friendly licence Backed up to 24x7 by "Support from the Source" Many JBoss certified partners (HP, Cap Gemini, Alfresco, Atos Origin, Unisys...) ­ solution you can trust! Future plans Server agnosticism ­ run everywhere! Federated search ­ is the simultaneous search of multiple online databases or web resources and is an emerging feature of automated, web-based library and information retrieval systems. It is also often referred to as a portal or a federated search engine. WSRP 2.0 ­ Web Services for Remote Portlets (WSRP) is an OASIS-approved network protocol standard designed for communications with remote portlets. New presentation framework Improved content framework Our needs! Standards/OSS in enterprise in general What are standards? uniform engineering or technical criteria, methods, processes and practices that everyone follows Why use them? easy to start using easy to stop using easy to migrate to different solution provider shareable components As a developer? You are getting the entire budget because you don't have to pay for the license! JBoss Portal live demo "Installation" JBossAS/Portal Bundle Zero Installation Required (this is Java life!) Get supported Java (JDK 4, JDK 5) Start Server (./run.sh -c default) Point your browser to http://localhost:8080/portal Standalone JBoss Service Archive (SAR) jboss-portal.sar ­ Core framework code portal-core.war ­ stores layouts/themes portal-server.war ­ portal server root context Database to use Get your favorite (RDBMS) database Get JDBC driver (copy to ./server/default/lib) Hibernate DDL/DML executed on initial startup HSQL embedded (this is not for production!) Q&A