Проект Cajo - Cajo project

В Проект Кахо это рамки что позволяет несколько Ява Приложения которые распределены по нескольким машинам для прозрачной и динамической совместной работы. открытый / свободный и проприетарный приложения, которым требуются возможности распределенных вычислений. Его можно использовать практически на любой платформе, оснащенной Java (JRE /JME 1.2 или выше) (мобильные телефоны, мэйнфреймы, серверы, встроенные устройства и т. д.) Это «вставная» структура, поскольку она не налагает никаких структурных требований или исходный код меняется и представляет собой 100% чистую Java без кода XML. Он также не зависит от других фреймворков и может работать за NAT, брандмауэры, четное HTTP прокси.

История

Проект Cajo имеет номер порта IANA 1198 и адрес многоадресной рассылки UDP 224.0.23.162.

Лицензия

Исходный код распространяется бесплатно под LGPL, а документация бесплатна под GFDL.

использование

Обзор

Используя проект Cajo, обычные немодифицированные объекты Java можно удалить с помощью одной строки кода:[1]

Itemserver.bind (someObject, "someName")

Затем они могут использоваться удаленными машинами статически или динамически.

Использование статического удаленного объекта

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

открытый интерфейс SomeInterface {... // сигнатуры методов}

Удаленный объект реализует этот интерфейс и, возможно, другие, а затем удаляет объект, как показано ранее.

Использование статического удаленного объекта предоставляется через TransparentItemProxy.[2] Пользователь удаленного объекта может создать ссылку на этот объект, который фактически реализует общий интерфейс, следующим образом:

SomeInterface si = (SomeInterface) TransparentItemProxy.getItem ("// someHost: 1198 / someName", новый класс [...] {SomeInterface.class})

Теперь удаленная машина может вызывать методы удаленного объекта с точным синтаксисом и семантикой Java, как если бы он был локальным.

Использование динамического удаленного объекта

Использование динамического удаленного объекта обычно выполняется, когда интерфейс к объекту определяется во время выполнения. Это часто бывает при использовании удаленных объектов Cajo в сценарии.[3] Машина динамически использует ссылку на удаленный объект следующим образом:

// получаем ссылку

Объект object = Remote.getItem ("// someHost: 1198 / someName");

// обычно получается во время выполнения

Строка someMethod = "someMethod";

// также получается во время выполнения

Объект someArgs = новый объект [...] {someArgs, ...};

Результат объекта = Remote.invoke (объект, someMethod, someArgs);

Этот фрагмент вызывает метод удаленного объекта, предоставляя аргументы, (если есть) и возвращая результат. (если есть)

Фреймворк cajo может позволить машине удалять ссылку на объект, используя UDP /IP Многоадресная рассылка.[4] Этот метод позволяет машинам, заинтересованным в использовании удаленных ссылок, просто слушать объявления. Это обеспечивает Один ко многим механизм связи, при котором пользователям удаленного объекта не нужно знать TCP / IP адрес хост-машины.

Удаленный графический пользовательский интерфейс

Проект Cajo также используется для удаленных графических пользовательских интерфейсов.[5] Это позволяет приложению запускать свое представление на отдельных машинах от его модель, и даже его контролер объекты.

Смотрите также

Рекомендации

  1. ^ «Добавление cajo в существующие приложения». Проект Cajo. 2007-08-04. Архивировано из оригинал на 2006-09-25. Получено 2008-01-19.
  2. ^ «Использование удаленных объектов, как если бы они были локальными». Проект Cajo. 2007-08-04. Архивировано из оригинал на 2007-12-23. Получено 2008-01-19.
  3. ^ "Почему скрипт уговаривает?". Проект Cajo. 2007-08-04. Архивировано из оригинал на 2008-01-03. Получено 2008-01-19.
  4. ^ «Использование многоадресной рассылки cajo». Проект Cajo. 2007-08-04. Архивировано из оригинал на 2007-12-23. Получено 2008-01-19.
  5. ^ «Использование механизма прокси-сервера cajo». Проект Cajo. 2007-08-04. Архивировано из оригинал на 2007-12-23. Получено 2008-01-19.

внешняя ссылка