Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Ознакомление с прикладными протоколами и серверами приложений

Содержание:

Введение

В настоящее время все больше увеличивается количество людей, интересующиеся глобальными сетями, при помощи которых становится возможным объединить ПК (персональные компьютеры) во всем земном мире в одно объединенное информационное пространство, сеть, имя которой - Internet.

С точки зрения технического набора параметров, Internet является комплексом из транснациональных компьютерных сетей, чья работа основывается на всевозможных протоколах. Данные протоколы могут связать любые существующие ЭВМ, которые физически могут передавать данные по всевозможным, а также доступным типам и способам линий, начиная от витой пары, всевозможных телефонных кабелей и проводов и заканчивая оптоволоконными линиями и спутниковыми каналами.

Большинство из существующих ПК в сети Internet связаны при помощи протокола TCP/IP. Можно сказать, что Internet является «сетью сетей», которые оплели весь мир.

Немного слов о технологии «клиент-сервер». Она появилась достаточно давно, но в основном ранее применялась только в глобальных сетях в масштабе отдельной компании или организации. В настоящее время, благодаря не стоящему на месте развитию сети Internet, данная технология становится все более привлекательна для многих разработчиков ПО (программного обеспечения).

Цель данной работы – ознакомиться с прикладными протоколами и серверами приложений.

С учетом поставленной цели будут решены следующие задачи:

- дано понятие прикладных протоколов: их определение и протоколы прикладного уровня;

- проанализировано понятие серверов приложений: их определение и обзор серверов приложений.

Курсовая работа состоит из введения, двух глав, заключения и библиографии.

Глава 1 Понятие прикладных протоколов

1.1 Понятие протокола

Для того, чтобы разобраться, что же представляет собой протокол, многие из нас слышали различные сокращения или аббревиатуры, но не все понимают что они означают. Для начала нужно разобраться в главных терминах и определениях.

Вполне закономерно, что со временем развития нашего мира ПК (персональные компьютеры), где бы они не находились, в каких бы частях земного шара не стояли, в связи с ростом их количества вынуждены были найти некое средство общения между собой. В роли такого средства и выступили компьютерные сети. Они бывают глобальные и локальные (местные).

Локальной сетью называется сеть, которая объединяет несколько компьютеров, при этом они находятся в одном географическом пространстве, т.е на небольшом расстоянии, например, в одном доме, здании. Глобальные же сети призваны соединять сети и ПК, которые находятся на гораздо большем, значительном расстоянии, когда между ПК уже значительные километры расстояний. Интернет – это глобальная сеть.

Одного подключения компьютеров друг другу не достаточно для создания сети. Чтобы начать процесс передачи информации, нужно подтверждение того, что компьютеры начали «понимать» друг друга. Чтобы это стало возможным, и были разработаны специальные правила, которые сегодня называют протоколами.

Протокол — это набор из определенных правил, которые делают возможным передачу данными между несколькими персональными компьютерами.

Данные правила способны работать в рамках единой модели ISO/OSI и отступать от нее ни на шаг не могут, в связи с тем, что это может повлечь за собой несовместимость оборудования и ПО - программного обеспечения.

Пожалуй, ключевым понятием в стандартизации сетей и всего, что к ним относится, является модель взаимодействия открытых систем (Open System Interconnection, OSI), разработанная международной организацией, но стандартам (International Standards Organization, ISO). На практике применяется название модель IS0/0SI. Описываемая модель состоит из семи уровней. Каждый уровень отвечает за определенный круг задач, выполняя их с помощью специальных алгоритмов — стандартов. Основная задача — достичь глобальной цели, поэтому уровни модели связаны между собой. Таким образом, выполнив свою часть задачи, каждый уровень передает готовые данные следующему уровню. В результате прохождения такой цепочки данные полностью обрабатываются, и их можно использовать.

В зависимости от назначения уровни получили следующие названия[1]:

- Физический – один из уровней, который отличает беспроводные сети от проводных. Как Вы уже, несомненно, поняли, основное отличие между ними заключается в канале передачи данных. Для проводных сетей это любая физическая линия, например коаксиал, витая пара или оптоволокно.

-Для беспроводных — радиоволны определенной частоты или инфракрасное излучение.

- канальный – главная задача канального уровня: удостовериться, что канал готов к передаче данных и ничто не станет угрожать надежности этой операции и целостности передаваемых пакетов. В идеале протоколы канального уровня и сетевое оборудование должны проверить, свободен ли канал для передачи данных, не имеется ли коллизий передачи и т. д.

- Сетевой – Как и канальный уровень, сетевой отвечает за передачу данных между компьютерами. Для этого он использует сформированные данные и параметры двух предыдущих уровней – физического и канального. Главное отличие сетевого уровня от канального заключается в том, что он умеет передавать данные между сетями с разной топологией — комбинированными. Так, очень часто беспроводные и проводные сети используются в паре. Чаще всего это происходит, если по определенным причинам создать единую проводную сеть физически невозможно.

- Транспортный – пожалуй, транспортный уровень можно отнести к более высоким. Это означает, что данным уровнем управляет программа, а не аппаратные средства. Транспортный уровень отвечает за надежность передачи данных. Существует несколько способов передачи, которые отличаются друг от друга степенью защищенности и возможностью исправления ошибок.

- Сеансовый – Сеансовый уровень предназначен для контроля передачи пакетов между компьютерами. В процессе синхронизации принятых и отправленных пакетов протоколы сеансового уровня отслеживают недостающие данные и передают их заново. За счет работы только с недостающими пакетами достигается повышение скорости передачи данных.

- уровень представления данных – На уровне представления данные приводятся к единому стандарту, что позволяет достичь договоренности мри их приеме и передаче. Именно на этом уровне данные могут шифроваться, что повышает безопасность их передачи но сети. Кроме того, часто на уровне представления происходит компрессия информации, благодаря чему повышается скорость передачи данных. Уровень представления реализуется программно, что позволяет использовать для шифрования данных новейшие достижения.

- Прикладной – самый верхний уровень модели ISO/OSI. Его задача — организация взаимодействия с прикладными программами. За это отвечает множество прикладных протоколов, с помощью которых операционная система и программы получают доступ к разнообразным ресурсам сети.

Но модель ISO/OSI, только описывает работу любого сетевого оборудования и сети в целом, это всего лишь модель, рисунок на бумаге. Для начала работы необходим механизм, реализующий описываемую модель. Таким механизмом стал протокол передачи данных, включающий в себя множество протоколов.

1.2 Протоколы прикладного уровня

Почему существуют два транспортных протокола TCP и UDP, а не один из них? Дело в том, что они предоставляют разные услуги прикладным процессам. Большинство прикладных программ пользуются только одним из них. Вы, как программист, выбираете тот протокол, который наилучшим образом соответствует вашим потребностям. Если вам нужна надежная доставка, то лучшим может быть TCP. Если вам нужна доставка датаграмм, то лучше может быть UDP. Если вам нужна эффективная доставка по длинному и ненадежному каналу передачи данных, то лучше может подойти протокол TCP. Если нужна эффективность на быстрых сетях с короткими соединениями, то лучшим может быть протокол UDP. Если ваши потребности не попадают ни в одну из этих категорий, то выбор транспортного протокола не ясен. Однако прикладные программы могут устранять недостатки выбранного протокола. Например, если вы выбрали UDP, а вам необходима надежность, то прикладная программа должна обеспечить надежность. Если вы выбрали TCP, а вам нужно передавать записи, то прикладная программа должна вставлять маркеры в поток байтов так, чтобы можно было различить записи.

Какие же прикладные программы доступны в сетях с TCP/IP?

Общее их количество велико и продолжает постоянно увеличиваться. Некоторые приложения существуют с самого начала развития internet. Например, TELNET и FTP. Другие появились недавно: X-Window, SNMP[2].

Протоколы прикладного уровня ориентированы на конкретные прикладные задачи. Они определяют как процедуры по организации взаимодействия определенного типа между прикладными процессами, так и форму представления информации при таком взаимодействии. В этом разделе мы коротко опишем некоторые из прикладных протоколов.

Протокол TELNET

Протокол TELNET[3] позволяет обслуживающей машине рассматривать все удаленные терминалы как стандартные "сетевые виртуальные терминалы" строчного типа, работающие в коде ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т.д.) TELNET работает на базе протокола TCP. На прикладном уровне над TELNET находится либо программа поддержки реального терминала (на стороне пользователя), либо прикладной процесс в обсуживающей машине, к которому осуществляется доступ с терминала.

Работа с TELNET походит на набор телефонного номера. Пользователь набирает на клавиатуре что-то вроде:

telnet delta

и получает на экране приглашение на вход в машину delta.

Протокол TELNET существует уже давно. Он хорошо опробован и широко распространен. Создано множество реализаций для самых разных операционных систем. Вполне допустимо, чтобы процесс-клиент работал, скажем, под управлением ОС VAX/VMS, а процесс-сервер под ОС UNIX System V.

Протокол FTP

Протокол FTP (File Transfer Protocol - протокол передачи файлов) распространен также широко как TELNET. Он является одним из старейших протоколов семейства TCP/IP. Также как TELNET он пользуется транспортными услугами TCP. Существует множество реализаций для различных операционных систем, которые хорошо взаимодействуют между собой. Пользователь FTP может вызывать несколько команд, которые позволяют ему посмотреть каталог удаленной машины, перейти из одного каталога в другой, а также скопировать один или несколько файлов.

Протокол SMTP

Протокол SMTP (Simple Mail Transfer Protocol - простой протокол передачи почты) поддерживает передачу сообщений (электронной почты) между произвольными узлами сети internet. Имея механизмы промежуточного хранения почты и механизмы повышения надежности доставки, протокол SMTP допускает использование различных транспортных служб. Он может работать даже в сетях, не использующих протоколы семейства TCP/IP. Протокол SMTP обеспечивает как группирование сообщений в адрес одного получателя, так и размножение нескольких копий сообщения для передачи в разные адреса. Над модулем SMTP располагается почтовая служба конкретных вычислительных систем.

r-команды

Существует целая серия "r-команд" (от remote - удаленный), которые впервые появились в ОС UNIX. Они являются аналогами обычных команд UNIX, но предназначены для работы с удаленными машинами. Например, команда rcp является аналогом команды cp и предназначена для копирования файлов между машинами. Для передачи файла на узел delta достаточно ввести

rcp file.c delta:

Для выполнения команды "cc file.c" на машине delta можно использовать команду rsh:

rsh delta cc file.c

Для организации входа в удаленную систему предназначена команда rlogin:

rlogin delta

Команды r-серии используются главным образом в системах, работающих под управлением ОС UNIX. Существуют также реализации для MS-DOS. Команды избавляют пользователя от необходимости набирать пароли при входе в удаленную систему и существенно облегчают работу.

NFS

Сетевая файловая система NFS (Network File System) впервые была разработана компанией Sun Microsystems Inc. NFS использует транспортные услуги UDP и позволяет монтировать в единое целое файловые системы нескольких машин с ОС UNIX. Бездисковые рабочие станции получают доступ к дискам файл-сервера так, как будто это их локальные диски.

NFS значительно увеличивает нагрузку на сеть. Если в сети используются медленные линии связи, то от NFS мало толку. Однако, если пропускная способность сети позволяет NFS нормально работать, то пользователи получают большие преимущества. Поскольку сервер и клиент NFS реализуются в ядре ОС, все обычные несетевые программы получают возможность работать с удаленными файлами, расположенными на подмонтированных NFS-дисках, точно также как с локальными файлами.

Протокол SNMP

Протокол SNMP (Simple Network Management Protocol - простой протокол управления сетью) работает на базе UDP и предназначен для использования сетевыми управляющими станциями. Он позволяет управляющим станциям собирать информацию о положении дел в сети internet. Протокол определяет формат данных, их обработка и интерпретация остаются на усмотрение управляющих станций или менеджера сети.

X-Window

Система X-Window использует протокол X-Window, который работает на базе TCP, для многооконного отображения графики и текста на растровых дисплеях рабочих станций. X-Window - это гораздо больше, чем просто утилита для рисования окон; это целая философия человеко-машинного взаимодействия.

Глава 2 Понятие серверов приложений

2.1 Серверы приложений

Вынесение прикладной логики в отдельный уровень представляет разработчикам дополнительную гибкость в создании распределенных информационных систем. Размещение и выполнение программ на стороне сервера снижает требования к аппаратному обеспечению клиентов и уменьшает проблемы обеспечения совместимости в гетерогенной сетевой среде.

Сервер приложений — это сервисная программа, которая обеспечивает доступ клиентов к прикладным программам, выполняющимся на сервере. Сервер приложений обычно выделяется как среднее звено (рис. 1) в трехуровневой клиент-серверной архитектуре (3-tier):

Место сервера приложений в трехзвенной архитектуре

Рисунок 1 - Модель "сервер приложений"

Первый уровень, интерфейсный, как правило, графический (GUI).

Средний уровень, исполнимый программный код, размещенный обычно на выделенном сервере.

Третий уровень, фоновый — базы данных. Сюда же относятся, унаследованные средства доступа к данным и управления транзакциями.

В сетевой среде сервер приложений является посредником между фронт-эндами клиентов и серверами баз данных.

Бизнес-логика может быть реализована на стороне сервера как целиком (удаленный код), так и частично (распределенный код). В первом случае к серверу могут обращаться терминалы и «тонкие» клиенты и такое взаимодействие соответствует модели «сервер терминалов». «Толстые» и rich-клиенты могут получать компоненты серверного приложения и выполнять их на своей стороне (например javascript, апплеты, flash).

Сервер приложений создается на основе удаленного модуля данных, который служит для размещения компонентов, а также для обеспечения взаимодействия с сервером и клиентами. Для создания различных серверов приложений предназначены следующие разновидности удаленных модулей данных[4]:

· Remote Data Module – для серверов DCOM, TCP/IP;

· Transactional Data Module – для сервера MTS;

· WebSnap Data Module – для сервера Web;

· SOAP Server Data Module – для серверов SOAP.

Удаленные модули данных расположены на страницах Multitier, WebSnap и WebServices Хранилища объектов. Хранилище объектов – средство Delphi, которое используется для хранения объектов (шаблоны приложений, форм, отчетов и т.д.), которые могут быть многократно использованы в качестве шаблонов для разработки приложений. Вставить в приложение новый объект можно, открыв командой File\New\Other (Файл\Новый\Другой) окно New Items (Новые элементы) для выбора нового объекта в хранилище.

В удаленном модуле данных размещаются те же компоненты, что и в простом модуле данных, например, для механизма доступа с помощью BDE такие компоненты, как Query, Database, Session, предназначенные для организации доступа к данным.

Рассмотрим создание простейшего сервера приложений – сервера DCOM, взаимодействие с которым основано на технологии DCOM. Для работы этого сервера необходимо, чтобы в системе была установлена программная поддержка функционирования распределенных СОМ-объектов, которая имеется в операционных системах Windows 98/NT/2000. Для Windows 95 ее нужно устанавливать отдельно. Поддержка распределенных СОМ-объектов устанавливается автоматически при инсталляции ряда программ Windows.

Добавление к проекту удаленного модуля данных выполняется выбором объекта Remote Data Module страницы Multitier Хранилища объектов. При добавлении модуля выводится диалоговое окно мастера Remote Data Module Wizard, в котором нужно задать параметры модуля (рис. 2).

http://3ys.ru/images/lib/razrabotka-setevykh-prilozhenij-sredstvami-delphi/df0fe3eb7c125dd8a24f28f7afee8614/af38de9f8bd06c04cc51cc0f0e543614.jpg

Рисунок 2 - Добавление удаленного модуля данных

В поле редактирования CoClass Name вводится имя модуля данных. В списке Instancing (Создание экземпляров) выбирается способ запуска модуля:

· Internal – экземпляр модуля данных создается на сервере в случае, когда модуль данных является частью библиотеки DLL;

· Single Instance – для каждого клиента в его адресном пространстве создается один экземпляр удаленного модуля данных, и каждое клиентское соединение запускает этот свой экземпляр;

· Multiple Instance – один экземпляр приложения (процесс) представляет все удаленные модули данных, созданные для клиентов (по умолчанию); каждый удаленный модуль данных предназначен для одного клиентского соединения, но все они разделяют одно и то же адресное пространство.

В списке Threading Model (Потоковая модель) выбирается способ вызова интерфейса клиента, если модуль данных является частью библиотеки DLL:

· Single – библиотека получает запросы клиента по одному;

· Apartment – одновременно обрабатывается несколько запросов клиентов, для каждого из которых создан отдельный экземпляр модуля данных (по умолчанию);

· Free – отдельный экземпляр модуля данных одновременно может отвечать на несколько запросов клиентов;

· Both – отдельный экземпляр модуля данных одновременно может отвечать на несколько запросов клиентов, результаты обработки также возвращаются одновременно;

· Neutral – разные клиенты могут одновременно вызывать удаленный модуль данных из нескольких потоков, при этом модель СОМ следит за тем, чтобы не было конфликта вызовов (однако нужно иметь в виду возможный конфликт потоков: он отслеживается только в версии СОМ+, при отсутствии ее используется потоковая модель типа Apartment).

После нажатия кнопки ОК модуль данных с установленными параметрами добавляется к проекту. В приведенном на рис. 2 примере модулю присвоено имя ServerDCOM, а два других параметра оставлены без изменений.

На этапе проектирования внешний вид удаленного модуля не отличается от вида простого модуля данных. Как и в простом модуле, в удаленном модуле данных размещаются невизуальные компоненты, используемые для доступа к данным. Здесь могут быть наборы компонентов для механизмов доступа ADO, BDE, dbExpress и InterBase Express. К примеру, для технологии BDE чаще всего этими компонентами являются Query, Table, Database, Session, а также DataSetProvider. В самом простом случае достаточно разместить в модуле только набор данных. Например, разместим в удаленном модуле набор данных Query и зададим для него значения свойств DataBaseName и SQL так, чтобы включить в набор все поля всех записей таблицы Personnel. Указанным свойствам присвоим значения:

· свойству DataBaseName – значение BDPlace;

· свойству SQL – значение SELECT * FROM Personnel.db.

На этом создание простейшего сервера DCOM закончено. Перечислим еще раз действия, которые были при этом выполнены:

· к проекту добавлен удаленный модуль данных;

· в модуле размещен компонент набора данных и присвоены значения его свойствам.

Созданное приложение сервера состоит из следующих частей:

· проект;

· главная форма приложения;

· удаленный модуль данных;

· модуль библиотеки типов.

Разработка проекта и главной формы приложения не имеют принципиальных отличий от разработки обычного приложения Delphi. Отметим, что для сервера приложений основная функциональная нагрузка приходится на удаленный модуль данных. В главной форме можно разместить вспомогательные компоненты и выполнять некоторые сервисные действия, например, вести подсчет клиентов, подключенных к серверу, и выводить показания этого счетчика в надписи Label, размещенной в главной форме сервера.

Библиотека типов создается автоматически, а ее модуль сохраняется на диске при сохранении других файлов проекта. Библиотека занимает два файла:

Project.tlb и Project_TLB.pas, где Project – имя проекта.

После создания сервера DCOM его нужно зарегистрировать как сервер автоматизации. Регистрация сервера выполняется системой Windows автоматически при запуске приложения сервера.

По умолчанию интерфейс провайдера обеспечивает набор данных, в нашем случае это Query1. Кроме того, Delphi включает в свой состав компонент DataSetProvider, который предоставляет большие возможности по управлению интерфейсом провайдера.

Простейший сервер DCOM представляет собой удаленный брокер данных, который обеспечивает соединение с сервером БД и передачу данных клиенту и обратно. Для расширения функциональности сервера приложений к нему добавляются бизнес-правила, предназначенные для поддержания БД в целостном состоянии и реализующие ограничения, применяемые к данным.

Поддержка механизма ограничений обеспечивается брокером ограничений. Для набора данных и его отдельных полей можно задавать ограничения на значения полей не только в приложении клиента, но и в сервере приложений (удаленном модуле данных). Ограничения, заданные в сервере приложений, пересылаются клиенту вместе с данными в пакете данных, и эти ограничения действуют наряду с ограничениями, заданными в приложении клиента.

Для реализации ограничений в сервере приложений при использовании технологии BDE можно использовать свойство Constraints типа TCheckConstraints наборов данных Table и Query. Тип TCheckConstraints представляет собой коллекцию (набор) отдельных ограничений типа TCheckConstraint, имеющих следующие свойства:

· CustomConstraint типа String – код SQL, описывающий ограничение;

· ErrorMessage типа String – текст, выдаваемый пользователю при нарушении данного ограничения;

· FromDictionary типа Boolean – признак, значение True которого указывает, что ограничение выбирается из словаря данных; по умолчанию свойство имеет значение False, и словарь данных не используется;

· ImportedConstraint типа String – код SQL, описывающий ограничение, которое импортировано из словаря данных.

Для задания ограничений нужно выделить набор данных, и в окне Инспектора объектов щелчком в области значения свойства Constraints открыть окно, показанное на рис. 1.3, справа. Центральную часть окна занимает список ограничений, применяемых к набору данных, имя которого выводится в заголовке окна (на рисунке – Query1). Добавление к списку нового ограничения выполняется командой Add контекстного меню, нажатием клавиши <Insert> или нажати­ем крайней левой кнопки на панели инструментов. Существующие ограничения можно удалять и перемещать в пределах списка, эти действия выполняются с помощью команд контекстного меню, нажатия клавиш или кнопок панели ин­струментов.

Сразу после добавления ограничение "пустое", и в списке выводится название его типа TCheckConstraint (на рис. 1.3 это третье ограничение). Для задания ограничения нужно его описать, например, присвоив значения свойствам CustomConstraint и ErrorMessage. После того как свойство CustomConstraint получит значение, оно будет выведено в списке ограничений. Свойства ограничения становятся доступными через Инспектор объектов после выбора ограничения в списке.

http://3ys.ru/images/lib/razrabotka-setevykh-prilozhenij-sredstvami-delphi/df0fe3eb7c125dd8a24f28f7afee8614/aace903fec08bf8578ee22f289452738.jpghttp://3ys.ru/images/lib/razrabotka-setevykh-prilozhenij-sredstvami-delphi/df0fe3eb7c125dd8a24f28f7afee8614/01fca031a48679a8a9bb5ba70c9efb4b.jpg

Рисунок 3 - Определение ограничений для набора данных Query1

В приведенном на рис. 3 примере для данных о сотрудниках организации (таблица Personnel) установлены ограничения на значения полей Name и Salary: поле имени не может быть пустым, а значение оклада должно быть положительным. При нарушении этих ограничений пользователю выдаются соответствующие сообщения, например, если не задано значение поля Name, то выдается сообщение "Не задано имя".

Как уже было сказано, ограничения сервера приложений действуют в дополне­ние к ограничениям, заданным в приложении клиента. Так обеспечивается распределение ограничений, применяемых к данным, между отдельными уровнями информационной системы. Достоинством размещения бизнес-правил на сервере приложений является то, что они одинаковы для всех клиентов, и что облегчаются внесение изменений в информационную систему и ее настройка.

Свойства CustomConstraint, ConstraintErrorMessage и ImportedConstraint объектов типа TField позволяют задать ограничения для отдельных полей набора данных. Эти свойства аналогичны свойствам CustomConstraint, ErrorMessage и ImportedConstraint объекта типа TcheckConstraints.

2.2 Обзор серверов приложений

Мы хотим сделать небольшой обзор той части серверов приложений, которые заслуживают внимания хотя бы тем, что являются бесплатными и доступен их исходный код. Мы будем исходить из того, что ваша система сходна с нашей. У нас стоит Windows 7 64 бита, кроме того стоит JDK 1.7 и JDK 1.8, а переменная окружения JAVA_HOME ссылается на последний из них. В нашем случае это значит, что в JAVA_HOME прописан путь C:\Program Files\Java\jdk1.8.0_31.

Мы будем пытаться описывать каждое действие, которое делали на своей машине.

Для начала нужно отобрать сервера приложений для нашего обзора[5].

  1. Glassfish (не проприетарный, а тот, что от сообщества glassfish.java.net, но который поддерживается корпорацией Oracle до такой степени, что если нужен javaEE SDK с сайта Oracle, то тебе впиндюрят и этот сервер приложений, иначе никак)
  2. (Red Hat) WildFly (бывший JBoss)
  3. (Apache) Geronimo
  4. (Apache) Tomcat (это лишь контейнер сервлетов, а не сервер приложений, но он является таким эталоном, на котором, если программа написана правильно, то она точно заработает. На других серверах программа может быть написана правильно с точки зрения JavaEE, но работать все равно будет не корректно или вообще не будет. Это я о Geronimo, о глюках которого можно говорить долго)

Итак, установка.

В плане установки все просто и для каждого из выбранных серверов установка – это просто распаковка архива. Мы, например, создали папку AppServers на рабочем столе, куда и стали всё распаковывать.

Настройка

Настройку серверов начнем с настройки порта HTTP, на котором он будет работать. Потом пропишем себя как админа сервера. Для каждого из серверов есть свои особенности настройки.

Для Tomcat. Заходим в папку с распакованным tomcat, далее папка conf, файл server.xml. Находим в этом файле число 8080 (http порт по умолчанию) и меняем его на что захотим. Я поставил 9713.

Чтобы прописать себя как админа сервера нужно, находясь в этой же папке, открыть файл tomcat-users.xml. В нем перед закрывающим тегом </tomcat-users> прописать следующий тег:

<user username="egarmin" password="1" roles="manager-gui,manager-script,manager-status,manager-jmx"/>

где в своей роли я прописал максимальное количество всяких админских прав (ролей). Это позволит на деплоить приложения и через gui, и через удаленное подключение.

Теперь запустим tomcat. Заходим в папку с распакованным tomcat, далее папка bin и запускаем файлstartup.bat. Переходим в браузере по адресу http://localhost:9713/. Должно все заработать и мы увидим тигру.


Tomcat

Теперь давайте проверим наличие доступа в админку. Для этого переходим по адресу http://localhost:9713/manager, вводим выбранные логин и пароль и получаем доступ.


Админка в Tomcat

УРА! Можно временно отключить Tomcat, для этого достаточно закрыть консоль, в которой он работает.

Для Glassfish. Заходим в папку с распакованным glassfish, далее в подпапку glassfish, далее подпапка domains, потом в папку domain1. Заходим в папку config и находим файл domain.xml. Там также ищем число 8080 (это число вообще характерно в качестве http-порта по умолчанию для серверов приложений и контейнеров сервлетов) и меняем его на что захотим. Мы поставили 9813.

Запустим glassfish. Заходим в папку с распакованным glassfish, далее в подпапку glassfish, потом в папку bin. Запускаем файл startserv.bat. В браузере вводим адрес http://localhost:9813/. На появившейся некрасивой странице с заголовком GlassFish Server находим ссылку go to the Administration Console и жмем на нее.


Первый вход в GlassFish

Далее, попав на красивую построенную на JSF страницу административной консоли, жмем пунктChange Administrator Password


Админка в GlassFish


и вводим нужный нам пароль для пользователя admin, потом подтверждаем его и жмем кнопку Save.


Смена пароля в GlassFish

При последующих входах в административную консоль нужно будет указывать логин admin и заданный пароль.


Вход в админку GlassFish по паролю

Теперь можно временно отключить Glassfish, для этого достаточно закрыть консоль, в которой он работает.

Для WildFly. Заходим в папку с распакованным wildfly. Далее заходим в папку standalone, потом папка configuration, а в ней файл standalone.xml. Далее действуем по отлаженной схеме. Я поставил порт 9913.

Запустим сервер. Для этого перейдем в папку с распакованным wildfly. Далее заходим в папку bin и запускаем файл standalone.bat. Открываем браузер и вводим адрес http://localhost:9913/.


Первый вход в WildFly

Жмем ссылку Administration Console для входа в админскую консоль (проще говоря, админку сервера приложений). Но не тут-то было, т.к. всплывает экран:

Первый вход в админку WildFly

Этот экран сообщает нам, что админ не создан, и чтобы его создать нужно воспользоваться консольной утилитой add-user.bat. Ну, раз надо так надо. Возвращаемся в папку bin и запускаем эту утилиту. Вначале предложат выбрать тип пользователя, которого мы хотим создать. Надо выбрать пункт (a), что будет означать, что нам нужен админ. Потом запрашивается имя этого пользователяUsername и пароль Password. Пустым пароль быть не может, но односимвольным – пожалуйста. Утилита конечно поругается, но проглотит, если ей ответить yes на вопрос «Вы уверены?». Далее подтверждаем пароль повторным вводом на запрос Re-enter Password. Потом будут еще вопросы, но на них все просто отвечаем утвердительно и выходим из утилиты.

Вернувшись на страницу выше, находим ссылку Try Again и жмем на нее. Теперь, введя данные только что созданного админа, можно попасть в админку.
Админка в WildFly
Гасим сервер, закрыв окно консоли, через которую он был запущен.

Для Geronimo. Заходим в папку с распакованным geronimo. Далее в подпапку var, потом в папкуconfig, а в ней файл config-substitutions.properties. В этом файле описаны все используемые сервером приложений порты в удобном формате, но схема замены порта та же. Я поставил порт10013.

Запустим сервер geronimo. Перейдем в папку с распакованным geronimo, потом в подпапку bin и запустим там файл startup.bat. Переходим на страницу http://localhost:10013/. Чтобы вы думали? Скорее всего, страницы там не будет. Почему? Все дело в том, последняя версия Geronimo (3.0) не может работать с последней версией JDK (1.8), поэтому если у вас стоит только она или пусть даже есть, скажем, 7-ая версия, но переменная окружения JAVA_HOME все равно ссылается именно на 8-ую, как у меня, то запуск сервера приложений не произойдет. Таким образом, для работы Geronimo нужно обязательно скачать JDK 1.7.

Теперь допустим вы поставили 7-ой JDK, но не хотите менять значение переменной JAVA_HOME (в конце-то концов, другие программы на нее не жалуются, а значит пусть и работают с последней версией JDK). Что делать? Я советую открыть файл setjavaenv.bat, расположенный в той же папкеbin, и найти в нем строку с меткой :okJdkFileCheck. После чего на следующей же строке добавьте переопределение переменной окружения. Например, так:

set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_75

Этой строки там нет, так что будьте добры прописать ее самостоятельно.

Если у вас 32-битная система, то больше проблем быть не должно. Более того, если у вас 64-битная система и вы поставили JDK 1.7 именно в 64-битной комплектации, то у вас тоже все в шоколаде. А теперь представим, что мы решили извратиться и поставить на 64-х битную систему (у меня, например, Windows 7 64) JDK 1.7 из линейки в 32-ва бита. Что тогда? Тогда придется еще повозиться, потому как в 64-битной системе есть две папки для установки программ: Program Files и Program Files (x86) и если ничего не менять, то 32-хбитный JDK встанет именно в последнюю. Что в этом страшного? Да вроде ничего, однако, если переменная JAVA_HOME будет иметь в своем пути скобки(x86), то у Geronimo случается несварение. Почему? Черт его знает, особенно если учесть, что согласно данным с форумов, эту ошибку в 3-ей версии Geronimo должны были исправить. Но ни фига подобного. Главное в этом деле не делать пи-пи, если индейцы не исправили, то мы поправим. Для этого есть два способа, которые я предпочитаю комбинировать, чтобы уж наверняка. Во-первых, опять идем а файл setjavaenv.bat и находим уже упомянутую метку :okJdkFileCheck. Под этой меткой есть строка:

if "%JRE_HOME%" == "" if exist "%JAVA_HOME%\bin\javac.exe" (set JRE_HOME=%JAVA_HOME%\jre) else set JRE_HOME=%JAVA_HOME%

в которой для излечения Geronimo достаточно будет взять подстроку JRE_HOME=%JAVA_HOME%\jre в кавычки, т.е. заменить всю строку на

if "%JRE_HOME%" == "" if exist "%JAVA_HOME%\bin\javac.exe" (set "JRE_HOME=%JAVA_HOME%\jre") else set JRE_HOME=%JAVA_HOME%

Кроме того, помните или знайте, что у папок типа Program Files в системе Windows 7 есть синонимы (например, для папки C:\Program Files (x86) синонимом будет папка C:\Progra~2). Поэтому если вы в файле setjavaenv.bat после метки :okJdkFileCheck установите следующее значение переменнойJAVA_HOME

set JAVA_HOME=C:\Progra~2\Java\jdk1.7.0_75

то у вас тоже заработает сервер Geronimo под управление 32-х битного JDK в 64-х битной операционной системе.

Ну, наконец-то, можно и запускать Geronimo, вызвав startup.bat. Теперь проблем быть не должно. Переходим в браузере на страницу http://localhost:10013/. Слева вверху находим ссылку Console и жмем на нее.


Geronimo

Надо ввести админские логин и пароль. Сразу подскажу, что это пользователь system с паролемmanager (значения по умолчанию).


Вход в админку Geronimo по паролю

Пройдя в саму консоль и проследовав по пунктам меню как на картинке ниже (выбрать Advanced, потом выбрать Security > Users and Groups), можно как сменить пароль для пользователя system, так и создать другого пользователя, а этого удалить.


Смена пароля в Geronimo

Остановить сервер Geronimo можно также простым закрытием окна консоли, в котором сервер был запущен[6].

Заключение

Итак, подведя итог вышесказанному, можно сделать следующие выводы.

Протоколы прикладного уровня направлены на определенные прикладные задачи. Серверы приложений в основном на практике имеют заранее известные номера портов.

Главная отличительная особенность Internet по сравнению с другими сетями заключается в ее протоколах, TCP/IP. Под термином TCP/IP принято понимать все то, что может быть связано с различными протоколами взаимодействия между ЭВМ - персональными сетями в Internet. Данный протокол объединяет большой комплекс протоколов, различных прикладных программ, даже саму сеть. TCP/IP является технологией межсетевого взаимодействия, технологией Internet. Сеть, где применяют технологию Internet, принято называть "Internet". Когда говорят о глобальной сети, которая имеет свойство объединять множество сетей с технологией Internet, - данную сеть принято называть Internet.

Для того, чтобы иметь возможность взаимодействовать с клиентом, либо несколькими клиентами, серверу необходимо выделить для этого конкретные ресурсы для межпроцессного взаимодействия (такими ресурсами могут быть

разделяемая память, пайп, сокет, и т. п.) и далее ожидать запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например COM-порт) или сетевые соединения.

Список использованной литературы

1. Б. Ливингстон, Д. Штрауб «Компьютер у вас дома», Москва 2001 г.

2. Д. Крейнак, Д. Хебрейкен «Энциклопедия ИНТЕРНЕТ». Санкт-Петербург,

2000 г.

3. Золотов, С. Протоколы Internet / С. Золотов. – СПб. : BHV-Санкт-Петербург, 1998.

4. Коннов, Н. Н.Анализ сетевых протоколов : лаб. практикум по курсу «Сети

ЭВМ и телекоммуникации» / Н. Н. Коннов, В. Б. Механов. – Пенза : Изд-во ПГУ, 2010. – Ч. 1. – 68 с.

5. Н. Рендалл «Кластеризация серверов». PC Magazine № 2, 1998 г.

6. Филимонов, А. Протоколы Интернета / А. Филимонов. – СПб. : BHV-Санкт-Петербург, 2003.

  1. Филимонов, А. Протоколы Интернета / А. Филимонов. – СПб. : BHV-Санкт-Петербург, 2003. – С. 23.

  2. Б. Ливингстон, Д. Штрауб «Компьютер у вас дома», Москва 2001 г. – С. 67.

  3. Филимонов, А. Протоколы Интернета / А. Филимонов. – СПб. : BHV-Санкт-Петербург, 2003. – С.56.

  4. Д. Крейнак, Д. Хебрейкен «Энциклопедия ИНТЕРНЕТ». Санкт-Петербург,2000 г. – С.67-69

  5. http://info.javarush.ru/eGarmin

  6. http://info.javarush.ru/eGarmin