Проект Каджо
Проект Cajo — это платформа , которая позволяет нескольким Java -приложениям , разбросанным по нескольким машинам, работать вместе как одно прозрачно и динамично. Эта платформа полезна как для открытых/бесплатных , так и для частных приложений, которым необходимы возможности распределенных вычислений. Его можно использовать практически на любой платформе, оснащенной Java ( JRE / JME 1.2 или выше) ( мобильные телефоны , мейнфреймы , серверы , встроенные устройства и т. д.). Это «встраиваемая» среда, поскольку она не накладывает никаких ограничений. структурные требования или изменения исходного кода и являются 100% чистой Java без кода XML. Он также не зависит ни от каких других платформ и может работать за NAT , межсетевыми экранами и даже через HTTP- прокси .
История
[ редактировать ]Проект Cajo был выпущен с использованием номера порта IANA 1198 и многоадресного адреса UDP 224.0.23.162.
Лицензия
[ редактировать ]Исходный код бесплатен по лицензии LGPL , а документация бесплатна по лицензии GFDL .
Использование
[ редактировать ]Обзор
[ редактировать ]Используя Cajo Project, обычные немодифицированные объекты Java можно удаленно удалить с помощью одной строки кода: [ 1 ]
- Itemserver.bind(someObject, "someName")
Затем они могут использоваться удаленными компьютерами статически или динамически.
Использование статического удаленного объекта
[ редактировать ]Использование статического удаленного объекта обычно выполняется, когда к объекту имеется один или несколько интерфейсов, определяющих, как клиент может его использовать, что известно во время компиляции . Например:
- публичный интерфейс SomeInterface { ... // сигнатуры методов}
Удаленный объект реализует этот интерфейс и, возможно, другие, а затем удаляет объект, как показано ранее.
Использование статического удаленного объекта обеспечивается через TransparentItemProxy
. [ 2 ] Пользователь удаленного объекта может создать ссылку на этот объект, которая фактически реализует общий интерфейс, следующим образом:
- SomeInterface si = (SomeInterface)TransparentItemProxy.getItem("//someHost:1198/someName", новый класс[...] {SomeInterface.class} )
Удаленная машина теперь может вызывать методы удаленного объекта с точным синтаксисом и семантикой Java, как если бы она была локальной.
Динамическое использование удаленных объектов
[ редактировать ]Использование динамического удаленного объекта обычно выполняется, когда интерфейс объекта определяется во время выполнения. Это часто происходит при использовании удаленных объектов Cajo в сценариях . [ 3 ] Машина динамически использует ссылку на удаленный объект следующим образом:
- // получаем ссылку
Object object = Remote.getItem("//someHost:1198/someName");
- // обычно получается во время выполнения
Строка someMethod = "someMethod";
- // также получено во время выполнения
Object someArgs = новый Object[...] {someArgs, ... };
- Результат объекта = Remote.invoke(object, someMethod, someArgs);
Этот фрагмент кода вызывает метод удаленного объекта, предоставляя аргументы (если таковые имеются) и возвращая результат. (если есть)
Платформа cajo может позволить машине удаленно обращаться к своему объекту с помощью UDP с многоадресной рассылкой IP . [ 4 ] Этот метод позволяет машинам, заинтересованным в использовании удаленных ссылок, просто слушать объявления. Это обеспечивает механизм связи «один ко многим» , при котором пользователям удаленного объекта не нужно знать адрес TCP/IP хост-машины.
Удаленные графические интерфейсы пользователя
[ редактировать ]Проект Cajo также используется для удаленных графических интерфейсов пользователя. [ 5 ] Это позволяет приложению запускать свое представление на машинах, отдельных от его модели , и даже на объектах контроллера .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Добавление кахо в существующие приложения» . Проект Каджо. 04 августа 2007 г. Архивировано из оригинала 25 сентября 2006 г. Проверено 19 января 2008 г.
- ^ «Использование удаленных объектов, как если бы они были локальными» . Проект Каджо. 04 августа 2007 г. Архивировано из оригинала 23 декабря 2007 г. Проверено 19 января 2008 г.
- ^ «Почему сценарий каджо?» . Проект Каджо. 04 августа 2007 г. Архивировано из оригинала 3 января 2008 г. Проверено 19 января 2008 г.
- ^ «Использование многоадресной рассылки cajo» . Проект Каджо. 04 августа 2007 г. Архивировано из оригинала 23 декабря 2007 г. Проверено 19 января 2008 г.
- ^ «Использование механизма прокси-сервера cajo» . Проект Каджо. 04 августа 2007 г. Архивировано из оригинала 23 декабря 2007 г. Проверено 19 января 2008 г.
Внешние ссылки
[ редактировать ]- https://web.archive.org/web/20060925101254/https://cajo.dev.java.net/ Страница проекта cajo
- http://java.net/projects/cajo [ постоянная мертвая ссылка ] Страница проекта cajo SDK
- Объявление официального номера порта IANA [ постоянная мертвая ссылка ]
- Объявление об адресе многоадресной рассылки IANA [ постоянная мертвая ссылка ]
- Интернет-адреса многоадресной рассылки