350 likes | 493 Views
XML: A Revolution Unfolds. Adam Bosworth Microsoft Corporation. Agenda. XML today The canonical model A Demo Reminder. Why XML at all Where we’re going. XML Today. What’s shipping today. www.microsoft.com/xml www.oracle.com/xml www.ibm.com/xml Object Design, Poet Bluestone
E N D
XML:A Revolution Unfolds Adam BosworthMicrosoft Corporation
Agenda • XML today • The canonical model • A Demo • Reminder. Why XML at all • Where we’re going
What’s shipping today • www.microsoft.com/xml • www.oracle.com/xml • www.ibm.com/xml • Object Design, Poet • Bluestone • Perl, Python, Frontier…
Shipping from Microsoft • Full XML support. • XML Parser. Fully DOM Compliant. Server Ready! • Namespace support • Direct Browsing of XML • Full XSL Support • Extended Schema Support • All formats ==> XML.
The canonical model • A general model for mapping type systems, databases, objects and graphs to XML. • Types = Elements • Members = Attributes • Members whose type isn’t primitive are modeled using ID and IDREF/IDREFS’s.
The canonical model • <INVOICE cost=“100.00” shipto = “Addr:1” billto = “Addr:2”> • <Address ID=“Addr:1” City=“NY” Zip=“11201”/> • <Address ID=“Addr:2” City=“MI” Zip = “98040”/> • </Invoice>
The canonical model • <!ELEMENT Invoice Address)*> • <!ATTLIST Invoice • cost CDATA #IMPLIED • billto IDREF #IMPLIED • shipto IDREF #IMPLIED> • <!ELEMENT Address ANY> • <!ATTLIST Address • id ID #REQUIRED • City CDATA #IMPLIED • Zip CDATA #IMPLIED>
The canonical model • Sharing • <Invoice … Customer=“C:1”/> • <Invoice … Customer=“C:2”/> • <Customer ID=“C1” …. /> • <Customer ID=“C2” …. />
The canonical model • 1 to Many • <Customer name=“Adam” id=“C:1” orders = “o:1 o:2”> • <Order id=“o:1” cust=“c:1”…/> • <Order id=“o:2” cust=“c:1”…/> • <Order id=“o:3” cust=“c:1”…/> • </Customer>
The canonical model • Many to Many • <Class id=“c:1” name = “math” attends=“s:1 s:2”/> • <Class id=“c:2” name=“CS” attends=“s:2 s:3”/> • <Student id=“s:1” name=“AB” attends=“c:1 c:3”/> • <Student id=“s:2” name=“Ben” attends=“c:1 c:2”/>
Demo • Some examples using IE 5.0 • Structured Data (Objects, Databases) • Semi-structured Data (Documents) • Mixed Structured and Semi-structured Data. (The real objects on the Web)
Reminder. Why XML? • Driven by two fundamental strategic imperatives: • Provide a model for finding goods, services, and other types of known information • Provide an applications architecture for the Web
Scenarios • Search for: • Goods (e.g. Used Books) • Services (e.g. Lawn-mowing) • Information (e.g. Portfolios) • Share information between organizations and companies.
Challenges to Realize the Web’s Full Potential... • Find information intelligently • Interact with applications on servers easily and efficiently • But: physical implementations will vary from site to site
Web Sites Requirements • Standardize on logical views, not physical implementations • Standard description of logical views available • More than databases actually did • Sites can interact with each other and with clients!
Lessons from the Web • Simplicity wins • Open, Easy, Flexible • Efficiency loses • Complex, Binary formats, Fixed vocabularies
Lessons from Servers • Servers are like grocery stores • Good performance requires • Coarse-grained communication • Limited ability to multitask • Queues • Interruptible models • Standards
We have learned • We need an architecture that lets us interact in a coarse-grained way through logical views • As a Web architecture, it must be easy, open, and flexible to build and interact with these logical views
XML • XML is the most fundamental building block • It is the Meta-grammar that allows us to describe any data or state for any logical view • It is simple, easy, and open • It can describe any package of information moved to or from the middle-tier
XML Store XML Store Application architecture View, Edit &Manage XML Client XML Msg’s Middle- Tier Transform Data intoXML Logical Views (web objects) Storage
Coming very soon • Stores and convertors • RPC’s • Schema support • “XQL” • eCommerce and XML
Stores and Converters • Converters between physical implementations and XML-based logical views. Oracle has already got a stake in the ground here. • There is a need to cache, index, update, transact, and in short, have a store for managing XML. ODI & eXcelon
Schema • Active working group in the W3C now. • Unified support for data types. • Clear understanding of the need for: • FK/PK relationships • Ordered or unordered • Inherited types.
RPC • XML provides a basis for an extremely simple extensible RPC. UserLand(Frontier), Perl, Python, Allaire( WDDX), and webMethods(B2B). • But, in many cases, messages, not RPC’s will be used. RPC’s are rarely robust over time and distance.
Unified “XQL” • The Query language is the object construction language. • Which language? • XSL? Sql? • Key W3C Meeting in Boston in December. • Database vendors and object vendors will end up working together on this “XQL”
eCommerce using XML • XML/EDI Group • ASC X12 /CommerceNet/ Graphics Communication Association • OO-EDI Brief /DRAFT. Relevant Standards Organization UN/CEFACT • OFX (Financial Services)
Remember the book store • Describe the books • Describe the store’s services • Request specific books • Act as my shopping cart • Allow me to buy books
“XUL” We need a grammar to act as an intelligent diff or updating grammar to XML. This is actually a hard problem when the document being updated is “virtual” rather than real. Still to come…
Still to come • Application Services Broker • This mediates between sites, discovering which sites provide which services meeting certain filters or characteristics. • It should, if scalability can be handled, allow subscription and notification based upon criteria.
Still to come • Application Bus • This allows general publish/subscribe to messages of interest. It assumes a general message queue accessible through HTTP. • Ideally, it will be able to post messages directly to other machines message queues.
What can be built today? • Line-of-business applications • Planning • Notification • Data Capture • Information searching • Collaboration
Summary • We’re only at the very start of the Web revolution. The most exciting part is just getting started. • With XML, interacting with data and applications on the Web will be as easy as viewing shared content
XML Store XML Store Application architecture View, Edit &Manage XML Client XML Msg’s Middle- Tier Transform Data intoXML Logical Views (web objects) Storage
™ http://www.microsoft.com/xml