Web Information Systems (WE-DINF-11912): Lecture 04 - Universal Client Access

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Web Information Systems (WE-DINF-11912): Lecture 04 - Universal Client Access - Presentation Transcript

    1. Web Information Systems Universal Client Access Prof. Beat Signer Department of Computer Science Vrije Universiteit Brussel http://vub.academia.edu/BeatSigner 2 December 2005
    2. Web Interfaces to Databases  Universal client (front-end) for databases (back-end) that are located anywhere around the world  no application-specific software has to be installed on the client side (e.g. just a browser)  While early interfaces were mainly HTML-based, single channel access is often no longer sufficient  web technologies are nowadays used to deliver information to a range of devices  multi-channel access/interfaces  how can multiple input/output channels be supported with minimal effort? October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 2
    3. Multi-Channel Access  The idea is to reuse most of the application logic and only adapt the final rendering step (visualisation)  A possible solution is to use an intermediary and media neutral format (e.g. XML)  middle-tier retrieves information from databases or services - either the information is already retrieved in XML or the middle-tier creates new XML documents  use XSLT to transform the intermediary XML format to the appropriate output format - type of client for example identified by the User-Agent HTTP header field  Two types of user interfaces  generic database interfaces  application-specific interfaces October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 3
    4. XML Storage  Use file system to make XML documents persistent  problems: document size, versioning, concurrency, security  Use RDBMS to store XML documents  XML-enabled databases  e.g. Oracle 11g offers features to query XML documents that have been stored in a field  Use native XML database (NXD)  e.g. Software AG's Tamino  Dynamically generate the XML documents from the database content rather than storing XML itself  publishing of DB content to XML documents  shredding of XML documents to store them in DB tables October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 4
    5. XML Storage …  Object Database Management Systems (ODBMS) offer advantages when dealing with objects that have complex relationships  the OMS Java ODBMS will be used in some of the examples October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 5
    6. XML for Data Interchange  Standard representation to exchange information between different systems  General way to query data from different systems  e.g. via the XML Query (XQuery) language  Connect applications running on different operating systems and computers with different architectures  XML Remote Procedure Call (XML-RPC)  Simple Object Access Protocol (SOAP) which is a successor of XML-RPC and used for accessing Web Services - discussed later in the course October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 6
    7. XML-RPC  XML-RPC specification released in April 1998  Advantages  XML-based Esperanto understood by different applications  HTTP as carrier protocol  not tied to any single object model (like CORBA etc.)  easy to implement (based on HTTP and XML standards)  light-weight protocol  built-in error handling  Disadvantages  slower than specialised protocols used in closed networks October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 7
    8. XML-RPC Request and Response POST /RPC2 HTTP/1.0 HTTP/1.1 200 OK User-Agent: Java1.2 Connection: close Host: macrae.vub.ac.be Content-Length: 159 Content-Type: text/xml;charset=UTF-8 Content-Type: text/xml Content-length: 245 Server: macbain.vub.ac.be <?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?> <methodCall> <methodResponse> <methodName>Math.multiply</methodName> <params> <params> <param> <param> <value><double>32768.0</double></value> <value><double>128.0</double></value> </param> </param> </params> <param> </methodResponse> <value><double>256.0</double></value> </param> </params> </methodCall> XML-RPC Request XML-RPC Response October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 8
    9. XML-RPC Error Message HTTP/1.1 200 OK Connection: close Content-Length: 159 Content-Type: text/xml Server: macbain.vub.ac.be <?xml version="1.0" encoding="ISO-8859-1"?> <methodResponse> <fault> <value> <struct> <member> <name>faultCode</name> <value><int>873</int></value> </member> <member> <name>faultString</name> <value><string>Error message</string></value> </member> </struct> </value> </fault> </methodResponse> XML-RPC Response October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 9
    10. XML-RPC Scalar Values XML-Tag Type Corresponding Java Type <i4> or <int> four-byte signed integer Integer <boolean> 0 or 1 Boolean <string> ASCII string String <double> double-precision signed float Double <dateTime.iso8601> date/time Date <base64> base64-encoded binary byte[] October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 10
    11. XML-RPC Composed Values XML-Tag Type Corresponding Java Type A structure contains <member> elements and <struct> each member contains a Hashtable <name> and a <value> element An array contains a single <data> element, which can <array> Vector contain any number of <value> elements  Complex data types can be represented by nested <struct> and <array> structures October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 11
    12. XML-RPC Example: GOMES  Object-Oriented GUI for the Object Model Multi- User Extended Filesystem  GOMES is implemented in Java and uses XML-RPC to communicate with the Object Model Multi-user Extended File System (OMX-FS) which was XML-RPC written in the Oberon programming language OMX-FS October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 12
    13. Framework for Universal Client Access  Generic database interface instead of developing a new interface from scratch for each new device type  use a technology which enables the separation of content from its representation (XML)  rendering based on the user agent type requesting the data (XSL)  The presented eXtensible Information Management Architecture (XIMA) is based on  OMS Java object database - application data  Java Servlet Technology  generic XML database interface  XSLT October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 13
    14. XIMA Architecture HTML WML VXML Browser Browser Browser Main Entry Servlet XML + XSLT Delegation → Response HTML Servlet WML Servlet VXML Servlet Builds XML based on JDOM XML Server OM Model Collections, Associations, multiple inheritance and multiple instantiation OMS Java API OMS Java Workspace October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 14
    15. Generic XIMA Interfaces XHTML Interface WML Interface October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 15
    16. Contextual Information about a Client  The content of a response may be adapted based on  type of client device  browser version  user  user role  user preferences - language, colour, ...  user access history  location  time  ...  XIMA currently uses the User-Agent HTTP header field for identifying the type of client device October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 16
    17. Composite Capability/Preference Profiles  Composite Capabilities/Preference Profiles (CC/PP) is a W3C specification for defining a client's preferences and capabilities  Client sends a request together with their CC/PP profile  CC/PP profiles are decribed by using the Resource Description Framework (RDF)  <resource, property, value> triples  RDF will be discussed later in the course  A CC/PP profile defines a number of components (e.g. hardware) together with their corresponing attributes (e.g. screen resolution) October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 17
    18. CC/PP Example <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:prf="http://www.w3.org/TR/WD-profile-vocabulary#"> <rdf:Description about="HardwarePlatform"> <prf:Defaults Vendor="Nokia" Model="2160" Keyboard="Yes" ... /> <prf:Modifications Memory="32mB" /> </rdf:Description> <rdf:Description about="SoftwarePlatform"> <prf:Defaults OS="EPOC1.0" HTMLVersion="4.01" WAPVersion="1.1" ... /> <prf:Modifications Sound="Off" ... /> </rdf:Description> <rdf:Description about="EpocEmail1.0"> <prf:Defaults HTMLVersion="4.01" /> </rdf:Description> <rdf:Description about="UserPreferences"> <prf:Defaults Language="English"/> </rdf:Description> ... </rdf:RDF>  Supports multiple vocabularies via namespaces October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 18
    19. WML and WAP  Wireless Markup Language (WML) is a markup language for WAP browsers  XML application based on a minimal set of tags  pages are called decks (transfer unit) and they contain cards (navigation unit)  navigation based on tasks (buttons, …) and events (timers, …)  Wireless Application Protocol (WAP) is the protocol used for data exchange between mobile clients and a gateway  handles protocol conversion between HTTP and WAP  compiles WML source text into bytecode  enables the use of established HTTP server technology (Servlets, CGI, Perl Scripts, PHP, …) to serve WML content October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 19
    20. WML and WAP … Client WAP Gateway Web Server WML Protocol Adapters Content 2 3 WMLScript WAP WMLScript Encoder HTTP CGI Scripts 6 5 WMLEncoder Java Servlets 1 WML Decks 7 4 October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 20
    21. WML Example <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="sven" title="Sven"> <p><b>Sven Casteleyn</b> <img src="/images/sven.wbmp" alt="picture sven" /> ... Sven's friend <anchor>William<go href="#william"/></anchor> ... </p> </card> <card id="william" title="William"> <p><b>William Van Woensel</b> <img src="/images/william.wbmp" alt="picture william" /> ... </p> </card> ... </wml>  Deck size limited to ~1.5 kB  Only *.wbmp images supported October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 21
    22. Other WML Tags  <input>  input fields  <select> and <option>  show list of choices  <timer>  automatically trigger the loading of new content  ...  Check the WML tutorial  http://www.w3schools.com/wap/  In the exercise you will have the chance to further investigate WML October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 22
    23. Implications for the XIMA WML Interface  WAP limits the deck size to ~ 1.5 kB  Large OMS Collections have to be transferred in several pieces (sections)  splitting is done by reducing the DOM tree after the WML transformation (if result > 1.5 kB) - retransform the reduced XML document  section size is varied dynamically and memorised for each membertype  Large OMS Instances (too many attributes) also have to be split October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 23
    24. WAP 2.0  Since WAP 2.0 the gateway is no longer required  end-to-end HTTP communication  gateway can still be used to add additional information (proxy)  WML has been replaced by XHTML Mobile Profile (XHTML MP)  however WML is still widely used  XHTML MP  looks like a regular XHTML document with special functionality for mobile devices  sometimes XHTML MP may show different behaviour on different devices (e.g. binding of keys etc.) October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 24
    25. XHTML MP Example: Numbered Menu <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Contacts</title> </head> <body> <p> select a contact: <ol> <li><a href="contacts.php?id=12" accesskey="1">Sven</a></li> <li><a href="contacts.php?id=76" accesskey="2">William</a></li> <li><a href="contacts.php?id=16" accesskey="3">Olga</a></li> <li><a href="contacts.php?id=31" accesskey="4">Wolf</a></li> </ol> </p> </body> </html>  Entries can be selected by pressing the corresponding number October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 25
    26. Why Voice Interfaces?  Trend for ubiquitous information services  small screens, keyboards etc. often clumsy to use  Sometimes it is necessary to have hand-free interfaces  e.g. while driving or operating a machine  Alternative input modality for visually impaired users  Voice interfaces can be accessed by a regular phone  no new device is required  no installation effort  Improvements in speech recognition and text-to-speech synthesis make automatic voice interfaces more feasible  e.g. for call centers October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 26
    27. Why VoiceXML  Application developers do not have to deal with the complexity of speech processing  can build the system using specific SDKs and IDEs  only at the end the system has to be deployed to a voice portal server  Can develop more flexible and user friendly call services  integrated with already existing interfaces for HTML and other channels  can share information infrastructure of other interfaces  Based on web technologies (e.g. XML)  Various VoiceXML outsourcers (voice portals)  hosting of speech processing system and telephony equipment October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 27
    28. VoiceXML Functionality  Input  recognition of spoken input  recognition of DTMF (dual-tone multi-frequency) input  recording of spoken input  Output  speech synthesis (TTS)  recorded audio files  Telephony features (e.g. call transfer, disconnect)  Each dialogue has one or more speech or DTMF grammars associated with it  Events are thrown by the platform under a variety of circumstances (e.g. timeout) October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 28
    29. VoiceXML Architecture Voice Input Voice Output Speech Language Application Speech Speech Text Meaning Text Speech Recogniser Analyser Server Synthesiser Converts voice Extracts meaning Gets data (text) Generates input into text from text from database speech output Application Pronounciation Speech model Grammar database rules  Various solutions  development: IBM WebSphere Voice Server SDK  deployment: BeVocal Cafe Voice Portal October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 29
    30. VoiceXML Architecture (for XIMA) Websphere Voice BeVocal Server SDK Voice Portal Apache Tomcat XIMA Framework Web Server OMS Java October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 30
    31. Basic VoiceXML Concepts  Dialogue  conversational state  each dialogue is either a form or a menu  Form  interaction that collects values for field item variables  Menu  presents user with a choice of options  transition to next dialogue based on choice October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 31
    32. VoiceXML Form Example <?xml version="1.0" encoding="UTF-8"?> <vxml xmlns="http://www.w3.org/2001/vxml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml20/vxml.xsd" version="2.0"> <form id="drinkForm"> <field name="drink"> <prompt>Would you like to order beer, wine, whisky, or nothing?</prompt> <grammar src="drinks.grxml" type="application/srgs+xml"/> </field> <block> <submit next="http://www.wise.vub.ac.be/drinks.php"/> </block> </form> </vxml> October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 32
    33. VoiceXML Menu Example <?xml version="1.0" encoding="UTF-8"?> <vxml xmlns="http://www.w3.org/2001/vxml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml20/vxml.xsd" version="2.0"> <menu id="mainMenu"> <prompt> This is the main menu. What would you like to order? <enumerate/> </prompt> <choice next="#foodForm">food</choice> <choice next="#drinkForm">drink</choice> </menu> ... </vxml>  Check the VoiceXML specification  http://www.w3.org/TR/voicexml20/  In the exercise you will have the chance to further investigate VoiceXML October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 33
    34. Design Phase for XIMA Voice Interface  Define the required functionality  User analysis  motivation, expertise  High level decisions  full-duplex (barge-in)  simple grammars (dynamic)  only synthesised speech (TTS) - prerecorded audio make the system less flexible for changes  Representation of base types  Information flow October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 34
    35. The database contains #Collections and #Associations Would you like to go to the collections, to the associations, directly to an object or back to the main menu? collections associations objects The database contains the The database contains the The database contains #Objects following # collections following # associations Choose a collection Choose an association Choose an object or say back Collection 'name' contains #M Association 'name' contains #A Would you like to list the Would you like to list the members or go back? members or go back? Collection 'name' contains the Association 'name' contains the following # members following # associations Choose a 'domaintype' or Choose one of the members a 'rangetype' or say back Object 'oID' is dressed with type 'type' and currently viewed as type 'type'. It contains #Attr, #Links, and #Methods Would you like to hear the attributes, the links or the methods or go back? The object contains the You can choose among You can choose among You can view the object following # attributes the following links the following methods as the following types Choose a link Choose a method Choose one of the or say back or say back types or say back The result of the method is Result October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 35
    36. Comments to Design  Reduce recognition problems  elimination of similar sounding words from the grammar  addition of optional (filling) words to the grammar (e.g. 'please')  Provide sufficient help functionality  consider introduction of prompt-specific help instead of always active command list  Provide immediate feedback after input has been processed ('OK' prompt) October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 36
    37. Define Flexible Grammars  For example, a yes/no question may be answered by  yes  yeah  sure  yes, that's right  yes it is  no  nope  incorrect  no way  no it's not  … October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 37
    38. XIMA VoiceXML Grammar Example <?xml version="1.0" encoding="UTF-8"?> <vxml ... > ... <grammar type="application/grammar+xml" root="toplevel2" mode="voice"> <rule id="toplevel2"> <one-of> <item> <token>Association</token> </item> <item> <token>Associations</token> </item> <item> <token>Association please</token> </item> <item> <token>Associations please</token> </item> <item> <token>Go to the Association</token> </item> ... </one-of> </rule> </grammar> </vxml> October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 38
    39. Example: Avalanche Forecasting System Project to provide WAP and voice access October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 39
    40. Other XML Applications  Synchronized Multimedia Integration Language (SMIL)  animations (timing, transitions etc.)  Mathematical Markup Language (MathML)  mathematical notations (content and structure)  Scalable Vector Graphics (SVG)  two-dimensional vector graphics (static or dynamic)  InkML  digital ink representation (e.g. from electronic pen)  Note that XML standards can also be combined  e.g. XHTML+Voice Profile 1.0 October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 40
    41. Other XML Applications …  Office Open XML (OOXML)  file format (ZIP) for representing word processing documents, presentations etc. (e.g. *.docx, *.pptx and *.xlsx) - various XML files within these ZIP documents - specific markup languages for different domains (wordprocessingML, presentationML, spreadsheetML, …) <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"> ... <a:p> <a:r><a:rPr lang="en-GB" dirty="0" smtClean="0" /> <a:t>Other XML</a:t> </a:r> <a:r><a:rPr lang="en-GB" dirty="0" smtClean="0" /> <a:t>Applications ...</a:t> </a:r> <a:endParaRPr lang="en-GB" dirty="0" /> </a:p> ... </p:sld> single slide from a pptx file October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 41
    42. Exercise 4  Hands-on experience with XML applications  WML or XHTML MP user interface  VoiceXML user interface October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 42
    43. References  XML-RPC Homepage  http://www.xmlrpc.com  WML Tutorial  http://www.w3schools.com/wap/  VoiceXML Version 2.0  http://www.w3.org/TR/voicexml20/  B. Signer et al., Aural Interfaces to Databases based on VoiceXML, Proc. of VDB6, Brisbane, Australia, 2002  http://www.inf.ethz.ch/~signer/publications/2002a-sngh-vdb.pdf October 15, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be 43
    44. Next Week Web 2.0 Basics 2 December 2005

    + Beat SignerBeat Signer, 1 month ago

    custom

    142 views, 0 favs, 1 embeds more stats

    This lecture is part of a Web Information Systems c more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 142
      • 141 on SlideShare
      • 1 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 5
    Most viewed embeds
    • 1 views on http://www.inf.ethz.ch

    more

    All embeds
    • 1 views on http://www.inf.ethz.ch

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories