95-843 Service Oriented Architecture Class Notes A Snapshot of SOA Tooling From Three Leading Vendors August 2011 Part 1: Notes on Microsoft SOA Part 2: Notes on Oracle SOA Part 3: Notes on IBM SOA ======================== Part 1: Notes on Microsoft SOA ============================== I. Executive summary BizTalk Server 2010 is an Enterprise Service Bus. It is a Service Oriented Architecture solution set offered by Microsoft. BizTalk Server 2010 provides the frame to link existing applications and to compose, expose, and integrate new services regardless of the platform. Our team goes through the history to see the evolution of BizTalk. We look into the market position of BizTalk and a case study about Fundtech. A brief discussion about BizTalk Server 2010 capabilities buckets is included. Some technical discussions by providing both high-level and detailed views of the capabilities and features are included. We also explore the web service standards implemented by BizTalk Server. II. History of BizTalk Server 2000 - BizTalk Server 2000 The BizTalk editor had a Mapper to convert data. It also had a management desk for tracking data. The product had protocols for EDI, HTTP, HTTPS, MSMQ, SMTP, File transfer. 2002 - BizTalk Server 2002 A number of new features were announced such as the integration with Visual Studio, .NET, and SEED. BizTalk 2002 also integrated with Microsoft Operations Manager. Moreover, the mappers were changed to support mixed XML. 2004 - BizTalk Server 2004 BizTalk 2004 used Microsoft .NET 1.0 and Single sign-on was introduced. The procedure of messaging and orchestrations integrated had changed. New functions such as Human Workflow Services, Business Activity Services were added. 2006 - BizTalk Server 2006 BizTalk Server 2006 runs on Microsoft .NET 2.0 and Business Activity Monitoring was introduced. It also supported Visual Studio 2005. Business Activity Monitoring (BAM) was enhanced by adding BAM portal, Web Portals, alerts, notifications, and BAM interceptors. 2007 - BizTalk Server 2006 R2 BizTalk Server 2006 R2 runs on both .NET 2.0 and .NET 3.0, and it added RFID functionality. Business Activity Monitoring (BAM) cooperated with Windows Communication Foundation (WCF). 2009 - BizTalk Server 2009 BizTalk Server 2009 support RFID with different RFID Servers. BizTalk Server 2009 is also the first version to work with Visual Studio 2008. 2010 - BizTalk Server 2010 BizTalk Server 2010 work with Visual Studio 2010. It also improved Enterprise Interoperability. III. Market position and trajectory I want to separate SOA tool market into 5 segments, which are innovator, early adapter, early majority, late majority, and laggard. The classification is based on acceptance of the new product. The high-tech marketing guru Moore said that for every high-tech product, there is a chasm between early adopter and early majority. Many high tech products find it hard to cross this chasm. Same is with Microsoft BizTalk. From the research done by Alper Celik, he positions MS BizTalk in early adopter segment in 2003. When Microsoft released BizTalk 2004, it helped BizTalk to cross the chasm because the customers had to re-write their interfaces. We could see the statistics data from Gartner Inc. Microsoft market share growth rate is 13%, and the sales had increased by 63% in 2005. Microsoft's share in middleware product kept growing over last few years, and it was at 2nd place in 2010. Comparing with the other middleware software provider, Microsoft's strong points are that: The other SOA products provider such as SAP and Oracle have failed to cross the chasm, because of their dependency on specific support languages like ABAP and WSDL. As we learned from Newcomer, SOA recommends interoperability, openness and industry standards. SAP and Oracle are not good products by this point of view. IV. Developer tool support (IDE) BizTalk Server 2010 development is done through Microsoft Visual Studio. The messages are delivered by XML documents in XSD standard. It used XSLT standard to implement Maps. Orchestrations are implemented by xLANG. As a Microsoft solution, BizTalk Server 2010 can be extensively customized and extended using .NET Framework version 4.0, including orchestrations, maps, or pipelines etc. Besides, BizTalk 2010 use Microsoft SQL Server version 2008 R2 to build A central storage for all data and settings, and it also supports Excel 2010, Microsoft Silverlight and SharePoint 2010. V. Business case studies - Fundtech (a) Fundtech background Fundtech is a national IT services provider. Its main solution is to offer automated payment systems and cash management system for banks and corporations. (b) Fundtech situation Single Euro Payments Area (SEPA) is the structure of payment formats introduced by European Payments Council. It normalized the electronic processing. Fundtech tried to upgrade the old payment system with new SEPA initiative for banks. Because of national payment processing differences, the most challenging issue Fundtech faced is integrating payment systems to obey with the Single Euro Payments Area (SEPA) initiative. (c) Microsoft SOA solution Fundtech needs a middleware solution that organizes and routes transactions between existing and SEPA formats. Microsoft BizTalk Server 2010 fits in this situation. The solution is built with the Microsoft .NET Framework 4 and is based on the Windows Server 2008 R2 operating system and Microsoft SQL Server 2008 R2 database software. The development team also used the Microsoft Silverlight 4 browser plug-in to create the payment solution's web-enabled user interface. Fundtech Integration Suite for Payments extends to multiple entities and branches that can support the centralization of payment operations, so banks can easily integrate branch systems into a central SEPA environment. (d) Benefits Microsoft BizTalk Server 2010 helps Banks Integrate their existing payment systems and SEPA payment systems into a single, centralized infrastructure.The development team works faster and more efficiently, because of BizTalk Server's support for Visual Studio Team Foundation Server 2010. Moreover, SOA services give developers flexibility, availability and reusability. They could implement new services quickly if in need. Last but not least, Fundtech system saves money for banks. It decreases the demand of European office and hardware, and banks do not need to buy an expensive new SEPA-ready solution. VI. Technical Architecture (a) Message Engine Messaging is the core functionality provided within BizTalk Server. On a very basic level, it is the plumbing that moves messages from one location to another. A number of different parts or objects make up this plumbing, taking actions at each step of a message's path through BizTalk Server. In general, Messaging objects can be split into two categories: receive and send. The receive objects enable the publishing side of BizTalk Server's publish/subscribe architecture. They publish messages into the MessageBox database, the central repository for all messages handled by BizTalk Server. The following objects are involved with receiving messages: - Receive location: Handles the actual retrieval of messages from a specified location. - The receive adapter defines the location and method (file, MSMQ, SQL, and so on) to retrieve messages. - The receive pipeline allows decoding, decryption, disassembling, and validating messages against a schema. Receive pipelines also enable party resolution. A custom pipeline component can implement custom logic. - Receive port: Groups one to many receives locations and defines any transformation (or mapping) that occurs on messages being received by the receive port. The send objects enable the subscribing side of BizTalk Server's publish/subscribe architecture. They subscribe to messages in the MessageBox database and deliver the messages onward to destination locations. The following objects are involved with sending messages: - Send port: Handles the actual delivery of messages to a specified location. - A filter defines the subscriptions for the send port. Promoted properties define these subscriptions and determine which messages the send port will handle. - A map defines any transformation occurring on messages sent through the send port. - The send pipeline allows assembling, validating against a schema, encoding, and encrypting messages. A customer pipeline component can also implement custom logic. - Send port group: Groups one to many send ports and defines the filter(s) used to determine the messages handled by the send ports. As the MessageBox database receives a message, BizTalk Server checks to see what active subscriptions (send port filters, for example) there are for that message and routes the message to each of the appropriate subscribers. This publish/subscribe architecture facilitates adding new consumers of information, making it easy to deliver messages to additional systems if needed. Once the MessageBox database receives a message, BizTalk can deliver it to any number of subscribing destination systems. While the MessageBox database holds all messages that are processed by BizTalk Server, messaging objects (receive ports, receive locations, send ports, and send port groups) are stored in the Management database. (b) Orchestration If publish/subscribe messaging capabilities are at the heart of BizTalk, then process orchestration capabilities are BizTalk's brain. A BizTalk orchestration can define a complex integration process, coordinating the flow of information when simple data synchronization will not suffice. BizTalk provides a graphical design tool for defining these integration processes. These orchestration capabilities build upon the foundational publish/subscribe architecture of the BizTalk messaging runtime. In the simplest cases, integration is strictly about receiving information from one system and delivering it to another. Accordingly, a BizTalk orchestration receives and sends messages through orchestration ports. However, many real-world situations require more than simple message delivery. With an orchestration, the BizTalk developer can graphically define additional processing steps in Visual Studio. For example, these processing steps may involve examining a message or invoking a .NET assembly and deciding on the appropriate actions to take. An orchestration can define an integration process with sequential processing steps or perform independent activities simultaneously. Define higher-level integration services in an orchestration by composing the messaging capabilities of BizTalk with additional integration processing logic. Future integration requirements can reuse the higher-level integration services to reduce implementation effort and enable greater agility. BizTalk orchestrations support many of the capabilities needed to compose integration activities together, as follows: - Atomic and long-running transactions help ensure that all systems involved in an integration process come to a consistent result. - Transformations convert from a format understood by a source system to a format understood by a destination system. - Orchestrations can invoke an external .NET assembly or use expressions defined with custom code. - Exceptions can be handled by defining the scope of integration activities. - Orchestrations support transaction compensation and rollbacks. BizTalk orchestrations also provide terrific support for interacting with services defined by interoperable contracts. With BizTalk 2010, an orchestration can directly consume Windows Communication Framework (WCF) services and ASMX .NET web services (WSDL), exposing the service operations within the graphical orchestration design environment. When many business processes run at the same time, memory and performance can be compromised. The BizTalk Orchestration Engine solves this problem by dehydrating and rehydrating orchestration instances. Dehydration is the process of saving the state of an active orchestration instance to the MessageBox database and then removing that instance from memory. This can happen when the orchestration engine determines that an instance has been idle for a period of time. Dehydrating means that the instance frees up the resources that were being used by it. (c) Business Rule Framework Business processes are changing at an unprecedented speed and in today's environment, to maintain a market advantage, organizations must react quickly to new markets, shifting consumer demand, shifting cost structures, and shifting business differentiators. The IT changes are required to support dynamic business policies. The business rules framework is a rules execution engine that allows to create business policies that can develop, deploy, and dynamically execute quickly without bringing BizTalk process down. The primary modules include the Business Rule Composer for constructing policies, the Rule Engine Deployment Wizard for deploying policies created in the Business Rule Composer, and the Run-Time Business Rule Engine that executes policies on behalf of a host application. The framework comprises policies, facts, vocabularies, and rules. In conjunction, these artefacts combine to create a powerful tool for quickly changing business rules in near real time. (d) Business to Business Integration BizTalk Server enables to integrate trading partners into existing business processes. A trading partner can be an external company or even a department within own organization. BizTalk Server includes a number of capabilities to simplify the integration of business processes with trading partners and the management of trading partner relationships: - Native support for EDI and AS2 protocols. BizTalk Server provides data exchange options including a native engine that provides integrated support for Electronic Data Interchange (EDI) data (including both X12 and EDIFACT, and HIPAA support) and Applicability Statement 2 (AS2) data for EDI over the Internet. - Trading Partner Management. BizTalk Server provides a common storage database to store and manage all trading partner information. This information is maintained using the BizTalk Server Administration console. - BizTalk Server accelerators. Accelerators are used to integrate BizTalk Server with a broad spectrum of business scenarios and industries. Accelerators include specific BizTalk Server components, samples, and guides that help to reduce the time, effort, and costs associated with developing an industry-specific solution. In BizTalk Server 2006 R2, EDI became a prominent part of the platform before it was accomplished with third-party adapters. With the advent of BizTalk Server 2010, all aspects of the EDI life cycle, including schemas, mapping, workflow processing, and trading partner management are fully available. (e) Business Activity Monitoring (BAM) One of the core components of BizTalk Server 2010 is the Business Activity Monitor (BAM) framework, which allows creating, deploying and viewing information about running or previously run processes. BAM implementations publish the metrics and reports and make them available to users through custom interfaces, which are updated in near real time as data progresses through the system. A business process within BizTalk consists of the combination of all the pipelines, ports, orchestrations, maps, and other components needed for the successful completion of a specific task or set of tasks. We can trace the full life cycle from the moment a document arrives through all the steps of processing to the ultimate delivery of any documents using the tools available through the BAM framework. Additionally, the BAM application programming interface (API) enables developers to expose visibility into data that is external to BizTalk processes, such as archival data or other non-BizTalk processes and systems. Developers, administrators, business analysts, and end users can use the BAM Portal to view, aggregate, search, or create alerts based on the data collected by BAM. (f) Legacy system migration/Deployment At the core of every BizTalk project is the necessity to deploy an integration project to the BizTalk execution environment. Given the complexity of the product, and the rich features it provides, this task has often been difficult and time-consuming. Every experienced BizTalk developer understands the time requirements to deploy, enlist, and start BizTalk artifacts, keeping in mind dependencies and ordering the steps accordingly. BizTalk has great functionality for this, so that a minimum of time is spent deploying solutions, and more time is available to develop new return-on-investment-producing solutions. One should be careful with regard to security when exporting applications. Depending on solution, MSI package may contain sensitive information (such as passwords) and should be appropriately secured. One consideration is the use of passwords in port bindings. Passwords are removed from all bindings that export directly from an application (as we did in our example). If we want to persist passwords in a binding file, we must create a binding file with the passwords in it and then add the binding file to the application as a file resource. One should also pay attention to access rights on resources added to the application. All permissions on files and folders are removed during the export process. For web directory resources, the security settings in place at the time of export are written to the MSI package. (g) Enterprise Service Bus The BizTalk ESB Toolkit is a collection of tools and libraries that extend BizTalk Server capabilities of supporting a loosely coupled and dynamic messaging architecture. It functions as middleware that provides tools for rapid mediation between services and their consumers. Enabling maximum flexibility at run time, the BizTalk ESB Toolkit simplifies loosely coupled composition of service endpoints and management of service interactions. Endpoint run-time discovery and virtualization, loosely coupled service composition, dynamic message transformation and translation, dynamic routing, centralized exception management, quality of service and protocol transformation are key building blocks provided by BizTalk ESB. (h) Web Service Web service calls can be request/response (two-way) or simply request (one-way). Some of the parameters in the configuration will be slightly different in the case of a one-way web service. Transformation web service, resolver web service, exception, operations and UDDI web service are supported by BizTalk. (i) UDDI Microsoft UDDI Services 3.0 (Universal Description, Discovery, and Integration Services) ships with Microsoft BizTalk Server. UDDI Services 3.0 provides the following key capabilities: - A Web service that supports UDDI version 3.0 standards-compliant interfaces for service discovery. - Rich role-based Web UI interfaces for service searching, publishing, subscribing, and site coordination. - Notifications of service changes. - Custom categorization schemes for describing service providers and their Web services in organization. - SDK and developer tools to facilitate the development of UDDI-integrated applications. - A rich set of administration tools to ease the management of UDDI Services. UDDI services provides a scalable solution for organizing, discovering, reusing and managing web services and promotes service reusability. It provides interoperability with other UDDI standards-compliant tools. VII. Standards support (a) Windows Communication Foundation(WCF) WCF is a framework for building and hosting services on the Microsoft platform. WCF offers a wide range of cross platform security, transaction and communication capabilities. Before WCF, developers had to choose between .NET remoting, ASP.NET Web Services and MSMQ for distributed applications. WCF unifies all these technologies under a single platform and provides common aspects for security, transactions and exception handling. The service is implemented independent of the communication protocol strategy. Service endpoints are defined using addressing, binding and contract. A contract defines the operations and data elements the service exposes. There are three types of contracts that we can define 1. Service Contract: explains what service can do 2. Data Contract: Complex data parameters in WCF. 3. Fault Contract: custom data contract that allows you to shape the exception being returned to the service consumer. The communication options for locating and accessing WCF services are - HTTP - TCP - MSMQ The WCF service binding determines how actually a service transmits data across the wire. The key bindings that are available with BizTalk Server as adapters are: - BasicHttpBinding: Works for clients that support SOAP 1.1 Basic Profile. There is no security, session or transaction capabilities and default data encoding is plain text. - WSHttpBinding: This binding is for HTTPand HTTP/S traffic. It has full support for transactions, sessions and a default message-based security scheme. The payload can be in compressed MTOM(Message Transmission Optimised Mechanism) format. - NetTCPBinding: Data is transferred over TCP in binary format and has full support for sessions, transactions and security, - NetNamedPipeBinding: uses pipes to transmit data in a binary encoding with a secure transmission channel. It is used when the source and target applications are on the same physical server. - NetMSMQBinding: This binding makes use of the queuing technology that is suitable for disconnected applications. Security options available but no support for sessions. BizTalk Server uses WCF for communicating with the outside world using adapters. There are seven adapters that directly correlate with the bindings available in WCF. 1. WCF-BasicHttp 2. WCF-WSHttp 3. WCF-NetTcp 4. WCF-NetMsmq 5. WCF-NetNamedPipe 6. WCF-Custom 7. WCF-CustomIsolated WCF services require a service host to operate. BizTalk supports an "in-process host and an "isolated host". An in-process host refers to the windows service that is owned and operated by BizTalk Server. An isolated host is used when BizTalk does not own the lifecycle of the container process and processes are generally hosted within Internet Information Service (IIS). By default, WCF-NetTCP, WCF-NetMsmq, WCF-NetNamedPipe and WCF-Custom adapters run in the in-process host. The BizTalk isolated host is used for the WCF-BasicHttp, WCF-WSHttp and WCF-CustomIsolated adapters. (b) Reliability and Bindings in WCF It provides reliable message transfer and ensures in order message delivery. Reliability is supported but disabled by default in WS binding and TCP binding. It is always enabled in WS dual binding. It is not supported in Basic Http binding and peer TCP binding. MSMQ and MSMQ integration binding are reliable without using WCF reliability. (c) Transactions in WCF WCF provides features that support distributed transactions in web services application. WcF transactions support OLETX and WS-AtomicTransaction (WS-AT) protocols. OLETX is used for Microsoft platform and WS-AT for interoperability. Transaction-aware bindings are - TCP - Named Pipes - WS - WS Federation - WS Dual There are three types of transaction flows 1. Client Transaction: Service must use client transaction 2. Client/Service Transaction: Service joins client transaction if client flows one 3. Service Transaction: Service performs transactional work outside scope of client transaction. (d) Security in WCF There are three types of security concepts - Transfer Security: includes Integrity, Confidentiality and Authentication. - Access Control: related to authorization - Auditing: Logging of security related events. In WCF contract can specify protection level. Binding specifies security mode, algorithms and types of credentials. Behaviour specifies client credentials and service credentials. The types of transfer security modes are 1. None: No security is provided. 2. Transport: Secured using Transport layer security such as SSL. Not available for WsDualHttpBinding. 3. Messsage: SOAP messages are secured using WS-Security standards. Not available for NetNamedPipesBinding and MsmqIntegrationBinding. 4. Mixed: (Transport with Message Credential): Uses transport security for confidentiality, integrity and server authentication.uses message security for client authentication. Not available for both WsDualHttpBinding and NetNamedPipesBinding. 5. Both: Applies both transport and message security. Only available for NetMSMQBinding. Security is configured in bindings on service and client using code or config file. (e) Authorization After authentication, when client credentials are used, the PrincipalPermission attribute is applied on methods to declare required role memberships. Roles could be used from Windows Groups or ASP.NET Roles. (f) WCF Support for REST WCF uses two annotations for making REST calls . One is WebGet that sends request using HTTP GET. The other is WebInvoke that send request using HTTP POST. The ResponseFormat parameter for WebGet and WebInvoke allows specifying the format of inforamtion being sent. The information could be sent in - XML - JavaScript Object Notation (JSON) - Binary The binding specified for RESTful style is "webHttpBinding". (g) Windows Workflow Foundation (WF) Workflow is a set of activities that coordinate people or external services. Windows Workflow Foundation provides the programming model and engine for building long running stateful workflows on the .NET platform. Workflows can also be created on the BizTalk Server. BizTalk server is more suitable for applications where there is a requirement for long running business processes, web service aggregation, B2B processes, an enterprise rule repository and an Enterprise Service Bus Message Broker. VIII. Reference http://biztalktutor.com/ http://celikalper.files.wordpress.com/2009/04/sap-pi-vs-ms-biztalk2.pdf http://www.infosys.com/BPM-EAI/resource-center/Documents/enterprise-integration.pdf http://www.sigs.de/download/oop_08/Stal%20Fr6.pdf http://www.microsoft.com/biztalk/en/us/orchestration.aspx http://www.microsoft.com/biztalk/en/us/b2b-integration.aspx http://www.microsoft.com/biztalk/en/us/ SOA Patterns with BizTalk Server 2009 by Richard Seroter BIZTalk 2010 Recipes , Author : Mark Beckner, Publisher: Apress =============================Part 2: Notes on Oracle SOA ================================================= 0. Executive Summary Service Oriented Architecture (SOA) promotes the integration of applications. SOA suggests that these applications must have well defined interfaces. Thus, the architecture focuses on design principles based on these interfaces. In the following paper, OracleÕs Service Oriented Architecture solution is analyzed based on a research performed during six weeks. Oracle products for SOA and integration are divided into three suites: SOA, BPM and Governance. This paper will focus on the SOA suite and the Governance suite. The Business Process Modeling suite caters to a higher level of abstraction and is beyond the scope of this report. The document presents a brief history of the product along with its market position and trajectory. Then, two successful use cases are described to provide evidence of the benefits of using SOA. The aim of the report is to provide a high level view of Oracle SOA suite's architecture. Therefore, the technical architecture is described using a bottom-up approach to build up the platform from the lowest level of the software hierarchy to the higher levels. The standards support is also analyzed in each section. At the end of the document, we include some insight to the future with an analysis of how Oracle is working to implement SOA architecture within cloud computing. Finally, an objective conclusion is presented to outline the advantages and disadvantages of OracleÕs solution. 1. History of product including latest release Oracle SOA suite forms a part of the Oracle Fusion Middleware (OFM) platform. The middleware platform itself is also SOA enabled meaning that applications supported by the middleware can also be run in a service oriented fashion. The Oracle Fusion Middleware platform was introduced around 2004. Products have gradually been integrated with the platform with subsequent releases since then. The SOA suite is a subset of Oracle Fusion Middleware products that is currently in its 11g release. Due to OracleÕs continuous release cycles, the products for this version were released between July 2009 and June 2010. 2. Market position See Figure 1 Gartner positioned Oracle's Service Oriented Architecture as a leader in the market in their last applied interface architecture report. Oracle was positioned in the leadersÕ quadrant next to IBM's SOA solution while Microsoft's was placed in the challengersÕ quadrant. Oracle's position in the magic quadrant is based in the evaluation of Oracle Fusion Middleware 11gR1 family of products which includes the Oracle SOA Suite. The following market strengths are identified: - Technology is supported by a great network of partners. - Synergies with their own DBMS create opportunities for selling OFM technologies to support SOA backplane and governance projects. The following market cautions are identified: - Oracle's acquisitions (e.g., BEA Systems, Sun Microsystems and Amberpoint) require further technology integration work. This situation poses migration and upgrade challenges to pre-acquisition product users. - Some Oracle clients are experiencing licensing and pricing issues when upgrading from previous versions to SOA Suite 11gR1. The issues are related to migration from Oracle Internet Application Server to Oracle WebLogic Suite. The last one implies a more expensive licensing. - The market maturity of the individual components of the OFM 11gR1 product set varies greatly. For example, Oracle BAM (Business Activity Monitoring) and Oracle Web Services Manager have relatively small installed bases. Another example is that Oracle Enterprise Manager and AmberPoint technology are not fully integrated into the OFM. 3. Oracle Fusion Middleware (OFM) Oracle Fusion Middleware is a family of products from Oracle Corporation spanning a range of services. It forms the backplane for OracleÕs Service Oriented Architecture. OFM is based on open standards such as BPEL, XML, SOAP and JMS. According to Oracle, the architecture is Òhot-pluggableÓ, allowing it to be deployed into existing IT infrastructure. This combined with the open standards implies that the product line can be used with multiple vendor products provided they utilize the same open standards. The OFM range is divided into suites of related products. The product suites related to SOA are divided into three initiatives: Service Oriented Architecture, Business Process Modeling and Governance. Although these product suites form part of the SOA initiatives, OFM products make it possible to deploy individual products and configure the architecture as an SOA. The suites serve to package the related products into convenient packages for licensing and individual products may overlap between suites. In this report, we look at the SOA suite and the Governance suite. The BPM suite deals with higher level business modeling and is beyond the scope of this report. 4. Oracle SOA Suite The Oracle SOA suite forms part of the Oracle Fusion Middleware family of products. The products included in this suite are: a. Oracle Service Bus b. Web Services Manager c. Oracle BPEL Process Manager d. Human Workflow e. Oracle Business Rules f. Oracle B2B / Adapters g. Oracle BAM a. Oracle Service Bus: See Figure 2 OSB is the Enterprise Service Bus for OracleÕs SOA product line. It enables the SOA architecture as an ESB based model. It is an intermediary that processes incoming service request messages, determines routing logic, and transforms these messages for compatibility with other service consumers. It receives messages through a transport protocol such as HTTP(S), JMS, File, and FTP, and sends messages through the same or a different transport protocol. Oracle Service Bus connects, mediates, and manages interactions between heterogeneous services, like Java, .Net, messaging services and legacy endpoints. It provides the traditional benefits of a service bus based architecture. Some of these features are: -Location transparency; the service consumer is not tightly coupled with the service provider. -Data model transformation; it supports a number of services including SOAP, JMS and FTP among others and is also backwards compatible. -Dynamic routing; it can provide routing of messages using business rules. -Preemptive support; Ensures that critical processes continue functioning even with heavy workloads. -Security; Integration environment that abstracts policies associated with routing rules, security, and service end-point access. b. Web Services Manager See Figure 3 The Oracle Web Services Manager (WSM) adds management and security capabilities to the service bus. The manager allows the collection and display of statistics regarding the uptime and security threats. The WSM provides mechanisms to authorize, authenticate, encrypt, maintain integrity and provide role based access control. The manager also provides greater flexibility by allowing changes in policies without the need for modifying endpoints. WSM supports all major industry standards including SOAP, MOTM, WS-Security, WS-Policy, WS-RM, WS-MEX, encryption algorithms AES-256, AES-192, AES-128, 3-DES, Signature Algorithms RSA, SHA1, Java Key Store (JKS), etc. c. Oracle BPEL Process Manager See Figure 4 This is the BPEL engine for the Oracle suite. It enables the orchestration of applications and web services into business processes that are then configured using the open standard BPEL programming language. Oracle BPEL Process Manager allows the integration of processes with partner links. It also allows the integration of human tasks and business rules within the process. The assembly of the services reduces the cost and complexity of integration. d. Human Workflow See Figure 5 The Human Workflow component is related to the management of the human aspect of the business processes and related applications. The Human Workflow component integrates seamlessly with the BPEL process manager to blend human interaction with the business processes. It caters to the assignment and management of tasks to groups or individuals, provides identity services and notification services through various channels such as email, SMS and instant messaging. Oracle's Human Workflow provides the following features: -Assignment and routing of tasks (human tasks). -Deadlines, escalation and notifications to ensure the performance of tasks in time. -Organization, filtering and prioritization to increase productivity in end users. -Reports provided to supervisors to manage the performance of tasks. e. Business Rules See Figure 6 Oracle Business Rules enable dynamic complex decisions at runtime. The set of rules is expressed on structured XML documents. This approach makes it easy to modify the rules and decision tables. BR integrates with the BPEL Process Manager to provide a rules framework for the business processes. f. Oracle B2B/Adapters Figure 7 Oracle B2B is a gateway that enables the secure and reliable exchange of messages between an enterprise and its trading partners. It provides the following features: -Document management. -Multiple document standards. -Capabilities to use partner profiles and agreements. -Enables agreement between trading partners for a specific interaction. -Environment monitoring and management. See Figure 8 Oracle Adapters use JCA technology to connect external systems to the Oracle SOA Suite. More than 300 application standards are supported. g. Business Activity Monitoring (BAM) See Figure 9 BAM is a solution for building real-time operational dashboards and monitoring and alerting applications over the Web. BAM allows managers to monitor processes in real time. It is able to generate event driven alarms to help act on current conditions and fix problems in the process. 5. Oracle SOA Governance Suite See Figure 10 Components in Oracle SOA Governance Suite provide visibility, control and analytics. OracleÕs SOA consists of enterprise repository, service registry, an SOA management pack and the web service manager (which overlaps with the SOA suite). Oracle SOA Governance Suite eases the transition of an organization to SOA by providing a means to reduce risk, maintain business alignment, and show business value of SOA investments through a combination of people, process, and technology. 6. Integrated Development Environment JDeveloper 11g is OracleÕs flagship developer tool that can be used for development on all Oracle Fusion Middleware products. It supports Java, XML, SQL, PL/SQL, JavaScript, HTML, BPEL and PHP. For the SOA suite, it is used for modeling all aspects of the architecture including business terms, rules, and processes. Oracle JDeveloper is a freeware product but integrates with the commercial Oracle Application Development Framework for building enterprise applications. Apart from JDeveloper, support is also provided for the Eclipse IDE through Oracle Enterprise Pack for Eclipse. 7. Service Component Architecture Oracle, along with IBM is a major advocate and developer of the SCA technology. As such, it is also one of the main exponents of the technology and SOA suite 11g utilizes SCA to simplify the entire lifecycle from development to deployment and management. The development tooling is integrated into JDeveloper and the functionality is supported by the runtime infrastructure to enable easy deployment. 8. Business Success Stories a. Texas.gov Texas.gov is the self-funded online portal program for the State of Texas. Texas.gov offers more than 1,000 online services and processed more than 18.3 million transactions in 2009. The Texas.gov program is a public-private partnership between the state and NICÕs Texas Subsidiary, Texas NICUSA, LLC. Oracle SOA suite enabled the agency to modernize the process for starting a new business and provided user friendly access to the development of business rules. Oracle SOA suite integration with non-Oracle software allowed the staff to write rules in Microsoft Word and Excel so even nontechnical staff are able to add to the business functionality. b. Procuradur’a General de Justicia del Estado de QuerŽtaro Procuradur’a General de Justicia del Estado de QuerŽtaro (attorney generalÕs office of the state of QuerŽtaro), is the executive agency primarily responsible for investigating and prosecuting the approximate 22,000 crimes that occur in the state each year. In 2005, it began updating its technology infrastructure to integrate all its agenciesÕ information systems. The main goal was to improve the information transfer between the attorney general's office and the courts to facilitate judicial communications and the process of issuing and enforcing rulings. The solution included a unified IT infrastructure with OracleÕs SOA Suite and Oracle Business Intelligence applications. With the implementation, there were many important benefits: -380 investigators were enabled to query and search through criminal cases. -The time for issuing rulings was improved by 60%. -The time for files to reach the judges was reduced from days to minutes. -All the public agencies from the state consolidated their information to provide operational efficiency and transparency. 9. OracleÕs SOA and Cloud Computing SOA provides loose coupling contracts between service providers and service consumers as well as interoperation between multiple technologies. Cloud computing is the delivery of computing as a service rather than a product. Thus, shared resources, software and information are provided as a utility over a network. Some people have exposed doubts regarding the applicability of SOA in a Cloud managed environment. Other people are considering the cloud as the next generation of SOA. However, we maintain that SOA is complimentary to the attributes of the cloud environment and together they strengthen the delivery of services over the network. In the next table, some of the SOA patterns are presented along with an explanation about their possible use in the cloud. Oracle and Amazon were chosen as an example, however any other platform could be used to develop the same analysis. SOA Pattern Applicability To Cloud Platform Adapter Pattern: It allows connecting to multiple technologies like messaging and databases without knowing much of the internals of them (e.g. Database Adapter is basically to service enable databases without having to write SQL). Oracle 11g SOA Suite supports database adapters to multiple databases. Amazon RDS (Relational Database Services) exposed as a SOAP based interface which can be connected as an Adapter pattern using the regular Services Interface as part of Oracle SOA Suite. Amazon Simple DB is a non relational database service, which can be connected using the regular SOAP interface and can satisfy the needs of Adapter pattern in SOA. Amazon EBS and S3 based instances can satisfy the needs of File Adapter in a SOA. Mediator Pattern: Mediator is the component in charge of interconnecting the other components within a composite application. Oracle SOA suite uses mediator pattern for intra composite mediation. Multiple EC2 Instances can run different services like basic computing services, storage services like EBS, database services like RDS and Simple DB. It is possible to have a mediator that inter connects the multiple services towards a business process realization. Binding Pattern: The binding can be used to expose the SOA composite applications over SOAP. With Elastic IP, Services can be exposed to outside Cloud Consumers that will act as a Binding. Business Process Orchestration Pattern: This pattern aims at realizing long running business process through orchestration of multiple individual services. Oracle 11g Suite supports BPEL Component to perform orchestration. With various services exposed as Services as explained above, a Business process can be orchestrated in a cloud platform much similar in a normal data center. Proxy Pattern: A business service describes the end point being virtualized, its policies and interfaces. A proxy service is what the service bus exposes to service consumers and implements the virtualization logic. With Elastic IP acting as a proxy interface to multiple virtual machines and abstracts from issues like Virtual machine failure or migration of Virtual machines, Cloud platform adapts the Proxy pattern to support virtualization. Asynchronous Pattern : In a real world scenario Asynchronous pattern is helpful when: - The response might not come back instantly from the service provider - A given request needs to be send to multiple providers or vice versa - The service consumer did not know who will provide the service - Consumer and provider will not be online at the same due to geographical and time zone constraints Amazon SQS is a distributed queue system that enables web service applications to quickly and reliably queue messages that one component in the application generates to be consumed by another component. Using Amazon SQS, you can decouple the components of an application so they run independently, with Amazon SQS easing message management between components. Any component of a distributed application can store any type of data in a fail-safe queue. Any other component can then later receive the data programmatically using the SQS API. 10. Conclusion Oracle provides a comprehensive range of products related to service oriented architecture. In addition, Oracle offers the flexibility of configuring many of its existing products into an SOA. The Òhot-pluggableÓ architecture is also aimed at enabling this. Oracle has a history of acquiring market leading products and integrating them into their product lines. Whilst this means that the functionality of the products is top-notch, the combination of different products does lead to some inconsistency in the products. However, in some cases, this can be an advantage as Oracle has to provide streamlined integration resulting in easier and more convenient installation and configuration of the products. It also means that the product hierarchy is more clearly defined as we have outlined in this report. Oracle provides many of its products free which has resulted in a large community support base for Oracle products. In conclusion, Oracle provides easy access to an industry leading product line. At present, it can be considered a good starting point for SOA enthusiasts. 11. References Garlick, S. (2010, March 30). Bringing SOA into the cloud: Will it work? Retrieved August 19, 2011, from Eye on Oracle: http://itknowledgeexchange.techtarget.com/eye-on-oracle/bringing-soa-into-the-cloud-will-it-work/ Oracle. (2010). Oracle Customer Case Study. Procuradur’a General de Justicia del Estado de QuerŽtaro Integrates Data, Improves Services. Oracle. (2010). Oracle Customer Snapshot. Texas.gov Leverages Flexible Tool for Quick, Complex Changes to State's Online Business Portal . Oracle Service-Oriented-Architecture. (n.d.). Retrieved August 19, 2011, from Oracle: http://www.oracle.com/us/technologies/soa/index.html Pezzini, N. e. (2010). Magic Quadrant for Shared SOA Interoperability Infrastructure Projects. Rajan, S. S. (2010, December 18). SOA World Magazine. Retrieved August 19, 2011, from SOA Design Patterns in the Cloud: http://soa.sys-con.com/node/1654420 http://blogs.oracle.com/governance/entry/oracle_is_a_leader_in_all_3_ga_1 ======================================Part 3: Notes on IBM SOA ==================================================== 0. Executive Summary IBM dominates the SOA Web services markets because of its broad set of software integration capabilities, backed by a strong global services team. In this report, the evolution of the WebSphere suite of SOA products, offered by IBM, has been studied. Exploring the technical architecture and IDEs provided by IBM for SOA, this report elaborates on the management tools and standards supported by IBM. After showcasing the capability of WebSphere, the report gives a snapshot of IBM's market share, total market size, competitors and a formula to estimate SOA costs. On a concluding note, business case studies have been given as an example. 1. Introduction of IBM WebSpehere & its Evolution IBM Websphere refers to a brand of software released by IBM known as application and integration middleware in the enterprise software area. IBM introduced the first product in this brand in June 1998. This was the IBM Websphere Performance pack. The flagship product in this series is the IBM Websphere Application Server. - The initial version released in June 1998 was basically a Java Servlet engine. - Version 2 came in two flavours the standard and the advanced edition. Corba and JavaBean support was added. - Version 4 contained the J2EE 1.2 certified application server - Version 5 was redeveloped used a common code base across various hardware architectures. Java Messaging Server was included. Network deployment was enhanced with proxy server, load balancing and content based routing. A workflow engine was added which predated BPEL. - Version 6 provided enhanced security including support for WS-Security for Web services. - Version 7 provided tools to ease administration of dispersed servers. - The extended deployment edition was released in 2006 which provided enhancements for asymmetric clustering techniques. 2. Technical Architecture a. Rules engine availability WebSphere Business Rules: WbSphere Business Rules Manager is an optional tool available with WebSphere Process Server that one can select to install at profile creation time or after the initially installing the server. Business rules are designed and developed in WebSphere Integration Developer using if/then rule sets and decision tables to implement their operations. Business rules can also be created in WebSphere Business Modeler; however Modeler only supports the creation of business rule tasks, which become rule sets when exported out of Modeler. The rule sets and decision tables are set into templates. The templates control which aspects of a business rule you can modify and by exactly how much. They define the structure of if/then rules, condition cases, and actions for decision tables. The templates provide the mechanism for business rule runtime authoring in the business rules manager. Using the template, you can modify business rule values, create a new rule within a rule set or a new condition or action within a decision table, and publish changes to business rule definitions at run time. Business rules are organized into business rule groups. Business rule groups are used to interface to and invoke rules. Rule sets and decision tables are never invoked directly. b. ESB availability and ESB capabilities IBM offers three ESB products: IBM WebSphere ESB, IBM WebSphere Message Broker, IBM WebSphere DataPower Integration Appliance XI50. Selecting an ESB to power SOA depends upon the requirements. WebSphere ESB is a platform-based ESB and optimized with WebSphere Application server for an integrated SOA platform. WebSphere ESB should be used when: - an enterprise has WebSphere Application Server (WAS) administration and JAVA coding skills - an enterprise is planning on developing business process using WebSphere Process Server (WebSphere ESB and WPS have common tooling, programming model, and runtime) - an enterprise is planning to integrate ISV business applications hosted on WAS or 3rd party solutions which extend and support WAS - an enterprise is focused on standards based interactions using XML, SOAP, and WS - an enteprise wants to mediate between Web services and existing systems using JMS and WebSphere JCA Adapters - an enteprise wants to minimize server investment by co-hosting WebSphere services and ESB in one application server WebSphere Message Broker is a platform-independent based ESB and is built for universal connectivity and transformation in heterogeneous IT environments. WebSphere Message Broker should be used when: - an enterprise is currently using WebSphere Message Broker but not as an ESB - an enterprise has extensive heterogeneous infrastructures, including both standard and non-standards-based applications, protocols, and data formats - an enterprise has extensive MQ skills and infrastructure - an enterprise is using Industry formats such as SWIFT, EDI, HL7 - an enterprise intends to implement a wide range of messaging and integration patterns, complex event processing, message splitting and aggregation - an enterprise needs extensive pre-built mediation support WebSphere DataPower Integration Appliance XI50 is an appliance-based ESB and is built for simplified deployment and hardened security. Customers face a wide range of ESB requirements from the simple to the complex. WebSphere DataPower Integration Applicance XI50 should be used when: - an enterprise needs ease of use, aimple experience of drop-in installation and admin-based configuration with no or minimal development - an enterprise is planning extensive XML transformations & processing with demand of high performance requirements - an enterprise's interaction patterns are relatively simple - Mediation requirements are met by the existing DP mediations and minimal extensibility is needed - an enterprise is using XML-based or WS-Security extensively - an enterprise requires use of advanced Web services standards - an enterprise wants to minimize message latency when adding an ESB layer and install ESB in production very quickly IBM also offers some extensions and add-on products that cater to its ESBs: WebSphere Transformation Extender: WTX provides graphical user environment that allows integration designers to visualize complex data types in graphical form, and provide powerful data processing and manipulation capabilities. WTX is specifically addressed to benefit enterprises having diverse and complex data to exchange between applications, data stores and external trading partners as well as owning a mixed enterprise infrastructure(SOA, ESB, event-driven, stand-alone, embedded, business process orchestration). WTX provides consistent data transformation and enrichment, reduced application development and maintenance costs with one engine, multiple code-free design & deployment options WebSphere Cast Iron: WebSphere Cast Iron Cloud Integration enables companies to connect their hybrid world of public clouds, private clouds, and on-premise applications. Using a “configuration, not coding approach WebSphere Cast Iron integration provides data Migration (access, cleanse and migrate data from legacy systems to the cloud), data Synchronization (orchestrate integration processes to synchronize business data across cloud and on-premise applications in real-time) and create UI mashups (gather information from disparate systems and display this within the native user interface of a single application). IBM added this solution to its offerings by acquiring California based Cast Iron systems in 2010. WebSphere Sterling: IBM acquired Sterling Commerce in 2010. Through acuqisition of Sterling Commerce, IBM offers B2B Integration (automation of "buy-sell-ship-pay" process managing document flow among buyer, seller and 3rd parties) and Sterling Managed File Transfer solutions (secure file transfer). c. WebSphere Service Registry and Repository: WebSphere Service Registry and Repository (WSRR) plays a major role in all four phases of the SOA lifecycle (Model, Assemble, Deploy and Manage). It helps: - Manage Service Metadata: During service modeling, WSRR helps to create or re-use service descriptions, taxonomies, XML Schemas and other service metadata artifacts. - Find a Service: During service development or assembly, WSRR helps to locate services for reuse and enable the composition of new composite applications from existing services. - Publish a Service: During service deployment, publish service descriptions to the WSRR. - Facilitate Service Interaction: During service execution (e.g., WebSphere ESB mediations, ITIL processes, etc.) WSRR can be used to access service metadata and endpoint information as well as capture service metrics key. - Enable SOA Governance: The WebSphere Service Registry and Repository is the core that underpins governance in the SOA Foundation, to manage overall SOA infrastructure d. WebSphere Business Service Fabric: WebSphere® Business Services Fabric software is a platform for modeling, assembling, deploying, managing, and governing business services. WebSphere Business Services Fabric provides optional industry content packs. Industry content packs contain prebuilt industry assets that include capability and process maps, business services templates, service interfaces, industry-common services, business object model, business glossary model and knowledge assets. WebSphere Business Service Fabric extends and enhances IBM SOA foundation products that include WebSphere Process Server, WebSphere Integration Developer, and WebSphere Service Registry and Repository. It alos contains a standard-based business metadata repository that stores and manages business services, policies, and business service entitlements. 3. Developer tool support (IDE) a. IBM WebSphere Integration Developer: WebSphere Integration Developer along with WebSphere Process Server provides comprehensive services to enable the development of composite integration applications. These service components include: Business processes, Human tasks, Business-state machines, Business rules, Interface maps, Business-object maps, Relationships, Selectors, Java objects, Imports and exports for Web services, adapters, JMS and Enterprise JavaBeans (EJB). It has an intuitive drag-and-drop tools to visually define the sequence and flow of WS-BPEL business processes, a visual business-process debugger to step through and debug WS-BPEL business processes, ability to invoke human tasks from a business process to represent a step in a business process that is performed manually. It provides modelling of event-oriented scenarios using business state machines, which in fact are sometimes hard to model in a WS-BPEL model. In essence, WebSphere Integration Developer is the tool where IBM's SOA capabilities converge, enables modelling and implementation. 4. Management tool support (BAM) IBM Tivoli Composite Application Manager (ITCAM) for SOA - This application offers integrated management tools for Web and enterprise infrastructures. - It provides views which can be used to identify and resolve SOA problems through a services level topology. Service to service relationships can be viewed here including service status and metrics. - Supports heterogeneous SOA platforms which can be used to monitor composite application performance and availability. - SOA management can be automated using built in alerts, message mediations etc. The SOA Governance and Management Method (SGMM) - Describes, in detail, best practices for implementing SOA governance and its supporting mechanisms and processes. - SGMM is available as a plug-in with IBM Rational Method Composer. - SGMM is also a service offering from IBM Global Business Services (GBS). 5. Standards support - Vivek Ramesh a. WS-* Web Services Addressing - Standards used to address web services and messages. - IBM was part of the consortium that proposed Web Services Addressing to the World Wide Web Consortium. - Supported by Websphere Application Server Web Services Notification (WS-BrokeredNotification, WS-BaseNotification, WS-Topics ) - WS-Notification is a family of related white papers and specifications that define a standard Web services approach to notification using a topic-based publish/subscribe pattern. - IBM was part of the consortium that proposed the standard. - Supported by Websphere Application Server Web Services Attachments Profile 1.0 - This profile compliments the WS-I Basic Profile 1.1 to add support for interoperable SOAP messages with attachments-based web services. b. WSI Profiles and Interoperability testing - Provides interoperability guidance for core Web Services specifications such as SOAP, WSDL, and UDDI. The profile uses Web Services Description Language (WSDL) to enable the description of services as sets of endpoints operating on messages. - WebSphere Application Server conforms to the WS-I Basic Profile 1.1 c. BPMN and BPEL - BPMN is a graphical representation used for specifying Business Processes in a business process in a business process model. - BPMN supported by IBM Rational Software Architect - BPEL is a language used for executing business processes and web services. - BPEL supported by WebSphere Business Integration Server d. Transactions (atomic and compensating) - Web Services Atomic Transaction (WS-AT) supported by WebSphere - This defines the atomics transaction coordination type used in Web services - Two-phase commit transaction protocol is supported by Websphere and is suitable for short duration transactions only e. WS-security - Extension to SOAP to apply security to web services. - Specifies how integrity and confidentiality can be enforced on messages. - Supported by CICS(transactional server supported by IBM for mainframes - Supported by Websphere Application Server f. Service Component Architecture (SCA) - Specifies a set of standards which describes a model for building systems using SOA. - Supported by Rational Application Developer Version 8 - Also supported in other IBM products, such as WebSphere Process Server and - WebSphere Integration Developer (WID) also supports SCA. g. SDO - Technology used to access heterogeneous data from various sources though a uniform interface. - Supported by Rational Application Developer h. SAML - XML, Open standards based framework used to exchange authentication and authorization data based on security domains. - Supported in WebSphere Application Server, Tivoli Access Manager i. XACML - Markup language used to interpret policies. - Supported in IBM Tivoli Security Policy Manager k. Metadata management (WS-MetadataExchange, WS-Policy, UDDI) WS-MetadataExchange is a standard which was developed by IBM and other companies to retrieve metadata about an endpoint. - Supported in WebSphere Application Server. WS-Policy - Standard specified for services to specify their policies such as Quality of service etc. - Supported in WebSphere Application Server UDDI - XML markup language which can describe where services are located. - Supported in WebSphere Studio version 5.0 and 5.1 - Supported in Rational Developer products 6. Business case studies a. Customer ordering in IBM`s supply chain Customer Order Analysis and Tracking System which is part of IBM`s supply chain is a shared order entry platform for more than twenty manufacturing plants. It is used by IBM customers and business partners with 365x24 coverage. The application was running at close to capacity during peak times. Also as business rules were hard coded, changing business rules were complex and error prone. Developers had to understand a complex set of point to point connections. The application was also frequently updated to support new business initiatives. Also multiple databases had to be updated frequently. The system was refactored to a service oriented architecture solution. Order transaction processing time was substantially reduced. Integration between systems was streamlined leading to less real time discrepancies between systems. The system became more flexible as business rules could be changed easily using workflow engine. b. Tax collection in Mexico Tax collection authority in Mexico was having difficulty getting citizens to pay taxes. Tax laws were complex and it was hard for business people to change the business rules with minimum IT people involvement. A service Oriented architecture model was developed with IBM WebSphere JRules business rule management system (BRMS) to manage the rules. Total tax collection grew by 3.4% and tax collection cost dropped by 10% including the cost of software development. 7. Market position and trajectory Market Share: As per 2010 revenue numbers of the major middleware players, IBM leads the pack with 32% market share. Following illustration shows the details as estimated and released by Gartner in April 2011: Company 2010 Revenues ($m) Share(%) Growth 2009-2010 (%) IBM 5759.0 32.6 14.4 Oracle 2995.7 17.0 12.5 Microsoft 875.4 5.0 13.9 Software AG 601.0 3.4 27.3 TIBCO 502.0 2.8 20.1 Others 6913.7 39.2 -2.4 According to the WinterGreen report, IBM holds 75.1% of the total SOA market share in 2009, while none of the other SOA vendors held more than 6% market share. As per Gartner Dataquest, SOA is a $160 billion market. With more than 7,000 customers and 7,420 Business Partners, IBM has doubled its SOA client and partner base in less than one year, since 2009. Market Forecast Wintergreen Research has released a six-year forecast of the SOA infrastructure industry, calculating that the market will grow from the current $3.3 billion to $10.3 billion by 2015 at 17% a year growth 8. Costs & Financials Dave Linthicum of InfoWorld.com has derived a formula to calculate cost of SOA for an organisation. Cost of SOA = (Cost of Data Complexity + Cost of Service Complexity + Cost of Process Complexity + Enabling Technology Solution) Cost of Data Complexity = (((Number of Data Elements) x Complexity of the Data Storage Technology) x Labor Units)) - The "Number of Data Elements" is the number of semantics you're tracking in your domain, new or derived. - Express the "Complexity of the Data Storage Technology" as a decimal between 0 and 1. (For instance, Relational is a .3, Object-Oriented is a .6, and ISAM is a .8.) - "Labor Unit" is the amount of money it takes to understand and refine one data element. Dave said this could equal $100, for example. The next step is to apply the same formulas to determine the costs of other variables, including Cost of Service Complexity, Cost of Process Complexity, and Enabling Technology Solution (which should be straightforward). Estimated costs of certain IBM products & solutions that cater to SOA have been illustrated here: Cost estimates have been taken from IBM's website. Since many version of a product are available, prices have been quoted for the fully-loaded version of the product with maximum features. Besides, prices are not available for all the products, so a subset of products mentioned above are available with prices (exclusive of tax) below: - IBM WebSphere Transformation Extender Pack for SWIFT per Establishment for zSeries License + SW Maintenance 12 Months (D58VWLL) USD 710,000.00 - IBM WebSphere Transformation Extender Pack for SWIFT per Establishment License + SW Maintenance 12 Months (D58VYLL) USD 710,000.00 - IBM WebSphere Process Server for Multiplatforms Processor Value Unit (PVU) License + SW Subscription & Support 12 Months (D572ZLL) USD 1,000.00 - IBM WebSphere Integration Developer Authorized User License + SW Subscription & Support 12 Months (D5571LL) USD 4,150.00 - IBM WebSphere WebSphere Service Registry and Repository Advanced Lifecycle Edition Authorized User License + SW Subscription & Support 12 Months (D0BPWLL) USD 2,500.00 - IBM WebSphere Enterprise Service Bus Registry Edition Processor Value Unit (PVU) License + SW Subscription & Support 12 Months (D0GALLL) USD 620.00 - IBM WebSphere Adapter for Oracle E-Business Suite per Establishment for Linux on System z License + SW Subscription & Support 12 Months (D0BA1LL) USD 170,000.00 - IBM WebSphere Adapter for SAP Software per Establishment for Linux on System z License + SW Subscription & Support 12 Months (D0B3HLL) USD 170,000.00 - IBM WebSphere Adapter for Siebel Business Applications per Establishment for Linux on System z License + SW Subscription & Support 12 Months (D0B5HLL) USD 170,000.00 - IBM WebSphere MQ Telemetry Advanced 100 Client Devices License + SW Subscription & Support 12 Months (D0D6HLL) USD 4,120.00 9. Product support for experimentation and demonstration - Free trials provided for many of the Websphere products. - Trial are provided on installed apps in a sandbox on the cloud. - Free scaled down versions of Enterprise apps available. Eg Websphere Application Server Community Edition. References http://www-01.ibm.com/software/success/cssdb.nsf/CS/CPOR-8KA6EU?OpenDocument&Site=wp&cty=en_us http://www-01.ibm.com/software/tivoli/products/composite-application-mgr-soa-platform/ http://www.ibm.com/developerworks/mydeveloperworks/blogs/AliArsanjani/entry/soma_service_oriented_modeling_and?lang=en http://en.wikipedia.org/wiki/IBM_WebSphere http://www-01.ibm.com/software/tivoli/products/composite-application-mgrproductline/ http://www-01.ibm.com/software/solutions/soa/gov/method/ http://www.w3.org/ http://www.ibm.com http://www.dailymarkets.com/stock/2010/04/14/ibm-leads-soa-market/ http://www.gartner.com/it/page.jsp?id=1632714 http://www.zdnet.com/blog/service-oriented/soa-market-growing-17-a-year-to-reach-10-billion-by-2015/1931 http://publib.boulder.ibm.com/infocenter/dmndhelp/v7r0mx/index.jsp?topic=/com.ibm.wbit.help.intro.doc/prodoverview/topics/cprodpdf.html