Steve Jones wrote:
> On 30 Mar 2007 01:46:38 -0700, Jan Algermissen <[EMAIL PROTECTED]
> <mailto:algermissen1971%40mac.com>> wrote:
> > IWO, do you think in terms of 'business interaction' == method invocation?
>
> God no.
So, I'd like to know more about which programming languages don't allow a
developer to write a single HTTP operation as a method call in the client. Is
there a different programming paradigm used by some languges?
If I wanted to order a pizza in Java, I'd create a URL and open the connection
and read the results. That's about 4 different method invocations. If I
wanted
to order a pizza with an RMI call, I'd have the Pizza object at hand, and a
reference to the Remote object. I'd then just invoke the method to place the
order.
Jan, are you suggesting that somehow those two different mechanisms are not
capable of the same thing?
The HTTP pizza order requires a few things be known.
o What's the resource
o What data is required in what format
The RMI pizza order, if it used Jini with just RMI from an existing client,
would require:
o What restaurants understand the version of the Order interface that my
client knows about.
That is, the two questions needing to be answered for HTTP, are implicitly one
question in Jini because I will do the lookup by interface, so I get the
resource as a result of that, and because of the method signatures involved,
I've stated the type of data that I know how to send.
If on the other hand, I used something like my Jini desktop client that is
ServiceUI aware, I'd lookup the service using attributes instead such as.
new Entry[] {
new FoodService( FoodType.PIZZA ), // Looking for pizza services
new UIDescriptor( // Want ones that provide a UI
MainUI.ROLE, // Want the main ui, not admin
JComponentFactory.TOOLKIT, // Swing compatible
null, // no specific attributes
null // no specific factory
)
}
Now, I get a GUI that just lets me select some stuff and submit my order. I
have no earthly idea, nor do I need to know, how the order is actually
submitted. Through Jini security, I will have specified some authentication
constraints to control how I tell them about who I am (during service access),
and I'll have configure policy to control how their softare interacts on my
machine with the available resources.
In this case, the uniformity of the client/server interaction is not a
protocol,
it is a set of capabilities that is negociated as part of the service
discovery, and thus we have some control, if needed, of how those negociations
proceed, and when we find something, we know we can use it.
Gregg Wonderly