AmbientAmbientComputationalComputationalEnvironmentsEnvironmentsSprint ResearchSprint ResearchSymposiumSymposiumMarch 8-9, 2000March 8-9, 2000
Professor Gary J. MindenProfessor Gary J. MindenThe University of KansasThe University of Kansas
Electrical Engineering andComputer Science
This is a Road-DonkeyThis is a Road-Donkey
• Carries all computer and communications devices with him
• Deals with multiple network connections (is it a Hotel-9 or Hotel-8?)
• Mentally reconciles multiple versions of tomorrow’s presentation
• Spends more time making the computer/communication complex work, than working
This is an ACEThis is an ACE
• Use and command local resources
• Individual portals to computational workspaces
• Authenticated and authorized access
• Computationalresources built-in
Ambient Computational EnvironmentsAmbient Computational Environments
Long-lived, widely accessible workspacesLong-lived, widely accessible workspaces Computational resources are available Computational resources are available
throughout the environment via access portsthroughout the environment via access ports Users co-opt local resourcesUsers co-opt local resources Secure and privateSecure and private Multi-modal interactionMulti-modal interaction
Speech, gesture, tactileSpeech, gesture, tactile
ACE TechnologyACE Technology
• Robust, available, persistent state
• Location independent processing, dynamic network services, agent services
• Individual and environmental access
ACE — Research ChallengesACE — Research Challenges
Programming EnvironmentsProgramming Environments
Programming LanguagesProgramming Languages
Cooperative Task NegotiationCooperative Task Negotiation
Contextual Information RetrivalContextual Information Retrival
DisambiguationDisambiguation
Networking ArchitectureNetworking Architecture
ACE — Programming EnvironmentsACE — Programming Environments What is the division of functionality between a What is the division of functionality between a
Personal Interaction Device (PID) and the ACE? Personal Interaction Device (PID) and the ACE? How is context named/identified within the ACE?How is context named/identified within the ACE? How does one use the PID to manipulate a How does one use the PID to manipulate a
potentially significantly larger surrounding potentially significantly larger surrounding environment? environment?
In a shared context with other owners/PIDs, how In a shared context with other owners/PIDs, how does one negotiate for screen space and objects? does one negotiate for screen space and objects?
How do we build a user interface for PIDs that is How do we build a user interface for PIDs that is comfortable with minimal training?comfortable with minimal training?
How do we manage the potentially large number of How do we manage the potentially large number of active computations, resources, and environments active computations, resources, and environments with a modestly sized interface? with a modestly sized interface?
ACE — Programming LanguagesACE — Programming Languages What programming language abstractions are useful What programming language abstractions are useful
and necessary in an ACE? and necessary in an ACE? How do you determine your location within the ACE?How do you determine your location within the ACE? How do you find and connect to other programming How do you find and connect to other programming
contexts? contexts? How do you name, index, and search for resources How do you name, index, and search for resources
within an ACE? within an ACE? If we allow persistent Contexts, how do we update such If we allow persistent Contexts, how do we update such
Contexts over time?Contexts over time? If we wish to upgrade part of the physical If we wish to upgrade part of the physical
infrastructure, how do we "tell customers to leave the infrastructure, how do we "tell customers to leave the facility" and "close the door"?facility" and "close the door"?
How do we account for system usages?How do we account for system usages?
ACE — Cooperative Task NegotiationACE — Cooperative Task Negotiation
How does one define collaboration workspaces?How does one define collaboration workspaces? What functions are necessary for combining individual What functions are necessary for combining individual
workspaces into collaborative workspaces?workspaces into collaborative workspaces? How do individuals establish independent views of How do individuals establish independent views of
shareable workspaces and environments?shareable workspaces and environments? How do PIDs represent and communicate workspaces How do PIDs represent and communicate workspaces
and negotiate? and negotiate? What are negotiable resources? What are negotiable resources? How do Workspaces and Contexts describe themselves How do Workspaces and Contexts describe themselves
to be recognizable? to be recognizable? How can I interrupt the execution of any program, How can I interrupt the execution of any program,
pick up the intermediate state, and move it somewhere pick up the intermediate state, and move it somewhere else to run? else to run?
ACE — Contextual Information RetrivalACE — Contextual Information Retrival
Support a wide range of search criteria, including Support a wide range of search criteria, including timeliness, information quality, media, timeliness, information quality, media, computational resources available. and location computational resources available. and location and timeand time
Infer the appropriate search criteria from the Infer the appropriate search criteria from the user's workspaceuser's workspace
Integrate multiple documentation formats for Integrate multiple documentation formats for search and retrievalsearch and retrieval
ACE — DisambiguationACE — Disambiguation
Resolution in Spoken Natural Language Resolution in Spoken Natural Language Understanding Understanding
Resolution in Context of Robot VisionResolution in Context of Robot Vision Resolution with Machine LearningResolution with Machine Learning Resolution in Deductive Reasoning and Planning Resolution in Deductive Reasoning and Planning Resolution with Memory SystemsResolution with Memory Systems Resolution in Tactile Sensing and in Robotic Resolution in Tactile Sensing and in Robotic
ActuationActuation
ACE — Network ArchitectureACE — Network Architecture
Application
OS
API API API
Today’s approach
Application
OS
Keyboard
NetworkDisplay
ACE — Applications linked throughNetwork connedtions
ACE — VisionACE — Vision Pervasive Embedded ResourcesPervasive Embedded Resources
In buildings, people, vehiclesIn buildings, people, vehicles Interconnected with dynamic network servicesInterconnected with dynamic network services Multiple, rich resource types - displays, computations, Multiple, rich resource types - displays, computations,
communications, information management, ...communications, information management, ... Long-lived, widely accessible workspacesLong-lived, widely accessible workspaces
Maintain distributed, available, consistent stateMaintain distributed, available, consistent state Multiple location and information servicesMultiple location and information services Secure and privateSecure and private Active connections based on current contextActive connections based on current context
Disassociate process/task execution from physical location Disassociate process/task execution from physical location and network addressand network address Enables mobile and replicated tasksEnables mobile and replicated tasks Implement tasks as services with multiple access mechanisms, e.g. Implement tasks as services with multiple access mechanisms, e.g.
network, video, sensor, actuatornetwork, video, sensor, actuator
ACE — Key TechnologiesACE — Key Technologies
Human/Computer InteractionHuman/Computer Interaction New techniques, new devices, new mobile communicationsNew techniques, new devices, new mobile communications
Programming Languages and SystemsProgramming Languages and Systems High level abstractions, mobile and persistent tasks, long-High level abstractions, mobile and persistent tasks, long-
lived workspaceslived workspaces Resource recognition, task negotiation, co-opt local Resource recognition, task negotiation, co-opt local
resourcesresources Contextual Information ManagementContextual Information Management Disambiguation in multi-modal interactionDisambiguation in multi-modal interaction
ACE PersonnelACE Personnel
G. Minden (PI)G. Minden (PI) A. Ambler (HCI, A. Ambler (HCI,
Programming languages Programming languages and systems)and systems)
F. Brown (AI systems)F. Brown (AI systems) J. Evans (Networking and J. Evans (Networking and
Computing Systems)Computing Systems) C. Tsatsoulis (Expert C. Tsatsoulis (Expert
Systems, agent systems, and Systems, agent systems, and case based reasoning)case based reasoning)
A. Agah (Robotic Systems)A. Agah (Robotic Systems) S. Gauch (Information S. Gauch (Information
Retrieval)Retrieval)
D. Niehaus (Distributed D. Niehaus (Distributed Systems and Real-time)Systems and Real-time)
J. Miller (Graphics)J. Miller (Graphics) J. Gauch (Video J. Gauch (Video
Information Systems)Information Systems) J. Grzymala-Busse J. Grzymala-Busse
(Learning Systems)(Learning Systems) T. Schreiber (Human T. Schreiber (Human
Information Retrieval)Information Retrieval) S. Speer (Psycholinguistics)S. Speer (Psycholinguistics) W. P. Alexander (System W. P. Alexander (System
design)design) J. James (Distributed J. James (Distributed
Systems)Systems)
Ambient Computational Environments
Information and Telecommunications Technology Center
Electrical Engineering andComputer Science