Open Source Data Services for
       Strategic SOA
          utilising
 WSO2 Data Services Server
              Sumedha Ru...
Agenda

    SOA & Enterprise Data

    Need for SOA Data Services

    Introduction

    Features

    Architecture
...
Introducing Mattson ...
                   Hi..
                   Mattson here..
                   I am an architect
My manager wants
to see salary increments
done in HRM system to be
reflected in Payroll....

These systems do not
support ...
Oh..Payroll system is using
an Informix database while
HRM writes to a MSSQL
database...
Another scenario

    Build a Travel Expense Management System
    
        HRM – MSSQL
    
        Training Mgt – Spr...
Ways of solving

    Method 1
        – Create a new data store
        – Pull relevant data from HRM, Payroll & Training...
Ways of solving (contd..)

    Method 2
       – Connect to 3 data sources & extract data
       – Three different access...
Data access mechanisms

    Direct access to databases (JDBC,ODBC,..etc)

    Use of O/R mapping frameworks (Hibernate,
...
Positioning of data access code..

    Application developers like to deal with
    business process related logic

    ...
Method 2
Concerns
  − Data access code VS business logic implementation
  − Difficult to reuse
  − Difficult to maintain
...
Ways of solving... (contd)
Method 3
  − Single layer to fulfill enterprise data access
    requirements (Data Services)
 ...
Data Services?
Tell me about it...
Data Service ?
Well defined request/response format
Encapsulates data oriented logic
Loose coupling (application & data...
WSO2 Data Services Server
Simple Example

    Expose Employee Contact data in a MySQL
    database table as a data service

    Table Structure
GUI Wizard
Data Service Configuration
<data name="ContactInfoService">
   <config>
      <property name="org.wso2.ws.dataservice.driv...
Data Services Description Language

    In-house developed language for writing data
    services

    Maps service requ...
WSDL for the service
http://<IP>:<PORT>/services/ContactInfoService?wsdl
How to access a data service?
Multiple Data Source support
Secure Channel
Transformation
Federation
Caching
High availability
Throttling
Architecture

    Challenges
    
        RDBMS – specific or generic JDBC drivers
    
        Directories – specific ...
Architecture

    Data Services are SOA equivalent of the Data
    Access Object(DAO) Pattern

    DS deal with differen...
How to access a data service?
Accessing a data service – Java Client
Accessing a data service – REST
http://198.18.191.140:9763/services/DataServic
eSample1/employeesByNumber/1001
Accessing a data service – Try It
Monitoring
 – Monitor System statistics
 – Running logs
 – Message Tracing
 – Dynamically configurable Logger
 – Exposes s...
Use Case 1

    A mashup/ javascript/ Google Gadget wants to
    access data in a backend database
Use Case 2

    Re-using existing Master Data
Use Case 2
Use Case 3

    Master Data Update
Use Case 3
Use Case 4

    Content filtering based on logged in user
Use Case 4
Use Case 5

    Service enabling enterprise data
Use Case 6

    Integrating with an external system
Use Case 6
Use Case 7
WSO2 Product Platform
That's lot of information...
Now I would like to try these out
myself. How do I get started?
How to get started?

    Download binary distribution from
    – http://wso2.org/projects/data-services-server/java

   ...
Help.. I messed it up...
How to get help?

    Online forum(http://wso2.org/forum/404)

    Mailing list (ds-java-user@wso2.org)

    Active com...
I would like to have some
URLs for reference.
Useful references

    WSO2 Oxygen Tank for Web Service Developers
    – http://wso2.org

    Data Services HOWTOs Page
...
Summary

•
 Introduced WSO2 Data Services
•
 Features
•
 Use cases
•
 Getting started
Thank you
    sumedha@wso2.com
(on behalf of WSO2 DS team)
Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Upcoming SlideShare
Loading in …5
×

Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

2,531 views

Published on

This presentation at the AFITC 2009 (Air Force Information Technology Conference, August 24 - 27, 2009), Montgomery, Alabama by Sumedha Rubasinghe presents Open Source Data Services for strategic SOA utilising WSO2 Data Services Server.

Published in: Technology

Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

  1. 1. Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server Sumedha Rubasinghe 2009 Air Force Information Technology Conference Montgomery, Atlanta
  2. 2. Agenda  SOA & Enterprise Data  Need for SOA Data Services  Introduction  Features  Architecture  Use Cases  Getting started & help
  3. 3. Introducing Mattson ... Hi.. Mattson here.. I am an architect
  4. 4. My manager wants to see salary increments done in HRM system to be reflected in Payroll.... These systems do not support a programmable interface..
  5. 5. Oh..Payroll system is using an Informix database while HRM writes to a MSSQL database...
  6. 6. Another scenario  Build a Travel Expense Management System  HRM – MSSQL  Training Mgt – Spreadsheet  Payroll - Informix
  7. 7. Ways of solving  Method 1 – Create a new data store – Pull relevant data from HRM, Payroll & Training Mgt Systems – Store it to match new application’s requirements – Now comes another application… – More overhead – Redundant data • Inconsistency • Update anomalies
  8. 8. Ways of solving (contd..)  Method 2 – Connect to 3 data sources & extract data – Three different access mechanisms
  9. 9. Data access mechanisms  Direct access to databases (JDBC,ODBC,..etc)  Use of O/R mapping frameworks (Hibernate, Ibatis,...)  Enterprise Java Beans (EJBs)  CORBA  Custom APIs
  10. 10. Positioning of data access code..  Application developers like to deal with business process related logic  Changes in data source configuration  Should be transparent to application logic  Should have minimal (if not any) effect on business logic
  11. 11. Method 2 Concerns − Data access code VS business logic implementation − Difficult to reuse − Difficult to maintain − Difficult to test − Error prone
  12. 12. Ways of solving... (contd) Method 3 − Single layer to fulfill enterprise data access requirements (Data Services) Governed by, − More and more data being generated − Growing demand for consolidated, consistent information − Mashups − Interoperability & standards
  13. 13. Data Services? Tell me about it...
  14. 14. Data Service ? Well defined request/response format Encapsulates data oriented logic Loose coupling (application & data store) Data store specific configurations Management & QoS features
  15. 15. WSO2 Data Services Server
  16. 16. Simple Example  Expose Employee Contact data in a MySQL database table as a data service  Table Structure
  17. 17. GUI Wizard
  18. 18. Data Service Configuration <data name="ContactInfoService">    <config>       <property name="org.wso2.ws.dataservice.driver">com.mysql.jdbc.Driver</property>       <property  name="org.wso2.ws.dataservice.protocol">jdbc:mysql://localhost:3306/dataservice_sample</property>       <property name="org.wso2.ws.dataservice.user">dsuser</property>       <property name="org.wso2.ws.dataservice.password">user123</property>       <property name="org.wso2.ws.dataservice.minpoolsize">1</property>       <property name="org.wso2.ws.dataservice.maxpoolsize">5</property>    </config>    <query id="contactInfoQuery">       <sql>select firstName,lastName,extension,email from employees where lastName = ?</sql>       <param name="name" sqlType="STRING" />       <result element="Employees" rowName="ContactInfo">          <attribute name="LastName" column="lastName" />          <element name="FirstName" column="firstName" />          <element name="Extension" column="extension" />          <element name="Email" column="email" />       </result>    </query>    <operation name="getContactInformation">       <call­query href="contactInfoQuery"        >          <with­param name="name" query­param="name" />       </call­query>    </operation> </data>
  19. 19. Data Services Description Language  In-house developed language for writing data services  Maps service requests to your SOA to queries operating on your database objects (tables, views, procedures & functions)  Maps query results to XML responses  Available online @ http://wso2.org/wiki/display/wsf/Data+Servic es+and+Resources
  20. 20. WSDL for the service http://<IP>:<PORT>/services/ContactInfoService?wsdl
  21. 21. How to access a data service?
  22. 22. Multiple Data Source support
  23. 23. Secure Channel
  24. 24. Transformation
  25. 25. Federation
  26. 26. Caching
  27. 27. High availability
  28. 28. Throttling
  29. 29. Architecture  Challenges  RDBMS – specific or generic JDBC drivers  Directories – specific drivers, API  Flat files, Spread sheets – different APIs  Different data types  Access control mechanisms
  30. 30. Architecture  Data Services are SOA equivalent of the Data Access Object(DAO) Pattern  DS deal with different data sources similar to what DAO does  But, DS operate on a different layer
  31. 31. How to access a data service?
  32. 32. Accessing a data service – Java Client
  33. 33. Accessing a data service – REST http://198.18.191.140:9763/services/DataServic eSample1/employeesByNumber/1001
  34. 34. Accessing a data service – Try It
  35. 35. Monitoring – Monitor System statistics – Running logs – Message Tracing – Dynamically configurable Logger – Exposes statistics via JMX – Dashboard – Google Gadgets
  36. 36. Use Case 1  A mashup/ javascript/ Google Gadget wants to access data in a backend database
  37. 37. Use Case 2  Re-using existing Master Data
  38. 38. Use Case 2
  39. 39. Use Case 3  Master Data Update
  40. 40. Use Case 3
  41. 41. Use Case 4  Content filtering based on logged in user
  42. 42. Use Case 4
  43. 43. Use Case 5  Service enabling enterprise data
  44. 44. Use Case 6  Integrating with an external system
  45. 45. Use Case 6
  46. 46. Use Case 7
  47. 47. WSO2 Product Platform
  48. 48. That's lot of information... Now I would like to try these out myself. How do I get started?
  49. 49. How to get started?  Download binary distribution from – http://wso2.org/projects/data-services-server/java  Latest is v2.0  Unzip • Run bin/wso2server.sh (on Unix) or bin/wso2server.bat (on Windows) • Management console – https://localhost:9443/carbon – admin/admin
  50. 50. Help.. I messed it up...
  51. 51. How to get help?  Online forum(http://wso2.org/forum/404)  Mailing list (ds-java-user@wso2.org)  Active community of external users  Ample free documentation on wso2.org  If needed, we provided commercial support on – Getting started – Deployment – Custom development – Production support
  52. 52. I would like to have some URLs for reference.
  53. 53. Useful references  WSO2 Oxygen Tank for Web Service Developers – http://wso2.org  Data Services HOWTOs Page – http://wso2.org/library/3183  WSO2 Data Services project page – http://wso2.org/projects/data-services-server/java
  54. 54. Summary • Introduced WSO2 Data Services • Features • Use cases • Getting started
  55. 55. Thank you sumedha@wso2.com (on behalf of WSO2 DS team)

×