The Ubiquitous Web
Ubiquitous Computing
Ambient Intelligence
Web Browser as Information Appliance
New Roles for Web Browsers
- Traditionally Web browsers have run on desktop computers
connected to the Internet via LANs or modems
- Cellphones have evolved to support data services and now
include small web browsers
- HTML is now being used for all kinds of applications
- Markup and scripting doesn't have to be used for accessing
the World Wide Web
- It can now be used for user interfaces for many kinds of
local and remote capabilities, cutting development costs over
traditional approaches to application development
- "Browsers" are now a generic user interface component
Trends
- Increasing variety of devices being connected to networks,
not just desktops and cell phones
- First in offices, and now in homes
- Ubiquitous Open Platform Forum
Tokyo, February 2004: 14 electric appliance companies working
collectively to promote Internet accessible electrical appliances
- Web applications need to encompass a much wider range of devices
- Cameras, copiers, scanners, printers, home appliances of all
kinds, environmental sensors and effectors, specialized engines
for speech, handwriting, etc.
Glass Walls
- Things don't have to be the way they are
- Instant messaging and presence are handled through
different software clients and protocols
- Voice calls versus data services
- Fixed user interfaces on devices
- A more powerful framework for Web applications would
enable the removal of these walls
- The Ubiquitous Web is intended to do just that!
Ubiquitous Web
Ubiquitous Web
Device Coordination
- Registering what services a device provides
- Discovering what services are available
- Could be local or remote
- May be physically nearby, but on different networks
- Binding to a service
- Using a service
- Relinquishing a service
- How to expose existing device coordination frameworks
to Web applications?
- UPnP, WSD, Jini, Salutation, ...
Ubiquitous Web Requirements
- Dynamically adapt to user preferences, device capabilities
and environmental conditions
- Extend device capabilities through access to resources
available via the network
- Respond to events over the network from servers and
other devices
- Enable applications involving multiple devices
- Use events to coordinate voice and data to augment human
to human conversations
- Manage resources in terms of temporary and persistent sessions
Enabling Technologies
- The Dynamic Properties Framework
- IDL for describing interfaces for distributed systems
and as used for the W3C DOM
- URIs for naming resources, sessions and interfaces
- Semantic Web for ontologies describing device capabilities
- Web Services for passing commands and events
- Existing device coordination mechanisms
The DOM and Distributed Services
- Web application identifies need for a service
- e.g. speech synthesis and recognition
- It discovers and binds the service
- This exposes the service to the local DOM but hides
the details of how it is implemented
- Local interface can be described in IDL
and exploited via markup or scripting
- For a remote speech engine, the local interface acts
as a proxy for the speech engine
- The implementation could make use of Web Services,
based upon WSDL and SOAP
Discovery
- How does discovery work?
- First step is to describe what is needed
- Next step is to search for matching resources
- Simple multicast query to nearby devices
- Unicast query to search engine (gateway or broker)
- Centralized versus peer to peer search mechanisms
- The selected resource can then be bound for the
duration of the session
- The resource is exposed to
- Markup as an IDREF or URI that other markup can reference
- Scripting as an object with methods that application
functions can call
Discovery
- How does discovery work?
- First step is to describe what is needed
- Next step is to search for matching resources
- Simple multicast query to nearby devices
- Unicast query to search engine (gateway or broker)
- Centralized versus peer to peer search mechanisms
- The selected resource can then be bound for the
duration of the session
- The resource is exposed to
- Markup as an IDREF or URI that other markup can reference
- Scripting as an object with methods that application
functions can call
Universal Resource Identifiers
- URIs for naming resources, sessions and interfaces
- Resources include devices, services, and media resources
- Discovery of resources by name or type
- Additional constraints, e.g. In the same room
- Sessions are temporary lasting for a few web pages,
or persistent, and something an application can join and leave
- Querying for support for named interfaces
- Component Object Model (COM) and QueryInterface method
- Generalization to the Ubiquitous Web
- Querying objects obtained via DPF or resource discovery
- Interface names, IDL and the DOM
- UUID's can be used as URI's
- For instance, in XML descriptions for UPnP 1.0
Descriptions and Ontologies
- Ontologies provide formal description of concepts
and relationships
- W3C Web Ontology Language (OWL)
- W3C Device Independence Working Group is looking at
how OWL could be used for formal definitions of properties
for use with DPF, DISelect and CC/PP
- May be valuable for queries for resource discovery
- Descriptions of devices and services
- Additional constraints e.g. physical location
- What devices are in the room we are meeting?
Role of Web Services
- Like the DPF, the Ubiquitous Web hides the implementation
from markup and scripts
- Simplifies application design
- Enables multiple implementations
- Web Services can be used for messages to
- For services provided by networked devices
- JavaScript object implemented in C++ or Java
- Translate JavaScript method call into a SOAP message
- Translate response message into a DOM event
- Access and update remote properties
- Join and leave a persistent session
Universal Plug and Play (UPnP)
- Well established for attaching peripherals to a
Personal Computer
- Provides mechanism for devices to get an IP address
and to register a description of the device and the
services it provides
- XML description of name, model and vendor
- URIs used for identifying services and devices
- Used to bind to matching device driver
- Discovery mechanism using multicast queries for devices
on local connection, or via broker for devices that are
further away
- Suffers from weak description language and limited
query mechanism
WS-Discovery
- Essentially UPnP recast in terms of Web Services
- Part of Microsoft's plans for Longhorn
- WinHEC'04 describes Web Services stack for devices
called "Web Services for Devices"
- Suffers from similar problems to UPnP
- Weak description language (details lacking)
- No support for rich queries over service descriptions
- No support for liveness info on services
- No support for Internet-scale discovery
- Difficulties in searching across heterogenous networks
- Where devices use different network technologies such
as Bluetooth, WiFi, Ethernet and GPRS
Next Steps
- Plan to hold a W3C Workshop on the Ubiquitous Web
in October 2005
- Date and location to be announced soon
- An opportunity to share use cases, research results,
and implementation experience
- Consider possibility of launching a new W3C Working Group