Hi folks

I have been looking again this week at a problem I last tried to solve in 2002, and would be interested to get the response of group members to my findings.  Basically, I encountered a problem with Web service invocation then that still appears to be unsolved, and is perhaps unsolvable.

What I am seeking to incorporate into a BPM software product is true "dynamic invocation" of services - where, as part of business process execution, a user (or the software itself) selects a new Web service from a registry and calls it.  In other words, the selection of an arbitrary service is done at runtime, rather than being set up from a workbench before the process is actually launched.

You can achieve this with current technology if the service selected has "simple" parameters and return values: each one a String, Number, Date or Boolean.  RADRunner, for example, has permitted this for years now - the runtime selection and invocation of Web services with simple parameters - but I couldn't fnd a way to do it with "complex" parameters/return values (i.e., arbitrary XML documents).  If the service, like most enterprise services, has complex parameters you are stuffed, since the service client does not know how to make objects corresponding to these documents for programmatic use.

In fact, when I was trying to get RADRunner to do dynamic invocation of Web services with complex parameters, the only way I could find was to use a piece of technology from IBM's "Alphaworks" - their testbed for potential new technologies, that are open for anyone to try out.  This technology, known as "JROM", claimed to be able to make the necessary programmatic objects from arbitrary XML documents.  Used in conjunction with another piece of technology from IBM that they gave to Apache (WSIF), it seemed as though JROM provided the missing piece of the picture:

http://ws.apache.org/wsif/faq.html#faq-N100E5 (Sample DynamicInvoker and Complex Type handling in WSIF)

So, I started badgering people in IBM about a commercial license to JROM.  I even met with a key player in the development team.  Several years later, JROM has not moved on since the last release in 2002 (I looked again yesterday) - and IBM have neither offered me a commercial license, built JROM into a commercial product of their own nor donated it to Apache (the latter approach being the natural outcome that the people I spoke to seemed to expect).

Why?  I think IBM are aware that JROM does not work.  Further, I think there are technical reasons why it cannot work.  There is just not enough information in an XML document to tell you how to convert it into an object.  It's a form of ontology problem, in a way - you don't know how to interpret the fields in a given XML document without someone telling you, via (for example) a hand-written mapping into a Java class.

What this means, is that a key vision underpinning the whole WS effort - of a world of freewheeling enterprise applications that dynamically pick up and use Web services discovered in a registry - may never be achievable.  The only way to do it is to use a specific technology as your client (e.g., a Java framework such as WSIF) and prime it at development time (not runtime) with the information necessary to call specific services (the mappings from their complex type parameters into programmatic objects).

Comments, anyone?  In particular, does anyone know of any .NET technology that claims to offer true runtime invocation?  I am focused on Java/open source technologies and have only peripheral knowledge of the MS stuff.
-- 

All the best
Keith

http://keith.harrison-broninski.info



YAHOO! GROUPS LINKS




Reply via email to