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
Данный документ не пытается классифицировать или оценить конкретные разработки. Некоторые проекты приведены лишь вкратце, зачастую содержат только информацию с соответствующего сайта. Часть ссылок не полностью подходят к теме данной работы, но приведены для полноты содержания. В следующей работе будет приведен более детальный анализ интересных разработок: данная работа - лишь аннотированная библиография.
“Системы Oxygen сделают доступным пользователю все изобилие вычислений и коммуникаций благодаря естественным речевым и визуальным интерфейсам, позволяющим обрабатывать данные и автоматизировать повторяющиеся задачи. Системы Oxygen должны быть:
- всеохватывающими - находиться повсюду, чтобы с любого портала можно было обратиться к единой информационной базе;
- внедренными - находиться в нашем мире, быть его неотъемлемой частью, чувствуя и воздействуя на него;
- кочевыми - их пользователи должны иметь возможность свободно изменять свое местоположение;
- вечными - никогда не выключаться, не перезагружаться; компоненты должны добавляться или удаляться по запросу, но система Oxygen в целом не должна останавливаться никогда”. [40]
“Rover Toolkit совмещает перемещаемые динамические объекты и очередизованные удаленные вызовы процедур для предоставления уникальных сервисов для «кочевых» мобильных приложений. Перемещаемый кочевой объект – объект с определенным интерфейсом, который может быть динамически загружен в клиентский компьютер со стороны сервера и наоборот для уменьшения клиент-серверного взаимодействия. Очередизованные удаленные вызовы процедур – способ взаимодействия, позволяющий приложениям выполнять неблокируемые удаленные вызовы процедур даже тогда, когда компьютер отсоединился от сети - запросы будут переданы, когда связь возобновится. Требования мобильных сред включают непостоянство связи, ограниченную пропускную способность и оптимизацию использования канала. Экспериментальные результаты работы почтового клиента, календаря и двух версий броузеров, основанных на данном проекте, показывают соответствие выдвинутым
требованиям”. [45]
Аннотация: Rover Toolkit предоставляет поддержку для разработки высокоустойчивых сетевых приложений.
“Суть проекта – разработка механизма согласования и протоколов, позволяющих приложениям, устройствам, датчикам, компьютерам взаимодействовать друг с другом с минимальной их настройкой; предоставить инфраструктуру для большого класса вычислительных устройств, связанных между собой и даже узко специализированными устройствами”. [54]
Аннотация: нынешние исследования сфокусированы на нижних сетевых уровнях и их взаимодействии.
“Цель проекта – разработка программной инфраструктуры для поддержки нового поколения Internet-приложений. Основа проекта – концепция службы - приложения, доступного из Internet, которое являются расширяемым (может поддерживать тысячи одновременно работающих пользователей), устойчиво к сетевым сбоям и повсеместно доступно”. [35]
Аннотация: архитектура Ninja состоит из трех частей:
- Сервера - предоставляют вычислительные/информационные сервисы.
- Активные прокси – преобразуют информацию с сервера в понимаемый мобильными устройствами формат.
- Единицы – мобильные вычислительные платформы.
Дополнительная информация: “The Ninja Architecture for Robust Internet-Scale Systems and Services” [24] описывает детали архитектуры Ninja-системы.
“Проект разрабатывается в университете Беркли и связан с исследованиями в области мобильных беспроводных вычислительных систем. Цель – соединить интеллектуальные приложения с «умным» сетевым программным обеспечением, которое может поддерживать связь с применением различных сетевых технологий”. [14]
Аннотация: нынешние исследования сфокусированы на транспортном и сетевом уровнях, хотя выполнена небольшая работа на промежуточном уровне.
“Future Computing Environment (Вычислительная Среда Будущего) – коллектив студентов и исследователей различных подразделений Georgia Tech, заинтересованных в разработке культуры и инфраструктуры для исследования, поиска прототипов и конструирования вычислительной среды будущего, которая, по их мнению, будет создана через 10-15 лет”. [21]
Аннотация: активная работа в областях приспосабливающихся вычислительных сред и промежуточного обеспечения для мобильных вычислительных сред.
IBM публикует лишь частичные данные о своих исследованиях. Среди них - небольшие вступления к проектам [42] и заметки в IBM Systems Journal. Среди них:
Цели: разработать устройство, которое можно было бы использовать в различных средах (дома, на работе и т.д.).
Особенности: исследования в данной области разделяются:
- разработка нового интерфейса, который бы адаптировался к различным средам и сценариям использования.
- разработка беспроводной инфраструктуры, которая поддерживает связь устройства с сетью.
- разработка промежуточного уровня для связи устройства с другими службами и/или данными.
Решение проблемы разработки интерфейса пользователя - MoDAL [33] (Mobile Document Application Language - язык мобильных документов и приложений) – язык интерфейсов и приложений на XML. Промежуточный уровень (TSpaces[48]) – небольшая база данных, использующая системы, подобные Linda[23] для дальнейшего взаимодействия и синхронизации.
Цели: предоставить среду для доступа к службам в мобильных вычислительных средах.
Особенности: MOCA была разработана для обеспечения потребностей мобильных устройств. Предоставляет возможности для создания и доступа к службам на Java, но в противоположность централизованному размещению ресурсов, выбранному в Jini[28, 50, 5], в MOCA они распределены. Кроме того, предоставляются поддержка учетных записей и безопасности служб.
“Цель проекта – предоставить каждому пользователю невидимую ауру вычислительных и информационных сервисов, существующих вне зависимости от местоположения. Это требует усилий на каждом уровне: от аппаратного и сетевого, через уровень операционных систем и промежуточного уровня, к уровням пользовательского интерфейса и приложений. В результате должна быть разработана большая система, демонстрирующая концепции «персональной информационной ауры», соединяющая переносимые, портативные, настольные и промышленные компьютеры”. [6]
Аннотация: проект состоит из нескольких подчастей. Самая интересная – Odyssey [13].
“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] оценивает нынешний уровень разработок в данном проекте.
“Наша исследовательская группа находится впереди по применению формальных технологий проектирования к мобильным устройствам. В наши интересы также входят парадигмы составления мобильного кода, доставка сообщений мобильным устройствам и механизмы разработки программного обеспечения для мобильных сред”. [49]
Родственные разработки:
Исследует гранулярность мобильного кода благодаря использованию парадигм, предоставляемых «Мобильной единицей».
Цели: расширить систему Linda [23] для соответствия требованиям мобильных вычислительных сред.
Особенности: Linda реализует структуру разделяемой памяти для синхронизации и обмена в распределенных средах. LIME адаптирует эту парадигму в среду мобильных вычислений. Нынешняя разработка содержит лишь базовую функциональность, но ее планируется расширить для предоставления полной распределенной синхронизации и обмена.
“В рамках проекта Portolano ведутся исследования для создания среды для наблюдений в такой новой области, как «невидимые компьютеры». Этот термин внедрен Дональдом Норманом для описания приближающейся эпохи мобильных специализированных вычислительных устройств. Эти устройства настолько оптимизированы для конкретных задач, что пользователю требуется лишь немного технических знаний для их эксплуатации”. [43]
Дополнительная информация:
Цели: создать прототип и основы мобильных вычислительных платформ.
Особенности: для создания платформы необходимо в первую очередь решить вопросы в следующих областях:
- HCI (Human Computer Interfaces – интерфейсы между человеком и компьютером) – перейти от традиционного WIMP(Windows, Icon, Mouse, Pointer – окно, иконка, мышь, указатель) к новым интерфейсам, которые являются независимыми от формы (речь, жесты …) или даже невидимые интерфейсы, не используемые напрямую.
- Разные приложения предоставляют разные сервисы (например, фотоальбом позволяет хранить или просматривать фото), потенциально распределяемые в сети. Два подхода, решающие проблему - агенты и распределенные службы.
- Инфраструктура, поддерживающая доступ к вышеперечисленным ресурсам, распределенные вычисления и, самое главное, непостоянство соединения.
Большинство существующих решений не подходят для мобильных вычислительных сред. Самые большие проблемы:
- возможность разрыва связи с сетью;
- потребление питания;
- разработка и распределение приложений;
- построение и доступ к службам;
- активная работа с сетью.
“Цель проекта – исследование децентрализованных подходов для постоянного контроля баз данных общих объектов. Ключевые атрибуты подхода:
- децентрализованный последовательный контроль – объекты Deno не имеют ни дома, ни постоянного владельца. Вместо этого, объекты «направляются» туда, где их запрашивают. Объекты находят, используя «подсказки». Преимущества подхода:
1. Нет единого места сбоя.
2. Отсоединение узла не может помешать обновлению информации.
3. Нет проблем при сериализации.
- надежность – надежность объекта может быть настроена в соответствии с ограничениями приложения.
- мобильное и отсоединенное функционирование – Deno поддерживает мобильные среды, не гарантируя наличия постоянной связи”. [15]
Аннотация: несмотря на то, что работа ведется на промежуточном уровне или уровне приложений, проект показывает несколько интересных подходов к распределенным мобильным вычислениям.
“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.
“Obliq – нетипизированный интерпретируемый язык с лексической областью видимости, поддерживающий объектно-ориентированные вычисления. Вычисления могут порождать множество потоков управления в пределах адресного пространства, множество адресных пространств на машине, гетерогенные машины в пределах локальной сети, множество сетей в пределах Internet. У объектов Obliq есть положение и они локальны по отношению к сайту. Вычисления Obliq могут перемещаться по сети, пока сохраняется связь с сетью”. [11]
“Визуальная среда разработки Obliq включает интерактивный построитель приложений и систему периода выполнения. Построитель приложений – интегрированное средство, позволяющее создавать приложения и выполнять их. Система периода выполнения ответственна за подключение новых пользователей и передачу кода на сайт в момент подключения” [38].
Аннотация: Obliq – довольно старый проект, но тем не менее имеет несколько интересных мест. Obliq (и порожденные от него системы, например, “Panther”) легли в основу Java/Jini корпорации Sun.
Попытка характеризовать нынешние и будущие разработки в области мобильных вычислительных устройств. Основные темы:
- естественные интерфейсы
- контекстная адаптация
- доступ к информации
Аннотация: основным объектом исследования авторов являются контекстная адаптация, однако источник содержит лишь краткий анализ текущих разработок.
Предоставляет критичный взгляд на проблему и указывает на все еще не решенные проблемы в области мобильных вычислений:
- взаимодействие (Jini или Upnp?)
- безопасность
- регулирование (содержания и доступа)
- программное обеспечение (требуется новый тип приложений)
- мобильный маркетинг
- инфраструктура (требуется новый тип коммуникационных служб)
- сложные стандарты
- новые пользовательские интерфейсы
- ограниченные приложения (Как поддерживать такие системы? Как обрабатывать данные, не хранящиеся напрямую в мобильных устройствах?)
Добавляет к стандартным средствам вычислительные и сенсорные свойства. Предметом интереса является офисная среда. Поднимаются проблемы:
- удешевление домашнего размещения устройств
- координация пользователем различных элементов
- координация реального мира и виртуальной функциональности устройств
Цели: переместить информацию из контекста, в котором она была создана, в контекст, где к ней производится доступ.
Детали: авторы основываются на инфраструктуре, которая может быть использована для выполнения элементарной задачи управления данными. Инфраструктура должна предоставить возможность для преобразования данных, распространению информации и дополнительных возможностей для хранения и вычисления. Предложенная архитектурная модель (Рим) использована в качестве базового строительного блока, иначе называемого распределенным триггером, который устанавливается при достижении определенного события. Система предоставляет функциональность для определения, какое устройство должно получить какой триггер, выполняет маршрутизацию к соответствующему устройству и помогает в определении момента установки триггера (когда триггер не может быть определен локально). Требуемый пользователю объект преобразуется семантическим транслятором во множество триггеров, которые хранятся глобально. Только часть из них отправляется к требуемым устройствам.
Характеризует основы мобильных вычислений.
Часто цитируемый источник, содержащий первоначальные идеи мобильных вычислений.
Описывает проблемы мобильных вычислений:
- прозрачное взаимодействие
- контекстная адаптация
- автоматическое выполнение
Появляются проблемы при разработке таких приложений, как интерпретация множественных форм входной и выходной информации и масштабируемость пользовательских интерфейсов и систем. Авторы также описывают несколько инженерных методов, использованных ими в проекте FCE для преодоления проблем.
Характеризует опыт, полученный при разработке FCE проекта. В основном сосредотачивается в области ситуационной адаптации.
Описывает архитектуру для всеохватывающих вычислительных систем. Предложенная модель различает между «временем разработки», «временем загрузки» и «временем выполнения» приложений.
Описывает архитектуру устаревшей системы SciencePAD. Целью данного проекта было обеспечить доступ ученого к централизованной вычислительной системе через мобильные устройства.
Цели: разработка систем безопасности для военных целей.
Детали: авторы выделяют следующие моменты безопасности:
- Доступность – отображает степень защищенности от атак на каждом коммуникационном уровне.
- Конфиденциальность – подтверждает, что информация по безопасности не может быть доступна третьей стороне.
- Целостность – гарантирует, что данные не изменены третьей стороной.
- Достоверность – предоставляет возможность идентифицировать себя или партнера по коммуникации.
- Репутативность – дополнительная возможность проверить целесообразность отправки сообщения. Это полезно, если, например, A получит ошибочное сообщение от B, то он может использовать данный атрибут для доказательства, что B больше доверять нельзя.
Основные проблемы безопасности:
- Беспроводные соединения подвержены активным и пассивным атакам.
- Узлы перемещаются, что делает проблемным установить с ними безопасные связи.
- Перемещения в сети не позволяют использовать центральные узлы, наподобие серверов.
- Если статическая конфигурация не имеет смысла, целью является динамическая, но как достичь этого?
- Система должна поддерживать несколько сотен или тысяч узлов (масштабируемость).
Решение: использовать традиционный механизм безопасности с небольшими усовершенствованиями. Это включает в себя использование избыточности в сетевой топологии (множество маршрутизаторов между узлами) для обеспечения доступности ресурсов и образования распределенного доверительного центра.
“В недалеком будущем многие персональные устройства будут в состоянии поддерживать связь друг с другом через коротковолновый канал. Мы исследуем принципы безопасности для такой среды. В качестве примера используется термометр, который делает свои показания доступными другим узлам сети. Некоторые выводы, почерпнутые из этого примера, являются типичными для сетей, а некоторые отличаются: отказ в обслуживании, цели идентификации
и проблемы наименования – всем им требуется пересмотр. Мы представляем модель безопасности Resurrecting Duckling («Новорожденный утенок»), которая описывает доверительную непостоянную связь устройства с множеством владельцев”. [18]
Дополнительная информация:
Цели: обезопасить связь между увеличивающимся числом внедренных и мобильных устройств.
Детали: слабое место мобильных устройств это их относительно слабая вычислительная мощь, малое время работы батарей и частое состояние сна (в режиме пониженного энергопотребления). Как результат, стандартные криптографические методы обеспечения безопасности систем не всегда полезны для таких систем. Предложенная схема имитирует поведение утенка, вылупившегося из яйца. Утенок автоматически узнает свою мать и привязывается к ней. Такое же поведение адаптируется к вычислительным устройствам. Они автоматически принимают первого увиденного человека как владельца и устанавливают доверительную связь с ним.
Расширяет идею новорожденного утенка. Множество возможных моментов безопасности регулируется в подобной расширенной модели.
Цели: разработать стандартный API для приложений, осуществляющих безопасное соединение.
Детали: предложенное решение адаптирует функциональные принципы PGP требованиям мобильной связи. Это включает создание, поддержку и объединение так называемых «доверительных групп».
Аннотация: система использует мастера координации и управления доверительными группами, что является слабым местом системы безопасности. Это становится важным из-за отсутствия обработки ошибок – она совершается на уровне приложения.
Цели: мобильные вычислительные устройства слишком малы, чтобы использовать стандартный интерфейс (например, как в PC). Тем не менее, для облегчения использования такого устройства можно использовать контекст, в котором происходит использование.
Детали: три основных препятствия использования контекста:
- невозможно достичь стабильного состояния, т.е. пользователь пытается что-то сделать, а система пытается это предотвратить из-за несоответствия ситуации
- противоречие между устойчивостью и свободой
- пользователь должен доверять корректности работы системы
Контекстная адаптация упрощает работу пользователя с системой (ввод и вывод) и, более того, уменьшает сложность ментальной модели системы у пользователя (пользователь думает, что система проще в использовании).
Авторы приводят свой опыт в разработке контекстно-адаптирующейся системы “CyberGuide” и приводят несколько способов построения таких приложений.
Дополнительная информация:
Ключевые слова: контекстная адаптация систем, FCE, CyberGuide, CyberDesk.
Ключевые слова: контекстно-адаптированные среды (формирующие ответ в зависимости от их местоположения)
Ключевые слова: пользовательский интерфейс, манипулятивные интерфейсы
Цели: предоставить единообразный доступ к устройствам с разными свойствами, например, WWW.
Детали: описанная система использует прокси для осуществления программной адаптации данных (выполняется такое преобразование данных, чтобы клиент был в состоянии оперировать ими). Прокси-агенты располагаются между сервером и клиентом и осуществляют преобразование данных в соответствии с требованиями клиента. Такой подход предоставляет несколько преимуществ, самое главное – позволяет разработать масштабируемую архитектуру.
Описывает модель представления зависимостей между системными и программными компонентами и механизм управления ними.
Авторы описывают идею алгоритмов нового класса, которые продуцируют не один результат, а несколько результатов. Все результаты корректны, но различаются в своем предназначении. Т.е. алгоритм на карманном PC продуцирует один результат, подходящий именно для него, в то время как на настольном PC - другой результат (больше текста и графики).
[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.
[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/.
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/.
[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/.
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.
[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.
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.
http://www.almaden.ibm.com/cs/TSpaces/.
[49] Mobile UNITY/LIME homepage.
[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.