Corporate PPT Template - New York Oracle User Group

advertisement

Integrating a Heterogeneous

Environment using XML

Sandeepan Banerjee

Director, Oracle Server Technologies

The Problem

Synthesized

Information

 Multiple domain-specific applications

– Manufacturing,

Inventory, Supply

Chain, Financial, …

 Information is trapped within these applications

Financial

Application

CRM

Application

Excel Files on Disk

E-Mail and Document

Contract Management

Repositories

Application

How does an organization get a consolidated view of its information – in real time ?

Technical Challenges

 Domain-specific information

– Replication does not make sense

 Independent operation of applications

– Access to information has to be in real-time

 Different access method for each application

– Each application has its own protocol and access method

What architecture can best accommodate my present and future needs ?

– Complexity: Avoid the n by m matrix

Flexibility: Add new sources easily

Time to market: Within days, not months

What is XML-based Data

Integration?

XML-based Data Integration or

Enterprise Information Integration (EII):

 Create aggregated views using XQuery

 Get information from diverse sources in XML

 Consume synthesized information

XML Data Integration Example

XQuery Engine

Order Tracking

J2EE TM CA

Synthesized

Information

EIS

Parts Inventory

JDBC HTTP

Shipment Tracking

Database Web Service

Technologies Involved

 Why XML?

– Different data formats

 Why XQuery ?

– Declarative way to query

XML documents

 Why J2EE TM ?

– Standards-based infrastructure platform

 Why XML Database ?

Native XML storage

XML data management

Performance optimizations

XML

Database

XQuery Engine

J2EE TM Platform

XML-based Data Integration

Comparison with Existing

Technologies

Application

Integration

Data

Warehousing

Difference

More about data pumping and synchronization among systems

Similarity

Involves data adapters, data translation and transformation

Explicit ETL steps required; large data volume; batch loading, not real-time

Optional cache pre-population step similar to the

“loading” step

SQL & relation-based vs.

XQuery & XML-based

Query-based

Traditional

Report

Generation

Cannot handle nonrelational sources

XQuery Status

• XQuery is emerging as the consensus ‘ native ’ query language for XML

• Expected W3C Recommendation in late 2005

• Oracle 10gR2 is the first mainstream commercial database release to support XQuery

• Plan to release under an event in 10gR2

XQuery Example

Assume a document – emp.xml

<empset>

<emp empno=“21” ename=“SCOTT” salary=“120000”/>

<emp empno=“22” ename=“JONES” salary=“344000”/>

</empset>

To get the names of employees with salary > 200000 for $i in document(‘emp.xml’)/empset let $j = 200000 where $i/@salary > $j return $i/@ename

Result (attribute node)

JONES

Another Example

Customer/Address/Zip

ShipTo/Address/Zip

Supplier/Location/AddressForTaxCalculation/Zip

Customer/Address/Work/City/Zip

Customer/Address/Home/City/Zip

Shipper/DropOffLocation/US/California/SFO/Zip

+ any other zip nested to any unanticipated level count ( for $i in doc("contacts.xml")/Contact where $i//zip eq 94065 return $i)

Example III: Auction/Bids

 Say we have 3 heterogeneous data sources that yield their contents as XML

– Item Description comes from a Filesystem

User Information comes from LDAP/DB

Bid Information comes from an App Server

-- For all bicycles, list the item number, description, highest bid (if any), ordered by item no.

for $i in doc("items.xml")//item_tuple let $b := doc("bids.xml")//bid_tuple[itemno = $i/itemno] where contains($i/description, "Bicycle") order by $i/itemno return <item_tuple> { $i/itemno} { $i/description }

<high_bid>{ max($b/bid) }</high_bid> </item_tuple>

XQuery and SQL

 Existing relational applications will continue to use

SQL, and Oracle will remain the industry’s best implementation of SQL

 New applications based on XML will use XQuery, and

Oracle will be the industry’s best implementation of

XQuery

 Oracle will support XQuery both in the database and in the mid-tier

– Use the mid-tier engine when you want to query nondatabase sources

 Intelligent ‘query pushdown’ from mid-tier to db when possible

 Can mix-and-match XQuery and SQL in same query

XQuery is different from SQL

 Navigation-oriented (using Xpath expressions)

 Different type system (XMLSchema based simple types)

 Identity-based (XML Node identities and document order)

 Namespace aware name-resolution (functions, variables, element creation)

 XML-Item based vs Row-based

 Results are heterogeneous sequences

 Does not have all SQL extensions (e.g. data warehousing etc..)

XQuery Mid-tier Architecture

Other Data sources

XQuery

XQueryX

XPath

XQJ

API

Driver

XQuery

Java

Engine

DB

Drivers

SQL +

XQuery or

XQueryX

JDBC Driver

Java XMLType

XQuery DB Architecture

User

XQJ API

Mid-Tier

XQuery

Engine

XQuery

XMLQuery,

XMLTable

XQuery Aware SQL Engine

XQuery Parser

Compiler

XQuery Type check

Normalization

SQL

Optimizer, Execution

Engine

SQLX/XPath

D E M O N S T R A T I O N

XML Query

Oracle XML Database (XML DB)

 Native XML storage

– Available since Oracle Database Release 9.2

 Inherits RDBMS features: Security, Transaction,…

 XML-specific features

– XML indexing, XPath & XSLT support,

XML schema validation, XML partial update

 Supports SQL/XML

– Allows blending relational and XML data operations

Leveraging Oracle XML DB

 XML DB can be an XQuery source

– Can define XML views of relational data

– XQuery engine can rewrite query into SQL/XML

 XML DB could also be used for caching

– Efficient storage & indexing for large data sets

 Can leverage security framework of XML DB

– For both source and cache

Datasources

 Databases

– Relational+ XML Views, Object-Relational, CLOB, Compact

XML (future)

 Mid-tier sources

– files, cache, JCA datasources

 Bind (an existing DOM)

 xmldatasrc – Oracle language addition

 Datasource API

– initialize describe execute

Fetch

iAS XDS Architecture

Applications using

XDS e.g. Portals, Reports etc

XML Data Synthesis

Cached XML Data Source

XDS Client API’s

EJB JSP Tags

XQuery Result

XQuery Subsystem

XQ4J/JXQI

XQuery Engine

XMLDataSource modules

Cached XML Data Source

RDBMS

XML Data source adaptors

Web

Services

Files HTTP

Web

Cache

Web Service

J2EE Security

Framework

XDS Cache

Security

Query

Builder

Tool

Meta-data

Repository

CCI-XML

Java

Functions

XDS

Caching

Service

Stored Query

J2CA EAI

JMS SAP

Oracle

Enterprise

Manager

Oracle

Apps

In-

Mem ory

JCache

XML DB

File system

Example – XDS usage

 User registers webservice as datasource

 XDS creates an XQuery module automatically

 User Query for querying webservice import module namespace wss=“datasrc/stockws”; for $i in wss:getcompanies() return wss:get_stock_price($i/name) wss – namespace prefix for the loaded module

JNDI lookup to get datasource implementation

XDS adapters implement datasource

All Your Searches!

 Search with any language – SQL/XQuery/XSL

 Search anywhere - mid tier or backend

 Search anything any XML/relational content

 Search everything

– XML visualization of all data (backend)

– XML based adapters provide XML content for all data in midtier (XDS)

 Search any form – text based/structured

 Search any size Scalable solution

 Search any time Unbreakable solution

More Information

 XML in general

– http://www.oracle.com/technology/tech/xml/index.html

 XML Query

– http://www.oracle.com/technology/tech/xml/xquery/index.html

 XML DB

– http://www.oracle.com/technology/tech/xml/xmldb/index.html

Q U E S T I O N S

A N S W E R S

Download