180 likes | 322 Views
WS-RT Update Ian Robinson. WS-ResourceTransfer – from Roadmap document [1]. WS-ResourceTransfer (new). WS-Metadata Exchange 1.1 (new). WS-Transfer (Sep 2004). [1] http://www-128.ibm.com/developerworks/webservices/library/specification/ws-roadmap/ - IBM, MS, HP, Intel, March 2006.
E N D
WS-ResourceTransfer – from Roadmap document [1] WS-ResourceTransfer (new) WS-Metadata Exchange 1.1 (new) WS-Transfer (Sep 2004) [1] http://www-128.ibm.com/developerworks/webservices/library/specification/ws-roadmap/ - IBM, MS, HP, Intel, March 2006
WS-ResourceTransfer – Aug 31 2006 WS-ResourceTransfer (Aug 2006) X WS-Metadata Exchange 1.1 (Aug 2006) WS-Transfer (Sep 2004) (To be updated Sep 2006) WS-RT: http://www-128.ibm.com/developerworks/webservices/library/specification/ws-wsrt/ WS-MEX: http://www-128.ibm.com/developerworks/webservices/library/specification/ws-mex/
Materials published Aug 2006 • WS-MEX 1.1: http://www-128.ibm.com/developerworks/webservices/library/specification/ws-mex/ • WS-RT 1.0 spec: http://www-128.ibm.com/developerworks/library/specification/ws-wsrt/ • WS-RT / WSRF demo: http://www.alphaworks.ibm.com/tech/wsconvergeddemo • incl XSLT transformation WS-RT messages -> WSRF • intention to contribute to Apache Muse.
WS-MetadataExchange 1.1 • Primary changes from MEX 1.0: • Removal of wsmex:Get in favour of WS-Transfer Get • Support for W3C REC level of WS-Addressing (same as WSRF)
WS-RT – Goals and Principles • Goals: • Define new spec that satisifes requirements of both WS-Transfer and WS-ResourceProperties / WS-ResourceLifetime • Ensure simple strategy for accomodating existing WS-Transfer and WSRF implementations • Principles • A resource (instance) is referenced through an EPR • Each resource instance has an XML resource representation. • Define new versions of the WS-Transfer CRUD operations that can operate on fragments of the XML representation of the resource. • None of the CRUD operations are mandatory.
WS-RT – What does it specify? • Defines extensions to WS-Transfer for “fragment-level” support to Get / Put /Create • Defines a number of dialects in which the “fragment syntax” can be expressed • QName dialect is based on WS-ResourceProperty syntax • XPath Level 1 • Minimal subset of XPath. No function libraries; resolution to single node-set • Full XPath • Defines resource metadata, such as lifetime metadata
Example resource representation <Disk xmlns="http://example.org/sample"> <DiskCapacity>62500000000</DiskCapacity> <DiskFreeSpace>524182841</DiskFreeSpace> <SerialNumber>123-F2560</SerialNumber> <LastAuditDate>1998-05-25T13:30:15</LastAuditDate> <Volume> <Drive>C:</Drive> <Label>MyDrive-C</Label> <TotalCapacity>10000000000</TotalCapacity> <FreeSpace>6234794528</FreeSpace> </Volume> <Volume> <Drive>D:</Drive> <Label>MyDrive-D</Label> <TotalCapacity>30000000000</TotalCapacity> <FreeSpace>26462809800</FreeSpace> </Volume> </Disk>
WS-RT Expression Dialects • The “QName” dialect • Simple QName that references immediate children of roote.g. d:DiskCapacity • This is equivalent to WSRF resource property. • Suitable for constrained resources with no XPath processing capability • The “XPath Level 1” dialect • A restricted XPath dialect. • No function libraries • Expressions evaluate to 0 or 1 nodes only. • Doesn’t support computed values. • e.g. d:Disk/d:Volume[1]/d:Label • Suitable for less constrained resources and/or more complex resource representations. • The “XPath” dialects • Full XPath; • Expressions may evaluate to multiple node-sets • Not supported with ‘Put’ or ‘Create’ • e.g. d:Disk/d:Volume • Suitable for queries and complex Get operations.
CRUD: (Retrieve) Get request [Headers] <wsrt:ResourceTransfer s:mustUnderstand="true"? /> [Action] http://schemas.xmlsoap.org/ws/2004/09/transfer/Get [Body] <wsrt:Get Dialect=”xs:anyURI”?> <wsrt:Expression ...>xs:any</wsrt:Expression> * </wsrt:Get>
CRUD: (Retrieve) Get response [Headers] <wsrt:ResourceTransfer/> [Action] http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse [Body] <wsrt:GetResponse> <wsrt:Result...>xs:any</wsrt:Result> + </wsrt:GetResponse>
CRUD: (Update) Put request [Headers] <wsrt:ResourceTransfer s:mustUnderstand="true"/> [Action] http://schemas.xmlsoap.org/ws/2004/09/transfer/Put [Body] <wsrt:Put Dialect=”xs:anyURI”?> <wsrt:Fragment Mode=”Modify|Insert|Remove”> <wsrt:Expression>xs:any</wsrt:Expression> ? <wsrt:Value ...>xs:any</wsrt:Value> ? </wsrt:Fragment> + </wsrt:Put>
CRUD: (Update) Put response [Headers] <wsrt:ResourceTransfer/> [Action] http://schemas.xmlsoap.org/ws/2004/09/transfer/PutResponse [Body]
CRUD: (Create) Create request [Headers] <wsrt:ResourceTransfer s:mustUnderstand="true"/> [Action] http://schemas.xmlsoap.org/ws/2004/09/transfer/Create [Body] <wsrt:Create Dialect=”xs:anyURI”?> <wsmex:Metadata>resource metadata</wsmex:Metadata> ? <wsrt:Fragment> <wsrt:Expression>xs:any</wsrt:Expression> ? <wsrt:Value ...>xs:any</wsrt:Value> </wsrt:Fragment> * </wsrt:Create>
CRUD: (Create) Create response No change from WS-Transfer CreateResponse message [Headers] <wsrt:ResourceTransfer/> [Action] http://schemas.xmlsoap.org/ws/2004/09/transfer/CreateResponse [Body] <wxf:ResourceCreated> wsa:EndpointReferenceType </wxf:ResourceCreated>
Resource metadata • May be specified as part of wsrt:Create • May be queried using WS-Mex • May be updated using a combination of WS-Mex (to retrieve an EPR to a metadata resource) and wsrt:Put (to update the metadata resource).
WS-RT Metadata <wsrt:Lifetime> ( <wsrt:TerminateAt> <wsrt:TerminationTime>xs:dateTime</wsrt:TerminationTime> <wsrt:CurrentTime>xs:dateTime</wsrt:CurrentTime> </wsrt:TerminateAt> | <wsrt:TerminateAfter>xs:duration</wsrt:TerminateAfter> | <wsrt:TerminateAfterIdle> xs:duration </wsrt:TerminateAfterIdle> ) </wsrt:Lifetime> <wsrt:Metadata> <wsrt:Lifetime>lifetime metadata</wsrt:Lifetime> ? <wsrt:SupportedDialect> dialect metadata </wsrt:SupportedDialect> * ... </wsrt:Metadata> <wsrt:SupportedDialect DialectName="xs:anyURI"> <wsrt:SupportedOperation OperationName="xs:anyURI"> <wsrt:SupportedPutMode> ModeType </wsrt:SupportedPutMode> * <wsrt:MultipartLimit> xs:positiveInteger </wsrt:MultipartLimit> ? </wsrt:SupportedOperation> * </wsrt:SupportedDialect>
CRUD: (Delete) • No new message semantics – nothing beyond WS-Transfer delete. • Deletes entire resource • Any further use of the resource EPR results in wsa:DestinationUnreachable fault.