Network World, США
Она безопасна, мобильна и переносима
Инструментарий Jini Technology Starter Kit с недавних пор стал распространяться на условиях лицензии Apache License 2.0. Получившая несколько лет назад известность как технология однорангового сетевого взаимодействия электронного оборудования разных типов, Jini является ярким примером сервисной архитектуры (service-oriented architecture, SOA) с развитыми возможностями и позволяет клиентскому приложению, или потребителю, использовать сервис, предоставляемый другим приложением, или провайдером. Как правило, такое взаимодействие предусматривает некий вид асинхронной передачи сообщений или вызова функций в приложениях, работающих на удаленных системах (удаленный вызов метода).
Помимо этой базовой для SOA возможности, Jini предоставляет ряд других, таких как переносимость, мобильность кода и безопасность платформы. Инструментарий Jini легко использовать в приложениях с доступом к среде выполнения Java 2 Platform Standard Edition. Но он также применяется в миниатюрных, встроенных устройствах и в приложениях, написанных на других языках программирования помимо Java.
Ключевая концепция Jini — сервисы. Сервис представляет собой Java-интерфейс, который определяется контрактом между потребителем и провайдером. Большинство пользователей, как правило, интересует использование сервисов, а не их предоставление. Найти адекватный экземпляр сервиса помогает специальный сервис поиска.
Очень важно, что сервисы можно искать по типу, а не по имени или URL. Объект, который возвращается сервисом поиска, часто называют «посредником сервиса» (service proxy), поскольку он действует как дублер существующей где-то удаленно реализации сервиса. Посредник отвечает за все взаимодействия между приложением и реализацией сервиса.
Одна из наиболее важных возможностей Jini заключается в том, что потребитель сервиса не должен устанавливать на своем компьютере реализацию посредника сервиса. Посредника можно загрузить с другого компьютера (называемого «сервером кодовой базы»), который предоставляет существующую реализацию этого посредника сервиса.
Все, что нужно для установленного клиента Jini, — это интерфейс сервиса и прямые ссылки на типы переменных. Клиент сервиса Jini можно быстро обновлять, поскольку кодовая база посредника сервиса может меняться «на лету», и вновь связывающиеся клиенты будут выбирать его автоматически. Jini объединяет кодовую базу посредника (получаемую с сервера кодовой базы) и данные сервиса (называемые «сериализованным посредником» и имеющиеся в распоряжении справочного сервиса), чтобы предоставить посредника сервиса.
Инструментарий Jini имеет подключаемую инфраструктуру, которая дает пользователям возможность относительно легко интегрироваться с любым коммуникационным протоколом. Тип посредника сервиса не обязательно должен согласовываться с реализациями сервисов. К примеру, можно легко создать смарт-клиентов, использовав посредника сервиса, который определенные вызовы методов выполняет на клиенте, а другие делегирует серверу. При взаимодействии между клиентом и сервисом может использоваться любой протокол.
Концепция аренды имеет принципиальное значение для обеспечения надежности и отказоустойчивости Jini. Все посредники сервисов арендуются. Концепция аренды позволяет не беспокоиться о том, что сервисы могут выполняться некорректно, а связь — прерываться. Сервис доступен только в том случае, если он постоянно обновляет свою регистрацию, используя традиционные виды утилит. Если это сделать не удается, сервис удаляется из системы. Клиенты могут обнаружить только доступные сервисы. Распределенное приложение, по существу, выявляет частичные ошибки и использует маршруты для их обхода. До тех пор пока необходимые сервисы установлены с избыточностью, приложение Jini может восстанавливаться почти автоматически.
Все возможности Jini в совокупности формируют весьма многообещающий вариант SOA.
Александр Крафт — президент и один из основателей компании CodeMesh. С ним можно связаться по адресу alex@codemesh.com.
Принцип работы: Jini
Сетевая технология Jini представляет собой сервис-ориентированную архитектуру