Материалы и исследования в области мобильных вычислительных сред

Amen Hamden

Institut für Parallele und Verteilte Höchstleistungsrechner (IPVR)

Universität Stuttgart

Email: anhamdan@rupert.informatik.uni-stuttgart.de

Перевод с английского: И.С.Степанов

Email: ilya@icm.dn.ua

1. Вступление

Данный документ не пытается классифицировать или оценить конкретные разработки. Некоторые проекты приведены лишь вкратце, зачастую содержат только информацию с соответствующего сайта. Часть ссылок не полностью подходят к теме данной работы, но приведены для полноты содержания. В следующей работе будет приведен более детальный анализ интересных разработок: данная работа - лишь аннотированная библиография.

 

2. Интересные проекты

Проекты Oxygen

“Системы Oxygen сделают доступным пользователю все изобилие вычислений и коммуникаций благодаря естественным речевым и визуальным интерфейсам, позволяющим обрабатывать данные и автоматизировать повторяющиеся задачи. Системы Oxygen должны быть:

-        всеохватывающими - находиться повсюду, чтобы с любого портала можно было обратиться к единой информационной базе;

-        внедренными - находиться в нашем мире, быть его неотъемлемой частью, чувствуя и воздействуя на него;

-        кочевыми - их пользователи должны иметь возможность свободно изменять свое местоположение;

-        вечными - никогда не выключаться, не перезагружаться; компоненты должны добавляться или удаляться по запросу, но система Oxygen в целом не должна останавливаться никогда”. [40]

Rover Toolkit

Rover Toolkit совмещает перемещаемые динамические объекты и очередизованные удаленные вызовы процедур для предоставления уникальных сервисов для «кочевых» мобильных приложений. Перемещаемый кочевой объект – объект с определенным интерфейсом, который может быть динамически загружен в клиентский компьютер со стороны сервера и наоборот для уменьшения клиент-серверного взаимодействия. Очередизованные удаленные вызовы процедур – способ взаимодействия, позволяющий приложениям выполнять неблокируемые удаленные вызовы процедур даже тогда, когда компьютер отсоединился от сети - запросы будут переданы, когда связь возобновится. Требования мобильных сред включают непостоянство связи, ограниченную пропускную способность и оптимизацию использования канала. Экспериментальные результаты работы почтового клиента, календаря и двух версий броузеров, основанных на данном проекте, показывают соответствие выдвинутым

требованиям”. [45]

Аннотация: Rover Toolkit предоставляет поддержку для разработки высокоустойчивых сетевых приложений.

WIND – Wireless Network of Devices (беспроводная сеть устройств)

“Суть проекта – разработка механизма согласования и протоколов, позволяющих приложениям, устройствам, датчикам, компьютерам взаимодействовать друг с другом с минимальной их настройкой; предоставить инфраструктуру для большого класса вычислительных устройств, связанных между собой и даже узко специализированными устройствами”. [54]

Аннотация: нынешние исследования сфокусированы на нижних сетевых уровнях и их взаимодействии.

Ninja

“Цель проекта – разработка программной инфраструктуры для поддержки нового поколения Internet-приложений. Основа проекта – концепция службы - приложения, доступного из Internet, которое являются расширяемым (может поддерживать тысячи одновременно работающих пользователей), устойчиво к сетевым сбоям и повсеместно доступно”. [35]

Аннотация: архитектура Ninja состоит из трех частей:

-        Сервера - предоставляют вычислительные/информационные сервисы.

-        Активные прокси – преобразуют информацию с сервера в понимаемый мобильными устройствами формат.

-        Единицы – мобильные вычислительные платформы.

Дополнительная информация: “The Ninja Architecture for Robust Internet-Scale Systems and Services” [24] описывает детали архитектуры Ninja-системы.

Daedalus/BARWAN

“Проект разрабатывается в университете Беркли и связан с исследованиями в области мобильных беспроводных вычислительных систем. Цель – соединить интеллектуальные приложения с «умным» сетевым программным обеспечением, которое может поддерживать связь с применением различных сетевых технологий”. [14]

Аннотация: нынешние исследования сфокусированы на транспортном и сетевом уровнях, хотя выполнена небольшая работа на промежуточном уровне.

Future Computing Environments

Future Computing Environment (Вычислительная Среда Будущего) – коллектив студентов и исследователей различных подразделений Georgia Tech, заинтересованных в разработке культуры и инфраструктуры для исследования, поиска прототипов и конструирования вычислительной среды будущего, которая, по их мнению, будет создана через 10-15 лет”. [21]

Аннотация: активная работа в областях приспосабливающихся вычислительных сред и промежуточного обеспечения для мобильных вычислительных сред.

Исследования в лаборатории мобильных систем IBM [27]

IBM публикует лишь частичные данные о своих исследованиях. Среди них - небольшие вступления к проектам [42] и заметки в IBM Systems Journal. Среди них:

Universal Information Appliance (UIA) - Универсальная приспосабливаемость информации [20]

Цели: разработать устройство, которое можно было бы использовать в различных средах (дома, на работе и т.д.).

Особенности: исследования в данной области разделяются:

-        разработка нового интерфейса, который бы адаптировался к различным средам и сценариям использования.

-        разработка беспроводной инфраструктуры, которая поддерживает связь устройства с сетью.

-        разработка промежуточного уровня для связи устройства с другими службами и/или данными.

Решение проблемы разработки интерфейса пользователя - MoDAL [33] (Mobile Document Application Language - язык мобильных документов и приложений) – язык интерфейсов  и приложений на XML. Промежуточный уровень (TSpaces[48]) – небольшая база данных, использующая системы, подобные Linda[23] для дальнейшего взаимодействия и синхронизации.

MOCA: среда для мобильных вычислительных устройств [9]

          Цели: предоставить среду для доступа к службам в мобильных вычислительных средах.

          Особенности: MOCA была разработана для обеспечения потребностей мобильных устройств. Предоставляет возможности для создания и доступа к службам на Java, но в противоположность централизованному размещению ресурсов, выбранному в Jini[28, 50, 5], в MOCA они распределены. Кроме того, предоставляются поддержка учетных записей и безопасности служб.

Aura

“Цель проекта – предоставить каждому пользователю невидимую ауру вычислительных и информационных сервисов, существующих вне зависимости от местоположения. Это требует усилий на каждом уровне: от аппаратного и сетевого, через уровень операционных систем и промежуточного уровня, к уровням пользовательского интерфейса и приложений. В результате должна быть разработана большая система, демонстрирующая концепции «персональной информационной ауры», соединяющая переносимые, портативные, настольные и промышленные компьютеры”. [6]

Аннотация: проект состоит из нескольких подчастей. Самая интересная – Odyssey [13].

Coda и Odyssey

Coda и Odyssey – экспериментальные системы, разработанные исследовательской группой под руководством профессора Сатьянараянана в Школе Компьютерной науки в университете Carnegie Mellon. Обе системы реализуют адаптируемость на многих уровнях. Coda реализует программно прозрачную адаптацию в контексте распределенной файловой системы. Благодаря поддержке стандарта Posix приложения могут быть запущены с нее без изменений. В противоположность, Odyssey поддерживает программно осознаваемую адаптацию, которая лучше подходит для мультимедийных данных, таких как аудио и видео”. [13]

Аннотация: Coda и Odyssey – части проекта Aura. Нынешняя реализация Odyssey следует клиент-серверному направлению. Межсетевое взаимодействие – предмет дальнейших разработок.

Дополнительная информация: “Experience with Adaptive Mobile Applications in Odyssey” [36] – описывает процесс портирования стандартных приложений на архитектуру Odyssey. “System Support for Mobile, Adaptive Applications” [37] оценивает нынешний уровень разработок в данном проекте.

Мобильные устройства/LIME

“Наша исследовательская группа находится впереди по применению формальных технологий          проектирования к мобильным устройствам. В наши интересы также входят парадигмы составления мобильного кода, доставка сообщений мобильным устройствам и механизмы разработки программного обеспечения для мобильных сред”. [49]

Родственные разработки:

Модель мобильного кода [30]

          Исследует гранулярность мобильного кода благодаря использованию парадигм, предоставляемых «Мобильной единицей».

LIMELinda Meets Mobility (Linda встречается с мобильностью) [41]

          Цели: расширить систему Linda [23] для соответствия требованиям мобильных вычислительных сред.

          Особенности: Linda реализует структуру разделяемой памяти для синхронизации и обмена в распределенных средах. LIME адаптирует эту парадигму в среду мобильных вычислений. Нынешняя разработка содержит лишь базовую функциональность, но ее планируется расширить для предоставления полной распределенной синхронизации и обмена.

Проект Portolano

“В рамках проекта Portolano ведутся исследования для создания среды для наблюдений в такой новой области, как «невидимые компьютеры». Этот термин внедрен Дональдом Норманом для описания приближающейся эпохи мобильных специализированных вычислительных устройств. Эти устройства настолько оптимизированы для конкретных задач, что пользователю требуется лишь немного технических знаний для их эксплуатации”. [43]

Дополнительная информация:

Сетевое взаимодействие невидимых вычислительных устройств (проект Portolano в университете Вашингтона) [19]

          Цели: создать прототип и основы мобильных вычислительных платформ.

          Особенности: для создания платформы необходимо в первую очередь решить вопросы в следующих областях:

-        HCI (Human Computer Interfaces – интерфейсы между человеком и компьютером) – перейти от традиционного WIMP(Windows, Icon, Mouse, Pointer – окно, иконка, мышь, указатель) к новым интерфейсам, которые являются независимыми от формы (речь, жесты …) или даже невидимые интерфейсы, не используемые напрямую.

-        Разные приложения предоставляют разные сервисы (например, фотоальбом позволяет хранить или просматривать фото), потенциально распределяемые в сети. Два подхода, решающие проблему - агенты и распределенные службы.

-        Инфраструктура, поддерживающая доступ к вышеперечисленным ресурсам, распределенные вычисления и, самое главное, непостоянство соединения.

Большинство существующих решений не подходят для мобильных вычислительных сред. Самые большие проблемы:

-        возможность разрыва связи с сетью;

-        потребление питания;

-        разработка и распределение приложений;

-        построение и доступ к службам;

-        активная работа с сетью.

Deno: DEcentralized Network Objects (децентрализованные сетевые объекты)

“Цель проекта – исследование децентрализованных подходов для постоянного контроля баз данных общих объектов. Ключевые атрибуты подхода:

-        децентрализованный последовательный контроль – объекты Deno не имеют ни дома, ни постоянного владельца. Вместо этого, объекты «направляются» туда, где их запрашивают. Объекты находят, используя «подсказки». Преимущества подхода:

1.     Нет единого места сбоя.

2.     Отсоединение узла не может помешать обновлению информации.

3.     Нет проблем при сериализации.

-        надежность – надежность объекта может быть настроена в соответствии с ограничениями приложения.

-        мобильное и отсоединенное функционирование – Deno поддерживает мобильные среды, не гарантируя наличия постоянной связи”. [15]

Аннотация: несмотря на то, что работа ведется на промежуточном уровне или уровне приложений, проект показывает несколько интересных подходов к распределенным мобильным вычислениям.

Openwings

Openwings - набор открытых системных требований для среды, позволяющей разрабатывать повсеместно доступные, безопасные, распределенные системы для критичных по выполнению приложений. Начальная версия использует технологию Jini корпорации Sun для бесшовной интеграции системных компонентов и увеличение степени взаимодействия компонентов в «системе систем». [39]

Аннотация: ключевые требования спецификации заимствованы из C4I(Command Control Communications Computers and Intelligence), разработанной DoD США. Цель – объединить несколько компонентов и технологий для построения открытого стандарта. Основой системы является «сервисно-ориентированное программирование», которое в центр ставит сервисы (а не объекты). Тем не менее идея не нова и не уникальна (см. Microsoft “.Net” [34] технологию).

Дополнительная информация: “Openwings - A  Service-Oriented component  Architecture  for  Self-Forming,  Self-Healing,

Network-Centric System” [10] – описывает идеи сервисно-ориентированного программирования в контексте проекта Openwings.

(Visual) Obliq

Obliq – нетипизированный интерпретируемый язык с лексической областью видимости, поддерживающий объектно-ориентированные вычисления.  Вычисления могут порождать множество потоков управления в пределах адресного пространства, множество адресных пространств на машине, гетерогенные машины в пределах локальной сети, множество сетей в пределах Internet. У объектов Obliq есть положение и они локальны по отношению к сайту. Вычисления Obliq могут перемещаться по сети, пока сохраняется связь с сетью”. [11]

“Визуальная среда разработки Obliq включает интерактивный построитель приложений и систему периода выполнения. Построитель приложений – интегрированное средство, позволяющее создавать приложения и выполнять их. Система периода выполнения ответственна за подключение новых пользователей и передачу кода на сайт в момент подключения” [38].

Аннотация: Obliq – довольно старый проект, но тем не менее имеет несколько интересных мест. Obliq (и порожденные от него системы, например, “Panther”) легли в основу Java/Jini корпорации Sun.

 

3. Мобильные вычисления в целом

Charting Past, Present, and Future Research in Ubiquitous Computing [4]

Попытка характеризовать нынешние и будущие разработки в области мобильных вычислительных устройств. Основные темы:

-        естественные интерфейсы

-        контекстная адаптация

-        доступ к информации

Аннотация: основным объектом исследования авторов являются контекстная адаптация, однако источник содержит лишь краткий анализ текущих разработок.

The Post-PC Era [44]

Предоставляет критичный взгляд на проблему и указывает на все еще не решенные проблемы в области мобильных вычислений:

-        взаимодействие (Jini или Upnp?)

-        безопасность

-        регулирование (содержания и доступа)

-        программное обеспечение (требуется новый тип приложений)

-        мобильный маркетинг

-        инфраструктура (требуется новый тип коммуникационных служб)

-        сложные стандарты

-        новые пользовательские интерфейсы

-        ограниченные приложения (Как поддерживать такие системы? Как обрабатывать данные, не хранящиеся напрямую в мобильных устройствах?)

Activating Everyday Objects [51]

Добавляет к стандартным средствам вычислительные и сенсорные свойства. Предметом интереса является офисная среда. Поднимаются проблемы:

-        удешевление домашнего размещения  устройств

-        координация пользователем различных элементов

-        координация реального мира и виртуальной функциональности устройств

Pervasive Computing: What Is It Good For? [26]

Цели: переместить информацию из контекста, в котором она была создана, в контекст, где к ней производится доступ.

Детали: авторы основываются на инфраструктуре, которая может быть использована для выполнения элементарной задачи управления данными. Инфраструктура должна предоставить возможность для преобразования данных, распространению информации и дополнительных возможностей для хранения и вычисления. Предложенная архитектурная модель (Рим) использована в качестве базового строительного блока, иначе называемого распределенным триггером, который устанавливается при достижении определенного события. Система предоставляет функциональность для определения, какое устройство должно получить какой триггер, выполняет маршрутизацию к соответствующему устройству и помогает в определении момента установки триггера (когда триггер не может быть определен локально). Требуемый пользователю объект преобразуется семантическим транслятором во множество триггеров, которые хранятся глобально. Только часть из них отправляется к требуемым устройствам.

The Origins of Ubiquitous Computing Research at PARC in the late 1980s [52]

Характеризует основы мобильных вычислений.

The Computer for the 21st Century [53]

Часто цитируемый источник, содержащий первоначальные идеи мобильных вычислений.

Software Engineering Issues for Ubiquitous Computing [2]

Описывает проблемы мобильных вычислений:

-        прозрачное взаимодействие

-        контекстная адаптация

-        автоматическое выполнение

Появляются проблемы при разработке таких приложений, как интерпретация множественных форм входной и выходной информации и масштабируемость пользовательских интерфейсов и систем. Авторы также описывают несколько инженерных методов, использованных ими в проекте FCE для преодоления проблем.

Software Design Issues for Ubiquitous Computing [1]

Характеризует опыт, полученный при разработке FCE проекта. В основном сосредотачивается в области ситуационной адаптации.

 

4. Источники, посвященные архитектуре мобильных систем

An Application Model for Pervasive Computing [7]

Описывает архитектуру для всеохватывающих вычислительных систем. Предложенная модель различает между «временем разработки», «временем загрузки» и «временем выполнения» приложений.

Software Architectures of Ubiquitous Scientific Computing Environments for Mobile Platforms [17]

Описывает архитектуру устаревшей системы SciencePAD. Целью данного проекта было обеспечить доступ ученого к централизованной вычислительной системе через мобильные устройства.

 

5. Источники, посвященные безопасности мобильных систем

Securing Ad Hoc Networks [55]

Цели: разработка систем безопасности для военных целей.

Детали: авторы выделяют следующие моменты безопасности:

-        Доступность – отображает степень защищенности от атак на каждом коммуникационном уровне.

-        Конфиденциальность – подтверждает, что информация по безопасности не может быть доступна третьей стороне.

-        Целостность – гарантирует, что данные не изменены третьей стороной.

-        Достоверность – предоставляет возможность идентифицировать себя или партнера по коммуникации.

-        Репутативность – дополнительная возможность проверить целесообразность отправки сообщения. Это полезно, если, например, A получит ошибочное сообщение от B, то он может использовать данный атрибут для доказательства, что B больше доверять нельзя.

Основные проблемы безопасности:

-        Беспроводные соединения подвержены активным и пассивным атакам.

-        Узлы перемещаются, что делает проблемным установить с ними безопасные связи.

-        Перемещения в сети не позволяют использовать центральные узлы, наподобие серверов.

-        Если статическая конфигурация не имеет смысла, целью является динамическая, но как достичь этого?

-        Система должна поддерживать несколько сотен или тысяч узлов (масштабируемость).

Решение: использовать традиционный механизм безопасности с небольшими усовершенствованиями. Это включает в себя использование избыточности в сетевой топологии (множество маршрутизаторов между узлами) для обеспечения доступности ресурсов и образования распределенного доверительного центра.

The Resurrecting Duckling

“В недалеком будущем многие персональные устройства будут в состоянии поддерживать связь друг с другом через коротковолновый канал. Мы исследуем принципы безопасности для такой среды. В качестве примера используется термометр, который делает свои показания доступными другим узлам сети. Некоторые выводы, почерпнутые из этого примера, являются типичными для сетей, а некоторые отличаются: отказ в обслуживании, цели идентификации

и проблемы наименования – всем им требуется пересмотр. Мы представляем модель безопасности Resurrecting Duckling («Новорожденный утенок»), которая описывает доверительную непостоянную связь устройства с множеством владельцев”. [18]

Дополнительная информация:

The Resurrecting Duckling: Security Issues for Ad-Hoc Wireless Network [47]

Цели: обезопасить связь между увеличивающимся числом внедренных и мобильных устройств.

Детали: слабое место мобильных устройств это их относительно слабая вычислительная мощь, малое время работы батарей и частое состояние сна (в режиме пониженного энергопотребления). Как результат, стандартные криптографические методы обеспечения безопасности систем не всегда полезны для таких систем. Предложенная схема имитирует поведение утенка, вылупившегося из яйца. Утенок автоматически узнает свою мать и привязывается к ней. Такое же поведение адаптируется к вычислительным устройствам. Они автоматически принимают первого увиденного человека как владельца и устанавливают доверительную связь с ним.

The Resurrecting Duckling - What Next? [47]

Расширяет идею новорожденного утенка. Множество возможных моментов безопасности регулируется в подобной расширенной модели.

Secure Group Communication over Ad-Hoc Networks [31]

Цели: разработать стандартный API для приложений, осуществляющих безопасное соединение.

Детали: предложенное решение адаптирует функциональные принципы PGP требованиям мобильной связи. Это включает создание, поддержку и объединение так называемых «доверительных групп».

Аннотация: система использует мастера координации и управления доверительными группами, что является слабым местом системы безопасности. Это становится важным из-за отсутствия обработки ошибок – она совершается на уровне приложения.

 

6. Ситуационно-адаптирующиеся вычислительные устройства

Using Context as a Crystal Ball:  Rewards and Pitfalls [12]

Цели: мобильные вычислительные устройства слишком малы, чтобы использовать стандартный интерфейс (например, как в PC). Тем не менее, для облегчения использования такого устройства можно использовать контекст, в котором происходит использование.

Детали: три основных препятствия использования контекста:

-        невозможно достичь стабильного состояния, т.е. пользователь пытается что-то сделать, а система пытается это предотвратить из-за несоответствия ситуации

-        противоречие между устойчивостью и свободой

-        пользователь должен доверять корректности работы системы

Контекстная адаптация упрощает работу пользователя с системой (ввод и вывод) и, более того, уменьшает сложность ментальной модели системы у пользователя (пользователь думает, что система проще в использовании).

Авторы приводят свой опыт в разработке контекстно-адаптирующейся системы “CyberGuide” и приводят несколько способов построения таких приложений.

Дополнительная информация:

Context-awareness in wearable and ubiquitous computing [3]

Ключевые слова: контекстная адаптация систем, FCE, CyberGuide, CyberDesk.

Active Environments:  Sensing and Responding to Groups of People [32]

Ключевые слова: контекстно-адаптированные среды (формирующие ответ в зависимости от их местоположения)

The Design and Use of Squeezable Computers:  An Exploration of Manipulative User Interfaces [25]

Ключевые слова: пользовательский интерфейс, манипулятивные интерфейсы

A Context-Based Infrastructure for Smart Environments [16]

 

7. Другие работы

Adapting to Network and Client Variation Using Infrastructural Proxies [22]

Цели: предоставить единообразный доступ к устройствам с разными свойствами, например, WWW.

Детали: описанная система использует прокси для осуществления программной адаптации данных (выполняется такое преобразование данных, чтобы клиент был в состоянии оперировать ими). Прокси-агенты располагаются между сервером и клиентом и осуществляют преобразование данных в соответствии с требованиями клиента. Такой подход предоставляет несколько преимуществ, самое главное – позволяет разработать масштабируемую архитектуру.

Automatic Configuration of Component-Based Distributed Systems [29]

Описывает модель представления зависимостей между системными и программными компонентами и механизм управления ними.

Multi-Fidelity Algorithms for Interactive Mobile Applications [46]

Авторы описывают идею алгоритмов нового класса, которые продуцируют не один результат, а несколько результатов. Все результаты корректны, но различаются в своем предназначении. Т.е. алгоритм на карманном PC продуцирует один результат, подходящий именно для него, в то время как на настольном PC - другой результат (больше текста и графики).

A Mobility-Transparent Deterministic Broadcast Mechanism for-Ad Hoc Networks [8]


Литература

[1] Gregory D. Abowd.  Software design issues for ubiquitous computing.  In Proceedings of the IEEE CS Annual Workshop on VLSI: System Level Design (IWV '98), 1998.

[2] Gregory D. Abowd.  Software engineering issues for ubiquitous computing.  In Proceedings of the 1999 international conference on Software engineering, pages 75-84, 1999.

[3] Gregory D. Abowd, Anind K. Dey, Robert Orr, and Jason Brotherton. Context-awareness in wearable and ubiquitous computing.  In Proceedings of the First International Symposium on Wearable Computers (ISWC '97). IEEE Computer Society, 1997.

[4] Gregory D. Abowd and Elizabeth D. Mynatt.  Charting past, present, and future research in ubiquitous computing. ACM Transactions on Computer-Human Interaction, 7(1):29-58, March 2000.

[5] Ken Arnold. The Jini architecture: Dynamic services in a flexible world. In Proceedings of the 36th Conference on Design Automation, 1999.

[6] The Aura project homepage.

http://www.cs.cmu.edu/.

[7] Guruduth Banavar, James Beck, Eugene Gluzberg, Jonathan Munson, Jermeny Sussman, and Deborah Zukowski. Challenges: An application model for pervasive computing. In Proceedings of the Sixth Annual ACM/IEEE International Conference on Mobile Computing and Networking (MOBICOM 2000), pages 266-274, 2000.

[8] Stefano Basagni, Danilo Bruschi, and Imrich Chlamtac. A mobility-transparent deterministic broadcast mechanism for ad hoc networks.  In IEEE/ACM Transactions on Networking, volume 7, pages 799-807, December 1999.

[9] James Beck, Alain Gefflaut, and Nayeem Islam. MOCA: A service framework for mobile computing devices. In Proceedings of the MobiDE, pages 62-68, 1999.

[10] Guy Bieber and Jeff Carpenter.  Openwings - a service-oriented component architecture for self- forming, self-healing, network-centrik system. White Paper.

[11] Luca  Cardelli.     Obliq:    A  language  with  distributed  scope.     Technical  Report  122,  Digital  Systems  Research  Center,  June  1994.    http://gatekeeper.dec.com/pub/DEC/SRC/research-reports/abstracts/src-rr-122.htm.

[12] Keith Cheverst,  Nigel Davis,  Keith Michell,  and Christos Efstratiou.  Using context as a crystal ball:  Rewards and pitfalls.  In Proceedings of the Workshop on Situated Interaction in Ubiquitous Computing (CHI 2000), April 2000.

[13] Coda and Odyssey homepage. http://www.cs.cmu.edu/afs/cs/project/coda/Web/coda.html.

[14] The Daedalus Project home page.

http://daedalus.cs.berkeley.edu/.

[15] Deno homepage.

http://www.cs.umd.edu/projects/deno/.

[16] Anind K. Dey,  Gregory D. Abowd,  and Daniel Salber.  A context-based infrastructure for smart environments. In Proceedings of the 1st International Workshop on Managing Interactions in Smart Environments (MANSE '99), pages 114-128, 1999.

[17] Tzvetan  T.  Drashansky,  Sanjiva  Weerawarana,  Anupam  Joshi,  Ranjeewa  A.  Weerasinghe,  and  Elias N. Houstis.  Software architectures of ubiquitous scientific computing environments for mobile  platforms.  In  Mobile  Networks  and  Applications  1,  pages  421-432.  J.C.Baltzer  AG,  Science

Publishers, 1996.

[18] The Resurrecting Duckling homepage.

http://www.cl.cam.ac.uk/ fms27/duckling/.

[19] Mike Esler, Jeffrey Hightower, Tom Anderson, and Gaetano Boriello. Next century challenges: Data-centric networking for invisible computing (the Portolano project at the university of Washington. In Proceedings of the Fifth Annual ACM/IEEE International Conference on Mobile Computing and Networking (MOBICOM 1999), pages 256-262, 1999.

[20] K.F.  Eustice,  T.J.  Lehman,  A.  Morales,  M.C.  Muson,  S.  E  dlund,  and  M.Guillen.   A  universal information appliance. IBM Systems Journal, 38(4):575-601, 1999.

[21] Future Computing Environments (FCE) home page. http://www.cc.gatech.edu/fce/.

[22] Armando Fox, Steven D. Gribble, and Yatin Chawatheand Eric A. Brewer. Adapting to network and client variation using active proxies: Lessons and perspectives. In IEEE Personal Communications. IEEE, 1999.

[23] D. Gelernter. Generative communication in in Linda. ACM Computing Surveys, 7(1):80-112, Januar 1985.

[24] Steven D. Gribble, Matt Welsh, Rob von Behren, Eric A. Brewer, David Culler, N. Borisov, S. Czerwinski, R. Gummadi, J. Hill, A. Joseph, R.H. Katz, Z.M. Mao, S. Ross, and B. Zhao.  The ninja architecture for robust internet-scale systems and services.  Special Issue of Computer Networks on Pervasive Computing, 2000.

[25] Beverly L. Harrison,  Ken Fishkin,  Anuj Gujar,  Carlos Mochon,  and Roy Want.  The design and use of squeezable computers:  An exploration of manipulative user interfaces.  In Proceedings of the Conference on Human Factors in Computer Systems (CHI), 1998.

[26] Andrew C. Huang, Benjamin C. Ling, and Shankar Ponnekanti.  Pervasive computing:  Waht is it good for?   In Proceedings  of  the  Workshop  on  Data  Engineering  for  Wireless  and  Mobile  Access

(MobiDE), pages 84-90, 1999.

[27] Projects at the IBM Mobile Computing Lab. http://www.research.ibm.com/compsci/mobile/.

[28] Jini homepage.

http://www.jini.org/.

[29] Fabio Kon. Automatic Configuration of Component-Based Distributed Systems. PhD thesis, University of Illinois at Urbana-Champaign, May 2000.

[30] Cecilia Mascolo, Gian Pietro Picco, and Gruia-Catalin Roman. A fine-grained model for code mobility. In Proceedings of the European Software Engineering Conference held jointly with the 7th ACM SIGSOFT  Symposium  on  the  Foundations  of  Software  Engineering  (ESEC/FSE  '99), September

1999.

[31] Lars-Arne  Mattsson.   Secure  group  communication  over  ad-hoc  networks.   Master  thesis  report,  Uppsala University, February 2000.

[32] Joseph F. McCarthy.  Active environments:  Sensing and responding to groups of people.  In Proceedings of the Conference on Human Factors in Computer Systems (CHI), 2000.

[33] MoDAL  (Mobile  Document  Application  Language)  homepage.    http://www.almaden.ibm.com/cs/TSpaces/MoDAL/index.html.

[34] NET on the Microsoft Developer Network.

http://msdn.microsoft.com/net/.

[35] The Ninja Project.

http://ninja.cs.berkeley.edu/software.html.

[36] B. D. Noble and M. Satyanarayanan.  Experience with adaptive mobile applications in Odyssey. Mobile Networks and Applications, 4:245-254, 1999.

[37] Brian Noble.  System support for mobile, adaptive applications.  IEEE Personal Communications, pages 44-49, February 2000.

[38] Visual Obliq homepage. http://www.cc.gatech.edu/gvu/people/Phd/Krishna/VO/VOHome.html.

[39] Openwings homepage.

http://www.openwings.org/.

[40] MIT Project Oxygen homepage.

http://www.oxygen.lcs.mit.edu/.

[41] Gian Pietro Picco, Amy L. Murphy, and Gruia-Catalim Roman.  LIME: Linda meets mobility.  In ICSE, pages 368-377, 1999.

[42] The  pima  project:  Platform-independent  model  for  applications.  http://www.research.ibm.com/PIMA/index.html.

[43] Portolano homepage.

http://portolano.cs.washington.edu/.

[44] Larry Press. The post-pc era. Comminications of the ACM, 42(10):21-24, October 1999.

[45] Rover mobile application toolkit homepage. http://www.pdos.lcs.mit.edu/rover/.

[46] M. Satyanarayanan and Dushyanth Narayanan.  Multi-fidelity algorithms for interactive mobile applications. In Proceedings of The Third International Workshop on Discrete Algorithms and Methods for Mobile Computing and Communications, 1999.

[47] Frank Stajano and Ross Anderson.  The resurrecting duckling:  Security issues for ad-hoc wireless networks. In Proceedings of the 7th International Workshop on Security Protocols, 1999.

[48] TSpaces project page.

http://www.almaden.ibm.com/cs/TSpaces/.

[49] Mobile UNITY/LIME homepage.

http://swarm.cs.wustl.edu/.

[50] Jim  Waldo.  The  jini  architecutre  for  network-centric  computing.  Communications  of  the  ACM, 42(7):76-82, July 1999.

[51] Roy Want, Mark Weise, and Elizabeth Mynatt.  Activating everyday objects.  In Proceedings of the 1998 DARPA/NIST Smart Spaces Workshope, volume 7, pages 140-143, July 1998.

[52] M. Weiser, R. Gold, and J.S. Brown. The origins of ubiquitous computing research at PARC in the late 1980s. IBM Systems Journal, 38(4), 1999.

[53] N. Weiser.  The computer of the 21st century.  Scientific American, 265(3):94-104, September 1991. http://www.ubiq.com/hypertext/weiser/SciAmDraft3.html.

[54] WIND (Wireless Network of Devices) homepage. http://nms.lcs.mit.edu/projects/wind/.

[55] Liadong Zhou and Zygmunt J. Haas. Securing ad hoc networks. Technical report, Cornell University, 1999.