
12.4.
Сравнение TIB/Rendezvous и Jini 785
особенного. Кроме того, хотя обе системы поддерживают множество специфиче-
ских процессов, которые реализуют, например, транзакции, не предпринимается
никаких специальных мер, чтобы сделать эти процессы хотя бы немного отл1тч-
ными от процессов пользовательских приложений.
Именование
Если рассматривать вопросы именования, между TIB/Rendezvous
и
Jini имеется
три отличия. Имена в TIB/Rendezvous играют важную роль в контексте адреса-
ции по теме. Все адреса имеют вид символьных строк, напоминая DNS-имена.
Предоставляются простые, но эффективные средства именования, включая сим-
волы-заменители и аббревиатуры для групп тем.
По сравнению с TIB/Rendezvous имена
в
Jini имеют вид строк байтов, в кото-
рых каждая строка соответствует объекту после маршалинга. Строки сравнива-
ются только на равенство, хотя можно также использовать символ-заменитель
в форме строки без значения (NULL).
Благодаря эффективности парадигмы публикации/подписки в TIB/Rendez-
vous нет реальной необходимости в выделенной службе именования, которая раз-
решала бы имена в адреса процессов. В противоположность ей система Jini вы-
нуждена поддерживать выделенную службу поиска, позволяющую клиенту
локализовать процесс по имени на базе атрибутов (это имя опять-таки выража-
ется в виде последовательности строк байтов).
Синхронизация
Системы TIB/Rendezvous и Jini поддерживают механизмы транзакций, но ис-
пользуют разные модели транзакций. В TIB/Rendezvous основная идея транзак-
ций состоит в том, что они объединяют последовательности операций публика-
ции и получения сообщений (а возможно, и операций с базами данных) в единую
транзакцию. Транзакции (точнее, транзакционный обмен сообщениями) осуще-
ствляются на специальном уровне, на котором расположены расширения обыч-
ной библиотеки публикации/подписки. Кроме того, имеется менеджер транзакций.
TIB/Rendezvous следит за тем, чтобы транзакции в ходе обмена сообщениями
удовлетворяли свойствам ACID.
Jini,
в сущности, содержит только протокол транзакций, который позволяет
объединить в транзакцию несколько операций, вызванных клиентом. Однако
обеспечить соблюдение свойств ACID, то есть атомарности, непротиворечиво-
сти,
изолированности и долговечности транзакции,
—
забота инициировавшего
ее процесса. Jini содержит специальный менеджер транзакций и гарантирует, что
совместно с серверами JavaSpace этот менеджер обеспечит соблюдение свойств
ACID для транзакций.
Работа транзакции в TIB/Rendezvous ограничена рамками одного процесса.
Если принять участие в транзакции хотят несколько процессов, необходим тра-
диционный менеджер транзакций, который мог бы обслуживать не только обмен
сообщениями. В Jini в одной транзакции могут участвовать несколько клиент-
ских процессов, хотя обычно инициативу по организации и завершению транз-
акции проявляет только один клиент.