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


ОТКУДА ТАКАЯ ПОПУЛЯРНОСТЬ?
РАВНЕНИЕ НА СЕРЕДИНУ
К ВАШИМ УСЛУГАМ
ЯЩИК С ИНСТРУМЕНТАМИ ДЛЯ КЛИЕНТА
VISUAL BASIC
POWERBUILDER
DELPHI
CA-VISUAL OBJECTS
С... И ВЫШЕ
SMALLTALK
ВТОРОЕ ПРИШЕСТВИЕ COBOL"А?
ВЕРШИНА КУЧИ?
ENTERPRISE DEVELOPER
FORTE
КЛИЕНТ-СЕРВЕР ВКРАТЦЕ
ПОВЕСТКА ДНЯ: КЛИЕНТ/СЕРВЕР
АППЕТИТНАЯ АНАЛОГИЯ

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

В данной статье мы поделимся своими собственными соображениями относительно положения дел в программном обеспечении для разработки приложений в архитектуре клиент/сервер и, прежде всего, со стороны клиентов.

Давайте начнем с определения архитектуры клиент/сервер. Часть программного обеспечения - клиент - устанавливается на персональную рабочую станцию пользователя (система на базе ПК, Mac, Unix, OS/2). Клиент берет на себя выполнение некоторых функций, главным образом интерфейс с пользователем, установление соединений, а в некоторых случаях и тестирование.

Второй элемент - сервер - практически всегда является базой данных и устанавливается на предназначенный для этих целей компьютер. Он отвечает за доступ и работу с хранимыми данными. В качестве такого компьютера с одинаковым успехом может выступать и ПК с 486 процессором под NetWare, и IBM ES/9000 под MVS/ESA.

В трехзвенной архитектуре имеется третий элемент - сервер правил (rules server). Само собой, возникает вопрос о месте логики бизнеса (bisiness logic), но об этом чуть позже.

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

ОТКУДА ТАКАЯ ПОПУЛЯРНОСТЬ?

Технология клиент/сервер не гарантирует жизнь свободную от стрессов, отнюдь. Так почему же она столь популярна? Во-первых, доброхоты заявляют, что замена большого компьютера и терминалов на сервер под Unix и ПК позволит сэкономить значительную сумму денег. Однако на практике все выглядит несколько иначе, и тем не менее технология клиент/сервер привлекает все новых и новых сторонников. Это объясняется прежде всего с тем, что производители мейнфреймов не держат своих обещаний и люди просто устали ждать пока IBM, Digital Equipment, Unisys и им подобные снизойдут до нужд простых пользователей.

Другой причиной успеха технологии клиент/сервер стало то обстоятельство, что менеджеры уже более не могли отслеживать сотни, а то и тысячи программ, нуждающихся в обновлении и перекомпилировании каждый раз при небольшом изменении в базе данных. К тому же многие хранители забытой плоско-файловой позиционной логики приближались к пенсионному возрасту или были уволены в связи с реорганизацией компании. Современные же базы данных, использующие стандартную логику имен (naming logic), оказались значительно проще для понимания.

К плюсам технологии клиент/сервер можно отнести простоту и удобство пользовательских интерфейсов, открытость систем, эффективную среду разработки (особенно при наличии объектно-ориентированных инструментов) и быстроту решений.

РАВНЕНИЕ НА СЕРЕДИНУ

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

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

К ВАШИМ УСЛУГАМ

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

Оценка пригодности продуктов для выполнения специфических задач чрезвычайно затруднилась, поскольку все предложения обладают примерно равными возможностями и быстродействием. Sybase (Эмервиль, шт. Калифорния) всегда считалась признанным лидером, а Oracle (Редвуд Шорс, шт. Калифорния) слыла более стабильной. Сегодня же Oracle в некоторых отношениях обогнала Sybase. Кроме того, у экс-лидера возникли некоторые проблемы с выпуском новой версии System 11.

Microsoft тоже ввязалась в драку: первые отзывы характеризуют SQL Server 6.0 как хорошее решение для систем масштаба подразделения. IBM нашла применение немеренной силе DB2 в выпуске совместимых версий для платформ на базе Unix, AS/400 и OS/2, она планирует выпуск версии для персональных систем (Ultralite) в конце 1995 года.

Так вот, программная архитектура Model-View-Controller дает ответ на вопрос о месте логики бизнеса в Smalltalk. Этот ответ состоит в том, что место логики не на клиенте (View) и не на сервере (Model). Данный элемент следует рассматривать как отдельный сегмент, контролирующий взаимодействие двух других.

Серверы правил находятся еще в младенческом возрасте. Однако среды разработки от Symantec (Купертино, шт. Калифорния), Forte (Оуклэнд, шт. Калифорния) и Dynasty Technology (Нейборвиль, шт. Иллинойс) позволяют интеллектуально использовать такие продукты.

ЯЩИК С ИНСТРУМЕНТАМИ ДЛЯ КЛИЕНТА

На рынке найдутся в буквальном смысле слова сотни полномасштабных сред разработки приложений в архитектуре клиент/сервер. Каждый выпуск еженедельных коммерческих бюллетеней сообщает о новых продуктах, новых версиях или добавлении поддержки архитектуры клиент/сервер к имеющимся продуктам.

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

Smalltalk, Visual Basic компании Microsoft, С++, PowerBuilder компании PowerSoft (Конкорд, шт. Массачусетс) обладают всеми возможностями. Однако быстрота развертывания и поддержка управления, выраженные в сумме потраченных долларов и количестве потребленного кофе, для менеджеров проектов более существенны.

Немаловажно также то обстоятельство, что статус "горячего продукта" обуславливает невысокую цену приобретения. Многие разработчики хотели приобрести версию PowerBuiler для настольных систем Desktop Edition у PowerSoft, однако они не могли себе позволить потратить на это 3000 долларов.

Desktop пришлось за несколько месяцев переквалифицировать в Enterprise, что при наличии спроса произошло бы гораздо быстрее. Успех Visual Basic и Delphi компании Borland (Скотс-Валли, шт. Калифорния) определил вторых призеров в этом забеге, в то время как другие интригующие инструменты, такие как Visual Objects компании Computer Associates (Исландия, шт. Нью-Йорк) и Uniface одноименной компании (Аламеда, шт. Калифорния) вызвали массу нареканий потенциальных пользователей, главным образом, из-за дороговизны приобретения.

Инструменты высокого класса, такие как Forte и Dynasty, еще дороже, однако производители и не мыслили использовать эти новые продукты для настольных систем.

VISUAL BASIC

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

Во время написания данной статьи Visual Basic 4.0 находился на стадии бета-тестирования, его появление на рынке ожидалось в сентябре этого года. Большинство изменений, в особенности видоизменения в интерфейсе пользователя, связано с поддержкой новых операционных систем, а также с усовершенствованием и автоматизацией OLE и поддержкой 32-разрядности.

Как всегда Microsoft предпочла не распространяться о некоторых подробностях, касающихся Visual Basic 4.0. Так что будьте готовы к сюрпризам. Разговоры вертятся преимущественно вокруг поддержки объектно-ориентированного программирования, хотя некоторые отрицательные отзывы Билла Гейтса по поводу объектно-ориентированного программирования делают эти толки весьма двусмысленными: продукт почти наверняка не будет иметь компилятора.

Сила Visual Basic лежит в мощной поддержке со стороны других производителей. Практически любую горизонтальную потребность можно удовлетворить посредством сканирования библиотек демонстрационных файлов из форума MBASIC из CompuServe или домашней страницы Carl and Gary (http://www.apexsc.com).

POWERBUILDER

PowerSoft ворвалась на рынок во время его становления и заняла на нем наивысшие позиции. Настольное издание PowerBuiler 3 стало наконец доступным по цене тысячам разработчиков.

После выпуска в конце прошлого года PowerBuilder 4 продукт частью потерял свою привлекательность, но он по-прежнему доминирует на рынке продуктов старшего класса.

Новая версия имеет более высокую производительность, но как и прежде она не достаточна для рисования сложных пользовательских интерфейсов и обработки очень больших массивов результатов (содержащих более чем 30000 строк).

PowerSoft всегда строго придерживалась следующей рыночной концепции: возможности по потребности (пользователей). На недавней конференции разработчиков компания обнародовала новую версию PowerBuilder 5. Эта версия будет обладать новыми возможностями, как-то: компилятор (на базе технологии дочерней фирмы компании Watcom), поддержка серверов правил PowerBuilder (трехзвенная архитектура), интеграция монитора транзакций плюс совместимость с Windows 95 (включая автоматизацию OLE). В стадии разработки находятся версии для платформ Mac, Power Mac, Solaris, AIX и HP-UX.

DELPHI

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

В одном из объявлений на форуме разработчиков программного обеспечения в CompuServe автор испрашивал совет: что лучше - Visual C++ или Visual Basic? Десять ответивших посоветовали ему попробовать Delphi. Разработчики компонентов тут же предложили множество дополнительных элементов расширения.

Delphi обладает полным объектно-ориентированным языком программирования (модифицированный Pascal), собственным компилятором кода ком- понентами для доступа и манипуляции базами данных, весьма приятным рабочим пространством программиста (представьте себе Visual Basic таким, каким вы хотели бы его видеть), а также набором компонентов, инструментов и утилит.

Препятствием для интеграции является включение в пакет инструмента генерации сообщений ReportSmith. Генератор отчетов - продукт надежный, но не гармонирует со всей остальной средой. Он поддерживает Visual Basic Exclusions (VBX), но поскольку Delphi - это транслируемый язык, то пользователи могут создавать компоненты для использования в Delphi и на других языках. И насколько же данный генератор хорош? Среда написана на Delphi так же, как и компилятор.

CA-VISUAL OBJECTS

Многие разработчики X-base возлагали большие надежды на CA-Visual Objects и терпеливо ждали окончания его разработки сначала в Nantucket, а затем под крылом Computer Associates. В итоге появились достаточно мощная поддержка для графического интерфейса Windows на унаследованной от Xbase базе, программирование на основе событий и развитый объектно-ориентированный язык.

Значительным преимуществом для продукта по цене в 795 долларов является хранилище объектов, в котором находятся все программные элементы (вместе с прикладными программными интерфейсами других поставщиков и настройками и расширениями пользователей), и многопроцессорный отладчик. Это позволяет выполнять оба конца соединения одновременно и, следовательно, убыстряет отладку разрабатываемого приложения.

С... И ВЫШЕ

Несколько лет назад С и С++ были единственными решениями для разработки высокоэффективных приложений под Windows (клиент-серверных и других) и С++ по-прежнему имеет важное преимущество над остальными. Эти преимущества состоят в следующем:

  • полный доступ к библиотекам с динамическими связями на любом уровне (например, подсоединение драйверов СУБД напрямую, минуя слой Open Database Connectivity);
  • наивысшая реальная производительность;
  • международная стандартизация с непосредственной поддержкой языков и алфавитов;
  • поддержка платформ разных производителей, в том числе и межплатформных компиляторов;
  • большой выбор при большой цене полезных дополнений.
  • Основными поставщиками компиляторов являются Microsoft, Symantec, Watcom (дочерняя компания PowerSoft/Sybase) и IBM. IBM, относительный новичок на этом рынке, недавно представила новаторский продукт VisualAge/C++. Эта среда на базе Visu- alAge/Smalltalk сочетает мощный продукт С++ со средой визуальной сборки компонентов и не требует опыта работы с С++. Продукт С++ доступен для OS/2, Windows, AIX, OS/400, MVS (последние три пока проходят лабораторные испытания), а вскоре должна появиться версия для Macintosh.

    IBM также объявила о выпуске компиляторов и библиотек классов для MVS и OS/400, что заставляет задуматься о достоверности слухов о кончине мейнфреймов.

    Microsoft и Borland продолжают разрабатывать свои прежние структуры Microsoft Foundation Classes и BOCOLE (Borland Object Components OLE). Готовящаяся версия VC++ 4.0 предназначена в первую очередь для Windows 95 и OLE.

    Symantec разработала некоторые интересные возможности для рабочих групп, в частности NetBuild, использующий для создания исполняемых модулей свободные ЦПУ в сети. Watcom, несмотря на помощь родительской компании PowerSoft в разработке нового компилятора PowerBuilder, остается прежде всего компилятором для пуристов.

    SMALLTALK

    Поводом для толков среди знатоков Smalltalk стало слияние двух лидеров рынка, ParcPlace Systems (Саннивэйл, шт. Калифорния) и Digitalk (Санта-Анна, шт. Калифорния), в ParkPlace-Digitalk. Исторически коньком Digitalk была разработка высокопроизводительных клиентов, в то время как ParkPlace начала с создания приложений старшего класса для Unix и постепенно перешла к выпуску мощных приложений для Windows.

    По слухам, Digitalk возьмет на себя клиентскую часть, в то время как ParcPlace закончит инструмент для разработки сервера и обеспечит многоплатформную экспертизу.

    IBM также стремится к завоеванию позиций на рынке продуктов для Smalltalk. Одно появление VisualAge/Smalltalk и IBM Smalltalk в прошлом году привлекло пристальное внимание заказчиков.

    Разочарования не последовало. VisualAge/C++ заменяет компилятор Smalltalk на С++, но во всех иных отношениях это та же самая среда (версия Smalltalk появилась первой). Компоненты, разработанные в любом из продуктов, доступны для обеих сред благодаря System Object Model и Distributed SOM.

    Также на рынке продуктов для Smalltalk обратили на себя внимание относительно небольшие компании Quasar Knowledge Systems (Бетесда, шт. Мэрилэнд) и Easel (Берлингтон, шт. Массачусетс).

    Quasar выпускает агенты Smalltalk Agents, которые доступны только на Mac"ах и имеют интересные (во всяком случае нестандартные) библиотеку классов и интегрированную среду разработки. Easel приобрел Enfin несколько лет назад, а недавно выпустил Synchrony, систему автоматического проектирования и среду разработки. Продукты получили положительные отзывы, но рынка не завоевали.

    ВТОРОЕ ПРИШЕСТВИЕ COBOL"А?

    Этот динозавр в среде языков все еще жив, и думается, что миллиарды модулей высококритичных кодов на Cobol выйдут из употребления не так уж и скоро.

    Здесь наиболее существенное дополнение - объекты. Основные поставщики в этой области - MicroFocus (Пало-Альто, шт. Калифорния), IBM и Computer Associates - предлагают поддержку в соответствии со стандартом ANSI. Например, MicroFocus включила MicroFocus COBOL в пакет с Smalltalk/V компании Digital и оболочкой Smalltalk. Таким образом, вы можете вставить старый код в приложение Smalltalk. IBM и Computer Associates собственными силами и с посторонней помощью обеспечивают поддержку клиент-серверных баз данных.

    IBM добавила поддержку SOM и direct-to-SOM в версии COBOL. Если первая позволяет приложениям на COBOL использовать классы других языков (C, C++, Smalltalk, REXX), то вторая позволяет программистам на COBOL создавать классы для использования с другими языками.

    ВЕРШИНА КУЧИ?

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

    Трехзвенные системы разработки возвращают нас назад к ранее поставленному вопросу: где место для логики бизнеса? Если она находится на уровне клиента, всем пользователям в реконструируемой организации при любом изменении потребуются новые версии.

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

    Если логика находится на уровне сервера, то все это заканчивается переполнением сервера, огромным сетевым трафиком и, как правило, нестандартным кодом.

    Среди достойных кандидатов в трехзвенной категории назовем среду разработки Dynasty Development Environment от Dynasty Technology, New Era от Informix (Менло-Парк, шт. Калифорния), HPS от Seer Technologies (Кари, шт. Сев. Каролина) и Unify Vision от Unify (Сакраменто, шт. Калифорния).

    ENTERPRISE DEVELOPER

    При наличии других приносящих прибыль продуктов Semantic может позволить себе проводить более агрессивную ценовую политику. Так Enterprise Developer 2.0 стоит 795 долларов, а версия для групп Team - 3295 долларов.

    Большинство трехзвенных продуктов отделяют заложенную модель бизнеса от логики представления и логики баз данных. Для этого Enterprise Developer 2.0 использует масштабируемую архитектуру для больших предприятий (SCALE) (см. Рис.2 - Enterprise Developer 2.0 компании Symantec использует масштабируемую архитектуру для крупных предприятий при разделении логики бизнеса, представления и баз данных.).

    Проекты начинаются с определения модели бизнеса на множестве хранимых в репозитарии диаграмм сущность/отношение (Entity/Relation). Связи соединяют элементы этих диаграмм с базой данных, в результате чего появляется слой, упрощающий настройку приложений на изменения в базе данных.

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

    Репозитарий предоставляет сервисы управления транзакциями как часть клиента, однако Symantec намеревается выпустить версию для сервера до конца этого года. Готовящаяся версия будет содержать соединения для таких мониторов транзакций, как Tuxedo или Encina. Для составления большинства приложений вполне достаточно предлагаемых инструментов, однако на всякий случай имеются каналы к нескольким инструментам CASE.

    Формы могут наследовать базовые характеристики от таблиц стилей, обладающих мощью и элегантностью таблиц стилей текстовых редакторов. В самом деле, изменения в таблицах стилей приведут к изменениям в формах в реальном времени.

    Мастера для конструирования форм используют репозитарий для проверки правильности использования объектов; виртуальные (вычисляемые) элементы также определяются в репозитарии, а стало быть, не нужно никакого кода. Формы тоже хранятся в репозитарии и доступны для повторного использования при урегулировании прав доступа.

    Сравните эту структуру со структурой Visual Basic, Delphi или PowerBuilder, когда ассоциированный с формами код действует разрущающе по отношению к базе данных. В этих продуктах повторное использование практически невозможно, поддержка функциональности в таблицах стилей Enterprise Development весьма разнородна, а логика бизнеса определена строго внутри программного кода.

    FORTE

    Если ваша организация ищет инструмент для разработки трехзвенных приложений под Windows, Mac и Motif с доступом к нескольким серверам баз данных, мониторам обработки транзакций и брокерам запроса объектов при наличии мощного объектно-ориентированного 4GL с генерацией кода на C++, то вам не найти ничего лучше одноименного продукта Forte Software (при наличии 75000 долларов в кармане).

    Эта среда разработки была впервые замечена благодаря автоматическому гибкому разбиению приложений и устойчивости к ошибкам. При поддержке ряда крупных фирм и инвесторов Forte совершила мощный рывок в направлении разработки универсального инструмента для создания и обслуживания крупных высококритичных корпоративных приложений.

    В то время как репозитарий Enteprise Developer использует для хранения реляционную СУБД (РСУБД), Forte сделала шаг вперед и приобрела лицензию на объектно-ориентированную СУБД Gemstone компании (Бивертон, шт. Орегон). Это достойное решение, поскольку хранимая в репозитарии информация далека от тех столбцов и строк, что приняты в РСУБД. Пользователям потребуется время, чтобы научиться управлять новым типом сервера.

    Forte опирается на нестандартизованные реализации необходимых технологий для разработки продуктов в трехзвенной архитектуре: свои собственные сервисы управления кодом, брокер запроса объектов и инструменты типа CASE. Компания заявляет о готовности открыть коды для объединения отраслевых стандартов.

    КЛИЕНТ-СЕРВЕР ВКРАТЦЕ

    Вы наверняка уже поняли, что:

    1) число рабочих инструментов на рынке больше, чем когда либо прежде;

    2) клиент-серверная технология вовсе не манна небесная для молящих о ней;

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

    Клиент/сервер не панацея, но при определенном поведении и упорстве решительные приверженцы вполне могут достичь своих целей.


    Билл Лазарь - руководитель проекта и администратор базы данных в Drago (Тотова, шт. Нью-Джерси). Он один из соавторов руководства разработчика CA-Visual Objects от SAMS Publishing. С ним можно связаться через CompuServe по адресу: 73400.777.

    ПОВЕСТКА ДНЯ: КЛИЕНТ/СЕРВЕР

    АППЕТИТНАЯ АНАЛОГИЯ

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

    Два человека заходят в ресторан, где официант предлагает им меню. Посетители - это клиенты, меню - их внешний интерфейс, а официант и повара - сервер.

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

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