Tuesday 14 February 2017

HomeOs

Summary:
Applications leveraging network devices for the home, like home automation solutions are rapidly emerging and thus bringing new challenges. Currently, these challenges are mostly solved by the domain experts. HomeOS presents a novel solution by presenting a PC-like abstraction for technology in the home. It presents network devices as peripherals with abstract interfaces providing developers an interface for writing applications, and an intuitive user management interface with advanced security access controls. It presents overall the same idea like any other OS, but like an OS for the home.
The prevailing issues in this domain which HomeOs tries to resolve are the two abstractions:
  • Appliance abstraction: This means the current network devices are mostly closed and are like a typical monolithic system- they can be managed very well but can't be extended with other network devices.
  • Decentralized network of devices: This means the devices can be well connected with each other using the interoperability protocols but they don't have a centralized pane where they can be easily managed.
Main Points:
  • Architecture Main Points:
The main idea which makes HomeOS highly extensible and manageable is its architecture. It has a layered architecture with 4 layers:
  1. Device Connectivity Layer(DCL): This is device agnostic layer providing basic connectivity and solves the problems of discovering and maintaining connectivity to devices by providing software modules for each protocol. It provides higher layers with handles for exchanging messages with the device, and uses drivers which uses protocol specific discovery methods to discover new devices.
  2. Device functionality layer(DFL): This is device-specific layer and takes the handles provided by the DCL and turns them into APIs that developers can easily use to build applications. DFL module provides device functionality to applications using a service abstraction- which are defined as roles, and each role contains a list of operations that can be invoked.
  3. Management Layer: Provides two key functionalities
    1. Provides a central place to add and remove apps, devices, and users and specify access control policies.
    2. Provides mechanisms to handle shared devices.
   These functionalities are provided using the following principles:
    •  Datalog access control rules: Access control policies are formulated as Datalog rules of the form (r, g, m, Ts, Te, d, pri, a), which states that resource r can be accessed by users in group g, using module m, in the time window from Ts to Te, on day of the week d, with priority pri and access mode a. Here modules are applications and drivers. Groups can be "kids" and "adults" and access can be "allow" and "ask".
    • Time-based user accounts.
    • Hierarchical user and device groups.
       4.  Application Layer: The application layer is where developer written code runs. Also, provides the ability to determine if an application is compatible with the home and what services and devices are missing if it is not- through manifest files like the manifest files used in android application development.

To summarize these layers provides the below functionalities:
  1. Provides interface to easily manage and secure home technology.
  2. Application developers can easily make new applications using high-level API's.
  • Implementation Main points:
    • Modules: These can be applications written on top of application layer or drivers written on DCL and DFL.
    • Services: Modules interact with each other through service which is exposed through API's.
    • HomeStore: Like the Google Appstore, this provides HomeOs applications and drivers.
    • HomeOS written in C# using the.NET 4.0 Framework.
  • Evaluation of HomeOs shows developers can write realistic applications within 2 hours and users can use management interfaces with similar success to other carefully designed systems and that system performance is good enough to easily support rich, interactive applications.
Strength:
  • Authors have presented a very clean paper and discuss thoroughly the architecture, design, and implementation while having a good discussion how HomeOs can make the current home automation systems more management and extensible with the added benefits of security.
  • This system presents a PC-like abstraction and all the management of home network devices can be done through single pane, HomeOS is used for all management related jobs, which has very intuitive interfaces like in MS Windows. It provides a centralized view to add user’s and devices, install new applications for home devices and verify access roles.
  • By providing protocol independent services through the abstraction of roles, applications generally need not change their code once service changes unless the device functionality itself changes. 
  • The separation between low-level device management and high-level device functionality into two layers DCL and DFL , makes the task of developer easy, the developer only must make use of the services exposed by DFL through high-level API's and need to be concerned about the lower level details of device connectivity.
  • Introducing new devices in HomeOS is straightforward. A new device can either use an existing role or, if it is a new type of device, a new role can be registered for its functionality.This makes HomeOs highly extensible.
  • Security is very well addressed in this paper, authors have carefully chosen various security principles like datalog access control rules, time-based user accounts, Hierarchical user and device groups. Also, the modules like applications and drivers don’t have default access to any device and network, the user while installation needs to give them permission to access network service and requested device.
  • The user can make few devices highly secure like camera’s, mobile phone , by categorizing them as high security devices which creates a separate group for them and special permission needs to be taken to access them.
Weakness:
  • Difficult to diagnose faults in HomeOs.
  • Missing de facto standards like what type of services should be provided by HomeOs? Eg in PC Os file system is one such service. But for HomeOs type of services depends on the type of devices which are different in different settings.
  • Current manifest descriptions cannot encode complex requirements-Pointed out by the paper.
  • HomeOS is an open system and requires device manufacturers to expose functionalities to 3rd party vendors which may not be always the case so more costly and customized home automation solutions by private vendors may provide better solutions in some cases which can better use their proprietary devices.
Discussion:
  • The project started in 2010 but still not widely used in home automation.What could be the reasons?
  • The paper doesn't address anything about data management.
Useful Link
https://www.usenix.org/node/163038

3 comments:

  1. Good final discussion point. Thoughts?

    You covered weaknesses: what is your analysis of the strength of the paper?

    ReplyDelete
  2. Thank you for pointing out. I have made the changes and explicitly covered the strengths.

    ReplyDelete
  3. The evaluation with real users is another very strong aspect of this paper.

    ReplyDelete

Note: only a member of this blog may post a comment.