Skip to main content

Information Aggregation::User Information Access::Runtime patterns

User Information Access (structured data)::Runtime pattern

User Information Access (structured data)::Runtime pattern BrowserWeb Application ServerWin32 ApplicationQuery and Analysis ServerData Server ServicesData Server Services
Design Last Updated: 12-14-2004
(Click a node to get a detailed explanation.)

User Information Access runtime patterns are more conveniently divided into those that access structured data and those that access unstructured data.

The figure above represents the basic Runtime pattern for structured data including a representation of drill-through corresponding to the User Information Access application pattern.

In the figure above, the Presentation/Web Application Server node handles the user interaction originating from a Browser. This component or a fat client operating via a product API (represented by the Win32 node in this Runtime pattern) passes requests to the Query and Analysis Server node, which then processes them and returns the results to the user on the Browser or the client. The underlying interaction between two Data Servers to support the drill-through function can be seen in this diagram.

User Information Access (unstructured data)::Runtime pattern

User Information Access (unstructured data)::Runtime pattern BrowserWeb Application ServerWin32 ApplicationSearch and IndexingData Server ServicesData Server Services
Design Last Updated: 12-14-2004
(Click a node to get a detailed explanation.)

The figure above represents the basic Runtime pattern for unstructured data corresponding to the User Information Access application pattern.

In the figure above, we illustrate the case of the Search & Indexing accessing data from two independent Data Servers. (The two redbooks Patterns: Information Aggregation and Data Integration with DB2 Information Integrator, SG24-7101, and Patterns: Portal Search Custom Design, SG24-6881, also used the terms "Search" and "Search Server" for "Searching & Indexing.")

User Information Access (unstructured data)::Runtime pattern=Search adapter variation

User Information Access (unstructured data)::Runtime pattern=search adapter variation BrowserWeb Application ServerSearch and IndexingSearch AdapterData Server Services
Design Last Updated: 12-14-2004
(Click a node to get a detailed explanation.)

In a portal implementation, a search technology will often be expected to have "brokering" capabilities. This is the ability to search multiple data indices simultaneously, and provide a seamless consolidated result set with reasonable response time. In most cases, such multi-source brokered search solutions will be implemented via the inclusion of "search adapter" nodes, as depicted in the figure above.

The search adapters, then, contain the logic to interface with the actual data indices - either interacting directly with the index at a database level, or interacting with a controlling application's search interface (normally via a product API). In some cases, multiple search adapters may exist to process queries against a single data index. The idea here is to eliminate any single node in the process from becoming a bottleneck, if too many search requests run against one source. The data indices themselves are regularly updated by the "population" based capabilities discussed in other Runtime patterns.

The search adapters then return the search results from each individual data index, which the search brokering node must then aggregate and normalize so that the results appear to be from one "virtual" source. The aggregated results are sent back to the presentation/Web application server node, which must format the results for sending back to the client that requested the original search. Search results may be sent back to the presentation node in an already formatted manner (that is, full HTML), or may be passed in a manner that requires the presentation node to transform the data (that is, XML) into the appropriate formats. Similarly, the presentation/Web application server node may then pass the search results to the client in either a fully formatted manner, or may leave the final formatting of the search results up to the client application.

Overall, this separation of the search capabilities into multiple nodes in the Runtime pattern, when they were simply defined as a single "data integration" tier in the application pattern view, provides for a level of flexibility in terms of maintenance and performance tuning that would otherwise be unavailable should only a single node provide the required capabilities.

User Information Access (unstructured data)::Runtime pattern=Search services variation

User Information Access (unstructured data)::Runtime pattern=search services variation BrowserWeb Application ServerSearch and IndexingSearch AdapterSearch and IndexingData Server Services
Design Last Updated: 12-14-2004
(Click a node to get a detailed explanation.)

Another variation of this Runtime pattern to consider is support for the cases in which the "data" being searched is not data itself, but rather a "search service" with a defined API for interaction. In such a case, an additional variation would apply to highlight the fact that the search adapters may not directly access a data index, but may interact with an existing search service to actually perform the search. This variation is shown in the figure above.

The main difference between this variation, and the search adapter variation, is the inclusion of another search node - representing the external "search service" to be accessed by the search adapter. As far as the user of the application is concerned, they do not know that the search is being performed against a data index directly, or via such a search service.

For more details on Runtime patterns for unstructured data, please refer to the redbook Patterns: Portal Search Custom Design, SG24-6881.

Win 32 App

A Win 32 App is the process, running on a user workstation, that provides 'fat client' function to the user.

Browser

A Browser is the process, running on a user device, that provides 'thin client' function to the user.

Web Application Server

A Web application server node is an application server that includes an HTTP server (also known as a Web server) and is typically designed for access by HTTP clients and to host both presentation and business logic.

The Web application server node is a functional extension of the informational (publishing-based) Web server. It provides the technology platform and contains the components to support access to both public and user specific information by users employing Web browser technology. For the latter, the node provides robust services to allow users to communicate with shared applications and databases. In this way, it acts as an interface to business functions, such as banking, lending, and HR systems.

The node can contain these data types:

  • HTML text pages, images, multimedia content to be downloaded to the client browser
  • JavaServer Pages
  • Application program libraries, such as Java applets for dynamic download to client Workstations

See Also

Additional Resources

  • (in English) ESS

Query and Analysis Server

A Query and Analysis Server is the process that provides access to structured data residing in a database or collection of databases or other stores. Function placement depends on whether the interface is via a Win 32 App client or Browser client, and if the data is distributed over multiple servers. The Query and Analysis Server may range in complexity from simply making database calls, through report writing to high-function Business Intelligence processing like on-line analytical processing (OLAP).

Data Server/Services

A Data Server/Services node is a generic data storage node that provides managed, persistent storage of any type of data and a means to directly access and manipulate that data. The data may be stored in files and accessed through file I/O routines or may be stored in a database with more structured and managed access methods.

Search and Indexing

A Search & Indexing node provides a function to catalog and/or index the content data sources. This will provide the capabilities to locate specific content (e.g. product or catalog information) and to update this search capability when updates are added (via indexing).

Search Adapter

The Search Adapter contains the logic to interface with data indices — either interacting directly with the index at a database level, or interacting with a controlling application’s search interface (normally via a product API). The search adapter then returns the search results from each individual data index, which the search and indexing node must then aggregate and normalize so that the results appear to be from one "virtual" source.