Web Portal Application Development Technologies

INTRODUCTION

The growth of the Internet and the World Wide Web has contributed to significant changes in many areas of our society. The Web has provided new ways of doing business, and many companies have been offering new services as well as migrating their systems to the Web.

The main goal of the first Web sites was to facilitate the sharing of information between computers around the world. These Web sites were mainly composed of simple hypertext documents containing information in text format and links to other documents that could be spread all over the world. The first users of this new technology were university researchers interested in some easier form of publishing their work, and also searching for other interesting research sources from other universities.

After a few years the popularity of the Web increased significantly, especially after the creation of user-friendly Web browsers and Internet services providers. Home users started to get interested in accessing the Web, and many companies saw this as a major opportunity for offering their products and services. The new idea was not to use the Web as a collection of simple static Web pages, but as a way of providing richer dynamic content to the user, such as graphics, images, sounds, videos, and so forth.

The demand for complex services such as online banking, e-commerce, e-learning, and business-to-business transactions was made possible due to the evolution of Web site construction technologies. Technologies such as script languages (e.g., JavaScript), server side technologies (e.g., JSP, ASP, CGI), and middleware (e.g., Corba, EJB, Web Services) enabled the construction of Web applications whose context could be generated dynamically, and were able to perform operations such as queries and updates in a database.

These emerging technologies contributed to a scenario where a new kind of application began to grow in popularity, Web portals. The main idea of a Web portal was to provide an integration point of access to information, applications, and people (Bellas, 2004; Ruby & Christopher, 2003; Wege, 2002). Therefore, a portal offered users, at the same place, the capabilities of seeing the most recent news, executing searches, and also shopping.

The evolution of capabilities provided by Web portals, such as content management, personalization for different users and groups of users, collaboration, and security, imposed difficulties for Web portal developers. The main challenges faced by the developers were:

• How to integrate different applications inside the intranet and also over the Internet

• How to provide specific content to different kinds of users and how to categorize users in groups and provide the necessary information

• How to obtain the information from other partners, or service providers, over the Web

• How to gather and tailor the information to the specific target users

• How to secure the access of different kinds of users

In order to address some of these issues, specific tools and platforms have been developed to facilitate portal construction, management, and operation. The main goal of this article is to provide a detailed description of the state of the art technologies, standards, and tools for Web portal engineering.

BACKGROUND

A portal provides a common gateway to access information, applications, and services over the Web. A lot of companies use portals as a means of integrating their intranet applications to simplify business processes within the organization, enabling cost and time effectiveness. Moreover, companies also extend this idea with their business parties to the extranet environment, where they can provide solutions to facilitate their transactions, for example, simplifying chains of operations in business to business. A basic architecture of a portal is shown in Figure 1.

Some of the services shown are common to several portals and a brief explanation is provided. (For more details see Dovey, 2001.)

Figure 1. Basic portal architecture

Basic portal architecture

• Content Management: A portal contains information from different sources, and the information can be updated very frequently. Therefore, a portal should provide an easy way to change its content, while at the same time try to automate whatever is possible by providing tools to facilitate updates to users, as well as implementing automatic services that capture information updated in remote sites (e.g., newsletters, other portals, etc.).

• Content Syndication: Syndication services interact with information sources (content providers) via an appropriate protocol. Content providers offer their content in standardized formats such as rich site summary (RSS), news industry text format (NITF), NewsML, and Extensible Markup Language (XML).

• Personalization: The main goal of personalization is to provide a means to present the information based on the user profile, enabling customizations in content and appearance for different kinds of users or groups of users. The portal can also enable the user to define his/her own personalization features, providing him/ her functionalities to select what services s/he wants to view, and also facilitating reconfiguration of GUI regarding positioning and color of elements (pages, frames, links, etc.).

• Collaboration: This service aims at providing a set of functionalities that can leverage the communication between the users of the portal, such as discussion lists, chats, and newsgroups.

• Security: This is a vital concern for a Web portal. The portal should provide ways for authenticating and controlling user access to information and applications. It is also important to control how the information is stored and exchanged with the portal by using mechanisms such as cryptography.

Not all portals provide all services described. There are many technologies and tools that can facilitate the construction of portals by providing easy ways to implement the previous services. This will be discussed later in this article.

The main services of portals described in this section form a cornerstone in the understanding of Web portals. The complexity in Web portal development increases with the level of detail and number of services the portal offers, as well as the intended audience. Therefore, these concepts are vital to understand what a portal can offer and for whom its services will be most suited.

WEB PORTAL DEVELOPMENT

Basic Technologies

When considering Web portal development, one comes across a set of basic Web technologies that are widespread in different kinds of Web applications. Figure 2 shows a common architecture for Web applications based on Java technologies.

Figure 2. Web application architecture

Web application architecture

Such an architecture structures the Web system in layers that implement different concerns and offer services to upper layers. The model separates concerns related to presentation (user interface), communication (distribution), business rules, and persistence. This enables better maintenance, reusability, and evolution of the system.

The idea is that different kinds of clients (different browsers, hardware, operating systems) can request services from the Web application. The application can be implemented in the Web server, using technologies, such as Java Server Pages (Java Server Pages- JSP Web site) or Servlets (Servlets Web site), that dynamically interact with the user and also with business code that can be distributed in another server (application server). The business code can call services provided by the persistence mechanism to perform database transactions, file storage, and so forth.

This example is described using Java-based technologies, but other technologies offer a similar approach. Next, a group of technologies that are related to the architecture shown is presented. Only an overview of these technologies is provided here, as the main goal of this article is to describe more advanced technologies related to Web portal development, such as Java portlets (Java JSR 168 Portlet Web site) and Web services remote portlets (Web Services Remote Portlet Web site).

The presentation layer implements services related to the user interface. It can combine technologies that perform server-side processing such as Java Server Pages, Servlets, Active Server Pages (Active Server Pages – ASP Web site) or common gateway interface (Common Gateway Interface – CGI Web site) with technologies that perform client-side processing such as JavaScript (Javascript Web site). While the first offer services for communicating with business rules layers and also for generating dynamic content, the latter are focused on doing user interface validations such as checking if the user has filled in the information properly. Moreover, the content of the user interface can be composed of different kinds of media such as sounds, pictures, images, movies, and hypertext.

The communication layer is composed of technologies that facilitate the communication of distributed components (e.g., applications, objects) over the network by offering high level application programming interfaces and services to the programmer that hide lower level implementation details. The main technologies in this layer are middleware (Emmerich, 2000) such as common object request broker architecture (Common Object Request Broker Architecture

- CORBA Web site), Enterprise Java Beans (Enterprise Java Beans – EJB Web site), and Web services (W3C Web Services Web site). Moreover, the communication layer is composed of network protocols such as hypertext transfer protocol (HyperText Transfer Protocol – HTTP Web site), transmission control protocol (Transmission Control Protocol – TCP Web site), Internet protocol (Internet Protocol IP

Web site), or simple object access protocol (Simple Object Access Protocol – SOAP Web site).

The business layer provides the implementation for the business rules of the Web application using technologies such as object oriented languages (C++, Java, and C#). The business objects can “talk” to server-side technologies and also to persistence technologies to implement the system functionalities.

The persistence layer encompasses technologies that provide a way to persist data such as database management systems such as DB2 (DB2 Database Management System Web site) or MS SQL Server (Microsoft SQL Server Database Management System Web site), and also application programming interfaces that facilitate database programming such as Java Database Connectivity (Java Database Connectivity – JDBC Web site), OLEDB (Microsoft OLEDB Web site), ADO.NET (Microsoft ADO.NET Web site).

The previous technologies serve as a foundation for Web portal development. The next section shows technologies that are based on these previous technologies and were devised specifically to support the implementation of complex portal functionalities such as personalization, syndication, collaboration, and so forth.

Portal Development Technologies

As portal functionalities have increased in complexity over the last years, technologies that support portal development have had to evolve in order to cope with this complexity. The first technologies created to address this problem were the Java 2 Enterprise edition (Java 2 Enterprise Edition—J2EE Web site ) and Microsoft .NET (Microsoft .NET platform Web site) platforms. Recently, other standards have been created aiming to improve even further the support for Web portal development, for example, Web services (W3C Web Services Web site), portlets (Java JSR 168 Portlet Web site), and WSRP (Web Services Remote Portlet Web site).

The J2EE and .NET platforms, developed respectively by Sun Microsystems and Microsoft, are the cornerstone of today’s enterprise portals and complex Web applications. Both platforms are composed of a set of similar technologies, some of them described in the previous section, and contain similar architectures.

Solutions based on these platforms are very similar in their structure varying only in the technologies used. It is not the purpose of this article to describe how these technologies differ or what are their advantages and disadvantages over each other. Interested readers are referred to Sheil and Monteiro (2002) for a comprehensive comparison.

Figure 3 and Figure 4 present architectural perspectives on both platforms, showing the specific technologies used by them. The technologies perform a similar role in Web development and comply with a layered architecture similar to the one described in Figure 2. For example, while the J2EE platform uses JSP and Servlets for server-side processing, the .Net platform uses ASP.NET for the same purpose.

Figure 3. J2EE Platform

J2EE Platform

Figure 4. .NETplatform

 .NETplatform

These platforms continue to evolve by incorporating recent standards that are focused on accelerating Web application development. One important standard that each of these platforms now implement is the W3C Web Services standard (W3C Web Services Web site).

Web services provide a standard means of interoperating between different software applications, running on a variety of platforms and/or frameworks. Providers offer different kinds of services that other applications can use without having to know the implementation details.

For example, a Web-based bookstore can use a Web service to check if the client’s credit card has enough funds, and then confirm the purchase. In this case, the Web bookstore acts as a consumer of the credit card service that can be implemented in another Web application (e.g., Visa, MasterCard, and American Express Web sites). Moreover, the Web bookstore can also act as a producer of other services to other partners. The foundation elements of the Web services implementation is shown in Figure 5.

Figure 5. Web services overview

Web services overview

Web services architecture requires three fundamental operations: publish, find, and bind. Service providers publish services with a service broker. Service requesters find required services using a service broker and bind to them.

The service description mechanism used in Web services is the Web Service Description Language. The WSDL is basically an XML specification that contains details about the functionalities the service provides. After implementing the service in a Web service compatible language, the provider can publish the WSDL file of the service in the service broker (UDDI).

The Universal discovery description and integration (UDDI) is the yellow pages of Web services. It contains information about services categorized in standard taxonomies, such as standard industrial classification. The users of the Web service can find information about companies and services they provide. Moreover, the requester can find information on how to start using the Web service of its interest.

After finding the service, the requester can then bind to the Web service and start the communication using the simple object access protocol (SOAP). SOAP is a specification that defines the XML format for messages exchanged by Web services and serves as the communication protocol.

Portlet and WSRP

Although the previous technologies (J2EE, .NET, and Web services) offered significant improvements for Web application development, something was still missing regarding Web portal development. In the case of Web portals, personalization, syndication, and collaboration impose serious difficulties for developers. Recently, the JSR Portlet and WSRP standards have been created to address the challenges faced in Web portal construction.

Figure 6. Portal architecture with Portlet and WSRP

Portal architecture with Portlet and WSRP

The idea of constructing Web portals by assembling components that generate personalized content dynamically has created different and incompatible solutions and APIs for Web components, called portlets. To overcome these problems of incompatibility and interoperability, the JSR (Java Specification Request) 168, the Portlet Specification, was designed to enhance interoperability between portlets and portals.

JSR 168 defines portlets as Java-based Web components, managed by a portlet container, that process requests and generate dynamic content. Portals use portlets as pluggable user interface components that provide a presentation layer to information systems. Therefore, portlets provide a way to facilitate personalization of content for users by generating fragments (pieces of markup such as HTML, XHTML, or WML) adhering to certain rules. A fragment can be composed with other fragments from the same or from different portlets to form the Web pages.

Figure 6 describes a portal’s basic architecture using portlets and WSRP. The portal Web application processes the client request, retrieves the user’s specific portlets on the current page, and then calls the portlet container to retrieve each portlet’s content. The portlet container provides the runtime environment for the portlets (similar to servlet containers in servlets) and calls the portlets via the Portlet API. The portlet container is called from the portal via the Portlet Invoker API; the container retrieves information about the portal using the Portlet Provider SPI (service provider interface).

The portal can also provide/consume services to/from other portals through the Web services for remote portlets (WSRP) standard. The WSRP specification extends the ideas of Web services presented previously to be used with portlets. The provider of a service implements the portlet remotely, and the consumer makes calls to this service without having to handle the personalization issues.

It is important to understand that the WSRP is a standard that provides a specification that technology implementers should respect. The JSR 168 API implementation complies with WSRP issues such as portlet modes and window states, URL encoding, and creating URLs that point to the portlet. (For more information, see Java JSR 168 Portlet Web site , Web Services Remote Portlet Web site.)

CONCLUSION

Web portals present an effective way to integrate applications, people, and business by offering a unique point of access to these resources within an organization and also with external business partners. Moreover, the integration of business processes, automation of daily tasks, and data integration contribute to cut down costs and accelerate business operations.

However, Web portal development and maintenance presents many challenges such as how to provide personalization features to users, how to control access from different users, how to integrate and present data from different sources, and how to maintain the content of the Web portal.

To overcome these problems, many Web development technologies, standards, and tools have been created over the last decade. The technologies and standards, such as JSP, XML, Web services, and portlets, were developed to facilitate features such as generating dynamic content, integrating data, integrating services, and personalizing content.

This article presented an overview of some existing technologies available to implement Web portals. The description started with base technologies such as HTML, JSP, Servlets, and ASP, and concluded with more advanced technologies like .NET, J2EE, portlets, and WSRPs.

In Sampaio and Rashid (2005), a detailed description of recent leading portal development tools is presented. These tools build upon the concepts and technologies presented in this article, and vary from commercial tools to open source tools.

KEY TERMS

Client-Side Technologies: Technologies (e.g., Java Script) that run in the context of the user’s Web browser.

Java 2 Enterprise Edition (J2EE): Sun Microsystems’ solution for the development of complex enterprise Web applications.

Microsoft .NET Platform: Microsoft’s solution for the development of complex enterprise Web applications.

Portlets: The JSR 168 specification defines portlets as Java-based Web components, managed by a portlet container, that process requests and generate dynamic content

Serve-Side Technologies: Technologies (e.g., JSP, Serv-lets, ASP) that are located on the Web server and dynamically interact, as well as business code.

Web Portal: A Web application that offers an integration point of access to information, services, applications, and people.

Web Service Remote Portlets (WSRP): Portlets implemented remotely that can be called by consumers that reside in different servers.

Next post:

Previous post: