xml: a revolution unfolds adam bosworth microsoft corporation
Post on 20-Dec-2015
214 Views
Preview:
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
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
top related