
- •Введение
- •1 Тема 1. Введение в теорию вычислительных сетей
- •1.1 Общая классификация систем обработки данных
- •1.1.1 Сосредоточенные системы
- •1.1.2 Распределенные системы
- •1.1.3 Распределенные вычислительные сети
- •1.2 Сетевые объектные системы
- •1.2.1 Классические приложения модели OSI
- •1.2.2 Распределенная вычислительная среда (DCE)
- •1.2.3 Технология CORBA
- •1.2.4 Удаленный вызов методов
- •1.3 Сервис-ориентированные технологии
- •1.3.1 Функции и сервисы
- •1.3.2 Системы midlleware
- •1.3.3 Сервисные шины предприятий
- •1.4 Виртуальные системы
- •1.4.1 Виртуальные машины
- •1.4.2 Виртуализация вычислительных комплексов на уровне ОС
- •1.4.2 Виртуализация ПО на уровне языка
- •1.4.3 Виртуальная машина языка Java
- •1.5 Итоги теоретических построений
- •Вопросы для самопроверки
- •2 Тема 2. Инструментальные средства языка Java
- •2.1 Общее описание инструментальных средств языка
- •2.1.1 Инструментальные средства командной строки
- •2.1.2 Пакетная организация языка Java
- •2.1.3 Инструментальные средства Eclipse
- •2.2 Классы и простые типы данных
- •2.2.1 Операторы и простые типы данных
- •2.2.2 Синтаксис определения классов
- •2.2.3 Синтаксис и семантика методов
- •2.2.4 Синтаксис определения интерфейсов
- •2.2.5 Объекты и переменные
- •2.3 Управляющие операторы языка
- •2.4 Потоки ввода-вывода
- •2.4.1 Стандартный ввод-вывод
- •2.4.2 Классы потоков ввода
- •2.4.3 Классы потоков вывода
- •2.5 Управление сетевыми соединениями
- •2.5.1 Адресация на базе класса InetAddress
- •2.5.2 Адресация на базе URL и URLConnection
- •2.5.3 Сокеты протокола TCP
- •2.5.4 Сокеты протокола UDP
- •2.5.5 Простейшая задача технологии клиент-сервер
- •2.6 Организация доступа к базам данных
- •2.6.1 Инструментальные средства СУБД Apache Derby
- •2.6.2 SQL-запросы и драйверы баз данных
- •2.6.3 Типовой пример выборки данных
- •Вопросы для самопроверки
- •3 Тема 3. Объектные распределенные системы
- •3.1 Брокерные архитектуры
- •3.1.1 Вызов удаленных процедур
- •3.1.2 Использование удаленных объектов
- •3.2 Технология CORBA
- •3.2.1 Брокерная архитектура CORBA
- •3.2.2 Проект серверной части приложения NotePad
- •3.2.3 Проект клиентской части приложения Example12
- •3.2.4 Генерация распределенного объекта OrbPad
- •3.2.5 Реализация серверной части ORB-приложения
- •3.2.6 Реализация клиентской части ORB-приложения
- •3.3 Технология RMI
- •3.3.1 Интерфейсы удаленных объектов
- •3.3.2 Реализация RMI-сервера
- •3.3.3 Реализация RMI-клиента
- •Вопросы для самопроверки
- •4 Тема 4. Web-технологии распределенных систем
- •4.1 Общее описание технологии web
- •4.1.1 Унифицированный идентификатор ресурсов (URI)
- •4.1.2 Общее представление ресурсов (HTML)
- •4.1.3 Протокол передачи гипертекста (HTTP)
- •4.2 Модели «Клиент-сервер»
- •4.2.1 Распределение приложений по уровням
- •4.3 Технология Java-сервлетов
- •4.3.1 Классы Servlet и HttpServlet
- •4.3.2 Контейнер сервлетов Apache Tomcat
- •4.3.3 Диспетчер запросов - RequestDispatcher
- •4.3.4 Технология JSP-страниц
- •4.3.5 Модель MVC
- •Вопросы для самопроверки
- •5 Тема 5. Сервис-ориентированные архитектуры
- •5.1 Концепция SOA
- •5.1.1 Связывание распределенных программных систем
- •5.1.2 Web-сервисы первого и второго поколений
- •5.1.3 Брокерные архитектуры web-сервисов
- •5.2 Частные подходы к реализации сервисных технологий
- •5.2.1 Технологии одноранговых сетей
- •5.2.2 Технологии GRID
- •5.2.3 Облачные вычисления и «виртуализация»
- •Вопросы для самопроверки
- •Список использованных источников
- •Алфавитный указатель
24
1.2.3Технология CORBA
Вперспективе, DCE как технология может претендовать на создание распределенных ОС, но находясь в «плену» низкоуровневых системных программных средств, не может претендовать на приемлемые решения при создании распределенных приложений. Разработчикам распределенных систем требовались инструментальные средства, которые бы на уровне сети обеспечивали взаимодействие программных объектов. Для этого, в 1989 году был создан консорциум [17]: «OMG (сокр. от англ. Object Management Group, читается как [о-эм-джи]) — консорциум (рабочая группа), занимающийся разработкой и продвижением объект- но-ориентированных технологий и стандартов. Это некоммерческое объединение, разрабатывающее стандарты для создания интероперабельных, то есть платфор- мо-независимых, приложений на уровне предприятия. С консорциумом сотрудничает около 800 организаций — крупнейших производителей прогаммного обеспечения». Основным достижением консорциума является брокерная архитектура взаимодействия ПО [18]: «CORBA (обычно произносится [ко́рба], иногда жарг. [ко́бра]; англ. Common Object Request Broker Architecture — общая архитектура брокера объектных запросов; типовая архитектура опосредованных запросов к объектам) — технологический стандарт написания рапределенных приложений, продвигаемый консорциумом (рабочей группой) OMG и соответствующая ему информационная технология. … Технология CORBA создана для поддержки разработки и развертывания сложных объектно-ориентированных прикладных систем. CORBA является механизмом в программном обеспечении для осуществления интеграции изолированных систем, который дает возможность программам, написанным на разных языках программирования, работающим в разных узлах сети, взаимодействовать друг с другом так же просто, как если бы они находились
вадресном пространстве одного процесса. … GIOP (General Inter-ORB Protocol)
— абстрактный протокол в стандарте CORBA, обеспечивающий интероперабельность брокеров. ... Архитектура GIOP включает несколько конкретных протоколов:
1.Internet InterORB Protocol (IIOP) (Межброкерный протокол для Интернет) — протокол для организации взаимодействия между различными брокерами, опубликованный консорциумом OMG. IIOP используется GIOP в среде интернет, и обеспечивает отображение сообщений между GIOP и слоем TCP/IP.
2.SSL InterORB Protocol (SSLIOP) — IIOP поверх SSL, поддерживаются шифрование и аутентификация.
3.HyperText InterORB Protocol (HTIOP) — IIOP поверх HTTP».
Главные теоретические достижения технологии CORBA, которые более под-
робно рассматриваются в главе 3:
•реальная демонстрация фактического содержания «Службы промежуточного уровня», которая первоначально представлена достаточно абстрактно на рисунке 1.5;

25
•необходимая потребность создания более общих сетевых архитектур приложений, которые бы обеспечили все возрастающие потребности разработчиков.
Фактически уже технология CORBA наглядно показывает, что распределенные системы не могут полноценно строиться только на основе разнесения приложений по отдельным вычислительным системам подключенным к сети. «Службы промежуточного уровня» сами должны представлять собой систему, которая опирается собственные протоколы, например, GIOP. Это обосновывает заявленное название предметной области дисциплины как «Распределенные вычислительные сети».
1.2.4 Удаленный вызов методов
Как заявлено выше, удаленный вызов процедур — RPC является важнейшим технологическим инструментом DCE. Развитие этого инструмента применительно к взаимодействию объектов привело к созданию технологии RMI (Remote Method Invocation) — программному интерфейсу вызова удаленных методов в языке Java. Реализованный на основе протокола IIOP, RMI являтеся простейшим инструментом реализации не очень сложных распределенных систем.
Технология RMI, как и технология CORBA, рассматриваются в третьей главе данного пособия. Она имеет прежде всего практический интерес, раскрывающий методики программирования, заложенные технологиями DCE. Общая схема взаимодействия объектов RMI показана на рисунке 1.10.
Объект-клиент |
Объект-сервер |
Объект-заглушка |
сеть |
Объект-получатель |
(stub) |
|
(sceleton) |
Рисунок 1.10 — Общая схема взаимодействия объектов RMI
Забегая вперед отметим, что развитие технологий RMI и CORBA, а также присущие им недостатки и ограничения, заложили основы более современным представлениям, которые обобщенно называются - «Сервис-ориентированные технологии».