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

60
Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server Sumedha Rubasinghe 2009 Air Force Information Technology Conference Montgomery, Atlanta

description

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.

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

Page 1: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Open Source Data Services for Strategic SOA

utilisingWSO2 Data Services Server

Sumedha Rubasinghe2009 Air Force Information Technology Conference

Montgomery, Atlanta

Page 2: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Agenda

SOA & Enterprise Data Need for SOA Data Services Introduction Features Architecture Use Cases Getting started & help

Page 3: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Page 4: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Page 5: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Page 6: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Hi.. Mattson here.. I am an architect

Introducing Mattson ...

Page 7: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

My manager wants to see salary incrementsdone in HRM system to bereflected in Payroll....

These systems do notsupport a programmable interface..

Page 8: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Oh..Payroll system is usingan Informix database whileHRM writes to a MSSQL database...

Page 9: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Another scenario

Build a Travel Expense Management System HRM – MSSQL Training Mgt – Spreadsheet Payroll - Informix

Page 10: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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

Page 11: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Ways of solving (contd..)

Method 2– Connect to 3 data sources & extract data– Three different access mechanisms

Page 12: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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

Page 13: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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

Page 14: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Method 2

Concerns− Data access code VS business logic implementation− Difficult to reuse− Difficult to maintain− Difficult to test− Error prone

Page 15: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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

Page 16: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Data Services?Tell me about it...

Page 17: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Data Service ?

Well defined request/response formatEncapsulates data oriented logicLoose coupling (application & data store)Data store specific configurationsManagement & QoS features

Page 18: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

WSO2 Data Services Server

Page 19: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Page 20: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Simple Example

Expose Employee Contact data in a MySQL database table as a data service

Table Structure

Page 21: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

GUI Wizard

Page 22: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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>

Page 23: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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+Services+and+Resources

Page 24: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

WSDL for the servicehttp://<IP>:<PORT>/services/ContactInfoService?wsdl

Page 25: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

How to access a data service?

Page 26: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Multiple Data Source support

Page 27: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Secure Channel

Page 28: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Transformation

Page 29: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Federation

Page 30: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Caching

Page 31: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

High availability

Page 32: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Throttling

Page 33: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Architecture

Challenges RDBMS – specific or generic JDBC drivers Directories – specific drivers, API Flat files, Spread sheets – different APIs Different data types Access control mechanisms

Page 34: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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

Page 35: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

How to access a data service?

Page 36: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Accessing a data service – Java Client

Page 37: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Accessing a data service – REST

http://198.18.191.140:9763/services/DataServiceSample1/employeesByNumber/1001

Page 38: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Accessing a data service – Try It

Page 39: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Monitoring

– Monitor System statistics– Running logs– Message Tracing– Dynamically configurable Logger– Exposes statistics via JMX– Dashboard – Google Gadgets

Page 40: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 1

A mashup/ javascript/ Google Gadget wants to access data in a backend database

Page 41: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 2

Re-using existing Master Data

Page 42: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 2

Page 43: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 3

Master Data Update

Page 44: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 3

Page 45: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 4

Content filtering based on logged in user

Page 46: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 4

Page 47: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 5

Service enabling enterprise data

Page 48: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server
Page 49: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 6

Integrating with an external system

Page 50: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 6

Page 51: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Use Case 7

Page 52: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

WSO2 Product Platform

Page 53: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

That's lot of information...Now I would like to try these out myself. How do I get started?

Page 54: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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

Page 55: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Help.. I messed it up...

Page 56: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

How to get help?

Online forum(http://wso2.org/forum/404)

Mailing list ([email protected])

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

Page 57: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

I would like to have some URLs for reference.

Page 58: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

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

Page 59: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Summary

•Introduced WSO2 Data Services•Features•Use cases•Getting started

Page 60: Open Source Data Services for Strategic SOA utilising WSO2 Data Services Server

Thank [email protected]

(on behalf of WSO2 DS team)