
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