180 likes | 191 Views
Learn how XML transactions provide a common dialect for seamless data exchange between multiple parties, reducing schema maintenance, and enabling context-sensitive data processing. Explore the benefits, application, and validations of XML transactions in modern systems.
E N D
Using XML Transactions Presented By Tony Alwardt The Boeing Company
Introduction • Provides a common dialect to be used between two are more parties
Benefits • Fewer Schemas to Maintain and Develop Against • Schema performs initial required data validation instead of application software • Transactions give XML tags context sensitive meaning • System integrators only deal with transactions they require • The ability to tie requests and responses together • Provides built in error elements for every transaction • Readily supports Synchronous & Asynchronous Communication • Readily supports Batch Processing • Supports Passing Application Level Security Credentials
System 2 System 1 System 3 Multiple Schemas XML Transaction Type 1 Request XML Schema 1 XML Transaction Type 1 Response XML Schema 2 XML Transaction Type 2 Request XML Schema 3 XML Transaction Type 2 Response XML Schema 4
System 2 System 1 System 3 Integrated Schema XML Transaction Type 1 Request XML Transaction Type 1 Response Integrated XML Schema XML Transaction Type 2 Request XML Transaction Type 2 Response
System 2 System 1 Validation (Traditional Schema Use) Schema verifies that the XML document is in the correct format. XML Document XML Schema Software verifies that the XML document contains the appropriate requiredXML elements/attributes. Software Library
System 2 System 1 Validation (Transaction Schema Use) Schema verifies that the XML document is in the correct format and that the required XML elements/attributes exist. XML Document XML Schema This block is potentially no longer required. Software Library
Context Sensitive Meaning Add Work Orders Transaction <?xml version="1.0" encoding="utf-8"?> <TxDML version="1.0" xmlns:bc="http://www.companyA.com/ATML/schemas/Common" xmlns="urn:DML-TxDML-Schema"> <TxRequest> <AddWorkOrders> <WorkOrders> <WorkOrder status="Open" openedDateTime="2004-06-03T07:36:31"> <bc:MasterKey>JCNARN001</bc:MasterKey> <Platform name="F/A-18" model="E" serialNumber="111111"/> <WorkItems> <WorkItem status="Open" openedDateTime="2004-06-03T07:36:31"> <bc:Site name="St. Louis"/> <bc:MaintenanceLevel abbr="O"/> <UUT type="WRA"> <bc:PartNumber>Demo 2005</bc:PartNumber> <bc:SerialNumber>SN0001</bc:SerialNumber> <bc:Manufacturer>MAN001</bc:Manufacturer> </UUT> <TestPrograms> <TestProgram name="Demo2005 TPS" type="XML"> <TestResults outcome="Failed"> <TestGroup outcome="Failed" bc:startDateTime="2002-04-14T17:16:25.500"> <Observables> <Observable name="Altitude" value="0.000" type="Decimal" units="Feet"/> <Observable name="NormalAcceleration" value="-35.313" type="Decimal" units="FPS Squared"/> </Observables> <Test name="000" outcome="Failed" type="MSP" descr="RADAR ANTENNA FAIL"/> <Test name="111" outcome="Failed" type="MSP" descr="GYRO TEST SKPD"/> </TestGroup> </TestResults> </TestProgram> </TestPrograms> </WorkItem> </WorkItems> </WorkOrder> </WorkOrders> </AddWorkOrders> </TxRequest> </TxDML>
Context Sensitive Meaning Update Work Orders with Indictments <?xml version="1.0" encoding="utf-8"?> <TxDML version="1.0" xmlns:bc="http://www.companyA.com/ATML/schemas/Common" xmlns="urn:DML-TxDML-Schema"> <TxRequest> <UpdateWorkOrders> <WorkOrders> <WorkOrder status="Open"> <bc:MasterKey>JCNARN001</bc:MasterKey> <WorkItems> <WorkItem status="Open"> <bc:MaintenanceLevel abbr="I"/> <UUT type="WRA"> <bc:PartNumber>Demo2005</bc:PartNumber> <bc:SerialNumber>SN0001</bc:SerialNumber> </UUT> <TestPrograms> <TestProgram name="Demo2005 TPS" type="XML"> <TestResults outcome="Failed"> <TestGroup outcome="Failed" bc:startDateTime="2005-04-12T13:00:07.000"> <Test name="300.00" outcome="Failed" type="T" descr="Resister A Check"/> </TestGroup> <Indictments retestEntryPoint="300.00" indictmentsID="3" indictmentsDateTime="2005-04-12T13:00:07"> <Indictment repairType="R" repairDescr="Remove and Replace"> <UUT> <RefDes>A1</RefDes> </UUT> </Indictment> </Indictments> </TestResults> </TestProgram> </TestPrograms> <bc:TestStation type="STATION A"/> </WorkItem> </WorkItems> </WorkOrder> </WorkOrders> </UpdateWorkOrders> </TxRequest> </TxDML>
Context Sensitive Meaning Update Work Orders with Repairs <?xml version="1.0" encoding="utf-8"?> <TxDML version="1.0" xmlns:bc="http://www.companyA.com/ATML/schemas/Common" xmlns="urn:DML-TxDML-Schema"> <TxRequest> <UpdateWorkOrders> <WorkOrders> <WorkOrder status="Open"> <bc:MasterKey>JCNARN001</bc:MasterKey> <WorkItems> <WorkItem status="Open"> <bc:MaintenanceLevel abbr="I"/> <UUT type="WRA"> <bc:PartNumber>Demo2005</bc:PartNumber> <bc:SerialNumber>SN0001</bc:SerialNumber> </UUT> <bc:TestStation type="STATION A"/> <Repairs> <Repair repairType="S" repairDescr="Remove and Reinstall" repairIndictmentsID="3"> <UUT type="SRA"> <bc:PartNumber>CARD001</bc:PartNumber> <bc:SerialNumber>TRFDV</bc:SerialNumber> <bc:RefDes>A1</bc:RefDes> </UUT> </Repair> </Repairs> </WorkItem> </WorkItems> </WorkOrder> </WorkOrders> </UpdateWorkOrders> </TxRequest> </TxDML>
Easier Integration via Transactions Example: 5 Available Transactions <TxDML version="1.0"> <TxRequest> <AddWorkOrders></AddWorkOrders> <UpdateWorkOrders></UpdateWorkOrders> <GetSuggestedCallouts></GetSuggestedCallouts> <GetSuggestedEntryPoints></GetSuggestedEntryPoints> <GetWorkOrders></GetWorkOrders> </TxRequest> </TxDML> 3 Transactions Used by User 1 2 Transactions Used by User 2 <TxDML version="1.0"> <TxRequest> <AddWorkOrders></AddWorkOrders> <UpdateWorkOrders></UpdateWorkOrders> <GetWorkOrders></GetWorkOrders> </TxRequest> </TxDML> <TxDML version="1.0"> <TxRequest> <GetSuggestedCallouts></GetSuggestedCallouts> <GetSuggestedEntryPoints></GetSuggestedEntryPoints> </TxRequest> </TxDML> User 1 User 2
<TxDML version="1.0"> <TxRequest> <GetWorkOrders> <MasterKey>Master Key XYZ</MasterKey> </GetWorkOrders> </TxRequest> <TxResponse> <TransResult> <ResultCode tc="Success "></ResultCode> <WorkOrder> <MasterKey>Master Key XYZ</MasterKey> </WorkOrder> </TransResult> </TxResponse> </TxDML> Request Response Request/Response Model • Supports echoing the request in the response (Especially useful with asynchronous systems)
Error Processing • Required “ResultCode” element exists in every transaction response <TxDML version="1.0"> <TxRequest> <GetWorkOrders> <MasterKey>Master Key XYZ</MasterKey> </GetWorkOrders> </TxRequest> <TxResponse> <TransResult> <ResultCode tc="Failure"> <ResultDesc>Communication Error.</ResultDesc> </ResultCode> <WorkOrder> <MasterKey>Master Key XYZ</MasterKey> </WorkOrder> </TransResult> </TxResponse> </TxDML> Result Info
System 2 System 1 Synchronous vs. Asynchronous Processing • Readily supports Synchronous & Asynchronous Communication Synchronous Communication XML Document XML Document
System 2 System 1 Synchronous vs. Asynchronous Processing • Readily supports Synchronous & Asynchronous Communication Asynchronous Communication XML Documents XML Documents Echoing the initial request with the response enables Asynchronous Communication.
System 2 System 1 Batch Transaction Processing • Readily supports Batch Processing XML Requests XML Responses The schema can support sending multiple request transactions in one XML Document. The same applies for response transactions.
Application Level Security Credentials • Application Level Security Credentials can be included in a Request Transaction. <TxDML version="1.0"> <UserAuthRequest> <UserLoginName>String</UserLoginName> <UserPswd> <CryptType>String</CryptType> <Pswd>String</Pswd> </UserPswd> <UserDomain>String</UserDomain> <UserDate>1967-08-13</UserDate> <UserTime>14:20:00-05:00</UserTime> </UserAuthRequest> <TxRequest> <GetWorkOrders> <MasterKey>Master Key XYZ</MasterKey> </GetWorkOrders> </TxRequest> </TxDML> Security Info