
- •Введение
- •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 Облачные вычисления и «виртуализация»
- •Вопросы для самопроверки
- •Список использованных источников
- •Алфавитный указатель
35
1.5 Итоги теоретических построений
Общим итогом теоретических построений стало определение границ и понятийного содержания предметной области дисциплины, обозначенной как «Распределенные вычислительные сети» (РВ-сети). Необходимость более четного выделения таких границ вызвана разнообразием различных понятийных трактовок присутстующих не только в широких публичных изданиях, но и в учебной литературе [1-5]. Важность более строгого выделения понятийного содержания предметной области обусловлена учебным характером данной работы, а методической основой служит схема Ларионова, задающая классификацию СОД показанную на рисунке 1.2. Соответственно, основными обсуждаемыми проблемными объектами такой классификации служат понятия «Сосредоточенные системы» и «Распределенные системы».
Сосредоточенные системы группируют «классическое направление» развития цифровых технологий, основной характеристикой которых является вычислительная мощность программно-аппаратных средств, локализованных во вполне обозримых границах. Для таких систем подключение и взаимодействие с другими подобными системами является допустимым явлением, но не главной характериской. Поэтому такие системы рассматриваются в трех аспектах:
•ЭВМ — согласованный в функциональном назначении аппаратный конструктив, дополненный базовым ПО ОС до конкретной виртуальной машины;
впоследующем, такая машина рассматривается как элемент более сложных систем;
•Вычислительная система — все прикладные аспекты программного обеспечения, реализованные поверх виртуальной машины ОС; в последующем, такая ВС также может рассматривается как элемент более сложных систем;
•Вычислительный комплекс — система аппаратных средств, ориентированная на повышение вычислительной мощности и надежности всего конструктива, а также дополненная соотвествующей виртуальной машиной ОС;
впоследующем, такой комплекс также может рассматривается как отдельная ЭВМ или составляющая часть вычислительной системы.
Распределенные системы группируют «современное направление» развития цифровых технологий, основной характеристикой которых является интеграция сосредоточенных систем (ЭВМ, ВС) на основе сетевых технологий. Важной особенностью таких систем является их свойство несводимости к сосредоточенной системе, конечно, - кроме случаев моделирования. Обычно, это определяется самой природой интегрируемых приложений, например, программное обеспечение клиента банка должно быть отделено от ПО самого банка в силу нормативных требований к проведению финансовых операций. Что же касается декомпозиции распределенных систем, представленной на рисунке 1.2, то являясь по сути правильной, она морально устарела с точки зрения современных достижений. Действительно:
• Системы телеобработки, детализированные на рисунке 1.3, с успехом и

36
без ущерба для производительности и стоимости эксплуатации могут быть реализованы на основе современных сетевых технологий;
•Вычислительные сети, детализированные на рисунке 1.4, также отражают устаревшие технологические представления, поскольку базовая сеть передачи данных (СПД), построенная на узлах связи (УС), охватывает только нижние три уровня модели OSI (см. рисунок 1.7); современные же сетевые системы, как это показано в пунктах 1.2 и 1.3, создаются на основе протоколов прикладного уровня, что охватывает все уровни модели OSI.
Таким образом, суммируя все перечисленные выше доводы, распределенные системы будем детализировать одной моделью РВ-сетей, показанной на рисунке 1.12.
Вычислительная |
|
Клиент |
|
Клиент |
|||
система |
|
сервиса |
|
сервиса |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Программное обеспечение midlleware
|
|
|
|
|
|
|
|
Провайдер сервиса |
|
Провайдер сервиса |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рисунок 1.12 — Модель РВ-сети
В дальнейшем, представленная модель РВ-сети будет конкретизироваться в зависимости от тематики рассматриваемых вопросов. Например, «Программное обеспечение middleware» будет обозначать или модель OSI (обычно стек протоколов TCP/IP) или объектную модель CORBA или шину ESB. Что же касается окружающих прикладных объектов, то они будут рассматриваться как сосредоточенные системы и будут конкретизироваться на уровне решаемых задач.
37
Вопросы для самопроверки
1.Какие уровни детализации допускает понятие «Вычислительная машина»?
2.На какие две группы делит системы классификация СОД?
3.Что подразумевает понятие «Сосредоточенные системы»?
4.Чем отличаются понятия «Вычислительные системы» и «Вычислительные комплексы»?
5.На какие четыре части делит архитектуры ЭВМ таксономия Флинна?
6.Что входит в состав классического понятия «Распределенные системы»?
7.Какие элементы включает в себя понятие «Вычислительная сеть»?
8.Что означает понятие «Служба промежуточного уровня»?
9.Что означает понятие «Распределенная вычислительная среда»?
10.Что означает понятие «Remote Procedure Call»?
11.Что такое - «Client stub» и «Server stub», а также в чем их различие?
12.Каково назначение и область преминения абревиатуры — IDL?
13.В чем состоит суть технологии CORBA?
14.В чем отличие технологии RMI от технологии CORBA?
15.На какие общие услуги подразделяется парадигма «Сервис-ориентирован- ные технологии»?
16.В чем состоит отличие понятий «Функции» и «Сервисы»?
17.Какая практическая интерпретация применима к понятию «Middleware»?
18.Что означает понятие «Виртуальная машина» применительно к программным системам?
19.Что означает понятие «Java Virtual Machine»?
20.Что такое - «Промышленная шина предприятия»?