W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS...

37
1 w w w. P o r t S i g h t . c o m Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect [email protected] www.PortSight.com

Transcript of W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS...

Page 1: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

1

w w w. P o r t S i g h t . c o m

Universal Web Service for Providing Enterprise Data

Petr PALAS

PortSight Software Architect

[email protected]

www.PortSight.com

Page 2: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

2

w w w. P o r t S i g h t . c o m

Quick Survey

Do you use Enterprise Information Portal in your company?

Page 3: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

3

w w w. P o r t S i g h t . c o m

Agenda

• Motivation for Universal WS Tier

• Architecture Overview

• Issues & Solutions

• Advanced features

Page 4: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

4

w w w. P o r t S i g h t . c o m

Why Universal Web Service?

Page 5: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

5

w w w. P o r t S i g h t . c o m

Motivation for Universal WS (1)

General issues:• There’s a need to share data with

partners and customers• Users want to have 360° view of data.• Users want to access data from

Enterprise Portals and mobile devices.• Data come from various sources (ERP,

CRM, CMS...) that have different interfaces.

Page 6: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

6

w w w. P o r t S i g h t . c o m

Ad Hoc Web Services (1)

• Building ad hoc WS on top of each system: – much effort, various interfaces– cannot provide joined view– more complicated management– coding necessary every time the data structure

is changed– fast development of new WS standards

Page 7: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

7

w w w. P o r t S i g h t . c o m

Ad Hoc Web Services (2)

CRM ERP CMS

PortalApplications Partners

WS 1 WS 2 WS 3 WS 4

Page 8: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

8

w w w. P o r t S i g h t . c o m

Motivation for Universal WS (2)

Universal WS

CRM ERP CMS

PortalApplications Partners

Page 9: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

9

w w w. P o r t S i g h t . c o m

EAI versus Information Integration (1)

• Enterprise Application Integration – sharing data between applications

User Interface 1

User Interface 2

User Interface 3

Page 10: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

10

w w w. P o r t S i g h t . c o m

EAI versus Information Integration (2)

• Information Integration – joined view of all data in one user/application/WS interface– BEA Liquid Data, IBM Xperanto, Nimble

Integration Suite– and others... (SQL Server 2003?)

Unified User/Application/ WS Interface

Page 11: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

11

w w w. P o r t S i g h t . c o m

Architecture

Page 12: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

12

w w w. P o r t S i g h t . c o m

Architecture Overview (1)

• Architecture Requirements:– Data from various sources (structured,

semi-structured and unstructured)– Unified interface for reading, searching

and modifying data– Unified security and metadata

management– Standard-based– Reasonable response time

Page 13: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

13

w w w. P o r t S i g h t . c o m

Architecture Overview (2)

ERP CMS CRM Files Web Services

Unified Application and Web Services Interface

Portal Business Partners Mobile Devices

E-Mails

Data Aggregation Tier(Data adapters)

Integrated Services Tier(Metadata, caching, security, distributed search)

XML

Page 14: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

14

w w w. P o r t S i g h t . c o m

First Idea (1)

• Describe data source – Source type

– Connection parameters

• Store name and schema of the table

• Publish it through WS

Page 15: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

15

w w w. P o r t S i g h t . c o m

IntegratedServices Tier

First Idea (2) - Overview

Metadata:• Data source• Table name• Table schema

Data in XML

Page 16: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

16

w w w. P o r t S i g h t . c o m

First Idea (3) – Data WS Interface

• SELECT(Table, Conditions) as XML• UPDATE(Table, UpdatedData)• INSERT(Table, InsertedData)• DELETE(Table, Conditions)• SEARCH(Table, Conditions,

SearchConditions) as XML• GetMetadata(Table) as XML containing XML

Schema

Page 17: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

17

w w w. P o r t S i g h t . c o m

Issues & Solutions

Page 18: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

18

w w w. P o r t S i g h t . c o m

Issue 1 – Data Joining (1)

Your distributor wants to see customers from Prague who ordered BMW car. But data are in RDBMS and XML. How to join them?

Page 19: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

19

w w w. P o r t S i g h t . c o m

Issue 1 – Data Joining (2)

• Option 1: XQuery You can join semi-structured XML

data from various sources It still isn’t standard May be slow for large amounts of

data

Page 20: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

20

w w w. P o r t S i g h t . c o m

Issue 1 – Data Joining (3)

Option 2: XML support in your RDBMS Your RDBMS must support XML also for

distributed queries

Optimized

Option 3: XML support in ADO.NET (or other data access library) Not so optimized as RDBMS

Not so flexible for semi-structured data

Page 21: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

21

w w w. P o r t S i g h t . c o m

Issue 1 – Data Joining (4)

<CustomersOrders> <Customer> <CustID>5</CustID> ... <Order>

...<Units>3</Units>

<Order> </Customer></CustomersOrders>

XML ViewXML Query

<CustomersOrders>{ for $a in (<customers from Prag >) for $b in (<orders with ProductID=5>) where $a/CustID = $b/CustomerID return <customer>

{ $a/CustID, $b} </customer>}</CustomersOrders>

Database XML File

Page 22: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

22

w w w. P o r t S i g h t . c o m

Issue 1 – Data Joining (5)Query Optimization:

Proprietary Query

Optimizer finds the best way

SQL Query using JOINs

RDBMS

XML Query Joins

SQL Query Query to Mail Server

CRM Mail

Page 23: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

23

w w w. P o r t S i g h t . c o m

Issue 2 – Exploring Data

Solution: Query Builder with proprietary XML-based language and user interface

• Can be mapped to XQuery or SQL (optimization)

<customers> <where>City=“Prag”</where> <fields>

<field>CustomerName</field> </fields> <orders>...</orders></customers>

Your partners/employees don’t know your data structures.

Page 24: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

24

w w w. P o r t S i g h t . c o m

Issue 3 - Security• WS Tier – emerging standards (WS-Security)

• Data source security – security rules for each user/group/role (“Distributors can read and update customers from their country.”)

• In future: XACML – allows other systems to inherit security rules from the original system (data source)

Page 25: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

25

w w w. P o r t S i g h t . c o m

Issue 4 – Data Structure Changes

• The data structure may change -> use versioning:

<Customers.1>– It can be used for backward

compatibility

Page 26: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

26

w w w. P o r t S i g h t . c o m

Issue 5 – Namespaces and Matching• There may be tables or attributes with the

same name – each table takes its namespace to sent XML data:

<Siebel:Customers.1> X <SAP:Customers.1>

• Concordance engine – matching records:Siebel:CustName = ‘John Smith’ X SAP:CustomerName = ‘J. Smith’

Page 27: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

27

w w w. P o r t S i g h t . c o m

Issue 6 – Data Modification

• You can send all changed data/data to be deleted back to the server and it will map them to appropriate data sources.

• Microsoft XML Updategrams – proprietary

Page 28: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

28

w w w. P o r t S i g h t . c o m

Issue 7 – Process Oriented Services (1)

• Placing order needn’t be only inserting a new record (data tier)

• But: – You have metadata -> you can generate specific

classes for the data source– Developer can then inherit and implement

special functionality (call CRM system API etc.)

Page 29: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

29

w w w. P o r t S i g h t . c o m

Metadata

Issue 7 – Process Oriented Services (2)

Data Sources

Data Adapters

Universal Data Access Class

Universal Web Service

Data Storage andRetrieval

Data Tier

Business Tier

Web Services Tier

Code Generation

Page 30: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

30

w w w. P o r t S i g h t . c o m

Issue 7 - Process Oriented Services (3)

Option 1: You can convert and automatically redirect the data to appropriate WS

Option 2: You add information about related WS to your metadata so that user knows about them and calls them directly

Booking a ticket – you may want to call Ticket WS that exists concurrently with you Universal Data WS

Page 31: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

31

w w w. P o r t S i g h t . c o m

Final Design

Page 32: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

32

w w w. P o r t S i g h t . c o m

Final Universal Data WS Interface• SELECTPREDEFINED(QueryID) as XML• SELECT(ProprietaryQuery) as XML• SELECTXQUERY(XQuery) as XML• UPDATE(DataToBeUpdated)• INSERT(DataToBeInserted)• DELETE(DataToBeDeleted)• SEARCH(ProprietaryQuery,SearchExpression

) as XML• GETMETADATA(EntityName) as XML

containing XML Schema, relationships and optionally XACML descriptors for required data

Page 33: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

33

w w w. P o r t S i g h t . c o m

Further Development

• The system can be extended with:– Caching capabilities– WSRP/WSIA interface– Provisioning/Auditing system, Undo method– Components for UI – easy implementation to

your client applications– XSL-based system for viewing data and

converting them to other formats (like HTML, standardized XML medical data, etc.).

– XForms interface for editing.

Page 34: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

34

w w w. P o r t S i g h t . c o m

Summary

• You have seen:– Concept of Universal Web Service– Proposed Architecture– Issues & solutions– Pros and Cons of the Universal WS

The vision behind: Unified, metadata driven access to all enterprise data and complete view of them anywhere, anytime and from any device or platform.

Page 35: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

35

w w w. P o r t S i g h t . c o m

Recommended and used sources:

• www.portsight.com/technology • www.bea.com -> BEA Liquid Data• www.ibm.com -> XPeranto, Information

Integration• www.oasis-open.org -> WS-Security,

XACML, WSRP, WSIA• www.nimble.com -> Nimble Integration Suite• tiberi.us - great intro to XQuery• xqueryservices.com – XQuery .NET library

Page 36: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

36

w w w. P o r t S i g h t . c o m

Questions & Answers

Page 37: W w w. P o r t S i g h t. c o m 1 Universal Web Service for Providing Enterprise Data Petr PALAS PortSight Software Architect petrp@portsight.com .

37

w w w. P o r t S i g h t . c o m

Thank You For Your Time!