Tuesday, November 29, 2005

Day 7 - WBI and WAS Adapters

Tuesday was adapter day. We went through both the old WBI Adapters and the new WAS Adapters

IBM currently bundles the old WBI Adapters when customers buy the new WAS Adapters so they may choose which one to use. The WBI Adapters are connected to WPS using JMS import/export modules. Nothing new about the WBI Adapters, same tools used for connector configuration and business object design etc.

The new WAS Adapters are based on the Java Connector Architechture (JCA) and hence are run inside the WAS as an J2EE component. They, of course, use SDO to represent data. Currently there are WAS Adapters for SAP, Siebel, PeopleSoft, flat files, and JDBC.

We also learnt that WebSphere Partner Gateway (WPG) is bundeled with WPS. WPG is an effective tool if you wish to work with EDI and XML transformations and can be used toghether with WPS.

Monday, November 28, 2005

Day 6 - JMS Bindings

The day contained a deep dive in the SCA programming model and references as well as the usual best practices such as:
  • Coarse grained interfaces
  • Limit network roundtrips
  • Don't use WS between different architechtural layers in the same application

Then we dug into JMS and got an introduction to the WPS SIB (Service Integration Bus) which is the messaging bus used by all components in WPS so it serves as the backbone of communication within Process Server. It's a pure Java implementation which is JMS 1.1 compliant. It contains a mediation framework which uses mediation handlers to transform, transcode, reroute, and manipulate messages. The SIB can be set up to communicate with a real MQ installation through an MQClientLink or MQLink. Seen from the perspective of MQ, the SIB is seen as a real queue manager.

Week 2 - Advanced Workshop

Course: SW627 - WebSphere Process Server and WebSphere Integration Developer Advanced Workshop

Overview
The 5-day WebSphere Process Server Version 6 Workshop includes lecture and hands-on exercises. The focus of the course is getting consultants up to speed on the WebSphere Process Server V6.0 with specific emphasis on some of the key capabilities and concepts considered core building blocks leveraged in more complex deployment scenarios. The course is taught in the context of the eXchange Scenario The eXchange scenario describes a set of use cases that map well to the capabilities available in WebSphere Process Server. A description of the eXchange scenario is provided in the appendix. and builds on concepts introduced in the WPS V6.0 core education course. The course will begin with a detailed look at the SOA programming model, the specialized components and the supporting services available in WebSphere Process Server for building integration solutions. Once the fundamentals of the SOA programming model are understood along with the specialized components, the workshop will explore the edge capabilities provided by JMS, Web Services and JCA in detail. The workshop will then introduce how many of the well known business integration patterns can be deployed on WebSphere Process Server using the SOA programming model, the specialized components and edge interaction. Finally, the workshop will consider packaging and deployment, versioning, and serviceability of WebSphere Process server solutions.

Topics
The following is a provisional list of topics for lectures and exercises:
  • SOA Programming Model
  • Service Component and Supporting Services Overview
  • Edge Component - JMS Based Integration
  • Edge Component - J2C Based Integration
  • Edge Component - Web Services Based Integration
  • Business Integration Patterns
  • Versioning and Dynamicity
  • Solution Deployment
  • Runtime

Friday, November 25, 2005

Day 5 - BPEL generation for Business State Machines

In WebSphere Integration Developer you've to different ways of modelling BPEL-processes, using the BPEL-designer or using Business State Machines. Modelling a process as a state machine results in an "ordinary" BPEL-process being generated.

Looking at the generated BPEL clearly illustrates why you wouldn't want to create such processes in the BPEL-designer :)

The state machine below...
...results in this BPEL-process:


Thursday, November 24, 2005

Day 4 - Human tasks

Human Tasks are an extension to BPEL made by IBM. It's quite neat since you're able to specify escalation conditions and use a whole lot of expressions to assign a human task.

The Process Server uses the term registry to denote the datasource that contains the useraccounts and roles. Registries may be the simple users and roles that exists in the WebSphere Application Server that's running the Process Server, it may be a database or it could be an LDAP directory. The latter being the most likeley, in my opinion. But for this to be really usable and to really harness the power of the expressions/conditions against the registry you really need a well maintained directory that really reflects your organisation with managers and employers etc.

From what I've seen at our clients it's most likeley that the corporate direcotry exists in an Microsoft Active Directory. My opinion is that most of our clients doesn't use simple things like specifying managers on objects in their directory and therefore limiting the possible usage of the directory, for example for the human tasks in the Process Server.

Day 3 and 4 - ICS on steroids

Those of us who come from the world of InterChange Server got pretty happy yeasterday when we were looking in to the mapping capabilities of Process Server. The mapping GUI has now been included into Eclipse and the creation of maps is done in a far more intuitive way than before. You can create a map top-down from the main interface map down to each and every submap without having to save all your work on the way. This new GUI makes it far more easier to create maps than it was in InterChange Server.

Another nice feature is the BOXMLSerializer class which you can use toghether with FlatFileAdapter for example. The BOXMLSerializer class simply takes a Business Object and transforms it into XML.

Wednesday, November 23, 2005

Day 3 - Scoping in XPath and BPEL

I've been hacking on a BPEL-process between the labs (during the lectures that is...). The scenario is that I'm trying to convert the end-to-end lab we did yesterday morning to a "pure" BPEL-process in order to get rid of the Java components that were included in that lab, and of course to learn the process modelling tool as well.

The lab setup was a simple "customer has a portfolio with N different stocks" and there's a stock quote service which gets called to calculate the total value of a given users portfolio.

So, in order to call the quote service once for each stock I created a simple while loop activity, which then of course needed a loop condition. That's when I got into Xpath. The customer SDO looks something like this:

<customer>
<name>Foo Bar</name>
<stocks>
<symbol>IBM</ibm>
<numberofshares>200</numberofshares>
</stocks>
<stocks>
<symbol>XYZ</symbol>
<numberofshares>50</numberofshares>
</stocks>
</customer>

So I happily tried to get a count of the stocks elements using the Xpath expression count(/customer/stocks)....which didn't work. Here I learned the first really useful thing, don't try to get a hold of the actual SDO using the debugger, it'll only give you the nice view of the object (quite obvious when you think about it). The quickest way (that I know of) is to put a Java snippet activity that dumps the serialized SDO representation to stdout. This showed that it's much better to do count(//customer/stocks) since the SDO actually adds a top level element and my personal guess is that certain changes/refactorings in your infterfaces or import/export might change this top level element, so depending on it in your Xpath expression may be unwise.

Regarding scoping in BPEL I got bitten by the fact that my loop variables were declared on the while activity and hence got re-initialiyed for every iteration resulting in an infinite loop. Declaring an outer scope and putting the variables there seems to have solved the problem but I've not had time to test it.

Tuesday, November 22, 2005

Day 2 - Wires, exports and imports

Todays course contained a lot more hands-on which was good. We took a deep dive into an End-To-End case where we used both the old WBI Adapters and the new WebSphere Adapters which runs within the WAS. The old WBI Adapters runs perfectly fine with the Process Server. Business Objects are now represented by using SDO (Service Data Objects).

We have made our first Process (BPEL), it turned out to be a very simple Process and we realized that they will and can become a lot more complicated. When developing loops/iterations in BPEL the result can be quite complicated due to nested while loops that can become quite teadius to read and maintain. Another approach to this problem is to design the process using state machines. Using state machines it's much easier to design and implement processes that contain loops or return to an earlier step in the process.

Monday, November 21, 2005

Day 1 - Slides, slides and more slides

We started off with a fantastic breakfeast at our hotel and then set off to the IBM Forum by foot. This turned out be quite a bad decision since we'd quite a heavy snowfall during the night which combined with a rising temprature during the morning got our feet soaked during the walk.

When we finally arrived the rest of the class was already assembled and our two teachers Dr Novak and Thomas gave us a walkthrough of the programme for the following ten days. We then went through IBM Reference Architecture and a bunch of other PowerPoint slides. In the afternoon we finally laid our hands on the products. A simple HelloWorld example and some poking around in the new and and pretty good looking WebSphere Integration Developer rounded off the day.

In the evening we had a few beers and some german/bavarian specialities in the hotel bar toghether with our teachers.

Week 1 - Core Workshop

Course SW626 - WebSphere Process Server and WebSphere Integration Developer Core Workshop

Overview
The 4 ½ day Diamond Core workshop includes lecture and hands-on exercises. This is a required first week of a 2 week boot camp (second week is course SW627). The focus of the course is getting consultants up to speed on the Diamond release of WebSphere Process Server (WPS) and WebSphere Integration Developer (WID). The exercises are intended to get the students familiar with the operation of WID and WPS. The lectures and exercises work through topics such as: Business Integration vision, overviews of WPS and WID; introduction to Service Component Architecture (SCA); Service Data Objects (SDO) and the implementation of business objects using SDOs; Business Process Execution Language (BPEL) and the IBM implementation of BPEL in Business Process Choreography (BPC); introduction to human task management with BPC; introduction to selectors, business rules; business state machines (BSM); introduction to business integration adapters, specifically the JDBC and "flat file" adapters; introduction to mediators, mappers and data relationship management. This course gets your feet wet in the heart of the business integration product family.

Audience
Technical consultants who need in depth training on WebSphere Process Server (WPS) and WebSphere Integration Developer (WID)

Educational objectives
Understand the key function and features of WebSphere Process Server and WebSphere Integration Developer.

Topics
The following is a provisional list of topics for lectures and exercises:
  • Vision for Business Integration (e.g. Ref Arch, Products Roadmaps)
  • eXchange Scenario Introduction (real scenario description, not as implemented in labs)
  • Outline Major Components of Diamond (e.g. SCA, Business Rules, Adapters)
  • Diamond Tooling Overview
  • Service Component Architecture Overview
  • Business Object Overview
  • BPEL Overview
  • Human Task Manager Overview
  • Selectors and Business Rules Overview
  • Business State Machine Overview
  • Adapters Intro
  • Mediation and Maps Overview
  • Relationships Overview
  • JCA Adapters Overview
  • CEI/CBE & Event Monitoring
  • Failed Event Manager
  • Administration (Admin Console) Overview
  • Migration Overview (very high level)
  • Monitor Overview and Demo

Sunday, November 20, 2005

Day zero

We've just arrived at our hotel in Munich. No Wlan coverage in the rooms but the lobby, bar and restaurant have free wlan so I guess that's ok since the beers in the bar anyway ;)