Is XML-RPC the right model?

14
Is XML-RPC the right model? Larry Cable, Larry Cable, CTO, CTO, iPlanet Application Server iPlanet Application Server

description

Is XML-RPC the right model?. Larry Cable, CTO, iPlanet Application Server. What am I here for?. Convince you that my problem is your problem! Explain why a standard solution is crucial Suggest that XML-RPC isnt sufficent explore the requirements of the real solution. - PowerPoint PPT Presentation

Transcript of Is XML-RPC the right model?

Page 1: Is XML-RPC the right model?

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?

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?

XML based Internet APM

Page 4: Is XML-RPC the right model?

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?

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?

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?

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?

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?

App Vs Implementation

ImplementationImplementation

AApppplliiccaattiioonn

XML

RPC RDBMS

Page 10: Is XML-RPC the right model?

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?

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?

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?

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?

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