• Save
Open Source Data Services for Strategic SOA  utilising WSO2 Data Services Server
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,262
On Slideshare
3,208
From Embeds
54
Number of Embeds
10

Actions

Shares
Downloads
0
Comments
0
Likes
2

Embeds 54

http://sumedha.blogspot.com 33
http://www.slideshare.net 5
http://sumedha.blogspot.in 5
http://sumedha.blogspot.it 3
http://sumedha.blogspot.de 3
http://sumedha.blogspot.com.au 1
https://www.linkedin.com 1
http://sumedha.blogspot.sg 1
http://www.linkedin.com 1
http://sumedha.blogspot.com.es 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server Sumedha Rubasinghe 2009 Air Force Information Technology Conference Montgomery, Atlanta
  • 2. Agenda  SOA & Enterprise Data  Need for SOA Data Services  Introduction  Features  Architecture  Use Cases  Getting started & help
  • 3. Introducing Mattson ... Hi.. Mattson here.. I am an architect
  • 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. Oh..Payroll system is using an Informix database while HRM writes to a MSSQL database...
  • 6. Another scenario  Build a Travel Expense Management System  HRM – MSSQL  Training Mgt – Spreadsheet  Payroll - Informix
  • 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. Ways of solving (contd..)  Method 2 – Connect to 3 data sources & extract data – Three different access mechanisms
  • 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. 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. Method 2 Concerns − Data access code VS business logic implementation − Difficult to reuse − Difficult to maintain − Difficult to test − Error prone
  • 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. Data Services? Tell me about it...
  • 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. WSO2 Data Services Server
  • 16. Simple Example  Expose Employee Contact data in a MySQL database table as a data service  Table Structure
  • 17. GUI Wizard
  • 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. 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. WSDL for the service http://<IP>:<PORT>/services/ContactInfoService?wsdl
  • 21. How to access a data service?
  • 22. Multiple Data Source support
  • 23. Secure Channel
  • 24. Transformation
  • 25. Federation
  • 26. Caching
  • 27. High availability
  • 28. Throttling
  • 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. 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. How to access a data service?
  • 32. Accessing a data service – Java Client
  • 33. Accessing a data service – REST http://198.18.191.140:9763/services/DataServic eSample1/employeesByNumber/1001
  • 34. Accessing a data service – Try It
  • 35. Monitoring – Monitor System statistics – Running logs – Message Tracing – Dynamically configurable Logger – Exposes statistics via JMX – Dashboard – Google Gadgets
  • 36. Use Case 1  A mashup/ javascript/ Google Gadget wants to access data in a backend database
  • 37. Use Case 2  Re-using existing Master Data
  • 38. Use Case 2
  • 39. Use Case 3  Master Data Update
  • 40. Use Case 3
  • 41. Use Case 4  Content filtering based on logged in user
  • 42. Use Case 4
  • 43. Use Case 5  Service enabling enterprise data
  • 44. Use Case 6  Integrating with an external system
  • 45. Use Case 6
  • 46. Use Case 7
  • 47. WSO2 Product Platform
  • 48. That's lot of information... Now I would like to try these out myself. How do I get started?
  • 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. Help.. I messed it up...
  • 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. I would like to have some URLs for reference.
  • 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. Summary • Introduced WSO2 Data Services • Features • Use cases • Getting started
  • 55. Thank you sumedha@wso2.com (on behalf of WSO2 DS team)