Upload
alaina-mccormick
View
215
Download
0
Embed Size (px)
Citation preview
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• ……
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
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.
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