Предлагаемый материал содержит по-минимуму информацию, касающуюся общих вопросов организации открытых системы, 7-уровневой модели сетевых протоколов, особенностей конкретных стеков (TCP/IP), поэтому для его изучения нужно либо иметь предварительные знания, либо параллельно приобретать знания других источников по следующим вопросам:
7-уровневая модель сетевых протоколов, стек TCP/IP;
архитектура платформы Java, синтаксис и семантика языка программирования;
технология ООП, паттерны проектирования;
основы программной инженерии, методологии разработки ПО.
В первой главе рассматриваются понятие архитектуры, как оно дается в программной инженерии, многослойная архитектура клиент-серверных приложений, а также термины и определения, касающиеся распределенного взаимодействия программных компонент.
Во второй главе подробно разбирается понятие протокола, определяется его специфика, приводятся основные решения, используемые на всех уровнях протокольных процессов, а также рассматриваются необходимые аспекты практического программирования протокольных процессов на Java (рефлексия, параллелизм - потоки, синхронизация, потоки данных, сериализация).
В третьей главе рассматриваются простые примеры практического программирования протокольных процессов на Java с использованием стандартных протоколов и соответствующих им классов.
В четвертой главе обсуждаются общие аспекты проектирования прикладных протоколов, а также несколько примеров реализации протоколов как в относительно простых (учебных), так и достаточно сложных программных системах, включая архитектурные аспекты.
В пятой главе обсуждается весь процесс разработки ПО с позиций программной инженерии, разработка прикладных протоколов рассматривается в контексте функционального, архитектурного и детального проектирования.
В лабораторном практикуме к дисциплине "сетевые протоколы" представлен цикл из 8 работ, ориентированный на изучение Java практически с нуля. Для "разгона" предусмотрено последовательное наращивание функционала разработки с включением сетевых компонент во второй половине практикума.
В лабораторном практикуме к дисциплине "программная инженерия" в цикле работ по проектированию клиент-серверной системы имеется работа по проектированию архитектуры системы клиентских приложений и сервера. В ней предполагается проработка вопросов по определению места включения, основных требований к прикладному протоколу и выбор средств его реализации.