1 / 18

XML Integrator

XML Integrator. Google Wave Gadget. Purpose. Create mapping from one XML schema to another XML schema Support collaborative creation of that mapping Export that mapping as a XSLT transformation. What’s a mapping? I.

fionan
Download Presentation

XML Integrator

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML Integrator Google Wave Gadget

  2. Purpose • Create mapping from one XML schema to another XML schema • Support collaborative creation of that mapping • Export that mapping as a XSLT transformation

  3. What’s a mapping? I • Translation of one or many XML elements in the source XML to an element in the destination XML • More precisely, XML is a tree hierarchy of XML elements. This hierarchy structure can be defined using XSD or other ways, ex. DTD. But XSD is mostly used, therefore was chosen as the source of XML structure for this application.

  4. What’s a mapping? II • Usually, it’s required to modify the source element, so it can be mapped to a destination element. • Therefore mapping must contain definition of this modification.

  5. Mapping lifecycle • Choose source and destination XSD • Add mappings • Create XSLT • Apply to a XML

  6. Example of a mapping

  7. Mapping definition • Transformation type • Maximal number of inputs (optional) • XPath expression (optional) • Inputs map • Output list

  8. Transformations

  9. Implementation – data structures • XML Mapping Model • Source schema • Destination schema • Elements mappings

  10. Types of edits • Add mapping • Remove mapping • Change mapping’s transformation • Translate mapping inside editor • Add connection between mapping and other elements • Source element, destination element, another mapping • Remove connection

  11. Google Wave Google Wave Wave Robot DB User User User State Server

  12. Edit data structure • ID • Author • Type • Other attributes depending on the type of edit

  13. Edit lifecycle • User creates an edit • Sends it to State server • Servers merges it into model • Receives edit ID • This ID is from increasing number sequence • Puts edit into Gadget state • Receives new Gadget state • Merges all newer edits into local model • Newer merges edit with ID higher than last edit processed by State server to the local instance of the mapping model

  14. Gadget state overview User A Gadget State User B State Server and Wave Robot User C User A edits the mapping Sends edit to State Server State Server processes the edit (saves merged state to database) and returns edit ID Edit ID and Edit is submit to Gadget state Gadget state is send to each user and robot Database

  15. Gadget state overview II • Size limit defined by Google is 100KiB for gadget state • Therefore mapping state is being held on State server • Inside gadget state are some state attributes and mainly set of edits made by users • When the state’s size would be greater than 100KiB, than Robot clear state and forces users to reload mapping state from the State server

  16. Protocol – data structures • Model ID • Version • Last edit ID • List of edits • Edit ID • Edit content

  17. Merging • Edits are sorted by their ID • Each is processed • If there would be any conflicts, the last wins, or will be ignored

  18. Conflicts • User wants edit/remove already removed mapping • Edit/remove is being ignored • In other cases the last edit wins • These conflicts will be shown in the log

More Related