250 likes | 337 Views
Updates made to latest draft since Herndon. Sony Corporation Toshiaki Kojima. Sony Action Plan Summary. Error Code Numbering Policy Implementation Guideline. Proposal for Error Code numbering policy. Proposal for Error Code numbering policy. Proposal for Error Code numbering policy.
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>