Добавлен: 28.06.2023
Просмотров: 185
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. Обзор и анализ проблемы, методов и средств ее решения
1.1. Обзор архитектуры «клиент-сервер»
1.1.2 Клиенты и серверы локальных сетей
1.1.3 Системная архитектура «клиент-сервер»
1.1.5 Принципы взаимодействия между клиентскими и серверными частями
1.1.6.Преимущества протоколов удаленного вызова процедур
1.1.7 Типовое разделение функций между клиентами и серверами
1.1.8 Архитектуры процессора базы данных
1.2. Архитектура с несколькими процессами
Глава 2 Intranet и архитектура «клиент-сервер»
2.1. Двухуровневая архитектура «клиент-сервер»
2.2 Трехуровневая архитектура «клиент-сервер»
2.3. Программы расширения серверной части
3.1 Технологический цикл обработки JAVA-программ
3.3 Типы данных, которые поддерживает JAVA-машина
3.7 Система команд JAVA-машины
3.2.1. Взаимодействие с серверами баз данных - JDBC
3.2.3 Принципы использования JDBC
3.2.4.Нетривиальные возможности JDBC
Введение
Архитектура клиент-сервер – это доминирующая концепция в создании распределенных сетевых приложений, которая предусматривает взаимодействие и обмен данными между ними; компоненты: набор серверов, которые предоставляют информацию или другие услуги программам, которые обращаются к ним; набор клиентов, используемых сервисами, предоставляемые серверами; сеть, обеспечивающая взаимодействие между клиентами и серверами. Нет жесткой привязки клиентов к серверам. Более типична ситуация, когда один сервер одновременно обрабатывает запросы от разных клиентов; клиент может обращаться к одному серверу и к другому.
Важно представлять, кто или что рассматривается как «клиент». Можно говорить о клиентском компьютере, с которого происходит обращение к другим; о клиентском и серверном программном обеспечении; о людях, которые хотят с помощью программного и аппаратного обеспечения доступа к информации. Клиенты и серверы - программные модули. Чаще они находятся на разных компьютерах, но бывает, когда клиентская и серверная программы физически размещаются на одной машине; в данной ситуации сервер называют локальным. Для того, чтобы работая в Интернете, посмотреть какую-то страницу, на компьютере должно быть установлено соответствующее программное обеспечение. Программы для просмотра веб-страниц – браузеры. Кроме браузеров, к серверам могут обращаться и другие клиенты - автономные программы, котороые предусматривют взаимодействие с человеком, а могут работать в автоматическом режиме.
Цель работы: исследовать разработку «клиент-сервис» архитектуры.
Задачи:
- Осуществить обзор и анализ «клиент-сервис» архитектуры, методов и средств ее решения.
- Рассмотреть взаимодействие Intranet и архитектура «клиент-сервер».
- Описать технологию JAVA в русле работы архитектура «клиент-сервер».
Глава 1. Обзор и анализ проблемы, методов и средств ее решения
1.1. Обзор архитектуры «клиент-сервер»
Подобно системе баз данных архитектура «клиент-сервер» интересна и актуальна тем, что обеспечивает простое и дешевое решение проблемы коллективного доступа к базам данных в локальной сети. Использование архитектуры «клиент-сервер» может заинтересовать, когда отвечаете за разработку программы, которая обращается к данным локальной сети или файлового сервера. К программному обеспечению могут обращаться несколько пользователей, а со временем и другие программы которые будут обрабатывать эти данные. Распространение архитектуры «клиент-сервер» стало возможным благодаря широкому внедрению в практику концепции открытых систем[1].
Основное содержание подхода открытых систем - упрощение комплексирования вычислительных систем за счет международной и национальной стандартизации аппаратных и программных интерфейсов[2]. Причина развития концепции открытых систем - переход к использованию локальных компьютерных сетей и проблемы комплексирования аппаратно-программных средств, которые вызвал этот переход. В связи с развитием технологий глобальных коммуникаций открытые системы приобретают значение и масштабность[3].
Ключевой фразой открытых систем, направленной в сторону пользователей, является независимость от конкретного поставщика. Ориентируясь на продукцию компаний, придерживающихся стандартов открытых систем, потребитель, который приобретает любой продукт такой компании, не попадает к ней в рабство. Он может продолжить наращивание мощности своей системы путем приобретения продуктов любой другой компании, соблюдающей стандарты. Причем это касается как аппаратных, так и программных средств[4].
Практической опорой системных и прикладных программных средств открытых систем является стандартизованная операционная система. Такой системой является UNIX. Фирмам-поставщикам различных вариантов ОС UNIX в результате работы удалось прийти к соглашению об основных стандартах операционной системы. Сейчас распространенные версии UNIX совместимы по части интерфейсов, предоставляемых прикладным (а в большинстве случаев и системным) программистам. Несмотря на появление системы, претендующей на стандарт, Windows NT, UNIX останется основой открытых систем[5].
Технологии и стандарты открытых систем обеспечивают проверенную практикой возможность производства системных и прикладных программных средств со свойствами мобильности (portability) и интероперабельности (interoperability)[6]. Свойство мобильности означает простоту переноса программной системы в спектре аппаратно-программных средств, соответствующих стандартам. Интероперабельность - упрощение комплексирования новых программных систем на основе использования готовых компонентов со стандартными интерфейсами. Преимущество - они могут заменять компоненты системы на их новые версии, не теряя работоспособности системы. В этом - решение проблемы наращивания вычислительных, информационных мощностей компьютерной системы.
1.1.2 Клиенты и серверы локальных сетей
В основе распространения локальных сетей - идея разделения ресурсов. Высокая пропускная способность локальных сетей обеспечивает доступ из одного узла локальной сети к ресурсам, находящимся в других узлах. Развитие идеи приводит к функциональному выделению компонентов сети: целесообразно иметь не только доступ к ресурсам компьютера, но и получать от компьютера сервис. Так приходим к различению рабочих станций и серверов локальной сети[7].
Рабочая станция предназначена для работы пользователя (категории) пользователей, обладает ресурсами, соответствующими локальным потребностям пользователя. Сервер локальной сети должен иметь ресурсы, соответствующие его функциональному назначению и потребностям сети. В связи с ориентацией на подход открытых систем, мы говорим о логических серверах (набор ресурсов и программных средств, обеспечивающих услуги над ресурсами), которые располагаются не обязательно на разных компьютерах. Особенность логического сервера в открытой системе - если в рассуждениях эффективности сервер целесообразно переместить на отдельный компьютер, то это можно проделать без потребности в какой-либо переработке как его самого, так и его приложений[8].
Примеры серверов:
• сервер телекоммуникаций, обеспечивающий услуги по связи данной локальной сети с внешним миром;
• вычислительный сервер позволяет производить вычисления, которые невозможно выполнить на рабочих станциях;
• дисковый сервер с расширенными ресурсами внешней памяти и их в пользование пользователям и, возможно, другим серверам;
• файловый сервер, поддерживающий общее хранилище файлов для всех рабочих станций;
• сервер баз данных, фактически обычная СУБД, принимающая запросы по локальной сети и возвращает результаты[9].
Сервер локальной сети предоставляет ресурсы (услуги) рабочим станциям и / или другим серверам. Принято называть клиентом локальной сети, который запрашивает услуги у некоторого сервера и сервером - компонент локальной сети, оказывающих услуги некоторым клиентам.
1.1.3 Системная архитектура «клиент-сервер»
Чтобы прикладная программа, которая выполняется на рабочей станции, могла запросить услугу у некоторого сервера, нужно интерфейсный программный уровень, который поддерживает такого рода взаимодействие (было бы неестественно требовать, чтобы приложение пользовалась примитивами транспортного уровня локальной сети). Из этого и вытекают основные принципы системной архитектуры «клиент-сервер»[10].
Система разбивается на 2 части, они могут реализовывать в разных узлах сети, - серверной и клиентской частях системы. Клиентская - при необходимости обращается по сети к серверной части. В развитых системах сетевое обращение к серверной части может не понадобиться, если система может предугадывать потребности пользователя, в клиентской части содержатся данные, которые способны удовлетворить его следующий запрос[11]. Интерфейс серверной части системы фиксирован и определен, поэтому допустимо создание новых клиентских частей имеющейся системы (интероперабельность на системном уровне)[12].
Проблемой систем, которые образованы на архитектуре «клиент-сервер», является то обстоятельство, что в соответствии с концепцией открытых систем от них требуется мобильность в широком классе аппаратно-программных решений открытых систем. Если ограничиться UNIX-ориентированными локальными сетями, в разных сетях используется различная аппаратура и протоколы связи. Попытки создания систем, которые поддерживают возможные протоколы, приводит их к перегрузке и функциональному ущербу.
Более сложный аспект данной проблемы связан с потенциалом применения разных представлений данных в различных узлах неоднородной локальной сети. В разных компьютерах может быть разная адресация, кодировка символов, представление чисел и пр. Что важно для серверов высокого уровня: вычислительных, телекоммуникационных, баз данных[13]. Решением проблемы мобильности систем, основанных на архитектуре «клиент-сервер» может быть опора на программные пакеты, которые реализуют протоколы удаленного вызова процедур (RPC - Remote Procedure Call). При использовании этих средств обращения к сервису в удаленном узле предстает как обычный вызов процедуры. Средства RPC, где содержится информация о специфике аппаратуры локальной сети и сетевых протоколов, переводит вызов в последовательность сетевых взаимодействий. Специфика сетевой среды и протоколов скрыта от прикладного программиста[14]. При вызове удаленной процедуры программы RPC делают преобразование форматов данных клиента в промежуточные машинно-независимые форматы и потом преобразование в форматы данных сервера. При передаче надлежащих параметров совершаются аналогичные преобразования. Если система осуществлена на основе стандартного пакета RPC, она может быть перенесена в любую открытую среду[15].
Технология «клиент-сервер» применимая к СУБД сводится к разделению системы на 2 части - приложение-клиент (front-end) и сервер базы данных (back-end). Эта архитектура объединяет черты обработки данных на мэйнфреймах и технологии «файл-сервер». От мэйнфреймов «клиент-сервер» технология заимствовала следующие черты: администрирование, централизованное, надежность, безопасность. От «файл-сервер» технологии наследованы возможность распределенной обработки данных, низкая стоимость, применяя ресурсы компьютеров-клиентов.
Графический интерфейс пользователя - стандарт для систем «клиент-сервер». Архитектура «клиент-сервер» ускоряет и упрощает разработку приложений за счет того, что правила проверки целостности данных находятся на сервере. Если клиентское приложение работает неправильно, то это может привести к потере или искажению данных. Эти возможности были присущие ранее сложной и дорогой системам, сейчас они доступны и небольшим организациям. Стоимость оборудования такого программного обслуживания и обеспечения для персональных компьютеров в 10 раз ниже, чем для мэйнфреймов. Особенности обработки данных в различных архитектурах представлены на Рис.1.
Локальный компьютер
Локальное приложение
СУБД
Данные
Архитектура «файл-сервер»
Клиент
Файл-сервер
сетевое приложение
Данные
СУБД
Клиент
сетевое приложение
Передача данных
СУБД
Рис.1. Обработка данных в различных архитектурах
Сервер БД