TeleScript. Первая коммерческая реализация концепции мобильного агента была сделана в среде TeleScript-технологии фирмы General Magic. Данная технология основана на метафоре электронного рынка - общедоступной сети (public network), которая позволяет продавцам и потребителям товаров и услуг находить друг друга и заниматься совместным бизнесом.
TeleScript-технология оперирует следующими понятиями: места (places), агенты (agents), перемещения (travels), встречи (meetings), соединения (connections), полномочия (authority) и разрешения (permits). Далее кратко разъясняются перечисленные понятия:
Места. TeleScript-технология рассматривает компьютерную сеть как множество мест. Место - стационарный процесс на сервере, предлагающий услуги входящему агенту.
Агенты. Коммуникационное приложение трактуется как набор агентов. Каждый агент занимает конкретное место. Однако, агент может перемещаться от места к месту, и поэтому он может занимать несколько различных мест в одно и то же время. Агентские процедуры выполняются параллельно. В модели электронного рынка на типичном месте постоянно присутствует один, выделенный агент.
Перемещение. Агенту предоставляется возможность путешествовать с места на место. Перемещение - отличительный признак системы удаленного программирования, оно позволяет агенту получить удаленную услугу и затем вернуться на место его старта. TeleScript позволяет коммуникационному пакету (computer package) - агенту (его процедурам и состоянию) перемещаться между компьютерами. Для перемещения между компьютерами агент выполняет инструкцию go. Инструкция включает ticket - данные о желаемом месте доставки, и других параметрах перемещения. В случае, если перемещение прошло успешно, агент получает уведомление об этом (его следующая инструкция выполняется уже на новом месте). В модели электронного рынка инструкция go позволяет агентам покупателей и продавцов располагать друг друга для более эффективного взаимодействия.
Встречи. Встреча позволяет агентам вызывать процедуры друг друга. Встречи - это то, что “заставляет” агента перемещаться. Для встречи с расположенным рядом (co-located) агентом, агент выполняет инструкцию meet. Данная инструкция содержит требование (petition) - данные, определяющие агента, который “хочет” встретится и другие параметры встречи. Meet-инструкция позволяет покупателям и продавцам осуществлять транзакции.
Соединения (пока не реализованы на 1995 год). Они позволяют агентам обмениваться информацией с разных мест. Для соединения агент выполняет connect-инструкцию. Данная инструкция содержит несколько параметров, таких как цель (target) соединения. Connect-инструкция позволяет агентам обмениваться информацией на расстоянии.
Полномочия. Технология позволяет агенту или месту распознавать полномочия другого агента/места, причем агент или место не могут ни скрывать, ни фальсифицировать свои полномочия. Анонимность исключена. Технологией предусмотрена проверка полномочий при перемещении агента между регионами (network regions) сети - набором мест, расположенных на компьютерах, обладающих одинаковыми полномочиями. Для проверки полномочий агент или место выполняет инструкцию name. Результатом выполнения инструкции является telename - данные, позволяющие распознавать полномочия в рамках региона сети. Данная возможность позволяет защитить агентов и места от проникновения вирусов.
Разрешения. Технология позволяет управлять назначением полномочий.
Язык программирования позволяет разработчику коммуникационного приложения определять алгоритмы функционирования агентов и данные, переносимые агентами во время перемещения по сети. Язык включает в себя возможности, предлагаемые C и C++. Приложение может быть написано целиком на языке TeleScript, но чаще разработчики поступают иначе: агенты и оболочки мест пишутся с помощью TeleScript, а стационарные части приложения (интерфейсы с пользователем, базами данных и т.д.) - на С или С++.
Telescript обладает следующими характеристиками:
Полнотой.
Объектно-ориентированностью.
Динамичностью (dynamic). Агент может переносить информацию с места на место. Даже если при пересылке объект не известен на месте назначения, его класс следует вместе с ним по сети (код, определение класса).
Сохранением (persistency). На каждом шаге выполнения агент и переносимая им информация безопасно сохраняется в не-volatile - памяти (постоянной - видимо, служебной памяти интерпретатора). Эта операция позволяет предотвратить крах компьютерной системы.
Переносимостью и безопасностью. Компьютер выполняет инструкции, составляющие агента не напрямую, а посредством engine-интерпретатора. Агент может выполняться на любом компьютере, на котором инсталлирован интерпретатор.
Ориентированностью на коммуникации (communication-centric). В язык встроены инструкции, позволяющие агенту просто выполнять сложные сетевые задачи.
Agent-Tcl. Agent-Tcl - это система мобильных агентов, в которой агенты написаны на Tcl 7.4 и Tk 4.0. Agent-Tcl активно используется в задачах информационного поиска и прикладных программах информационного управления. Agent-Tcl в целом аналогичен языку TeleScript, за исключением того, что Agent-Tcl более облегчен и в настоящее время обеспечивает ограниченную защиту. Альфа - версия доступна на Unix платформах.
Oz - параллельный, объектно-ориентированный язык программирования, который был разработан в DFKI (Германия). Имеются несколько проектов в DFKI, использующих Oz совместно с архитектурой InteRRaP (см. предыдущий раздел). InteRRaP представляет из себя многоуровневую архитектуру, которая построена для модели взаимодействующих автономных агентов. DFKI предлагает параллельный язык программирования, приспособленный для прикладных программ, которые требуют сложных символьных вычислений, организации кооперации агентов и некоторых возможностей управления в реальном масштабе времени. Реализация Oz является законченной средой программирования, включающей объектно-ориентированный интерфейс к Tcl/Tk. Прикладные программы на Oz уже использовались для моделирования многоагентных систем, обработки естественного языка, виртуальной реальности, графических пользовательских интерфейсов, планирования и создания расписаний.
Obliq - это интерпретируемый язык без контроля типов, который поддерживает, распределенные объектно-ориентированные вычисления. Вычисление в Obliq может охватывать многократные потоки управления внутри одного адресного пространства, многократные адресные пространства в пределах одного компьютера, множество компьютеров в гетерогенной локальной сети, и, наконец, даже множество сетей в Internet. Вычисления в Obliq могут перемещаться по сети, сохраняя сетевые соединения.
Facile - язык программирования высокого уровня для систем, которые требуют комбинации сложного манипулирования данными с параллельными распределенными вычислениями.
Таблица 1. Сравнение языков.
Язык
|
Переносимость кода
|
Доступность
|
Сетевые возможности
|
Параллельность
|
Java
|
байт-код, виртуальная машина Java
|
Windows 95/NT,
Solaris SPARC /Intel, HP-UX, OS/2, Macintosh, Linux
|
APIs (библиотеки классов), Remote Method Invocation, сетевая сериализация
|
Threads синхронизованные с помощью мониторов
|
TeleScript
|
интерпретация скриптов
|
Solaris SPARC, HP-UX, OS IRIX
|
TCP/IP, UDP, сетевая сериализация
|
множественные процессы работающие в вытесняющей многозадачности
|
Tcl/Tk
|
интерпретация скриптов
|
Macintosh, Windows 3.1, Windows 95/NT, Solaris
|
|
|
Oz
|
|
Solaris SPARC, Sun OS, SGI IRIX, HP-UX, DEC Ultrix, IBM RS6000, Linux
|
|
|
Obliq
|
интерпретиру-емый язык
|
|
гетерогенные распределенные сетевые вычисления
|
множественные threads внутри одного адресного пространства, множественные адресные пространства в пределах машины, распределенные вычисления в гетерогенных сетях
|
April
|
|
|
UDP
|
|
AKL
|
|
|
|
|
Scheme 48
|
|
|
|
|
Penguin
|
|
|
|
|
Python
|
интерпретиру-емый язык
|
Windows, DOS, Macintosh, UNIX
|
интерфейс к TCP/IP
|
|
Facile
|
|
|
|
|
AgentSpeak
|
интерпретиру-емый
|
пока не реализован
|
|
аналог потоков - намерения
|
|
|
|
|
|
Do'stlaringiz bilan baham: |