On 30/03/07, Gregg Wonderly <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> 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?
Note the question was "think" not implement. I don't think in terms
of methods, that is the implementation detail.
>
> 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
Added to that, how do you add extra toppings to the resource and does
that make it a different 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
>