Systems for Smart Home Automation

Slides:



Advertisements
Similar presentations
Three types of remote process invocation
Advertisements

purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
View the home as a computer Ratul Mahajan Microsoft Research IEEE CCW, Oct 2011 Joint work with Sharad Agarwal, AJ Brush, Colin Dixon, Bongshin Lee, Stefan.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
INTRODUCTION TO ASP.NET MVC AND EXAMPLE WALKTHROUGH RAJAT ARYA EFECS - OIM DAWG – 4/21/2009 ASP.NET MVC.
An Operating System for the Home. HomeOS: An OS for the home HomeOS Video recording Remote unlock Climate control HomeStore Z-Wave, DLNA, UPnP, etc. HomeOS.
 The Citrix Application Firewall prevents security breaches, data loss, and possible unauthorized modifications to Web sites that access sensitive business.
The Home Needs an Operating System (and an App Store) Colin Dixon (University of Washington) October 20 th, 2010 Ratul Mahajan, Sharad Agarwal, A.J. Brush,
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Chapter 10 Chapter 10: Printer Management. Chapter 10 Learning Objectives n Describe the printing process used by Windows NT n Install a local printer.
Web Services Andrea Miller Ryan Armstrong Alex. Web services are an emerging technology that offer a solution for providing a common collaborative architecture.
Ronnie Saurenmann Principal Architect Microsoft Switzerland
Component-Based Software Engineering Introducing the Bank Example Paul Krause.
Stanford University EH&S A Service Oriented Architecture For Rich Internet Applications Sheldon M. Heitz.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
And how they are used. Hubs send data to all of the devices that are plugged into them. They have no ability to send packets to the correct ports. Cost~$35.
12.
An Automated Component-Based Performance Experiment and Modeling Environment Van Bui, Boyana Norris, Lois Curfman McInnes, and Li Li Argonne National Laboratory,
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
NOX an OpenFlow controller. Role of Controller in OpenFlow Environments Push forwarding logic to switches Give developers a high-level API to develop.
An Operating System for the Home PRESENTED BY KARL AND SALEM.
Home Lab: Shared Infrastructure for Home Technology Field Studies A.J. BrushJaeyeon JungRatul MahajanJames Scott.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Module 7: Fundamentals of Administering Windows Server 2008.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Architecting Web Services Unit – II – PART - III.
Ocean Observatories Initiative OOI Cyberinfrastructure Life Cycle Objectives Review January 8-9, 2013 Tom O’Reilly Monterey Bay Aquarium Research Institute.
1 Multimedia Services Service provider Service client Service registry Publish Find/discovery Bind Multimedia Services Framework and architecture.
 Three-Schema Architecture Three-Schema Architecture  Internal Level Internal Level  Conceptual Level Conceptual Level  External Level External Level.
© 2004 Mercury Computer Systems, Inc. FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
Web Services Presented By : Noam Ben Haim. Agenda Introduction What is a web service Basic Architecture Extended Architecture WS Stacks.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
Overview of Previous Lesson(s) Over View  ASP is a technology that enables scripts in web pages to be executed by an Internet server.  ASP.NET is a.
Java Distributed Object Model A remote object is one whose methods can be invoked from another JVM on a different host. It implements one or more remote.
Presented By:. What is JavaHelp: Most software developers do not look forward to spending time documenting and explaining their product. JavaSoft has.
 ASP.NET provides an event based programming model that simplifies web programming  All GUI applications are incomplete without enabling actions  These.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
TTCN-3 Testing and Test Control Notation Version 3.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Beginning of Xamarin for iOS development
Instructor Materials Chapter 1: LAN Design
Interfacing the Internet of a Trillion Things
Android Application -Architecture.
© 2002, Cisco Systems, Inc. All rights reserved.
Track5: Use of Technology to bring innovation in Training
Integration Testing.
Architecture of Android
Architecting Web Services
Data Transport for Online & Offline Processing
Self Healing and Dynamic Construction Framework:
Architecting Web Services
Ieva Juodelytė IT 3 kursas 4 grupė
Module 8: Securing Network Traffic by Using IPSec and Certificates
LAN Switching and Wireless – Chapter 1
Implement Inter-VLAN Routing
A mobile single sign-on system
LAN Switching and Wireless – Chapter 1
Implement Inter-VLAN Routing
Module 8: Securing Network Traffic by Using IPSec and Certificates
Introduction to Web Services
Home page for CIS44..
LAN Switching and Wireless – Chapter 1
Implement Inter-VLAN Routing
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
The Web Development Life Cycle
Presentation transcript:

Systems for Smart Home Automation Nilanjan Banerjee Published in NSDI (Networked Systems Design and Implementation) 2012

Writing Drivers Five steps for writing applications Instantiating Roles Instantiating Ports Binding roles to ports Registering the port with the platform Implementing functions for handling operation invocations The application layer is where developer-written code runs to use and compose the devices in the home. The key feature that HomeOS provides at app layer is the ability to ascertain if an application is compatible with the home. - Today, when users bring software home, they have little assurance that it will work in their environment. HomeOS applications provide a manifest describing what services they need to function. - Helps check compatibility. - If not compatible, HomeOS can also determine what additional devices are needed. Explain manifests. Our current manifest descriptions cannot encode complex requirements (e.g., two devices in the same room). - They handle what we deem as the common case. - Can extend later if needed

Roles Data Structure Base class: Role (Your role will extend Role) e.g.: DummyRole:Role Roles have Operation Operation (name, arguments, returnvalue) name: :dummy:->echo (Name, function name) arguments, returnvalue of type ParamType List<VParamType> args = new List<VParamType>() { new ParamType(0) }; The application layer is where developer-written code runs to use and compose the devices in the home. The key feature that HomeOS provides at app layer is the ability to ascertain if an application is compatible with the home. - Today, when users bring software home, they have little assurance that it will work in their environment. HomeOS applications provide a manifest describing what services they need to function. - Helps check compatibility. - If not compatible, HomeOS can also determine what additional devices are needed. Explain manifests. Our current manifest descriptions cannot encode complex requirements (e.g., two devices in the same room). - They handle what we deem as the common case. - Can extend later if needed

Writing Drivers (setting up Roles) The application layer is where developer-written code runs to use and compose the devices in the home. The key feature that HomeOS provides at app layer is the ability to ascertain if an application is compatible with the home. - Today, when users bring software home, they have little assurance that it will work in their environment. HomeOS applications provide a manifest describing what services they need to function. - Helps check compatibility. - If not compatible, HomeOS can also determine what additional devices are needed. Explain manifests. Our current manifest descriptions cannot encode complex requirements (e.g., two devices in the same room). - They handle what we deem as the common case. - Can extend later if needed

Writing Drivers (instantiating ports) portInfo = GetPortInfoFromPlatform(nameofdevice) port = InitPort(portInfo) List<VRole> listroles = new List<Vrole>(){Role.Instance} BindRoles(port, RoleList) The application layer is where developer-written code runs to use and compose the devices in the home. The key feature that HomeOS provides at app layer is the ability to ascertain if an application is compatible with the home. - Today, when users bring software home, they have little assurance that it will work in their environment. HomeOS applications provide a manifest describing what services they need to function. - Helps check compatibility. - If not compatible, HomeOS can also determine what additional devices are needed. Explain manifests. Our current manifest descriptions cannot encode complex requirements (e.g., two devices in the same room). - They handle what we deem as the common case. - Can extend later if needed

Writing Drivers logic (synchronous) The application layer is where developer-written code runs to use and compose the devices in the home. The key feature that HomeOS provides at app layer is the ability to ascertain if an application is compatible with the home. - Today, when users bring software home, they have little assurance that it will work in their environment. HomeOS applications provide a manifest describing what services they need to function. - Helps check compatibility. - If not compatible, HomeOS can also determine what additional devices are needed. Explain manifests. Our current manifest descriptions cannot encode complex requirements (e.g., two devices in the same room). - They handle what we deem as the common case. - Can extend later if needed

Putting all of this together lets see an example. The application layer is where developer-written code runs to use and compose the devices in the home. The key feature that HomeOS provides at app layer is the ability to ascertain if an application is compatible with the home. - Today, when users bring software home, they have little assurance that it will work in their environment. HomeOS applications provide a manifest describing what services they need to function. - Helps check compatibility. - If not compatible, HomeOS can also determine what additional devices are needed. Explain manifests. Our current manifest descriptions cannot encode complex requirements (e.g., two devices in the same room). - They handle what we deem as the common case. - Can extend later if needed

Scouts Scouts are used for discovering devices Discovers devices in the environment Makes the core platform aware of the devices User can query the platform for discovered devices that are not part of the platform Device setup is performed through HTML pages Initial page enables setting up the configurations The application layer is where developer-written code runs to use and compose the devices in the home. The key feature that HomeOS provides at app layer is the ability to ascertain if an application is compatible with the home. - Today, when users bring software home, they have little assurance that it will work in their environment. HomeOS applications provide a manifest describing what services they need to function. - Helps check compatibility. - If not compatible, HomeOS can also determine what additional devices are needed. Explain manifests. Our current manifest descriptions cannot encode complex requirements (e.g., two devices in the same room). - They handle what we deem as the common case. - Can extend later if needed

Core function that you have to implement in Scouts public List<Common.Device> GetDevices() { Device device = new Device("dummydevice", "dummydevice", "", DateTime.Now, "HomeOS.Hub.Drivers.Dummy", false); Device device1 = new Device("dummy2device", "dummy2device", "", DateTime.Now, "HomeOS.Hub.Drivers.Dummy2", false); //intialize the parameters for this device device.Details.DriverParams = new List<string>() { device.UniqueName }; device1.Details.DriverParams = new List<string>() { device1.UniqueName }; return new List<Device>() {device, device1}; } The application layer is where developer-written code runs to use and compose the devices in the home. The key feature that HomeOS provides at app layer is the ability to ascertain if an application is compatible with the home. - Today, when users bring software home, they have little assurance that it will work in their environment. HomeOS applications provide a manifest describing what services they need to function. - Helps check compatibility. - If not compatible, HomeOS can also determine what additional devices are needed. Explain manifests. Our current manifest descriptions cannot encode complex requirements (e.g., two devices in the same room). - They handle what we deem as the common case. - Can extend later if needed