As enterprises move into developing SOAs for their internal infrastructure, data services have become a critical component of that architecture. Essentially data services allows one to take relational and other data and make them available as services. This not only enables easy integration of data into business processes but also for mashups and any service in general. Exposing enterprise data as Web services is however not a simple task. These services need to be well secured, highly reliable, and highly scalable with the ability to handle failures transparently. One of the challenges is to make data services consumable by many applications and hence having many integration options as well. At the same time the data that need be exposed could be in the form of relational data, CSV files, Excel spreadsheet files and so on.
For the enterprise another important factor for data service solutions is that it needs to be very database developer friendly. Database architects, developers and administrators who know best how to handle enterprise data and work very closely with that data, need to be geared with an easy mechanism to expose the data as services. This ensured highly flexible integration for enterprise wide SOA. In this talk Sumedha Rubasinghe will discuss the challenges and also introduce WSO2 Data Services which can be used to meet these challenges and help bring various data sources into the center of your enterprise SOA strategy.
1. Enterprise Data Services
for
Strategic SOA
Sumedha Rubasinghe
~ sumedha@wso2.com ~
http://sumedha.blogspot.com
2. The growth of SOA (Web Services)
• SOA hype
– promises of dynamic discovery
– Human readable messaging
– Simple XML data objects
• SOA approach - finally solving problems
• Application assembly using
– Loosely coupled components
– Well defined interfaces
– Growing demand for mashed up applications
• Interoperability
3. Enterprise data
• Processed & stored since beginning of
computing era
• Heterogeneous stores
• Generated by application silos
• Disconnected
5. Real world scenarios
• Application A
– Data from one legacy system / data store
• Application B
– Data from two heterogeneous data stores
– Daily Sales Report
• Cash register writes to a flat file
• Product details in a RDBMS
6. Real world scenarios (continued..)
• Application C - consolidating data from
three data sources
– Datasource 1 : Sales data from a flat file
– Datasource 2 : Inventory data
– Datasource 3 : Sales person data
7. Ways of solving
• Method 1
– Create a new data store
– Pull relevant data from 3 data stores
– Store it to match Application C’s requirements
– Now comes Application X…
– More overhead
– Redundant data
• Inconsistency
• Update anomalies
8. Ways of solving (continued..)
• Method 2
– Connect to 3 data sources & extract data
– Three different access mechanisms
9. Data access mechanisms in SOA
• Direct access to databases
(JDBC,ODBC,..etc)
• Use of O/R mapping frameworks
(Hibernate, Ibatis,...)
• Enterprise Java Beans (EJBs)
• CORBA
• Custom APIs
10. Method 2
• Issues
– Data access code VS business logic
implementation
– Difficult to reuse
– Difficult to maintain
– Difficult to test
– Error prone
11. Ways of solving (continued..)
• Method 3
– Single layer to fulfill enterprise data access
requirements
• Governed by,
– More and more data being generated
– Growing demand for consolidated, consistent information
– Mashups
– Interoperability & standards
12. Positioning of data access code
• Application developers like to deal with
business process related logic
• Changes in data source configuration –
transparent to application logic
13. Data Service?
• Yet another web service
• Well defined request/response format
• Encapsulates data oriented logic
• Loose coupling (application & data store)
• Data store specific configurations
• Management & QoS features
14. Challenges - Heterogeneous Data
stores
• RDBMS – specific or generic JDBC drivers
• Directories – specific drivers, API
• Flat files, Spread sheets – different APIs
• Different data types
• Access control mechanisms
15. Accessing a data service?
• It’s just another web service !!!
– Typical web service call
– REST call
• Direct call to API
<XML> Input Message
Data Services
Solution Database
Output Data
<XML>
16. Expectations - Data Integration
• Transformation (mediation)
• Federation
• Bridging the gap between
– data structures
– Formats
– Vocabularies
– Data model
17. Reusability
• It’s a web service
• Create once & use anywhere
• Substantial return down the line
22. Advantages of Data Services
• Most up-to-date data using a service call
• Single layer for SOA’s data requirements
• Optimization efforts visible to all
consumers
• Developer productivity
• QoS
• Battle tested runtime
23. Summary
• Need for Enterprise Data Services for SOA
• Challenges faced when implementing Data
Services
• Defined Data Services
• QoS, Life cycle expectations from a Data
Services implementation