Imagine that you would be able to write joint tweets with a friend, on his or her connected TV, with your friend using a tablet to start writing the tweet, and you adding a link and some hash tags from your smartphone to the same tweet before you publish it. Imagine yourself playing games together using different devices but playing the same game at the same time. Imagine a friend joining the game remotely, on a yet another device such as a desktop computer. All this are visions imagined by the researchers in the EU-funded collaborative* research project called webinos. Read on as Claes Nilsson, researcher at Sony and member of the project, explains more.
Hi Developer World readers,
webinos started in September 2010, and Sony Ericsson (later Sony) and I were one of the founding members. The project aims at delivering an open source platform to enable web applications and services to be used and shared consistently over a broad spectrum of connected devices such as smartphones, PC’s, home entertainment systems and in-car units.
At Sony, we felt this was an important project to take part of, and also to co-drive, because we think webinos can be an important enabler for sharing web based applications and services between connected devices in the future. A crucial component in this is service discovery and access to services in a network agnostic fashion. By that we mean that the user can find and use the services consistently irrespective of their location, home network or cloud, and irrespective of the network technology used to access them. This is something that is very relevant for Sony, as cross-device communication entertainment is something that we strongly believe in for Sony Xperia™ smartphones and other Sony products.
One of the interesting things with the webinos project is the intention to actually boost the industry migration towards web-based services. In the project, we will showcase how a single service can be made to run on multiple devices, using services and resources on other devices. The concept is based on open web standards from W3C (the World Wide Web Consortium) and extends these with a web runtime environment. A set of APIs is also provided to allow web applications easy access to cross-user/cross-service/cross-device functionality in an open yet secure manner. The whole concept will delivered as an open source web platform by then end of 2013.
How it can be used – example use cases
Now you’ve learned about the webinos visions on a theoretical level, but what use cases are there then? Well, collaborative tweeting and gaming from different locations have already been mentioned and here are some more examples:
Suppose that your want to add location data to a photo you have taken with your digital camera, even though your camera does not include GPS functionality. Well, with webinos you will be able to connect the camera to your smartphone and retrieve the GPS provided location from the phone.
You will also be able to connect your smartphone to your TV, and scan and change channels remotely, for example by shaking the phone. It will also be possible to show pictures and videos that is stored on your smartphone (or on any of your other connected devices) on the TV, in a seamless way.
You should also be able to retrieve information from in-car units and applications, to be accessed on your smartphone, tablet or desktop computer. You will for example be able to access vehicle data such as visual information from the parking sensors, or navigation information.
Architecture – how the platform is designed
When the partners of the webinos project decided to create the framework for the open source platform, a number of goals were identified:
- Multi-device: All your devices should easily be able to ‘talk’ to each other.
- Multi-user: You should be able to use your friends’ services too.
- Multi-domain: The platform should be tailored towards different environments, such as your PC, smartphone, car, connected TV and so on.
- Secure: The platform should address security and user controlled privacy.
The core of the architecture is something we call the ”Personal Zone” (see the illustration below), which forms a personal overlay network of a user’s different devices. The ”Personal Zone” could for example include the user’s smartphone, laptop, TV and car, and the Personal Zone enables communication between these personal devices and services. This zone is ‘managed’ by a single “personal Zone Hub” (PZH) that is either a cloud-based service or integrated in a local router. The PZH keeps track of the devices in the zone, as well as the applications and services they support, and routes communication between the devices in the zone. Users can configure their personal zone via a web interface to the PZH.
Each device in the Personal Zone includes an embedded Personal Zone Proxy (PZP) that connects the device with the Personal Zone. A PZP is basically an extension to the device web browser in the form of a local node.js web server. It provides access to the user’s PZH, access to other device’s PZPs and policy controlled access to webinos APIs.
Sony contributes to the webinos APIs
Sony contributes to several parts of the webinos project, such as use cases, requirements, specifications, platform implementation, demos and standardisation, but personally I have especially contributed by leading the work on API specifications for the different web applications.
When we first started to work with these APIs we felt that we shouldn’t re-invent the wheel. Therefore, we decided that the goal is to re-use existing APIs from W3C as much as possible, and if applicable also from other organisations. However, when a webinos requirement could not be fulfilled by an existing API we have either created an extended version of the existing API or specified a new API. Our goal is then to feed back the good stuff we define to W3C, so that this hopefully can be part of the standardisation.
Phase 1 of these API versions was released in June 2011. On September 24, 2012, we released the phase II API specifications. If you’re interested, all specifications as well as background information can be accessed at webinos phase II API specifications. One thing we’ve really kept in mind while working on these APIs is to have the platform framework to provide means for web applications to use services on remote devices. This is something we consider to be a key element of webinos.
To further support this, my Sony colleague Anders Isberg specified the webinos Discovery API, which defines how a service is discovered and how an application can bind to a remote service and then use a webinos API (or a standard API) to access the remote service. For example, a web application can use the W3C Geolocation API to access the GPS location on a remote device based on discovery with the webinos Discovery API and user selection of the remote geolocation service.
A number of other APIs have also been created within the webinos project. Some notable examples are the following APIs:
- Generic Sensor API: Provides web applications with an API to access data from sensors in the device or in another device.
- Generic Actuator API: Complements the webinos Generic Sensor API with the ability to control actuators, such as switches and motors.
- Payment API: Provides generic shopping basket functionality in order to provide in-app payment.
- TV Control API: Provides means to acquire a list of TV sources, channels and their streams and to control channel management of the native hardware TV.
- Vehicle API: Provides access to specific vehicle data, such as trip computer data, gears or park sensors as well as information about lights, doors, windows and seating setting.
- Remote UI API: Provides means to create and access a UI, for example to provide simple notifications and input forms on a remote device using simple web page object manipulation commands.
- Navigation API: Exposes the functionality to interact with a satellite navigation service. It provides a method for handing over a point-of-interest to the service, querying the service for points of interest, and monitoring if the navigation service is active.
- Secure Elements API: The purpose with this API is to give web applications a lightweight way to establish a channel with an application on a smart card or any other secure element, to send it commands, and handle the responses using byte arrays. The API uses Application Protocol Data Units (APDUs) as defined by ISO 7816-4.
- Web Notifications API: Provides an API to display notifications to alert users outside the context of a web page. It is based on the W3C Web Notifications API with removed permission functions, which are replaced by the webinos security and policy system.
What’s next in this research?
Going forward, we will continue to improve the webinos APIs and also align with ongoing API standardisation in W3C and elsewhere. One example of this standardisation work is the W3C System Applications Working Group that is now starting up. This group aims to define a runtime environment, a security model, and associated APIs for building web applications with capabilities comparable to native applications. I think this work is very relevant for webinos.
Currently there is also a strong momentum for web intents, which is a general service discovery and light-weight RPC (remote procedure calls) mechanism for web applications. Google is the main driver of this, and web intents as well as web intents based APIs are currently under standardisation within W3C. We are also exploring this technology as it is maturing. A goal for us at Sony, as well as in the webinos project, is to allow web applications find and use webinos services through the Web Intents API. Sony has also contributed an addendum specification to W3C on how to use web intents to discover and use services on devices in local Wi-Fi networks.
Do want to know more about this research? Feel free to check out the webinos project website, where we will add new research and reports regularly. Do you have any questions? Drop us a comment below, and we’ll try to get back as soon as possible.
Claes Nilsson is a senior researcher at the Technology Research department of Sony in Lund, Sweden. His main focus is mobile web technology and Claes has been working within this area since 1994.
* The webinos project has about thirty partners from across Europe, spanning over academic institutions, industry research firms, software firms, handset manufacturers and automotive manufacturers. Sony (previously Sony Ericsson) has been involved in the project since the start in September 2010. The project ends in August 2013 when a foundation will continue the work.
- Read more about webinos on the project website.
- If you are interested in testing or developing for webinos, go to the webinos developer portal.
- Find all webinos phase II system specifications in the webinos downloads, under “webinos specification”.
- Check out the latest version of the webinos API specifications in the webinos Device APIs – working repository.
- Read how BMW is thinking about webinos and web research.