Азы архитектуры клиент-сервер 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Азы архитектуры клиент-сервер



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

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

Обычно клиентом служит настольный ПК, выполняющий программное обеспечение конечного пользователя. программное обеспечение (ПО) конечного пользователя (front-end software) - это любая прикладная программа или пакет, способные направлять запросы по сети серверу и обрабатывать получаемую в ответ информацию. Сервер, в свою очередь, получает запросы и предпринимает действи от имени клиента.

ПК, работающий под управлением Windows 95 и выполняющий программу клиент-сервер Delphi, например, может представить на рассмотрение запрос серверу баз данных (скажем, программе Oracle7, редакция 7.2, запущенной на сервере Windows NT). Обычно клиент посылает запросы базе данных в виде предложений на языке структурированных запросов (SQL), использу понятный серверу базы данных диалект.

Промежуточное обеспечение (middleware) предоставляет общий интерфейс для ПО конечного пользователя и сервера, проникающий сквозь сквозь слои ГИП, ОС, вычислительной сети и собственных драйверов базы данных с помощью общих вызовов. Для завершения операции сервер базы данных выполняет запрос и передает клиенту затребованные данные для обработки их программой клиента.

Компоненты

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

Например, в пакете Microsoft Excel for Windows 95 используется встроенный ODBC-интерфейс для связи с подавляющим большинством серверов баз данных и "перекачки" данных в ожидающую электронную таблицу дл локальной обработки пользователем.

Генераторы отчетов также обладают средствами установления связи с серверами баз данных, что позволяет пользователям создавать специальные отчеты и диаграммы, а также запускать стандартные отчеты дл программ, такие как сводки по накладным и продажам. Дл лиц, ответственных за принятие решений, клиент-сервер означает простой доступ к корпоративной информации с помощью арсенала новых средств систем, содействующих принятию решений (decision support system - DSS), многие из которых концентрируются вокруг нового типа DSS-технологий, называемого оперативным анализом (online analytical processing - OLAP).

На рынке теперь доминируют средства разработки ПО конечного пользователя, такие как Delphi, PowerBuilder и Visual Basic, помогающие созданию соответствующих программ для архитектуры клиент-сервер. Все эти средства обладают способностями RAD, что позволяет разработчикам составлять прикладные программы из заготовленных компонентов.

Использование объектно-ориентированной модели разработки и возможность подключения управляющих элементов от независимых поставщиков (например, OCX и VBX) позволяет разработчикам создавать большую часть проекта из существующих программных модулей и компонентов. Эти средства также обеспечивают встроенные возможности подключения к большинству серверов баз данных и возможность распространения в массовом порядке исполнимых модулей программ ради развлечения и получения прибыли.

Промежуточное обеспечение, терминологически, - это та часть системы клиент-сервер, которая связывает ПО конечного пользователя с сервером. Это тире в сочетании "клиент-сервер".Его преимущество состоит в способности оградить ПО конечного пользователя и сервер от сложностей взаимодействий с операционной системой, сетью и вызовов самого сервера.

Существует много разновидностей промежуточного обеспечения. Это не просто один из видов программных продуктов. К нему относятся следующие виды промежуточного обеспечения: созданное специально дл СУБД; использующее исключительно сообщения; использующее брокеров объектных запросов; выполняющее обработку транзакций.

Переходим к звеньям

Архитектура клиент-сервер, совсем недавно считавшаяся сложной средой, постепенно превратилась в исключительно сложную среду. Почему? Благодар ускоренному, переходу к и спользованию в конструкции систем клиент-сервер нескольких звеньев.

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

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

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

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

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

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

Серверы баз данных

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

Серверы реляционных и нереляционных баз данных могут быть различного вида и масштабов. Большинство программ-серверов баз данных - такие как Oracle7 и Sybase System 11 - выполняются на выделенных машинах. При этом серверы баз данных работают на разнообразных процессорах и в различных операционных средах. Следовательно, у создателей систем клиент-сервер имеется выбор для удовлетворения потребностей прикладных программ. Oracle, например, работает на большинстве RISC- и CISC-ориентированных Unix-системах, включая HP/UX фирмы Hewlett-Packard и Solaris компании Sun. Кроме того, Oracle выполняется на серверах, использующих процессоры Intel под управлением SCO Unix и Netware компании Novell.

Некоторые изготовители серверов баз данных, такие как компании Borland (Interbase) и Sybase (SQL Server), предоставляют версии своих серверов для запуска на системах-клиентах (например, в процессах Microsoft Windows 3.1 или Windows 95). Это позволяет разработчику систем клиент-сервер создавать клиентскую часть программ, избежав необходимости немедленной покупки отдельного сервера баз данных.

Серверы реляционных баз данных (известные также как SQL-серверы или SQL-процессоры) составляют большинство применяемых в настоящее время серверов. Однако, в нескольких секторах рынка их догоняют объектно-ориентированные и многомерные серверы баз данных.

Серверы объектно-ориентированных баз данных, такие как GemStone компании GemStone Systems, хранят информацию в форме объектов, что больше подходит дл средств разработки программ-клиентов, которые работают с чисто объектной моделью.

Более того, в объектно-ориентированных СУБД лучше, чем в реляционных, организовано хранение сложных структур данных. Серверы многомерных баз данных, такие как Essbase Analysis Server фирмы Arbor Software Corp., обеспечивают более понятное конечным пользователям представление данных и обладают новыми средствами оперативного анализа (OLAP).

Функции сервера

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

Две другие важные особенности, на которые стоит обратить внимание, - способность сервера обеспечивать целостность ссылочных данных и обоюдный контроль завершения транзакции. Ссылочная целостность данных (referential integrity) - это механизм, обеспечивающий каждому внешнему ключу соответствующий первичный ключ. Обоюдный контроль завершения транзакций (two-phase commit) - гарантия того, что ваши данные не будут повреждены даже при аппаратном сбое.

С помощью хранимых процедур, триггеров и правил разработчики могут составить программу непосредственно самого сервера баз данных и, таким образом, появляетс еще одно место для размещения логики программы. Хранимые процедуры (stored procedures) - это группа предложений на языке SQL и процедурная логика, которые разработчики могут компилировать и хранить на сервере баз данных в качестве объектов. Программы-клиенты способны выполнять хранимые процедуры, также как и другой вид хранимых процедур или триггеров, путем посылки сообщений серверу баз данных.

Триггеры (triggers) - это хранимые процедуры, которые активизируются автоматически, как только серверу баз данных встречается связанное с данными событие. Правило (rule) - это специальный тип триггера, который проверяет данные до внесения их в базу данных.

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

 

Уровни модели OSI

Наконец, Windows NT Server является платформой для нового производительного почтового сервера Microsoft Exchange.

Сетевая модель OSI

Сетевая модель OSI (базовая эталонная модель взаимодействия открытых систем, англ. Open Systems Interconnection Basic Reference Model) — абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов. Представляет уровневый подход к сети. Каждый уровень обслуживает свою часть процесса взаимодействия. Благодаря такой структуре совместная работа сетевого оборудования и программного обеспечения становится гораздо проще и прозрачнее.

В настоящее время основным используемым семейством протоколов является TCP/IP, разработка которого не была связана с моделью OSI.

Уровни модели OSI

Модель состоит из 7-ми уровней, расположенных друг над другом. Уровни взаимодействуют друг с другом (по «вертикали») посредством интерфейсов, и могут взаимодействовать с параллельным уровнем другой системы (по «горизонтали») с помощью протоколов. Каждый уровень может взаимодействовать только со своими соседями и выполнять отведённые только ему функции. Подробнее можно посмотреть на рисунке.



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 323; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.228.95 (0.011 с.)