700 likes | 846 Views
WebSphere Business Integration Server Foundation 5.1 Eric Herness, Chief Architect, WBI Server and Tools IBM Rochester, Minnesota herness@us.ibm.com. WBI Server Foundation 5.1. Vision/Reference Architecture Products View Where are we Going? The Marketing view
E N D
WebSphere Business Integration Server Foundation 5.1Eric Herness, Chief Architect, WBI Server and ToolsIBM Rochester, Minnesotaherness@us.ibm.com
WBI Server Foundation 5.1 • Vision/Reference Architecture • Products View • Where are we Going? The Marketing view • WAS Enterprise 5.02/WSAD-IE 5.01 Reviewed • WBI Server Foundation 5.1 Details • Process Choreography • BPEL and FDML • Compensation • Additional EJB 2.0/CMP Support • Assembly Toolkit • WSAD-IE authoring tools • Beyond 5.1 • Summary
Separation of Concerns By decomposing business needs into necessary services and composing combinations of existing and newly created services that represent business processes … Business Need Necessary Functions & Services Composite Application(s) 2 1 3 • Decompose the Business Need into its necessary function and services (Separation of Concerns) • Reuse/Create Business Application Specific function and services (Create/reuse services) • Utilize common services provided by the Operating Environment (Leverage Infrastructure) • RESULT: Implemented Composite Application representing a business process Operating Environment
Elements of an Effective Integration Architecture • Well-defined Interfaces and defined set of protocols • Implements & enforces the “Separation of Concerns” • Appropriate “Separation of Concerns” decomposition of required integration capabilities • Information and Data Access Services • Application and Application Access Services • Process Services • User Interaction Services • Community Integration Services “You start with Web services and you start with good solid object-oriented architectures. Why? Because the fundamentals of engineering like good abstractions, good separation of concerns never go out of style. Just because we have yet another set of protocols does not mean those things get thrown away [Grady Booch, InfoWorld 02/04] .”
Business Integration Reference Architecture Development Platform Business Performance Management Services Interaction Services ProcessServices Information Services Enterprise Service Bus Application and Data Access Services Business Application Services Partner Services Business Application and Data Services Enterprise Applications and Data Infrastructure Services
Business Process Integration Servers: Basics • Coordinates short-lived and long-running processes involving multiple applications and/or human interactions • Server will typically use an ESB for connectivity to applications • ESB use may be as simple as leveraging bundled MQ to support an Adapter call, or may be as sophisticated as leveraging full ESB capabilities of Message Broker • Server can utilize native routing and transformation capabilities, or delegate these services to underlying ESB layer
Software Industry trends Integration server technologies (WBI 4.x – MQ-Workflow, ICS, WMQI,…) 2005 2003 2004 On-demand Integrated Platform Suite Application server technologies (WAS, WAS Enterprise,…) • Application and integration server technologies are converging as integration servers adopt open standards and as application servers build out integration functionality • IBM is uniquely positioned to take advantage of market evolution as we are the only middleware provider that can leverage market leading application server and integration server products and technologies
Flashback to the mid-90’s: Integration New Business App Direct Web Access Business Applications Middle-Tier Business Objects (stateless and stateful) Composed Application Services Composed Customer Container Managed Persist. and Conns. CICS MVS IMS MVS DB2 MVS Oracle UNIX Checking Acct Credit Card Personal Info Contact Mgt. External Data Source Feed Current presentation and batch evolution, NOT revolution
Integration of People – Business Process – Information Anywhere, any time, from any device Transactional Processes Information Management Collaboration Application Development, Deployment & Maintenance Business Objectives and Policies Open Standards-based Policy-based Orchestration Optimization Security Availability Provisioning Pools of Virtual Resources Distributed Systems Storage Servers WBI and OnDemand Conceive/Modify Business Idea Define Model Bridge the Chasm between Business and IT Implement Model Move from Programming To Assembly, Customization And Instantiation Monitor and React Autonomic Business Activity Related IT-Business Acquire/Map to Infrastructure Adaptive Allocation Provisioning Orchestration Solution Modeling
WebSphere Business Integration 2004 Guiding Principles • Single Business Integration Vision • Multiple On-Ramps for the Discussion • Industry Based Solutions • Open Standards Technology Platform • Partners Building on the Platform • Engineering Focus • Eliminate the perceived and real overlap in product offerings • Simplify the overall portfolio by delivering a single integration platform that complements and extends the functions of the core J2EE WebSphere Application Server
WebSphere Business Integration Directions • Marry market leading integration capabilities with the market leading application platform Unbeatable Integration Platform Messaging Staff Model, Workflow Compensatory Transactions Business Object Model Mapping, Relationships Process Modelling Process Monitoring Open Standards Web services J2EE (JMS, JCA, etc.) Industry Interoperability Platform Services Common Administration Clustering, Load Balancing Security, Transactions Threading • To deliver an unbeatable integration platform with a fully converged, standards-based business process engine leveraging the full power of WebSphere Application Server
2004 Portfolio Simplification and Consolidation IBM WebSphere Application Server Enterprise will be re-branded to WebSphere Business Integration Server Foundation • Foundation re-branding occured with the v5.1 release in March • “Foundation” reflects value and positioning as the base for higher value WebSphere Business Integration solutions • Used as the development and runtime environment for building composite applications: • Developed by enterprise customers • Developed by ISV partners • Developed by IBM SWG • Enable WebSphere BI Modeler and WebSphere BI Monitor support for WebSphere BI Foundation v5.1 product by mid-year • WebSphere Business Integration family addresses the entire integration space and forms a smooth continuum with the WebSphere Application Server • WebSphere BI Server Foundation focused on integration • Maintain and enhance process choreography and business rule features • Add new integration capabilities and an improved tooling experience • WSAD-IE 5.1 will be the same name, but paired with WBI Server Foundation IBM Confidential
WAS Enterprise/WBI SF Perspective for 5.xx and 2004 • Today, we’ve got the WAS Enterprise 5.02.1 runtime in the field • all platforms that the base application server supports, except ‘i-series’ and ‘zOS’ s • supported by WSAD-IE 5.01. • Supports FDML flows and the other key PME/WAS E features • Customers have this in production now. We’ve got references • Rebranding ‘renames’ the codebase to WBI Server Foundation (WBI SF) at the 5.1 timeframe. The function is basically the same as WAS Enterprise 5.02.1, except we add: • BPEL based workflows • Some other additional features (CEI, CMP/Services, ..) • Adds platform zOS and i-series • Runs on WAS 5.1 and thus JDK 1.4.1 • Supported by WSAD-IE 5.1 • Timelines • WBI SF and WSAD-IE 5.1 Beta – February 2004 • WBI SF and WSAD-IE 5.1 GM/eGA – March 2004 • WBI Modeler Beta – March 2004 • WBI SF and WSAD-IE 5.1.1 PTF – August 2004 • WBI Modeler GM – Summer 2004 • WBI Monitor Beta … • WBI Monitor GM … • …then onto 6.0 More on these later in this pitch
WBI Server Foundation Includes (in the box) WBI Server Foundation ("umbrella install" capable which means we include WAS 5.1, WAS 5.1.0.2 and the JDK service packs on the WBI SF CDs for better customer out -of-box experience) WebSphere Application Server, V5.1 WebSphere Deployment Manager V5.1 WebSphere Edge Components V5.1 IBM HTTP Server V2.0 WebSphere Application Server Clients V5.1 WebSphere Application Server Toolkit V5.1 DataDirect Technologies JDBC Drivers V5.1 IBM Tivoli Directory Server V5.1 5.2 (limited terms and conditions) WebSphere Business Integration Event Broker V5.0.1(limited terms and conditions) DB2 Enterprise Server Edition, V8.1 FP4 - (limited terms and conditions) WebSphere MQ Client, V5.3.0.2 - (limited terms and conditions) WebSphere MQ Server, V5.3.0.2 -(limited terms and conditions) WSAD-IE Includes (in the box): WebSphere Studio Application Developer Integration Edition, V5.1 for Windows and Linux WebSphere Application Server for Developers, V5.1 for Windows and Linux WebSphere Business Integration Server Foundation, V5.1 for Windows and Linux DB2 Enterprise Server Edition, V8.1 FP4 WBI Server Foundation and WSAD-IE 5.1
Business Process Integration: Product Options • WebSphere Interchange Server (WICS) • WebSphere MQ Workflow (WMQWF) • WebSphere Business Integration Server Foundation (WBISF) *Available 2H2004
What is the overall integration requirement? Build composite applications including J2EE components, existing applications, and/or human interactions – WBISF Automated business process flows with coordination between existing applications - WICS Processes with advanced human interactions including automatic escalations, staff substitutions and notifications – WMQWF Which platforms are important to the customer? Windows, AIX, HP-UX, Solaris WBISF, WICS, WMQWF Linux on Intel WBISF, WICS (Q32004) Linux on iSeries/pSeries/zSeries, OS/400, OS/390,z/OS WBISF Do you want to run a abstract set of processes over an abstract business model to do ‘EAI integration’ today? WICS does this now, WBI SF does not yet enable this out of the box Do you want to engage business analysts in the development process, enabling process modeling, simulation and analysis MQWF and WBI SF can import WBI Modeler artifacts (FDL, BPEL) What is the overall comfort/familiarity with J2EE? WBISF is application server based and builds on your WAS infrastructure and skills How are most of the applications to be integrated accessible? Web Services WBISF (although WICS/WMQWF supports them in a less direct manner) WBI Adapters WICS (although WBISF supports them in a less direct manner) JMS/MQ WBISF, WICS, WMQWF JCA WBISF Does customer need the following types of built-in integration services? Event Sequencing in a multi-threaded environment, Cross-Referencing (Relationships) WICS Split/Merge branching within processes, XA transactions, business rules externalized from integration logic WBISF Making Choices
5.1 WBI SF and 5.1 WSAD-IE
WBI Server Foundation 5.1 Business Model - Entities • CMP/Services-Anything • CMP/Stored Procedures • CMP Optimization/Config. Tool • Application Profile (with a new sample in 5.02) • Dynamic Query (faster in 5.01) • Read-Ahead, Pre-fetch • Option C+ EJBs via Activity Session Svc Business Model - Business Process • Workflow Web Client • Struts-based • Compensation Repair Console • Process Administration • Performance • Workflow - FDML • staff, events, • compensation • micro-flow • macro-flow • BPEL Support • CEI + runtime Integration (BCDS) • Business Rules Beans(with new Rule Management application) • Activity Session Service • Last Participant Support • Transactions SynchronizationCallback • WBIA/CrossWorlds Adapter Access Next Generation Applications • Scheduler and Calendars • Container Managed Messaging** • i18n Service (RMI/IIOP and SOAP/HTTP) • Work Area Service (with partitions) • Startup Beans • Object Pool • AsyncBeans • Work Objects, Event Listeners, Alarm Listeners, Async Scopes • Distributed Map • Web Service Gateway Filters Scalability, Manageability, High Availability, Pluggability • Extended Failover • Mixed Node Administration • Assembly Toolkit Other: • (16) CORBA C++ SDK green = WAS Enterprise 5.02blue=WBI Server Foundation 5.1 function adds
WAS Enterprise 5.02 • Already an integration platform • WAS Base gives us lots of ways to ‘connected and integrate • Java Connector Architecture (JCA) • JDBC and CMP EJB for relational • JMS • Web Services • Transactions • WAS Enterprise and WSAD-IE Builds on that • WBI Adaptor Access • CMP EJB Extensions (Application Profile and • Extended messaging • SOA Tooling through WSAD-IE • Activity Sessions, Last Participant Support, Micro-flow, Macro-flow and Compensation • and then we bring in WBI-SF 5.1 capabilities
WBI Adapter Access in WAS Enterprise 5.02 forward • WAS Access to "WebSphere Business Integration Adapters" (eg..the CW non-JCA adapters) • Supports 4 Runtime Patterns • One-way (steps 1-4) • Request Response (steps 1-9) • most common pattern for simple access to backend data • synchronous, based on WSIF JMS provider • Notification (steps 1-5) • Solicit Response (steps 1-9) • Development Paradigm • Export WSDLs from CrossWorlds tooling for business objects • Import WSDLs into WSAD-IE and create interfaces using normal SOA tooling • Management • simple management of adapter agents from WAS via JMS Queues • Additional Details • works with MQ as the JMS provider • can easily be incorporated into WAS Enterprise workflows • WebSphere Business Integration Adapter Development Kit and specific Adapters sold separately
Work Area Partitions - The WorkArea Partition Service allows a user(s) to create their own WorkArea Partition(s) with a few new QOS options not available on the UserWorkArea Partition. Specifically: "Bidirectional" - If this property is set to true on a Partition, context changes made downstream process will propagate back upstream. If this property is set to false, context changes will only flow downstream as is the case with the UserWorkArea Partition which is always hardcoded to Bidirectional=false. "DeferredAttributeSerialization" - Set to true and this will cause the WorkArea Service to minimize the number of serialization operations. Note though that when "DeferredAttributeSerialization" is not used (set to false, which is the default case and the hardcoded value for the UserWorkArea Partition) WorkArea has complete ownership of the context when it is set into the WorkArea. However, when this property is set to true, WorkArea only holds a reference to the object set into the WorkArea and thus changes made to mutable objects will be reflected in the WorkArea until a remote call is made and the context is serialized. WorkArea sample to demonstrate a user created WorkArea Partition. CMM Extended Messaging late responses: CMM tooling can now generate a Receiver Bean based on an MDB to process late responses. (previously only a hand written MDB could be used for late responses). asynchronous mode of operation for the receiver beans: CMM tooling can now generate receiver beans based on stateless session EJB to process responses, late or not (previously only the original sender could process the responses). Microflow Compensation and Performance of Compensation News about Existing Features from WAS E 5.02
CMP/Services and CMP/Stored Procedures • CMP for Entities backed by non-relational RMs • leverages web services that wrapper backend "CRUD" interactions needed to manage attributes and relationships • "push-down" method support • Leverages extensions in ejbdeploy • Generates ‘skeleton’ in 5.1 to fill in underneath the CMP machinery (will have additional authoring tools in the future) • 5.1 tooling will emit new, custom implementations: • Can emit generic implementation (skeleton to be filled in by customer) • Or can emit implementation templates with JDBC, SQLJ, CCI, EJB, JAX-RPC, WSIF, JService (6.0) and Custom. CMP Entity CMP Entity CMP Entity CMP Over services or user defined create, retrieve, update, delete Service Invocation Service Invocation Service Invocation RDBs CICS, IMS, SAP, and other Java 2 Connectors Provides for more consistent and enhanced static modelling of business entities with EJBs
Assembly Toolkit • WAS Base has an associated Assembly Toolkit – replaces AAT • WBI Server Foundation will have one as well – replaces AAT function of the past • Eclipse-based Some details below: • Includes some unit test capabilities • Specific function related to access intent and application profile • Access intent and application profiling • Base: • In 5.02, rolled out the most-necessary default access intent. This is what you should use whereever you don't need transactional-scoped access intent. • In 5.1, we introduced system-wide optimizations that will shorten code path/improve performance if you only use default intent. This is just one of a number of internal system-wide optimizations that were made in container, pm, and resource adapter to dramatically improve cmp performance. • 5.1 also saw the introduction of deferred create • don't insert the object until the completion of the transaction • and introduced batch update • batch up operations within a transaction into a single database io • WBI Server Foundation: • Introduced pushdown (cmp/a and procedural) • Converged assembly tooling onto eclipse • Introduced auto-analysis for application profiling, statically identifying units of work, the entities enlisted in that unit of work, and the actual operations invoked on each entity during the course of that unit of work, enabling optimal configuration for 80% applications
CMP Optimization – Page 1 Work at EAR level Select “Closed” or “Open”
CMP Optimization – Page 2 Static Analysis App Profiles
Business Process Execution Languagefor Web Services (BPEL4WS) • A language to specify behavior of business processes • Between Web services • As Web services • Same language to define executable processes and business protocols • Executable processes • Can be performed in all compliant environments • Interoperability of heterogeneous environments • Abstract processes • Specify constraints of message exchange • History • 7/2002: Original 1.0 BPEL4WS proposal from BEA, IBM, Microsoft • Combined ideas from IBM’s WSFL and Microsoft’s XLang • 5/2003: Revised 1.1 proposal • With contributions from SAP and Siebel • 4/2003: OASIS Technical Committee formed • Standards-based follow-on to earlier BPEL4WS work • 3/2004 – BPELJ whitepaper, BEA and IBM co-author
Overall Structure of a BPEL Process Process parties that interact with the business process activities that must be performed in response to faults ! PartnerLinks/Partners FaultHandlers data variables used by the process invoked concurrently if the corresponding event occurs Variables EventHandlers set of properties shared by all messages in a correlated group wrapper for a compensation activity CorrelationSets CompensationHandlers basic or structured activity * Activity Receive Reply . . .
Do a blocking wait for a matching message to arrive Send a message in reply to a formerly received message Invoke a one-way or request-response operation on a port type offered by a partner Update the values of variables or partner links with new data Generate a fault from inside the business process Immediately terminate execution of a business process instance Wait for a given time period or until a certain time has passed A “no-op” instruction for a business process Invoke compensation on an inner scope that has already completed BPEL Basic Activities ! Receive Throw Reply Terminate Invoke Wait Empty Assign Compensate
Contained activities are executed in parallel, partially ordered through control links Select exactly one branch of activity from a set of choices Contained activity is repeated while a predicate holds Block and wait for a suitable message to arrive (or time out) Contained activities are performed sequentially in lexical order Associate contained activity with its own local variables, fault handlers, compensation handler, and event handlers Sequence Pick Switch Flow Scope While BPEL Structured Activities
. . . Invoke BPEL Invocation Scenario: Synchronous Interface Process A Process B Process B Process B Partner Link Type Partner Link B-L partnerRole=“b” Partner Link A-L myRole=“b” role a role b 2 Port Type B-PT request-response operation Receive Receive Receive . . . . . . . . . Invoke Invoke . . . . . . . . . Reply Reply Reply
BPEL Invocation Scenario: Asynchronous Interface Process A Process B Process B Process B Partner Link Type Partner Link B-L myRole=“a” Partner Link A-L myRole=“b” role a role b Port Type A-PT Port Type B-PT one-way operation one-way operation . . . . . . Receive Receive Receive Invoke Invoke Invoke . . . . . . . . . . . . . . . . . . Invoke Invoke Invoke Receive Receive Receive
IBM Extensions of BPEL4WS: BPEL+ • Activities implemented as inline Java code • Executed by the business process engine during the process execution • Executed inside the engine • Access to the complete process environment • The variables of the current process, activities, and the process itself • Activities interacting with human workflow participants • Process steps which are “implemented” by people • Upon arrivng at a ‘staff’ activity, a query is invoked to find out which ‘individual’ or ‘group’ is eligble to ‘claim’ the ‘work’ and enable the process to move forward. The process waits (yes, there is a timeout) until the work is completed • Sub-processes supporting life-cycle operations • Command line Deployer • Several other smaller features
Command Line Deploy – Page 1 • Take BPEL Files and associated WSDL files and deploy them • The WPC Standalone Deployment can be found at "<was_home>\ProcessChoreographer\util\deployBPEL.jacl". • It is invoked as follows: • wsadmin -f <was_home>\ProcessChoreographer\util\deployBPEL.jacl [options]
Command Line Deploy – Page 2 • Notes: • SOAP deployment options deferred to 5.1.1
Microflow Performance Steady improvement since 4.1 Macroflow Performance Steady improvement since 5.0 FDML Tuning Information(all described in performance tuning guide) Database Tuning Messaging Tuning WebSphere Tuning ORB Thread Pools EJB Caches JMS JDBC JVM Tuning Operating System Tuning Builds on years of WebSphere Application Server ‘tuning’ experience Performance of Choreography
Choreography: Topologies for Production • Option 1 • Load balancing occurs when starting the process and with every step of the interruptible process. Most scalable topology, increased footprint due to message spreading in MQ cluster • Option 2 • Load balancing occurs when starting the process and with every step of the interruptible process. Messaging server may become bottleneck in large WAS clusters, less overhead than when using MQ cluster though.
Choreography – Tactics for High Availability • Placement of Function onto Cells and Clusters • Follow ‘normal’ guidelines for WAS Applications • Implies that you have all processes and all services that they use on the same cluster meaning you get HA via: • WAS Clusters • HA on database • HA on MQ • Some alternative choices: • Processes on One Cell, EJBs on another • Microflows on all cells • Mixture of the above • Placement of Cells and Clusters onto Machine • Follow ‘normal’ guidelines for WAS Applications, generally not limiting a cell or cluster to a single machine • Leveraging ‘rolling upgrade’ from WAS and ‘valid from’ that is in Choreographer
WBI Event Infrastructure Event Source Distribute Submit Event Consumer Complete Event Consumer Event Consumer • An event occurs when something significant happens in the IT system. • For example, whenever an application processes a new order or a failure occurs in a critical part of the system. • Our event infrastructure in WBI SF 5.1for business events is based on CEI (Common Event Infrastructure) • Data about the event is captured in an event object. • The event object has a standardized format called the Common Base Event (CBE) • The application supplies the business data and WebSphere fills in the details from the runtime environment such as the server name, J2EE component details and business context. • All event objects are passed to the event infrastructure to enable: • Tracking the progress of a business process • Audit trails • Coordinating work between independent business processes • Monitoring for exceptions in a business process • For example, if the process does not complete within a time limit Event Consumer Query Store Event Data
An application creating events The complete business process BPEL Process MDB Places where events might get written EJB Message -based Application DB WebSphere’s Event Infrastructure Monitoring Application
Programming Model Choices Java APIs Context ctx = new InitialContext(); EventFactory factory = (EventFactory)ctx.lookup(“java:comp/websphere/events/factory”); CommonBaseEvent event = factory.createCommonBaseEvent(“NewOrderReceived”); event.setExtendedDataElement(“OrderStatus”, “NEW”); event.setExtendedDataElement(“CustomerNumber”,”C03738927”); emitter.sendEvent(event) <CommonBaseEvent extensionName=”HighValueOrder” methodName=”calculateOrderTotal” severity=”10” priority=”50” when=”after”> <extendedDataElement name=”OrderStatus” fixedValue=”HIGH-VALUE”/> <extendedDataElement name=”ItemCount” parameter=”noOfItems”/> <extendedDataElement name=”OrderValue”/> </CommonBaseEvent> <bpel:process name=“OrderCreationTemplate" wpc:businessRelevant=“yes|no" ...> ... </bpel:process> Deployment Descriptors BPEL Extensions