SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
The Diary of a Fence-sitting SOA Geek


                    Dr Mark Little
       Technical Development Manager, Red Hat
Background

• Research into fault-tolerant distributed systems
  since 1986
      – Arjuna, Argus, Isis/Horus, Emerald, Xerox, …
      – DCE, DCOM, CORBA, JavaRMI, HTTP, Web Services, …
• Active in OMG, OASIS, W3C, JCP, GGF and
  others
• Involved with Web Services since 1999
      – Co-author of a number of WS-* specifications and standards
• Involved with REST/HTTP since at least 2000
      – W3Objects




  2                                                       Red Hat
Overview
• Evolution of distributed systems
   – 40 years in 5 minutes
• WS-* and REST/HTTP
   – Apples and Oranges, or Apples and Broccoli?
• Where should you start?
   – Donʼt panic!
• Lessons learned
   – And re-learnt
• Donʼt believe Snake-oil Salesmen
   – On both sides of the divide!




   3                                               Red Hat
The debate

• No REST bashing
      – We all know that REST/HTTP is just one approach to REST
• No WS-* bashing
      – And specifically no WSDL bashing please
• These types of debate have raged throughout
  history
      –   BetaMax vs VHS
      –   Blu-Ray vs HD-DVD
      –   England vs France
      –   MacDonalds vs BurgerKing
• Hybrid systems are the norm
      – Very few places can afford to rip-n-replace



  4                                                     Red Hat
Back to the future?




5                         Red Hat
January 1st 1951

• Dear diary
      – John next door has a computer-thingy called UNIVAC
          • Not sure what he expects to be able to do with it. It’s a bit big!
          • Apparently it’s good at math!
      – International Business Machines think the world will only
        need a handful of them
          • And that punch cards are the way of the future




  6                                                                   Red Hat
January 1st 1962

• Dear diary
      – I just got a computer. These things are a lot smaller and
        faster than they used to be (I can put a desk in the same
        room!)
      – Spacewars developed in 200 hours on PDP-1
      – Jim and I decided to try to connect his computer with mine
          • We spent about 4 months getting the wires connected, checked
            and working




  7                                                            Red Hat
January 1st 1969

•   Dear diary
        – Today we created ARPANet
        – Managed to connect 4 computers together on a network
             •   UCLA
             •   Stanford Research Institute
             •   UC Santa Barbara
             •   University of Utah
        – Heterogeneity is a real pain!
        – I canʼt see this scaling!
•   Update
        –   Invented email
        –   Can send simple messages (1971)
        –   Invented telnet (1972)
        –   Invented FTP (1973)




    8                                                            Red Hat
January 1st 1970 (The Epoch!)

•   Dear diary
        – Invented Remote Procedure Call (RPC)
        – First used in Unix back in the 1970ʼs to aid distributed development
             • Try to make distribution opaque
             • Leverage a well known pattern: local procedure calls
        – Invented UDP and TCP


•   RPC is NOT dead
        – Neither is it pining for the fjords
        – Integrated Systems Architecture (ISA), Open Network Computing
          (ONC), the Open Software Foundation Distributed Computing
          Environment (OSF/DCE), the Object Management Group Common
          Object Request Broker Architecture (CORBA), DCOM, J(2)EE




    9                                                                       Red Hat
January 1st 1990

 • Dear diary
     – A physicist has created something called the World Wide
       Web
        • What does he know compared to us Computer Scientists?!
          Hypertext? Hypercard maybe!
        • It’ll never catch on!




10                                                                 Red Hat
January 1st 1999

 • Dear diary
     – Invented Web Services
         • Users want to glue together existing distributed systems
         • The firewall vendors won’t open up to CORBA or DCOM, so
           we’ll show them!
     – HTTP is a useful transport after all




11                                                                Red Hat
January 1st 2005

 • Dear diary
     – Spent the last 5 years going backwards to distribution
       transparency
         • It feels like 1970 all over again!




12                                                              Red Hat
Distributed Systems

 • Web Services, WWW, CORBA, DCOM, …
     – All examples of distributed systems
 • Same fundamental laws
     – Develop “entity”
         • Define the UOW it supports
     – Search for “entity”
         • Agree “entity” offers the desired capability or UOW
     – Request “entity” to perform UOW
         • Create a network-transferable message
         • Send the message
     – Maybe try to make the remote interaction appear local
     – Maybe do some “enterprise” work as well
         • Security, transactions, replication etc.



13                                                               Red Hat
Different approaches

 •   Event Driven Architectures
     – Pub/Sub
 •   Service Oriented Architectures
 •   Resource Oriented Architectures
 •   Message Oriented Architectures
     – MOM
     – Pub/Sub
 •   Tuple Spaces
     – E.g., Linda
 •   RPC based
 •   Synchronous or asynchronous
 •   Group communication based
     – Reliable or unreliable

 •   There is no such thing as a global panacea!


14                                                 Red Hat
Tightly coupled

 • Client and server technologies based on RPC
     – Hide distribution
     – Make remote service invocation look the same as local
       component invocation
 • Unfortunately this leads to tightly coupled
   applications
     – Changes to the IDL require re-generation of stubs
        • And dissemination of new code
        • Or errors will occur during interactions
     – Such applications can be brittle
        • Hard to control the infrastructure as needed
        • No quiescent period

15                                                         Red Hat
Stub example



         Node X       Node Y




          CSO       SSO    O



         Client      Server
         Process     Process




16                             Red Hat
SOA in a nutshell

 • SOA is an architectural style to achieve loose
   coupling
     – A service is a unit of work done by a service provider to
       achieve desired end results for a consumer
 • SOA is deliberately not prescriptive about what
   happens behind service endpoints
     – We are only concerned with the transfer of structured
       data between parties
 • SOA turns business functions into services that can
   be reused and accessed through standard interfaces.
     – Should be accessible through different applications
       over a variety of channels


17                                                           Red Hat
Achieving loose coupling

 • SOA employs two architectural constraints
     – A small set of simple and ubiquitous interfaces to all
       participating software agents. Only generic semantics are
       encoded at the interfaces. The interfaces should be
       universally available for all providers and consumers
         • Yes, it’s often based on specific interfaces for each service
         • But does not need to be
     – Descriptive messages constrained by an extensible schema
       delivered through the interfaces. No, or only minimal, system
       behavior is prescribed by messages. A schema limits the
       vocabulary and structure of messages. An extensible
       schema allows new versions of services to be introduced
       without breaking existing services
         • Sounds vaguely REST-like



18                                                                         Red Hat
But …

 • At the one extreme
     – Defining specific service interfaces, akin to IDL
         • Easier to reason about the service
         • Limits the amount of freedom in changing the implementation
 • At the other extreme
     – Single operation (e.g., doWork)
         • More flexibility is changing the implementation
             – Well, almost …
         • More difficult to determine service functionality a priori
             – Need more service metadata
 • There are degrees of coupling and you should
   choose the level that is right for you
     – Not specific to distributed systems



19                                                                      Red Hat
The message and stack




20                           Red Hat
Service stack example



            Work dispatcher

           Manage non-
           functional data

           Routing validator
           (e.g., object
           present?)

           Message listener


               Network
21                             Red Hat
What are the pros and cons?

 • The same requirements are present throughout
   the stack
     – Split differently between the infrastructure and the
       “application”
 • Uniform interface allows for generic
   infrastructural support
     – Caching, extremely loose coupling
     – Can push more requirements on to the “developer”
     – Requires more from external contract meta-data
 • Specific interface allows for more limited generic
   support
     – Targeted caching, application semantics
     – Impacts less on the “developer” but may cost in terms of
       flexibility


22                                                                Red Hat
REST/HTTP in a nutshell

 •   Original HTTP specification talked about adding new
     commands
     – GET only in 0.9
     – GET, HEAD, POST, extension-method in 1.0
     – Now we have up to 8 different verbs
         • Changes to “interface” occur but users aren’t affected
 •   Many good distributed systems approaches
     – Dynamic content negotiation
     – Caching
     – Scalability
 •   It is NOT a transport




23                                                                  Red Hat
Not machine driven?

 • Often stated that REST/HTTP is only suitable for
   hypertext
     – “Because thatʼs the way the majority of the Web works”
 • Weak argument
     – Itʼs still a distributed system based on resources
     – OK, humans fill in the “gaps” in contract definition
     – Extra infrastructure support could help
         • Anyone remember URN name servers (1994/1995)?
 • Not enough “application” standards
     – Good point
 • Lack of good tooling
     – JAX-RS, WCF, …



24                                                              Red Hat
What about Web Services?

 • Popular integration approach
     – XML
     – HTTP
         • Other transport bindings are possible
 • Developed with machine-to-machine interactions
   in mind
 • Not specific to SOA
     – Web Services began life as CORBA-over-HTTP
     – XML-RPC
     – WS-RF and WS-Addressing
 • Web Services+SOA gives benefits
     – Loose coupling
     – Interoperability
     – Enterprise capabilities, e.g., security and transactions


25                                                                Red Hat
Enterprise realities

 • Customers want interoperability of
   heterogeneous systems
 • They want guaranteed delivery of messages
     – Even in the presence of failures such as network partitions
 • They want transactions
     – NOT ACID transactions!
 • They need audit trails
     – Sarbanes-Oxley anyone?
 • They need bullet-proof security
     – Sarbanes-Oxley
 • They need machine-readable contracts with SLAs



26                                                              Red Hat
WS-* Architecture




27                       Red Hat
Standards

 • The Web is a series of standards
     – URIs
     – HTTP
     – HTML
 • Universal adoption has to count for something!
 • REST/HTTP is ubiquitous
     – Communication interoperability, which is a good start
         • Also why WS-* standardised on HTTP
     – But application semantic interoperability is not there (yet)
         • Take a minimum of 5 years to do
 • But …



28                                                                    Red Hat
Transaction example

 • REST transactions by HP in 2000
     – Yes, customers want to coordinate business interactions,
       even if only atomically
 • http://<machine>/transaction-coordinator
   Performing a GET returns a list of all transactions
   know to the coordinator (active and recovery)
 • http://<machine>/transaction-
   coordinator/begin?<ClientID>
   Performing a PUT will start a new transaction and
   return a URL /transaction-coordinator/<id>




29                                                            Red Hat
However …

 • WS-* has driven protocol interoperability
     – More so than CORBA, DCE, Java
 • Native data and protocol bridging
 • Clearly defined semantics for transactions,
   security, reliable messaging
     – Not specific to HTTP




30                                              Red Hat
Zen and the art of [R..S]OA

 • Are all entities in a distributed system services?
 • Are they all resources?
 • Why canʼt we mix-and-match?
     – In fact, isnʼt a service a resource?
     – Isnʼt an object a resource?
 • Before ROA and SOA there were just distributed
   systems
     – Distributed-Oriented Computing? DOC? (EDOC)
     – Internet-Oriented Computing? IOC
         • What about the Intranet?
 • And a lot of work on scalability, fault tolerance
   etc.


31                                                     Red Hat
REST or (SOA?)WS-*?

 •   SOAP/HTTP
     – WS-* vendors have spent a lot of time ensuring it integrates with
       legacy systems
         • How many people remember that WS-* is supposed to also be about
           Internet scale computing?
     – Thatʼs important for out-of-the-box and interoperable deployments
     – But REST as a general architectural approach has merits even in
       SOA




 •   REST/HTTP has “simplicity” and (relative) ease of use
     – No vendor-lockin at the infrastructure level
     – Is precisely for Internet scale computing as well
     – Remember that a lot of cool Web applications arenʼt RESTful


32                                                                      Red Hat
What can REST learn from WS-*?

 • Uniform interface isnʼt enough for complex
   application requirements
     – Standardise on the application protocol semantics
     – Ad hoc does not scale and leads to interoperability
       nightmares
 • Popularise using HTTP outside of the browser
     – Yes, there are examples and implementations, but they are
       the exception to the rule
 • Just because the Web “works” is not sufficient
   reason to assume itʼs right for everything
     – When was the last time you rode a horse to work?




33                                                           Red Hat
What can WS-* learn from REST?

 • Donʼt abuse transports, they donʼt like it!
 • Adopt SOA principles
     – No more WS-RF please!
     – Adopt WS-Context in favour of WS-Addressing “extensions”
 • Late binding is good
     – But extremely late binding can be a burden
 • KISS and make up
     – Occams Razor
 • Infrastructure support for common
   services/resources simplifies development
 • The Web uses HTTP



34                                                          Red Hat
The combination

 • WS-* used within the firewall
     – REST principles could still help
     – SOAP is not fast!
 • REST/HTTP for between firewalls
     – HTTP is not for performance
     – Improved application protocol standards
 • Get the bridging between WS-* and REST/HTTP
   right
     – Leverage all of HTTP where possible
     – Definitely not easy to do, but …
 • WS-* between firewalls?
     – Unlikely to see massive adoption



35                                               Red Hat
13th March 2008

 • What have we learnt from the last 40 years?
     – One size does not fit all!
     – Use the right tool for the right job
         • If all you’ve got is a hammer then of course everything looks
           like a nail!




36                                                                     Red Hat
Conclusions

 • WS-* and REST/HTTP arenʼt perfect
     – But what is (DCOM, DCE, CORBA, JavaRMI, …)?
 • R&D on large scale distributed systems began in
   the late 80ʼs and early 90ʼs
     – Started before the Web
         • E.g., EU Broadcast and Cabernet projects
     – Addressed many of the same areas
         • But had no good use cases!
         • Was seen as too esoteric!
 • The Web is here to stay!
     – It is a deployment platform for “enterprise” applications
     – It is an “enterprise” service bus



37                                                                 Red Hat

Contenu connexe

En vedette

NZ Marketing Association Brainy Breakfast, 15 April 2014
NZ Marketing Association Brainy Breakfast, 15 April 2014NZ Marketing Association Brainy Breakfast, 15 April 2014
NZ Marketing Association Brainy Breakfast, 15 April 2014Simon Young
 
Stay Connected - world IPv6 Launch
Stay Connected - world IPv6 LaunchStay Connected - world IPv6 Launch
Stay Connected - world IPv6 LaunchOlle E Johansson
 
Kent Beck Effective Design
Kent Beck Effective DesignKent Beck Effective Design
Kent Beck Effective Designdeimos
 
Infofinal Presentation_re
Infofinal Presentation_reInfofinal Presentation_re
Infofinal Presentation_reBockit
 
I Problemi Adolescenziali
I Problemi AdolescenzialiI Problemi Adolescenziali
I Problemi Adolescenzialiguestdd490f
 
Can we measure Creativity, Design and Innovation? The case of México.
Can we measure Creativity, Design and Innovation? The case of México.Can we measure Creativity, Design and Innovation? The case of México.
Can we measure Creativity, Design and Innovation? The case of México.Marco Ferruzca
 
From links to votes
From links to votesFrom links to votes
From links to votesIan Lurie
 
IT strategy discussion
IT strategy discussionIT strategy discussion
IT strategy discussionMiha Kralj
 
E Bay Letterwith Public Redacted Verified Complaint
E Bay Letterwith Public Redacted Verified ComplaintE Bay Letterwith Public Redacted Verified Complaint
E Bay Letterwith Public Redacted Verified Complaintalirafat
 
CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...
CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...
CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...Kivi Leroux Miller
 
Etxebizitza 1 T
Etxebizitza 1 TEtxebizitza 1 T
Etxebizitza 1 Tikasleak1t
 
One Trick Ponies Get Shot, for SEOs
One Trick Ponies Get Shot, for SEOsOne Trick Ponies Get Shot, for SEOs
One Trick Ponies Get Shot, for SEOsIan Lurie
 
A Content Creation Strategy for a Busy Nonprofit - Ignite 10NTC
A Content Creation Strategy for a Busy Nonprofit - Ignite 10NTCA Content Creation Strategy for a Busy Nonprofit - Ignite 10NTC
A Content Creation Strategy for a Busy Nonprofit - Ignite 10NTCKivi Leroux Miller
 

En vedette (20)

NZ Marketing Association Brainy Breakfast, 15 April 2014
NZ Marketing Association Brainy Breakfast, 15 April 2014NZ Marketing Association Brainy Breakfast, 15 April 2014
NZ Marketing Association Brainy Breakfast, 15 April 2014
 
Stay Connected - world IPv6 Launch
Stay Connected - world IPv6 LaunchStay Connected - world IPv6 Launch
Stay Connected - world IPv6 Launch
 
Kent Beck Effective Design
Kent Beck Effective DesignKent Beck Effective Design
Kent Beck Effective Design
 
Demisie Draguta
Demisie DragutaDemisie Draguta
Demisie Draguta
 
Infofinal Presentation_re
Infofinal Presentation_reInfofinal Presentation_re
Infofinal Presentation_re
 
電腦作業
電腦作業電腦作業
電腦作業
 
I Problemi Adolescenziali
I Problemi AdolescenzialiI Problemi Adolescenziali
I Problemi Adolescenziali
 
Can we measure Creativity, Design and Innovation? The case of México.
Can we measure Creativity, Design and Innovation? The case of México.Can we measure Creativity, Design and Innovation? The case of México.
Can we measure Creativity, Design and Innovation? The case of México.
 
From links to votes
From links to votesFrom links to votes
From links to votes
 
Lucy Copia
Lucy   CopiaLucy   Copia
Lucy Copia
 
IT strategy discussion
IT strategy discussionIT strategy discussion
IT strategy discussion
 
E Bay Letterwith Public Redacted Verified Complaint
E Bay Letterwith Public Redacted Verified ComplaintE Bay Letterwith Public Redacted Verified Complaint
E Bay Letterwith Public Redacted Verified Complaint
 
CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...
CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...
CALM not BUSY: A New Approach for Nonprofit Communications Directors to Do Th...
 
5 Things
5 Things5 Things
5 Things
 
Prove It
Prove ItProve It
Prove It
 
Dar22
Dar22Dar22
Dar22
 
Etxebizitza 1 T
Etxebizitza 1 TEtxebizitza 1 T
Etxebizitza 1 T
 
One Trick Ponies Get Shot, for SEOs
One Trick Ponies Get Shot, for SEOsOne Trick Ponies Get Shot, for SEOs
One Trick Ponies Get Shot, for SEOs
 
I D A
I D AI D A
I D A
 
A Content Creation Strategy for a Busy Nonprofit - Ignite 10NTC
A Content Creation Strategy for a Busy Nonprofit - Ignite 10NTCA Content Creation Strategy for a Busy Nonprofit - Ignite 10NTC
A Content Creation Strategy for a Busy Nonprofit - Ignite 10NTC
 

Similaire à Mark Little Fence Sitting Soa Geek

Some news about the SW
Some news about the SWSome news about the SW
Some news about the SWIvan Herman
 
MarkLittle_EnterpriseMiddlewareForThe21stCentury
MarkLittle_EnterpriseMiddlewareForThe21stCenturyMarkLittle_EnterpriseMiddlewareForThe21stCentury
MarkLittle_EnterpriseMiddlewareForThe21stCenturyKostas Mavridis
 
Retooling the world wide web for its original purpose
Retooling the world wide web for its original purposeRetooling the world wide web for its original purpose
Retooling the world wide web for its original purposesingingfish
 
1 lost layer130123
1 lost layer1301231 lost layer130123
1 lost layer130123ARCFIRE ICT
 
ReST Vs SOA(P) ... Yawn
ReST Vs SOA(P) ... YawnReST Vs SOA(P) ... Yawn
ReST Vs SOA(P) ... Yawnozten
 
Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Abhishek Singh
 
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov Docker, Inc.
 
Tim O'Reilly Mashup Camp 2008
Tim O'Reilly Mashup Camp 2008Tim O'Reilly Mashup Camp 2008
Tim O'Reilly Mashup Camp 2008Tim O'Reilly
 
The Web of Things
The Web of ThingsThe Web of Things
The Web of ThingsFrank Greco
 
Basic Foundation For Cybersecurity
Basic Foundation For CybersecurityBasic Foundation For Cybersecurity
Basic Foundation For CybersecurityMohammed Adam
 
IPv6 IAB/IETF Activities Report from ARIN 32
IPv6 IAB/IETF Activities Report from ARIN 32IPv6 IAB/IETF Activities Report from ARIN 32
IPv6 IAB/IETF Activities Report from ARIN 32ARIN
 
SDN Demystified, by Dean Pemberton [APNIC 38]
SDN Demystified, by Dean Pemberton [APNIC 38]SDN Demystified, by Dean Pemberton [APNIC 38]
SDN Demystified, by Dean Pemberton [APNIC 38]APNIC
 
Mark Little Web Services And Transactions
Mark  Little    Web  Services And  TransactionsMark  Little    Web  Services And  Transactions
Mark Little Web Services And TransactionsSOA Symposium
 
FreeBSD: Looking forward to another 10 years by Jordan Hubbard
FreeBSD: Looking forward to another 10 years by Jordan HubbardFreeBSD: Looking forward to another 10 years by Jordan Hubbard
FreeBSD: Looking forward to another 10 years by Jordan Hubbardeurobsdcon
 
Evolution of network - computer networks
Evolution of network - computer networksEvolution of network - computer networks
Evolution of network - computer networksSabarishSanjeevi
 
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20Nathan O'Hanlon
 

Similaire à Mark Little Fence Sitting Soa Geek (20)

Some news about the SW
Some news about the SWSome news about the SW
Some news about the SW
 
MarkLittle_EnterpriseMiddlewareForThe21stCentury
MarkLittle_EnterpriseMiddlewareForThe21stCenturyMarkLittle_EnterpriseMiddlewareForThe21stCentury
MarkLittle_EnterpriseMiddlewareForThe21stCentury
 
Retooling the world wide web for its original purpose
Retooling the world wide web for its original purposeRetooling the world wide web for its original purpose
Retooling the world wide web for its original purpose
 
1 lost layer130123
1 lost layer1301231 lost layer130123
1 lost layer130123
 
Gaurab Ixp Tutorial
Gaurab Ixp TutorialGaurab Ixp Tutorial
Gaurab Ixp Tutorial
 
ReST Vs SOA(P) ... Yawn
ReST Vs SOA(P) ... YawnReST Vs SOA(P) ... Yawn
ReST Vs SOA(P) ... Yawn
 
Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up
 
Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289
 
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
Sharding Containers: Make Go Apps Computer-Friendly Again by Andrey Sibiryov
 
Couch Db
Couch DbCouch Db
Couch Db
 
Tim O'Reilly Mashup Camp 2008
Tim O'Reilly Mashup Camp 2008Tim O'Reilly Mashup Camp 2008
Tim O'Reilly Mashup Camp 2008
 
The Web of Things
The Web of ThingsThe Web of Things
The Web of Things
 
Basic Foundation For Cybersecurity
Basic Foundation For CybersecurityBasic Foundation For Cybersecurity
Basic Foundation For Cybersecurity
 
IPv6 IAB/IETF Activities Report from ARIN 32
IPv6 IAB/IETF Activities Report from ARIN 32IPv6 IAB/IETF Activities Report from ARIN 32
IPv6 IAB/IETF Activities Report from ARIN 32
 
Vtc keynote201110
Vtc keynote201110Vtc keynote201110
Vtc keynote201110
 
SDN Demystified, by Dean Pemberton [APNIC 38]
SDN Demystified, by Dean Pemberton [APNIC 38]SDN Demystified, by Dean Pemberton [APNIC 38]
SDN Demystified, by Dean Pemberton [APNIC 38]
 
Mark Little Web Services And Transactions
Mark  Little    Web  Services And  TransactionsMark  Little    Web  Services And  Transactions
Mark Little Web Services And Transactions
 
FreeBSD: Looking forward to another 10 years by Jordan Hubbard
FreeBSD: Looking forward to another 10 years by Jordan HubbardFreeBSD: Looking forward to another 10 years by Jordan Hubbard
FreeBSD: Looking forward to another 10 years by Jordan Hubbard
 
Evolution of network - computer networks
Evolution of network - computer networksEvolution of network - computer networks
Evolution of network - computer networks
 
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20Html5 web sockets - Brad Drysdale - London Web 2011-10-20
Html5 web sockets - Brad Drysdale - London Web 2011-10-20
 

Plus de deimos

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Rubydeimos
 
Randy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural PrinciplesRandy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural Principlesdeimos
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuerydeimos
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvmdeimos
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwrdeimos
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdddeimos
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovydeimos
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languagesdeimos
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfacesdeimos
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyonddeimos
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipitydeimos
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Webdeimos
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Restdeimos
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedraldeimos
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalabilitydeimos
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfairdeimos
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systemsdeimos
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registrydeimos
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platformdeimos
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolutiondeimos
 

Plus de deimos (20)

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Ruby
 
Randy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural PrinciplesRandy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural Principles
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvm
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwr
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdd
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languages
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfaces
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyond
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipity
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Web
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedral
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalability
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfair
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systems
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platform
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolution
 

Dernier

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Dernier (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

Mark Little Fence Sitting Soa Geek

  • 1. The Diary of a Fence-sitting SOA Geek Dr Mark Little Technical Development Manager, Red Hat
  • 2. Background • Research into fault-tolerant distributed systems since 1986 – Arjuna, Argus, Isis/Horus, Emerald, Xerox, … – DCE, DCOM, CORBA, JavaRMI, HTTP, Web Services, … • Active in OMG, OASIS, W3C, JCP, GGF and others • Involved with Web Services since 1999 – Co-author of a number of WS-* specifications and standards • Involved with REST/HTTP since at least 2000 – W3Objects 2 Red Hat
  • 3. Overview • Evolution of distributed systems – 40 years in 5 minutes • WS-* and REST/HTTP – Apples and Oranges, or Apples and Broccoli? • Where should you start? – Donʼt panic! • Lessons learned – And re-learnt • Donʼt believe Snake-oil Salesmen – On both sides of the divide! 3 Red Hat
  • 4. The debate • No REST bashing – We all know that REST/HTTP is just one approach to REST • No WS-* bashing – And specifically no WSDL bashing please • These types of debate have raged throughout history – BetaMax vs VHS – Blu-Ray vs HD-DVD – England vs France – MacDonalds vs BurgerKing • Hybrid systems are the norm – Very few places can afford to rip-n-replace 4 Red Hat
  • 5. Back to the future? 5 Red Hat
  • 6. January 1st 1951 • Dear diary – John next door has a computer-thingy called UNIVAC • Not sure what he expects to be able to do with it. It’s a bit big! • Apparently it’s good at math! – International Business Machines think the world will only need a handful of them • And that punch cards are the way of the future 6 Red Hat
  • 7. January 1st 1962 • Dear diary – I just got a computer. These things are a lot smaller and faster than they used to be (I can put a desk in the same room!) – Spacewars developed in 200 hours on PDP-1 – Jim and I decided to try to connect his computer with mine • We spent about 4 months getting the wires connected, checked and working 7 Red Hat
  • 8. January 1st 1969 • Dear diary – Today we created ARPANet – Managed to connect 4 computers together on a network • UCLA • Stanford Research Institute • UC Santa Barbara • University of Utah – Heterogeneity is a real pain! – I canʼt see this scaling! • Update – Invented email – Can send simple messages (1971) – Invented telnet (1972) – Invented FTP (1973) 8 Red Hat
  • 9. January 1st 1970 (The Epoch!) • Dear diary – Invented Remote Procedure Call (RPC) – First used in Unix back in the 1970ʼs to aid distributed development • Try to make distribution opaque • Leverage a well known pattern: local procedure calls – Invented UDP and TCP • RPC is NOT dead – Neither is it pining for the fjords – Integrated Systems Architecture (ISA), Open Network Computing (ONC), the Open Software Foundation Distributed Computing Environment (OSF/DCE), the Object Management Group Common Object Request Broker Architecture (CORBA), DCOM, J(2)EE 9 Red Hat
  • 10. January 1st 1990 • Dear diary – A physicist has created something called the World Wide Web • What does he know compared to us Computer Scientists?! Hypertext? Hypercard maybe! • It’ll never catch on! 10 Red Hat
  • 11. January 1st 1999 • Dear diary – Invented Web Services • Users want to glue together existing distributed systems • The firewall vendors won’t open up to CORBA or DCOM, so we’ll show them! – HTTP is a useful transport after all 11 Red Hat
  • 12. January 1st 2005 • Dear diary – Spent the last 5 years going backwards to distribution transparency • It feels like 1970 all over again! 12 Red Hat
  • 13. Distributed Systems • Web Services, WWW, CORBA, DCOM, … – All examples of distributed systems • Same fundamental laws – Develop “entity” • Define the UOW it supports – Search for “entity” • Agree “entity” offers the desired capability or UOW – Request “entity” to perform UOW • Create a network-transferable message • Send the message – Maybe try to make the remote interaction appear local – Maybe do some “enterprise” work as well • Security, transactions, replication etc. 13 Red Hat
  • 14. Different approaches • Event Driven Architectures – Pub/Sub • Service Oriented Architectures • Resource Oriented Architectures • Message Oriented Architectures – MOM – Pub/Sub • Tuple Spaces – E.g., Linda • RPC based • Synchronous or asynchronous • Group communication based – Reliable or unreliable • There is no such thing as a global panacea! 14 Red Hat
  • 15. Tightly coupled • Client and server technologies based on RPC – Hide distribution – Make remote service invocation look the same as local component invocation • Unfortunately this leads to tightly coupled applications – Changes to the IDL require re-generation of stubs • And dissemination of new code • Or errors will occur during interactions – Such applications can be brittle • Hard to control the infrastructure as needed • No quiescent period 15 Red Hat
  • 16. Stub example Node X Node Y CSO SSO O Client Server Process Process 16 Red Hat
  • 17. SOA in a nutshell • SOA is an architectural style to achieve loose coupling – A service is a unit of work done by a service provider to achieve desired end results for a consumer • SOA is deliberately not prescriptive about what happens behind service endpoints – We are only concerned with the transfer of structured data between parties • SOA turns business functions into services that can be reused and accessed through standard interfaces. – Should be accessible through different applications over a variety of channels 17 Red Hat
  • 18. Achieving loose coupling • SOA employs two architectural constraints – A small set of simple and ubiquitous interfaces to all participating software agents. Only generic semantics are encoded at the interfaces. The interfaces should be universally available for all providers and consumers • Yes, it’s often based on specific interfaces for each service • But does not need to be – Descriptive messages constrained by an extensible schema delivered through the interfaces. No, or only minimal, system behavior is prescribed by messages. A schema limits the vocabulary and structure of messages. An extensible schema allows new versions of services to be introduced without breaking existing services • Sounds vaguely REST-like 18 Red Hat
  • 19. But … • At the one extreme – Defining specific service interfaces, akin to IDL • Easier to reason about the service • Limits the amount of freedom in changing the implementation • At the other extreme – Single operation (e.g., doWork) • More flexibility is changing the implementation – Well, almost … • More difficult to determine service functionality a priori – Need more service metadata • There are degrees of coupling and you should choose the level that is right for you – Not specific to distributed systems 19 Red Hat
  • 20. The message and stack 20 Red Hat
  • 21. Service stack example Work dispatcher Manage non- functional data Routing validator (e.g., object present?) Message listener Network 21 Red Hat
  • 22. What are the pros and cons? • The same requirements are present throughout the stack – Split differently between the infrastructure and the “application” • Uniform interface allows for generic infrastructural support – Caching, extremely loose coupling – Can push more requirements on to the “developer” – Requires more from external contract meta-data • Specific interface allows for more limited generic support – Targeted caching, application semantics – Impacts less on the “developer” but may cost in terms of flexibility 22 Red Hat
  • 23. REST/HTTP in a nutshell • Original HTTP specification talked about adding new commands – GET only in 0.9 – GET, HEAD, POST, extension-method in 1.0 – Now we have up to 8 different verbs • Changes to “interface” occur but users aren’t affected • Many good distributed systems approaches – Dynamic content negotiation – Caching – Scalability • It is NOT a transport 23 Red Hat
  • 24. Not machine driven? • Often stated that REST/HTTP is only suitable for hypertext – “Because thatʼs the way the majority of the Web works” • Weak argument – Itʼs still a distributed system based on resources – OK, humans fill in the “gaps” in contract definition – Extra infrastructure support could help • Anyone remember URN name servers (1994/1995)? • Not enough “application” standards – Good point • Lack of good tooling – JAX-RS, WCF, … 24 Red Hat
  • 25. What about Web Services? • Popular integration approach – XML – HTTP • Other transport bindings are possible • Developed with machine-to-machine interactions in mind • Not specific to SOA – Web Services began life as CORBA-over-HTTP – XML-RPC – WS-RF and WS-Addressing • Web Services+SOA gives benefits – Loose coupling – Interoperability – Enterprise capabilities, e.g., security and transactions 25 Red Hat
  • 26. Enterprise realities • Customers want interoperability of heterogeneous systems • They want guaranteed delivery of messages – Even in the presence of failures such as network partitions • They want transactions – NOT ACID transactions! • They need audit trails – Sarbanes-Oxley anyone? • They need bullet-proof security – Sarbanes-Oxley • They need machine-readable contracts with SLAs 26 Red Hat
  • 28. Standards • The Web is a series of standards – URIs – HTTP – HTML • Universal adoption has to count for something! • REST/HTTP is ubiquitous – Communication interoperability, which is a good start • Also why WS-* standardised on HTTP – But application semantic interoperability is not there (yet) • Take a minimum of 5 years to do • But … 28 Red Hat
  • 29. Transaction example • REST transactions by HP in 2000 – Yes, customers want to coordinate business interactions, even if only atomically • http://<machine>/transaction-coordinator Performing a GET returns a list of all transactions know to the coordinator (active and recovery) • http://<machine>/transaction- coordinator/begin?<ClientID> Performing a PUT will start a new transaction and return a URL /transaction-coordinator/<id> 29 Red Hat
  • 30. However … • WS-* has driven protocol interoperability – More so than CORBA, DCE, Java • Native data and protocol bridging • Clearly defined semantics for transactions, security, reliable messaging – Not specific to HTTP 30 Red Hat
  • 31. Zen and the art of [R..S]OA • Are all entities in a distributed system services? • Are they all resources? • Why canʼt we mix-and-match? – In fact, isnʼt a service a resource? – Isnʼt an object a resource? • Before ROA and SOA there were just distributed systems – Distributed-Oriented Computing? DOC? (EDOC) – Internet-Oriented Computing? IOC • What about the Intranet? • And a lot of work on scalability, fault tolerance etc. 31 Red Hat
  • 32. REST or (SOA?)WS-*? • SOAP/HTTP – WS-* vendors have spent a lot of time ensuring it integrates with legacy systems • How many people remember that WS-* is supposed to also be about Internet scale computing? – Thatʼs important for out-of-the-box and interoperable deployments – But REST as a general architectural approach has merits even in SOA • REST/HTTP has “simplicity” and (relative) ease of use – No vendor-lockin at the infrastructure level – Is precisely for Internet scale computing as well – Remember that a lot of cool Web applications arenʼt RESTful 32 Red Hat
  • 33. What can REST learn from WS-*? • Uniform interface isnʼt enough for complex application requirements – Standardise on the application protocol semantics – Ad hoc does not scale and leads to interoperability nightmares • Popularise using HTTP outside of the browser – Yes, there are examples and implementations, but they are the exception to the rule • Just because the Web “works” is not sufficient reason to assume itʼs right for everything – When was the last time you rode a horse to work? 33 Red Hat
  • 34. What can WS-* learn from REST? • Donʼt abuse transports, they donʼt like it! • Adopt SOA principles – No more WS-RF please! – Adopt WS-Context in favour of WS-Addressing “extensions” • Late binding is good – But extremely late binding can be a burden • KISS and make up – Occams Razor • Infrastructure support for common services/resources simplifies development • The Web uses HTTP 34 Red Hat
  • 35. The combination • WS-* used within the firewall – REST principles could still help – SOAP is not fast! • REST/HTTP for between firewalls – HTTP is not for performance – Improved application protocol standards • Get the bridging between WS-* and REST/HTTP right – Leverage all of HTTP where possible – Definitely not easy to do, but … • WS-* between firewalls? – Unlikely to see massive adoption 35 Red Hat
  • 36. 13th March 2008 • What have we learnt from the last 40 years? – One size does not fit all! – Use the right tool for the right job • If all you’ve got is a hammer then of course everything looks like a nail! 36 Red Hat
  • 37. Conclusions • WS-* and REST/HTTP arenʼt perfect – But what is (DCOM, DCE, CORBA, JavaRMI, …)? • R&D on large scale distributed systems began in the late 80ʼs and early 90ʼs – Started before the Web • E.g., EU Broadcast and Cabernet projects – Addressed many of the same areas • But had no good use cases! • Was seen as too esoteric! • The Web is here to stay! – It is a deployment platform for “enterprise” applications – It is an “enterprise” service bus 37 Red Hat