WEB SERVICES · WEB SERVICES SOAP, WSDL, UDDI, WS-BPEL. SOA as Web Services Business data as XML...

Preview:

Citation preview

WEB SERVICES

SOAP, WSDL, UDDI, WS-BPEL

SOA as Web Services

� Business data as XML messages

� Sent in a SOAP body

� Enriched with metadata in SOAP headers

� Described in WSDL and XML schema� Described in WSDL and XML schema

� Configured through WS-Policy (security, SLA, QoS)

� Registered in UDDI registry, discovered using WS-Discovery

SOA as Web Services

UDDIWSDL WSDL

Technical service interface(+SLA, policies, etc.)

WSDL describes the serviceUDDI gives a services listing

Is accessed using SOAP

Application Application

SOAP

client

SOAP

server

describes + registersreads

communicates

SOAP messages (envelopes) carrying the messagepayload

Is accessed using SOAP

SOA as Web Services

� Considerable advantages of WS technologies

� Independent of programming language, platform, data models, etc.

� Standards are open

� Some vendor-specific extensions

� Should enable reasonably easy (and inexpensive) interoperability and integration over the boundaries of systems and organizations, and firewalls (HTTP)

� Can be used to expose existing applicationfunctionality as a service

Web Services Standards Pyramid

BusinessSemantics

VerticalNon-Standard

Security,Routing,Workflow,

Transaction Management

WSDL, UDDI

SOAP, XML-RPCXML, XML SchemaHTTP, FTP, SMTP

Internet, Intranet, Exranet

HorizontalStandard

Horizontal(Non-)Standard

WS Standards as of Q1 2007 http://www.innoq.com/resources/ws-standards-poster/

http://en.wikipedia.org/wiki/List_of_Web_service_specifications#Web_Service_Standards_Listings

WSDL

� Web Services Description Language� A document written in XML that describes a Web Service

� Specifies the location of a service and the methods the service exposesservice exposes

� Without WSDL, the calling syntax must bedetermined from a documentation prior to execution

� With WSDL, the generation of proxies for Web Services can be automated in a language and platform independent way

WSDL Service

input output

messages

input output

messages

portType

operation operation

Service

Resource

WSDL

UDDI

� Universal Description, Discovery and Integration

� An open industry initiative sponsored by Organizationfor the Advancement of Structured InformationStandards (OASIS)

� Either public or private registry that can be used to publish and discover service listings

� Contains information about the service provider, servicemetadata and technical instructions for the use of service

UDDI

� Registry contains three components for differenttypes of information

�White Pages: Provider’s addresses, contant information, identifiers

� Yellow Pages: Industrial categorization based on standard taxonomies (e.g., branch of industry, geographical locations)

�Green Pages: Technical information about the providedservices (e.g., functions, network address)

UDDI

Provider: Information about the Provider: Information about the

entity who offers a serviceentity who offers a service

0…n0…n

tModel: Descriptions of tModel: Descriptions of

specifications for services. specifications for services.

Bindings contains Bindings contains

tModel: Descriptions of tModel: Descriptions of

specifications for services. specifications for services. tModel: Descriptions of tModel: Descriptions of

specifications for services. specifications for services.

Bindings contains Bindings contains

http://soapclient.com/uddiadv.html

Service: Descriptive information Service: Descriptive information

about a particular family of about a particular family of

technical offeringstechnical offerings

Service: Descriptive information Service: Descriptive information

about a particular family of about a particular family of

technical offeringstechnical offerings

Service: Descriptive information Service: Descriptive information

about a particular family of about a particular family of

technical offeringstechnical offerings

0…n

Binding: Technical information Binding: Technical information

about a service entry pointabout a service entry point

0…n

Binding: Technical information Binding: Technical information

about a service entry pointabout a service entry pointBinding: Technical information Binding: Technical information

about a service entry pointabout a service entry point

Bindings contains Bindings contains

references to tModels. references to tModels.

These references declare These references declare

the interface specifications the interface specifications

for a service.for a service.

0…n

Bindings contains Bindings contains

references to tModels. references to tModels.

These references declare These references declare

the interface specifications the interface specifications

for a service.for a service.

0…n

tModel refering to a service WSDL

<tModelxmlns="urn:uddi-org:api”tModelKey="UUID:AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"><name>hp-com:creditcheck</name><descriptionxml:lang="en">Checklimitreporter</description><overviewDoc><overviewURL>http://schema.com/creditcheck.wsdl</overviewURL></overviewDoc></overviewDoc><categoryBag><keyedReferencetModelKey="UUID:CD153257-086A-4237-B336-6BDCBDCC6635”keyName="Consumercreditgatheringorreportingservices”keyValue="84.14.16.01.00"/><keyedReferencetModelKey="UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4”keyName="types”keyValue="wsdlSpec"/></categoryBag></tModel>

SOAP

� An XML-based protocol for the communication between a client and a service

� Originates in XML-RPC

� Implementations available practically for every programming language

Formerly known as Simple Object Access Protocol. Now just SOAP – it is not simple and has nothing to do with objects.

programming language

� Defines� An envelope that encapsulates an XML message (payload)� Headers for additional functionality (e.g., security, transactions)

� Data serialization for RPC and document-styled communications

� Binding to a carrier protocol (usually HTTP)

SOAP used in RPC style

Server App

SOAP Server

Client App

SOAP Client

1

2

7

6

1. Call method / Return response2. Marshal parameters3. Serialize / Deserialize4. Transport5. Deserialize / Serialize6. Unmarshal parameters

StubStub

HTTP

SOAP

3 5

4

6. Unmarshal parameters7. Method executes

SOAPfloat addition(float a, float b);

request

response

SOAP message structure

Headers can be used to define additional and application specific features on top of basic features. In this case, the service is required to understand (mustUnderstand) the Transaction element

Faults can be used to inform a client about an occurred error

Body, Payload

SOAP with Attachments

Multipart MIME messages can be used to attach, for example, binary data to a SOAP messagePart A of a MIME message is the actual SOAP envelopePart B is an encoded binary data block which SOAP message references to

Supported communication models

� It is possible to implement different distributed applications on top of SOAP

� Request/Response interaction style similar to object- japrocedure-oriented programming (RPC)

� Asynchronous messaging similar to MOM systems (document � Asynchronous messaging similar to MOM systems (document style messaging)

� Broadcasting

� Forwarding via SOAP intermediaries (e.g., routing and caching)

� Can use an additional functionality of messaging services and middleware (e.g., JMS)

RESTful Web Services

� Representational State Transfer is an architectural style that builds upon web standards such as� HTTP, URI� XML, HTML, JPEG, etc. (resource representations)� text/xml, text/html, image/jpeg, etc. (MIME types)

� In practice, the web as we know it is a REST system� Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine), where the user progresses through an application by selecting links (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and rendered for their use. — R. Fieldman

RESTful Web Services

� Resources of a service are represented via URIs, e.g.,� Collection URI http://www.parts-depot.com/parts

� Element URI http://www.parts-depot.com/parts/00345

� The client issues an HTTP GET request to the collection URI to receive the parts listing

Examples from R. L. Costello http://www.xfront.com/REST-Web-Services.html

<?xml version="1.0"?>

<p:Parts xmlns:p="http://www.parts-depot.com" xmlns:xlink="http://www.w3.org/1999/xlink">

<Part id="00345" xlink:href="http://www.parts-depot.com/parts/00345"/>

<Part id="00346" xlink:href="http://www.parts-depot.com/parts/00346"/>

<Part id="00347" xlink:href="http://www.parts-depot.com/parts/00347"/>

<Part id="00348" xlink:href="http://www.parts-depot.com/parts/00348"/>

</p:Parts>

� The representation can be rendered human readable by a web browser or it can be processed programmatically

� That how the resource is actually implemented is transparent to a client and it can be changed any time � loose coupling

RESTful Web Services

� Following an URL on the parts listing, a client issues another GET request to receive detailed information about a certain parthttp://www.parts-depot.com/parts/00345

<?xml version="1.0"?><?xml version="1.0"?>

<p:Partxmlns:p="http://www.parts-depot.com" xmlns:xlink="http://www.w3.org/1999/xlink">

<Part-ID>00345</Part-ID>

<Name>Widget-A</Name>

<Description>This part is used within the frap assembly</Description>

<Specification xlink:href="http://www.parts-depot.com/parts/00345/specification"/>

<UnitCost currency="USD">0.10</UnitCost>

<Quantity>10</Quantity>

</p:Part>

� a representation of another resource follows a state transition

RESTful Web Services

� In addition to HTTP GET, a REST architecture utilizes POST, PUT, and DELETE methods to interface the resources

� For example, to submit a purchase order on a part, � For example, to submit a purchase order on a part, the client creates a PO document that conforms to the PO schema (published in a WSDL document) and then submits as a payload in an HTTP POST

RESTful Web Services

� Simple and light-weighted compared to SOAP Web Services

� Like SOA, REST is an architectural style and not an architecture per searchitecture per se

� Can be implemented in various ways and is totally agnostic to an underlying technology (except the web standards)

� Requires careful design of a service

� Limited in capabilities compared to SOAP

WS-BPEL

Web Services Business Process Execution Language

Motivation

� Web Services are built upon open and platform-independent standards that allow loosely coupled interconnections and interoperability between the heterogeneous systems

� The aim is to support flexibility and business agilityServices are highly reusable� Services are highly reusable

� Services represent business-oriented concepts on a fairly high level of abstraction

� Services are quick and easy to attach and detach – just like the Lego blocks� http://www.zapthink.com/2006/12/11/the-legoreg-model-of-soa/

Motivation

� However, services are transactionally stateless and (by definition) self-contained

� WSDL does not consider message sequencing

� In order to create composite services and business � In order to create composite services and business processes based on Web services, an additional layer of abstraction is needed � Enter WS-BPEL

Web Services Platform Architecture2007 IBM

Components

Composite

Disco

very, N

egotia

tion, A

greement

Atomic

Orchestration Protocols State

Reliable

ComponentModel

BPEL

Messaging

Quality of Service

Transport

Description

Transport

Interface + Bindings

XML Non-XML

Security

Policy

Disco

very, N

egotia

tion, A

greement

ReliableMessaging

Transactions

����������������� ������ � ����������������������� ��!�������"#$%���������%$$#&���'�&���'��$��������#(�%����'�#�%'�$��)�#�%!#��(��*���'$���+�� #� �'�&�������#(�%���������� ��$',����'#�%'���&��-�%!'�����"#$%������.��'#�%'�"#$%�������$#���%$//�#%���"�%���%�'�$����-�%!'�����"#$%������"#$(�&����/$&���'$���'� #�'�� ���'�#"#�����""��%�'�$���0#��'�� �%$/"$��'�$���$��������#(�%���0$/"$��'�$������&�$�����'#�%'�&��%#�"'�$��� � ������"#$(�&���"$#'����)���'�#$"�#�����"#$%����/$&���� � ������%$/����#$/��� '#$� �#$$'�����'#�&�'�$������$+�/$&������!��/��*�%$�%�"'���#$/��'#!%'!#�&�"#$ #�//�� ���� !� ���.������&�$��'$"�$��� �����&�%$#��12���"�%���%�'�$���2�# ���� 3����&�1�.45�%$�%�"'�

����������������� ������ �������������������� � !"�#$%&""&'()*�+���,��*�����,��*�-���./�0�1/�1��*������(2�-3���4��4�����*�-�0�15��� 6����4�1��*�����5��7�.89������� � ! �#:%&"";'(<�=���4��*�����,��>3-����4����). 0 (���?��44������,�����*�3>�������*�-� .����4� ��3�,�� ������&!"(2>**���,@����). 0 �>�4�*+���+�����4�*4�A�����(2�--������B*�������������������=��,�3,�

����������������� �������������� ��� ����� ������������� !��" #���$�%$ � � &'#���$�'�$(���' )$��'% $���!��� !��"�*'���''�$ ��''�'� +���� &��,��-++.��.�'%���� � +�'�$�%�� � ��*$��, /�&��0&���''�"��" )$��'���� �'1 $!����� � #2��3� "���&���''�"��"4 5*�&��,#6 �$(���7 *��$����$�

����������������� ���������������������� ! ���"�� �����������#��$%&�'��(�)&*%'� ���+'���"�'+&&�,�

����������������� �������� ����� ������ �� ������ !�"#" $%&$%&'����� !�"#"��(�����)�*���+,,-

����������������� ��������������������������������������� �!"#$%��������������������&����'��'�(��)�������������*�+�������,-+���++�*����++��.��-��������/-�/������-+�/��*������+�����-'��/�,��������*����++�����������'�+���*����+��'��.��-��,���*����++���'��+&$.*������0�1�2�3�''��++�)�"��'��/+����+*����������'4���5+���4����*�������+���'��������������+�+���6-���'����������*������-��������7�������������*����++���*������������8�9:;��������������,��+<�����-'��/��,+��7��+=�>;�����7��7����/����,��+<������'��/�4��?�0�����+��++-�+�#����++&%�+����������++-�+��7����,��������*@55444A��������/0A���5�.������5 �B"#$%B�++-�+B��+�A����&�++-��'�+�-++���� ��?�0�����+<�6-������0��������������������/+

����������������� ������������������� ��������� !�"������#�$���#����������%&'�(���)*+��,���� -�(*��.�/���!��01��2�#���$�!� !�"����#�"�2 ���0������#�����23�4�� 56�*��7��/6��8�8��*/�/��8��!�����#�$�!�3�01�01���98��+:�3�0!�"0;���#��8��+*:�<�"�0�3��;�=��>���$���3�������� !�"���� ��01�6���/6�/�+*�)*���6�+�?�"��0!���!���2����!�����#@�!�#�"����01��$!��2��0�0�����$�01�� !�"����2�#������� �"�� A���)�8�B�/�8��*7�/6���7*B�*��/���*��8�/����� !�=�#�#��0�01��� ��"�0����2���������=��� C1��(���/*+�B�/D/+�*7�/6���7�������2 ��"�0�"!��0������#�0�!2���0�����$� !�"�������0��"��E�� A������!�������0!����"0����2�#������#�$���#�0���� �!0�B��+,�*�/�.�D$�!� �!0���$������!�������3�������� !�"������ ���������3���0����/�7��8�(+�*-�(*��.�/��*�8�)�)�*�*�*/�7����(+�*�)*7�),+�*7��

����������������� ���������������������� ! ���"�� �����������#��$%&�'��(�)&*%'� ���+'���"�'+&&�,�

����������������� ��������������� ��������������������������� �!��"����#��$� ������%��� �����$��������� ������ ����$����������$���� & � ��� ��%��

����������������� �� ���� ����������������������� !"���#�$�����%�&� '' '� � � (%&' "� '���#��' ���� ')* '' + � (�, !+ '�- %�.&���#��&% � .�&!'�)��#��� !�� �" ��� "�/�&-�% �.! ��" /�!�.�&!'� !"�., ��&0 �%0 1 "��1�., �%�&� ''��!��!. � �.�&!'�2�.,�% �.! �'���������3��#��& !�4%%�&� 0�&�.51%

����������������� �� ���� ������������������ � �� ���� � ������ �� !" ��#� $%&'()�"� � �� ���$# �*�#�+�#,���-)�� ���� �� ." � /��0�����$ ���"*�#$ ����-)) *$�1""� �*2' �#30" 4�$*$��*2�5$�#�#�#� $6�� ��� ���� 7) *$�1""� � �8���9�5$# �:*� �� ." � /�0�#, �&'()�"� � �� 5$# �:*� ��� $��! /�0�#, �&'()�"� � �����������;

����������������� �� ���� �� ������������������������� �!"�� ����������� �!"�������������������# ��������$#%����&� �%����&� $%����&��'�(��)��'��)��'� �'�(��'�(�

����������������� ������������� ���������������� ���������������������� � ����������������������������!"����� ��#������$���������%���� &' ����� ���(�)'��'� �����*��*��������$��� �����)��'� �� ������� ������ ��+�,�-�./01��234�����%����5 234�����%����6+�7���/8 +�7���/9

����������������� ������������������������� !""#$%&'%()*+(#,#(#'")&-,').*(*)*/-0%.!+(#,#(#'"1#%20()*%.)-0(20()3'2()#%)"+-2'.),*/#*45'"6+-2'.),*/#*45'")(72'.)*")869:)&'""*$'")-/;<:)6+='&*)'5'&'%(">(72'" �?�?� �@�A��������BC�?�?� �D��@�EF GHIJ

������������������ �������� ��������������� �������� ����������������� �!" #$%&'$(��� )%!"�&*+�,$!�$"' &!"-.$#!%! -/)$"&#!%&0 #$1"%$#!%! ) ##$2 3$# �1"0 $"&! �-%0 #4*5 ##%6 #$"&$)�&67�/&&"&6$0�&1 �#%!"�&#$%� $0��� )%! '$!�$!8 $0��� 0!$���0 ##$"&#!%&0 9:.� '$���� �!" #$' -"& '$"&$2;<=$%� $&%> '$%&'$>%�� '$?%)"%# '@$!�$�%�!#$�-$# 1 �%)$2;<=$> ##%6 #$/# '$3.$!8 $���0 ##$ABCD�E������ ���� �� F���E��G�G�HFEI� �� �������� �����J�J������� �������� �������������

����������������� ��������������� ��� ����������� ����� � �! ��"����!��� ������ ����� #��$� �!��� ������ �%�&���� ��� !� �&� ������$�!��� ��� '������ ����(� &�� � �)*���( ��%������%� ����� +%$ ����"��� �*������� � ������ �% ��� ����������"�����$ � �� , ��$ ���-./�$ � ���� �$����� � ����� 0�(�%����� *�������� ��*�������% ������ � 1��� ��� �� *���� �!�����$���"���*�������% ������� 2� � $� �� *���� �!�����$�� �� *���" �$�� � '!!�$� ���&��� !�� ����3��*�������� ��*�������% ���������� ����� 4 ����� � ���������!��%� ��$�� �*����� ��� � �����!��" ��% ���$�� '��������!%��� �������� �����!%����$��"��$����%������$�� *���� $� � '��������!%��� ��������������!%����$��"��$����%�� 4 %%� ��� �� ��* ����3���������5��6���78�6�9� :;���<�:���:�=�:8 5�=����:�6�7�>�:�??����� �:;���<:����@5:�6�:85�=����:�A5���

����������������� ��� ������� ��� ���� ��� �������� ��� ������������� �������������� ���� ����!��������� "���#"���� �������$�� ��� �������� ��� �����������%��&�����'��� ����!������������������ ��� �������� ��� !��������� ���("������������� ��"����� ��� �������� ��� !��������� ����� ������������ ��"���� � )���$�����(�� �%�������� �*���&����#�� ���������+��� �&���� ,� ��� �������� ��� !�������%��&�����'��� ����!��������������� ���� �������*!��������%�������� ��������*��� ����� ����� �!�����*����"��%��� ��� !�%��&����� ��%��"������ ������� ����� �������� ��� !�(� "�� ���(�������������*��� �%��� �"������� ���&����� ����"������ ��������� �"���������-��.���/�.� �0�����01��23�0�-.������454�. -�6�0/

����������������� �������������� ���������� ������� !�"�#�!�$%�&'''("�)*+,"������ !�"�$ %+-�&'''("�,.$*�&'''&"�/��$0 "'''�(/��$0 "�(,.$*�"�(����� !�"������ !�"�#�!�$%�&'''("�$ %+-�&'''&("�(����� !�"�()*+,"�#�1*2&'''("�(����� !�" �3��4���56 �3��4��4�7��4�7������ ��89�3� ��89�3���89�3� :5���;�5�

��������������������� ���������������������������� �����! "�����#��$�%���! "��������&�����$�'�! "������������&$�����&�! ��&��(���&$#$&$���)%��$������&�*�&*���+ ��������! ,#��&�-������� .����/���#��&�����&$0����#��&��)�����$�������*��&$��+! 1�*�&�-������� 2���$�/�3$&-��$((����&��4���&$������$&*�&$����)$�&������(�*�&�+! 5�0�����&$���-������ 6���$�/�����$�&����((��&���(�������7���0���&�����&$#$&$��! 8��0$��&$���-������ 2���$�/�3$&-�(������������&��0$��&$���)�4&������(�*�&�+ ����������9�:��������������:�����������;����������������������� ����� 9�����������������<��9���;���=���

������������������ ������������������������������� �������!���������"�����"������#����!������������� ��$�%����&����'$(�����!����������������")�����*�������������������"������"��+�����(��!�������"���������',(�������������"�"���� �����������#��!��������������������%��"���+���-!������ ��.� ��/0�.�1��.�1� �.�1�

Limitations to overcome

No standards for graphical notationThe underlying XML code is (mostly)the same and processes thereforeportable.

Eclipse WebSphere Studio

Limitations to overcome

� Most of the vendors have started using BPMN as a graphical frontend for BPEL

Limitations to overcome

� The BPMN specification includes a mapping from BPMN to BPEL 2.0

� Implemented in several vendor tools

� In practice, allows to transform business process modelsexecutable processesexecutable processes

� However, there are some fundamental differencesbetween the two� It is difficult and some times impossible to generate BPEL code from BPMN models

� Round-tripping is even more difficult as developers add new tags to the XML as needed

Limitations to overcome

� BPEL omits certain process constructs� Not possible to express all conceivable business processes

� Therefore, BPEL is often used in conjuction with ’real’ programming languages or extended by the scriptingprogramming languages or extended by the scriptinglanguages� leads to proprietary process models

� BPELJ (BPEL for Java) extension adds lower level(finer-grained) programming constructs� Inclusion of Java code, enterprise beans etc.

� C# equivalent of BPELJ is under the works

BPEL extended with Java code

Limitations to overcome

� Originally, BPEL completelyomitted the human activities in business processes

� Since then, the standard WS-HumanTask was introducted

Human interactions and other� Human interactions and otheractivities performed by humanactors

� Wrap a human actor inside the WSDL API

� BPEL4People extension by SAP and IBM in 2005

CRITICISM

“The modern technology and standards which enable SOA allow disparate technologies to communicate,

regardless of manufacturer, platform or language.”

Web Services Standards as of Q1 2007, InnoQ

http://www.innoq.com/resources/ws-standards-poster/

“That was pretty current on first quarter of last year. In other words, it is totally

outdated today.”

Critical Factors Analysis of the SOA Reference Architecture (OASIS)

http://docs.oasis-open.org/soa-rm/soa-ra/v1.0/soa-ra-pr-01.pdf

SOA gets too complicated. Lets use JBOWS architecture instead.

� “As we found in the recent Webservices.org survey, there were, out of 1,000 companies, only 50 that really were well advanced in their deployments, that could be considered true SOA sites.” J. McKendricksites.” J. McKendrick

� “Not orchestrated, does not have a registry, has no process-based testing, does not reuse services, and has no management tools.” J. McKendrick

InformationWeek survey on SOA21.2.2009

� Survey of 270 business technology professional

� 23% of respondents said their organizations have deployed SOA

� 7% of resulting systems are available for external use

� The percentage of overall software reuse within the organizations that have implemented SOA rose 7%

So, SOA seems to fail in delivering one of its most basic promises?

Forget about developing business-driven, highly abstracted and

composable loosely-coupled services if you can’t develop

reusable software components.*

* Not surprising since this requires a strategy change and strong managerial support and commitment. Read more:Sherif K. & N. M. Menon, 2004, Managing Technology and Administration Innovations: Four Case Studies on Software Reuse

Anne Thomas Manes, 5.1.2009:

SOA is Dead…http://apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.html

� Once thought to be the savior of IT, SOA instead turned into a great failed experiment—at least for most organizations.

� SOA was supposed to reduce costs and increase agility on a massive scale. Except in rare situations, agility on a massive scale. Except in rare situations, SOA has failed to deliver its promised benefits. After investing millions, IT systems are no better than before. In many organizations, things are worse: costs are higher, projects take longer, and systems are more fragile than ever.Anne Thomas Manes is a Vice President and Research Director of Burton Group.She is also a very influential member of SOA community, voted as one of the 50 most powerful people innetworking, among the “Power 100 IT Leaders”, former CTO at Systinet, etc. Her article about the deathof SOA was taken very seriously. Especially among the software vendors.

What will come next?

� Of course, more hype words� SaaS, cloud computing, business clouds, private clouds, situational integration, mash-ups, composite applications

� Experts are already warning about not to repeat the same mistakes with SaaS and in the clouds

� Or more comprehensive understanding about the problem � Or more comprehensive understanding about the problem domain?� CBM/SOMA/SCA (c.f., J. Poutanen’s presentation)

� SOE (and service-orientation in general)

� SOA backed up by EA?

� SOA backed up by reasonable governance structures and thoroughly considered alignment perspective. This is the least what one should consider.

� On a side note, please read The Raise of Fall of CORBA by Michi Henning, ACM Queue, Vol. 4., Issue 5, June 2006

available at http://portal.acm.org/citation.cfm?id=1142044&coll=portal&dl=ACM&cfid=515653495&cftoken=515653495

Depending on exactly when one starts counting, CORBA is about 10-15Depending on exactly when one starts counting, CORBA is about 10-15

years old. During its lifetime, CORBA has moved from being a bleeding-

edge technology for early adopters, to being a popular middleware, to

being a niche technology that exists in relative obscurity. It is instructive

to examine why CORBA—despite once being heralded as the “next-

generation technology for e-commerce”—suffered this fate. CORBA’s

history is one that the computing industry has seen many times, and it

seems likely that current middleware efforts, specifically Web services,

will reenact a similar history.

Recommended