Contenuti time-based e personalizzati sul cellularde


Published on

Published in: Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Contenuti time-based e personalizzati sul cellularde

  1. 1. Contenuti time-based personalizzati ed in tempo reale sul tuo cellulare <ul><ul><li>Alberto Lagna </li></ul></ul><ul><ul><li>Chief Technology Officer Fluidtime </li></ul></ul>
  2. 2. background <ul><li>General trend : adoption of more flexible time habits </li></ul><ul><li>Business trend: business digitalisation and just in time </li></ul><ul><li>Need: communication of dynamic time information </li></ul><ul><li>Potential: providing acces to tailor-made content </li></ul>
  3. 3. potential areas for dynamic data <ul><li>Travel: real-time information </li></ul><ul><li>Events: calendar planning </li></ul><ul><li>Business: keeping customers and logistics up to date </li></ul><ul><li>Resources: coordinating shared resources </li></ul><ul><li>Appliance: monitoring remote devices </li></ul><ul><li>Groups: synchronise communities </li></ul>
  4. 10. existing media for dynamic content Web extensive information stationary, difficult to navigate on mobile devices, requires constant data reload Mail simple and easy to use stationary, not useful for constant status updates, difficult information handling Sms widely accepted costly for constant updates Voice supported by all phones takes time to grasp information, difficult to manage multiple sources
  5. 11. mobile solutions from technically feasible to services with high usability and attractiveness <ul><li>SMS - arrival time per text message </li></ul><ul><li>WAP - browser based information retrieval </li></ul><ul><li>Java - applications for focused information monitoring </li></ul>
  6. 12. SMS <ul><li>Pro </li></ul><ul><li>• Is well known and supported by all mobile phones </li></ul><ul><li>• It is relatively easy to get an update for a single stop </li></ul>telephone number? number of stop? what if the time on my phone is different? have to translate the informatio n! Con • Costs: 10 - 50 Cents per update • No integrated support
  7. 13. WAP <ul><li>Pro </li></ul><ul><li>• Is known and supported by 95% of mobile phones </li></ul><ul><li>• cheaper than SMS </li></ul><ul><li>• WAP pages can support the search for information </li></ul>difficult handling more information can be displayed Con • navigation can be difficult • less accepted than SMS • for each updated the entire content of the page has to be reloaded
  8. 14. Java Application (J2ME) <ul><li>Pro </li></ul><ul><li>• basic information is stored locally and can be retrieved quickly </li></ul><ul><li>• fast and simple navigation </li></ul><ul><li>• personalisation without subscription </li></ul>Con • supported by 60% of mobile phones • application has to be loaded onto the mobile phone combining several stops within one interface
  9. 15. requirements and success factors <ul><ul><li>Fast - Immediate access to information </li></ul></ul><ul><ul><ul><li>“ I don’t want to browse a minute to reach content” </li></ul></ul></ul><ul><ul><li>Simple - Coherent language and interaction </li></ul></ul><ul><ul><ul><li>“ I don’t want to relearn a new interface for every content” </li></ul></ul></ul><ul><ul><li>Low Cost - Transparent pricing schemes </li></ul></ul><ul><ul><ul><li>“ I don’t understand todays complex tariff structures” </li></ul></ul></ul><ul><ul><li>Useful - Emotional identification </li></ul></ul><ul><ul><ul><li>“ I only make phone calls” </li></ul></ul></ul>
  10. 16. the Fluidtime answer <ul><li>Fast - tuned for immediate access </li></ul><ul><li>Simple - Coherent language across horizontal domains </li></ul><ul><li>Low Cost - 3 Euro/month or free of charge </li></ul><ul><li>Useful - Being always up-to-date and informed while on the move </li></ul>
  11. 17. What is Fluidtime? <ul><li>Fluidtime is a platform to deliver time-based content to mobile subscribers in a customised and real-time fashion. </li></ul><ul><li>(Alberto Lagna – CTO Fluidtime) </li></ul>
  12. 18. How is Fluidtime made? <ul><li>a platform </li></ul><ul><li>to deliver time-based content </li></ul><ul><li>to mobile subscribers </li></ul><ul><li>in a customised </li></ul><ul><li>and real-time fashion. </li></ul>
  13. 19. Java Conference 2005 Fluidtime platform
  14. 20. Fluidtime time-based concepts <ul><li>Server </li></ul><ul><ul><li>following a Time Model </li></ul></ul><ul><ul><li>hosting Time Windows </li></ul></ul><ul><ul><li>used by Time Agents through Time Windows </li></ul></ul><ul><li>Client </li></ul><ul><ul><li>Mobile, web, within a calendar client </li></ul></ul><ul><li>Time Window </li></ul><ul><ul><li>the content </li></ul></ul>
  15. 21. Fluidtime Time Agent <ul><li>a user (human or software agent) that gets updated by the platform </li></ul><ul><li>a user (human or software agent) that updates the platform </li></ul>
  16. 22. Fluidtime server <ul><li>Central unit for the data communication. </li></ul><ul><li>Similar to a standard web server </li></ul><ul><ul><li>processes user requests </li></ul></ul><ul><ul><li>retrieves and manipulates external data from content providers </li></ul></ul><ul><ul><li>it stores and manages data </li></ul></ul><ul><li>schedules user updates and mirrors all the content from the different mobile phone users. </li></ul><ul><li>Java 2 Enterprise Edition application, integrating with external system through web services and exposing HTTP and XMPP interfaces to clients </li></ul>
  17. 23. Fluidtime client <ul><li>the client of the platform </li></ul><ul><li>digitally connected calendar </li></ul><ul><li>the user can set different heterogeneous “watches” (e.g. on a flight, on an event, on a meeting) and monitor the evolution of every watch through the client. </li></ul><ul><li>J2ME, web, WAP, standalone client, SMS version </li></ul>
  18. 24. Java Conference 2005 Fluidtime window <ul><li>how the information is structured within the client </li></ul><ul><li>represents a certain information context in a multimedia manner. </li></ul><ul><li>enables users to interact with and see dynamic timings of public and private services, groups of people, the status of events, etc. </li></ul>
  19. 25. Java Conference 2005 TECH CONTENT AHEAD
  20. 26. How is Fluidtime made? <ul><li>a platform </li></ul><ul><li>to deliver time-based content </li></ul><ul><li>to mobile subscribers </li></ul><ul><li>in a customised </li></ul><ul><li>and real-time fashion. </li></ul>
  21. 27. main use cases
  22. 28. supported channel
  23. 29. Technical architecture
  24. 30. Mobile Client – Server integration <ul><li>pull </li></ul><ul><ul><li>http, wap </li></ul></ul><ul><li>push </li></ul><ul><ul><li>xmpp (the jabber protocol), sms </li></ul></ul>
  25. 31. Fluidtime client <ul><li>The mobile client </li></ul><ul><ul><li>is a java J2ME framework </li></ul></ul><ul><ul><ul><li>developed by fluidtime </li></ul></ul></ul><ul><ul><ul><li>hosting TimeWindows </li></ul></ul></ul><ul><li>A Time Window </li></ul><ul><ul><li>a GUI </li></ul></ul><ul><ul><ul><li>specified in terms of the TimePilot framework objects </li></ul></ul></ul><ul><ul><li>a set of rules </li></ul></ul><ul><ul><ul><li>used by the TImePilot framework to render updates to the screen </li></ul></ul></ul><ul><li>Channels </li></ul><ul><ul><li>java phone, web, wap, sms </li></ul></ul>
  26. 32. Java Conference 2005 Layers and tiers user business workspace resource services infrastructure application Underlying technical and communication capabilities Common utility functions applied across tiers Application level business logic Tiers Layers Presentation and device independence User session and data manipulation Business processes and entities Shared enterprise resources
  27. 33. Fluidtime client components <ul><li>A core framework </li></ul><ul><ul><li>In the future could be released open source </li></ul></ul><ul><ul><li>To easily develop MVC, REST ws, dynamic mobile application </li></ul></ul><ul><ul><li>Made up of: </li></ul></ul><ul><ul><ul><li>Cache </li></ul></ul></ul><ul><ul><ul><li>XML util (based on </li></ul></ul></ul><ul><ul><ul><li>REST ws multitransport </li></ul></ul></ul><ul><ul><ul><li>MVC made on tiles </li></ul></ul></ul><ul><ul><ul><li>Commons services (logger, command factory, date helper, navigation helper, prefs, RMS helper) </li></ul></ul></ul>
  28. 34. Java Conference 2005 FT Client components – The cache <ul><li>Data lifecycle: </li></ul><ul><ul><li>- Read from RMS (if not empty) else read from XML in jar </li></ul></ul><ul><ul><li>- Copy to cache (memory) </li></ul></ul><ul><ul><li>- Update cached objects from push or pull </li></ul></ul><ul><ul><li>- Before closing app save to RMS </li></ul></ul><ul><li>The cache implements an interface similar to the hibernate Session </li></ul><ul><ul><li>public void save(Entity e) throws ResourceException; </li></ul></ul><ul><ul><li>public void delete(Entity e) throws ResourceException; </li></ul></ul><ul><ul><li>public Entity find(String query) throws ResourceException; </li></ul></ul><ul><ul><li>public void reset() throws ResourceException; </li></ul></ul>
  29. 35. FT Client components – XML utils <ul><li>Based on the javolution OS library </li></ul><ul><ul><li>the encoding of objects into XML </li></ul></ul><ul><ul><li>reconstruction of the object graph from XML. </li></ul></ul><ul><ul><li>Encoding specified through static inner classes: </li></ul></ul><ul><ul><ul><li>Pros no schema needed </li></ul></ul></ul><ul><ul><ul><li>Cons no schema driven </li></ul></ul></ul><ul><ul><li>Pull parser several times faster than conventional parsers. </li></ul></ul><ul><li>An XMLAdapter to drive the conversions using the javolution support </li></ul><ul><ul><li>Added the multiple reference concept (lacking in javolution) </li></ul></ul>
  30. 36. FT Client components – XML utils <ul><li>Sample of mapping (obj into XML) + refid support (through a Map) </li></ul><ul><li>public static final XmlFormat TIME_WINDOW_XML = new XmlFormat( </li></ul><ul><ul><li>&quot;com.fluidtime.timepilot.domain.TimeWindow&quot;) { </li></ul></ul><ul><li>public void format(Object obj, XmlElement xml) { </li></ul><ul><ul><li>TimeWindow tw = (TimeWindow) obj; </li></ul></ul><ul><ul><li>xml.setAttribute(&quot;id&quot;, tw.getId()); </li></ul></ul><ul><ul><li>xml.setAttribute(&quot;name&quot;, tw.getName()); </li></ul></ul><ul><ul><li>addIdToObjMap(tw); </li></ul></ul><ul><li>} </li></ul><ul><li>where the refid is used: </li></ul><ul><li>xml.setAttribute(&quot;timeWindows&quot;, relationRef(twg.getTimeWindows())); </li></ul>
  31. 37. FT Client components – REST ws <ul><li>Representational State Transfer (REST) is an architectural style for distributed hypermedia systems like the world wide web. </li></ul><ul><li>Simple web-based interface that uses XML and HTTP without the extra abstractions of MEP-based approaches like the web services SOAP protocol </li></ul><ul><li>used by Google, Yahoo, Amazon, eBAY, Flickr, Fluidtime (see </li></ul><ul><li>our APIs </li></ul><ul><li> get.action ?id=1&id=2 </li></ul><ul><li> post.action ?xml=..... </li></ul>
  32. 38. FT Client components – REST ws <ul><li>Our REST web services approach is multi-transport : </li></ul><ul><li>HTTP </li></ul><ul><li>Bluetooth </li></ul><ul><ul><li>to support inexpensive, ad-hoc network in closed area </li></ul></ul><ul><ul><li>using Ben Hui ( </li></ul></ul><ul><ul><li>experimenting Jadabs (, an OSGI implementation of the TU of Zurich </li></ul></ul>
  33. 39. FT Client components – MVC <ul><li>Model-View-Controller (MVC) is a software architecture that separates </li></ul><ul><ul><li>an application's data model, </li></ul></ul><ul><ul><li>user interface </li></ul></ul><ul><ul><li>and control logic </li></ul></ul><ul><li>into three distinct components so that modifications to the view component can be made with minimal impact to the data model component. </li></ul><ul><li>view based on the MIDP2 CustomItem, building our own “tiles” </li></ul>
  34. 40. FT Client components – commons <ul><li>Common services, usually available OS on J2SE/EE, not so standardised yet on J2ME: </li></ul><ul><ul><li>Logger , inspired by log4j </li></ul></ul><ul><ul><li>CommandFactory , implementation of the command pattern to easy the development of the GUI </li></ul></ul><ul><ul><li>DateHelper , to easily manage Date conversion (ah, the J2SE DateFormatter!) </li></ul></ul><ul><ul><li>NavigationHelper , to easy the Windows navigation </li></ul></ul><ul><ul><li>public static Window getNext (int index) </li></ul></ul><ul><ul><li>public static Window getPrevious (int index) </li></ul></ul>
  35. 41. FT Client components – commons <ul><li>RMSHelper used to </li></ul><ul><ul><li>easily serialize objects into the RMS ( Record Management System the persistent storage for MIDlets) </li></ul></ul><ul><ul><li>desialize them into the memory (in our case the cache) </li></ul></ul><ul><li>public final static synchronized Object read () </li></ul><ul><li>public static synchronized void save (Object o) </li></ul><ul><li>ResHelper , loads file from the res dir (imgs and txt) to the memory </li></ul><ul><li>Prefs , reads properties from the jad, keeps them in memory and stores update in RMS </li></ul>
  36. 42. Whole client optimisation <ul><li>Using proguard to optimize the classes </li></ul><ul><ul><li>free Java class file shrinker, optimizer, and obfuscator ( </li></ul></ul><ul><ul><li>integrated in the WTK using ProGuardWTKGlue </li></ul></ul><ul><ul><li>with our own customisation </li></ul></ul><ul><li>optimization - shrink - no obfuscation (due to the use of javolution) </li></ul><ul><li>from 300Kb to 180Kb... </li></ul><ul><li>no code optimization needed (done by proguard) </li></ul>
  37. 45. value chain Fluidtime facilitates the exchange of dynamic time information Content aggregation and management Mobile application development
  38. 46. Fluidtime references <ul><li>Implementation of three service pilots: </li></ul><ul><ul><li>Public transport Turin </li></ul></ul><ul><ul><ul><li>in cooperation with Gruppo Torinese Trasporti </li></ul></ul></ul><ul><ul><li>Laundry service Ivrea </li></ul></ul><ul><ul><ul><li>in cooperation with Miele, Germany </li></ul></ul></ul><ul><ul><li>Supply chain status service </li></ul></ul><ul><ul><ul><li>in cooperation with Schachermayer, Austria </li></ul></ul></ul><ul><li>First live event </li></ul><ul><ul><li>Java Conference Milano </li></ul></ul>23
  39. 47. Travel : public transport Torino 23
  40. 48. Appliance : laundry service 23
  41. 49. SupplyChain : production status 23
  42. 50. Event : Java Conference xx
  43. 51. Useful links <ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul>
  44. 52. <ul><ul><li>Alberto Lagna </li></ul></ul><ul><ul><li>CTO [email_address] </li></ul></ul><ul><ul><li>Antonio Terreno </li></ul></ul><ul><ul><li>Mobile Development </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li> </li></ul></ul>Q&A