1 / 43

Tutorial Starts 7PM

“Patience, learn you must”. Tutorial Starts 7PM. Start recording!. Recordings in various formats will be available in a few days Check out the Tutor Group Forums for: Recording links Copies of slides Any follow questions and answers Please use the “chat” box to chat!

gabby
Download Presentation

Tutorial Starts 7PM

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. “Patience, learn you must” TutorialStarts7PM

  2. Start recording! • Recordings in various formats will be available in a few days • Check out the Tutor Group Forums for: • Recording links • Copies of slides • Any follow questions and answers • Please use the “chat” box to chat! • Bad enough listening to me for 90 minutes • At least you can chat to the other students • Any subject you like, I will ignore box except for questions!

  3. T320Tutorialtwo Protocols, XML & TMA02

  4. Proposed agenda • Where are we? • Eclipse • Protocols • XML • Data • Metadata • Tools • Schema Design • TMA Tips, Q & A • Any questions, please click the “raise your hand” icon • Then type question in chat box • Or use microphone!

  5. Proposed Un-agenda(?) • Security • This is well covered (for our purposes) in Block 2 Part 2 • But be aware that this is a BIG subject • You are NOT an expert just having read Part 2! • Message Transport over HTTP • Also well covered, Block 2 part 3 • But the protocol stuff here will be useful • The practical work • Thoroughly described in Block 2 parts 4-7 • Excellent support from the appropriate national forums

  6. “If there's a bright center to the universe, you're on the planet that it's farthest from.” Where Are We?

  7. Overview E M A pt 2 Block 1 – E-Business in context TMA01 You AreHere Block 2 – Protocols and Data TMA02 Block 3 – Web Services TMA03 Block 4 – Business Processes EMA pt 1

  8. Block 2 • You need to read (and understand!) most of block 2 material before starting TMA02 • You have 2 ½ weeks remaining • Do not panic! • If really pushed for time, Block 2 Part 3 is not immediately relevant to the TMA • But you will struggle with Block 3 without it • Contact your tutor if you have any questions or problems • (More on the TMA later…)

  9. “That’s no moon! That’s a space station” Eclipse

  10. Eclipse Tips • Don’t Panic! • Watch the video for an overview • From the T320 website • Or on the DVD • Watch the 2nd recording in the Module-Wide tutorial room • Introduction to Eclipse, XML and XML schema (Pat and Mike) ~ 1hr 12mins

  11. Eclipse Layout

  12. My view of eclipse(YMMV) • For any given task, there is probably something better than Eclipse • PHP editing – PHPStorm • XML Editing – Oxygen • But for integration, flexibilty and add-ons (of all types) there is little to beat it • Especially for large teams • As a developer, do I use it by choice? • Yes, but due to Inertia! First large scale IDE I used • Gradually migrating to something less “heavy” • And less “austere” (more colourful and fun!)

  13. “I am C-3PO, human-Cyborg Relations...” “Don’t need a protocol droid…” Protocols

  14. Block 2 Part 1 • Good, interesting material • And quite brief! • Don’t worry too much about EDI / EDIFACT • For historical interest only • Make sure you understand: • Structured and unstructured data • What a protocol is (next slide)

  15. What Is a Protocol? • 1 - The pattern of message exchange • How is an interaction started? Who can start it? • How do we take turns? Synchronous or asynchronous? • What is the procedure for handling errors? • How to manage acknowledgements? • How to end / complete the interaction • Interesting aside… • If we expect the other guy to acknowledge our message was received, should we acknowledge their acknowledgement?

  16. What Is a Protocol? • 1 - The pattern of message exchange • How is an interaction started? Who can start it? • How do we take turns? Synchronous or asynchronous? • What is the procedure for handling errors? • How to manage acknowledgements? • How to end / complete the interaction • Interesting aside… • If we expect the other guy to acknowledge our message was received, should we acknowledge their acknowledgement? • Look up “The Two Generals’ Problem” on Wikipedia

  17. What Is a Protocol? • 2 – The format and semantics of messages • The arrangement of data • Where stuff starts and ends • What format the data is in • The difference between “protocol data” and “payload data” • What does the data mean? • Especially the “protocol data” e.g. flags, lengths, checksums • The “payload data” mayjust be “data” (i.e. treated as a single “chunk” of bytes

  18. Example ProtocolS • “Good Evening” • “Table for four please” • “This way please” • “Thank you” • “Here are your menus, would you like to order your drinks now?” • GET /t320/index.cfm HTTP/1.1 • Host: dell400.open.ac.uk • HTTP/1.1 200 OK • Server: Microsoft-IIS/4.0 • Date: Mon, 01 Jul 2002 13:38:27 GMT • Content-Length 2722

  19. Layered PRotocols • Block 2 Part 3 – Message Exchange over HTTP • Important to understand “Layered Protocols”

  20. “What’s in there?” “Only what you take with you…” XML

  21. XML terminology • <item about=“this”>A string of Characters</item> Name Value Attribute ElementContent Start Tag End Tag Element

  22. XML Data • Can be in the content… • <h1>My Webpage</h1 • Can be in an attribute value… • <imgsrc=“http://xkcd.org/1011.jpg”/> • Can be the presence of the element itself… • <hr />

  23. METAData • It is a useful distinction to talk about “data” and “metadata” • “Metadata” is “data about the data” • It is NOT the data itself, but is additional information that helps interpret or categorise the data • Could also consider it “primary” vs. “secondary” data • <fuel-load units=“litres”>10000</fuel-load> • Or the MP3 “tags” that provide artist, album, & genre details

  24. Creating XML • By hand, in an editor • Not typical, except authoring of structured documents • Where there is much more content than structure • E.g. Oxygen XML/Author to create product manual • Programmatically (i.e. through a computer program) • By writing out XML as a text file • Need to know ALL the data beforehand • (Except in very trivial cases, like log files) • Need to know ALL the structure beforehand • Or use a DOM Interface…

  25. Creating XML through a dom interface • Remember, XML has a hierarchical (tree like) structure • So we can create that tree by adding “branches” as required, where required (and then move them around!) • A typical DOM interface has functions like: • Document.CreateElement(ElementName) • Element.AddAttribute(Name,Value) • Element.AddChild(Element) / Element.RemoveChild() • Element.AddContent(CharacterData) • When complete, write out as an XML file • Document.CreateXMLFile(RootElement)

  26. XML Hierarchy

  27. Reading XML - DOM • We can also use a DOM interface to read XML • Typical functions include: • Document.ReadXMLFile(Filename) • Element.GetAttribute(Name) • Element.GetContent() • Element.GetChildren() • In this way data can be read and used in a program • Points to note: • ALL the data is read in by the program • “Navigation” can be long-winded for “deep” trees

  28. Reading XML – SAX • An alternative approach is to use a SAX interface • XML is read element-by-element • You tell the interface which elements you want to work on • Typical interface might be: • Create a “call back” table of elements and function calls • (i.e. call function X when you find element E) • ParseFile(Filename, CallBackTable) • How do you specify the elements you need? X-PATH

  29. X-PATH • Examples: • /contact/name/familyname • //town • Others: • //Element[name=“value”] • These can get really long and complicated! (Debug tools available)

  30. Converting XML • What if want to reorganise XML to match another schema? • We already know one way: • Use DOM to read in “old” XML, rearrange as required, write out “new” XML • But this requires a program to be written • Alternative is an XSLT processor • Takes an existing XML file, and a specification of changes • Creates new XML file based on: • An specification of an element pattern (X-PATH!) • Some instructions as to what to output • All these instructions are written in XML! • But can be tricky – need to understand recursion…

  31. XSLT PROCESSOR Transform Specification (XML) Output XML File Input XML File XSLT Processor (application)

  32. Restricting XML • With XML we can define elements and attributes at whim • It is useful to restrict XML to a specific “vocabulary” • So we can define it, share it, re-use it • Originally – Document Type Definitions ( DTD ) • Kinda weird syntax – don’t worry about this • But note that XHTML is still defined by a DTD • Newer approach XML-SCHEMA • Uses XML to define other elements, attributes • How they can be arranged • What they can contain (e.g. facets)

  33. XML SCHEMAS • Best developed using a graphical tool • E.g. Eclipse • But there are better (paid for) tools • Other tools may validate XML against a schema • E.g. DOM Interface usually has option to validate • Document.ReadXMLFile(FileName,Validate=true) • If you know (and trust) the source it may not always be necessary to validate files (does take time & resources)

  34. Schema Design • Karl’s Tips for Real Life Schema Design • (Not really necessary for the TMA – i.e. no extra marks!) • Always include schema version no. in your XML • Helps to maintain backwards compatibility • Use element content for data, attributes for metadata • Makes difference clearer, easier to set defaults • Look for opportunities to re-use elements & data • But be aware cannot enforce internal consistency in schema (e.g. unique IDs, cross-references etc.) • Be careful placing mandatory elements (ideally, first) • Helps with forward compatibility (new elements)

  35. "You're in a desert, walking along in the sand, when all of a sudden..." "Is this the test now?" TMA02 Tips Q & A

  36. TMA02 Q1 • Based on example data gathering form, develop a schema and example XML data file • You are developing a data representation NOT trying to reproduce the form • The form is provided as an example of how the data is gathered at present • Remember, we want a format in which data can be used in for automation

  37. Example of use PossibleDestinations: Other programs Printouts Different XML file PossibleSources: Typed by a person Created in another program Computer Program XMLDocument Possible Actions: Use for database lookup Combine with other data Store in a database Database

  38. The “right” answer? • There isn’t one! • There is a wide range of answers because: • XML can be used in various ways • Elements vs. Attributes • Element organisation / hierarchy / optionality • Element & attribute naming • Strictness vs. flexibility • Hence Q1(c) • Explain, in your terms, why you made particular choices • Any, sensible justification is fine!

  39. TMA02 Q2 • (a) Tests your understanding of namespaces • Well covered in the course material • (b) Comparing various XML tools in a specific scenario • Some in course material, but also this presentation • (c) Industry Standards vs bespoke development • Standards were covered in Block 1 • Think about pros and cons • (d) Short report on using image metadata • See this presentation about “metadata” • Don’t worry about references

  40. TMA02 Tips • There are no tricks or traps! • So don’t look for them… • Largely straight forward • But don’t leave it too late to start… • No word count limits • But longer is not always better! • Look at the marks breakdown • Use this to guide your time

  41. Any Questions? • Please type below or in the chat box • Click on the “Raise your hand” icon to use your microphone

  42. “Difficult to see, always in motion is the future” What Next?

  43. Thank you for watching! • TMA02 Submission date 2nd May • Block 3 Material available 16th April • Any questions or problems email k.r.wilcox@open.ac.uk • Check the Tutor Group Forum for slides & recordings • Next tutorial: 28th May

More Related