An Infrastructure for Intercommunication Between Widgets in Personal Learning Environments

2,369 views
2,301 views

Published on

First official presentation on an international conference of the Widget Server developed at University of Paderborn as part of the Mature-IP Project. This technique could be the breakthrough for intercommunication between widgets in PLEs.

Published in: Technology, Education

An Infrastructure for Intercommunication Between Widgets in Personal Learning Environments

  1. 1. An Infrastructure for Intercommunication Between Widgets in Personal Learning Environments <ul><li>WSKS Symposium, </li></ul><ul><li>17.09.09, Chania, Crete </li></ul><ul><li>Tobias Nelkner, [email_address] </li></ul><ul><li>University of Paderborn </li></ul>http://mature-ip.eu
  2. 2. Create your PLE mashup - well known... MATURE - Continuous Social Learning in Knowledge Networks
  3. 3. Create your PLE (UPDATE) -> with intercommunication MATURE - Continuous Social Learning in Knowledge Networks
  4. 4. Create your PLE (UPGRADE) -> close the gap! MATURE - Continuous Social Learning in Knowledge Networks
  5. 5. Browser Search Widget with Desktop Tag- Cloud Widget MATURE - Continuous Social Learning in Knowledge Networks
  6. 6. Java Chat Widget with Browser Chat Application MATURE - Continuous Social Learning in Knowledge Networks
  7. 7. Widget Server <ul><li>Create groups for widgets to communicate with each other </li></ul><ul><li>Create value added by working in a flow and high responsiveness of UIs </li></ul><ul><li>Extend your widgets in 10 minutes to communicate with each other </li></ul><ul><li>Developers: Use Pre-Configuration of Communication or on-the-fly </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  8. 8. Connecting the widgets with each other --> Pre-Configuration MATURE - Continuous Social Learning in Knowledge Networks
  9. 9. On-the-fly configuration <ul><li>Try out at: </li></ul><ul><ul><li>http://daisy.cs.uni-paderborn.de/SnapDemo/SnapDemo.html </li></ul></ul><ul><ul><li>Or (easier): http://tinyurl.com/SnapDemo </li></ul></ul><ul><li>Password: Mature4ip </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  10. 10. Widget Intercommunication by Drag & Drop MATURE - Continuous Social Learning in Knowledge Networks
  11. 11. Conclusion and Further Work <ul><li>An infrastructure that allows to connect your widgets, also in a mobile context </li></ul><ul><li>Closes the gap between browser based and desktop based PLEs </li></ul><ul><li>Easy to implement, every developer can integrate it </li></ul><ul><li>We need a specification that goes beyond W3C Widget Specification, including input and output format </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  12. 12. <ul><li>handy -> demo --> chat oder search </li></ul><ul><li>browser -> non-browser -> search auf tag cloud </li></ul><ul><li>send message from search to tag cloud -> non-browser </li></ul><ul><li>show flexibility of on-the-fly configuration </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  13. 13. Widget Server - A Messaging Server <ul><li>Overview and Purpose </li></ul><ul><li>Principles </li></ul><ul><li>Integration </li></ul><ul><li>Standards </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  14. 14. Overview <ul><li>Developed as communication engine between applications of different types </li></ul><ul><li>Tries to establish a direct connection between applications (not possible for stateless applications) </li></ul><ul><li>Allows a Point-to-point communication but also a Group-based communication </li></ul><ul><li>Supposed to transmit the content, not only update informations </li></ul><ul><li>intended to create fast responsive usage experience </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  15. 15. The server MATURE - Continuous Social Learning in Knowledge Networks Message Broker (main focus) Widget Repository (needed for deployment of widgets)
  16. 16. Principles MATURE - Continuous Social Learning in Knowledge Networks Widget 1 Widget 2 Widget 4 Widget 3 yellow pages / configuration ... ... ...
  17. 17. Connecting applications - a differentiation <ul><li>Stateless applications (like PHP applications etc.) </li></ul><ul><ul><li>each message exchange only via reload of page </li></ul></ul><ul><ul><li>two different cases: Sending messages and receiving messages </li></ul></ul><ul><ul><li>Sending messages to the server quite easy, basically one function call </li></ul></ul><ul><ul><li>Receiving messages requires much more management effort, on server side and on application side: e.g. polling, message queues, offline status </li></ul></ul>MATURE - Continuous Social Learning in Knowledge Networks W1 S W2
  18. 18. Connecting applications - a differentiation <ul><li>Stateful applications </li></ul><ul><ul><li>connection via „Comet“ or other techniques </li></ul></ul><ul><ul><li>online/offline status of an application is detectable </li></ul></ul><ul><ul><li>high responsive </li></ul></ul><ul><ul><li>event-driven handling of calls </li></ul></ul>MATURE - Continuous Social Learning in Knowledge Networks W1 S W2
  19. 19. Integration <ul><li>Both techniques can be integrated </li></ul><ul><ul><li>flexible adapter technique </li></ul></ul><ul><li>Recommended to use program language specific adapters </li></ul><ul><li>WebService adapter available </li></ul><ul><li>Existing software has to be extended with a few methods: </li></ul><ul><ul><li>connect </li></ul></ul><ul><ul><li>messageHandler </li></ul></ul><ul><ul><li>sendMessage </li></ul></ul><ul><ul><li>(messageLoader in stateless applications) </li></ul></ul><ul><li>API for Java, Flex, (unidirectional) PHP already exist </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  20. 20. Configuration - Who sends to whom? <ul><li>Predefined configuration and on-the-fly configuration </li></ul><ul><li>Predefined: XML configuration, currently very simple </li></ul><ul><li>Configuration could be realised by BOC approach? </li></ul><ul><li><widgets> </li></ul><ul><li>< widget name=&quot;ManagementWidget&quot; > </li></ul><ul><li>< connectgroup name=&quot;demo&quot; purpose=&quot;graz&quot;/ > </li></ul><ul><li></widget> </li></ul><ul><li>< widget name=&quot;TagWidget&quot; > </li></ul><ul><li>< connectgroup name=&quot;demo&quot; purpose=&quot;graz&quot;/ > </li></ul><ul><li></widget> </li></ul><ul><li>< widget name=&quot;WeatherWidget&quot; > </li></ul><ul><ul><li>< connectwidget name=“GoogleMapsWidget“/ > </li></ul></ul><ul><li></widget> </li></ul><ul><li></widgets> </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  21. 21. Pipes and Filter principle <ul><li>Widgets perform certain changes of data and send them to others </li></ul><ul><li>Specification of Widgets necessary </li></ul><ul><ul><li>especially input/output formats </li></ul></ul><ul><li>Additionally, data filters could be applied by server for lowering amount of transferred data </li></ul>MATURE - Continuous Social Learning in Knowledge Networks Filter Filter Pipe Pipe
  22. 22. Resulting requirements - ToDo <ul><li>Widget description specification </li></ul><ul><ul><li>including data input-/output-format </li></ul></ul><ul><ul><li>events </li></ul></ul><ul><ul><li>maybe data filters </li></ul></ul><ul><li>Context persistency </li></ul><ul><ul><li>last inputs by users </li></ul></ul><ul><ul><li>GUI parameter </li></ul></ul><ul><ul><li>SSO solution </li></ul></ul><ul><ul><li>for research possible: saving usage behaviour </li></ul></ul>MATURE - Continuous Social Learning in Knowledge Networks
  23. 23. MATURE - Continuous Social Learning in Knowledge Networks
  24. 24. Client/Server Data Transfer <ul><li>Comet/Reverse Ajax </li></ul><ul><ul><li>Transmitting data by pushing from server to client via a long-opended connection </li></ul></ul><ul><ul><li>„ Comet improves application responsiveness for collaborative, multi-user applications and does it without the performance headaches associated with intermittent polling.“ [Alex Russell] </li></ul></ul><ul><ul><li>Allows event driven data handling for (almost) all kinds of applications </li></ul></ul><ul><li>Polling </li></ul><ul><ul><li>Less performance, higher delay, easy to implement </li></ul></ul><ul><ul><li>Effort has to be invested on serverside </li></ul></ul><ul><ul><li>Less effort for changes in existing script based web applications </li></ul></ul>MATURE - Continuous Social Learning in Knowledge Networks
  25. 25. Some words about standards <ul><li>W3C Widget Specification - Packaging and Configuration </li></ul><ul><ul><li>“ Widgets are client-side applications that are authored using Web standards, but whose content can also be embedded into Web documents.“ [W3C WG] </li></ul></ul><ul><ul><li>Spec describes a container for Widgets: a Widget Package </li></ul></ul><ul><ul><li>a Widget Package contains all content of a widget </li></ul></ul><ul><ul><li>Standardised deployment for widget environments, windows mobile, mobile phones (D5?), Vista Sidebar, Yahoo‘s Widget Engine, and more </li></ul></ul><ul><ul><li>Status of Packaging part: Candidate Recommendation since July </li></ul></ul>MATURE - Continuous Social Learning in Knowledge Networks
  26. 26. Relation to Communication Server <ul><li>Widget definition in our sense broader </li></ul><ul><li>APIs and Events Specification </li></ul><ul><ul><li>early version in Widget Specification familiy </li></ul></ul><ul><ul><li>could help to have standard interface methods </li></ul></ul><ul><li>No contradiction to use of a communication server </li></ul><ul><li>Supporting this standard makes sense at least for Packaging and Configuration part </li></ul><ul><li>Communication server shall have a repository for providing widgets, usage not mandatory </li></ul>MATURE - Continuous Social Learning in Knowledge Networks
  27. 27. References <ul><li>Comet: Low Latency Data for the Browser, Alex Russel, March 2006, URL (last seen on August 24th) : </li></ul><ul><li>http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/ </li></ul><ul><li>W3C Widget Specification Family, </li></ul><ul><li>URL (last seen 08/29/2009: </li></ul><ul><li>http://www.w3.org/TR/widgets/ </li></ul>MATURE - Continuous Social Learning in Knowledge Networks

×