[AM] MDA & web services/SOA

Jason Gorman <[email protected]> Wed, 25 Feb 2004 13:24:31 -0000
Newsgroups gmane.comp.programming.modeling.agile
Message-ID <[email protected]>
Folks
 
I've been working on a project recently to put together a set web services
for a client in the tourist industry, and it occured to me after a while
that this is one area where something like MDA could prove invaluable. It's
also an area where traditional analysis and design techniques may fall down.
 
For starters, there's the rather thorny problem of rules. We have a large
domain model, with plenty of juicy constraints that are enforced on our
servers, but when the clients generate their "dumb" proxies in Java, C# and
wotnot, they get none of that. The only way to know if they've broken some
rule is to "suck it and see" by calling the web method and seeing if our
system complains. From a performance perspective, given the sheer size of
some of these SOAP requests and the volumes involved, not the best solution.
 
Now, we have all our constraints neatly packaged away in classes that
inherit an interface, IRule (geddit?), which are applied to incoming domain
objects depending on their type. For a .NET client, we could quite easily
package all this up into a validator component to be used client-side. We
could also do it for Java, but would obviously have to rewrite 300+ rules to
achieve that against our own mock-up Java proxy. Then, we could do the same
for the VB/C++/COM clients. And so on...
 
There's also the problem of web service proxies not being able to take
behaviour with them, so my nice neat AddRating(rating : Rating) method on
Product stays strictly server-side. Client developers end up with a lot of
extra code to write to build the complex objects they must send to our
servers, and there's no point in their adding them to the proxy code itself
because their SOAP client tools will just overwrite all that the next time
they update the web reference. It's also a major imposition on people who
"don't need to adopt your web service" if they don't feel like it!
 
Now, if we could specify web methods in UML, and the constraints and
operations on intermediate objects (objects specified in the WSDL file that
defines the web service) so that a complete, functional proxy could be
created - well, that would have saved us a whole heap of trouble and would
be one less obstacle to the web service being adopted in the round.
 
I think the term being bandied about is Service Oriented Architecture - so
my question is this: does MDA go with SOA? And, given Gartner etc are
predicting SOA to be the next "big thing" (and I already see it happening in
the marketplace as clients scale the web service learning curve this year),
should we not now accept that MDA may also be an accompanying "megatrend"?
I'm already perceiving a real growth in interest in both of these - and in
connection with each other - in the marketplace this year. (I think it's all
bollocks, of course, but that's what I perceive...)
 
Jason Gorman
http://www.objectmonkey.com 

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: [email protected]

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: [email protected]

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------