Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PPT

367 views

Published on

  • Be the first to comment

  • Be the first to like this

PPT

  1. 1. IRS XML Messaging Schemas 22-September-2004
  2. 2. Why are we talking about “Messaging Schemas”? <ul><li>IRS has a need to exchange data </li></ul><ul><ul><li>Batch processing </li></ul></ul><ul><ul><li>Transaction based processing </li></ul></ul><ul><ul><li>With external partners </li></ul></ul><ul><li>The IRS Enterprise Architecture is moving towards a Service Oriented Architecture (SOA) </li></ul><ul><ul><li>Application integration is achieved through loosely coupled, message-based services </li></ul></ul>
  3. 3. Why did we make the decision to use XML? <ul><li>The Federal Enterprise Architecture proscribes XML as the data transport technique. </li></ul><ul><li>XML is portable between heterogeneous platforms because it is a standard, self-describing, text-based format. </li></ul><ul><li>Caveat: Use XML – when practical </li></ul><ul><ul><li>XML is not the only interface standard for services </li></ul></ul><ul><ul><li>Not all/some batch processes may not benefit from XML </li></ul></ul>
  4. 4. So what should the XML data look like? <ul><li>Data in messages must be defined in a way that is understandable to both the consumer and the provider of the service. </li></ul><ul><li>Data in messages should be in a common language. </li></ul><ul><li>Integrate an appropriate level of Business Rules in XML schemas </li></ul><ul><li>All XML will adhere to the IRS XML Standards and Guidelines as outlined in Enterprise Data Standards and Guidelines (EDSG) </li></ul>
  5. 5. What decisions were made regarding messaging schemas? <ul><li>The canonical form of data throughout the IRS for OLTP purposes is defined in the IRS Enterprise Logical Data Model (ELDM) </li></ul><ul><ul><li>Complete model of IRS business data </li></ul></ul><ul><li>Data message schemas will not be lower than the data class level as defined by ELDM. </li></ul><ul><ul><ul><li>Build standard XML schemas to store ELDM definition </li></ul></ul></ul><ul><ul><ul><li>Payloads must conform to the XML definitions associated with ELDM classes. </li></ul></ul></ul><ul><ul><ul><li>Integrate reference data with XML elements, just as they relate to ELDM classes and attributes </li></ul></ul></ul><ul><li>Data interchange services will provide authoritative data based on specifications provided by the IRS Enterprise Data Management Office (EDMO). </li></ul>
  6. 6. What exactly did we do? <ul><li>Write one schema for each ELDM data class. </li></ul><ul><ul><li>ELDM data classes are defined as complex types </li></ul></ul><ul><ul><li>ELDM data class attributes are defined as simple types </li></ul></ul><ul><ul><ul><li>These simple types are included as elements in the class complex type definition </li></ul></ul></ul><ul><ul><ul><ul><li>Each of these are optional (minOccurs = 0) except for primary key attributes </li></ul></ul></ul></ul><ul><li>For relationships between ELDM data classes: </li></ul><ul><ul><li>Child schemas are “included” in the parent schema </li></ul></ul><ul><ul><li>Child classes become elements in the parent class’s complex type definition </li></ul></ul><ul><li>Subtypes of ELDM classes are represented in choice tags </li></ul>
  7. 7. ELDM Subject Area: Taxpayer Assets
  8. 8. Sample Message Format Implementation AssetOwnership.xsd AssetSeizure.xsd PartyAsset.xsd
  9. 9. Sample Schemas PartyAsset.xsd This schema includes the “Asset Valuation” schema and includes the element defined in that schema as part of the “Party Asset” complex type. AssetValuation.xsd This is the complex type “Asset Valuation” definition. Notice how it also includes it direct children.
  10. 10. How does “Messaging” fit in a “SOA”? <ul><li>Services are independent pieces of code and data that perform a specified business purpose. </li></ul><ul><li>Services are made up of: </li></ul><ul><ul><li>the functionality/business logic that is performed by a service supplying application </li></ul></ul><ul><ul><ul><li>The business logic inside a service is independent of the message </li></ul></ul></ul><ul><ul><li>the interface definition for the service </li></ul></ul><ul><ul><ul><li>This defines the standard messages used to invoke the service and to send back service responses. </li></ul></ul></ul>Source: Data on the Outside vs. Data on the Inside; An Examination of the Impact of Service Oriented Architectures on Data By Pat Helland, Microsoft Corporation “ The only way into and out of a service are through messages”
  11. 11. Service Definition/Interface <xsd:include schemaLocation=“PartyAsset.xsd&quot;/> <xsd:element name=“RequestAssetValuation&quot;> <xsd:element name=“PartyAsset&quot; type=&quot;PartyAsset&quot;/> </xsd:element> <xsd:element name=“RespondAssetValuation&quot;> <xsd:element name=“PartyAsset&quot; type=&quot;PartyAsset&quot;/> <xsd:element name=&quot;ErrorCode&quot; type=&quot;string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded“/> </xsd:element> This is how we are using the standard ELDM defined schemas This is the request. It is asking for the ELDM “PartyAsset” as input. More details on this is provided on the following slides. This is the response. In this case, we will respond with the “PartyAsset” and its related “AssetValuation” and zero-or-more error codes. <ul><li>Services interfaces are made up of: </li></ul><ul><ul><li>Request Message formats </li></ul></ul><ul><ul><li>Response Message formats </li></ul></ul>A sample instant document is shown on the following slide. <ul><ul><li>A sample schema for these message formats is defined below... </li></ul></ul>
  12. 12. Sample Messages <xsd:include schemaLocation=“PartyAsset.xsd&quot;/> <xsd:element name=“RequestAssetValuation&quot;> <xsd:element name=“PartyAsset&quot; type=&quot;PartyAsset&quot;/> </xsd:element> <xsd:element name=“RespondAssetValuation&quot;> <xsd:element name=“PartyAsset&quot; type=&quot;PartyAsset&quot;/> <xsd:element name=&quot;ErrorCode&quot; type=&quot;string&quot; minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded“/> </xsd:element> <RequestAssetValuation> <PartyAsset> <TaxpayerAssetSequenceNum>123456</TaxpayerAssetSequenceNum> </PartyAsset> </RequestAssetValuation> <RespondAssetValuation> <PartyAsset> <TaxpayerAssetSequenceNum>123456</TaxpayerAssetSequenceNum> <AssetValuation> <AssetValuationSequenceNum>234</AssetValuationSequenceNum> <AssetValueBasisTypeCd>TR</AssetValueBasisTypeCd> <AssetValuationDeterminationDt> 10-Sep-2004 </AssetValuationDeterminationDt> <AssetValuationValueAmt>2500.00</AssetValuationValueAmt> <AssetValuationAppraisalMethodDescriptionTxt> Description of the Valuation </AssetValuationAppraisalMethodDescriptionTxt> </AssetValuation> <ErrorCode>XXX</ErrorCode> </PartyAsset> </RespondAssetValuation> Request Message Response Message
  13. 13. Wrap-Up <ul><li>On-Going Challenges </li></ul><ul><ul><li>Schema maintenance as the ELDM evolves </li></ul></ul><ul><ul><ul><li>Version Control </li></ul></ul></ul><ul><ul><ul><li>Impact Analysis </li></ul></ul></ul><ul><ul><li>Schema management and stewardship </li></ul></ul><ul><ul><ul><li>How best to handle reference data </li></ul></ul></ul><ul><li>Feedback ? </li></ul><ul><ul><li>What about our policy of defining schemas at the class level? </li></ul></ul><ul><ul><li>What about how we built the schemas using simple and complex types? </li></ul></ul>

×