Web of Things by Nam Vu Hoang T-106.5820 Contents Internet of Things vs. Web of Things Evolution of The Web Why Web in terms of browsers is very limited? Future vision Why Web of Things? Basics of Web of Things (W3C) Agents, not Web pages Summary and questions Reference Internet of Things vs. Web of Things What is Web of Things? The Web of Things is a vision about how to use Web standards to develop applications for networked devices in the Internet of Things Evolution of Web History of Web Web 1.0, Web 2.0, Web 3.0/4.0 Web application framework Several new Web technologies A tunnel vision why Web in terms of browsers is very limiting? World Wide Web: first steps 1980 Tim Berners-Lee developed “ENQUIRE” as a simple hypertext system for CERN 1989 he presented Project proposal for WWW Birthplace of Web – CERN (International research center for high energy physics located near Geneva) ENQUIRE: simple hypertext program Eary Web Browser World Wide Web Consortium Founded in 1994 and directed by Tim Berners-Lee Main international standards organization for theWWW Produced over one hundred Recommendations covering HTML, XML, CSS, Web Services, Semantic Web & many more ~320 members (Apple, BBC, Ericson, Google, LG, MS, Nokia, …) Open process and patent policy designed to enable royalty fee implementations of W3C specifications From initial simplicity to rapid evolution Core of Web (really simple to encourage widespread adoption): Simple hypertext markup language (HTML) Simple protocol (HTTP) with global addresses Designed to be rendered on wide range of devices (depends on browser) Rapid evolution: Exponential growth in Web traffic Addition of capabilities to HTML & HTTP New Web and XML standards Plenty of Web technologies Competition with proprietary formats Dozens of web browsers Browser wars won by Internet Explorer So what is the Web? The Web is… From usual user perspective: …the set of HTML pages that can be accessed fromWeb browsers According to W3C: ...an information space in which the items of interest, referred to as resources, are identified by global identifiers called Uniform Resources Identifiers (URI) http://www.w3.org/TR/webarch/ Earlier version (in terms of a system rather than a space): … a networked information system consisting of agents (programs acting on behalf of a person, entity, or process) that exchange information http://www.w3.org/TR/2003/WD-webarch-20030627/ Evolution of Web Focus Web 1.0 Web 2.0 Web 3.0/4.0 (?) Static Web pages InteractiveWeb applications 3D Web, Semantic Web, Real world web User-to-user, B2C, B2B, etc. Computer-to-computer Users & Machines Central interaction Data publishers Limited group of people Most of Web users Role of users Preliminary passive viewing Active sharing, interchanging data No of users 45 000 000 (1996) 1 000 000 000 000 (2006) Typical samples Portals, home pages, simple web applications (guest books) Social networks, blogs, wikis, video sharing, hosted services, mashups etc. ("the computer is generating new information", rather than humans) Sharing, controlling real things Web application framework Example: Java Web Software Architect http://www.conjective.ch/images/j4e-architecture.gif A few words about new Web technologies Semantic Web is man-made Web of Data that is meaningful to computers its central part is the graph-based data model Resource Description Framework (RDF) labeled links can be regarded as subject-predicate- object triples (sentences) The Semantic Web stack A few words about new Web technologies Mashup is a Web application that uses and combines data, presentation or functionality from two or more sources to create new services. e.g. using open APIs and data sources like Google Map and Wikipedia API to produce enriched results. Web widget is a software widget for Web. It’s small application that can be installed and executed within a web page by an end user. usually provides a single interaction point for the direct manipulation of a given kind of data; typically created in DHTML, JavaScript, Adobe Flash, Java Applet, etc. Tunnel Vision and coming out into the sunlight Conceiving the Web only in terms of today‘s browsers is very limiting Undue focus on HTML and browser APIs What about Other modes of interaction (aural, tactile) Explosion of new kinds of networked devices Distributed applications & end-to-end models Agents acting on behalf of people Semantic Web of symbolic and statistical knowledge Web of trust and human relationships Current Trends of Industry Trend #1: Electronic things are invading us Trend #2: Rapidly evolving network technologies Trend #3: Academic & industry is focusing on Internet of Things, not yet Web of Things Trend #4: Era of smart device application Moore’s Law Microprocessor transistor count double every two years Similar rules for: processor power, memory size, pixels per dollar, etc. Results of improvements with IC technologies and processes Reduced cost for a given gate, pixel, memory capacity count, etc. Rapidly dwindling cost of networking all kinds of devices Microcontrollers is fastest growing segment of computer industry average home now contains 200 cars between 35 and 100 for luxury models Current Trends of Industry Trend #1: Electronic things are invading us increasingly powerful CPUs sensors & actuators ubiquitous Trend #2: Rapidly evolving network technologies Ethernet over twisted pair DSL over copper phone lines Ethernet over building power wiring WiFi and WiMAX (Worldwide Interoperability for Microware Access) Bluetooth ZigBee sensor networks GSM and cellular packet radio Current Trends of Industry (contd.) Trend #3: The future is Internet of Things (post-PC) Cloud Services accessed via heterogeneous devices New risks and opportunities! But: Academic and industry is focusing on networking & low level services Internet of Things, not yet the Web of Things Current Trends of Industry (contd.) Trend #4: Smart device application is fastest growing sector in software development industry use of traditional languages (allow low-level control) platform-depended ? C/C++, Java, C#... HTML, JavaScript, ASP/ASP.NET PHP, JSP, AJAX… C/C++, Java, C#... Future Vision Internet of Things for home and offices Internet of Things for business “Web 3.0 can be defined as the first-generation Metaverse (convergence of the virtual and physical world)” – futurist John Smart, lead author of the Metaverse Roadmap Sample Application of IoT for Home Home network example The Value of IoT for Home and Offices Reduced costs of heating, cooling and lighting for homes and offices Improved physical security and peace of mind Preventative maintenance in advance of appliances breaking down Improved standard of care for the elderly Better choices for home entertainment systems Fulfilling the potential for applications that combine local and remote services Sample Application of IoT for Business Business network example Sample application of Web of Things Future vision (Microsoft) http://www.microsoft.com/office/vision/ The “Social Web of Things” (Ericson): http://youtu.be/i5AuzQXBsG4 Why Web of Things? Problems Web is the solution Web + Things = Web of Things Problems How to create easily interactive applications that can combine various heterogeneous devices: smart sensors/actuators devices which require readers (RFID and barcodes) gateways between different networking technologies devices with programmable behaviour (via XML, scripts or byte codes) and work across: different networking technologies different generations of devices different vendors different trust boundaries? Problems (contd.) How to ensure that yesterday’s services will work with tomorrow’s devices and vice versa mix of product generations and technologies need for layered architecture that cleanly separates out different concerns critical importance of standards? Web is the solution Web is the solution We need an universal protocol that is simple, lightweight, loosely-coupled, scalable, flexible and hopefully… standard: standards encourage a bigger market with many more players & innovation Sounds like… the Web Other advantages: TCP/IP & Web are granted, cheap, ubiquitous Development of Web apps: quick, cheap, popular Get features of Web for free, just connect devices New technologies: cloud computing, Semantic Web, etc. Web + Things = Web of Things Basics of Web of Things (W3C) Web-based resource coordination Context awareness Basic model Model-based layered UI Agents, not Web pages Security and privacy policies Summing service infrastructure Resource coordination How to ensure that devices and services function as part of a distributed application Support for discovery and adaptation Provide descriptions of devices and services (resources) including basis for access control, identity and trust coordination and control services provided by an individual device or a collaboration between multiple devices scheduling and fair access to scarce resources services as an orchestrated sequence of events error handling and recovery Web-based coordination Describing UI and behaviour Markup and/or scripting Using URIs to name devices & services Rich meta-data for describing device capabilities & security policies Exposing device/service as object in local object model Hides addressing/communication details Enable application to continue to work when devices and network technology/topology change Hiding infrastructure model Web oriented models as basis for easier development of service front-ends Hidden infrastructure and associated models The unseen part that keeps the rest afloat Context awareness Models of users, things and their environment What devices are present in my home? What are my personal preferences? Virtual objects as proxies for things Hiding the underlying complexity Addressing, routing, synchronizing Ontologies, APIs and live objects Basic model (W3C) Model-based UI layer cake Motivation: Frequent need for redesign as data models, business requirements and branding changes Different roles and skills of team members people can focus on what they each do best To reduce costs and increase reuse through separation of concerns To outsource tasks of adaptation to particular browsers & devices analogous to compilers Model-based UI layer cake (contd.) Chameleon Reference Framework Layers (with transformations defined between each layer) 1. 2. 3. UI Application task and data models Abstract User Interface modality independent, e.g. “select 1 from n” set size, grouping and ordering considerations Concrete User Interface commitment to modality and broad class of devices 4. e.g. radio buttons vs drop-down menu Final User Interface automatic generation guided by author’s preferences Target HTML, SVG, Flash, Java, .Net, etc. Generation of client and server-side components Web Run-Times Execution environment for web apps Personalized apps that run 24x7 on your behalf Run somewhere in the Cloud Cloud: dynamically provisioned virtual computing resources Combo of mark-up, style sheets scripts, etc. Appear as shareable widgets on web pages Interact with user through real-world things Moving the Web out of the browser! Web-based resource binding Either name resource or provide description URI for resource name or description, or Explicit description XML element, meta data (RDF) or scripting API Implicit or explicit resource binding service Broker and access control may be local or remote Event when resource is bound/unbound or on access control error On success, resource exposed as DOM object Security & privacy policies Web app requests access to a device/service Broker invokes policy engine Policies as rules that express user and provider preferences Over credentials for identity/properties Policies may delegate to trusted 3rd party Privacy policies define obligations for handling of personal data What can it be used for? How long can it be retained for? Security & privacy policies (contd.) Involving a trusted 3rd party for trust management solutions Object compositions Logical device or service that is a composition of others Means to configure devices and services to work together copier = camera + printer commands = microphone + speech recognizer + command grammar gestures = camera + video processor Has its own description in the context models Compositions can be nested as needed Control and event routing Strongly coordinated, no delegation Controller manages access to services All events routed through the control point Weakly coordinated, partial delegation Controller manages access control, but delegates event management Uncoordinated, full delegation Peer to peer communication model Devices responsible for resource management Agents, not Web pages Event transport How to deliver events to devices? Firewalls are intended to block undesired traffic No incoming HTTP connections by default Evolution of mechanisms to tunnel events through Network Address Translation STUN, STUNT, TURN, etc. Skype and success at a cost Bindings to event transport protocols HTTP, SIP, XMPP Client or server? Agent! Agents combines client and server Tunneling through NAT Proxy may arrange for direct link through NAT see STUN, TURN and other technologies Tunneling through NAT Connecting devices between different NATs Public and private agents Private agents may be offline or powered down Enabling offline operation via data synchronization Remote UI Moving beyond Web browsers to new kinds of applications based upon distributed document object models application running on one device is coupled to an UI on another via an exchange of events Layered architecture involving mappings between different levels of abstraction High level events as interpretations of lower level ones Realizing high level tasks as particular UI behaviour Remote UI (contd.) DOM = Document Object Model Abstraction layer for events Summing up Service infrastructure Service front-end Service front-end as web application Defined as markup and scripts May be local installed as widget Exposes UI for Configuring user preferences Browsing context Mashing services Exploits context for personalization Dynamic context Mechanism to maintain a dynamic model of the context in the cloud Context as rich description of the world Updated as devices are added or removed Describes what kinds of devices they are and how to communicate with each device Built on top of existing lower level mechanisms such as UPnP May involve a local device as bridge between local protocols & cloud Web-based broker Web run-time as execution environment for apps expressed as markup/scripts APIs that allow apps to query the context Browser app that allows users to explore what devices are present Events that fire when context changes Broker that allows apps to bind device or service into the web run-time as proxy objects Objects appear as part of application session Session itself is an object you can query Broker is implicit or named service in cloud Web-based broker Web run-time as execution environment for apps expressed as markup/scripts APIs that allow apps to query the context Browser app that allows users to explore what devices are present Events that fire when context changes Broker that allows apps to bind device or service into the web run-time as proxy objects Objects appear as part of application session Session itself is an object you can query Broker is implicit or named service in cloud Authoring framework For use by web developers Layered representations Separates out different design concerns Uses Cameleon Reference Framework XML + event-driven scripts Context aware (authoring and run-time) Pluggable (tool kit vendors) Compiles to delivery platform Guided by author's preferences Deals with platform variations Authoring framework (contd.) Ecosystem layer cake Web technologies for connecting users and real world objects for new kinds of services References Raggett D. (2010). The Web of Things: Extending the Web into the Real World, W3C: http://www.w3.org/2010/Talks/0123-dsr-sofsem.pdf Raggett D. (2007). Toward the Web of Things, W3C: http://www.w3.org/2007/Talks/0926-dsr-WDC/slides.pdf Hoschka P. W3C: Web Standards for the Web of Things, W3C: http://ec.europa.eu/information_society/events/cf/ss0911/document.cfm?doc_i d=19103 TridiumWhite Paper: The Web of Things (2009): http://www.tridium.com/galleries/white_papers/WP-SedonaWeb.pdf Lift11Talk. A Web of Things for Smart Cities. http://www.webofthings.com/wp-content/uploads/2011/02/lift11.pdf Video materials on Web