Insane !? Yea, it depends, the D... is in the details, as usual. Let me walk
along your examples, Gregg:
1) if an interface is contract at some levels, one has to say "...an interface
is contract at level XYZ". Simplifying the statement and skipping the 'level'
part leads to many problems one of which we face now - people took
{interface=contract} literally, w/o any 'level' conditions
2) "Graphical User "interface" is the contract, because it presents the set of
things that they can
do/have access to". Disagree, GUI is interface only because it does not
necessary carries semantics of the things it helps to access. The contract in
this case would sound as '...using this UI, you can operate on business
functionality ABC with Real World Effect XYZ". For example, a GUI Console for
Security Admin allows placing a user into security group.Business functionality
- obtaining access right to the asset - does not come or being represented by
the GUI, plus, RWE - ability to access resource is unrelated to that GUI. It is
assumed that the system would be able act in this or that way but it is not
expressed in the GUI at all. Thus, GUI is not a contract.
The trick here is in over-simplification: instead of saying that interface is a
PART of the contract (which immediately raises a question - What are other
parts?), people said "interface-is- the-contract", period. No needs to explain
other parts of contract. This is the trap. This is why we need now to talk to
everybody that BTW, interface is important but it is not a contract per se (and
NEVER was).
If an interface like Web Service would be the only contract, consumers were not
interested in anything else. In reality, it is only program/code does not
interested in anything but interface, while consumers are interested in many
other things except interface (besides the case with GUI where User Experience
is quite important and delivered via the UI).
- Michael
----- Original Message ----
From: Gregg Wonderly <[EMAIL PROTECTED]>
To: [email protected]
Sent: Friday, July 18, 2008 3:58:15 PM
Subject: Re: [service-orientated-architecture] Is Governance Killing SOA?
Michael Poulin wrote:
> I recall JavaOne in 2001 when Web Services were announced by Sun as a
> big thing. One of the populist interpretation of WS was
> "interface-is- the-contract" . Now, we are just dealing with marketing
> oversimplification. ..
At some level, the interface is the contract. At other levels, the
functionality and side effects are the contract represented by how different
pieces of software "interface" with each othere. For some, the Graphical User
"interface" is the contract, because it presents the set of things that they
can
do/have access to. I think it's insane to run around saying "the interface is
not the contract" when "interface" has so many meanings. The "interface" is
the
contract. The problem is that without an architectural view, you don't see all
the meanings of "interface" and hence have a hard time understanding the
requirements that your "interface" presents to my "interface".
Gregg Wonderly