Here's our description of responsibilities: (didn't get to controls) On Jul 14, 2004, at 11:01 AM, Frank Wuerthwein wrote: > > Use case: > Lothar creates a file, publishes it, and deletes it from his > local filesystem. > > echo "Hello World" > ~/Foo > myPublishService = "discover the publishing service for cms" > returnCode = myPublishService.Publish(~/Foo,Boo) > #"Boo" now exists in the "default" namespace of the cms publisher > rm -f ~/Foo > > Lothar then calls Ian up and tells him, > "check out Boo" that is published via the publishing service "cms" > which you can find via the discovery service of "osg". > > Ian then gets the file and reads it. > > myPublishService = "discover the publishing service for cms" > returnCode = myPublishService.Get(Boo,/tmp/Loo) > cat /tmp/Loo > "Hello World" > > Implicit in this use case is that myPublishService.Publish > not only registers the file but also stores the file using > some storage service. > Key: - (responsibility particular to this actor) o (responsibility general to either services or consumers) ? (responsibility of someone, guess on location) Lothar (File Owner) - Select which Publish Service to use from available set (might outsource this to some selection agent given criteria) - Negotiate contract with Publish Service (myPS) get current service offering definition from myPS check that SLA offered by myPS is acceptable broker SLA complaints from Ian - Maintain his Access Control Policy (ACP) for the file stored in myPS - Communicate with Ian name of file ("Boo") and name of myPS o Get authentication (authN) and authorization (authZ) tokens sufficient for requests made of myPS o Abide by Acceptable Use Policy (AUP) Ian (File Consumer) o Get AuthN and AuthZ tokens sufficient for request of myPS (and any other service) o Abide by Acceptable Use Policy (AUP) myPublishService (myPS) (Publish Service) - Maintain namespace consistency (for space containing "Boo") - Maintain the link between nameBoo and name in storage service namespace ("Goo") - Maintain the link between nameBoo and Lothar's ACP - Provide method for transfer of ownership - Provide method for Lothar's revision of ACP (unless ACP storage is outsourced) - Maintain contact method and service definition information in Discovery Service - Negotiate contract with Storage Service sufficient to meet its SLA requirements o Meet SLA (including participate in problem resolution method) o Authenticate and authorize (AA) Lothar sufficient for his request o AA Ian sufficient for his request o Provide informative error messages back to failed requests Does this service request sufficient AA tokens if missing (??) Storage Service - Maintain namespace consistency (for space containing "Goo") - Maintain the link between nameGoo and the physical storage name(s) - Enforce ACP specified in contract with myPS (perhaps not only give files to myPS ?) ? Maintain the Acceptable Use Policy (??) - Maintain the Privacy Policy o Meet SLA (including participate in problem resolution method) specify what level of reliability, protection from loss, etc. are promised specify what level of integrity checking is performed o Authenticate and authorize (AA) myPS sufficient for her request o Provide informative error messages back to failed requests Discovery Service - Maintain namespace of services - Maintain a link between namemyPS and its contact methods and service definition - Describe organization principle of returned matches between queries and service - Provide contact method description and service definitions for services matching a request ? Would hierarchies of grids come about by levels of discovery services ? o Provide informative error messages back to failed requests o Defend service against attacks aimed at: overflow of namespace entry size overflow of namespace dilution of namespace with bogus entries