Web portals are hot. They allow quickly building usable sites, composite applications, integrated views of data and content, etc. It is more fun putting together building blocks, rather than engaging in tedious development of individual content presentation components. Portals make it possible. But how do they actually work? Understanding how a web portal works helps to choose the right portal for the job and ensure that design inspiration is not going to be restricted by technology limitations.
First, let's agree on what the main purpose of a web portal is. There are two most important features which make it or break it:
- content integration- content personalization
This is it. Sort of like a car, which has an engine, wheels and a body - this is what makes it and what really matters, all the rest are nice add-ons: stereo, leather, GPS, color, sunroof and other good stuff.
So what about document search, people finder, conference room scheduler, chat and other exciting apps which make a portal userful - are they part of a web portal? No - web portal is not that. It is an integration platform which provides capabilities for putting all this together in a way that allows people to use it effectively and like it too, and as a result - they will ask for more features. Business requirements are changing faster than ever, and web portals should be able to continuously integrate new features and personalize them for individual users or groups of users.
Below we look under the hood of Arnica WebPortal and see how content integration is made possible, here is its short description. Arnica WebPortal is a fast and powerful integration and personalization engine with the scalability of serving content to a few users on a small intranet site to millions of public web site users. Its asynchronous content acquisition engine and flexible content processing capabilities allow to integrate virtually any web content into single container pages, which appear to users as a solid web application, while in effect content parts are derived from different applications, running on different servers written in different programming languages by different programmers for different platforms.
In an abstract view, web portal connects to multiple applications simultaneously, gets a response, processes results and display them in web page parts called portlets:
Using Arnica WebPortal, we will now create a simple container page presentation generated by the portal from the content derived from internal and external sources.
In the example below, the container page will integrate banner content (stored internally within portlet definition) with the output from Arnica LinkServer and Arnica WebReport. LinkServer generates the set of links on the left side of the portal container page; WebReport generates a customer list obtained from a database query in the middle-right part of the container page. Arnica WebPortal may communicate with applications, which provide content using different protocols: generic web request (REST), COM local call, .NET local call, DCOM distributed call, SQL database access, etc. However, the most appropriate protocol for web integration is a generic web request: its platform independence and language neutrality ensures the most broad integration capabilities. In our example, we will use a generic web request call (REST call) call to the Arnica LinkServer and Arnica WebReport.
For the purpose of this demo, we created LinkServer-based collection of links, which may be invoked independently using the following URL: http://demo.arnicasoftware.com/LinkServer/Output/Proxy.ASPX?Method=LoadLinkCategoryPage&LinkCategoryCode=DEMO7_Portal_Integration_Example
To associate this URL with a portlet we have to enter it as portlet request target and specify that portlet should make a generic web request (REST call) using this URL:
Report for the second portlet may also be invoked independently using the following URL: http://demo.arnicasoftware.com/WebReport/Output/proxy.aspx?Method=LoadReportPage&ReportCode=DEMO7NW_Customers_Portal_Integration_Example
This report's URL was registered within its own portlet request definition:
Finally, to display a banner on the container page, we created a portlet which displays static content saved within this portlet definition:
All three portlets are connected by the container page, with designers specifying in which part of the container page they are placed. The examples of container parts in our case are: banner part, left narrow column, the right wide column:
When everything is connected, the container page can be viewed here: http://demo.arnicasoftware.com/WebPortal/Output/Proxy.ASPX?Method=LoadPage&ResourceCode=DEMO7_Integration_Test:
Another example of integrated presentation is available from Arnica Software demo site here: http://demo.arnicasoftware.com//webportal/output/proxy.aspx?method=loadpage&resourcecode=demo7bidashboard&productid=352:
In this integration example, Arnica WebPortal connects output from four different reports and creates an integrated analytical view on product sales data. An HTML5-enabled browser is recommended to view this example as it uses interactive HTML5 charting engine built-in into Arnica WebReport.
This article demonstrated one of the most important features of a web portal - its integration capabilities. We did not get into more details of personalization features, however, it is important to note that the success of personalization capabilities greatly depends not only of the web portal itself but also on the identity management system chosen for the project. An identity management system is responsible for maintaining all the atomic properties of the user profile and continuously updating both profile values and profile structure. Arnica WebPortal is closely integrated with our identity management system Arnica UnifiedLogon. Through UnifiedLogon syncronization with external directories, ArnicaWebPortal may use user properties from Microsoft Active Directory, external databases, flat files, web services and other sources of data. Based on user profile data, WebPortal makes decisions on whether a particular portlet is available to a particular user, how it displays data, whether any additional filters are engaged, and so on.