YOUR FEEDBACK
Adobe Flex 2 - Answering Tough Questions About Enterprise Development
A Correct Person wrote: Denis Roebrt commented on the 21 Aug 2006 "Tough Que...
SOA World Conference
Virtualization Conference
$50 Savings Expire May 23, 2008... – Register Today!

SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


Where Has My Data Gone?
Accessing Data in a Service Oriented Architecture

Digg This!

Page 2 of 2   « previous page

Challenge 2: Enrich, Cleanse, Aggregate Data
In modern applications, data usually does not come just from one place and get presented directly to consumers. It often needs to be formatted (e.g., a date), aggregated or enriched, or cleaned.

For example, a big part of an employee record might come from the HR system but the employee's vacation time is stored in some other place requiring a merge of those two sources into one.

There are several ways aggregation or enrichment can be implemented. At the most basic level, it can be done natively in the application no matter what the technology. However, if the underlying data model changes (or just a column name changes), several places need to be updated, which can be time-consuming. This leads to the use of object-relational mapping solutions because the domain model is easily shared and the mapping can be changed just in one place. On the more sophisticated side the data service implementation could access multiple data sources using native results to compose the common domain model. (Table 3)

When multiple data sources return a variety of XML documents that comprise the common domain model then XML aggregation is the answer. Due to the evolution of orchestration and XML as a common data format, BPEL is the perfect tool for aggregating or enriching data that is already in XML and later serving it to consumers. Although for large payloads and results, using an Enterprise Service Bus might be a better choice.

Challenge 3: Distribute Data
When all components and layers reside within one application, access is native and in memory. In a SOA, however, services run in a decentralized manner and in different places, introducing the challenge of different protocols and even greater need for solid error handling. What happens if a service is down or not accessible - how will the application be affected? The use of BPEL offers a great way of composing these services into one process or composite service, which can be leveraged later. Using this approach brings more freedom to the service's consumers but also introduces another layer that needs to be maintained.

One purpose of this is data pulled into several UI technologies, such as a portal or BAM to monitor performance.

For example, a supervisor wants to see the performance of employees in real-time and wants to be able to take corrective actions (such as rerouting a request to other teams). In this case, the data from the business process (and its services) can be pulled out into a BAM instance to create a real-time dashboard.

Note: The technology mapping of this section has already been covered in the Access table.

Challenge 4: Persisting Data
A data access solution must provide proper transactional support allowing the application to apply changes to the data stores through the exposed operations and the supplied changes to the domain model, ensuring that the proper transactional semantics are obeyed, based on the data store's requirements and implementing any necessary concurrency protection (locking). (Table 4)

Especially with SOA, more than one application will use a certain service at the same time, so transaction protection needs to be considered. One possibility is that each operation can be reverted. Another option is to sacrifice loose coupling to allow clients to use transactional behavior.

Evolving a Multi tier Application into a Reusable Set of Services
The goal for the next generation of applications is to morph them smoothly into a SOA - and not force them to be completely rewritten. If a clean separation of layers was introduced earlier, this may sound harder than it actually is. Let's review two possible morphing approaches:

1.  Traditional application (architectural model)
Following all the design patterns, a clean separation of concerns is desirable - especially moving forward to a SOA. In the following model, the application (representing the business logic) talks to the persistence via a defined set of interfaces and transports its data through Plain Old Java Objects (POJOs). (Figure 1)

2.  Morphing into a hybrid model
Expose just the needed artifacts and functions into service interfaces (a k a service enablement). These can be further used in BPEL to orchestrate complex business processes. The application, on the other hand, still uses the native, in-memory approach and is not affected at all. The model stays the same, and just certain pieces are exposed (the same interfaces!).

Integrating Data Through Services: A Use Case
Having discussed the pros and cons of various access technologies, such as JDBC, J2CA, Web Services, and Enterprise JavaBeans (EJB) as well as the challenges of accessing data, it's time to apply the information gained to a use case.

A large company runs its inventory system as a mainframe application that is maintained and updated through daily batch jobs. Due to the rising demand of a new front-end system, the company decided to develop a custom Java EE application, with a Java Server Faces front-end, capable of serving multiple clients but holding the mission-critical information in the back-end. Between those two systems, new items should be exchanged and enriched with external data from a supplier. The service for retrieving this information is offered through a secured Web Service. The architecture is laid out as follows:

Connecting these applications - all using different technologies - serves as a perfect example to illustrate choosing the right data access, aggregation, and persistence approach to build a best-of-breed solution. (Figure 2)

Applying the technologies discussed about, J2CA connectors, which provide native access to the underlying technology, can be used for the mainframe. Most of these adapters also provide a WSDL interface to the outside world, describing their exposed services. Each time a new item is triggered, the adapter fires an event.

The Java EE application consists of a data access layer built on top of EJB 3.0 to ensure flexibility in the mapping between domain objects and the actual database schema. These EJBs can either be exposed as real Web Services or offer just a WSDL interface but require native access.

In this case, an ESB can be used to provide the running infrastructure for orchestrating an overall flexible process. It not only contains rules for routing and aggregation but also offers error handling and ensures a high degree of data access and persistence performance by using native protocols.

Outlined Process Flow (ESB System Diagram)
As this example shows, an ESB can support the loosely coupled principles of a SOA but also address common data access challenges.

Conclusion
A data service is a means of decoupling and encapsulating the access to one or more data stores. This concept offers an approach to sharing common functionality across multiple client applications or services. Its physical separation allows much greater flexibility in implementation and future independent evolution while guaranteeing that the consumer and the data service negotiate on a contract.

The benefits of this approach include the ability to transparently aggregate data and even completely change data stores without requiring changes to its consumers. Additionally, it allows for a data service that may have once been used only in a fixed set of applications to be used within a business process as a more dynamic service orchestrated with declarative processes.

Each technology that has been discussed has pros and cons (starting with performance and ending with transactionality). We believe that it is important to keep those in mind and that the more data-rich the application is (the more mass data it has) the more a native approach is appropriate. On the other hand, the more loose coupling is targeted, the more the approach should lean toward a Web Service-based architecture. In this sense, using BPEL seems like a great way to enable data sources into services and allow performance and, to some extent, transactionality.

The key to a successful transformation is a solid understanding of the purpose of the data service, including the pros and cons of each technology used. The use of proven data access frameworks makes exposing data as services simple while not sacrificing performance. Good performance is essential in multi-layered applications, because it is crucial to the user experience. The best SOA is worth nothing if the users are sick of using the consuming applications due to their poor performance.

Although having shared data services appears to be an obvious solution for shared access to the same enterprise data stores, it does not come without costs. As in all design and architectural abstractions, the benefits must be carefully weighed against the costs and challenges. A vision of the enterprise's SOA strategy must also be taken into consideration when deciding when and where to use data services. This article has attempted to alleviate the difficulty in addressing the challenges of making these decisions in a SOA by describing and assessing the characteristics of data accessibility.

Reference:
http://webservices.sys-con.com/read/233667.htm


Page 2 of 2   « previous page

About Doug Clarke
Doug Clarke is a Principal Product Manager for the Oracle Application Server focusing on persistence and Oracle TopLink. Prior to his current role as product manager Doug has worked as a lead developer, trainer, and professional consultant. Over the past decade his primary focus has been on helping the global Fortune 1000 customers integrate relational and non-relational data into their Enterprise Java applications. Doug is a frequent speaker at conferences and user groups.

About Clemens Utschig
Clemens Utschig works within the Oracle SOA Product Management Team responsible for security aspects and cross product integration. Aside from technology, Clemens' focus is on project management and consulting aspects coming along with SOA implementations. As a native Austrian, Clemens' Oracle career started in Europe at the local consulting services branch—working with customers on J2EE and SOA projects, and founded the local Java community. He is a frequent speaker at conferences evangelizing either on technology or the human factor—two key aspects when introducing new concepts and shifts in corporate IT strategy.

WEBSPHERE LATEST STORIES . . .
3rd International Virtualization Conference & Expo: Themes & Topics
From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discussed in NYC June 23-24, 2008 by the world-class speaker faculty at the 3rd International Virtualization Conference & Expo being held by SYS-CON Events in The Roosevelt Hotel, in midtown
IBM Unveils Insurance Operations of the Future Powered By SOA
IBM announced two new advances in the insurance industry - a solution for improving operational efficiency and a framework for process acceleration - that are designed to help insurance providers lower costs and increase customer satisfaction by handling core processes, such as claims
ParAccel Announces OEM Relationship with IBM
ParAccel announced it has entered into an original equipment manufacturer (OEM) agreement with IBM. Under the terms of the agreement, ParAccel will embed IBM InfoSphere Change Data Capture within the ParAccel Analytic Database, providing ParAccel customers with seamless and real-time u
Microsoft To Keynote 4th International Virtualization Conference & Expo
Mike Neil is general manager for virtualization strategy in the Windows Server Division at Microsoft. Mike is focused on the delivery of the Windows virtualization technology, including Windows Server 2008 Hyper-V, Microsoft Hyper-V Server and Virtual PC 2007. Mike also directs the tec
Micro Focus Upgrades SOA Express for IBM CICS
Micro Focus announced the availability of SOA Express 8.0. The new version adds support for direct deployment into IBM's Customer Information Control System (CICS), enabling users to accelerate the deployment of Web services by reusing their existing CICS TS mainframe infrastructure in
Red Hat Named "Platinum Sponsor" of Virtualization Conference & Expo
Red Hat is a trusted open source provider. Red Hat offers enterprise customers a long-term plan for building infrastructures on the quality and innovation of open source. Combining open source operating system platform, Red Hat Enterprise Linux, together with applications, management
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE
BREAKING WEBSPHERE NEWS
Company Profile for BrightStar Partners, Inc.
BrightStar Partners, a professional services and implementation-based solutions company,