SlideShare a Scribd company logo
Limitations of SOA
Service Oriented Architecture
  Architecture
  Service
  Enterprise ready SOA stack
     Services
     Connectors
     Containers
  What are people saying ?
  How much SOA
  Its all in the semantics
Architecture
  1471-2000:
  “Architecture is the fundamental organization of a
      system embodied in its components, their
      relationships to each other, and to the
      environment, and the principles guiding its design
      and evolution”.

     This is a good start, what does this mean for SOA?
In SOA solutions there are service providers—elements offering services to be used by
others and service users—elements that invoke services provided by others. These
categories are not mutually exclusive. A service provider may use other services, and a
service user may provide a service interface.


We define SOA as an architectural style where systems consist of service users and
service providers.
     •An architectural style defines a vocabulary of component and connector types, and
     constraints on how they can be combined [Shaw 1996].
     •For SOA, the basic component types are service user and service provider. Auxiliary
     component types, such as the enterprise service bus (ESB) and the directory of services, can
     be used. SOA connector types include synchronous and asynchronous calls using SOAP, bare
     http, and messaging infrastructure.
     •Many properties can be assigned to these component and connector types, but they are
     usually specific to each implementation technology

                                                 Evaluating a Service-Oriented Architecture      September 2007

                                                                                            TECHNICAL REPORT
                                                                                            CMU/SEI-2007-TR-015
                                                                                                ESC-TR-2007-015
                                                                       Software Architecture Technology Initiative
Capabilities Enterprise Ready = SOA + ESB
          Service
          A service is a network-aware unit of independent
          deployment, which can deliver a set of capabilities to a
   SOA




          managed SLA.
          Capabilities:service proxies, interfaces, orchestration,       WSDL, BPEL, Directories (lookup)
          Requires:standard notations and a meta-model for data.




                                                                        Many alternatives here – choice will
          Connector*
          A connector defines a dynamic view on the overall             impact overall quality attributes of the
          architecture by defining a picture of run-time entities and   SOA architecture:
          potential interactions.
          Capabilities: intelligent messaging (reliable messaging,                XML SOAP –RPC, Document
   ESB




          content-based routing, transformation, protocol                         REST – Resource based
          switching, protocol adaptors…), business event visibility
          (event capture, feed to dashboards, link to network
                                                                                  Messaging – MQ Series
          events…).                                                               RMI/IIOP – EJB etc
          Container
          A container monitors and administers the dynamic
          integration of services at run-time.
          Capabilities such as failover and load balancing,
                                                                        Enterprise Service Bus vs. point to point,
          application-level security functions (authentication,         Service Fabric technology – infiniflow
          authorisation, encryption / decryption, data integrity /
   ???




          non-repudiation, digital signatures…), audit-logging and
          registry functionality, centralised management and
          distributed enforcement of application policies, logging,
          audit, registry services etc.


*Adapted from SEI definition                                                 The Cloud is in here somewhere
WSDL                                 Describes the syntax of a web service but NOT
 <definitions name="HelloService"
                                     it’s semantics
 <message name="SayHelloRequest">
       <part name="firstName" type="xsd:string"/>
    </message>
    <message name="SayHelloResponse">
       <part name="greeting" type="xsd:string"/>
    </message>


    <portType name="Hello_PortType">
       <operation name="sayHello">
          <input message="tns:SayHelloRequest"/>
          <output message="tns:SayHelloResponse"/>
       </operation>
    </portType>
                                                                         •Definition : HelloService
      <binding name="Hello_Binding" type="tns:Hello_PortType">

    <soap:binding style="rpc"                                            •Message :
       transport="http://schemas.xmlsoap.org/soap/http"/>                        1.sayHelloRequest : firstName
    <operation name="sayHello">                                                  parameter
       <soap:operation soapAction="sayHello"/>                                   2.sayHelloresponse: greeting return
       <input>                                                                   value
          <soap:body
                                                                         •Port Type: sayHello operation that consists
                                                                         of a request and response service.
             encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
             namespace="urn:examples:helloservice"
             use="encoded"/>
       </input>
                                                                         •Binding: Direction to use the SOAP HTTP
       <output>                                                          transport protocol.
          <soap:body
             encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"   •Service: Service available at
             namespace="urn:examples:helloservice"                       http://www.examples.com/SayHello/.
             use="encoded"/>
       </output>
                                                                         •Port: Associates the binding with the URI
                                                                         http://www.examples.com/SayHello/ where the
    </operation>
    </binding>
    <service name="Hello_Service">
                                                                         running service can be accessed.
       <documentation>WSDL File for HelloService</documentation>
       <port binding="tns:Hello_Binding" name="Hello_Port">
          <soap:address
             location="http://www.examples.com/SayHello/">
       </port>
    </service>
 </definitions>
What have we lost with SOAP/XML that we have with
 RMI/IIOP ???
    RPC                          Document




RMI/IIOP
                           public interface BankAccount extends java.rmi.Remote

                           {

                           public void deposit(float amount) throws java.rmi.RemoteException;

                           public void withdraw(float amount) throws OverdrawnException,

                           java.rmi.RemoteException; public float getBalance() throws
                           java.rmi.RemoteException;

                           }
Why an Enterprise Service Bus ??


                                        Point to Point vs. ESB




 How to get effective re-use from SOA
 and ESB, re-use achieved through
 canonical form embedded in ESB
 architecture
Deriving real value from SOA is not a technical problem
The Real Issues With SOA                                    but more a journey between IT and the Business.



   “That's my biggest worry about all this
                                                                          “When organisations think of services as key
   discussion about SOA is that I'm hearing plenty
                                                                          assets in system design, the value of reusing
   about the 'S' (there's quite little of 'O' going on)
                                                                          these services becomes more apparent. As a
   but the 'A' seems to vary from person to
                                                                          result, technologies and techniques for asset
   person, and that makes me worry that we're
                                                                          management and governance, and
   going to end up with a world where
                                                                          repeatable ways to capture patterns for
   interoperations is left for the reader rather than
                                                                          combining assets, become much more
   a world where the interoperability is built in
                                                                          important. A set of workflows, referred to as
   from the ground up.“
   (Simon Phipps, Sun)                                                    Asset Production, Asset Identification, Asset
                                                                          Management and Asset Consumption,
                                                                          describe (the service lifecycle)”.
   “Services are an important but insufficient                            (“SOA Development Using the IBM Rational Software
   mechanism for the construction of systems”.                            Development Platform: A Practical Guide” September 2005)
   (Grady Booch, IBM Fellow)



   “The semantics issue (the meaning of parameters and so forth) has to be solved (domain
   modeling). This is key in any business-to-business (B2B) and dynamic invocation scenario”.
   (“Elements of Service-Oriented Analysis and Design”, IBM, 02 Jun 04)



   “Information Management, which includes both data and content management, is an essential
   building block for SOA”.
    “Ultimately, without a solid and robust information management environment, SOA is limited and
   presents fewer opportunities for end-to-end business integration and transformation”.
   (“Information management in Service-Oriented Architecture, Part 1: Discover the role of information management in SOA”, IBM)
An Ideal World
"Where is the 'A' in SOA? With the emphasis
on turning every piece of software in the                                  “A software process architecture is key to
enterprise into a collection of services, are we in                        understanding and interpreting the needs of
danger of replacing spaghetti code of old with                             just enough process”
spaghetti architecture of innumerable services                             ('Just Enough Process' for Web Services Delivery, Gartner,
with innumerable interdependencies?”                                       October 2002)
(David Chappell, Sonic Software)




“Building an enterprise SOA requires an architecture for the configuration, hosting, and
management of integration components as services, an invocation framework for the routing of
messages between services, and flexibility of control over protocols, quality of service (QoS)
settings for message delivery, and security. The ESB provides that architecture. It puts the “A”
in SOA”.
“A key part of the architecture is a distributed “service container” model that can be used to host
and manage application assets and integration components as event-driven services that all
share a federated namespace for locating and accessing each other”.
(David Chappell, Sonic Software)




“SOAs don't address the challenge of ensuring that business data is delivered in a consistent and
semantically correct manner. In fact, they exacerbate the problem of maintaining consistent
definitions for business entities such as customer, product, or invoice”
(“SOA’s Achilles' Heel, Larry Allston, Vice President of products for Pantero Corporation).
How much SOA and how far




Loose IT coupling and strong business coupling – really desirable ??
Service Granularity
  How granular to make a service
  getFieldOne(); getFieldTwo()
  vs. GetDataElement()


  Representational State Transfer
     URI, HTTP
     GET (list) , PUT(update), POST(create), DELETE
      (delete)
     Note REST is an architecture NOT a protocol.
Issues with service and distributed architectures

     Latency.
 •   There is a speed differential between a local (in the same process space) call
     and a remote network call. This differential must be taken into account when
     designing systems that will not suffer from potential performance problems.
     This issue has not yet been rendered obsolete by faster networks and hardware
     and remains a key design issue to be solved when designing a distributed
     system. See J2EE design patterns Fast Lane Reader and Page-by-Page Iterator.

     Memory Access.
 •   This essentially revolves around accesses to resources via pointers. Addresses
     for a local space are not valid for a remote space. We can either provide a
     language mechanism that hides the local/remote nature of a resource or we
     treat it programmatically i.e. the programmer is aware of the difference.
 •   If we provide a language mechanism for abstracting out the differences then
     ALL pointer usage must follow the distributed rationale. The language must not
     be allowed to provide address-space relative pointers otherwise we are back to
     the local/remote arguments. This tends to exclude languages such as C/C++
     etc. from being able to support such a language extension.
Partial Failure.
•   This has been described as the central reality of distributed computing see
    [Waldo]. The issues boil down to the inability of some agent to adequately
    identify what components have failed and reliably inform other components of
    that failure. There is no global state that can be examined to determine the
    nature of the failure, be that network or remote processor. To be able to
    ensure a consistent state is maintained in the presence of failures distributed
    applications must deal with indeterminacy, that is components must be designed
    to react correctly to the various possible partial failures that can occur.

    Concurrency.
•   Objects involved in providing services across a network to multiple clients must
    be able to handle concurrent method invocations. Thus if we strive for the one
    model view all objects in our application must have adequate concurrency
    semantics. There are subtle differences between multi-threaded applications
    where the threading model can to some extent be controlled and a true
    distributed object where the threading model is unknown.
The Semantics problem

                           Tools – the world of services, the picture depicts a hammer .. But what makes it a
                           hammer ??




                           Context and Environment – we possess an understanding of hammering – that is how
                           to use a hammer




                                                                                                  Context and
Context and Environment underpins our view of services through the                                Environment
notion of suitability.

However our view of services underlies Context and Environment
                                                                        Intelligibility                         Suitability
through the notion of intelligibility


                                                                                                      Tools




                                   Reflex Hammer – used in medicine !!

More Related Content

What's hot

Layer 7: 2010 RSA Presentation on REST and Oauth Security
Layer 7: 2010 RSA Presentation on REST and Oauth SecurityLayer 7: 2010 RSA Presentation on REST and Oauth Security
Layer 7: 2010 RSA Presentation on REST and Oauth Security
CA API Management
 
Java Web Service - Summer 2004
Java Web Service - Summer 2004Java Web Service - Summer 2004
Java Web Service - Summer 2004
Danny Teng
 
ESB and SOA
ESB and SOAESB and SOA
ESB and SOA
WSO2
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforcedeimos
 
Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...
Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...
Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...
Wen Zhu
 
A Guide to the SOA Galaxy: Strategy, Design and Best Practices
A Guide to the SOA Galaxy: Strategy, Design and Best PracticesA Guide to the SOA Galaxy: Strategy, Design and Best Practices
A Guide to the SOA Galaxy: Strategy, Design and Best PracticesDmitri Shiryaev
 
dvfsds
dvfsdsdvfsds
dvfsds
hung tran
 
Enterprise Service Bus Part 1
Enterprise Service Bus Part 1Enterprise Service Bus Part 1
Enterprise Service Bus Part 1
Return on Intelligence
 
Sematic SOA Governance Demo screen shots
Sematic SOA Governance Demo screen shotsSematic SOA Governance Demo screen shots
Sematic SOA Governance Demo screen shotsarivolit
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
BIOVIA
 

What's hot (10)

Layer 7: 2010 RSA Presentation on REST and Oauth Security
Layer 7: 2010 RSA Presentation on REST and Oauth SecurityLayer 7: 2010 RSA Presentation on REST and Oauth Security
Layer 7: 2010 RSA Presentation on REST and Oauth Security
 
Java Web Service - Summer 2004
Java Web Service - Summer 2004Java Web Service - Summer 2004
Java Web Service - Summer 2004
 
ESB and SOA
ESB and SOAESB and SOA
ESB and SOA
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforce
 
Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...
Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...
Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...
 
A Guide to the SOA Galaxy: Strategy, Design and Best Practices
A Guide to the SOA Galaxy: Strategy, Design and Best PracticesA Guide to the SOA Galaxy: Strategy, Design and Best Practices
A Guide to the SOA Galaxy: Strategy, Design and Best Practices
 
dvfsds
dvfsdsdvfsds
dvfsds
 
Enterprise Service Bus Part 1
Enterprise Service Bus Part 1Enterprise Service Bus Part 1
Enterprise Service Bus Part 1
 
Sematic SOA Governance Demo screen shots
Sematic SOA Governance Demo screen shotsSematic SOA Governance Demo screen shots
Sematic SOA Governance Demo screen shots
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
 

Similar to Soa limitations

Introduction to Service Oriented Architecture
Introduction to Service Oriented ArchitectureIntroduction to Service Oriented Architecture
Introduction to Service Oriented Architecture
DATA Inc.
 
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Nathaniel Palmer
 
Differentiating between web APIs, SOA, & integration …and why it matters
Differentiating between web APIs, SOA, & integration…and why it mattersDifferentiating between web APIs, SOA, & integration…and why it matters
Differentiating between web APIs, SOA, & integration …and why it matters
Kim Clark
 
Web Services Foundation Technologies
Web Services Foundation TechnologiesWeb Services Foundation Technologies
Web Services Foundation Technologies
Pankaj Saharan
 
SOA and web services
SOA and web servicesSOA and web services
SOA and web services
Sreekanth Narayanan
 
Mule and web services
Mule and web servicesMule and web services
Mule and web services
Manav Prasad
 
The Middleware technology that connects the enterprise
The Middleware technology that connects the enterpriseThe Middleware technology that connects the enterprise
The Middleware technology that connects the enterprise
Kasun Indrasiri
 
Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
Imesh Gunaratne
 
Keynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessKeynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessWSO2
 
Unit 2
Unit 2Unit 2
Unit 2
Ravi Kumar
 
Soap
SoapSoap
Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus WSO2
 
Oracle soa 11g training in bangalore
Oracle soa 11g training in bangaloreOracle soa 11g training in bangalore
Oracle soa 11g training in bangalore
Softgen Infotech
 
Basic concepts of soa
Basic concepts of soaBasic concepts of soa
Basic concepts of soa
Venu Borra LION*
 

Similar to Soa limitations (20)

Introduction to Service Oriented Architecture
Introduction to Service Oriented ArchitectureIntroduction to Service Oriented Architecture
Introduction to Service Oriented Architecture
 
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...
 
Differentiating between web APIs, SOA, & integration …and why it matters
Differentiating between web APIs, SOA, & integration…and why it mattersDifferentiating between web APIs, SOA, & integration…and why it matters
Differentiating between web APIs, SOA, & integration …and why it matters
 
Web Services Foundation Technologies
Web Services Foundation TechnologiesWeb Services Foundation Technologies
Web Services Foundation Technologies
 
SOA and web services
SOA and web servicesSOA and web services
SOA and web services
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Mule and web services
Mule and web servicesMule and web services
Mule and web services
 
The Middleware technology that connects the enterprise
The Middleware technology that connects the enterpriseThe Middleware technology that connects the enterprise
The Middleware technology that connects the enterprise
 
Service Oriented Architecture & Beyond
Service Oriented Architecture & BeyondService Oriented Architecture & Beyond
Service Oriented Architecture & Beyond
 
Keynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessKeynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your business
 
Soa & Bpel With Web Sphere
Soa & Bpel With Web SphereSoa & Bpel With Web Sphere
Soa & Bpel With Web Sphere
 
Soa & Bpel With Web Sphere
Soa & Bpel With Web SphereSoa & Bpel With Web Sphere
Soa & Bpel With Web Sphere
 
Unit 2
Unit 2Unit 2
Unit 2
 
Soap
SoapSoap
Soap
 
Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus
 
Oracle soa 11g training in bangalore
Oracle soa 11g training in bangaloreOracle soa 11g training in bangalore
Oracle soa 11g training in bangalore
 
Basic concepts of soa
Basic concepts of soaBasic concepts of soa
Basic concepts of soa
 

Soa limitations

  • 2. Service Oriented Architecture Architecture Service Enterprise ready SOA stack  Services  Connectors  Containers What are people saying ? How much SOA Its all in the semantics
  • 3. Architecture 1471-2000: “Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution”.  This is a good start, what does this mean for SOA?
  • 4. In SOA solutions there are service providers—elements offering services to be used by others and service users—elements that invoke services provided by others. These categories are not mutually exclusive. A service provider may use other services, and a service user may provide a service interface. We define SOA as an architectural style where systems consist of service users and service providers. •An architectural style defines a vocabulary of component and connector types, and constraints on how they can be combined [Shaw 1996]. •For SOA, the basic component types are service user and service provider. Auxiliary component types, such as the enterprise service bus (ESB) and the directory of services, can be used. SOA connector types include synchronous and asynchronous calls using SOAP, bare http, and messaging infrastructure. •Many properties can be assigned to these component and connector types, but they are usually specific to each implementation technology Evaluating a Service-Oriented Architecture September 2007 TECHNICAL REPORT CMU/SEI-2007-TR-015 ESC-TR-2007-015 Software Architecture Technology Initiative
  • 5. Capabilities Enterprise Ready = SOA + ESB Service A service is a network-aware unit of independent deployment, which can deliver a set of capabilities to a SOA managed SLA. Capabilities:service proxies, interfaces, orchestration, WSDL, BPEL, Directories (lookup) Requires:standard notations and a meta-model for data. Many alternatives here – choice will Connector* A connector defines a dynamic view on the overall impact overall quality attributes of the architecture by defining a picture of run-time entities and SOA architecture: potential interactions. Capabilities: intelligent messaging (reliable messaging, XML SOAP –RPC, Document ESB content-based routing, transformation, protocol REST – Resource based switching, protocol adaptors…), business event visibility (event capture, feed to dashboards, link to network Messaging – MQ Series events…). RMI/IIOP – EJB etc Container A container monitors and administers the dynamic integration of services at run-time. Capabilities such as failover and load balancing, Enterprise Service Bus vs. point to point, application-level security functions (authentication, Service Fabric technology – infiniflow authorisation, encryption / decryption, data integrity / ??? non-repudiation, digital signatures…), audit-logging and registry functionality, centralised management and distributed enforcement of application policies, logging, audit, registry services etc. *Adapted from SEI definition The Cloud is in here somewhere
  • 6. WSDL Describes the syntax of a web service but NOT <definitions name="HelloService" it’s semantics <message name="SayHelloRequest"> <part name="firstName" type="xsd:string"/> </message> <message name="SayHelloResponse"> <part name="greeting" type="xsd:string"/> </message> <portType name="Hello_PortType"> <operation name="sayHello"> <input message="tns:SayHelloRequest"/> <output message="tns:SayHelloResponse"/> </operation> </portType> •Definition : HelloService <binding name="Hello_Binding" type="tns:Hello_PortType"> <soap:binding style="rpc" •Message : transport="http://schemas.xmlsoap.org/soap/http"/> 1.sayHelloRequest : firstName <operation name="sayHello"> parameter <soap:operation soapAction="sayHello"/> 2.sayHelloresponse: greeting return <input> value <soap:body •Port Type: sayHello operation that consists of a request and response service. encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </input> •Binding: Direction to use the SOAP HTTP <output> transport protocol. <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" •Service: Service available at namespace="urn:examples:helloservice" http://www.examples.com/SayHello/. use="encoded"/> </output> •Port: Associates the binding with the URI http://www.examples.com/SayHello/ where the </operation> </binding> <service name="Hello_Service"> running service can be accessed. <documentation>WSDL File for HelloService</documentation> <port binding="tns:Hello_Binding" name="Hello_Port"> <soap:address location="http://www.examples.com/SayHello/"> </port> </service> </definitions>
  • 7. What have we lost with SOAP/XML that we have with RMI/IIOP ??? RPC Document RMI/IIOP public interface BankAccount extends java.rmi.Remote { public void deposit(float amount) throws java.rmi.RemoteException; public void withdraw(float amount) throws OverdrawnException, java.rmi.RemoteException; public float getBalance() throws java.rmi.RemoteException; }
  • 8. Why an Enterprise Service Bus ?? Point to Point vs. ESB How to get effective re-use from SOA and ESB, re-use achieved through canonical form embedded in ESB architecture
  • 9. Deriving real value from SOA is not a technical problem The Real Issues With SOA but more a journey between IT and the Business. “That's my biggest worry about all this “When organisations think of services as key discussion about SOA is that I'm hearing plenty assets in system design, the value of reusing about the 'S' (there's quite little of 'O' going on) these services becomes more apparent. As a but the 'A' seems to vary from person to result, technologies and techniques for asset person, and that makes me worry that we're management and governance, and going to end up with a world where repeatable ways to capture patterns for interoperations is left for the reader rather than combining assets, become much more a world where the interoperability is built in important. A set of workflows, referred to as from the ground up.“ (Simon Phipps, Sun) Asset Production, Asset Identification, Asset Management and Asset Consumption, describe (the service lifecycle)”. “Services are an important but insufficient (“SOA Development Using the IBM Rational Software mechanism for the construction of systems”. Development Platform: A Practical Guide” September 2005) (Grady Booch, IBM Fellow) “The semantics issue (the meaning of parameters and so forth) has to be solved (domain modeling). This is key in any business-to-business (B2B) and dynamic invocation scenario”. (“Elements of Service-Oriented Analysis and Design”, IBM, 02 Jun 04) “Information Management, which includes both data and content management, is an essential building block for SOA”. “Ultimately, without a solid and robust information management environment, SOA is limited and presents fewer opportunities for end-to-end business integration and transformation”. (“Information management in Service-Oriented Architecture, Part 1: Discover the role of information management in SOA”, IBM)
  • 10. An Ideal World "Where is the 'A' in SOA? With the emphasis on turning every piece of software in the “A software process architecture is key to enterprise into a collection of services, are we in understanding and interpreting the needs of danger of replacing spaghetti code of old with just enough process” spaghetti architecture of innumerable services ('Just Enough Process' for Web Services Delivery, Gartner, with innumerable interdependencies?” October 2002) (David Chappell, Sonic Software) “Building an enterprise SOA requires an architecture for the configuration, hosting, and management of integration components as services, an invocation framework for the routing of messages between services, and flexibility of control over protocols, quality of service (QoS) settings for message delivery, and security. The ESB provides that architecture. It puts the “A” in SOA”. “A key part of the architecture is a distributed “service container” model that can be used to host and manage application assets and integration components as event-driven services that all share a federated namespace for locating and accessing each other”. (David Chappell, Sonic Software) “SOAs don't address the challenge of ensuring that business data is delivered in a consistent and semantically correct manner. In fact, they exacerbate the problem of maintaining consistent definitions for business entities such as customer, product, or invoice” (“SOA’s Achilles' Heel, Larry Allston, Vice President of products for Pantero Corporation).
  • 11. How much SOA and how far Loose IT coupling and strong business coupling – really desirable ??
  • 12. Service Granularity How granular to make a service getFieldOne(); getFieldTwo() vs. GetDataElement() Representational State Transfer  URI, HTTP  GET (list) , PUT(update), POST(create), DELETE (delete)  Note REST is an architecture NOT a protocol.
  • 13. Issues with service and distributed architectures Latency. • There is a speed differential between a local (in the same process space) call and a remote network call. This differential must be taken into account when designing systems that will not suffer from potential performance problems. This issue has not yet been rendered obsolete by faster networks and hardware and remains a key design issue to be solved when designing a distributed system. See J2EE design patterns Fast Lane Reader and Page-by-Page Iterator. Memory Access. • This essentially revolves around accesses to resources via pointers. Addresses for a local space are not valid for a remote space. We can either provide a language mechanism that hides the local/remote nature of a resource or we treat it programmatically i.e. the programmer is aware of the difference. • If we provide a language mechanism for abstracting out the differences then ALL pointer usage must follow the distributed rationale. The language must not be allowed to provide address-space relative pointers otherwise we are back to the local/remote arguments. This tends to exclude languages such as C/C++ etc. from being able to support such a language extension.
  • 14. Partial Failure. • This has been described as the central reality of distributed computing see [Waldo]. The issues boil down to the inability of some agent to adequately identify what components have failed and reliably inform other components of that failure. There is no global state that can be examined to determine the nature of the failure, be that network or remote processor. To be able to ensure a consistent state is maintained in the presence of failures distributed applications must deal with indeterminacy, that is components must be designed to react correctly to the various possible partial failures that can occur. Concurrency. • Objects involved in providing services across a network to multiple clients must be able to handle concurrent method invocations. Thus if we strive for the one model view all objects in our application must have adequate concurrency semantics. There are subtle differences between multi-threaded applications where the threading model can to some extent be controlled and a true distributed object where the threading model is unknown.
  • 15. The Semantics problem Tools – the world of services, the picture depicts a hammer .. But what makes it a hammer ?? Context and Environment – we possess an understanding of hammering – that is how to use a hammer Context and Context and Environment underpins our view of services through the Environment notion of suitability. However our view of services underlies Context and Environment Intelligibility Suitability through the notion of intelligibility Tools Reflex Hammer – used in medicine !!