7.4 CONET Portlet Factory for Domino

 < Day Day Up > 



7.4 CONET Portlet Factory for Domino

Overview

CONET's Portlet Factory is a portlet generator for WebSphere Portal. It allows you to easily portalize existing Domino applications. The development model follows the Domino rapid application development approach, meaning that the portlets are created similar to the way that Domino applications are built, enabling Domino developers to build portlets without the need to know either Java or the portal server APIs.

The key differentiator tbetween CONET Portlet factory and all other Domino integration techniques is Portlet Factory's performance and scalability. This is achieved through its multi-tier, distributed and server-centric architecture. It implements advanced data caching strategies using DB2 as its back end. This guarantees high performance and scalability that is independent from the Domino back-end servers.

The Portlet Factory tool is especially interesting if you have:

  • Many custom Domino applications that you need to portalize

  • Domino development expertise on staff

  • The need for highly scalable Portlets

  • The desire to use a rapid application development model that allows prototyping

CONET components

CONET's Portlet Factory is a true J2EE application implemented in a multi-tier architecture. The components that make up the system are:

  • Portlet Factory Repository

    The Portlet Factory Repository is the development environment and storage for the portlet definitions. The developers develop the portlets inside of the portlet definition repository. This is a Domino database with a Notes client front end.

    click to expand
    Figure 7-34: Portlet Factory definition repository

    Portlet creation is done in a five step process that involves the definition of elements similar to the ones used to build Domino applications. Elements used are, for example, selection formulas, views, and form layouts. All these elements are defined by using the Notes @formula language in combination with HTML. This is explained in more detail later in this section.

  • Portlet Factory portlets

    The Portlet Factory portlet provides a framework for the portlets. The PF portlets are generic portlets which use the portlet definitions from the PF Definition Repository.

  • Portlet Factory service

    The PF Service is the core component of the Portlet Factory system. It serves incoming requests from Portlet Factory portlets.

  • Portlet Factory connector

    The PF Connector is a distributed component that accesses Domino databases on remote Domino servers. PF Connectors are deployed on every Domino node where databases reside that should be served through the portal.

Figure 7-35 gives an overview of the components.

click to expand
Figure 7-35: CONET Portlet Factory architecture

The Portlet Factory service is the main component of the system. It is implemented using Enterprise Java Beans. The Portlet Factory Service is responsible for handling all Portlet requests for data and application transactions. The Portlet Factory Service gathers information from the Portlet Definition repository and then utilizes one or more Domino Connectors to interact with a Domino application.

There are many tasks associated with fulfilling a request from a Portlet. The Portlet Factory Service facilitates the entire process of gathering, organizing, caching, and rendering the output for the Portlet, as well as the transactions with the underlying Domino application. Transactions can involve write access to Domino databases, Portlet cooperation, and agent execution on the back-end Domino server.

To improve performance, the Portlet Factory Service implements caching. Caching provides a significant performance increase in most situations. The Portal Factory Service can cache results in memory or persistent to a DB/2 database.

As already mentioned, the Portlet Factory Service is a Java Web application that runs within WebSphere Application Server. The Portlet Factory Service receives requests directly from a Portlet running on a WebSphere Portal server.

The Portlet communicates with the Portlet Factory Service via RMI over IIOP.

Figure 7-36 gives an overview of the interaction of the different Portlet Factory components.

click to expand
Figure 7-36: CONET Portlet Factory component architecture

In this figure, you see that Portlet Factory is not using HTTP or DIIOP to remotely access Domino. CONET implemented a Domino Connector written in Java, which uses the Notes Object Services locally to perform the requests on behalf of the Factory Service.

The architecture was chosen to minimize the number of calls necessary to transact with a Domino server. Portlet Factory's remote connectors provide a coarse-grained interface. It receives a detailed task description, performs this task on the local server, and returns a result. Instead of dozens or hundreds of remote DIIOP calls, there is just one. This improves performance and minimizes network traffic.

It is important to point out that the Domino connector is based on WebSphere and Domino standards. It builds on the Domino Java Toolkit and implements a high-level bridge for the specific transaction needs of the Portlet Factory service.

The modular architecture of Portlet Factory allows it to be deployed in different architectures, as shown in Figure 7-37.

click to expand
Figure 7-37: Portlet Factory deployment options

Implementation issues

This section summarizes the functionalities of the CONET Portlet Factory.

  • Applicable portlet patterns

    Portlet Factory Portlets can be used to implement the entire range of Portlet patterns that where outlined in Chapter 1.

  • Development time

    Portlet development with Portlet Factory is a very efficient process. The ease of use of the @formula language makes Portlet development as fast as building Domino applications. Portlet Factory implements a true rapid application development model.

  • Developer skill set

    Portlet development can be done with basic Domino development skills. Even junior Domino developers who know the @formula language and little HTML can built Portlets.

  • Range of applications

    Portlet Factory can be used to build any kind of Domino Portlets. It supports read and write access to Domino applications as well as the execution of agents. Portlet messaging and Click to Action are easy to implement.

    The options for advanced database aggregation create a completely new way to work with Domino databases.

    Portlet Factory allows you to:

    • Combine data from multiple Domino databases

      • Append databases

      • Merge databases

      • Mix data sets

    • Relate queries through primary/foreign key relationships:

      • One to One: One row in Query X matches one row in Query Y

      • One to Many: One row in Query X matches 0+ rows in Query Y

      • Many to Many: 1+ rows in Query X matches 1+ rows in Query Y

    • Data views can be n-level categorized

    One drawback is that in the development process you are limited to the functionalities provided by the @formula language. Currently the use of JSP tag libraries or customized Java code is not supported. CONET has announced that future versions of Portlet Factory will ship with a JSP Tag library that will open the Portlet Factory functionality to JSP development.

  • Rich text handling

    Portlet Factory Portlets can display and edit Domino rich text. Rich text can be embedded in Portlets with all embedded elements, for example images and links, still working correctly. Therefore the Portlet Factory service implements a reverse proxy and handles URL rewriting. We found that Portlet Factory is currently the only tool that handles Domino rich text properly.

Performance

Portlet Factory performance is very good. Through it's multi-tier architecture and the use of memory and DB2 caching it can handle high volume Domino databases with high concurrent user access with good response times.

  • Session management

    Portlet Factory implements session management. Portlets can use either the active user or a broker that acts on behalf of a group of users to authenticate against the Domino backend.

  • Clustering

    The Portlet Factory connector can access clustered Domino servers.

    In high availability and performance scenarios the Portlet Factory service can be clustered as well.

  • Scalability

    The Portlet Factory has been tested for databases with more than 100,000 documents and 1000 concurrent users.

  • Requires single sign-on

    Portlet Factory supports the following SSO configurations:

    • Active and passive credential vault

Required software versions

Portlet Factory is currently available in Version 2.0 and requires the following software:

  • WebSphere Portal 4.1/4.2

  • WebSphere Application Server 4.0.4

  • Domino 5.0.10 or later or Domino 6

Portlet creation methodology

CONET's Portlet creation methodology is completely Domino-centric. Portlets are created in a way similar to that used to build a Domino application.

The elements that define a Portlet are called "Building Blocks."

To better understand the building block concept, let's draw an analogy and imagine a Notes view, for example your "All Documents" view in your mailbox. You can ask yourself the question: What elements define this Notes view?

The answer is that the Notes view:

  • Lives in a Domino database

  • Has a selection formula

  • Has layout information

Usually, a Notes view is created in the Domino Designer by defining these three elements inside of a view design element.

Let's compare this to a Portlet definition in Portlet Factory. Portlet Factory uses Portlet building blocks. Portlet building blocks deal with information, for example, about the database, selection formula, and the layout. So it uses the same three basic elements that we would use to build a Notes view.

Figure 7-38 on page 401 shows a comparison of a Portlet and Notes view.

click to expand
Figure 7-38: Portlet to Notes view comparison

To build a Portlet out of building blocks, Portlet factory allows you to combine base elements like databases and selections into higher level elements called "Queries" and "Portlet Definitions."

Figure 7-39 on page 402 shows the containment hierarchy of the different building block elements.

click to expand
Figure 7-39: Element containment hierarchy

The Query element is essentially used to build views by summarizing one database, one selection, and layout information. The top-most element is the Portlet Definition. It can contain one or multiple Queries. This way, data from multiple Domino databases can be mixed, merged or categorized.

Once you have created a Portlet definition, Portlet Factory is able to automatically create a WebSphere Portal Portlet for you. With one click in the Portlet Factory UI, the tool creates a Portlet war file for you that can be deployed in WebSphere Portal.

In addition to being able to define views, Portlet Factory also allows you to create forms with read and write access, implement Portlet cooperation, and a lot more.

The key concept

The key concept to implement layouts and functionality with Portlet Factory is the use of the @formula language. The Portlet Factory @formula language is a superset of the Notes @formula language we all know from Domino development.

The Portlet layout is defined by using HTML with embedded @formula language, as illustrated in Example 7-1.

Example 7-1: HTML with embedded @formula language

start example
 <table border=0 cellspacing=0 cellpadding=0 width=100%> <tr><td> <@ fldTitle @>  <@ @if(@Date(@modified)=@today;'<img src=/images/newicon.gif>&nbsp;';'') @> <br> <@ fldAbstract @> </td> <td><@ @Date(@Modified) @><td> </tr></table> 
end example

You see that Portlet Factory uses the @formula language in the same way you would use Java on a JSP page. As opening and closing tags for @formulas, you have to use <@ and @>. @Formulas can be as simple as single fields or can be more complex, for example @if conditional constructs.

Figure 7-40 is the Portlet output for the previous code example.

click to expand
Figure 7-40: The output result for the previous code example

Portlet Factory allows you to use the entire Notes @formula language to build Portlets. It also gives you additional @formulas that make sense in the Portlet context.



 < Day Day Up > 



Portalizing Domino Applications for Websphere Portal
Portalizing Domino Applications for Websphere Portal
ISBN: 0738499811
EAN: 2147483647
Year: 2003
Pages: 103
Authors: IBM Redbooks

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net