Introduction to Portals and Portlets - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

Introduction to Portals and Portlets

Description:

... to your set of services is a time consuming and non-scalable process: ... Things do not work the same in for example with IE, Mozilla Firefox, Konqueror, ... – PowerPoint PPT presentation

Number of Views:120
Avg rating:3.0/5.0
Slides: 45
Provided by: MarkB153
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Portals and Portlets


1
Introduction to Portals and Portlets
  • Mark Baker

University of Portsmouth, UK Mark.Baker_at_Computer.o
rg June 2005 http//dsg.port.ac.uk/mab/Talks/NCe
SS05/
2
Overview
  • What is a Portal?
  • Problems with Portals.
  • Example Portals.
  • Solutions Portlets and WSRP.
  • Portals Apache Pluto.
  • Summary.

3
What 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

4
A 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

5
Which is the Portal?
6
Which is the Portal?
7
Which 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.

8
The 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.

9
Example Portals HotPage
10
Example Portals HPCPortal
11
Example Portals DSG Portal
12
Example Portals OCGE
13
Example Portals Genius
14
Example Portals Grappa
15
Three-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

16
Problem 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!

17
Things 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!

18
A 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!

19
What 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.

20
What 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.

21
JSR 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.

22
JSR 168 Portlet Specification
23
A Overview of JSR 168
24
What 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.

25
Some Terminology
26
The 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.

27
Example
  • 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.

28
Deploying 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.

29
A 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.

30
WSRP
  • 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

31
Overview
  • 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

32
WSRP 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.

33
WSRP 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.
34
JSR-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.

35
WSRP 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.

36
Portal 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

37
Apache 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.

38
Pluto
  • 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.

39
Pluto
40
Pluto 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
41
Pluto 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.

42
Summary
  • 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.

43
Useful 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/

44
Acknowledgements
  • Marlon Piece and Charles Severance.
  • Mary Thomas.
  • Rob Allan.
  • Hong Ong.
Write a Comment
User Comments (0)
About PowerShow.com