To fine-tune your application, AquaLogic DSP comes with an Administration console. This console allows users to manage, browse, and monitor all deployed applications. We'll briefly examine some of the security, caching, and monitoring features.
AquaLogic DSP compliments the rich WebLogic Security framework, and also provides fine-grained security at the data level. Security policies can apply at various levels of granularity, including:
Let's now walk through a typical security configuration. Refer to the sample tutorial guide for AcquaLogic DSP for more detailed steps.
The user will not see the ITEMNUMBER and QUANTITY in the return shape. This demonstrates the fine-grained security at the data level.
In the above section, we looked at how ADSP 2.0 can perform fine-grained security on the data. Here we applied security on the individual elements of the return shape of the data service. This feature helps the administrator to closely control what the user sees without requiring a single line of custom code to achieve this.
ADSP can cache results of functions exposed in a data service. This is a very useful feature in the case of distributed queries since network latency is avoided here. If caching is enabled, then the next time a query is invoked using the same parameters, the cached results are returned. The cache expires according to the configuration policy on that particular function. The choice of Time To Live (TTL) is critical and determines how frequently the cache is refreshed. Figure 6 shows configuration of the cache and TTL for data service functions.
Figure 6. Configure cache and TTL for data service functions
Let's look at the cache in action in the OrderManagement application:
getCustomerSummary()function. Note the time to execute.
This section examined a small part of the caching features—in particular, how to configure the caching to the granular level of functions. TTL helps administrators to determine the validity of the cache. This feature is very useful in the case of distributed and slow response data sources where data changes are minimal.
Administrators can monitor the currently running queries and terminate the long-running queries, if required, using the AquaLogic DSP console. This page also provides you with information about the cache and runtime information regarding the same.
You can see the information by selecting OrderManagment-> Monitor.
You can also view metadata information about all registered data services in an AquaLogic DSP application. Administrators and developers can get metadata information including general information about the data services such as name, type, creation information and their functions and relationships with other data services, where the data service is used, read functions of the given data service, user-defined properties of the data service, and details of the function. The "where used" and relationship data helps administrators understand the lineage and relationship of the data service with other data services.
In addition, you are given the option of data services searching and report generation using various criteria.
BEA's streaming XQuery engine forms the heart of AcquaLogic DSP. The XQuery engine was designed to provide high performance for message-processing applications (such as for transforming XML data streams). While designing a robust, efficient machine like the XQuery engine, which pulls data from distributed sources, BEA considered the following elements:
Figure 7 shows an overview of BEA's XQuery engine. Once an XQuery statement is fed into the engine by the client application, the XQuery is parsed and optimized by the engine. The compiler generates a query plan, which is a tree of operators that consumes data from one another in a cascading fashion. The query plan is interpreted by the runtime components. All XML data is represented as a stream of tokens roughly equivalent to SAX events. The engine's performance is enhanced using streaming, query plan caching, and SQL push-down. The engine also comes with a rich set of custom XQuery functions to supplement the specification.
Figure 7. BEA XQuery engine overview
When we execute a function inside logical or physical data services using the SDO Mediator or ADSP control (the Liquid Data control), the XQuery is delegated to the XQuery engine that analyzes the query, executes the query against different data sources, and aggregates the results. The XQuery engine returns results in the form of XML, which in turn is mapped into SDO-enabled XMLBeans generated for the particular data service. This SDO is used by clients and if required will update the original data source using the update functionality provided by the SDO implementation.
The AquaLogic Data Service Platform 2.0 offers revolutionary and intuitive features that will make any data steward's life easier. The loosely coupled architecture introduces good control over data services, and easy maintenance and monitoring. It reduces the number of work days in your project by reducing the integration code, and therefore reducing the cost and also development time to a great extent. This article provides a high-level overview and tutorial of some of the features found in the AquaLogic DSP. My hope is that you can build on these examples to explore the full power of this tool.
Manu Madhusudhanan R is a member of the Liquid Data team at BEA Systems. His expertise includes design and analysis of enterprise applications. His areas of interest include Design Patterns, Grid Computing and Agile Technologies.