Файл: Технология «клиент-сервер» (Клиент- серверная архитектура).pdf
Добавлен: 27.05.2023
Просмотров: 932
Скачиваний: 9
СОДЕРЖАНИЕ
1. Клиент- серверная архитектура
2. Клиент-серверная архитектура применительно к базам данных
2.1 Понятие архитектуры клиент-сервер.
2.2 Двухуровневая клиент-серверная архитектура
2.3 Многоуровневая архитектура клиент-сервер
2.5 Клиент-серверная архитектура применительно к ИС
3. Клиент-серверные вычисления
3.1 Пирамида модели «клиент-сервер»
3.3 Открытые системы и стандарты
4. Модель клиент - сервер в Интернете
3.1 Пирамида модели «клиент-сервер»
Председатель Butler Group - Мартин Батлер, предложил иные рамки для реализации клиент-серверной стратегии. Это модель. Которая состоит из 5 слоев под названием VAL (Value Added Layers) Модель. Основная структура напоминает по форме пирамиду, со слоями Инфраструктура и Middleware в нижней части пирамиды, а приложения, хранилища и бизнес модели на вершине.
Характеристики каждого слоя:
Первый уровень - Инфраструктура слоя Слой инфраструктура состоит из всех тех компонентов, являющимися пассивными, и не выполняет бизнес-функции. Примеры относятся к этой категории компьютерных операционных систем, сетей, пользовательских интерфейсов и системы управления базой данных.
Второй уровень - Middleware Middleware позволяет приложениям прозрачно коммуникатировать с другими программами или процессами независимо от их местонахождения. Это средство отображения приложений используемых ими ресурсов. Middleware является ключом к интеграции гетерогенных аппаратных и программных сред, который обеспечивает тот уровень интеграции, который необходим многим организациям. Типичные Middleware проявляются после сетевых соединений, соединений с базой данных и осуществляют взаимодействие между базой данных и приложениями.
Третий уровень – Программы. Приложения являются активными компонентами, которые выполняют работы по организации, и именно сюда, многие компании вкладывают огромные усилия, деньги и время. Приложения, не имеющие ключевого значения. Они все чаще приобретаются как уже готовый пакет. Приложения же, которые являются жизненно важными для увеличения конкурентоспособности компании в отрасли, разрабатываются на месте.
Четвертый уровень – Хранилище. Роль хранилища - изоляция бизнес-модели / спецификации от технологических инструментов, которые используются для ее осуществления.
Пятый уровень - Бизнес-модели. Бизнес-модель должна быть независимой, для того чтобы все технологии, использующиеся для ее осуществления были применимы к аппаратной и программной среде в зависимости от того, что является наиболее подходящим. Это будет все больше и больше опираться на объектно- ориентированные методы, уже существует поколение инструментов, которые поддерживают объект моделирования.
3.2 Важность сети
Для того чтобы совместить клиентов и серверов вместе и в полной мере использовать ресурсы, которые содержаться в каждой машине, мы должны разработать сетевую систему, которая на это будет способна. Сети должны быть прозрачны и понятны для пользователей. Приложения и сети должны работать вместе так же хорошо, как если бы они работали на одном компьютере. Помимо этого, сеть должна обеспечить возможности самовосстановления, чтобы можно было перенаправить сетевой трафик вокруг испорченного кабеля и быть достаточно гибкой, чтобы реагировать на бизнес-изменения в окружающей среде. Для удобства и простоты используются локальные сети LAN. На данный момент существует три различные LAN топологии: звезда, кольцо и шина и, по крайней мере, пять конкурирующих стандартов для передач, и два стандарта для информации, которая необходима для управления сетью. Настолько сложными стали локальные сети, что они требуют собственную операционную систему. Сеть продолжает быть одним из наименее изученных и наиболее важным из компонентов в информационной структуре организации. Большое количество организаций, приверженных клиент-серверной архитектуре согласны, что связь локальных сетей не место, чтобы экономить деньги. Мы не должны пытаться связать несовместимые локальные сети с различными платформами. Программное обеспечение, аппаратное обеспечение и операционная система, коорая используется в сети, должны быть тщательно протестированы.
3.3 Открытые системы и стандарты
Одна из самых важных особенностей клиент-серверной архитектуры - это открытость системы. Открытой системе соответствует широкий набор формальных стандартов и поддержка платформы от различных производителей. Открытые системы требует принятия стандартов в рамках всей организации. Открытую систему делает успешной открытые стандарты системы, которые должны быть приемлемыми для обеих сторон: пользователей и производителей систем и будут приняты на всех уровнях организации. Для того чтобы все эти компоненты работали вместе как сложная система, мы должны придерживаться нескольких видов стандартов. Имеются ввиду стандарты в четырех областях клиент-серверных вычислений, таких как платформы (программного и аппаратного обеспечения), сети, Middleware и приложения. Спецификации стандартов должны быть разработаны на основе консенсуса и быть общедоступными. Стандарты должны быть всеобъемлющими и последовательными и определять интерфейсы, услуги и поддержку форматов для достижения совместимости. В настоящее время есть несколько консорциумов, которые работают в разработке стандартов для открытых систем:
- OSF (Open Software Foundation) - некоммерческий консорциум компьютерных производителей, разработчиков программного обеспечения и поставщиков чипов для разработок, основанных на стандартах программного обеспечения.
- UNIX-International - консорциум производителей компьютеров, разработчиков программного обеспечения, целью которых является создание UNIX и связанных с ними стандартов разработки и лицензирования продуктов UNIX.
- OMG - международные организации системы поставщиков, разработчиков программного обеспечения и пользователей, сторонники развертывания объекта управления технологиями в разработке программного обеспечения. Применяя общую основу для всех объектно-ориентированных приложений, организации смогут управлять гетерогенными средами. CORBA (Common Object Request Broker Architecture), разработанная OMG, DEC, NCR, HP и SUN является новым механизмом, который позволяет объектам (приложениям) называть друг друга по сети.
- SQL Access Group - это промышленный консорциум работает над определением и осуществления технических условий для гетерогенного доступа SQL данных с использованием принятых международных стандартов.
4. Модель клиент - сервер в Интернете
Взаимодействие клиента и сервера в Интернете осуществляется при помощи запросов, которые посылаются клиентом серверу, и ответов сервера на запрос клиента. Идея распределенных систем это связь между процессами, которые реализуют не только взаимодействие компьютеров, но и частей (уровней) приложений. Взаимодействие частей приложений реализуется с помощью протоколов, которые описывают состав и формат данных, пересылаемых соответствующими частями клиентских и серверных приложений друг другу для решения поставленной задачи. В интернете разделение приложений на части осуществляется на базе стека протоколов TCP/IP. В данной модели разработчики имеют большую свободу в определении того, какие части клиент-серверного приложения будут на клиентском компьютере и какие на сервере. Логика пользовательского интерфейса существовала почти исключительно на сервере. Мы можем снова приступить к использованию более эффективных и хорошо структурированных клиент- серверных моделей. Конечно же, есть еще технические вопросы, но мы в состоянии лучше строить истинные клиент-серверные приложений в настоящее время.
Рисунок 9 – Простейшая схема Intranet с архитектурой «Клиент – сервер»
Клиент-серверную модель можно разделить на три части :
- User Interface - пользовательский интерфейс
- Business or Application Logic - бизнес и логика приложения
- Data Management - управление данными.
Традиционное развитие веб-приложений распространило реализации пользовательского интерфейса в сети, причем большая часть логики интерфейса пользователя и код выполняется на сервере (тонкий клиент, толстый сервер). Этот метод имеет несколько основных минусов:
- неудовлетворительное распределение обработки - с большим числом клиентов, делает все обработки на сервере неэффективно
- высокая латентность ответа пользователя - традиционные веб- приложения не реагируют достаточно быстро. Высокое качество взаимодействия с пользователем является очень чувствительным к задержкам, и очень быстрая реакция имеет очень важное значение
- трудная модель программирования - программирование пользовательского интерфейса через клиент-сервер достаточно сложно.
Если правила доступа распространяются через пользовательский код интерфейса, то при росте кода пользовательского интерфейса возникают новые векторы атаки. Сложное управления на серверах. Offline трудности. Код пользовательского интерфейса должен выполняться на клиенте и в автономном ситуациях. Снижение возможностей для взаимодействия. Когда клиент-сервер состоит из передачи внутренней части пользовательского интерфейса в браузере, бывает очень трудно понять эту связь и использовать ее для других приложений. Нужно решить, какой код должен работать на клиенте, а какой на сервере. Коду пользовательского интерфейса лучше работать на браузере, а бизнес-логике и управлению данными лучше работать на стороне сервера. Хороший дизайн включает в себя создание объектов, которые инкапсулируют большую часть своего поведения и минимальной площади поверхности. Он должен быть понятным и легко взаимодействовать с хорошо разработанным интерфейсом объекта. Помимо этого, клиент-серверное взаимодействие должно быть построено на хорошо продуманном интерфейсе. Проектирование модульных удаленных интерфейсов часто называют сервис-ориентированной архитектурой (SOA). Клиент-серверная реализация высокого качества должна иметь простой интерфейс между клиентом и сервером. На стороне клиента обязан инкапсулировать презентации и код взаимодействия с пользователем. Код на стороне сервера должен инкапсулировать правила поведения и взаимодействия данных. Веб-приложения должны быть разделены на два основных элемента, веб-сервис и пользовательский интерфейс.
Плюсы чистой модели клиент-сервер:
- масштабируемость. Чем больше клиентов, использующих приложения, тем больше клиентских машин, которые доступны, в то время как сервер остается постоянным.
- мгновенный ответ пользователя. Клиентский код может немедленно отзываться на действия пользователя, но не ждать для передачи данных по сети.
- организованная модель программирования. Более чистый подход к безопасности обеспечивает такая модель. В тот момент, когда все запросы идут через код пользовательского интерфейса, данные могут передаваться через различные интерфейсы до проверки безопасности. Это может усложнить анализ безопасности. Хотя с другой стороны, с понятным интерфейсом веб-службы есть определенные шлюзы безопасности для работы и анализа безопасности. Клиентская часть управления это сохранение информации о состоянии сессии на клиенте, которая уменьшает нагрузку на сервер. Возможность использования клиентами более «спокойного» взаимодействия, которое может еще больше увеличить масштабируемость и возможности кэширования.
Автономные приложения. В том случае, когда большая часть кода для приложений уже сконструирована, чтобы работать на клиенте, создание автономной версии приложения будет легче, скорее всего.
Взаимодействие. Намного проще подключать дополнительных потребителей и производителей и взаимодействовать с существующими системами для взаимодействия со структурированным данным с минимальными API-интерфейсами.
5. Развитие
5.1 Клиент-серверные вычисления
В связи с усложнением ситуации в бизнесе в последние годы, технология перехода к клиент-серверным вычислениям проявляется, главным образом, такие как глобальный маркетинг, дистанционные он-лайн продажи распределения, децентрализованной корпоративной стратегии. Все это требует быстрое реагирование, легкий доступ к информации данных, и более эффективной координации между людьми на всех уровнях как внутри, так и вне организации. Клиент-серверные вычисления позволяют решать все эти проблемы и, следовательно, являются одним из приоритетных вопросов в умах управления ИТ. Понятно, что клиент-серверная технология приносит много плюсов для бизнеса, а также увеличение возможностей для расширения и конкурирования. Все это может быть достигнуто, к сожалению, только за счет более высокой стоимости сооружений и более сложной совместимости систем. Не единственным способом решения бизнес-проблем, считается клиент-сервер. Дороговизна считается ограничением в его использовании. Пока клиент-сервер используется со знанием, он может принести большие конкурентные преимущества.
5.2 Трехуровневая архитектура
Свое признание от специалистов приблизительно с середины 90-х годов прошлого века получила трехзвенная архитектура «Клиент – сервер», разделившая информационную систему по функциональным возможностям на три различных компонента: логика представления, бизнес-логика и логика доступа к данным. В отличие от архитектуры с двумя зеньями в трехзвенной появляется дополнительное звено, которое получило название - сервер приложений, предназначенное для осуществления бизнес-логики, при этом полностью разгружается клиент, направляющий запросы промежуточному программному обеспечению, и максимально используются все возможности серверов.
В трехуровневой архитектуре клиент, как правило, не перегружен функциями обработки данных, а выполняет свою главную роль системы представления информации, которая поступает с сервера приложений. Такой интерфейс можно использовать с помощью стандартных средств Web-технологии - браузера, CGI и Java. Это уменьшает тот объем данных, который передается между клиентом и сервером приложений, а это, в свою очередь, позволяет подключать клиентские компьютеры даже по самым медленным линиям типа телефонных каналов. Кроме того, клиентская часть может быть настолько простой, что в большинстве случаев ее реализуют с помощью универсального браузера. Но если менять ее все-таки придется, то эту процедуру можно осуществить быстро и безболезненно.
Сервер приложений – это программное обеспечение, которое является промежуточным слоем между клиентом и сервером.
Рисунок 10 - Сервер приложений
Существует несколько категорий продуктов промежуточного слоя:
- Message orientated – яркие представители MQseries и JMS;
- Object Broker – яркие представители CORBA и DCOM;
- Component based – яркие представители.NET и EJB.
Использование сервера приложений дает намного больше возможностей, к примеру , уменьшается нагрузка на клиентские компьютеры, так как сервер приложений распределяет нагрузку и обеспечивает защиту от сбоев. Так как бизнес-логика хранится на сервере приложений, то при каких-либо изменениях в отчетности или расчетах клиентские программы никогда не затрагиваются.
Существует несколько серверов приложений от таких знаменитых компаний как Sun Microsystem, Borland, IBM, Oracle и каждый из них отличается набором предоставляемых сервисов (производительность в данном случае учитывать не будем). Эти сервисы облегчают программирование и развертывание приложений масштаба предприятия. Обычно сервер приложений предоставляет следующие сервисы: