400 likes | 505 Views
Service Proforma. Middleware Workshop. Notes. Please complete as much of this proforma as possible – it will help make the workshop more informative & productive for us all.
E N D
Service Proforma Middleware Workshop
Notes • Please complete as much of this proforma as possible – it will help make the workshop more informative & productive for us all. • If you will be talking about more than one service feel free to add an overall architecture diagram showing the relationship between services. • Also, please provide a motivation slide for developing/using the service set.
Service: ICENI • End to end Grid middleware. Providing Launching, Scheduling, Reservation and inter-application communication. • URL: www.lesc.doc.ic.ac.uk/iceni • Licence: ICENI, based on Sun open source licence • Support: Web site / mailing list • SOA Model:Jini
Service: Scheduling • Takes workflow (Execution Plan) and Job descriptions (JDML) and determines the best place to deploy on the grid.
Service Operations: Scheduling • operation name: launchJob • Description: Takes a workflow, determines where to run each component within it and deploys over the Grid. • IN: XML document, either Execution Plan (workflow) or JDML (single job) • OUT: Concrete Execution Plan (XML) detailing where the component (job) has been launched to.
Service Operations: Scheduling • operation name: generateQuote • Description: Takes a workflow, determines where to run each component within it and inform requester of this decision. • IN: XML document, either Execution Plan (workflow) or JDML (single job) • OUT: Concrete Execution Plan (XML) detailing where the component (job) would be launched to.
Service: Performance • Provides performance information. • Collects performance information. • Processes performance information.
Service Operations: Performance • operation name: register • Description: Register an application for monitoring while it runs. • IN: String name for the job. • OUT: String, unique id for the performance monitoring
Service Operations: Performance • operation name: addEP • Description: Takes a workflow for an application and records it for use later on (processing). • IN: XML: Concrete Execution Plan (workflow), unique id provided by register • OUT: null
Service Operations: Performance • operation name: getActivityTime • Description: Request information from the Performance repository about how long an activity is expected to take. • IN: Component description, Resource description and activity name. (string) • Optional IN: Share count, Problem specific characteristics (name value pairs) • OUT: Either a single time value or a set of timings if optional values not used.
Service Operations: Performance • operation name: getProblemCharacteristics • Description: Find out what problem space characteristics (and types) can be used for a given case. • IN: Component description (string) • OUT: Set of name type pairings.
Service Operations: Performance • operation name: Performance Events • Description: Events generated by applications listened to by the Performance Service. • Data Structure: Unique id for the performance monitoring of the application, Component, Time, Resource, type of event (start, port or internal)
Service: Launching • Provides an abstract interface for launching jobs onto resources.
Service Operations: Launching • operation name: launchJob • Description: Takes a job description JDML and launches it on a resource controlled by this service. • IN: XML document JDML • OUT: XML document describing if job launched successfully.
Service Operations: Launching • operation name: getResources • Description: Returns a set of resource id’s that this service can deploy onto. • IN: User Credentials (optional). • OUT: Set of resource id’s. If a user certificate was provided then only resources the user can use are returned.
Service Operations: Launching • operation name: getResourceDescription • Description: Returns a full description of the resource. • IN: The id of the resource, User Credentials (optional) • OUT: XML document describing the Resource. Empty if user not allowed to access or resource doesn’t exist.
Service Operations: Launching • operation name: getResourceAttribute • Description: Request a single attribute about a resource. • IN: Resource id, attribute name and User Credentials (optional). • OUT: String (may be XML doc) for the named attribute. Empty if resource/attribute is not found or user doesn’t have access.
Service Operations: Launching • operation name: getLocations • Description: Returns a human readable list of the names of the resources. • IN: User Credentials (optional). • OUT: List of names. If user credentials used only those the user can access are returned.
Service: Launching with Reservation • Provides access to reservation services of resources exposed through a launcher.
Service Operations: Launching with Reservation • operation name: createReservation • Description: Create a reservation with a resource. • IN: Agreement document (XML) • OUT: The modified Agreement document and a reservation id.
Service Operations: Launching with Reservation • operation name: renegotiateAgreement • Description: Attempt to modify an agreement. • IN: Agreement document (XML). • OUT: Agreement document (XML) either conforming change or offering an alternative.
Service Operations: Launching with Reservation • operation name: cancelReservation • Description: Cancel a previously made agreement. • IN: The reservation id. • OUT: XML indicating success or failure.
Service Operations: Launching with Reservation • operation name: createHold • Description: Create a time limited reservation that will expire if not confirmed in time. • IN: Agreement document (XML) • OUT: Modified Agreement document and a Hold identity
Service Operations: Launching with Reservations • operation name: confirmHold • Description: Convert a hold into a permanent reservation. • IN: The hold id. • OUT: XML conformation of success/failure.
Service Operations: Launching with Reservations • operation name: cancelHold • Description: Cancel a hold. • IN: The hold id. • OUT: XML conformation of success/failure.
Service Operations: Reservations • operation name: makeReservation • Description: Takes a concrete workflow (Execution Plan) and attempts to reserve all the required resources. • IN: XML document Execution Plan (workflow). • OUT: Execution Plan (XML) detailing the reservations made.
Service Operations: Reservations • operation name: cancelReservation • Description: Takes a resource id and reservation id and cancels it. These can be found in XML document returned from makeReservation. • IN: resource id, reservation id. • OUT: XML conformation of success/failure
Service: Reservation Engine • Allows abstract access to the low level DRM specific reservation functionality.
Service Operations: Reservation Engine • operation name: makeReservation • Description: Takes XML reservation request (user credentials, interval) and attempts to reserve. • IN: XML document – Reservation Request. • OUT: Modified Reservation Request, either confirming details or offering an alternative.
Service Operations: Reservation Engine • operation name: cancelReservation • Description: Takes a reservation id and attempts to cancel it. • IN: Reservation id. • OUT: XML conformation of success/failure.
Service Operations: Reservation Engine • operation name: makeHold • Description: Make a time limited reservation. • IN: XML reservation request (user credentials, interval). • OUT: Modified Reservation Request, either confirming details or offering an alternative.
Service Operations: Reservation Engine • operation name: cancelHold • Description: Cancel a hold. • IN: Hold id. • OUT: XML conformation of success/failure.
Service Operations: Reservation Engine • operation name: confirmHold • Description: Convert a hold into a normal reservation. • IN: Hold id. • OUT: XML conformation of success/failure.
What do you use to build your service?(i.e. How ‘standard’ is your service?)NB:A low score means less risk & more mainstream • Widely Implemented Standard Specification (1pt) • <Demonstrable Multiple Implementations, e.g. SOAP, WSDL> • Implemented draft specification (2pt) • <Specification in standards body and supported by most/many companies. One/few implementations exist (e.g., WS-Security, BPEL)> • Implemented draft specification (3pt) • <Specification in standards body but alternatives exist. Industry is divided. One/few implementations exist. (e.g., Transactions, coordination, notification, etc.). • Implemented proposal (4pt) • An implementation of an idea, a proposal but not submitted to standards body yet (e.g., WS-Addressing, WS-Trust, etc.) • Non-implemented proposal (5pt) • <An idea that exits as a white paper, but no code and no specification details> • Concept (6pt) • <An idea that exists only as power point slides!!> • TOTAL: JINI, 1pt, Concept 6pt = 7pt.
Service Dependencies • What else does your service depend on (i.e. external dependencies)? • Logging : Java Logging • What does your implementation depend on? • Languages : Java • JINI based.
AAA & Security • What authentication mechanism do you use? • X509 certificates based. • What authorisation mechanism do you use? • From JINI infrastructure. • What accounting mechanism do you use? • None at present. • Does service interaction need to be encrypted? • If these are not used now, will they be in the future?
Exploiting the Service Architecture • What features from your ‘plumbing’ do you use in your service? • Event notification • Meta-data • Registry discovery/advertisement
Service Activity • Multiple interaction or single user? • Multiple interaction • Throughput (1/per day or 100/per second?) • ~ 10/per min. • Typical data volume moved in • Typical data volume moved out • Depends on job.
Service Failure • Required Reliability • Failure semantics? • Positive ack • Required Persistence • No current persistence. • Required Availability • One of many.
Required Service Management • Remote access to: • Performance • Progress (limited at present).