29
Portal WorkGroup Portal WorkGroup D Giaretta D Giaretta

Portal WorkGroup D Giaretta. Task …concentrate on developing the portal, providing a simple front end and developing a means for adding independent modules

Embed Size (px)

Citation preview

Portal WorkGroupPortal WorkGroup

D GiarettaD Giaretta

TaskTask

• ……concentrate on developing the portal, concentrate on developing the portal, providing a simple front end and providing a simple front end and developing a means for adding developing a means for adding independent modules to the portal independent modules to the portal (portlets); (portlets); – the technology will be based on Cocoon. the technology will be based on Cocoon.

• A sample portlet will be developed which A sample portlet will be developed which will allow a simple interactive query of will allow a simple interactive query of the Registry web service. the Registry web service.

Portals and PortletsPortals and Portlets

• Portals provide a secure, single point of Portals provide a secure, single point of interaction with diverse information, interaction with diverse information, business processes, and people, business processes, and people, personalized to a user's needs and personalized to a user's needs and responsibilities.responsibilities. (IBM working definition) (IBM working definition)

• Portlets – visibly active component Portlets – visibly active component displaying data within a Portal pagedisplaying data within a Portal page

TechnologiesTechnologies

• Jakarta (various)Jakarta (various)– JetSpeed: to create enterprise information portalJetSpeed: to create enterprise information portal– Velocity: template engine – allows information import Velocity: template engine – allows information import

from Java classes for dynamic contentfrom Java classes for dynamic content– Cocoon: provides a framework for generating pages Cocoon: provides a framework for generating pages

from XML merged with XSL templatesfrom XML merged with XSL templates– Turbine: database connection pooling, user and Turbine: database connection pooling, user and

session management facilities and security session management facilities and security managementmanagement

– Torque: Torque: persistence layerpersistence layer

• Sun Engine Portal portlet now Open SourceSun Engine Portal portlet now Open Source• WebSphereWebSphere• …………....

Portal Planning - questionsPortal Planning - questions• How many users?How many users? • Is there already an existing authentication database for these users, do I Is there already an existing authentication database for these users, do I

want to use it?want to use it? • How many languages?How many languages? • How many media types do I want to support?How many media types do I want to support? • How many and which segments/target groups do I have to serveHow many and which segments/target groups do I have to serve • What content do I want to publish? What content do I want to publish? • How can I get access to this content (disk, db, syndication, etc...)? How can I get access to this content (disk, db, syndication, etc...)? • Who is going to update the site content and with what editorial process?Who is going to update the site content and with what editorial process? • What applications do I need to connect to? What applications do I need to connect to? • Are they already using a single authentication db? Are they already using a single authentication db? • How do I bridge to these apps (servlet, http, SOAP, CORBA, etc...)?How do I bridge to these apps (servlet, http, SOAP, CORBA, etc...)? • For each user target group, what application/content do they need to For each user target group, what application/content do they need to

access? access? • Can they personalize their portal view? Can they personalize their portal view? • What access rights should they have?What access rights should they have? • What will be your portal navigation? What will be your portal navigation? • Do you plan to set up different thematic portal views or a single integrated Do you plan to set up different thematic portal views or a single integrated

workspace?workspace?

Then - decisionsThen - decisions• What kind of software tools and features What kind of software tools and features

you'll need.you'll need.

• What kind of skills you'll require.What kind of skills you'll require.

• An estimate of the amount of work required An estimate of the amount of work required to setup your portal.to setup your portal.

• What budget you'll need to complete your What budget you'll need to complete your portal transition.portal transition.

• Where to startWhere to start

ArchitectureArchitecture

JetSpeed

VelocityCocoon

TorqueTurbine

TomCat

WebServiceWebServiceWebServiceWebService

Client Browser

Portlet APIPortlet API

• JSP 168JSP 168– Supported by JetSpeedSupported by JetSpeed– See See referencereference

Timescales and ResourcesTimescales and Resources

• Velocity Portlet demoVelocity Portlet demo• Velocity/JSP Portlet connecting to Web Velocity/JSP Portlet connecting to Web

ServiceService– Simple requestSimple request– 2 way interaction2 way interaction

• Map authentication/authorisation to CASMap authentication/authorisation to CAS• Portlet to existing VO Web servicePortlet to existing VO Web service• Portlet to WSDL to generated interface Portlet to WSDL to generated interface

formform• Portlet to Registry Web ServicePortlet to Registry Web Service

Questions for Overall ArchitectureQuestions for Overall Architecture

• How should authentication/ How should authentication/ authorisation map to CAS/GRIDauthorisation map to CAS/GRID

• Load expectedLoad expected• Number of users expectedNumber of users expected• Types of Web ServicesTypes of Web Services

Project set-upProject set-up

• Guinea pigs?Guinea pigs?• CVSCVS• Coding standardsCoding standards• ANT set-upANT set-up• ……

JetspeedJetspeedDavid GiarettaDavid Giaretta

JetspeedJetspeed

• Open Source Apache projectOpen Source Apache project• Written in JavaWritten in Java• Supports Portal API (JSP 168)Supports Portal API (JSP 168)• Provides built-in services for:Provides built-in services for:

– User interface customisationUser interface customisation– CachingCaching– PersistencePersistence– User authenticationUser authentication

• Makes connections to obtain dataMakes connections to obtain data

Jetspeed ArchitectureJetspeed Architecture

JetspeedJetspeed

• Built on top of Turbine (also Jakarta Built on top of Turbine (also Jakarta project)project)

• Turbine provides:Turbine provides:– User authenticationUser authentication– Page layoutPage layout

Jetspeed featuresJetspeed features

• Built-in support forBuilt-in support for– RDF Site Summary (RSS)RDF Site Summary (RSS)– Open Content Syndication (OCS)Open Content Syndication (OCS)

• Supports Wireless Markup Supports Wireless Markup languagelanguage

• User, group, role and permission User, group, role and permission administration via secure portletsadministration via secure portlets

• Role-based security access to Role-based security access to portletsportlets

•PortletControl: The function of the PortletControl within the Portlet page handles rendering the title and body of the Portlet

•PortletController: The function of the PortletController is to handle multiple PortletControls (each controlling a Portlet) to provide an entire Page of information from all the Portlets.

Markup/ConfigurationMarkup/Configuration

• Portal Structure Markup LanguagePortal Structure Markup Language– holds info on what portlets are available and holds info on what portlets are available and

registered with Jetspeedregistered with Jetspeed

• RegistryRegistry– Describes all available portletsDescribes all available portlets

• SiteSite– Describes what portlets can be displayed to Describes what portlets can be displayed to

a given user anda given user and– Describes how information is displayed for Describes how information is displayed for

that userthat user

Standard PortletsStandard Portlets

• HTMLHTML– Displays HTML contentDisplays HTML content

• JSPJSP– JSP contains embedded JavaJSP contains embedded Java

• RSSRSS• Web PageWeb Page

– Displays content of a Web siteDisplays content of a Web site

• XSLXSL– Displays XML content by transforming it into HTML Displays XML content by transforming it into HTML

using XSLTusing XSLT

• VelocityVelocity

Web Services toolsWeb Services tools

• org.apache.jetspeed.webservices.util.Soaorg.apache.jetspeed.webservices.util.SoapAccessBeanpAccessBean – SoapAccessBean provides a Soap WebServices Client SoapAccessBean provides a Soap WebServices Client

command bean pattern. This bean can be used to command bean pattern. This bean can be used to interact with webservices via soap. The WSDL file for interact with webservices via soap. The WSDL file for the target web service is required since it contains the target web service is required since it contains the parameters required to interact with the service.the parameters required to interact with the service.

• org.apache.jetspeed.webservices.util.UDorg.apache.jetspeed.webservices.util.UDDIAccessBeanDIAccessBean – UDDIAccessBean provides a command bean interface UDDIAccessBean provides a command bean interface

to UDDI registry services. Please note that currently to UDDI registry services. Please note that currently only inquiry tasks are supported.only inquiry tasks are supported.

CVSCVS

Concurrent Concurrent Versions Versions SystemSystem

CVS is:CVS is:

• Based on a Copy-Modify-Merge model Based on a Copy-Modify-Merge model where the developer:where the developer:– Downloads copy of codeDownloads copy of code– Modify codeModify code

• NB simultaneously any other user can download, NB simultaneously any other user can download, update and then merge into Master repositoryupdate and then merge into Master repository

– Merges with repository – but user has to Merges with repository – but user has to resolve with any other incompatible changesresolve with any other incompatible changes

• NOT Lock-Modify-UnlockNOT Lock-Modify-Unlock

DetailsDetails

•CheckoutCheckout– From a RepositoryFrom a Repository

•may be remotemay be remote– Security mechanisms e.g. anyone Security mechanisms e.g. anyone

can read, but password needed can read, but password needed for writefor write

•UpdateUpdate•CommitCommit

Mechanism - serverMechanism - server

• Repository maintains Repository maintains differences between revisionsdifferences between revisions

• Maintains additional metadata Maintains additional metadata to identify each versionto identify each version

• Also able to tag a whole group Also able to tag a whole group of revisions e.g. “Release of revisions e.g. “Release Spring 2003”Spring 2003”– Allows one to copy any whole set Allows one to copy any whole set

at any point in the futureat any point in the future

User:User:

•Check’s out copyCheck’s out copy•Additional metadata is kept Additional metadata is kept

in extra “CVS” in extra “CVS” subdirectoriessubdirectories

DocumentationDocumentation• CVS home page (http://www.cvshome.org/) and CVS manual CVS home page (http://www.cvshome.org/) and CVS manual

(http://www.cvshome.org/docs/manual/index.html)(http://www.cvshome.org/docs/manual/index.html)• CVS FAQ-o-matic CVS FAQ-o-matic

(http://www.loria.fr/~molli/fom-serve/cache/1.html): recipes for (http://www.loria.fr/~molli/fom-serve/cache/1.html): recipes for simple and more arcane uses simple and more arcane uses

• Introductions:Introductions:– Introduction to CVS (http://www.cvshome.org/docs/blandy.html) by Introduction to CVS (http://www.cvshome.org/docs/blandy.html) by

Jim Blandy Jim Blandy – Open Source Development with CVS by Karl Fogel (good, free Open Source Development with CVS by Karl Fogel (good, free

chapters from a book of the same name). chapters from a book of the same name). • Best practice Best practice

– ACME, (http://www.enteract.com/~bradapp/acme/) source code ACME, (http://www.enteract.com/~bradapp/acme/) source code management best practices (encyclopaedic, but bewildering) management best practices (encyclopaedic, but bewildering)

– Specifically branching: Streamed Lines: Branching Patterns for Specifically branching: Streamed Lines: Branching Patterns for Parallel Software Development Parallel Software Development (http://www.enteract.com/~bradapp/acme/branching/)(http://www.enteract.com/~bradapp/acme/branching/)

– CVS Best Practices (http://www.magic-cauldron.com/cm/cvs-CVS Best Practices (http://www.magic-cauldron.com/cm/cvs-bestpractices/index.html) is somewhat more compact than the bestpractices/index.html) is somewhat more compact than the ACME guide, and correspondingly more opinionated ACME guide, and correspondingly more opinionated