[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