Service Proforma Middleware Workshop

advertisement
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).
Related documents
Download