[glue-wg] Endpoints and ComputingService, relationships between services. Some thoughs
Florido Paganelli
florido.paganelli at hep.lu.se
Mon Aug 20 08:39:16 EDT 2012
Hi Etienne,
thanks for sharing your opinion. More comments inline
On 2012-08-20 13:17, Etienne URBAH wrote:
> Florido,
>
> Concerning the publication of 2 RELATED services using the GLUE 2.0
> schema and its XML rendering(s) :
>
>
> I suggest to :
>
> - begin by searching solutions at the conceptual level using the GLUE
> 2.0 schema,
>
> - and only then to look for practical solutions using an XML rendering.
>
>
> GLUE 2.0 schema
> ---------------
> It is easy to define 1 single Endpoint exposing 2 Services.
>
the above is not my problem, unfortunately.
I will try to summarize my problem this way.
1) I have two services that are related, that is, I need endpoints from
both services for my task to be accomplished. These endpoints are
different endpoints for each service (not just a single endpoint).
2) I want to know, just by looking at GLUE2 records, how these services
are related and IF they are running in the same box.
One solution is to merge the two services, hide the fact that they are
on different boxes, and publish a single Service with all Endpoints on a
single box.
In this way i can see the relationship between the endpoints by
inspecting that they belong to the same service (the EndpointService
association) and I can also infer they are on the same machine.
Maybe it's not the same physical machine but for the purpose of the
client is fair enough.
The issue with this solution is to fit ComputingEndpoints and Endpoints
under the same Service (or ComputingService). Read later for comments on
this.
> Any information consumer will then know that these 2 Services are
> somehow related, and the precise relationship may be inferred from :
>
> - the respective values of the Capability Attribute for the 2 Services
> : For example 'security.delegation' and 'executionmanagement.jobmanager',
>
the above is unfortunately not enough. Capabilities are meant to
understand the purpose of a service, not its relationships with other
services.
In short, they tell something about a GLUE2 record itself and nothing
about related records.
> - the value of 1 occurrence of the Service.ID value of one Service :
> This value is the ID of the other Service.
>
Yes, i thought about service ID.
But if I set the same ID on two services running on different boxes,
then I am breaking universal uniqueness;
in fact, service1 running in box1 is NOT service2 running in box2.
Moreover, these services MIGHT be different if they have completely
different endpoints.
> XML renderings
> --------------
> - A flat XML rendering, having NO presupposed hierarchy, should permit
> the practical implementation of the above solution.
>
> - Any XML rendering having a presupposed hierarchy is a conceptual
> mistake. Your example is a clear Use Case proving this.
>
>
the comments I made about ComputingEndpoint and Endpoint with respect to
ComputingService are not an XML issue, but a design issue. It was a
structural requirement to have ComputingEndpoints inside a
ComputingService rather than Endpoints. It does not have anything to do
with hierarchical/flat XML renderings.
Besides, the comment I made about UML inheritance might be wrong.
Looking at the schema in page 22 I am not sure if an instance of an
Endpoint object can be related to a ComputingService or not. The three
entities (Endpoint, ComputingEndpoint, ComputingService) span across
three packages, and it's the scope of the packages that tells how
inheritance is realized by object instantiation. This aspect cannot be
specified in UML AFAIK.
By reading the descriptive text for ComputingService is clear what
Stephen said, that is, a ComputingService can only have ComputingEndpoints.
So to come back to the initial problems, if I have
Cheers,
Florido
>
>
> On Mon, 20/08/2012 12:01, Florido Paganelli wrote:
>> Hi all,
>>
>> I am in the situation that I would like to have a simple Endpoint
>> published within a ComputingService. However, besides UML inheritance
>> might allow this, the hierarchic xsd schema does not allow that, it only
>> allows ComputingEndpoints to be nested within ComputingServices.
>>
>> I don't know it this is good or bad; for you to understand how I got
>> here, I can give you this little problem to solve:
>>
>> Suppose the same machine hosts two RELATED services, that is, one needs
>> the other one for proper functionality. For example a delegation service
>> is needed to submit a job to a job execution service.
>>
>> Is there a way for an information consumer to infer/understand this
>> relationship? Can a client understand that (1) the services are related
>> and (2) that they are running in the same machine just by looking at the
>> GLUE2 records?
>>
>> One might think of associations, but it can easily be shown that they
>> don't solve the problem. We don't really have service-to-service
>> associations, just some kind of hierarchy between services.
>>
>> What do you think?
>
--
Florido Paganelli
Lund University - Particle Physics
ARC Middleware
EMI Project
More information about the glue-wg
mailing list