App stuff
Robert Olson
olson at mcs.anl.gov
Thu Mar 13 10:05:32 CST 2003
At 09:32 AM 3/13/2003 -0600, Ivan R. Judson wrote:
>Rather than block on this much longer since I think we want it soon; I'm
>sending yo u my issues to think about. Then you can respond perhaps with
>some proposed solution. I can propose solutions too, however they're less
>likely to suit your taste than one you produce :-).
>
>First, simple thing: I think the Application Service wants to be an
>Application Factory. That's the pattern it implements. It's more clear to
>developers that way and it's not user exposed. It's to our advantage to
>leverage the clarity of common naming I think.
That's fine.
>Second, I'd like to minimize the design to keep things simple. The web
>service interface should only have 4 methods (and two of those I'd like to
>consider dropping) for join/leave (the two I don't think we _need_, although
>they are convenient), and get/set data. I don't think we need to support
>more complex interactions until we are asked to do so. Let's see what
>people build first.
Why shouldn't it have the data channel interface and state querying interfaces?
>Third, I'd like to encapsulate the client stuff in a class so the developer
>doesn't have to deal with the guts. It also affords us an opportunity to
>keep our decision about whether the app is a venueclient or not behind a
>clean interface so we can change our minds if we choose too.
That's fine; I think we need to well-document the protocol used in that
client object so that one could write an application in something other
than python.
>Fourth, I think I want to change our minds now on the venue client issue.
>I'm not adamant about it, but I think it's not advantageous to make all
>applications venue clients. They really aren't in a lot of ways and it feels
>like it muddy's our design to do that.
I don't feel strongly about it either way; we need to clarify the access
rules on the venue, however. The current setup uses a venue client to have
access to the list of applications in the venue.
>Anyhow, those are my four main concerns. If we can blow through this today
>and get a timeline for merging the branch that'd be great. I'm guessing it
>won't be for tomorrow, but perhaps it could be.
I've been avoiding doing anything with that branch as I'm assuming you or
Tom have state on your machines, as I've not seen any checkins on it since
you were working on the apps.
>Finally, We've gone back and forth on implementation vs interface, and I
>think it's clear (but easily forgotten) that we're building implementation.
Ah, I have to disagree strongly here. My understanding is that we're
building a system based on web services, which will use web services to
expose the interfaces to the system services. As such, if we want anyone
else to be able to use the system, we need to have very well-defined and
documented interfaces. The way to achieve that is to design the interfaces
first, and implement to the interfaces.
>We're only building interface where it's missing. We're really relying on
>pyGlobus (and later pyGridWare) for interface.
I don't understand what you mean here; we're building interface each time
we define a web service that might be used by a third party.
By a third party I mean, for instance, a C++-based client that is built
with gSOAP, or a java-based portal that needs to access venue data via the
java CoG kit.
>that being said, I don't
>think we need to explicitly build interface objects for all our
>implementation objects where they are only passing through with no added
>value.
The added value is the exporting of the interfaces via the hosting.pyGlobus
interface; if we change to a different mechanism the implementation code
can stay the same with new interfaces attached.
--bob
More information about the ag-dev
mailing list