• Building an EIP with Jetspeed
  • Objectives
  • Implementation
  • Syndication structure
  • Portlets and data gateways
  • Deployment
  • The Apache Java portal toolbox




    Download 1.33 Mb.
    bet3/3
    Sana22.03.2020
    Hajmi1.33 Mb.
    #8318
    1   2   3

    The Apache Java portal toolbox


    Currently the ASF does not provide a single integrated solution for building a complete java enterprise portal but offers a toolbox of components which can be integrated in order to cover the needs of a complete portal system.

    Some vendors already distribute bundled portal packages based on these technologies, like for example Xo3’s OpenJODA.

    The following list is a non exhaustive enumeration of the compoments, all members of the Jakarta Apache project, that may used as a portal toolbox.

    Tomcat


    Tomcat is the Java Servlet 2.2 specification reference container implementation.

    As such, it can be used as the base application server for serving the enterprise portal site, either stand-alone using the built-in HTTP server or in conjunction with an external HTTP server like Apache httpd 1.3.


    Turbine


    Turbine is a web application development framework.

    It offers many useful features for building dynamic sites, like an integrated pluggable user management module, a powerful action model for reacting to user events and supports several templating systems (like Velocity, Webmacro, JSPs) to develop the site presentation.


    Jetspeed


    Jetspeed is a portal system built on top of the Turbine framework.

    It offers the content aggregation and user customization features necessary for building a successful portal as well as simple headline syndication capabilities based on the RSS and OCS formats.

    Jetspeed currently natively supports both HTML and WML clients.

    Slide


    Slide is a user content management system.

    It can be used to build a complete backend content management system, if there’s no such system within the corporation.

    Current integration between Jetspeed and Slide is experimental.

    Building an EIP with Jetspeed


    We will now present some facets of a portal project methodology which can be used for deploying an EIP inside a corporation. This method is specifically adapted to take advantage of Jetspeed built-in syndication features.

    The main project steps are :

    Objectives

    Planning


    • Portal content

    • User management

    • Resource allocation

    Implementation

    - Network and server design



    • Syndication structure

    • Portlets: data and application gateways

    • Site templates

    Deployment

    We will not cover in this document the resource allocation and server/network design phases as these are very dependent on the corporation existing assets and the project scope.


    Objectives


    In order to build a successful portal, it’s important to clearly specify early in the project life the goals and expected benefits of the site.

    Portals are very general versatile tools. Ill-defined objectives may lead to a feature creep jeopardizing the project budget and schedule, or on contrary, build an incomplete site that doesn’t fullfill user expectations.

    It’s usually a good practice not to be too ambitious in the first project and focus on building a vertical portal aimed for a restricted user and document base rather than trying to consolidate all your company data from the Office documents to the mainframe databases…

    Planning


    Planning has a critical importance in the success of the portal project.

    This phase needs to list all the contents that will be presented in the final portal in order to identify :



    • internal content sources that may be syndicated

    • external content sources that need to be contracted

    • all the applications that will interact with portal

    • the existing user repositories which the portal will have to interconnect with

    Once this list is built, the project planning team will also need to define the user management strategy to use for this portal as well as allocate implementation human and technical resources.

    Portal content


    Once the objectives have been specified, it’s necessary to identify the list of contents which will need to be available from within the portal, as well as identifying where within (or exterior to) the corporation these informations may be found and how to access them.

    Such a list may adopt the following tabular format:



    • Name

    The name is a short description of the data content referenced

    • Type

    This field indicates the form the data is currently available in: DBMS, flat file, proprietary application format, etc…

    • Keywords

    Keywords describe the main data topics. They may be used during the implementation phase as the basis for a content management taxonomy, if needed.

    • Location

    The location field specifies where the information referenced is available and how to access it. It may be a URL for web content, a file server address, etc…

    • Access mode

    The access mode specifies the status of the content, especially the access rights required and whether it’s suitable for syndication.

    • Update frequency

    This parameter describes the typical life time of the content before a change occurs.

    Typical list entries will look like:


    Name : Corporate Press releases
    Type: SQL database
    Keywords : press, news, corporate
    Location : http://mycorp.com/press/
    Access mode : public
    Update frequency : daily
    Name : Online publication related to corporation activity
    Type: Internet web site
    Keywords : news,
    Location : http://www.mynewssite.com/
    Access mode : public
    Update frequency : 1-2 hours
    Name : Task list for project Jetspeed
    Type: Corporate scheduling system (MS Exchange)
    Keywords : personal, project Jetspeed
    Location : HERMES Exchange server on DOMAIN domain
    Access mode : restricted to user or project members
    Update frequency : weekly
    Name : Main competitors activity reports
    Type: Office documents
    Keywords : competitors
    Location : ZEUS Netware file server
    Access mode : any authenticated user
    Update frequency : monthly
    This list will be used during implementation as a content checklist for building the site but also to help identify the data sources that may easily be syndicated, those that can be accessed using the default portlets provided with the portal software and those that will require specific developments.

    This list will also help to plan the user management requirements as it describes all the data sources authentication requirements the portal will have to work with.


    User management


    Before the implementation of the portal, it’s also important to correctly plan the user management strategy to use, especially if the portal must display restricted access data.

    Unless the company already has a single common user repository used by all applications, the portal will usually have to work with different existing incompatible user databases used by different applications.

    In order to incorporate content from these applications and present a unified data view to the user, the portal designer may adopt 2 basic strategies :


    • consolidate all the user directories in a single unified source and use it for all applications,

    • build a new user directory for the portal, and map portal users profile with their existing profiles in the different applicative user databases.

    Consolidation of the directories is of course the best possible solution, as it solves once and for all these issues, but actual implementation of this strategy in most corporations is such a daunting technical and organisational challenge that the “meta directory” approach is usually the only workable choice.

    Such a scheme may be implemented in the following fashion :



    When a new user first registers on the portal, he creates a new login and password which will be used for portal internal purpose (customization for example).

    When this user needs to access a restricted content, the portlet will prompt him for his applicative authentication tokens, verify them with the application and store them in his profile.



    The next time, this user connects to the portal, the portlet will transparently retrieve and use the remote authentication tokens to access the secure data and display the application content within the portal page.



    Implementation of such a scheme with Jetspeed requires the remote authentication tokens to be stored in plain text in the user profiles. This may present security risks if the configuration database is not correctly protected.


    Implementation


    Once the portal contents have been identified and the user management strategy defined, it’s possible to start actually implementing the portal site.

    This implementation will typically have 3 phases that may be undertaken in parallel :



    • build the syndication structure to import or reference locally as much content as possible

    • develop the additional portlets required to access non syndicated applications or data stores

    • build the site templates and define the default user profiles and displayed content

    Syndication structure


    Building a Jetspeed portal syndication structure is usually a three steps process :

    • add RSS descriptions for all the internal contents

    • define internal OCS feeds

    • register internal and external feeds with Jetspeed

    Based on the content list built in the planning phase, we must first identify contents that are suitable for syndication. Such contents will typically have the following properties:

    • they are publicly available or, at least, don’t change based on the user profile

    • they have a low update frequency, typically greater than 1 hour

    • they are already available on a web site

    For all these contents, we can either create RSS channels in order to use headline syndication, or implement a full content syndication by modifying Jetspeed feed maangement.

    RSS channel descriptions may easily be written, either using static manually edited files, or a web data access development tool like JSP, PHP, ASP, servlet, etc…

    The following complete ColdFusion code presents a simple RSS dynamic page example accessing an internal press releases database :

    select p.id, p.title

    from press_items p

    where


    p.date_end < TODAY

    and p.date_start >= TODAY

    order by

    p.date_published ASC








    MyCom Press Releases

    http://www.MyCom.com/


    MyCom

    http://www.MyCom.com/image/logo.gif

    http://www.MyCom.com/






    #items.title#

    http://www.MyCom.com/press/#items.id#







    Once these RSS channels have been defined, we must add them to an OCS feed that will be processed by Jetspeed.

    For example, the previous RSS channel can be described by the following OCS fragment:




    MyCom press releases


    en

    http://my.netscape.com/publish/formats/rss-0.91.dtd



    One this feed is complete, it may be registered in Jetspeed by adding the following keys in the JetspeedResources.properties file :
    contentfeeds.feed.name=internal

    contentfeeds.feed.internal.description=MyCom Internal OCS Feed

    contentfeeds.feed.internal.url=/ocs/internal.ocs
    Jetspeed will then periodically download this feed, extract all the RSS channels and register them in its content registry. For more advanced syndication capabilities, it’s possible to extend Jetspeed default feed behavior by extending the ocs.xsl XSLT stylesheet responsible for parsing the OCS feed.

    Using OCS feeds to distribute the channels also gives a great flexibility of deployment as they are automatically updated and re-processed by Jetspeed and thus, allow the content writers to dynamically and remotely add or remove channels from the portal.


    Portlets and data gateways


    For all the contents that can’t be syndicated, specific gateway portlets must be developed using the Jetspeed portlet API.

    There are already several generic examples distributed with Jetspeed to help speed up the development of new component and a modules directory will be available shortly on the Jetspeed website that will reference third party contributed portlets.

    Once these portlets are developed, they must be added to the jetspeed-config.jcfg content registry of Jetspeed, with some base operational parameters and meta-data :


    Press database
    Press releases database

    com.mycom.portlets.DBPortlet

    Note that Jetspeed supports several type of registry entries, identified by the « type » attribute :



    • abstract: these entries may not be used directly by a user to produce content but can be used in other as base portlet definitions will be used by “ref” type entries.

    • instance: standard entry, capable of producing content for a user without any reference to another entry definition.

    • ref: this entry extends the definition of a base abstract or instance portlet and override some parameters of these portlets.

    Site templates


    At this stage, all the content should be available inside of the portal and it’s now possible to build the complete site, customize Jetspeed look and feel and build the default user portal profiles.

    Jetspeed look and feel can easily be configured by modifying the default icons provided and configuring within the default PSML (Portal Structure Markup Language, aka “piecemeal”) file. This file describes all the available content in a given user profile, as well as the layout strategy and decoration elements for these portlets.

    For example, the following PSML file specify that Jetspeed whould display four portlets (defined by the elements) for user raphael, presented in a grid layout (defined the element). One of these portlets is an application (IMAPMailCount) that requires user specific parameters.












    This file is device independent and may theorically be presented for any device, but in practice the widely different client capabilities and limitations encountered between HTML and WML browsers make it preferable to define separate PSML files per device type.

    A more complete description of the PSML format is available on the Jetspeed website [5].

    At runtime, Jetspeed will chose the best PSML file for any given request. The default behavior for this selection process is to use the :



    • user agent capabilities

    • user language

    • user login, if any

    to select the appropriate profiles. Portal implementors may modify this behavior by extending the base profiler component.

    It’s also possible to completely modify the portal site behavior by directly using the Turbine development capabilities to extends the default Jetspeed navaigation and layout, or even to integrate the portal in a complex custom web application.


    Deployment


    Once the portal development is complete, it’s time to deploy it on one or several production servers. This process is easily accomplished by creating a custom Jetspeed WAR application archive, using the default build tools provided with the software.

    This custom pre-configured WAR archive can then be automatically deployed and run in any compatible servlet 2.2 container such as Tomcat.


    Perspectives


    In this document, we’ve seen how Jetspeed can be used within a corporation to quickly build an enterprise portal using its headline syndication features. Such a portal may be deployed with minimal impact on the existing IT structure and very low development costs, thanks to the orthogonal nature of the RSS channels description.

    However, in its current incarnation, Jetspeed still has several shortcomings that are currently being addressed by the development team and will be incorporated in the future releases:



    Once these features are finalized, Jetspeed will provide a solid foundation for building comprehensive entreprise information portals, leveraging both the open Internet syndication portocols and an open vendor neutral portlet component API.

    References


    [1] C. Shilakes and J. Tylman, “Enterprise Information Portals”, Merryl Lynch Inc., November 16, 1998

    [2] ICE, Information and Content Exchange, http://www.icestandard.org/

    [3] RSS 0.91 Specification, UserLand, http://backend.userland.com/stories/rss091

    [4] OCS: Open Content Syndication Directory Format, Internet Alchemy, http://internet alchemy.org/ocs/directory.phtml



    [5] Jetspeed PSML configuration, http://www.bluesunrise.com/jetspeed/jetspeed.htm

    Download 1.33 Mb.
    1   2   3




    Download 1.33 Mb.