Tuesday, October 18, 2005

The lost BPM links

Towards the end of last year I came across an entry for business process management in Wikipedia. It wasn’t very good so, in the true spirit of Wikipedia, I rewrote it and tried to get some structure in it. Since then it has evolved with many people each making different contributions, although the original structure seems to have remained. Although I do have a few gripes with the current version of the entry, I guess I have to bow to the fact that my POV is not necessarily the POV of everybody else.

One section I added was a set of links to vendors currently offering BPM products. This has recently be removed by another Wikipedian with the comment that “it’s not a web directory”. Well, maybe. I have to admit that the section was troublesome in that everybody wanted to add their favorite vendor, even if their products had nothing to do with BPM. But I still found the section useful. However, rather than lamenting its demise, I have moved it here so what follows is the last link list from Wikipedia (edited to remove a number of spurious entries):



My criteria for selection are rather loose, basically that each vendor states on their web site that they support business process management rather than just supporting particular processes (such as CRM , SCM etc.). The list is, of course, incomplete.

Monday, October 03, 2005

Rich Clients in a Browser - More about AJAX

I’ve been pretty busy over the last months (new project in another city) so this is my first post for a number of months.

However, since posting about AJAX and rich clients back in March a lot seems to be happening in trying to ease the burden of providing rich client functionally in a browser, i.e. people are creating JavaScript libraries. The following caught my eye:

script.aculo.us has a JavaScript library for creating user interfaces elements and functionality, such as drag and drop and auto-completing text fields.

Rico who as well as offering a number of visual effects also has a data grid which allows a HTML table to be connected to a data source.

Both of these are based on the Prototype framework which is a JavaScript framework which claims “to ease the development of dynamic web applications” and has functionality to ease the handling of XMLHttpRequest (one of the fundamental building blocks of AJAX).

Wednesday, June 08, 2005

Virtual Enterprise and the SOA - What Reardon are doing

Another InfoWorld article about Rearden Commerce's plans. What's interesting is not only that they offer a set of business services, but also a platform which lets the end user assemble composite apps (including their own processes).

Saturday, April 30, 2005

Versioning Sevices - The last word?

My article (written with my colleague Andreas Elting) on service versioning has been published in ObjektSpektrum, one of Germany’s leading technical magazines (the means of course that it’s in German!). As I have tried to show in this blog the idea of just using web services does NOT mean that the services and their consumers are fully decoupled from each other. Changes in the XML are unavoidable if the architecture has to adapt to changing business requirements, but these very changes can render a message unreadable for either the service provider of consumer. Service versioning is one way of managing this problem.

Previous ruminations on this topic can be found here.

Saturday, March 19, 2005

Ajax - Rich Clients in a Browser

A lot of buzz is starting to develop around the Ajax architectural technique. Indeed, before giving up, I counted 200 links in del.icio.us with Ajax as tag. This really is a buzz when you consider that the technique was only coined in February this year by Jesse James Garrett in an excellent article. As this describes Ajax so well, I’ll just try to condense it into two sentences: Ajax is about using the inherent rich client functionality of a standard browser to provide responsive user interfaces using standard web technologies. These are:


  • Rendering with XHTML and CSS

  • Client logic with Javascript and the document object model.

  • Communication using asynchronous calls to get XML data with XMLHttpRequest.



Although the technique has just been given a name it seems quite a lot of UIs have already been produced which use this technique. Having a name though, allows people to say “yes, we’ve done that” or “yes we’re doing that”, in a manner similar to the naming of design patterns. Indeed I’m sure that some of my colleagues who have produced rich UIs for various companies using JavaScript will say just that.

Although the hype is just starting, I need to sound a note of caution. If the amount of JavaScript increases above a certain point, then the perceived performance of the UI can degrade significantly. This is mainly due to the load time of the page. Certain commercial products (who will remain nameless) that rely heavily on large quantities of JavaScript are hitting this problem. It’s nothing new, anybody who once tried to bring rich client functionality to the browser using Java Applets (remember those?) knows what I am talking about.

Tuesday, March 08, 2005

More Services for the Virtual Enterprise

Two more hosted apps for the virtual enterprise:


And an interesting article in CIO Online.

Monday, February 28, 2005

Building a Virtual Enterprise IV

The following InformationWeek article describes how GrandCentral (mentioned before in this blog) have added a raft of new partners, each offering different business services. I've included the following quote from the article and linked the references:

"In addition to NetSuite and NSite [note: NSite offer business automation services], Grand Central's partners include ServiceObjects, a customer-data-validation service; Demandware's E-commerce system; RecruitForce.com, an online system for managing job applicants and the application process; SPS Commerce, an EDI hosting service; StrikeIron, which provides tools to simplify publishing, finding, and utilizing Web services; and Xignite, a supplier of online financial services components.
Additional partners are:
Moreover Technologies, a supplier of online news service systems; Advanous, a division of EnterBridge Technologies, supplier of an online distribution-management system; ExpediteBiz, an automated shipping-service supplier; OpenAir, an automated professional-services-management system; Intellibank, an online relationship-management system; and Advanced Data Exchange, an online EDI document-exchange service."

Saturday, February 19, 2005

Versioning Service II

In a previous blog, I started to explore the idea of how services could be versioned in a SOA. Although versioning the WSDL seemed to be an alternative for web services using SOAP the question remained on how to version services which use a queuing mechanism (e.g. with a JMS interface). If a service is invoked over a queue then the queue becomes synonymous with the service. All that has to happen is that new versions of a service are connected to new queues (appropriately named) . Old clients just stay connected to the old queues or are migrated to use the new services over the new queues. Seems easy, but I suspect that in a large system with many services it would be a nightmare to administer, especially as there is no lookup information for the queue. Indeed, this seems to depart from two of the main tenets of SOA, i.e. services are loosely coupled and that they can be discovered.

However, having previously discussed that versioning is possible in web services, can web services be combined with a queuing system and the advantages of web service versioning kept? New standards in the web services space seem to point to a possible solution (as web service management vendors - such as Systinet - are keen to point out). The basic architecture seems to look like this:



SOAP Messages are sent to a MOM gateway, which extracts the messages, finds the queue and sends the message (maybe using JMS if it’s a J2EE implemetation) to a service provider. Messages sent back from the service provider are picked up by the gateway and send as a SOAP response back to the consumer. All the issues concerned with message correlation etc. are handled by the MOM gateway.

Not shown in this diagram is how to deal with an asynchronous style of communication. To solve this comes a small, and apparently unassuming, specification called WS-Addressing. This provides a uniform way of supplying the endpoint of a web service within the SOAP message rather than just using a URL. Although it seems to add complexity, the standard ends up providing extra flexibility and may well be the answer to dealing with versioning of services, but more about that later. In the case of asynchronous messaging, WS-Addressing defines a "ReplyTo" SOAP header block and this could be the endpoint for the return message from the provider.

I have, for the time being, ignored the handling of publish/subscribe mechanisms. Within an SOA one would typically also architect an eventing mechanism, e.g. to notify that a change has happened to some data. WS-Eventing is maybe the right standard to use, but I not going into that now.


Having seen how to use web services with MOMs, lets get back to the versioning problem. In order to find the correct version of a web service an additional degree of layering is required. I’ve tried to show this in the following diagram:




Now the usual parole is to say that the namespaces of the XML messages are versioned and that the version resolution layer checks the name space and directs the message to appropriate service. However, WS-Addressing offers another possibility. Instead of specifying the endpoint of the service provider the corresponding endpoint of the version resolution system is specified plus versioning information. Based on this, the version resolution finds the correct endpoint, modifies the endpoint in the WS-Addressing part of the SOAP header and directs the message to this.

Nobody seems to be actually offering anything in this area, although application platform vendors such as BEA seem to be active in terms of XML versioning, but if they are going to use WS-Addressing in their products to implement versioning , remains open. Web services management vendors such as AmberPoint , also seem to offer support for service versioning with their products, although how far this goes and if it is based on open standards is unclear.

Friday, February 18, 2005

Extending XML Schemas

Interesting article about how to write XML Schemas which can be extended. Extending the schema doesn't remove the need for versioning, but it goes some way in preserving loose coupling.

Thursday, February 17, 2005

For the Web Service Challenged

Having problems keeping a track on all those web service standards.? Maybe these 3 help:
  • IBM keep a list of web service standards as well as their current status. Unfortunately these only seem to be those which IBM was involved in (including organisations such as OASIS and w3C).
  • Microsoft also keep a list, but in a more verbose fashion and, like IBM, it seems to be focused on Microsoft efforts.
  • Wikipedia also has a list of web service standards, but currently does not show the status.

Thursday, February 10, 2005

Business Process Handbook

The MIT Process Handbook is a catalog of processes, arranged in a hierarchical structure. Rather than just letting you examine the processes it also lets you generate ideas (based on related processes), which could be used to improve them.

A book is also available that explains the concepts behind it: Organizing Business Knowledge: The MIT Process Handbook
by Thomas W. Malone, Kevin Crowston and George A. Herman - ISBN:0262134292

Tuesday, February 08, 2005

Building an Enterprise using Hosted Services III

In previous blogs I have talked about building a virtual IT, i. e. having all apps and data hosted by someone else. In my travels I've found three more providers. Salesnet and Rightnow offer CRM. Netsuite also offers financials and ERP support.




Thursday, January 27, 2005

Building an Enterprise using Hosted Services II

A couple of blogs back I wrote about the idea of how far a company can go in terms of virtualising it's IT, i.e. having somebody else hosting it, but wondered how all the external services could work together. It seems the idea has not escaped others. I first came across this blog on the Loosely Coupled web site. Although the author was trying to make another point (i.e. what is the ratio between objects, components and services in an enterprise) he trys to envisage a company which has no IT but uses services from, for example, salesforce.com and brings everything together using Grand Central and maybe the Amazon Simple Queue Service.

Searching further I found this infoworld article which also extols on Grand Central's capabilities and focuses on their use of a hosted BPEL engine which lets developers define their own processes and have them hosted.

Now that we have some of the business services/processes hosted and something like GrandCentral/Amazon to integrate them, what remains? Well first of all we need a lot more business services. GrandCentral's web site seems to offer a lot of the "informational" web services as hosted by organizations such as XMethods. Difficult to see how a meaningful chunk of business functionality could be implemented with those. (Maybe I doing an injustice to GrandCentral as I'm not a member of them and couldn't log in, plus the fact that their web site reminds me of a maze.) Secondly we need user interfaces - can they be hosted? Thirdly we need lots of data storage, which is properly managed and can also be used to host data warehouses. And fourthly we need alternate sourcing for this stuff.

Fast XML

Many, many years ago I picked up a book about a standard used in the telecommunication industry for describing and encoding data. The standard was called Abstract Syntax Notation 1 or ASN.1. Using this, data structures could be described and encoded in a standard way for transmission. This should sound familiar - if not you only have to click here.

This was so long ago that I can't remember who wrote it and also seem to have lost my only copy.

Then in the January 2004 issue of IEEEPro, I was surprised to read an article by Darren Mundy and David Chadwick ("An XML Alternative for Performance and Security: ASN.1") in which they showed that using ASN.1 binary encoding is significantly faster than using XML encoding. Using this the data can be described using ASN.1 (analog to XML Schema) and encoded using a standard ASN.1 binary encoding . (Unfortunately only the abstract is publicly available.)

This seemed a Good Idea, especially in enterprise environments were performance is important. However, the idea has not escaped others, as I found out when I came across this news article about speeding up XML. This references the Fast Infoset project which (you've guessed it!) uses the ASN.1 standards and encodings.


Monday, January 10, 2005

Building an Enterprise using Hosted Services I

Hopefully I'll get back to the service versioning problem later. But in the mean time I keep hitting against the idea of running a enterprise just by using hosted services. This seems very attractive - no software to install and manage, cut down on the amout of hardware you need etc.. So I thought it would be interesting to find out what types of business processes can be supported in this way. First one I found was Talaris who deal with procurement. Next was Salesforce.com - they deal with, obviously enough, sales processes (incuding CRM). One in Germany, Acinum who deals with various SCM procesess (careful, when I tried, the english version was not working).

I'm sure there are more and when I find them I'll blog them. Maybe you can run all your companies business processes just by using hosted services from different suppliers. But how will they all work together?

Thursday, January 06, 2005

Versioning Services

I becoming interested in how services can be versioned in a serviced orientated architecture. Doing a google shows quite a lot of activity in the area, only every one seems to think that the problem is restricted to web services, but a more about that later.

One article - Best practices for Web services versioning - from a couple of IBMers proposes versioning the XML namespaces of the messages schema (as defined in the WSDL) and then either issuing errors for requesters using the old schema of using some kind of routing mechanism which picks up on the namespace and directs to the correct version. The authors do, however, go on to say that products to do this type of routing for you are rare on the ground (they mention TalkingBlocks, but this seems to have been taken over by HP and, at a first glance, I couldn't find any explicit mention of how such routing is achieved). They then go on to show how the versioned service definitions can be stored in a UDDI compliant directory.

One consensus which seems to have formed is that you're on your own when it comes to service versioning.

As I mentioned before, the terms services and SOA seem to be synonymous with web services. But what about SOAs which use MOM or use REST styles of communication or mix them all together. Is there a general mechanism or architecture which can bring these all under the umbrella of one versioning scheme?

Wednesday, January 05, 2005

Java Development

Developers seem to be getting tired of the complexity associated with the J2EE architecture and as such are developing and using lightweight frameworks which use POJOs. A combination which seems to becoming popular is Struts for the (web) user interface, Spring for the code container and Hibernate for object/relational mapping.