web services · web services soap, wsdl, uddi, ws-bpel. soa as web services business data as xml...
TRANSCRIPT
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.