|
Программирование >> Проектирование баз данных
серверные приложения на своих ПК, пользователи рассчитывают, что эти приложения будут вести себя, как Windows-приложения, а не как серверные программы. В большинстве сред архитектура клиент/сервер стала обязательной. Задача проектировщика - реализовать ее так, чтобы она работала, обеспечивала достаточную производительность и была удобной в сопровождении. В этой главе мы рассмотрим вопросы, без решения которых нельзя создать удовлетворительно работающее приложение клиент/сервер. Однако сначала нам нужно уяснить смысл термина клиент/сервер . Что такое архитектура клиент /сервер ? Термином архитектура клиент/сервер обозначают модель, в которой доступ к базе данных подразделения или к корпоративной базе данных осуществляется с персонального компьютера или рабочей станции. Однако особенных аппаратных средств для архитектуры клиент/сервер не требуется. Это программная архитектура, в которой один набор программных компонентов (клиенты) с помощью сообщений просит другой набор программных компонентов (серверы) выполнить различные действия. Серверы выполняют затребованные действия и возвращают полученные результаты клиентам (также с помощью сообщений). И клиенты, и серверы посылают свои сообщения не по адресам (как можно предположить), а по именам. В частности, клиенты посылают свои запросы именованным сервисам, а не конкретным машинам, рассчитывая при этом, что в результате разрешения имен будет определен необходимый физический сервер. Поскольку связь между клиентами и серверами осуществляется с помощью сообщений, клиентская программа и сервис могут работать на разных машинах. Кроме того, поскольку клиентская программа знает сервис только по имени, она не осведомлена о местоположении сервера, предоставляющего данный сервис. Все это реализуется благодаря целому ряду уровней программного обеспечения. Естественно, где-то в глубине машины что-то должно знать, где на самом деле находится нужный сервис. В среде Oracle SQL*Net версии 2 эта информация обычно находится в файле с именем tnsnames.ora. Главной чертой архитектуры клиент/сервер является то, что клиент посылает сообщения именованным сервисам. Это дает ряд важных преимуществ: 1. Клиентский и серверный процессы не обязательно должны находиться на одной и той же машине, хотя это вполне допустимо (по данному определению). 2. Клиентский и серверный процессы не обязательно должны работать на однотипных аппаратных средствах или даже под управлением одинаковых операционных систем, если они могут посылать друг другу сообщения. Более того, клиент и сервер не обязательно должны знать об аппаратных и программных средах друг друга. Привязка к этим средам -основной источник проблем в приложениях клиент/сервер, потому что какие-либо изменения на клиенте или сервере могут сделать всю систему неработоспособной. 3. Этот процесс может продолжаться до бесконечности: клиент направляет запрос к именованному сервису, который передает его другому именованному сервису, и так далее, как показано на рис. 11.1. Клиент совсем не знает, что первый сервер задействовал других участников (конечно, если не учитывать, что все сетевые операции занимают время и такой субподряд часто увеличивает время реакции до неприемлемого). Одна из задач картриджей, которые включаются в архитектуру сетевых вычислений Oracle (NCA), рассмотренную в главе 12, состоит в том, чтобы упростить проектировщикам и программистам такое распределение функций. Клиент I запрос Рис. 11.1. Схема вложенной архитектуры клиент/сервер Все эти положения описывают инкапсуляцию, которая является одним из ключей к успешному проектированию вообще и необходимым условием хорошей работы любого приложения, построенного на клиент-серверных методах. Обработка сообщений, используемая в архитектуре клиент/сервер, знакома каждому, кто работал с Web-броузерами Netscape Navigator или Microsoft Internet Explorer (это приложения клиент/сервер, применяющие протокол HTTP). Web-броузеры также иллюстрируют ту мощь, которую дает возможность работать с несколькими серверами. В более традиционных приложениях клиент/сервер, особенно в тех, которые пользуются инструментальными средствами и серверами БД Oracle, наблюдается тенденция к соединению каждого клиента с одним и только одним сервером. об аппаратных средствах в системах клиент/сервер конца 80-х, начала и середины 90-х годов обычно использовалась довольно мощная рабочая станция, на которой работало ПО на базе оконного интерфейса и которая взаимодействовала с сервером, реализованным на миникомпьютере среднего класса. Первоначально это были Unix-станции с ПО Motif, а сейчас это чаще всего ПК на элементной базе Intel с операционной системой MS Windows 3.x или MS Windows 95. В настоящее время в качестве клиентской операционной системы все чаще используется Windows NT Workstation. Мы наблюдаем таклсе более активное внедрение Web-технологии, делающей природу клиентского устройства невидимой - не только для сервера, но, при наличии языков вроде Java, и для разработчика кода, предназначенного для работы на этом клиенте. Во многих ранних реализациях модели клиент/сервер сервером была больщая ЭВМ VAX фирмы Digital с операционной системой VMS. Сегодня сервер в больщинстве случаев представляет собой Unix-систему (как правило, с ОС SVR4 и процессором SPARC, Alpha, Intel или PowerPC) с высоким MIPS-показателем и большггми объемами внешней (дисковой) памяти. Все чаще в этой роли выступает и ОС Windows NT Server. Чем новее сервер, тем вероятнее, что он будет иметь несколько центральных процессоров и поддерживать несколько гигабайтов оперативной памяти. Многие из первых серверов были существенно ограничены как в мощности процессоров, так и в объемах оперативной памяти. И клиент, и сервер подключаются к локальной сети, которая используется как магистраль для передачи сообщений. В некоторых случаях клиент и сервер находятся в одной ЛВС, но чаще они общаются через интрасетъ - ограниченную совокупность связанных сетей. Доминирующей технологией в Oracle-системах клиент/сервер является Ethernet, но встречаются и кольцевые сети с маркерным доступом. Клиент и сервер могут использовать любой из множества коммуникационных протоколов, включая вездесущий TCP/IP, Благодаря программам многопротокольного обмена Oracle, клиент и сервер могут пользоваться разными протоколами, при этом ПО обмена предоставляет услуги по преобразованию. В настоящее время лишь ограниченное число приложений по-настоящему работают по Internet - говоря простым языком, по неограниченной совокупности связанных сетей, пользующихся общими протоколами. По мере перехода к Internet появляются клиентские устройства, подключенные по коммутируемым линиям, часто с очень маленькой полосой пропускания. Такая сильная зависимость от технологии локальных сетей стала проблемой для многих организаций, которым требуется обеспечить поддержку Удаленных пользователей, входящих в систему из дома или с клиентского узла. Часто в этих организациях разрабатывали два комплекта приложений, выполняющих одни и те же базовые задачи. Один набор приложений поддерживал интерактивных пользователей, которые подключались непосредственно к ЛВС, Второй набор мог включать высокоуровневый протокол
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |