Download Corporate PPT Template

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Extensible Storage Engine wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Oracle Database wikipedia , lookup

Open Database Connectivity wikipedia , lookup

SQL wikipedia , lookup

PL/SQL wikipedia , lookup

Relational model wikipedia , lookup

Clusterpoint wikipedia , lookup

Database model wikipedia , lookup

Transcript
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
Synthesized
Information
Order Tracking
J2EETM CA
EIS
JDBC
Parts Inventory
Database
HTTP
Shipment Tracking
Web Service
Technologies Involved
 Why XML?
–
Different data formats
 Why XQuery ?
–
Declarative way to query
XML documents
 Why J2EETM ?
–
Standards-based
infrastructure platform
 Why XML Database ?
–
–
–
Native XML storage
XML data management
Performance optimizations
XQuery Engine
XML
Database
J2EETM Platform
XML-based Data Integration
Comparison with Existing
Technologies
Difference
Application
Integration
Data
Warehousing
Traditional
Report
Generation
Similarity
More about data pumping
and synchronization
among systems
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
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
JDBC Driver
Java XMLType
SQL +
XQuery or
XQueryX
XQuery DB Architecture
XQJ API
XQuery Aware SQL Engine
Mid-Tier
XQuery
Engine
User
SQL Compiler
XQuery
XMLQuery,
XMLTable
Compiler
XQuery Type check
Normalization
SQL
SQLX/XPath
XQuery Parser
Optimizer, Execution
Engine
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
Query
XDS Client API’s
Applications using
XDS
JSP Tags
EJB
Builder
Web Service
Tool
e.g. Portals, Reports etc
XML Data Synthesis
J2EE Security
Framework
Cached XML Data Source
Meta-data
XDS Cache
Security
XQuery Result
Repository
XQuery Subsystem
XDS
XQ4J/JXQI
Oracle
Enterprise
Manager
Caching
XQuery Engine
Service
XMLDataSource modules
Stored Query
Cached XML Data Source
In-
CCI-XML
XML Data source adaptors
RDBMS
Web
Services
Files
HTTP
Web
Cache
Java
Functions
J2CA EAI
JMS
Oracle
SAP
Apps
XML DB
Mem
ory
JCache
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
QUESTIONS
ANSWERS