- •Введение
- •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 Облачные вычисления и «виртуализация»
- •Вопросы для самопроверки
- •Список использованных источников
- •Алфавитный указатель
98
3 Тема 3. Объектные распределенные системы
В подразделе 1.2 главы 1 уже была дана общая характеристика сетевых объектных систем. Она касалась классических приложений модели OSI, распределенных вычислителных сред (DCE), технологии CORBA и удаленных вызовов методов (RMI). Все эти приложения демонстрируют различные подходы к реализации общей модели «Клиент-сервер». В данной главе эти темы рассматриваются более подробно, хотя и с разной степенью детализации. Они разделены на три части:
•подраздел 3.1 описывает брокерные архитектуры, которые составляют идейную основу объектных распределенных систем;
•подраздел 3.2 посвящен технологии CORBA, которая стандартизирует общую архитектуру брокерных систем, обеспечивая сетевые приложения абстракным протоколом взаимодествия GIOP и теоретическим набором стандартных служб;
•подраздел 3.3 содержит информацию о технологии RMI, достаточную не только для получения теоретических представлений о «Межброкерном протоколе для Интернет» (IIOP, Internet InterORB Protocol), но и практической реализации приложений с использованием языка Java.
При изучении предметной области данной главы необходимо хорошо представлять проблематику классических технологий, потребовавших новых подходов к реализации модели «Клиент-сервер».
Главной причиной, потребовавшей новых идей, является интенсивное развитие сетевых технологий, которые объективно увеличили количество ЭВМ и различных вычислительных систем, участвующих в создании распределенных систем. Поскольку количество потенциальных связей квадратично зависит от числа взаимодействующих элементов, то соответственно увеличивается и нагрузка на программирование сетевых взаимодействий между ними. В таких условиях, критически важным является создание инструментальных средств, которые бы полностью или частично освободили прикладных программистов от рутинной работы, связанной с учетом сетевых адресов распределенных объектов, деталей реализации сетевых протоколов модели OSI и служб сетевой безопасности.
Другой, но не меннее важной причиной является необходимость создания
отдельной сетевой объектной адресации, которая позволяла бы именовать элементы распределенных приложений независимо от особенностей реализации самой сети. Это обеспечило бы не только развитие традиционных инструментальных средств ООП, но и позволило бы создать новые распределенные информационные среды для реализации вычислительных сетей.
Таким образом, мы естественно приходим к архитектурам, использующим некоторых посредников — брокеров, выполняющих вспомогательные функции для приложений более высокого уровня.