Hi Gervas,

hmm..there seemse to me a misunderstanding. Using a genric interface  
does not mean to change existing application's interfaces. E.g. it  
does not mean messing with that assembler code to provide an HTTP  
interface.

The questions is what interface to expose once you have independent  
components talking to each other. If you stick to the assembler  
interface for *that* purpose, you'd get all sorts of coupling.

IMHO there is no dispute about whether or not to hide such legacy  
interfaces with a remote facade (aka service), the dispute is only  
about the type of interface those facades should expose.

When you compare

(1)
class MapService {
        public Map getUSAMap();
        public Map getEuropeMap();
}

and

(2)

class MapService {
        public Map getMap(string country);
}

the latter gives you looser coupling and thus greater evolvability.

class MapService {
        public Message get();
}

just takes that too the extreme, moving all non-generic application  
semantics into the data formats - where they are IMHO much easier to  
manage than at the interface level.

But I must admit that (despite being pro-REST right from the  
beginning) it has taken me at least a year of in-depth study to  
perform the shift of mind. Actually, it did not happen before I was  
facing distributed systems requirements that had extremely high  
organisational cost of upgrading clients once they would have been  
deployed.

What is missing I guess is an explanation of the generic interface  
approach that lets one grasp the thing right away; well...let's say  
at least as fast as OO.

Jan

On Feb 28, 2006, at 5:29 PM, Gervas Douglas wrote:

>
> I was not suggesting that one should take pain to keep the legacy
> interfaces; in the example I quoted there are probably no interfaces
> to keep apart from 3270 screen feeds.  It is however sometimes worth
> conserving the application logic and functionality, or at least a
> significant part of it.  If the truth be known, this legacy logic and
> functionality is not always fully understood by the current IT staff.
>
> To give an example outside the sphere of enterprise apps, I knew a
> South African company with some brilliant comms technology written in
> assembler.  This stuff had no equal anywhere else at the time.  Some
> of this code, the programmers (not even the highly technical managing
> director - brilliant but mad) did not dare touch.  Why? Because no one
> understood the algorithms except the brilliant, mad Englishman who had
> written the code.  There was enough technical sanity in the firm not
> to meddle where dangerous!



>
> I suspect that as new technologies, not yet envisaged, come online,  
> you may well eventually have to change your interfaces everywhere.   
> Having built sound SOA structures, many of your application modules  
> will live on, albeit in new skins.
>
> Gervas
>
>> Jan
>>
>>
> ______________________________________________________________________ 
> __
>> _______________
>> Jan Algermissen, Consultant & Programmer
>> http://jalgermissen.com
>> Tugboat Consulting, 'Applying Web technology to enterprise IT'
>> http://www.tugboat.de
>>
>
>
>
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>

________________________________________________________________________ 
_______________
Jan Algermissen, Consultant & Programmer                         
http://jalgermissen.com
Tugboat Consulting, 'Applying Web technology to enterprise IT'   
http://www.tugboat.de








 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/service-orientated-architecture/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to