Добавлен: 02.04.2023
Просмотров: 223
Скачиваний: 2
- усложняется распределение полномочий, так как разграничение доступа происходит не по действиям, а по таблицам;
- перегружается сеть вследствие передачи по ней необработанных данных;
- слабая защита данных, поскольку сложно правильно распределить полномочия[20].
Клиенты
Данные
Сервер
Рис.4. Архитектура «Толстый клиент»
Для решения перечисленных проблем используются многоуровневые (три и более уровней) архитектуры «Клиент-сервер».
Трехуровневая архитектура
В середине 90-х годов 20-ого века признание специалистов получила трехуровневая архитектура «Клиент – сервер», разделившая информационную систему по функциональным возможностям на три отдельных компонента: логика представления, бизнес-логика и логика доступа к данным. Так же в трехуровневой архитектуре появляется дополнительное звено, которое предназначено для осуществления бизнес-логики, при этом полностью разгружается клиент, который направляет запросы промежуточному программному обеспечению, и максимально используются все возможности серверов - сервер приложений[21].
Клиент, в трехуровневой архитектуре, выполняет свою основную роль системы представления информации, поступающей с сервера приложений, а не загружен функциями обработки данных. Web-технологии - браузера, CGI и Java позволяют использовать данный интерфейс. Это уменьшает объем данных, передаваемых между клиентом и сервером приложений, что позволяет подключать клиентские компьютеры даже по медленным линиям типа телефонных каналов. Кроме того, клиентская часть может быть настолько простой, что в большинстве случаев ее реализуют с помощью универсального браузера. Но если менять ее все-таки придется, то эту процедуру можно осуществить быстро и безболезненно.
Сервер приложений – это программное обеспечение, являющееся промежуточным слоем между клиентом и сервером[22] (рисунок 5).
API
Данные
Сервер
приложений
Клиент
SQL
БД
Сервер
данных
Данные
Представление данных
Приложение
Рис.5. Сервер приложений
Существует несколько категорий продуктов промежуточного слоя:
- Message orientated – яркие представители MQseries и JMS;
- Object Broker – яркие представители CORBA и DCOM;
- Component based – яркие представители.NET и EJB[23].
При использовании сервера приложений уменьшается нагрузка на клиентские компьютеры, потому что сервер приложений распределяет нагрузку и защищает от сбоев. Так как бизнес-логика хранится на сервере приложений, то при каких-либо изменениях в отчетности или расчетах клиентские программы никоим образом не затрагиваются.
Существует несколько серверов приложений от таких знаменитых компаний как Sun Microsystem, Borland, IBM, Oracle и каждый из них отличается набором предоставляемых сервисов (производительность в данном случае учитывать не будем). Эти сервисы облегчают программирование и развертывание приложений масштаба предприятия. Обычно сервер приложений предоставляет следующие сервисы:
- WEB Server – чаще всего включают в поставку самый популярный и мощный Apache;
- WEB Container – позволяет выполнять JSP и сервлеты. Для Apache таким сервисом является Tomcat;
- CORBA Agent – может предоставлять распределенную директорию для хранения CORBA объектов;
- Messaging Service – брокер сообщений;
- Transaction Service – уже из названия понятно, что это сервис транзакций;
- JDBC – драйвера для подключения к базам данных, ведь именно серверу приложений придется общаться с базами данных и ему нужно уметь подключаться к используемой в вашей компании базе;
- Java Mail – данный сервис может предоставлять сервис к SMTP;
- JMS (Java Messaging Service) – обработка синхронных и асинхронных сообщений;
- RMI (Remote Method Invocation) - вызов удаленных процедур.
Многоуровневые клиент-серверные системы достаточно легко можно перевести на Web-технологию - для этого достаточно заменить клиентскую часть универсальным или специализированным браузером, а сервер приложений дополнить Web-сервером и небольшими программами вызова процедур сервера. Для создания этих программ можно использовать как Common Gateway Interface (CGI), так и более современную технологию Java.
В трехуровневой системе в качестве каналов связи между сервером приложений и СУБД можно использовать более скоростные линии, в которых затраты будут минимальны, в связи с тем, что сервера обычно находятся в одном помещении (серверной) и не будет перегружать сеть из-за передачи объемного количества информации.
В данное время применяется только многоуровневая архитектура, «Клиент-сервер», которая превосходит двухуровневую архитектуру. В трехуровневой архитектуре имеется три модификации – RDA, DBS и AS.
Понятие прикладных протоколов
Необходимо различать понятия сетевых приложений и протоколов прикладного уровня. Протоколы прикладного уровня являются частью (хотя и весьма большой) сетевых приложений. Рассмотрим два примера. Web является сетевым приложением, позволяющим пользователям получать web-документы по запросу и состоящим из множества компонентов, включая стандарт формата документов (HTML), браузеры (Netscape Navigator, Microsoft Internet Explorer и др.), web-серверы (например, Apache, Microsoft или Netscape), протоколы прикладного уровня. Протокол прикладного уровня для web носит название протокола передачи гипертекста (HyperText Transfer Protocol, HTTP) и описывает формат и порядок обмена сообщениями между клиентом и сервером (RFC 2646). Таким образом, HTTP является лишь частью web-приложения.
В качестве второго примера рассмотрим приложение электронной почты. Электронная почта Интернета также состоит из множества компонентов: почтовых серверов, содержащих почтовые ящики пользователей, программ для просмотра и создания электронных писем, стандартов, описывающих структуру электронных писем, протоколов прикладного уровня, регламентирующих порядок обмена сообщениями серверов между собой и с оконечными системами пользователей, а также интерпретацию полей, из которых состоят электронные письма. Основным протоколом прикладного уровня для электронной почты является протокол простой передачи сообщений (Simple Mail Transfer Protocol, SMTP)[24]. Как мы видим, SMTP (RFC 2821) -- лишь часть (хотя и достаточно большая) структуры приложений электронной почты.
Как сказано выше, протоколы прикладного уровня определяют способ обмена сообщениями между двумя процессами, выполняющимися на разных оконечных системах. Обычно протокол определяет следующие элементы:
· типы используемых сообщений, например, запросы и ответы;
· синтаксис каждого из типов сообщений, описывающий поля сообщения и их разделители;
· семантику полей, то есть смысл информации, содержащейся в каждом из полей сообщения;
· правила, описывающие события, которые вызывают генерацию сообщений.
Некоторые из протоколов прикладного доступа (HTTP, SMTP и др.) являются официально документированными в RFC[25]. Это означает, что если разработчик нового браузера будет следовать стандарту, то браузер сможет получать документы с любого web-сервера, построенного поэтому же стандарту. Тем не менее существует множество протоколов прикладного уровня, которые не стандартизированы и при этом используются для поддержки коммерческих продуктов. В частности, это характерно для Интернет-телефонии.
Протокол ICMP (Internet Control Message Protocol) - протокол межсетевых управляющих сообщений. С помощью этого протокола компьютеры и устройства сети обмениваются друг с другом управляющей информацией. К примеру, этот протокол используется для передачи сообщений об ошибках, проверки доступности узла и т.д[26].
Протокол FTP (File Transfer Protocol) - протокол передачи файлов. Служит для обмена файлами между компьютерами. Например, вам нужно передать файл на сервер или, наоборот, скачать файл с сервера. Для этого вам нужно подключиться к файловому серверу (он же FTP-сервер) и выполнить необходимую вам операцию скачивания или закачки. Подключение осуществляется с помощью FTP-клиента. Простейший FTP-клиент входит в состав практически любой операционной системы. Кстати, просматривать FTP-серверы могут и обычные браузеры.[27]
Протокол HTTP (Hyper Text Transfer Protocol) - протокол обмена гипертекстовой информацией, то есть документами HTML. Вы, наверное, слышали, что HTML является базовым языком для создания веб-страниц. Так вот, протокол HTTP предназначен для передачи веб-страниц по сети. Таким образом, протокол HTTP используется веб-серверами, а браузеры - программы, служащие для просмотра веб-страниц, - являются HTTP-клиентами.[28]
Протоколы POP и SMTP. Протокол POP (Post Office Protocol) - протокол почтового отделения. Этот протокол используется для получения электронной почты с почтовых серверов. А для передачи электронной почты служит протокол SMTP (Simple Mail Transfer Protocol).[29]
Протокол IMAP. Для чтения почты может использоваться еще один протокол - IMAP. Его отличие от протокола POP состоит в том, что пользователь читает сообщения электронной почты, не загружая их на свой компьютер. Все сообщения хранятся на сервере. При удалении сообщения оно удаляется с сервера.[30]
Протокол SLIP (Serial Line Internet Protocol) - протокол подключения к сети Интернет по последовательной линии. Используется для установления связи с удаленными узлами через низкоскоростные последовательные интерфейсы. В настоящее время вытеснен протоколом РРР и практически не используется.[31]
Протокол РРР (Point-to-Point Protocol) - обеспечивает управление конфигурацией, обнаружение ошибок и повышенную безопасность при передаче данных на более высоком уровне, чем протокол SLIP. Поэтому при настройке сервера рекомендуется использовать именно этот протокол. Протокол РРР рассмотрен в RFC 1547 и RFC 1661.[32]
Протокол RIP (Routing Information Protocol) - используется для маршрутизации пакетов в компьютерных сетях. Для маршрутизации также используется протокол OSPF (Open Shortest Path First), который является более эффективным, чем RIP.[33]
Модели реализации
Модель файлового сервера
В модели файлового сервера все достаточно просто. Эта модель характеризует не столько способ образования фактографической информационной системы. Это общий способ взаимодействия компьютеров в локальной сети. Любой из компьютеров сети определяется файловым сервером, т. е. общим хранилищем любых данных. Суть FS-модели иллюстрируется схемой, приведенной на рис. 6.
Сервер
Компонент доступа к ресурсам
Компонент представления
Прикладной компонент
Файлы
Рис.6. Модель файлового сервера
В FS-модели все основные компоненты размещаются на клиентской установке. При обращении к данным ядро СУБД, в свою очередь, обращается с запросами на ввод-вывод данных за сервисом к файловой системе. С помощью функций операционной системы в оперативную память клиентской установки полностью или частично на время сеанса работы копируется файл базы данных. Таким образом, сервер в данном случае выполняет чисто пассивную функцию[34].
В данной модели минимальны требования к производительности сервера. Это может быть обычный офисный компьютер. Главное требование модели – объем дискового пространства. Следует также отметить, что программные компоненты СУБД в данном случае не распределены, т. е. никакая часть СУБД на сервере не инсталлируется и не размещается.
При всех плюсах данной модели, очевидны и ее недостатки. Это, прежде всего, высокая нагрузка на сеть, достигающая пиковых значений особенно в момент массового вхождения в систему пользователей, например, в начале рабочего дня. Так же это отсутствие специальных механизмов безопасности файла (файлов) базы данных со стороны СУБД[35]. Иначе говоря, разделение данных между пользователями (параллельная работа с одним файлом данных) осуществляется только средствами файловой системы ОС для одновременной работы нескольких прикладных программ с одним файлом.
И хотя модель файлового сервера имеет серьезные недостатки, она является естественным средством расширения возможностей персональных (настольных) СУБД в направлении поддержки многопользовательского режима и, очевидно, в этом плане еще будет сохранять свое значение.
Модель удаленного доступа к данным
Учет специфики размещения и физического манипулирования данных во внешней памяти для реляционных СУБД – это основа модели удаленного доступа к данным. В RDA-модели компонент доступа к данным в СУБД полностью отделен от двух других компонентов (компонента представления и прикладного компонента) и размещается на сервере системы. SQL-сервер - компонент доступа к данным реализуется в виде самостоятельной программной части СУБД, и инсталлируется на вычислительной установке сервера системы[36]. Функции SQL-сервера ограничиваются низкоуровневыми операциями по организации, размещению, хранению и манипулированию данными в дисковой памяти сервера. Иначе говоря, SQL-сервер играет роль машины данных. Схема RDA-модели приведена на рис.7.