
- •Оглавление
- •Java-технологии распределенных компьютерных систем
- •Инструментальные средства java для создания распределенных систем
- •Первая java-программа
- •Интерфейсы
- •Наследование
- •Import имя_пакета.*;
- •Ссылки this и super
- •Исключения
- •Массивы
- •Виртуальная машина java (jvm)
- •Распределенные компьютерные системы и их характеристики
- •Промежуточное программное обеспечение распределенных компьютерных систем
- •Архитектура java rmi
- •Достоинства и недостатки java-rmi
- •Технология corba
- •Достоинства и недостатки corba
- •Структура распределенного j2ee java-приложения
- •Hello World распределенное j2ee java-приложение Средства разработки
- •Структура
- •Код локального интерфейса
- •Html. Основные теги html.
- •Основные теги html
- •Формы html-документов
- •Cgi. Java web-сервер
- •Сервлет-технология java
- •Компоненты ejb
- •Страницы jsp
- •Теги и встроенные объекты jsp
- •Основные теги jsp-страниц.
- •Архитектуры распределенных приложений. Web-сервисы
- •Jms. Архитектура jms
Распределенные компьютерные системы и их характеристики
Современные тенденции в экономике, науке и технике вызывают растущую потребность в распределительных системах.
Под распределенной системой понимают взаимосвязанный набор автономных компьютеров, процессов или процессоров. При этом далее эти компьютеры, процессы или процессоры упоминаются как узлы распределенной системы.
Чтобы быть взаимосвязанными узлы должны иметь возможность обмениваться информацией. Наиболее известными распределенными системами является Internet и intranet. Распределенные системы имеют специфические характеристики которые не присущи обычным системам. К ним относятся:
Параллельность. Программные компоненты, выполняющие распределенную обработку, могут работать параллельно.
Независимые отказы. Аппаратные и программные компоненты могут отказывать независимо друг от друга.
Отсутствие глобального времени. У каждого компонента распределенной системы имеются свои часы, которые могу показывать разное время.
Коммуникационные задержки. На передачу данных между компонентами распределенной системы необходимо определенное время.
Несогласованное состояние. Компоненты могут быть в разных состояниях (сна, занятости и т.д).
Промежуточное программное обеспечение распределенных компьютерных систем
Промежуточное программное обеспечение распределенных компьютерных систем (midleware) программное обеспечение осуществляющее взаимодействие между приложениями и сетевыми ОС.
В основе middleware лежит концепция RPC (Remote Procedure Calls) - вызова удаленных процедур.
Основная идея RPC обеспечить программистом приложений возможность вызова процедуры развернутой и выполняющейся на удаленном хосте, таким образом как если бы вызывалась локальная процедура.
При этом система RPC должна решать ряд задач:
Трансформировать сложные типы данных приложений (вызовы и результаты удаленных процедур) в транспортное представление (поток байт или дейтаграммы транспортных протоколов). Этот процесс называется маршаллингом.
Кроме того, выполнить обратное преобразование – демаршаллинг.
Как правило, клиент вызывающий процедуру и сервер ее выполняющий работают параллельно, поэтому система RPC должна обеспечить синхронизацию их работы.
На рисунке ниже приведена общая архитектура системы RPC.
Центральным архитектурным элементом является стабы (stub). В системе RPC они выполняют синхронизацию, маршаллинг, демаршаллинг и сетевые коммуникации. RPC включает в себя службу называемую реестром RPC (registry). С помощью нее серверы находят себя в сети.
Интерфейс активации RPC предназначен для вызова и загрузки байт-кода серверной программы.
Во всех системах RPC используется некоторая разновидность языка определения интерфейсов IDL (Interface Definition Language). Он используется для определения удаленной процедуры.
При этом в состав систем RPC входит компилятор IDL, используемый для автоматической организации стабов.
JAVA RMI
RMI (Remote Method Invocation) – удаленный вызов методов, одна из технологий создания распределенных приложений на языке java.
Определение удаленной службы осуществляется с помощью интерфейса java, а реализация удаленной службы - в отдельном классе. Архитектура JAVA RMI приведена на рисунке ниже: