Quick viewing(Text Mode)

One Hour Portal with Cocoon

One Hour Portal with Cocoon

One Hour Portal with Apache Cocoon

A portal solution and framework

Carsten Ziegeler [email protected]

Competence Center Open Source S&N AG, Germany About

¢ Member of the Apache Software Foundation ¢ Committer in some Apache Projects ß Cocoon, Excalibur, Pluto, WSRP4J, Incubator ß PMC: Cocoon, Incubator, Portals ¢ Chief Architect of the Competence Center Open Source, S&N AG, Germany ¢ Article and Book Author ¢ Technical Reviewer

2 Agenda

¢ Requirements ¢ Viewpoints ¢ Real Life examples ¢ The Cocoon Portal – explained ¢ Tools ¢ Wrapup ¢ Demo

3 Portal Requirements

¢ Integration of existing heterogenic systems, data and processes ¢ Existing (Web) Applications and User repositories must be integrated ¢ Flexible and efficient architecture that reduces vendor lock-in and allows „DIY“

4 Portal Requirements

¢ Create a unified look-and-feel over all applications ¢ Manage sessions between users, EAI platform and back-ends ¢ Build unified navigation ¢ Create pass-through links ¢ Create a single sign on solution

5 Portal Requirements

6 Which applications and systems do you have to Lotus Notes / Domino integrate into a portal? Microsoft Exchange

70,00% Microsoft Office 60,00% SAP 50,00% 40,00% Existing User repository (z.B. LDAP) 30,00% Existing Intranet 20,00% Legacy-Applications 10,00% Other 0,00% n.a.

Source: S&N poll 2005

6 Portal Requirements

11 Which technical standards should the portal support

Not important / don't know of any 60,00% standards 50,00% JSR168

40,00% WSRP 30,00% BPEL 20,00% Other 10,00%

0,00% n.a.

Source: S&N poll 2005

7 Viewpoints: One size?

8 Viewpoints: Open Source portals

¢ Meta Group ß Portals are also settling into place as infrastructure frameworks rather than standalone applications. ¢ AMR Research ß "Standardisation will hasten the commoditisation of portal servers, like the application server and database markets before them," “The increasing proliferation of portals and standardisation of the technology should also drive the take-up of open source infrastructure.” ¢ Gartner ß One doesn't buy an uberportal, one builds it. The best portal products for the uberportal are open architected, service- oriented and standards-based.

9 Viewpoints: Buildingon Pareto

¢ 80% of an Enterprise Portal will become standardized ß Data integration: JSR168, JSR170, WSRP, XML/HTTP ß Process integration: BPEL, JBI ß User integration: LDAP ß User viewing: HTML, XHTML, PDF, Office formats, SVG

¢ You should be worrying about (and paying for) the 20% that matter ß Individual: your legacy system ß Individual: your specific processes ß Differentiation to your competitor

10 Real Life Examples

11 Deutsche Börse

12 Insurance Companies

13 W hy did they choose Cocoon?

¢ Cocoon often already used as an XML application platform ¢ Different heterogenic systems needed integrating ß E.g. Existing databases or Web applications ¢ Multi-Channel Publishing ß Data inside the portal and as PDF or Excel ¢ Efficient time to market for required functionality ¢ programming skills not a necessity ¢ Community Support ¢ Commercial support available ¢ Cocoon provides a portal framework

14 History

¢ Started in September 2000 ß Commercial product developed by S&N ß Based on Cocoon ß Additional components and project specific additions ß CMS, Tools, documentation, trainings ¢ Completed in mid 2001 ß sunRise and sunSpot ß Used in various projects ¢ Donated to the Cocoon project in February 2002 ß Used around the world ¢ Started new Portal Engine in the end of 2002 ß Together with other interested parties ß The usual advantages ¢ New portal engine in Cocoon since the beginning of 2004 15 Cocoon in a picture

16 ..Ok, make that 2

17 Portal as an integratedsolution

¢ Adopt given strategies ß Multi-Channel ß Separation of Concerns ¢ Use available components ß Pipelines ß Data integration ¢ Use available sub-frameworks ß Forms ß Flow

18 And add

¢ User-Authentication ß Integrate LDAP, Database, … through components and pipelines ß Add your own via custom components or tweaks ¢ Flexible profile management ¢ Flexible layout concept ¢ Coplet concept ¢ Support for portal standards

19 Overview

¢ Definition and configuration in XML ß Layout (ordering) separated from content ß Using existing types ß Requires no Java coding ¢ Predefined coplet types ß More than a portlet ß Simple usage of Cocoon for delivering content ß Requires no Java coding

20 It‘s a , Jim

Portal Generator X S L T Transformer HTML Serializer Layout Get user portal profile (HTML) XML Add content of each coplet

21 Generating the Portal View

¢ Getting the Profile ß Layout ß User preferences ¢ Rendering the View ß Drawing the layout ¢ Aggregating Content ß Include content of selected coplets

22 Profile Management

¢ Hierarchical Portal profiles possible for ß Anonymous ß Roles/Groups ß Users ¢ Profiles stored (via a pipeline) in ß File ß Database ß …

23 Defining The Portal Layout

¢ Hierarchical Tree of ß Composite Layout Objects ¢ Row, Column ¢ Tab ¢ … ß Single Layout Objects ¢ Coplet Window ¢ Frame ¢ Link ¢ … ß Deep nesting possible!

24 Layout Management

25 Layout Management

Row

Coplet Window

Column Coplet Window Coplet Window

Coplet Window

26 Layout Management

<> <> <> <>FFiirrsstt<> <> <> <> <> <> <> <>LLeefftt<> <> <> <> <> <>RRiigghhtt<> <> <> <> <> <> <> <>BBoottttoomm<> <> <> <>

27 Rendering The Portal Layout

¢ Configured renderer for each layout component ß Individual XSLT stylesheets ß Or plug in a Java class ß Generate: XML, HTML, WML, … ß Renderers traverse the tree ¢ Placeholder for each coplet ß Filled with content in a separate step

28 Integratingcontent JSR 168

¢ Java API (based on J2EE 1.3) ß Portlet Development ß User Preferences ß Localization ¢ Similar to Servlet API ß Request-Response Cycle ß Own Deployment Descriptor ¢ Portlet Container extends Servlet Container ß Servlet Specification 2.3 ß Not covered in the JSR ¢ Reference Implementation: Apache Pluto

30 W SRP – W eb Services for Remote Portlets ¢ A standard for interactive, presentation-oriented web services ß not tied to a programming language ß publishing and consuming of content ¢ Sharing of portlets (markup fragments) over the internet with a common interface ¢ JSR 168 portlets run in the Portal Server – WSRP portlets run on a different server

31 W hat‘s this coplet thing?

¢ A coplet is so much more than a portlet J ß A URI ß A Pipeline ß A JSR-168 portlet ¢ Including support for Portals Bridges (Struts, JSF…) ß WSRP consumer ß Your own Java Class

32 W hat‘s this coplet thing?

¢ Definition of coplets ( classes) ß Unique id ß Required type ß Configuration

<> ID <>CCZZ''ss WWeebblloogg<>

<>UURRIICCoopplleett<> Type

<>ccooccoooonn:://ppiippeelliinneess//ppoorrttaall//wweebblloogg<> Optional Configuration <>

33 A Pipeline is a pipeline is a …

¢ Reads news from RSS feed ß Example: http://radio.weblogs.com/0107211/rss.xml ¢ Transforms news to HTML ¢ Uses a simple Cocoon pipeline

Generator Transformer Serializer

News Layout Document (XML) (XSLT) (HTML)

34 It‘s all the same to the user

Static Coplet Role Dependent Coplet Dynamic RSS Coplet XML File Pipeline: XML + XSLT Pipeline: Remote XML XSLT

Dynamic Portlet Static Coplet using JSR 168 Own Java Class

35 Coplet communication

¢ Very powerful Publish/Subscribe mechanism ¢ Action in one portlet affects other parts ¢ Display content in another area of the portal ¢ Dynamically add portlets ¢ Programmatically switch status/view

36 More Portal goodies

¢ Profile can be changed at runtime ß Using events ß Example: Important coplet changes position ¢ Layout engine can be used without additional Portal functionality ¢ Existing Cocoon applications can be integrated with no change ¢ Existing JSF/Struts applications can be integrated easily using Portals Bridges

37 Technology Roundup

Portal Generator Transformer Serializer

Portal Manager Profile Manager Coplet Adapter - Portal Profile - Layout

Coplet J C S u U Container R s R

t 1 o I 6 m Renderer 8

Event Manager

Publish and Subscribe

38 Cocoon Portal Tools Tools - Concept

¢ Missing tools for the portal engine ¢ As the portal is highly customize- and extendable the tools must be too ¢ A framework for a framework ¢ Make it easy to develop/add tools ¢ Separate the tools from the portal

40 Requirements

¢ Provide an easy way to integrate/add tools to the Portal (Plugin-Architecture) ¢ Provide a standard how to develop tools for the Cocoon portal ¢ Offer a userinterface for functions provided by the Portal ¢ Provide examples

41 Concepts/Functionality

¢ Offer a unique userinterface for all tools ¢ Add/remove tools easily ¢ Automatic menu generation ¢ Provide i18n-Support ¢ Provide access/rights management for the tools ¢ Provide access to the important portal objects

42 Concepts/Functionality

¢ ATM only suitable for user tools, as we have only access to the users ‘objects’ via the portal. ¢ Requires the latest Cocoon 2.1.8

43 Tools Framework - Architecture

Cocoon

Portal Portal-Tools

PoProtartlSaleSrevricveic/e PortalToolManager PortalManager T T T o o o o o o l l l P P P l l l u u u g g g i i i n n n

44 Tools Framework – Examples

¢ Coplet Management ¢ User Management

45 Coplet Management

¢ Functions ß Change the skin ß Move/Create/Delete/Configure ¢ Tabs ¢ Columns ¢ Rows ¢ Coplets

46 User Management

¢ Simple GUI-Prototype ¢ Just grabs the user data from the context and displays it ¢ Must be connected to the Database/LDAP/etc. for production use

47 Real Life II Portal Example at RZB/RIZ

¢ Raiffeisen Zentralbank Österreich (RZB) ¢ Raiffeisen Informatik Zentrum (RIZ) ¢ Worked jointly with S&N AG, BASF-IT Services to design and build the new Cocoon Portal version ¢ Cocoon Portal is the core of a new concept for employee workspace

49 Portal Example at RZB/RIZ

¢ Employee Workspace ß Single view on existing Web applications with unified look and feel ß Integration of additional utility applications (e.g. Google) ß Integration of application navigation into portal ß No changes to the underlying applications ß Allow access to the same application in parallel – while maintaining state ¢ e.g. Customer care application

50 Integration Applications i s t a n t A p p l i c a t i o n d i r e c t l y

51 IntegratingApplications D i s t a n t A p p l i c a t i o n i n

t h e P o r t a l

52 IntegratingApplications

integrated applications

aggregated menu

53 Let‘s get portalizedwith Cocoon Let‘s get Portalized

¢ Download Cocoon source distribution ß cocoon.apache.org ¢ “build.bat” to build ¢ “cocoon” to start ¢ Complete portal solution demo contained in the “blocks”

55 Let‘s get Portalized- files

Skins

Coplets

Portal Profiles

Portalblock

56 The Future

¢ The Cocoon Portal is still growing ß WSRP consumer support has been added ß Portals Bridges support has been added ß New additional components ¢ Hot deployment of portlets is coming soon ß Spring Integration? ß Better exchange with other Apache portals project ß There will be even more with Cocoon 2.2 J

57 Thanks for your attention!

Download latest presentation from http://www.osoco.org/carsten.html