Minimal Infrastructure:SOA, WS-Addressing, WSRF, WSDL & Naming: Minimal Infrastructure: SOA, WS-Addressing, WSRF, WSDL & Naming Stephen Davey, NeSC 1st NextGRID Training Course
National e-Science Centre (NeSC), Edinburgh, 7th March 2006
Contributors & Acknowledgments: Contributors & Acknowledgments This presentation is based on work by
Richard Hopkins, “Web Services Resource Framework - WSRF.” http://www.egee.nesc.ac.uk/trgmat/events/otherNA3/05-02-23-IntroWSRF-Edinburgh-UK/talks/WSRF.ppt.
With additional information from
“The Joy of Web Services”. http://vermont.mvc.mcc.ac.uk/JoyOfWebServices.ppt. Author: M. McKeown.
“Foundation Grid Services using WSRF and OGSA base profile.” http://www.egee.nesc.ac.uk/trgmat/events/otherNA3/05-07-10-SummerSchool-Naples-Italy/talks/Tues_7_19.ppt. Author: D. Snelling.
“Web Services, WSRF and GT4”. http://gks05.fzk.de/upload/lectures/Mineter_WS_WSRF_GT4_v1.pdf. Author: M. Mineter.
These slides have been compiled / edited by
Stephen Davey
Introduction - Aim & Scope: Introduction - Aim & Scope These slides intend to cover the following:
NextGRID Minimal Infrastructure
Service-Oriented Architecture
OGSA WSRF Base Profile 1.0
WSDL 1.1
Naming
They are at an Introductory level, aimed at people with some knowledge in this area.
Introduction - Contents: Introduction - Contents What is a Service-Oriented Architecture?
Web services stack.
SOAP.
OGSA WSRF Basic Profile 1.0
WS-Addressing
WS-ResourceProperties
WS-ResourceLifetime
WS-BaseNotification
WS-BaseFaults
WSDL 1.1
Naming
What is a Service-Oriented Architecture?: What is a Service-Oriented Architecture? Service-Oriented Architecture (SOA)
This term is increasingly used to refer to an architectural style of building reliable distributed systems that deliver functionality as services, with the additional emphasis on loose coupling between interacting services.
Service
A software component participating in a service-oriented architecture that provides functionality and/or participates in realizing one or more capabilities.
[OGSA Glossary v1.0]
What is a Service?: What is a Service? In computing terms, a ‘service’ is simply a function that can be invoked via a well-defined remote interface.
[OGSI primer]
Systems interact with a Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.
[W3C – Web Services Architecture]
Benefits of Web Services & SOA: Benefits of Web Services & SOA Benefits
Allows us to hide the details of how a service is implemented; only URL and data types are required
It is largely irrelevant to the client whether the service is developed with Java or ASP.NET or if it is running on Windows, Linux or any other platform
Key Service Oriented Principles
Composable
Simple parts
Intended for distributed systems
Acknowledgement of boundaries
SOA Triangle: SOA Triangle Service Registry Service Requestor Service Provider Find (Discover) Publish Bind (Interact) Service Description
Web services stack: Web services stack Application rpcrouter SOAP HTTP TCP/IP Infrastructure
(Data link) Application (servlet) Web server SOAP HTTP TCP/IP Infrastructure
(Data link)
SOAP: SOAP “SOAP provides a simple lightweight mechanism for exchanging structured and typed information between peers in a decentralized, distributed environment using XML” [Microsoft]
SOAP over HTTP: SOAP over HTTP HTTP Headers
XML…
XML payload…
SOAP Envelope Header Body Message Pay Load
SOAP Structure: SOAP Structure Envelope – contains the entire SOAP message.
Header – (optional) contains header information.
Body – contains the application pay load.
Message Payload – the part of the message that is intended for the application.
Sample SOAP: Sample SOAP
Invokes the “getHostname” operation on the Web service.
OGSA WSRF Base Profile 1.0: OGSA WSRF Base Profile 1.0 Key parts mandated in the profile:
Addressing:
WS-Addressing endpoint references and places some constraints on their structure, thus enabling interoperable addressing.
Resource Properties:
resource must support certain resource properties,
support for certain operations that are optional in the WS-ResourceProperties specifications.
Resource Lifetime:
ImmediateResourceTermination portType, and
ScheduledResourceTermination portType (and their associated operations and properties).
Base Notification:
NotificationProducer portType (and its associated operations and properties to provide notification using a publish/subscribe pattern).
Base Faults:
WS-BaseFaults (and extends the fault structure).
WS-Addressing: WS-Addressing Before WS-Addressing
WS-Addressing specification
Endpoint References
EPRs and SOAP
Message Addressing Properties (headers)
To, From, ReplyTo, FaultTo, Action, MessageID, RelatesTo.
Reference parameters.
Anonymous & None URIs.
Before WS-Addressing : Before WS-Addressing To locate a web service had to ask for the URL of the endpoint or the WSDL.
Plus might need to identify the web services instance.
Could use a URL with a session identifier (e.g. appending ?resourceID=123).
Could add extra information in SOAP headers, but now no longer bound to one specific transport protocol.
Endpoint References (EPRs): Endpoint References (EPRs) Web service endpoint is a entity to which Web service messages can be addressed.
Endpoint references convey the information needed to address a Web service endpoint.
EPR is basically a URL wrapped by some XML elements.
xs:anyURI (1..1)
xs:any* ?
xs:any*?
EPRs and SOAP: EPRs and SOAP How does a Service return a reference to a new entity?
Does so by returning an EPR:
E.g. An EPR with an added ReferenceParameters element.
http://host/WidgetService
123
Message Addressing Properties: Message Addressing Properties To
Target Web service's URI. Typically same as the HTTP request's URL, but it is not required to be.
http://host/WidgetService
The To header should be the same value as the element when using an EPR.
From
EPR of the message's (source) sender.
Used in cases where an acknowledgement needs to be sent back to the sender (WS-ReliableMessage).
http://client/myClient
Message Addressing (cont.): Message Addressing (cont.) ReplyTo
Any response from the Web service should be sent to the ReplyTo EPR.
From and ReplyTo can be two distinct EPRs, the message's sender might not be the endpoint that is meant to receive the response.
http://client/myReceiver
FaultTo
If the response to a message is a SOAP fault, the fault should be sent to the EPR in the FaultTo header.
http://client/FaultCatcher
Message Addressing (cont. 2): Message Addressing (cont. 2) MessageID
The MessageID is a URI that uniquely identifies a message.
urn:uuid:12-34-56-78
Action
The Action header is the in-envelope version of the SOAP HTTP Action header. REQUIRED.
http://host/widgetOp
RelatesTo
Typically used on response messages to indicate that it is related to a previously-known message and to define that relationship.
urn:uuid:12-34-56-78
Constructing SOAP Messages: Constructing SOAP Messages value is copied into the header block.
Reference parameters.
Each element in (including all of that elements children, attributes and namespaces) is copied literally as header blocks in the SOAP message.
Each header block added as a result of the above rule is annotated with wsa:IsReferenceParameter = ‘true’.
Anonymous & None URIs: Anonymous & None URIs http://www.w3.org/2005/08/addressing/anonymous
In all of the headers can use a special anonymous URI.
When you use this URI, you are indicating that there is no real endpoint available for this address.
http://www.w3.org/2005/08/addressing/none
Messages sent to EPRs whose address is this value MUST be discarded.
Typically used to designate that no reply or fault message should be sent.
WS-Addressing: WS-Addressing WS-Addressing specification –
requires the Address element,
but resourceID is specific to the WidgetService.
SOAP envelope of future requests to this EPR would take the form:
http://host/WidgetService
123
...
Introduction - Contents: Introduction - Contents What is a Service-Oriented Architecture?
Web services stack.
SOAP.
OGSA WSRF Basic Profile 1.0
WS-Addressing
WS-ResourceProperties
WS-ResourceLifetime
WS-BaseNotification
WS-BaseFaults
WSDL 1.1
Naming
Web Services Resource Framework: Web Services Resource Framework Stateful Resources
Web service itself (front end) is stateless.
Maintains state in a back-end.
Service request identifies the specific resource.
WSRF is for Persistent State (stateful resource)
One message exchange produces a long-lived change in state which affects other message exchanges.
WSRF Architecture: WSRF Architecture A stateful (WS) resource
Is a repository for persistent state
Like an object in an object-oriented architecture.
Has state that comprises a set of state data
Each item of state data is a resource property.
A resource property is expressible as an XML document, which can in principle be retrieved and updated.
E.g. Bank Account has properties:
Balance owed, Credit limit, Latest statement, …
Differences from Object-Oriented Architecture
O-O object has just one interface, and is defined by the operations on it.
The type of a WS-resource is
The type of its resource properties document
Not the signatures of its operations
WSRF Architecture: WSRF Architecture A stateful (WS) resource
….
Has a well-defined life-cycle – creation and destruction
Destruction can be explicit or scheduled
Can be known and acted upon by one or more Web Services
Has a globally unique identifier –
http://www.company/CreditCard#Ac7
Can be passed between services to identify the resource
Is associated with one or more web services, providing interfaces for manipulating it.
A WS-Resource comprises: its service; the resource itself
http://docs.oasis-open.org/wsrf/wsrf-ws_resource-1.2-spec-cs-01.pdf
Running Example: Running Example Seat Booking System for a Specific Event
Resource – Event6
Properties
Places – number of seats in total
Held – number of seats with provisional bookings
Booked – number of seats with confirmed bookings
Service
End-point – www.events.org/E6
Operations
Get – returns the resource properties
Reserve – creates a reservation resource
….
Running Example: Running Example Resource – Reservation (i.e. a booking)
Properties –
RNo – reservation number Identifier, not an actual property
Firm - number of seats with confirmed booking
Hold – number of seats with provisional booking
Seats – list of seat numbers allocated
Arrival – expected time of arrival
Service
End-point - www.events.org/E6res
Operations
Get – retrieve the properties
SetArrival – change/set the Arrival property
Change – reset reservation properties (firm=n; hold=m)
….
Referencing: Referencing Resource-qualified endpoint reference – the service address and specific resource identifier – part of WS-Addressing Standard.
If service has only one resource instance (1:1) don’t need to include resource identifier in address. www.events.org/E6 places: 120
held: 6
booked: 8 1:* reserve(3, “hold”) firm:0
hold:3
seats:
K1, K2, K3
arrival: nil www.events.org/E6res create (www.events.org/E6 :: X3) Resource qualified
End-point reference 1:1 Change(Firm=2, Hold=0) RNo: X3 www.events.org/E6 www.events.org/E6res :: X3
Multiply-serviced Resource: Multiply-serviced Resource Two end-point references
www.events.org/E6res
www.events.org/E6admin
Each providing a different interface to the same set of resource instances firm:0
hold:3
seats:
K1, K2, K3
arrival: nil www.events.org/E6res Change(Firm=2, Hold=0) RNo: X3 www.events.org/E6res :: X3 www.events.org/E6admin clearHolds(1) www.events.org/E6admin :: X3 - Get
- SetArrival
- Change - ClearHolds
- ChangeSeats
- Get
Operations on Resource Properties: Operations on Resource Properties WS-ResourceProperties
http://docs.oasis-open.org/wsrf/wsrf-ws_resource_properties-1.2-spec-pr-01.pdf
GetResourcePropertyDocument - retrieve the values of all resource properties of the WS-Resource.
GetResourceProperty – get single property. Mandatory.
GetMultipleResourceProperties – get multiple properties.
QueryResourceProperties - query resource properties document using a query expression such as XPath.
PutResourcePropertyDocument – replace all properties.
SetResourceProperties - modify the values of multiple resource properties – Insert, Update, Delete.
InsertResourceProperties - insert new values of a single resource property.
UpdateResourceProperties - replace the existing values of a single resource property.
DeleteResourceProperties - removal of all values of a single resource property.
GetResourceProperty: GetResourceProperty Returns all elements with the specified element name
http://...wsrf.../GetResourceProperty
www.events.org/E6res
X7
tns:seat
http://...wsrf.../ GetResourcePropertyResponse
www. … requestor … X7
K1 K2 K3
Get Multiple Resource Properties: Get Multiple Resource Properties Must specify at least one
Order in response should follow order in request
http://...wsrf.../GetMultipleResourceProperties
www.events.org/E6res
X7
tns:firm
tns:seat
http://...wsrf.../ GetResourcePropertyResponse
www. … requestor … X7
3 K1 K2 K3
SetResourceProperties: SetResourceProperties A number of SetRequestComponents, each – insert, update, delete
Must be done in given order – could have several for same element name
If failure on one:
Must not do any subsequent ones
Final result may reflect the partial processing
Final result may be the original
http://...wsrf.../SetResourceProperties
www.events.org/E6res.
X7
0 4
>J9 ….
SetResourceProperties: SetResourceProperties Faults
ResourceUnknownFault
InvalidResourcePropertiesRequestContent
The result would be a properties document which is invalid, e.g. too many seats if maxoccurrs=3
UnableToModifyResourceProperty – a read-only resource
InvalidResourcePropertyQName
SetResourcePropertyRequestFailed – one or more components failed
… to be defined
Fault message must indicate whether effects of processing non-failed components were restored
firm:0
hold:3
seats:
K1, K2, K3
arrival: 15:00:00 RNo: X3 firm:4
hold:0
seats:
K1, K2, K3, J9 RNo: X3 0
4
>J9
Introduction - Contents: Introduction - Contents What is a Service-Oriented Architecture?
Web services stack.
SOAP.
OGSA WSRF Basic Profile 1.0
WS-Addressing
WS-ResourceProperties
WS-ResourceLifetime
WS-BaseNotification
WS-BaseFaults
WSDL 1.1
Naming
WS-ResourceLifetime: WS-ResourceLifetime Lifetime of a WS-Resource is defined as the period between its instantiation and its destruction.
Specification defines standard by which:
WS-Resource can be destroyed.
Lifetime can be monitored.
Specification does not prescribe the means by which a WS-Resource is created.
Immediate Destruction: Immediate Destruction Destroy
. . .
http://docs.oasis-open.org/wsrf/rlw-1/ImmediateResourceTermination/DestroyRequest
. . .
Scheduled Destruction: Scheduled Destruction SetTerminationTime
RequestedTerminationTime
RequestedLifetimeDuration
Querying Current Time
Clock synchronization between the service requestor and the service provider.
Resource properties:
Termination Time Expiration: Termination Time Expiration If service requestor fails to successfully update the termination time of a WS-Resource before the termination time expires, the WS-Resource MAY be destroyed and therefore no longer be accessible.
An implementation MAY delay destruction of the WS-Resource at its own discretion.
Resource Destruction: Resource Destruction Immediate Destruction
Send a destroy message to the resource-qualified endpoint
Thereafter any attempt to access it must result in a Unknown Resource fault message – this is a synchronisation point – the reply to the destroy
The consumer could decide to destroy the reservation resource – cancelling the reservation
Scheduled Destruction
Can request a modification in the termination time
Extend the provisional booking for another 2 days
If termination time is in the past this may be interpreted as an immediate asynchronous destroy
A resourced service should have a destruction policy which does not depend on action by the consumer service
Consumer may disappear at any time
Consumer may be impolite
Risk of having the physical resources never recovered, and performance consequences of large number of useless resource instances.
Introduction - Contents: Introduction - Contents What is a Service-Oriented Architecture?
Web services stack.
SOAP.
OGSA WSRF Basic Profile 1.0
WS-Addressing
WS-ResourceProperties
WS-ResourceLifetime
WS-BaseNotification
WS-BaseFaults
WSDL 1.1
Naming
WS-Notification: WS-Notification WS – BaseNotification
WS – Topics
WS – BrokeredNotification
Notification: Notification WS-Notification is draft standards dealing with the
The Notification-based Interaction pattern – Event Driven
Model - Subscribing to a Notification service on some topics
E.g. My boss (Subscriber) informs a press-cutting service (Publisher) that it is to notify me (Consumer) of articles on WebServices (Topic) appearing in the popular press (Producer)
Topic Space - a forest of topic Trees
Publisher – distributes notification messages according to subscriptions
Producer – generates notification messages for Consumers
Can combine Producer and publisher - same service generates the event and sends it to the subscribers; otherwise Publisher is a Broker
Can separate them – producer generates the notification and sends it to a broker who distributes it according to subscriptions
Subscriber creates a subscription for a consumer in a Publisher
Consumer receives notification messages (may combine with subscriber) webServices WSRF WSDL travel USA EU
Notification and WSRF: Notification and WSRF NotificationProducer Interface
Notify
Subscribe
GetCurrentMessage
PullPoint Interface
SubscriptionManager Interface
Relation to WSRF
A subscription is a resource
A resourced service can be producer/publisher:
To notify consumers of changes in state of the resource
Value change
Destruction
Destruction Notification Pattern: Destruction Notification Pattern WS-Notification standard deals with this
Subscribe to the resource
Resource notifies subscriber www.events.org/E6 places: 120
held: 6
booked: 8 reserve(3, firm) firm:3
hold:0
… www.events.org/E6res Subscribe(topic=ResourceTermination) RNo: X3 www.events.org/E6res :: X3 (www.events.org/E6 :: X3) EventCancelled www.events.org/E6res : X3 Notify(“Event Cancelled”, dateTime)
Destruction Notification: Destruction Notification If Resource chooses to support the pattern of notifying interested parties when it is destroyed
And to use the WS-Notification standard,
Then must follow this standard
The TopicSpace = “ResourceLifetime”
The Topic name=“ResourceTermination”
The notification message must include the following element
xsd:dateTime
xsd:any ?
Value Change Notification : Value Change Notification Can similarly subscribe to being notified of value changes for the resource.
If the resource supports the property value-change notification pattern, and it uses WS-Notification then it must follow these standards
Subscription can be a sub-set of the resource properties
E.g. wanting notification of changes in seat numbers
The notification message must contain an element of the form
K1 K2 K3
K1 K2 J4 One such notification for every value change
OldValue – if nil, there was no value; if absent the old value was not recorded
NewValue – can be nil
!!!Standard does not actually allow multiple components!!!
Introduction - Contents: Introduction - Contents What is a Service-Oriented Architecture?
Web services stack.
SOAP.
OGSA WSRF Basic Profile 1.0
WS-Addressing
WS-ResourceProperties
WS-ResourceLifetime
WS-BaseNotification
WS-BaseFaults
WSDL 1.1
Naming
WS-BaseFaults: WS-BaseFaults Difficult when interfaces use different conventions for representing common information in fault messages.
So specify Web Service fault messages in a common way.
WS-BaseFaults defines an XML Schema type for a base fault, along with rules for how this fault type is used by Web Services.
Base Fault Type: Base Fault Type Base fault has the following syntax:
xsd:dateTime
wsa:EndpointReferenceType
?
xsd:anyType
?
xsd:string *
{any} ?
{any}*
Introduction - Contents: Introduction - Contents What is a Service-Oriented Architecture?
Web services stack.
SOAP.
OGSA WSRF Basic Profile 1.0
WS-Addressing
WS-ResourceProperties
WS-ResourceLifetime
WS-BaseNotification
WS-BaseFaults
WSDL 1.1
Naming
What is WSDL?: What is WSDL? In XML format
For describing network services
Which operate either on
Documents
Procedure calls
Describes the exposed interface – i.e. What the consumer sees of the service
Constitutes a contract with the client
Provides a specification of what is offered by the service provider which can be relied on by the service consumer.
What is WSDL?: What is WSDL? Supports separation of concerns
logical structure of messages
binding to a specific underlying protocol
definition of a particular deployed service
To allow common definition and re-combination
Does not describe what the service does, how it does it or how you should use the service – i.e. does not provide semantic information about the service.
Here using WSDL 1.1 – a W3C submission (March 2001).
WSDL 2.0 – is a W3C Candidate Recommendation (6 January 2006) – many differences.
Structure: Structure incorporate external definitions * logic structure of data being transmitted ? transmittable messages * interface – operations and assoc. messages * how messages will be transmitted * how a service is accessed * * * web-address ref * * * * Abstract Physical
Contents of a WSDL document: Contents of a WSDL document Types– a container for data type definitions using some type system (such as XSD).
Message– an abstract, typed definition of the data being communicated.
Operation– an abstract description of an action supported by the service.
Port Type–an abstract set of operations supported by one or more endpoints.
Binding– a concrete protocol and data format specification for a particular port type.
Port– a single endpoint defined as a combination of a binding and a network address.
Service– a collection of related endpoints.
Services Structure Example: Services Structure Example Company Provides two types of service (PortTypes)
General Service
Get general information
Open an account
Customers Service (being a “Customer” = having an account)
Purchase Order
Invoice
Payment Advice
Get Statement
Both over two kinds of binding
RPC
Email
Services Structure Example: Services Structure Example Binding:
Service: Location=
www. …/WS-RPC www…/GenRPC www…/CustRPC www…/GenEM www…/CustEM Binding:
Service: Location=
www. …/WS-RPC Binding:
Service: Location=
www. …/WS-EM Binding:
Service: Location=
www. …/WS-EM PortType:General
Op: GenInfo
Op: OpenAcc PortType:Customer
Op: PurchOrder
Op: Inv
Op: PayAdv
Op: GetStmt
Op: Overdue Message: Mess1
…. Schema
….
Services Structure Example: Services Structure Example Binding:
Service: Location=
www. …/WS-RPC www…/GenRPC www…/CustRPC www…/GenEM www…/GenEM Binding:
Service: Location=
www. …/WS-RPC Binding:
Service: Location=
www. …/WS-RPC Binding:
Service: Location=
www. …/WS-RPC PortType:General
Op: GenInfo
Op: OpenAcc PortType:Customer
Op: PurchOrder
Op: Inv
Op: PayAdv
Op: GetStmt
Op: Overdue Message: Mess1
…. Schema
…. Four message patterns
IN One-way
OUT Notify *
IN then OUT Request/Response
OUT then IN Solicit/Response * * Reversed roles
Provider
proactive = client
Consumer
reactive = server
Request - Response: Request - Response
Most Common Pattern
Message to service provider; reply to service consumer
A logical pattern, Binding might be either
An HTTP request/response
Two HTTP requests
…..
… Default message name –
operation + request/response
Solicit - Response: Solicit - Response Backwards two-way Pattern
Message from service provider to consumer; reply from consumer to provider
Example – “overdue payment”
Company sends this notification to the customer and expects a response
…
…..
… Default message name –
operation + solicit/response Opposite
order!
Single Message: Single Message Notify
Message from service provider to consumer, with no reply
Example – “Invoice”
Send an invoice
One-way -- Request with no reply
Message from service consumer to provider
Example – “payment advice”
Company gets notification from customer that a payment has been made
…..
Default message name – operation Can’t have fault message
Binding - General: Binding - General A Binding defines
For a particular PortType – named as its “type”
Particular message format and communication protocol details
By extensibility point
A standard extension is SOAP binding
Can have multiple bindings for one PortType
Different modes in which it can be accessed Binding:
Service: Location= www…/GenRPC www…/CustRPC www…/GenEM www…/GenEM Binding:
Service: Location= Binding:
Service: Location= Binding:
Service: Location= PortType:General
Op: GenInfo
…. PortType:Customer
Op: PurchOrder
…. Message: Mess Schema
Binding Extensions: Binding Extensions There are a number of defined bindings
SOAP – identify the SOAP standards
Transport
Over HTTP
….
Style
RPC
Document
Use
Literal
Encoded
HTTP
MIME
SOAP over HTTP, Literal is most commonly used
all we will deal with here
RPC vs Document : RPC vs Document
…..
…
…
…
…
…
…
…
… RPC
Actual
messages Document
Actual
messages
Introduction - Contents: Introduction - Contents What is a Service-Oriented Architecture?
Web services stack.
SOAP.
OGSA WSRF Basic Profile 1.0
WS-Addressing
WS-ResourceProperties
WS-ResourceLifetime
WS-BaseNotification
WS-BaseFaults
WSDL 1.1
Naming
Naming: Naming Naming definitions
Requirements on names
Existing naming schemes
Overview of the Handle syntax
NextGRID Experiment in WP1
Summary
Naming definitions: Naming definitions “Name” - attribute used to identify an entity. In OGSA-naming, 3 types: human-oriented names, abstract names, and addresses.
“Human-oriented name” - a naming scheme designed to be easily interpreted by humans (e.g. human-readable and human-parsable).
“Abstract name” - persistent name suitable for machine processing that does not necessarily contain location information. Abstract names are bound to addresses.
“Address” - specifies the location of an entity.
Additionally,
“Resolution” – Name resolution is the mapping of human names to abstract names, which are then mapped to some form of address.
E.g. A name resolution function could be: Address Resolve(AbstractName);
Requirements on names: Requirements on names Names and naming schemes need to:
Be transmitted and resolved in a new context.
Name all entities in the universe of discourse that need naming.
Allow autonomous allocation of names - it is solely the responsibility of a name issuing authority to determine conditions under which it will issue a name.
Allow scalable distributed name resolution.
Be secure and reliable – there must be no spoofing of the naming service and no impersonating of names. It must support digital signatures, encryption and non-repudiation.
Be robust and trusted - data confidentiality and privacy need to be included.
Have global scope - it needs to have the same meaning everywhere, extensible & internationalisable.
Globally unique – the same name will never (to best probability affordable) be assigned to two different objects.
Existing naming schemes: Existing naming schemes Uniform Resource Identifier (URI) - a string used for identifying an abstract or physical resource in a web application.
Uniform Resource Locator (URL) - the address of an Internet resource named as a combination of a DNS name and local name.
Uniform Resource Name (URN) - a subset of URI that defines a namespace registration mechanism for persistent namespaces under URI. E.g. urn:nextgrid:wp1:usecase:wp3:20050427:FinancialScenario
Universally-unique identifier (UUID) / Globally Unique Identifier (GUID) - 128 bits long, and can provide a guarantee of uniqueness. E.g. f81d4fae-7dec-11d0-a765-00a0c91e6bf6.
Life Science Identifiers (LSIDs) - persistent, location-independent, resource identifiers for uniquely naming biologically significant resources. E.g. URN:LSID:rcsb.org:PDB:1D4X:22.
Extensible Resource Identifier (XRI) - built directly on top of URI & IRI specifications. Examples:
xri://@example.org*agency*department/!(urn:ISBN:0-395-36341-1)
xri://@!9990!A58F!1C3D/!(urn:ISBN:0-395-36341-1)
Existing naming schemes: Existing naming schemes Endpoint reference (EPR) – a WS-Addressing construct that identifies a message destination. In WSRF an EPR conveys the information needed to identify or reference a stateful resource.
WS-Naming – a profile on top of the WS-Addressing specification, where additional elements AbstractName and ReferenceResolver are included in the MetaData element of a WS-Addressing Endpoint Reference.
Resource Namespace Service (RNS) - RNS primarily addresses the human-readable level rather than the abstract level. Intended to facilitate namespace services for a wide variety of Grid applications.
Domain Name Service (DNS) – primarily designed for mapping domain names into IP Addresses for network routing purposes.
X.500 / LDAP - X.500 defines a hierarchical data and information model with a set of protocols to allow global name lookup and search. LDAP (Lightweight Directory Access Protocol) is a simpler protocol aimed at being easier to implement.
Handle.net - a general-purpose global name service that allows secured name resolution and administration over networks such as the Internet. It manages handles, which are unique names for digital objects and other Internet resources.
Overview of the Handle syntax: Overview of the Handle syntax Handle System architecture defines a hierarchical service model.
Single top level service, known as the Global Handle Registry (GHR).
Lower levels known as Local Handle Services (LHS).
Syntax:
::= "/"
Handle.net meets all of the requirements for allowing scalable distributed name resolution, autonomous allocation of names, be secure, extensible, and guarantee global uniqueness.
Server and client software is available through its website, http://www.handle.net/download.html.
Handle Proxy Sever is http://hdl.handle.net/
NextGRID Experiment in WP1: NextGRID Experiment in WP1 NextGRID project Naming Authority Handle:
0.NA/2131
Also have sub-prefixes for workpackages.
0.NA/2131/WP1 NextGRID BSCW Server Other NextGRID Server Other NextGRID Service Naming webpage Handle System Proxy Server http://hdl.handle.net/ webpage Resolve name. (Read-only) Create, delete, modify & list names. Create, delete, modify & list names. Interfaces ??
Security model ??
The End: The End What is a Service-Oriented Architecture?
Web services stack.
SOAP.
OGSA WSRF Basic Profile 1.0
WS-Addressing
WS-ResourceProperties
WS-ResourceLifetime
WS-BaseNotification
WS-BaseFaults
WSDL 1.1
Naming