xml: a revolution unfolds adam bosworth microsoft corporation

35
XML: XML: A Revolution A Revolution Unfolds Unfolds Adam Bosworth Adam Bosworth Microsoft Corporation Microsoft Corporation

Post on 20-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

XML:XML:A Revolution UnfoldsA Revolution Unfolds

Adam BosworthAdam BosworthMicrosoft CorporationMicrosoft Corporation

AgendaAgenda XML todayXML today The canonical modelThe canonical model A DemoA Demo Reminder. Why XML at allReminder. Why XML at all Where we’re goingWhere we’re going

XML TodayXML Today

What’s shipping todayWhat’s shipping today www.microsoft.com/xmlwww.microsoft.com/xml www.oracle.com/xmlwww.oracle.com/xml www.ibm.com/xmlwww.ibm.com/xml Object Design, PoetObject Design, Poet BluestoneBluestone Perl, Python, Frontier…Perl, Python, Frontier…

Shipping from MicrosoftShipping from Microsoft Full XML support.Full XML support.

XML Parser. Fully DOM XML Parser. Fully DOM Compliant. Server Ready!Compliant. Server Ready!

Namespace supportNamespace support Direct Browsing of XMLDirect Browsing of XML Full XSL SupportFull XSL Support Extended Schema SupportExtended Schema Support

All formats ==> XML.All formats ==> XML.

The canonical modelThe canonical model A general model for mapping A general model for mapping

type systems, databases, type systems, databases, objects and graphs to XML.objects and graphs to XML. Types = ElementsTypes = Elements Members = AttributesMembers = Attributes Members whose type isn’t Members whose type isn’t

primitive are modeled using ID primitive are modeled using ID and IDREF/IDREFS’s.and IDREF/IDREFS’s.

The canonical modelThe canonical model <INVOICE cost=“100.00” <INVOICE cost=“100.00”

shipto = “Addr:1” billto = shipto = “Addr:1” billto = “Addr:2”>“Addr:2”> <Address ID=“Addr:1” <Address ID=“Addr:1”

City=“NY” Zip=“11201”/>City=“NY” Zip=“11201”/> <Address ID=“Addr:2” <Address ID=“Addr:2”

City=“MI” Zip = “98040”/>City=“MI” Zip = “98040”/> </Invoice></Invoice>

The canonical modelThe canonical model <!ELEMENT Invoice Address)*><!ELEMENT Invoice Address)*> <!ATTLIST Invoice<!ATTLIST Invoice

cost CDATA #IMPLIEDcost CDATA #IMPLIED billtobillto IDREFIDREF #IMPLIED#IMPLIED shiptoshipto IDREFIDREF #IMPLIED>#IMPLIED>

<!ELEMENT Address ANY><!ELEMENT Address ANY> <!ATTLIST Address<!ATTLIST Address idid IDID #REQUIRED#REQUIRED City City CDATACDATA #IMPLIED#IMPLIED ZipZip CDATACDATA #IMPLIED>#IMPLIED>

The canonical modelThe canonical model SharingSharing

<Invoice … Customer=“C:1”/><Invoice … Customer=“C:1”/> <Invoice … Customer=“C:2”/><Invoice … Customer=“C:2”/> <Customer ID=“C1” …. /><Customer ID=“C1” …. /> <Customer ID=“C2” …. /><Customer ID=“C2” …. />

The canonical modelThe canonical model 1 to Many1 to Many <Customer name=“Adam” <Customer name=“Adam”

id=“C:1” orders = “o:1 o:2”>id=“C:1” orders = “o:1 o:2”> <Order id=“o:1” <Order id=“o:1” cust=“c:1cust=“c:1”…/>”…/> <Order id=“o:2” <Order id=“o:2” cust=“c:1cust=“c:1”…/>”…/> <Order id=“o:3” <Order id=“o:3” cust=“c:1cust=“c:1”…/>”…/>

</Customer></Customer>

The canonical modelThe canonical model Many to ManyMany to Many

<Class id=“c:1” name = “math” <Class id=“c:1” name = “math” attends=“s:1 s:2”/>attends=“s:1 s:2”/>

<Class id=“c:2” name=“CS” <Class id=“c:2” name=“CS” attends=“s:2 s:3”/>attends=“s:2 s:3”/>

<Student id=“s:1” name=“AB” <Student id=“s:1” name=“AB” attends=“c:1 c:3”/>attends=“c:1 c:3”/>

<Student id=“s:2” name=“Ben” <Student id=“s:2” name=“Ben” attends=“c:1 c:2”/>attends=“c:1 c:2”/>

DemoDemo Some examples using IE 5.0Some examples using IE 5.0

Structured Data (Objects, Structured Data (Objects, Databases)Databases)

Semi-structured Data Semi-structured Data (Documents)(Documents)

Mixed Structured and Semi-Mixed Structured and Semi-structured Data. (The real structured Data. (The real objects on the Web)objects on the Web)

Reminder. Why XML?Reminder. Why XML? Driven by two fundamental Driven by two fundamental

strategic imperatives:strategic imperatives: Provide a model for finding Provide a model for finding

goods, services, and other goods, services, and other types of known informationtypes of known information

Provide an applications Provide an applications architecture for the Webarchitecture for the Web

ScenariosScenarios Search for:Search for:

Goods (e.g. Used Books)Goods (e.g. Used Books) Services (e.g. Lawn-mowing)Services (e.g. Lawn-mowing) Information (e.g. Portfolios)Information (e.g. Portfolios)

Share information between Share information between organizations and companies. organizations and companies.

Challenges to Realize the Challenges to Realize the Web’s Full Potential...Web’s Full Potential...

Find information intelligentlyFind information intelligently Interact with applications on Interact with applications on

servers easily and efficientlyservers easily and efficiently But: physical implementations But: physical implementations

will vary from site to site will vary from site to site

Web Sites RequirementsWeb Sites Requirements Standardize on Standardize on logical viewslogical views, ,

not physical implementationsnot physical implementations Standard description of Standard description of

logical views availablelogical views available More than databases actually More than databases actually

did did Sites can interact with each Sites can interact with each

other and with clients!other and with clients!

Lessons from the WebLessons from the Web Simplicity winsSimplicity wins

Open, Easy, FlexibleOpen, Easy, Flexible Efficiency losesEfficiency loses

Complex, Binary formats, Fixed Complex, Binary formats, Fixed vocabulariesvocabularies

Lessons from ServersLessons from Servers Servers are like grocery storesServers are like grocery stores Good performance requiresGood performance requires

Coarse-grainedCoarse-grained communication communication Limited ability to multitask Limited ability to multitask Queues Queues Interruptible models Interruptible models StandardsStandards

We have learnedWe have learned We need an architecture that We need an architecture that

lets us interact in a coarse-lets us interact in a coarse-grained way through grained way through logical logical viewsviews

As a Web architecture, it must As a Web architecture, it must be easy, open, and flexible to be easy, open, and flexible to build and interact with these build and interact with these logical viewslogical views

XML XML XML is the most fundamental XML is the most fundamental

building blockbuilding block It is the Meta-grammar that It is the Meta-grammar that

allows us to describe allows us to describe anyany data data or state for any logical viewor state for any logical view

It is simple, easy, and openIt is simple, easy, and open It can describe any package of It can describe any package of

information moved to or from information moved to or from the middle-tierthe middle-tier

Application architectureApplication architecture

Storage

Middle-Tier

Client

Transform Data intoXML Logical Views (web objects)

View, Edit &Manage XML

XMLMsg’s

XML Store

XML Store

Coming very soonComing very soon Stores and convertorsStores and convertors RPC’sRPC’s Schema supportSchema support ““XQL”XQL” eCommerce and XMLeCommerce and XML

Stores and ConvertersStores and Converters Converters between physical Converters between physical

implementations and XML-implementations and XML-based logical views. Oracle based logical views. Oracle has already got a stake in the has already got a stake in the ground here.ground here.

There is a need to cache, There is a need to cache, index, update, transact, and in index, update, transact, and in short, have a store for short, have a store for managing XML. ODI & eXcelonmanaging XML. ODI & eXcelon

SchemaSchema Active working group in the Active working group in the

W3C now.W3C now. Unified support for data types.Unified support for data types. Clear understanding of the Clear understanding of the

need for:need for: FK/PK relationshipsFK/PK relationships Ordered or unorderedOrdered or unordered Inherited types.Inherited types.

RPCRPC XML provides a basis for an XML provides a basis for an

extremely simple extensible extremely simple extensible RPC. UserLand(Frontier), Perl, RPC. UserLand(Frontier), Perl, Python, Allaire( WDDX), and Python, Allaire( WDDX), and webMethods(B2B).webMethods(B2B).

But, in many cases, But, in many cases, messages, not RPC’s will be messages, not RPC’s will be used. RPC’s are rarely robust used. RPC’s are rarely robust over time and distance. over time and distance.

Unified “XQL”Unified “XQL” The Query language is the The Query language is the

object construction language.object construction language. Which language?Which language?

XSL? Sql?XSL? Sql? Key W3C Meeting in Boston in Key W3C Meeting in Boston in

December.December. Database vendors and object Database vendors and object

vendors will end up working vendors will end up working together on this “XQL”together on this “XQL”

eCommerce using XMLeCommerce using XML XML/EDI GroupXML/EDI Group ASC X12 /CommerceNet/ ASC X12 /CommerceNet/ Graphics Communication Graphics Communication AssociationAssociation

OO-EDI Brief /DRAFT. OO-EDI Brief /DRAFT. Relevant Standards Relevant Standards Organization UN/CEFACTOrganization UN/CEFACT

OFX (Financial Services)OFX (Financial Services)

Remember the book Remember the book storestore

Describe the booksDescribe the books DescribeDescribe the store’s services the store’s services Request specific booksRequest specific books Act as my shopping cartAct as my shopping cart Allow me to buy booksAllow me to buy books

Still to come…Still to come… ““XUL”XUL” We need a grammar to act as We need a grammar to act as

an intelligent diff or updating an intelligent diff or updating grammar to XML. This is grammar to XML. This is actually a hard problem when actually a hard problem when the document being updated the document being updated is “virtual” rather than real.is “virtual” rather than real.

Still to comeStill to come Application Services BrokerApplication Services Broker

This mediates between sites, This mediates between sites, discovering which sites provide discovering which sites provide which services meeting certain which services meeting certain filters or characteristics.filters or characteristics.

It should, if scalability can be It should, if scalability can be handled, allow subscription and handled, allow subscription and notification based upon criteria.notification based upon criteria.

Still to comeStill to come Application BusApplication Bus

This allows general This allows general publish/subscribe to publish/subscribe to messages of interest. It messages of interest. It assumes a general message assumes a general message queue accessible through queue accessible through HTTP.HTTP.

Ideally, it will be able to post Ideally, it will be able to post messages directly to other messages directly to other machines message queues.machines message queues.

What can be built What can be built today?today?

Line-of-business applicationsLine-of-business applications PlanningPlanning NotificationNotification Data CaptureData Capture Information searchingInformation searching CollaborationCollaboration

SummarySummary We’re only at the We’re only at the veryvery start of start of

the Web revolution. The most the Web revolution. The most exciting part is just getting exciting part is just getting started.started.

With XML, interacting with With XML, interacting with data and applications on the data and applications on the Web will be as easy as viewing Web will be as easy as viewing shared contentshared content

Application architectureApplication architecture

Storage

Middle-Tier

Client

Transform Data intoXML Logical Views (web objects)

View, Edit &Manage XML

XMLMsg’s

XML Store

XML Store

http://www.microsoft.com/xml