12. SOA and Composite Applications Account Management Order Processing Inventory Data Repositories Services Composite Applications Check Customer Status Check Customer Credit Check Inventory Check Order Status Create Invoice Finance Sales Marketing External Partner Data Warehouse CRM Composed Business Processes Combined Services distributed over network, exchange messages, coordinated activity
47. App Server App Server IDE Web Server BPEL Editor Java EE SE JBI Bus XSLT SE HTTP BC FTP BC FTP BC Many More SEs… FTP BC Many More BCs… XSLT Editor Composite Application Project IEP Editor Composite Application Manager Runtime BPEL SE Java EE EJBs Servlets Java EE SE JBI Bus XSLT SE HTTP BC FTP BC FTP BC Many More SEs… FTP BC Many More BCs… BPEL SE Java EE EJBs Servlets Design-Time Management 3 rd Party Service Platforms 3 rd Party Service Platforms Open Standard Based Service Bus WS-Reliable Messaging WS-Security WS-FastInfoSet, … Many More Editors Many More Editors IEP Monitor BPEL Monitor XSLT Monitor Many More Editors Many More Monitors
84. Example: Binding, Port, Service < binding name="loanBinding" type="ns:loanProcessWSDLPortType"> < soap:binding style=" document " transport ="http://schemas.xmlsoap.org/ soap/http "/> <operation name="applyForLoanWSDLOperation"> <soap:operation/> <input name="input1"> <soap:body use=" literal "/> </input> <output name="output1"> <soap:body use="literal"/> </output> </operation> </binding> < service name="loanService"> < port name="loanPort" binding="tns:loanBinding"> <soap:address location= " http://localhost :loanService1/loanPort" /> </port> </service> protocol and encoding set of related ports Endpoint address
85.
86. BPEL Orchestrating Process (BPEL) Partner Service Partner Service Partner Service Client Partner Service WSDL Web services are described in WSDL orchestrated interaction between Web services
122. Network layer JBI Container N M R BPEL SE BPEL process EE SE SAP BC HTTP BC HL7 BC HTTP HL7 RMI WSDL WSDL WSDL WSDL BPEL process WSDL ejb.jar WSDL application.ear WSDL
131. Security context propagation JBI Container N M R BPEL SE BPEL process EE SE SAP BC HTTP BC HL7 BC HTTP HL7 RMI WSDL WSDL WSDL WSDL BPEL process WSDL ejb.jar WSDL application.ear WSDL
Mention what the NMR does and how it msgs are sent across including metadata to describe what is happening.
Completeness of the Suites Beyond traditional integration to include identity management, single customer view, ETL... Integration of the Suites Lowest TCO due to integration of tools & runtimes Identity Built into the Fabric of the Architecture Industry Leading Directory and Access Management IT Professional – Java Professional Collaboration Best Composite Applications: All artifacts automatically exposed as Web services in a common registry available to tools Best Productivity: Graphical tools supporting IT and business collaboration and round-tripping to Java IDE, BPEL and other editors Standards Support: Interoperability and Application Portability Java EE, JBI, JMS, WS-I Basic Profiles, XML Legacy: EDI, de jure and de facto protocols and standards Sun Platform: Architected for a Services Architecture Best SOA Platform: Solaris TM 10, T1 chip, CoolThreads TM Technology
.
ETL stands for extract, transform, and load. That is, ETL programs periodically extract data from source systems, transform the data into a common format, and then load the data into the target data store, usually a data warehouse. ETL processes bring together and combine data from multiple source systems into a data warehouse, enabling all users to work off a single, integrated set of data — a single version of the truth. EDM Service Engine is an enabler for building Enterprise mashups by performing the datamashups at the server-side and avoiding huge data sets to be joined at the client-side which could lead to sudden surge in bandwidth requirements and thus makes even the concept of mashups feasible. It serves the new breed of Business users who are part of the organizations transforming themselves to Enterprise 2.0. For example, a Business Analyst wants to get a view of Sales distributed geographically for which he wants to join an internal Data source with an external geospatial data sources.
WSDL specification defines 7 element types.
In this example, two messages are defined - the first one is called GetLastTradePriceInput and the other one is called GetLastTradePriceOutput. As you can tell, these are request and response messages of stock quote service. Now please note that message definitions refer to the data types we just defined, TradePriceRequest and TradePrice. Now I said portType is just a collection of operations. In this example, we have only one operation. What is an operation? As I said in previous slide, it is an action, and an action is made of input and/or output messages we just defined using message elements. So in this example, the GetLastTradePrice operation will be performed as a combination of input message, GetLastTradePriceInout, and output message, GetLastTradePriceOutput message. Please note that here there is no mentioning on which XML protocol or transport will be used. This is why we call these elements as abstract definitions. And obviously they have to be bound to a concrete XML and transport protocol. And that is what we are going to see in the next slide.
In this example, two messages are defined - the first one is called GetLastTradePriceInput and the other one is called GetLastTradePriceOutput. As you can tell, these are request and response messages of stock quote service. Now please note that message definitions refer to the data types we just defined, TradePriceRequest and TradePrice. Now I said portType is just a collection of operations. In this example, we have only one operation. What is an operation? As I said in previous slide, it is an action, and an action is made of input and/or output messages we just defined using message elements. So in this example, the GetLastTradePrice operation will be performed as a combination of input message, GetLastTradePriceInout, and output message, GetLastTradePriceOutput message. Please note that here there is no mentioning on which XML protocol or transport will be used. This is why we call these elements as abstract definitions. And obviously they have to be bound to a concrete XML and transport protocol. And that is what we are going to see in the next slide.
So in this example, the portType called StockQuotePortType is bound to SOAP as communication protocol. SOAP can support either document style or RPC style. In this example, document style is chosen. And the data format of the operation named GetLastTradePrice will use literal. Finally this service has one communication endpoint which is represented by one port element which specifies the endpoint address for a particular protocol. And in this example, the address happened to be http://example.com/stockquote.
Ultimately, a BPEL document gets compiled and deployed to a BPEL engine. At that point it is ready to to actuallygo live as a process. Here is a diagram showing the relatiionship of a deployed BPEL process and it partner services. The lines connecting the partners represent the messages flowing back and forth between the BPEL process and its partners. Bear in mind all these messages are exclusively Web Service messages Charles – Mike, I get it!! All of those partners are BPEL too!! Mike – Well, not quite Charles. Those partners are definitely web services and some of them may also be BPEL processs, but it is highly unlikely that they are ALL BPEL processes. Charles – Why not? Mike – Well because somebody has to do the real work. BPE is not a general purpose programming language. Remember a BPEL process is an “orchestration” and orchestration implies delegation. And delegation implies that somebody else is doing the work. BPEL can't do everything.
What does it mean to say that BPEL is an XML based langauge? You are all familiar with programming languages like Java. You are probably all familiar with XML documents and have seen XML used for specifying things like deployment descriptors. But you may not have seen XML used as a programming language. This means that the BPEL specification has defined an XML vocabulary, a collection of XML elements and their attributes which collectively form the BPEL language. It further means that a BPEL programmer “programs” a BPEL process by authoring an XML document which utilizes these BPEL specfic XML elements. Here is the skeleton of a BPEL process. You can see it is highly structured. There are well defined sections. You can also see that there is ofthen quite a bit of “set up” before you actually get to the heart of the process ... the activities. The activities are where the real orchestration takes place. We will cut to the chase and focus on the activies ... next slide.
* Invoking other web services, using <invoke> * Waiting for the client to invoke the business process through sending a message, using <receive> (receiving a request) * Generating a response for synchronous operations, using <reply>
And thirdly, BPEL provides structured activities which allow the BPEL programmer to order a collection of activites in various logical combinations – sequentially or parallel, conditionalized and in arbitrarily nested scopes.
.
.
Intelligent Event Processing the scenario is about tracking how, a bank's customers for example, tend to switch between using different channels to get their business done. The scenario tracks changes in behavior over a period of three months. The background is about the bank trying to predict the behavior to say, sell services that may be useful based on the current behavior. What does EDA enable that a BI system does not? A BI system would run reports every quarter to analyze all customers at once as opposed to an EDA system tracking customers individually on their own calender - banks could respond to change in customer behavior much faster than waiting for the end of quarter to run a BI report.