Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

1,900

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 …

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
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,900
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
179
Comments
0
Likes
4
Embeds 0
No embeds

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)

×