Intelligent Discovery, Configuration and Composition of Devices in a Distributed System

Total Page:16

File Type:pdf, Size:1020Kb

Intelligent Discovery, Configuration and Composition of Devices in a Distributed System Intelligent Discovery, Configuration and Composition of Devices in a Distributed System Nicole Kaiyan Thesis submitted for the degree of Doctor of Philosophy in the School of Computer Science Faculty of Engineering, Computer and Mathematical Sciences The University of Adelaide Adelaide SA 5005 AUSTRALIA 2014 ii Abstract Establishing access to the functionality of input/output devices across a distributed system presents significant challenges worth investigating. To accomplish this requires locating devices and understanding their identity so that requests for them can be satisfied. Current systems require the domain of requestable devices be resolved beforehand and that they be identified as discrete items. Additionally, configuring devices only happens if an operating system has access to suitable drivers and composition is conducted by middleware applications, without any system service awareness. These approaches restrict device use in a distributed context and fail to provide a satisfactory solution. This research has the goal of accomplishing access to devices in a distributed system without such constraints. We present an approach where devices are described by a language based upon a rich taxonomy of form and function. Requests for devices are formulated using the same language and a matching process is employed to satisfy requests. The devices capable of being matched may be rich in functionality, complex, consist of sub-units, and include those yet to be developed. A taxonomy capturing the scope of form and function populates the description space with terms relevant to devices. The description space is structured hierarchically to manage complexity. A contribution is also made to improving the design and integration of operating systems components, in particular, those services responsible for managing devices, from configuration through to composition, and accomplishing such across a distributed system. In this context, configuration serves as a local system response to device connections, ensuring they become operational then advertising their availability remotely. Distributed composition services receive these notifications, adding device descriptions to a database for use when matching requests. We have adopted the language Prolog to describe devices and for implementing a distributed system. It supports a database of device descriptions in the form of assertions and provides powerful support for matching via an inference engine. The inference engine systematically examines a potentially large and complex search space for an acceptable extent of correspondence. Requests can be expressed minimally as those elements of a device relevant to matching. A consequence of this style of matching is the ability to allow requesters partial access to device functionality as a result of incomplete satisfaction. Through awareness of the device domain, the composition process handles allocation of control and access arbitration. A demonstration of structural matching is provided through a fully worked example. We set out to build a distributed system with sufficient capability to investigate structural matching between requests for functionality and device identities. Furthermore, to accomplish this dynamically when devices connect and permit access to their functionality as the outcome of matching requests. The resultant schema presents a comprehensive solution by combining a structured language, expressive enough to describe current devices and future possibilities, with a tailored inference engine, designed to compose an entire distributed system. iii iv Acknowledgements A research program spanning more than a decade would not have managed to sculpture a significant contribution to knowledge without the collective support and contributions from key people in my life. Francis, in his role as principal advisor, receives a debt of thanks that runs deep. The project that I came to you with required an extraordinary supervisor, to mould it into a shape where it could fit it into a thesis. Together, we dared to dream of a better world, to explore computer science at the edges of what was possible and to look up at the blue sky and wonder. Chris, as the overseeing advisor, always the sensible and wise one. I am grateful to you for encouraging Francis and I to make something of this unique opportunity to work together. Also, for the friendly fun evenings spent at your place discussing research, then enjoying fine wine and food. Peter, the enthusiastic researcher, astounding programmer and most of all a friend. We met as both of us encountered the write up stage and, through our discussions, a common interest in Operating Systems emerged. I look forward to the years ahead and the chance to discuss how we might shape the discipline. Significant friends from my journey are NV, Jonno, Richard and Thoran. I would not have been able to figure out the important issues had each of you not been so enthusiastic about chatting, showing insight, and encouraging me to keep gophering away. Michael B. the mathematician, for his encouragement to stick at trying to explain the concept that I saw outside the cave and not let wild horses drag me away from the project, no matter how hard it becomes to make progress. My sister, Shello, who acknowledged the sacrifices required of long term study and the extreme financial struggle to keep the show going. You made a difference when there was no one else I was able to turn to for support. My mother and father, who have been there to provide support and encourage me to keep going when I doubted my strength to continue. Finally to my father, who such a long time ago impressed me with a grand typed manuscript that was his PhD thesis. You inspired me to want to make my own contribution to the world of intellectual enquiry. v vi Statement of Originality This work contains no material which has been accepted for the award of any other degree or diploma in any university or other tertiary institution to Nicole Kaiyan and, to the best of my knowledge and belief, contains no material previously published or written by another person, except where due reference has been made in the text. I give consent to this copy of my thesis, when deposited in the University Library, being made available for loan and photocopying, subject to the provisions of the Copyright Act 1968. I also give permission for the digital version of my thesis to be made available on the web, via the University’s digital research repository, the Library catalogue and also through web search engines, unless permission has been granted by the University to restrict access for a period of time. ____________ Nicole Kaiyan 2014 vii viii Contents Abstract iii Acknowledgements v Statement of Originality vii List of Figures xiii 1 Introduction 1 1.1 Home Automation 1 1.2 Analysing the Example 2 1.3 The Challenge 3 2 Issues with Distributed Systems 5 2.1 Building a Capacity to Endure 5 2.1.1 Model of the Process 5 2.2 Discovery 7 2.2.1 Achieving Remote Awareness 7 2.2.2 Shortcomings in Distributed Awareness 10 2.3 Configuration 13 2.3.1 Articulating System Dependencies 13 2.3.2 Impact of Dependencies 24 2.4 Composition 26 2.4.1 Describing Devices 26 2.4.2 Problems With Device Descriptions 36 2.4.3 The Distributed Match Process 36 2.4.4 Issues With Distributed Composition 40 2.5 Requirements of a System 41 2.5.1 Trends and Contexts 41 2.5.2 Arriving at the Technical Requirements 42 3 The Distributed System 43 3.1 Distributed Services 43 3.1.1 Distributed Agreement 43 3.1.2 Service Architecture for Composition 44 3.2 IO_Discovery Service 46 3.2.1 Tasks Performed by the IO_Discovery Service 46 3.2.2 Implementing the IO_Discovery Service 46 3.2.3 Interconnect Specification Changes 47 3.2.4 Requirements of Device Descriptions 48 3.2.5 Protocol Definitions 48 3.2.6 Records Maintained 50 3.2.7 Changes to Computer System Specifications 52 3.3 IO_Configuration Service 53 3.3.1 Tasks Performed by the IO_Configuration Service 53 3.3.2 Implementing the IO_Configuration Service 53 3.3.3 Interconnect Specification Changes 54 3.3.4 Requirements of Device Descriptions 55 3.3.5 Protocol Definitions 56 3.3.6 Records Maintained 56 3.3.7 Changes to Computer System Specifications 57 3.4 IO_Composition Service 59 3.4.1 Tasks Performed by the IO_Composition Service 59 3.4.2 Implementing the IO_Composition Service 59 ix 3.4.3 Requirements of the Match Process 60 3.4.4 Requirements of Device Descriptions 60 3.4.5 Protocol Definitions 60 3.4.6 Changes to Computer System Specifications 61 3.5 Support Services 62 3.5.1 IO_Resources 62 3.5.2 IO_Requesters 62 3.5.3 IO_Outlets 62 3.5.4 IO_Results 63 3.6 Event Sequencing 64 3.6.1 Device Connect 64 3.6.2 Device Disconnect 65 3.6.3 System Connect 66 3.6.4 System Disconnect 67 3.6.5 Requester Create 68 3.6.6 Requester Cancel 68 3.6.7 Perform Match 69 4 Taxonomy and Structural Description of Devices 73 4.1 Overcoming Named Type Restrictions 73 4.1.1 Assigning Types to Whole Devices 73 4.1.2 Assigning Types to Code Interfaces 74 4.1.3 Implied Device Properties 74 4.2 Exploring Structural Description 76 4.2.1 Properties to Describe Devices 76 4.2.2 Interaction at the User Interface 76 4.2.3 Physicality of Devices 82 4.2.4 Operational Control 85 4.2.5 Concurrency and Sharing Access 88 4.2.6 Non-Functional Aspects 89 4.2.7 Finer Grained Description 91 4.3 Building an I/O Taxonomy 94 4.3.1 Problems Encountered Compiling Taxonomies 94 4.3.2 Structurally Relating Terms 95 4.3.3 A Taxonomy of I/O 97 4.4 Device Typing 98 4.4.1 Structural Typing
Recommended publications
  • What's Included in the Homeos
    What’s included in the HomeOS kit (and some tips on using it) 2/21/2011 HomeOS is an experimental operating system for the home which focuses on providing centralized control of connected devices in the home, useful programming abstractions for developers, and allows for the easy addition of new devices and application functionality to the home environment. This document explains what application and driver modules are included in the kit and how to use them in your setup. It is not a programming guide; that would be programming-howto.docx. Because it might be a little out of date, your most up-to-date source of information is the source code itself Contents Drivers ......................................................................................................................................................... 2 DriverAxisCamera: for IP cameras made by Axis Communications ..................................................... 2 DriverDlnaDmr: for DLNA media renderers ......................................................................................... 2 DriverDlnaDms: for DLNA media servers ............................................................................................. 2 DriverImgRec: virtual device for face recognition ............................................................................... 3 DriverNotifications: virtual device for sending notifications over email and SMS .............................. 3 DriverWebCam: for Webcams ............................................................................................................
    [Show full text]
  • Computational Textiles and Augmenting Space Through Emotion
    Softbuilt: Computational Textiles and Augmenting Space Through Emotion by Felecia A. Davis Bachelor of Science in Engineering, Tufts University (1983) Master of Architecture, Princeton University (1993) Submitted to the Department of Architecture In Partial Fulfilment of the Requirements for the Degree of Doctor of Philosophy in the field of Architecture: Design and Computation at the Massachusetts Institute of Technology September 2017 © 2017 Felecia A. Davis All rights reserved The author hereby grants to M.I.T. permission to reproduce and distribute publicly paper and electronic copies of this thesis document in whole or in part in any medium now known or hereafter created. Signature of Author Felecia Davis 11 August 2017 Department of Architecture Certified by Terry Knight Professor of Design and Computation Department of Architecture Thesis Supervisor Accepted by Sheila Kennedy Professor of Architecture Chair, Department Committee on Graduate Students 1 2 DISSERTATION COMMITTEE Dr. Terry Knight, Chair Professor of Design and Computation Massachusetts Institute of Technology Dr. Edith K. Ackermann Honorary Professor of Developmental Psychology University of Aix-Marseille 1, France Visiting Scientist Design and Computation Massachusetts Institute of Technology Dr. Leah Buechley Designer, Engineer, Educator Former Director High/ Low Tech Lab Massachusetts Institute of Technology Media Lab 3 4 Softbuilt: Computational Textiles and Augmenting Space Through Emotion By Felecia A. Davis Submitted to the Department of Architecture August 11 2017 in Partial Fulfilment of the Requirements for the Degree of Doctor of Philosophy in Architecture: In Design and Computation at the Massachusetts Institute of Technology ABSTRACT When we inhabit, wear, and make textiles we are in conversation with our pre-historical and historical past and in a sense already connected to what is to come by the structure of fabric that operates as a mode of understanding the world.
    [Show full text]
  • Homeos: Context-Aware Home Connectivity ‡
    HomeOS: Context-Aware Home Connectivity ‡ Neal Rosen, Rizwan Sattar, Robert W. Lindeman, Rahul Simha, Bhagirath Narahari Department of Computer Science, The George Washington University {nrosen | rizwan | gogo | simha | narahari}@gwu.edu Abstract* is now possible to make the various devices that pervade our homes work together. Context-aware, The trend of cheaper ubiquitous and pervasive personalization-capable, home-automation systems will technology has reached a critical point. A standardized be possible in the very near future. integration of devices in the context of a home The integration of devices with different environment will be possible in the near future. technologies, conflicting standards, and incompatible HomeOS is an attempt to provide a standard interface interfaces can be approached the same way as the for a context-aware application and device integration construction of a single computer. The "motherboard" system. HomeOS offers three key features: cross- connects all devices through standard ports and slots, platform application portability; application following; the operating system (OS) provides a unified way of and management of multimedia streams. accessing these resources, and applications translate HomeOS allows applications and home management input into usable output. We can view the hardware services to run on a central server written in Java, and infrastructure of the networked home as the displays interface widgets on remote devices capable of motherboard connecting physical input and output acting as terminals. By implementing pre-defined Java devices. The OS to support the nature of typical interfaces, applications and devices can be integrated interaction in the home environment, what we call the into HomeOS, which handles the details of routing Home Operating System, or HomeOS, has distinct events to the current location of a designated user.
    [Show full text]
  • Remediot: Remedial Actions for Internet-Of-Things Conflicts
    RemedIoT: Remedial Actions for Internet-of-Things Conflicts Renju Liu Ziqi Wang [email protected] [email protected] University of California - Los Angeles (UCLA) University of California - Los Angeles (UCLA) Luis Garcia Mani Srivastava [email protected] [email protected] University of California - Los Angeles (UCLA) University of California - Los Angeles (UCLA) ABSTRACT ACM Reference Format: The increasing complexity and ubiquity of using IoT devices exac- Renju Liu, Ziqi Wang, Luis Garcia, and Mani Srivastava. 2019. RemedIoT: Remedial Actions for Internet-of-Things Conflicts. In The 6th ACM Inter- erbate the existing programming challenges in smart environments national Conference on Systems for Energy-Efficient Buildings, Cities, and such as smart homes, smart buildings, and smart cities. Recent Transportation (BuildSys ’19), November 13–14, 2019, New York, NY, USA. works have focused on detecting conflicts for the safety and utility ACM, New York, NY, USA, 10 pages. https://doi.org/10.1145/3360322.3360837 of IoT applications, but they usually do not emphasize any means for conflict resolution other than just reporting the conflict tothe application user and blocking the conflicting behavior. We propose 1 INTRODUCTION RemedIoT, a remedial action 1 framework for resolving Internet- The proliferation of the Internet-of-Things (IoT) has enabled sen- of-Things conflicts. The RemedIoT framework uses state of the art sors and actuators across several facets of society for the purpose techniques to detect if a conflict exists in a given set of distributed of automating and optimizing our daily tasks. As humans settle IoT applications with respect to a set of policies, i.e., rules that define into smart environments, the collection of data and automation the allowable and restricted state-space transitions of devices.
    [Show full text]
  • It's Time to End Monolithic Apps for Connected Devices
    SYSTEMS It’s Time to End Monolithic Apps for Connected Devices RAYMAN PREET SINGH, CHENGUANG SHEN, AMAR PHANISHAYEE, AMAN KANSAL, AND RATUL MAHAJAN Rayman Preet Singh is a PhD he proliferation of connected sensing devices (or Internet of Things) candidate in computer science can in theory enable a range of “smart” applications that make at the University of Waterloo, rich inferences about users and their environment. But in practice, Canada. He is co-advised by S. T Keshav and Tim Brecht, and has developing such applications today is arduous because they are constructed broad research interests in distributed systems as monolithic silos, tightly coupled to sensing devices, and must implement and ubiquitous computing. all data sensing and inference logic, even as devices move or are temporarily [email protected] disconnected. We present Beam, a framework and runtime for distributed inference-driven applications that breaks down application silos by decou- Chenguang Shen is a PhD pling their inference logic from other functionality. It simplifies applications candidate in computer science at the University of California, by letting them specify “what should be sensed or inferred,” without worry- Los Angeles (UCLA), working ing about “how it is sensed or inferred.” We discuss the challenges and oppor- with Professor Mani Srivastava. tunities in building such an inference framework. He obtained his MS in computer science from Connected sensing devices such as cameras, thermostats, and in-home motion, door- window, UCLA in 2014, and a BEng in software energy, and water sensors, collectively dubbed the Internet of Things (IoT), are rapidly per- engineering from Fudan University, Shanghai, meating our living environments, with an estimated 50 billion such devices projected for use China in 2012.
    [Show full text]
  • Decentralized Authorization with Private Delegation by Michael P Andersen a Dissertation Submitted in Partial Satisfaction of Th
    Decentralized Authorization with Private Delegation by Michael P Andersen A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science in the Graduate Division of the University of California, Berkeley Committee in charge: Professor David E. Culler, Chair Associate Professor Deirdre Mulligan Assistant Professor Raluca Ada Popa Summer 2019 Decentralized Authorization with Private Delegation Copyright 2019 by Michael P Andersen 1 Abstract Decentralized Authorization with Private Delegation by Michael P Andersen Doctor of Philosophy in Computer Science University of California, Berkeley Professor David E. Culler, Chair Authentication and authorization systems can be found in almost every software system, and consequently affects every aspect of our lives. Despite the variety in the software that relies on authorization, the authorization subsystem itself is almost universally architected following a com- mon pattern with unfortunate characteristics. The first of these is that there usually exists a set of centralized servers that hosts the set of users and their permissions. This results in a number of security threats, such as permitting the operator of the authorization system to view or even change the permission data for all users. Secondly, these systems do not permit federation across administrative domains, as there is no safe choice of system operator: any operator would have visibility and control in all administrative domains, which is unacceptable. Thirdly, these systems do not offer transitive delegation: when a user grants permission to another user, the permissions of the recipient are not predicated upon the permissions of the granter. This makes it very difficult to reason about permissions as the complexity of the system grows, especially in the federation across domains case where no party can have absolute visibility into all permissions.
    [Show full text]
  • Scale-Out Beyond Mapreduce
    Scale-out Beyond MapReduce Raghu Ramakrishnan Cloud Information Services Lab (CISL) Microsoft Outline • Big Data – The New Applications – The Digital Shoebox • Tiered Storage • Compute Fabric • REEF Cloud Information Services Lab (CISL) • Applied research for Cloud and Enterprise (CE) • Focus areas: – Cloud data platforms, predictive analytics and data-driven enterprise applications • Modus innovatii: – Embedded with the product team – Engage closely with MSR – Balance of external and internal impact Big Data What’s the big deal? What’s New? • What we’re doing with it! – The tech is best thought of in terms of what it enables • Why is this more than tech evolution? – Cloud services + advances in analytics + HW trends = Ability to cost-effectively do things we couldn’t dream of before – Uncomfortably fast evolution = revolution Challenges • Is there real technical innovation here? – Yes: Elastic scale-out; heterogeneous data and analysis; real-time/interactive; “instant on” cloud access – Many fascinating challenges, no deal breakers • What about the social, legal and regulatory issues? – Will take longer to understand and resolve • Biggest gap – People: data scientists, data-driven managers (McKinsey) – NAE CATS Big Data training workshop (planned for Jan 2014) Web of Concepts PODS 2009 keynote structured data concept Mumbai julia roberts restaurant san jose Aggregated KB INDEX SERP The “index” is keyed by concept instance, and organizes all relevant information, wherever it is drawn from, in semantically meaningful ways Content Optimization
    [Show full text]
  • Creation of a Building Operating System: Holistic Approach
    Samu Viitanen Creation of a Building Operating System: Holistic Approach Master’s Thesis Department of Built Environment School of Engineering Aalto University Espoo, 1 December 2017 Bachelor of Science in Technology Samu Viitanen Supervisor: Professor Seppo Junnila Instructor: Professor Timo Seppälä Aalto-yliopisto, PL 11000, 00076 AALTO www.aalto.fi Diplomityön tiivistelmä Tekijä Samu Viitanen Työn nimi Rakennuksen käyttöjärjestelmän luonti: kokonaisvaltainen lähestymistapa Koulutusohjelma Kiinteistötalous Pää-/sivuaine Kiinteistötekniikka Koodi M3007 Työn valvoja Professori Seppo Junnila Työn ohjaaja(t) Professori Timo Seppälä Päivämäärä 1.12.2017 Sivumäärä 85 Kieli englanti Tiivistelmä Tämän diplomityön tarkoituksena on tutkia rakennuksen käyttöjärjestelmän holistisia vaatimuksia. Laaja kirjallisuuskatsaus tehtiin aiheen ymmärtämiseksi, joka tutkii käyttöjärjestelmien evoluutiota rinnakkain tietojenkäsittelyn historian kanssa, tarkoituksena hahmottaa käyttöjärjestelmän käsitettä. Lisäksi, eri rakennusten tietojärjestelmiä, mukaan lukien rakennusautomaatiojärjestelmiä ja esineiden internet - järjestelmiä käytiin läpi ymmärtääkseen nykyisiä ja tulevia trendejä rakennusteknologiassa. Edelleen kirjallisuuskatsaus tutkii televiestintää ja sähköistä tunnistautumista niiden kehityksen ja standardisoinnin kautta kohti yhteentoimivuutta, tarjoten tietoa siitä, miten yhteentoimivuutta voitaisiin kehittää rakennusjärjestelmissä. Haastattelututkimus tehtiin diplomityön empiirisenä osuutena, jonka tarkoituksena oli laajentaa työn teoreettista
    [Show full text]
  • Demo Abstract: Augmenting Homes with Custom Devices Using .NET Gadgeteer and Homeos
    Demo Abstract: Augmenting Homes with Custom Devices Using .NET Gadgeteer and HomeOS James Scott A.J. Bernheim Brush Ratul Mahajan Microsoft Research,UK Microsoft Research, USA Microsoft Research, USA [email protected] [email protected] [email protected] Abstract type of the device and its functionality. For instance, the API We describe how two of our recent research technolo- for a light includes “on” and “off” commands. Therefore, gies, .NET Gadgeteer and HomeOS, complement each other HomeOS applications can be independent of device proto- in enabling research using custom devices in home deploy- cols and vendors. ments. .NET Gadgeteer enables rapid prototyping of custom HomeOS currently runs in 12 homes in the Pacific North- devices based on solderless assembly from a wide range of west region of the USA. It has support for many types of de- publicly available hardware modules, and managed C# soft- vices such as light switches, dimmers, door/window sensors, ware. HomeOS provides abstraction layers so that “apps” and cameras. We have also written eighteen applications can be written which leverage devices in the home (e.g. wire- that use these devices in various ways. We have made the less sensors, webcams) using standard APIs. In combination, HomeOS prototype available to academic institutions. Over HomeOS and .NET Gadgeteer make it easy to construct cus- 50 students across twenty research groups have developed tom devices which interact with HomeOS apps. We show- applications and drivers for HomeOS (see [2]). Applications case an example custom device and application a plumbing include energy profiling, remote monitoring, and end user leak sensor and leak notification application.
    [Show full text]
  • II Simposio Latinoamericano De
    ISSN 1390-5384 (Impreso) ISSN 2528-7796 (En línea) Vol. 12, Núm. 3 (2020) II Simposio Latinoamericano de Vol. 12, Núm. 3 (2020) USFQ PRESS Universidad San Francisco de Quito USFQ Campus Cumbayá USFQ, Quito 170901, Ecuador https://usfqpress.com USFQ PRESS es el departamento editorial de la Universidad San Francisco de Quito USFQ. Fomentamos la misión de la universidad al divulgar el conocimiento para formar, educar, investigar y servir a la comunidad dentro de la filosofía de las Artes Liberales. ACI Avances en Ciencias e Ingenierías Vol. 12, Núm. 3, 2020 Autores en esta edición: Fatma Sarsu1, Isaac Kofi Bimpong1, Ljupcho Jankuloski1, Alejandra Landau2, Vanina Brizuela2, Franco Lencina2, Alicia Martínez2, Daniel Díaz2, María Gabriela Pacheco2, Alberto R. Prina2, Mauricio Tcach3, Verónica Bugallo4,5, Gabriela Facciuto5, Mariana Pérez de la Torre5, Vanina Brizuela6, Alberto Prina6, Alejandra Landau6, Pablo Álvarez7, Álvaro Yépez7, Emilio Basantes7, Ángel Murillo8, Eduardo Peralta8, Jorge Rivadeneira9, Xavier Cuesta9, Roberto López10, María Villavicencio11, Kristha Paredes Branda12, Héctor Nakayama12, Edith Segovia12, María Caridad González13, Yamil E. Cartagena14, Rafael A. Parra14, Franklin M. Valverde14, José L. Zambrano14, Soraya P. Alvarado15, Eddy Paul Anguisaca Totasig16, María Cristina Cuesta Plúa16, Marco Vinicio Sinche Serra16, Elena Villacrés17, Mishel Yanez17,18, María Belén Quelal17, Trosky Yánez18, Javier Garófalo-Sosa19, Luis Ponce-Molina19, Patricio Noroña-Zapata19, Diego Campaña-Cruz19 1Plant Breeding and Genetics Section, Joint FAO/IAEA Division of Nuclear Techniques in Food and Agriculture, International Atomic Energy Agency, Vienna, Austria. 2Instituto de Genética “Ewald A. Favret” (IGEAF), CICVyA, Instituto Nacional de Tecnología Agropecuaria (INTA), Buenos Aires, Argentina. 3Estación Experimental Agropecuaria Sáenz Peña, Chaco, Argentina.
    [Show full text]
  • A Software Development Environment for Building Context-Aware Systems for Family Technology
    Brigham Young University BYU ScholarsArchive Theses and Dissertations 2005-11-21 A Software Development Environment for Building Context-Aware Systems for Family Technology Jeremiah Kenton Jones Brigham Young University - Provo Follow this and additional works at: https://scholarsarchive.byu.edu/etd Part of the Databases and Information Systems Commons BYU ScholarsArchive Citation Jones, Jeremiah Kenton, "A Software Development Environment for Building Context-Aware Systems for Family Technology" (2005). Theses and Dissertations. 331. https://scholarsarchive.byu.edu/etd/331 This Thesis is brought to you for free and open access by BYU ScholarsArchive. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of BYU ScholarsArchive. For more information, please contact [email protected], [email protected]. A SOFTWARE DEVELOPMENT ENVIRONMENT FOR BUILDING CONTEXT-AWARE SYSTEMS FOR FAMILY TECHNOLOGY by Jeremiah K. Jones A thesis submitted to the faculty of Brigham Young University in partial fulfillment of the requirements for the degree of Master of Science School of Technology Brigham Young University December 2005 BRIGHAM YOUNG UNIVERSITY GRADUATE COMMITTEE APPROVAL of a thesis submitted by Jeremiah K. Jones This thesis has been read by each member of the following graduate committee and by majority vote has been found to be satisfactory. ____________________________ ____________________________________ Date Richard Helps, Chair ____________________________ ____________________________________
    [Show full text]
  • Touchdevelop: Programming on the Go by R
    This book was purchased by [email protected] For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents links to access them. Contents Preface xi Who this book is for xi Background to the book xii Other learning materials xiii Acknowledgments xiii Important websites xiii The TouchDevelop Team xiii List of figures xvii List of tables xix Chapter 1 Introduction to TouchDevelop 1 1.1 Computers want to be programmed 1 1.2 What is TouchDevelop? 2 1.3 The TouchDevelop ecosystem 4 1.4 History and Future 6 1.5 Platforms 7 1.6 The scripting language 9 Chapter 2 The Scripting Language 11 2.1 Introduction – the language flavor 11 2.2 Datatypes and variables 15 2.3 Expressions 22 2.4 Statements 28 2.5 Actions 31 2.6 Events 34 2.7 Pages 36 2.8 Creating library scripts 36 vi | Contents Chapter 3 The Wall – using the screen 37 3.1 Output – the writing on the wall 37 3.2 Input of values from the touchscreen 42 3.3 Updating the wall’s content 43 3.4 Events on the touchscreen 45 3.5 Pushing and popping pages 49 3.6 Titles and subtitles 49 3.7 Wall buttons 50 3.8 On-demand creation of output 52 Chapter 4 The Web 53 4.1 URLs and webpages 53 4.2 Downloading and uploading files 58 4.3 Downloading structured data 62 4.4 REST guidelines and web requests 69 Chapter 5 Audio 73 5.1 Music 73 5.2 Sounds 79 5.3 Microphone 81 Chapter 6 Camera, Graphics and Video 83 6.1 Camera 83 6.2 Working with pictures 87 6.3 Static graphics drawing and display 93 6.4 Playing videos from the internet 96 Chapter
    [Show full text]