Hi;

You're absolutely right that we require some sort of discovery mechanism for determining which extensions are supported by a given service.  I would argue that this is a general problem where we should be following the lead of the broader web services community.  That said, I don't think that that community has settled on anything yet -- people please correct me if I'm wrong on this -- and that we may well need to define our own mechanism in the interim.  We should make sure that we design things so that we can easily migrate to whatever the industry standardizes on whenever that becomes available.

Regarding your suggestion for having a runtime meta-language for marking content as "ok to ignore" or must be understood", I have several questions/requests:

Marvin.


-----Original Message-----
From: Karl Czajkowski [mailto:karlcz@univa.com]
Sent: Friday, April 28, 2006 11:09 PM
To: Marvin Theimer
Cc: ogsa-wg@ggf.org
Subject: Re: [ogsa-wg] Thoughts on extensions mechanisms for the HPC profile work

Marvin and all:

One additional comment I would add for consideration with extensible

content (operations, resource models, etc.) is that there is a

practical need for two complementary mechanisms that is often

overlooked:

   1. Runtime meta-language for marking criticality of extended content,

      e.g. marking an extension field as "OK to ignore" or "MUST be

      understood" so that a service in a heterogeneous environment can

      decide whether to proceed when it encounters some newfangled

      extension that is not implemeneted in the service.

      I would argue that there is no default policy that is appropriate

      for a majority of environments. Making the wrong choices on an

      extension-by-extension basis can cause faulty behavior and/or

      waste.

      I think there is a tendancy to use undisciplined "xsd:any" syntax

      in GGF documents lately, and I think it is a mistake.  Please

      see the createAgreement operation extensibility of recent

      WS-Agreement drafts for my take on what is needed at minimum.  We

      define an "OK to ignore" wrapper so that the service can

      disambiguate required versus optional extension fields in the

      input message.  Unwrapped extensions are assumed to be

      mandatory/critical.

   2. Discovery mechanisms for extensions supported by services. This

      obviously should complement what other discovery mechanisms are

      under discussion for job management.  This is what will enable

      efficient brokering/routing of requests in a heterogeneous

      environment.

The runtime disambiguation in (1) is more important if we have a

general "aspect oriented" extension mechanism where, as you mentioned,

there is a power-set of possible job descriptions.  With a more

limited profile/dialect approach, there would be a much smaller set of

defined combinations.  The art is probably finding the right hybrid of

some "major" dialects with "minor" aspects so that major contradictory

dialects cannot be mixed by accident, but simple minor extensions are

not forced into this extend-by-replacement methodology.


karl

--

Karl Czajkowski

karlcz@univa.com