Title: Introduction to Portals and Portlets
1Introduction to Portals and Portlets
University of Portsmouth, UK Mark.Baker_at_Computer.o
rg June 2005 http//dsg.port.ac.uk/mab/Talks/NCe
SS05/
2Overview
- What is a Portal?
- Problems with Portals.
- Example Portals.
- Solutions Portlets and WSRP.
- Portals Apache Pluto.
- Summary.
3What is a Portal?
- Browser-based user interface for accessing tools
and services - Live dynamic pages available to authenticated,
authorised users, - Can use Java/Perl/Python,
- It manages credentials, launches jobs, manage
files, etc., - Hides underlying complexities, run from anywhere,
- Connections through portal overcomes firewall/NAT
issues. - For our purposes it lets us combine Science
with traditional portals - Post and share documents,
- Search engine interfaces, calendars, etc.,
- Enabled by portlets (see later slides).
- Provides customisable interfaces and user
roles/views
4A Portal What it is, and is NOT!
- It is
- A tool for aggregating and managing web content,
- A user customisable view of these Web content
parts - You see what you want/can see, but you must log
in. - Implemented on top of standard services
- Like login, authorisation, customisation,
- May include collaboration tools, etc, that depend
on login. - A way to accomplish tasks through browsers
- Launch, and monitor jobs, manipulate files, etc.,
- Run scientific applications based on these
services. - Compatible with emerging standards and best
practices - such as portlets, (JSR 168 and WSRP) - It is not (just)
- A web page, with a collection of links, or an
applet or flash viewer
5Which is the Portal?
6Which is the Portal?
7Which is the a Computing Portal?
- In fairness, the screenshots are not large enough
to see, but you have to log in to the second one - Point is that they are superficially similar to a
Web site, but have many differences under the
hood. - The first screen dump is of the NASA JPL QuakeSim
project page - http//quakesim.jpl.nasa.gov/
- The second screen dump is the NASA JPL QuakeSim
portal - http//complexity.ucs.indiana.edu8282/jetspeed
- Go there to run QuakeSim earthquake simulation
codes, access earthquake databases, etc.
8The Portal Gold Rush
- Many portal projects have been launched since
late 90s - HotPage from SDSC, NCSA efforts, DOD, DOE
Portals, NASA IPG, - Continue to be important component of many large
projects - NEESGrid, DOE SciDAC projects, NASA, NSF, many
international efforts.
9Example Portals HotPage
10Example Portals HPCPortal
11Example Portals DSG Portal
12Example Portals OCGE
13Example Portals Genius
14Example Portals Grappa
15Three-Tiered Architecture
Web Protocols
JDBC, Local, or Remote Connection
Database Service
Database
Portal Client Stub
Portal User Interface
Resource Broker Service
HPC or Compute Cluster
Portal Client Stub
Information and Data Services
Grid Information Services, SRB
Portal Client Stub
- Three-tiered architecture is accepted standard
for accessing various back-end services
16Problem with Portals
- Experience revealed that everyone was doing the
same thing - Not quite, but this was significant,
- Everyone builds secure logins, remote file
manipulation, command execution, access to info
servers, - Everyone would at least like support for multiple
user roles (administrators, users) and
customisation. - No one could share components with other groups
- No well defined way of sharing UI components or
making services interoperate, - No well defined interfaces to portal services.
- The challenges
- Stop reinventing things and provide ways for
groups to reuse components, - Provide a portal repository for common services,
- Provide APIs for service integration!
17Things to Hate About Portals
- Browsers have limited interactivity
- Desktop GUIs provide much better interactivity
but have other problems, - Applets are a solution, but they do not interact
with other parts of the browser very well, - Solution Service Oriented portals lets you use
services through both portals and desktops. - Developing useful interfaces to your set of
services is a time consuming and non-scalable
process - This implies that we need to get users involved
early in design! - Browsers have notoriously incompatible features
- Things do not work the same in for example with
IE, Mozilla Firefox, Konqueror,, - Same browsers on Macs and Windows do not work the
same too!
18A Solution Based on Components
- A software component is an object defined by
- A precise public interface,
- The semantics that includes standard behaviour.
- A software component architecture is
- A set of rules for component behaviour,
- A framework in which components can be easily
installed and interoperate. - The component architecture of choice for the
Portal community is the one based on portlets - (Java) components that generate content, make
local and remote connections to services, - Portlet containers manage portlet lifecycles.
- We now have many, many components
- So do not start from scratch!
19What is a Portlet (in a nutshell)?
- A Java technology based Web component, managed by
a Portlet container, that processes requests and
generates dynamic content. - Used by Portals as pluggable user interface
components that provide a presentation layer. - The content generated by a Portlet is also called
a fragment - A piece of markup (e.g., HTML, XHTML) adhering to
certain rules and can be aggregated with other
fragments to form a complete document - The content of a Portlet is normally aggregated
with the content of other portlets to form the
Portal page.
20What is a Portlet (in a nutshell)?
- It is an integration component between
applications and Portals that enables delivery of
an application through a Portal. - Eliminates vendor specific Portlet API
- Applications can be delivered through any Portal
almost immediately. - Web clients interact with Portlets via a
request/response paradigm implemented by the
Portal. - Normally, users interact with content produced by
Portlets - For example by following links or submitting
forms, - The resulting in Portlet actions being received
by the Portal, which are forwarded by it to the
Portlets targeted by the user's interactions.
21JSR 168 Portlet Specification
- Java Community Process
- http//www.jcp.org/en/jsr/detail?id168
- Led by Sun and IBM.
- 1.0 Final Release Oct 27, 2003.
- Interoperability between Portlets/Portals.
- Set of APIs addressing areas of aggregation,
personalisation, presentation and security.
22JSR 168 Portlet Specification
23A Overview of JSR 168
24What is JSR 168?
- Defines a standard for vendor container-independen
t portlet components. - Many implementations
- Gridsphere, uPortal, WebSphere, Jetspeed2, .
- From the portlet development point of view, it is
really very simple - You write a java class that extends
GenericPortlet, - You override/implement several methods inherited
from GenericPortlet, - You use some supporting classes/interfaces
- Many are analogous to their servlet equivalents,
- Some (portletsession) actually seem to be trivial
wrappers around servlet equivalents in Pluto.
25Some Terminology
26The Infamous Big Picture
- The portlet container (such as Pluto or
Gridsphere) is responsible for running your
portlets - Init, invoke methods, destroy.
- Portlets have a limited way of interacting with
the container - It is a black box,
- The API is basically one-way.
27Example
- The figure shows a Web page with two portlets.
- A portlet on a portal has its own window, a
portlet title, portlet content (body) which can
be rendered with portlet.getContent() method, and
some actions to close, maximize or minimize the
portlet.
28Deploying Portlet Applications
- The portlet container runs as a distinct Web
application - That is, it has its own directory in the Tomcat
application server, - Moreover, it runs as a separate context, with its
own classloader, session management, etc. - Portlet applications are potentially as distinct
WAR files/Web applications - You go through the container webapp/ to get to
the portlet webapp/, - Portlets in the same application share JARs,
classes, and runtime stuff like request and
session variables, - Portlets in different portlet application do not
share anything.
29A Critique of JSR 168
- There is no way to share data/objects between
portlet applications. - Cannot extend the portlet API to add such
services. - There is a lack of general purpose portlets
- You make specific extensions to GenericPortlet
for each portlet you develop. - JSR 168s MVC approach is incompatible with some
other Java-based framworks such asTurbine,
Struts, . - No defined way to integrate with portal-specific
services (i.e. logins). - No inter-portlet communication.
- Despite these problems, JSR 168 (and WSRP) are
the best available standards.
30WSRP
- Web Services for Remote Portals (WSRP) defines a
standard for interactive, user-facing Web
services that plug and play with portals. - WSRP is designed to allow developers to write
programs in several languages, including Java, C
and .Net maybe C, Python and Perl in future - JSR-168 Portlets run on the same server as the
Web Portal, whereas WSRP Portlets would run on a
different server than the Web Portal
31Overview
- WSRP defines
- A WSDL interface description for invocation of
WSRP services, - How to Publish, Find, Bind WSRP services and
metadata, - Markup Fragment Rules for markup emitted by WSRP
services, - Applicable Security Mechanisms, Billing
information?, ... - Companies involved in WSRP
- Bea, Bowstreet, Divine, Epicentric, Factiva,
France Telecom, Fujitsu, HP, IBM, Interwoven,
Lexis-Nexis, Lotus, Moravia IT, Netegrity,
Oracle, Peoplesoft, Plumtree, Silverstream,
Stellent, SUN, Sybase, Tibco, WebCollage, SAP
Portals, SeeBeyond
32WSRP and Portlet API(s)
Web Services for Remote Portals (WSRP)
Platform Independent Web Service Interface
Java Portlet API (JSR 168)
C Portlet API (.NET)
Platform specific, local Portlet APIs
WSRP Impl. on plain J2EE or .NET platform
. . .
- Portlet APIs may be defined for different
programming languages. - WSRP can bridge between the different platforms,
leveraging - platform independence of Web services.
- Goal Portlets written to Portlet API can be
published as WSRP - services.
- WSRP services can be integrated through Portlet
Proxies - written to Portlet API.
33WSRP Services PlugPlay with Portals
Registry
Find
Publish
Portals
Portals
Clients
Portals
Clients
WSRP Services
Portals
Portals
WSRP Services
Portals
Portals
WSRP Services
Web Clients
Web Clients
Web Clients
Web Clients
Portals
Web Clients
Portals
Web Clients
Bind
Portals
Web Clients
Portals
Web Clients
Portals
Web Clients
Web Clients
e.g.
34JSR-168 and WSRP
- JSR-168 aligns closely with the WSRP.
- Both standards, which emerged at the same time,
released open source implementations capable of
all necessary functions described in the
respective specifications. - Although they are being governed by different
standards bodies and review processes, WSRP and
JSR-168 are complementary specifications. - While JSR-168 defines a standard Portlet API that
is specific to Java-based portals, WSRP defines a
universal API that allows portals of any type to
consume portlets of any type.
35WSRP and JSR-168
- They can be used together in the following two
ways - Portlets written with the Java Portlet API may be
wrapped as WSRP services and published in UDDI
directories. - WSRP services can be exposed as portlets with the
Java Portlet API to aggregate them in portals. - Whereas JSR 168 defines a set of Java APIs that
allows portlets to run on any compliant portals,
WSRP allows Web services to be exposed as
portlets in a plug-and-play fashion.
36Portal Frameworks supporting Portlets
- JetSpeed v2.0 - http//portals.apache.org/jetspeed
-2 - Jportlet - http//jportlet.sourceforge.net/
- uPortal v2.5 - http//www.uportal.org
- LifeRay - http//www.liferay.com
- IBM WebSphere v5.0 http//www-4.ibm.com/softwar
e/webservers/portal/ - Oracle Portal - http//portalcenter.oracle.com
- Sun ONE Portal http//www.sun.com
- BEA Weblogic http//www.bea.com
- GridSphere - http//www.gridsphere.org
- More
37Apache Portals Project
- http//portals.apache.org/
- Pluto
- Portlet Container,
- Reference implementation of JSR 168.
- WSRP4J
- Reference implementation of Oasis WSRP Spec,
- Producer/consumer interfaces,
- Consumer Portlet proxy.
- Jetspeed-2
- Enterprise portal,
- JSR-168 compliant.
38Pluto
- http//portals.apache.org/pluto/
- Status 22 December 2004 - Portals Pluto
1.0.1-rc2 released. - Contents
- Portlet API (JSR 168),
- Portlet Container,
- Portal Driver,
- Test Suite Portlet.
39Pluto
40Pluto Component Relationships
Portal (uPortal)
org.jasig.portal.container uPortal
org.apache.pluto.portalImpl Pluto Portal Driver
Implements
Portlet Container (Pluto)
Portlets
org.apache.pluto org.apache.pluto.om org.apache.pl
uto.services
Live in
org.apache.pluto.core.impl
Use
Implements
Portlet API
javax.portlet
41Pluto Services
- Information provider service
- Static information provider
- Portlet definition registry.
- Dynamic information provider
- Portlet Modes, Portlet Window States, etc.
- Factory manager service
- Obtains an implementation through a factory.
- Log service
- Defines a logging facility.
42Summary
- A Portal provides a Web browser-based user
interface as a single access point to a variety
of backend services - JSP and Java servlets are used for dynamically
generating portal pages. - Portals are produced from pluggable Portlets.
- Running inside of a portlet container, portlets
can be added into, or removed from a portal, thus
providing users with the ability to customise the
services at a portal level. - Portlets are independent components that are
based on existing services. - A Portal built from Portlets can provide users
with the ability to integrate services provided
by different enabling technologies.
43Useful URLs
- JSR 168
- http//www.jcp.org/en/jsr/detail?id168
- Apache Portals
- http//portals.apache.org/
- Jakarta Pluto
- http//portals.apache.org/pluto/
- Portlets in uPortal
- http//www.uportal.org/implementors/portlets/work
ingWithPortlets.html - Portlet Open Source Trading Site (POST)
- http//portlet-opensrc.sourceforge.net/
44Acknowledgements
- Marlon Piece and Charles Severance.
- Mary Thomas.
- Rob Allan.
- Hong Ong.