Is XML-RPC the right model?
description
Transcript of Is XML-RPC the right model?
![Page 1: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/1.jpg)
Is XML-RPC the right model?
Larry Cable, Larry Cable,
CTO, CTO,
iPlanet Application ServeriPlanet Application Server
![Page 2: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/2.jpg)
What am I here for?
• Convince you that my problem is your Convince you that my problem is your problem!problem!
• Explain why a standard solution is crucialExplain why a standard solution is crucial
• Suggest that XML-RPC isnt sufficentSuggest that XML-RPC isnt sufficent
• explore the requirements of the real solutionexplore the requirements of the real solution
![Page 3: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/3.jpg)
XML based Internet APM
![Page 4: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/4.jpg)
Common beliefs?
• HTTP(S) HTTP(S) isis the transport for the Internet the transport for the Internet
• XML is (XML is (increasinglyincreasingly) the data representation ) the data representation for exchange of data between loosely coupled for exchange of data between loosely coupled ((hetrogeneoushetrogeneous) systems) systems
• ((TraditionalTraditional) RPC protocols and MOM will ) RPC protocols and MOM will continue to be used in intra/extranet continue to be used in intra/extranet deployments because they exhibit useful deployments because they exhibit useful properties that are not (properties that are not (yetyet) available from ) available from HTTP(S) or XML HTTP(S) or XML
![Page 5: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/5.jpg)
What is the problem statement?
• Define a mechanism to enable the efficient Define a mechanism to enable the efficient transfer of a broad range of structured data transfer of a broad range of structured data between hetrogeneous, distributed between hetrogeneous, distributed applications over inter/extra/intranets using a applications over inter/extra/intranets using a variety of transports variety of transports
![Page 6: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/6.jpg)
What’s the problem? …
• Data Representation:Data Representation:– transformation– presentation– interpretation– interrogation– interoperation– portability– reuse– internationalization– ...
• Data Transportation:Data Transportation:– performance:• latency• bandwidth
– service type:• sync/async• guaranteed delivery
– security:• identity• encryption
– transactions– encapsulation– interoperability– ...
![Page 7: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/7.jpg)
XML as a data representation
• Pro:Pro:– (verifiable) universal, self-
describing, extensible syntax
– I18N “ready”
– namespace support (composition)
– transport independent
– ...
• Con:Con:– not time/space efficient
– not intrinsically secure
– no transaction support
– no transport semantics
– ...
![Page 8: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/8.jpg)
RPC Vs XML
• RPC:RPC:– (typically) binary
representation– protocol model– transport dependent– programming language
centric– not extensible– secure– robust– not easily transformed
• It’s implementation-It’s implementation-centriccentric
• XML:XML:– text representation– document/message
model– transport
independent– language
independent– extensible– not secure (yet)– not robust– easily transformed
• It’s application-It’s application-centriccentric
![Page 9: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/9.jpg)
App Vs Implementation
ImplementationImplementation
AApppplliiccaattiioonn
XML
RPC RDBMS
![Page 10: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/10.jpg)
XML-RPC ...
• Pros:Pros:– it’s XML based
– it uses HTTP(S)
– it’s (quite) simple
– it’s based around an RPC model which is (hopefully) a well understood concept
– …
• Cons:Cons:– it’s XML based
– it uses HTTP(S)
– it’s too simple!
– It’s RPC based
– …
![Page 11: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/11.jpg)
What’s important?
• Isolate application(s) from schema evolutionIsolate application(s) from schema evolution– use the power of XML to create application-centric
markups and exchange those between applications
• separate the data being exchanged from:separate the data being exchanged from:– the transport protocol characteristics
– the semantics to be applied to the data
– the security model
– the transaction model
– the encapsulation model
– ...
![Page 12: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/12.jpg)
XML-RPC … why it’s not the right solution
• should not be (exclusively) bound to HTTP(S)should not be (exclusively) bound to HTTP(S)
• should not be bound to a particular transport should not be bound to a particular transport “semantic” (RPC)“semantic” (RPC)
• should not define a markup language based should not define a markup language based upon a (meta) programming language type upon a (meta) programming language type system this is not using XML’s best feature!system this is not using XML’s best feature!
• should not mix data, behavior, and protocol in should not mix data, behavior, and protocol in the markupthe markup
• ......
![Page 13: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/13.jpg)
What should we define?
• An XML based exchange protocol that:An XML based exchange protocol that:– allows application(s) to embed their own application-
specific XML (schema-defined) documents within it
– allows these encapsulated messages to be delivered across a variety of transports (RPC, point-to-point messaging, publish and subscribe, …)
– separates the behavior from the state
– can also contain other associated information
– has bindings to particular transports such as HTTP(S)
![Page 14: Is XML-RPC the right model?](https://reader036.fdocuments.us/reader036/viewer/2022082712/56813d5c550346895da726f2/html5/thumbnails/14.jpg)
What does this enable?
• Data is self-describing according to public Data is self-describing according to public (vertical) XML schemas(vertical) XML schemas
• Data is delivered (bound) via an appropriate Data is delivered (bound) via an appropriate transporttransport
• the implementation of the behavior is the implementation of the behavior is abstractedabstracted
• loosely-coupled applications are possible loosely-coupled applications are possible since applications can deal with schema since applications can deal with schema evolutionevolution