250 likes | 343 Vues
This document outlines the error code numbering policy update and proposes implementation guidelines for SOAP-RPC and RESTful approaches. It includes sample sequence charts, messages, and XML samples. The guide covers service request/acknowledgment for both approaches, query job requests/responses, and job management commands. It aims to streamline error handling processes in a consistent manner.
E N D
Updates made to latest draft since Herndon Sony Corporation Toshiaki Kojima
Sony Action Plan Summary • Error Code Numbering Policy • Implementation Guideline
Proposed contents of Implementation Guideline • Introduction • Two Implementation Approaches (SOAP-RPC and RESTful) • Concept for two approaches • Sample Sequence Charts for two approaches • Implementation Guideline for SOAP-RPC approach • Messages • Sample Sequence Charts • Sample XML • Tips • Implementation Guideline for RESTful approach • Resources • Sample Sequence Charts • Sample XML • Tips
[1] Service Request/Ack (Capture) RESTful: Client Service PUT /job/{jobGUID} HOST: www.transformservice.com Content-Type: text/xml; … <?xml version=“1.0”> <captureJob> <priority>low</priority> <startJob xsil:type=“StartJobByLatest”/> <startProcess xsi:type=“StartProcessByServiceDefined/> <stopProcess xsi:type=“StopProcessByServiceDefined/> <sourceID>VTR#1</sourceID> <sourceType>controllable</sourceType> <inPoint xsi:type=“SourceInPointByBeginning”/> <inPoint xsi:type=“SourceOutPointByEnd”/> <outputFileNamePattern>capture_vtr1.mpg</outputFiileNamePattern> <splitOnTCBreak>TRUE</splitOnTCBreak> </captureJob> HTTP 1.x/ 200 OK Content-Type: application/xml; … <?xml version=“1.0”> <job> <status>running</status> <serviceProviderJobID>XXXX-XXXX-XXXXXX</serviceProviderJobID> <operationName>VTR Capture</operationName> </job>
[1] Service Request/Ack (Capture) SOAP-RPC: Client Service <soap:Envelop> <soap:Body> <captureRequest> <captureJob> <priority>low</priority> <startJob xsil:type=“StartJobByLatest”/> <startProcess xsi:type=“StartProcessByServiceDefined/> <stopProcess xsi:type=“StopProcessByServiceDefined/> <sourceID>VTR#1</sourceID> <sourceType>controllable</sourceType> <inPoint xsi:type=“SourceInPointByBeginning”/> <inPoint xsi:type=“SourceOutPointByEnd”/> <outputFileNamePattern>capture_vtr1.mpg</outputFiileNamePattern> <splitOnTCBreak>TRUE</splitOnTCBreak> </captureJob> </captureRequest> </soap:Body> </soap:Envelope> <soap:Envelope> <soap:Body> <captureAck> <job> <status>running</status> <serviceProviderJobID>XXXX-XXXX-XXXXXX</serviceProviderJobID> <operationName>VTR Capture</operationName> </job> </captureAck> <soap:Body> </soap:Envelope>
[2] QueryJob Request/Response RESTful: Client Service GET /job/{jobGUID} HOST: www.transformservice.com … HTTP 1.x/ 200 OK Content-Type: application/xml; … <?xml version=“1.0”> <job> <status>running</status> <serviceProviderJobID>XXXX-XXXX-XXXXXX</serviceProviderJobID> <operationName>VTR Capture</operationName> <priority>low</priority> <jobStartedTime>12:00:00</jobStartedTime> <jobElapsedTime>30</jobElapsedTime> <processed xsi:type=“ProcessedInfoByBytes”> <processedBytesCount>235000</processedBytesCount> </processed> </job>
[2] QueryJob Request/Response SOAP-RPC: Client Service <soap:Envelope> <soap:Body> <queryJobRequest> <queryJob xsi:type=“QueryJobByID”> <jobGUID>{jobGUID}</jobGUID> </queryJob> </queryJobRequest> </soap:Body> </soap:Envelope> <soap:Envelope> <soap:Body> <queryJobResponse> <job> <status>running</status> <serviceProviderJobID>XXXX-XXXX-XXXXXX</serviceProviderJobID> <operationName>VTR Capture</operationName> <priority>low</priority> <jobStartedTime>12:00:00</jobStartedTime> <jobElapsedTime>30</jobElapsedTime> <processed xsi:type=“ProcessedInfoByBytes”> <processedBytesCount>235000</processedBytesCount> </processed> </job> </queryJobResponse> </soap:Body> </soap:Envelope>
[3] ManageJob Request/Response RESTful: Client Service PUT /job/{jobGUID} HOST: www.transformservice.com Contentt-Typee: text/xml; … <?xml version=“1.0”> <manageJob> <manageJobCommand>stop</manageJobCommand> </manageJob> HTTP 1.x/ 200 OK Content-Type: application/xml; … <?xml version=“1.0”> <job> <status>stopped</status> <serviceProviderJobID>XXXX-XXXX-XXXXXX</serviceProviderJobID> <operationName>VTR Capture</operationName> <priority>low</priority> <jobStartedTime>12:00:00</jobStartedTime> <jobElapsedTime>30</jobElapsedTime> <processed xsi:type=“ProcessedInfoByBytes”> <processedBytesCount>235000</processedBytesCount> </processed> </job>
[3] ManageJob Request/Response SOAP-RPC: Client Service <soap:Envelope> <soap:Body> <manageJobRequest> <jobGUID>{jobGUID}</jobGUID> <manageJob> <manageJobCommand>stop</manageJobCommand> </manageJob> </manageJobRequest> </soap:Body> </soap:Envelope> <soap:Envelope> <soap:Body> <manageJobResponse> <job> <status>stopped</status> <serviceProviderJobID>XXXX-XXXX-XXXXXX</serviceProviderJobID> <operationName>VTR Capture</operationName> <priority>low</priority> <jobStartedTime>12:00:00</jobStartedTime> <jobElapsedTime>30</jobElapsedTime> <processed xsi:type=“ProcessedInfoByBytes”> <processedBytesCount>235000</processedBytesCount> </processed> </job> </manageJobResponse> </soap:Body> </soap:Envelope>
[4] ManageQueue Request/Response RESTful: Client Service PUT /queue HOST: www.transformservice.com Contentt-Typee: text/xml; … <?xml version=“1.0”> <manageQueue> <manageQueueCommand>clear</manageQueueCommand> </manageQueue> HTTP 1.x/ 200 OK Content-Type: application/xml; … <?xml version=“1.0”> <queue> <status>started</status> <length>0</length> <availability>true</availability> <estimatedTotalCompletionDuration>0</estimatedTotalCompletionDuration> </queue>
[4] ManageQueue Request/Response SOAP-RPC: Client Service <soap:Envelope> <soap:Body> <manageQueueRequest> <manageQueue> <manageQueueCommand>clear</manageQueueCommand> </manageQueue> </manageQueeueRequest> </soap:Body> </soap:Envelope> <soap:Envelope> <soap:Body> <manageQueueResponse> <queue> <status>started</status> <length>0</length> <availability>true</availability> <estimatedTotalCompletionDuration>0</estimatedTotalCompletionDuration> </queue> </manageQueueResponse> </soap:Body> </soap:Envelope>
Example of Sequence Diagram for Transfer Service Asynchronous Message with Notification Client Transfer Service transferRequest (notifyAt) transferAck transferNotification
Example of "transferRequest" Message <tms:transferRequest xmlns:bms=http://base.fims.tv xmlns:tms=http://transfermedia.fims.tv xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://transfermedia.fims.tv transferMedia-V1_0_0.xsd"> <bms:jobGUID>3F2504E0-4F89-11D3-9A0C-0305E82C3310</bms:jobGUID> <bms:startJob xsi:type="bms:StartJobByNoWaitType"/> <bms:bmo> <bms:bmContent id="268FA023-3039-11D3-9A0C-0305E82C3350"> <bms:locator>http://sample_local/sample_file.mpg</bms:locator> </bms:bmContent> </bms:bmo> <transferProfile> <transferAtom> <bms:destination>http://sample_remote/sample_file.mpg</bms:destination> </transferAtom> </transferProfile> </tms:transferRequest>
Example of "transferAck" Message <tms:transferAck xmlns:bms=http://base.fims.tv xmlns:tms=http://transfermedia.fims.tv xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://transfermedia.fims.tv transferMedia-V1_0_0.xsd"> <bms:operationInfo operationName="Sample Transfer"> <bms:jobID> <bms:jobGUID>3F2504E0-4F89-11D3-9A0C-0305E82C3310</bms:jobGUID> </bms:jobID> <bms:status> <bms:code>running</bms:code> </bms:status> </bms:operationInfo> <bms:serviceProviderInfo> <bms:endpoint>http://sample_host/transfer</bms:endpoint> </bms:serviceProviderInfo> </tms:transferAck>
Example of "transferNotification" Message <tms:transferNotification xmlns:bms=http://base.fims.tv xmlns:tms=http://transfermedia.fims.tv xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://transfermedia.fims.tv transferMedia-V1_0_0.xsd"> <bms:operationInfo operationName="Sample Transfer"> <bms:jobID> <bms:jobGUID>3F2504E0-4F89-11D3-9A0C-0305E82C3310</bms:jobGUID> </bms:jobID> <bms:status> <bms:code>completed</bms:code> </bms:status> </bms:operationInfo> <bms:serviceProviderInfo> <bms:endpoint>http://sample_host/transfer</bms:endpoint> </bms:serviceProviderInfo> <bms:bmo> <bms:bmContent id="268FA023-3039-11D3-9A0C-0305E82C3351"> <bms:locator>http://sample_remote/sample_file.mpg</bms:locator> </bms:bmContent> </bms:bmo> </tms:transferNotification>
Example of Sequence Diagram for Job Control Client Capture Service captureRequest (open-end) captureAck manageJobRequest (stop) manageJobResponse
Example of "captureRequest" Message <cms:captureRequest xmlns:bms="http://base.fims.tv" xmlns:cms="http://capturemedia.fims.tv" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://capturemedia.fims.tv captureMedia-V1_0_0.xsd"> <bms:jobGUID>3F2504E0-4F89-11D3-9A0C-0305E82C3301</bms:jobGUID> <bms:startJob xsi:type="bms:StartJobByNoWaitType"/> <process> <startProcess xsi:type="bms:StartProcessByServiceDefinedTimeType"/> <stopProcess xsi:type="bms:StopProcessByServiceDefinedTimeType"/> <source> <sourceID>Camera#001</sourceID> <sourceType>uncontrolled</sourceType> <inPoint xsi:type="cms:SourceInPointByCurrentType"/> <outPoint xsi:type="cms:SourceOutPointByOpenEndType"/> </source> <splitOnTCBreak>false</splitOnTCBreak> </process> <captureProfile> <transformAtom> <bms:videoFormat> <bms:videoEncoding typeLabel="2.1" typeDefinition="MPEG-2 Video Simple Profile" typeLink="http://www.ebu.ch/metadata/cs/ebu_VideoCompressionCodeCS.xml#2.1"/> </bms:videoFormat> </transformAtom> <transferAtom> <bms:destination>http://sample_host/sample_location/</bms:destination> </transferAtom> </captureProfile> </cms:captureRequest>
Example of "captureAck" Message <cms:captureAck xmlns:bms="http://base.fims.tv" xmlns:cms="http://capturemedia.fims.tv" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://capturemedia.fims.tv captureMedia-V1_0_0.xsd"> <bms:operationInfo operationName="Feed Capture"> <bms:jobID> <bms:jobGUID> 3F2504E0-4F89-11D3-9A0C-0305E82C3301 </bms:jobGUID> <bms:serviceProviderJobID> 3F2504E0-4F89-11D3-9A0C-0305E82C3301_0001 </bms:serviceProviderJobID> </bms:jobID> <bms:status> <bms:code>running</bms:code> </bms:status> </bms:operationInfo> <bms:serviceProviderInfo> <bms:endpoint>http://sample_service/capture</bms:endpoint> </bms:serviceProviderInfo> </cms:captureAck>
Example of "manageJobRequest" Message <bms:manageJobRequest xmlns:bms=http://base.fims.tv xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://base.fims.tv baseMediaService-V1_0_0.xsd"> <bms:jobCommand>stop</bms:jobCommand> <bms:jobID> <bms:jobGUID> 3F2504E0-4F89-11D3-9A0C-0305E82C3301 </bms:jobGUID> <bms:serviceProviderJobID> 3F2504E0-4F89-11D3-9A0C-0305E82C3301_0001 </bms:serviceProviderJobID> </bms:jobID> </bms:manageJobRequest>
Example of "manageJobResponse" Message <bms:manageJobResponse xmlns:bms=http://base.fims.tv xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://base.fims.tv baseMediaService-V1_0_0.xsd"> <bms:status> <bms:code>stopped</bms:code> </bms:status> </bms:manageJobResponse>