Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Замечание




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

Важно

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

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

 

Технология COM/DCOM

Технология COM (Component Object Model) и ее вариант для распределенных систем DCOM (Distributed Component Object Model) была разработана компанией Microsoft. DCOM является расширением технологии СОМ и включает в себя среду распределенных вычислений DCE (Distributed Computing Environment) и механизм удаленного вызова процедур (RFC — Remote Procedure Calling).

Философия СОМ заключается в следующем: программа-клиент использует при своей работе объект (объекты) некоторой другой программы (сервера) так, словно эти объекты являются частью самого клиента. Основную роль при этом играет интерфейс объектов. Под интерфейсом объекта подразумевается поименованное множество функционально связанных методов (операций) объекта. Интерфейс может формироваться, как правило, при помощи IDL (Interface Definition Language), специального C++ — подобного языка описания интерфейсов. Клиент получает именно интерфейс затребованного объекта. Сервер же представляет собой программу, содержащую, кроме всего прочего, еще один или несколько объектов СОМ. Сервер СОМ может создавать реализации объектов из нескольких классов, каждый из которых представляет различные варианты поведения объекта. СОМ-клиент взаимодействует с СОМ-сервером через указатель на интерфейс и использует этот указатель для вызова методов сервера.

При этом клиент и сервер могут сосуществовать и взаимодействовать тремя различными способами.

1. Клиент и сервер исполняются на одном компьютере в рамках единого процесса (рис. 4.3). Именно такой вариант реализован в Windows 98. Именно так Delphi строит программы, использующие ActiveX-компоненты. В этом случае сервером СОМ- объектов является некоторая dll-библиотека. Взаимодействие между клиентом и сервером происходит при помощи интерфейса объекта в едином адресном пространстве.

Рис. 4.3. Клиент и сервер СОМ в одном процессе

2. Клиент и сервер запускаются на одной машине в рамках разных процессов (рис. 4.4). Это тоже имеет место при функционировании Windows 98. Однако подобный способ более часто встречается при инкапсуляции (встраивании) объектов одних программ в другие (вставка объекта в Microsoft Word, например). Здесь между клиентом и сервером имеется два промежуточных звена. На стороне клиента функционирует объект Proxy. Его задача — при обращении клиента к СОМ-объекту формировать пакет вызова к серверу, а также принимать данные от сервера и реализовывать, таким образом, интерфейс объекта. Объект Proxy является уполномоченным агентом сервера в среде клиента. В адресном пространстве сервера работает другой посредник — stub (переводится по-разному: заглушка, приемник, поглотитель), stub принимает запросы от одного или нескольких клиентских объектов Proxy, помещает их в стек и вызывает нужные методы объектов на сервере, а затем отправляет клиенту полученный результат.

Рис. 4.4. Клиент и сервер СОМ в разных процессах одной машины

3. Клиент и сервер — разные программы на различных компьютерах в составе сети (рис. 4.5). Причем эти компьютеры могут быть аппаратно несовместимы и работать под управлением различных операционных систем. Этот вариант, очевидно, и представляет собой технологию DCOM. Передача данных между компьютерами происходит путем использования стандартных протоколов, например TCP/IP.

Рис. 4.5. Технология DCOM

Таким образом, становится очевидным, что DCOM являет собой типичный пример двухзвенной распределенной архитектуры. При этом он обладает всеми достоинствами и недостатками подобной архитектуры.

СОМ содержит все элементы, необходимые для построения распределенной системы:

  • технологию удаленного вызова методов (как статических, так и динамических);
  • базы данных серверных объектов (библиотеки типов), которые могут быть импортированы для анализа структуры серверов СОМ;
  • универсальный протокол обмена между клиентами и серверами;
  • спецификации так называемых "составных документов" (ActiveDoc);
  • объектный монитор транзакций (MTS);
  • компонентную модель (ActiveX) и др.

Все составные части прекрасно соответствуют друг другу в рамках модели СОМ. Уникальной возможностью СОМ является универсальная технология доступа к базам данных — OLE DB/ADO.

Потенциально технологию СОМ могут поддерживать самые различные языки программирования. Добавление некоторых расширений, библиотек или мастеров в систему разработки позволит использовать для работы с СОМ любой язык программирования. В настоящий момент наиболее широко используются, как правило, Visual Basic, C++ и Delphi. Серьезные проблемы возникли пока лишь при использовании языка Java. Компания Microsoft добилась прекрасного взаимодействия Java с СОМ только путем отказа от переносимости таких Java-программ на другие виртуальные машины Java. Вообще, следует отметить, что уровень стандартизации для СОМ достаточно слаб.

Технология СОМ реализована на высоком уровне абстракции — все вопросы низкого уровня, такие как взаимодействие с операционной системой или сетевыми средствами, спрятаны от прикладного программиста. Таким образом, реализуются свойства сетевой прозрачности, аппаратной независимости и независимости от операционных систем.

Компонентная модель Microsoft, базирующаяся на СОМ-технологии, в своей основе имеет двоичную структуру объектов. Это не вызывает никаких проблем при ориентации на одну платформу и операционную систему. Безусловным достоинством такой модели является простота создания компонентов с использованием различных языков программирования. С другой стороны, такая компонентная модель неизбежно связана с определенными ограничениями и недостатками, в частности в разрезе межплатформенного взаимодействия.

Эта технология предусматривает возможность создания локальной базы данных, хранящей информацию о СОМ-объектах, их интерфейсах, методах и т. д. для сервера приложений СОМ. Такая база данных называется библиотекой типов (type library). Использование библиотек типов не является обязательным для OLE, хотя это необходимо в технологии ActiveX. Для получения информации из библиотеки типов пользователь должен явно импортировать ее, для чего необходимо выбрать соответствующую запись реестра Windows на конкретном компьютере.

Обычно объявления на языке IDL при работе с СОМ не являются существенной частью спецификации проекта, т. к. IDL-спецификации играют вспомогательную роль в СОМ- технологии вследствие ее базирования на двоичном стандарте объектов. Кроме того, язык Microsoft IDL не очень развит с точки зрения объявления типов данных, из которых строится программа.

Объекты СОМ всегда рассматривались (и продолжают рассматриваться) как серверные объекты, которые просто реализуют тот или иной набор методов. Различные объекты, реализующие один и тот же интерфейс и созданные с помощью обращения к одной и той же библиотеке классов, не отличаются друг от друга. Объектная ссылка, которую получает клиент, является указателем на интерфейс и при этом не содержит информации о конкретном объекте. Другими словами, СОМ оперирует объектами, не имеющими состояния. В общем случае, если клиент, используя одну и ту же объектную ссылку, в цикле вызвал десять раз один и тот же метод, то он не может быть уверен, что он обратился к одному, а не к двум, пяти или десяти различным объектам. Естественно, объекты без состояния не имеет смысла хранить дольше, чем существует сервер приложений, в котором они были созданы. Такие объекты применительно к распределенным системам называются временными (transient). СОМ-объект — это конкретная переменная C++, Visual Basic или Pascal, находящаяся в оперативной памяти и существующая, пока работает создавший ее сервер приложений. Она может быть создана по запросу клиента или заранее (например, с помощью Microsoft Transaction Server — MTS). Задача программиста — при работе с СОМ сопоставить с объектом какое-либо состояние. Этого можно добиться различными способами:

  • использование определенного режима создания объектов (необходим выбор модели управления потоками);
  • хранить состояние объекта на стороне клиента (если это возможно);
  • использовать специальные ключи — метки состояния объекта. Каждый из этих способов имеет очень существенные ограничения.

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

COM/DCOM демонстрирует очень высокую производительность. Разумеется, производительность существенно зависит от того, какой способ — статический или динамический — вы используете.

Проблемы обеспечения масштабируемости не были заложены в фундамент технологии, и поэтому существенным препятствием для создания масштабируемых приложений является очень жесткая связь между клиентом и сервером (объект, т. е. совокупность ресурсов на сервере, не может быть удален, пока клиент явно не укажет, что этот объект больше не нужен). В реальных проектах необходимо управлять состоянием объектов, и это затрудняет создание масштабируемых приложений, т. к. это обязанность не технологии СОМ, а программиста. Сильной стороной СОМ является гибкая модель управления потоками. Основным инструментом, повышающим уровень масштабируемости СОМ-систем, является MTS.

Устойчивость к сбоям СОМ-систем находится на не слишком высоком уровне, в том числе из-за уже упомянутой излишне жесткой привязки клиентов и серверов друг к другу. Основным средством обеспечения устойчивости к сбоям (оно же средство управления нагрузкой серверов) является диспетчер, который позволяет перенаправлять вызовы клиента на различные серверы приложений СОМ.

Сервером транзакций в СОМ является MTS. Сервер приложений СОМ должен быть написан в специальном стиле для того, чтобы иметь возможность взаимодействовать с MTS. MTS позволяет достаточно гибко управлять режимами выполнения транзакций в системе и поддерживает двухфазное завершение транзакций. Одним из существенных недостатков схемы управления транзакциями СОМ является необходимость явной передачи контекста транзакции в качестве -аргумента при вызове удаленных методов. Такая схема не является ни эффективной, ни гарантирующей от ошибок, особенно при вовлечении в транзакцию большого количества объектов.

В настоящий момент система безопасности СОМ базируется на системе безопасности Windows NT/Windows 2000. Кроме того, предусмотрена защита данных при их передаче с использованием Socket Security Layer (SSL). Отдельная проблема — обеспечение безопасности при передаче компонентов ActiveX с использованием протокола HTTP. Здесь используется система электронных подписей, лицензий, сертификатов. Клиент может выполнять код только того компонента, который пришел с авторизованного сервера.

Основой взаимодействия через Интернет при работе с DCOM являются расширения возможностей протокола HTTP, выполненные Microsoft. Браузеры Microsoft (Internet Explorer 3.0 и выше) позволяют выполнять код ActiveX-компонентов, полученных с Web-серверов.

Кроме того, необходимо отметить, что технология DCOM изначально ориентировалась на системы, построенные на базе операционных систем Windows, и поэтому она как нельзя лучше подходит для создания распределенных систем именно на основе продуктов Microsoft (например, Windows 98 целиком реализована на основе технологии СОМ). В этом плане СОМ является замкнутой и "самодостаточной" системой. Если вы желаете решить свои проблемы, используя функциональность Microsoft Office, то СОМ как нельзя лучше подходит для этих целей. СОМ-приложения способны функционировать только под управлением Windows. Ни ActiveX, ни сервер транзакций MTS не способны работать нигде, кроме этой платформы.

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

Таким образом, технологию COM/DCOM можно порекомендовать для построения распределенных систем среднего масштаба, с не очень большим числом узлов, и других систем с некритичными нагрузками.

 

CORBA

CORBA (Common Request Broker Architecture) — архитектура для построения распределенных объектных приложений. Была предложена некоммерческой организацией — консорциумом OMG (Object Management Group), состоящей из нескольких сотен (!) ведущих компаний из отрасли разработки программного обеспечения (включая таких гигантов, как Microsoft и Borland/Inprise). Первая спецификация CORBA появилась еще в далеком 1991 году.

Целью разработчиков CORBA было создание механизмов межплатформенного взаимодействия приложений в распределенных системах. Можно поразиться дальновидности OMG — ведь в середине — конце 80-х годов XX века распределенные системы не играли той впечатляющей роли в компьютерной индустрии, как сейчас. Кроме того, расширение экспансии Intel и Microsoft ставило под угрозу само наличие разнообразия аппаратно-программных платформ. Тем не менее, в сложившейся обстановке работы были продолжены, причем результаты были настолько успешны, что даже всемогущий Microsoft счел нужным присоединиться к консорциуму разработчиков, чтобы держать руку на пульсе развития новой перспективной технологии.

Как и DCOM, CORBA основывается на коммуникации типа клиент-сервер. Запрашивая сервис, клиент вызывает метод, реализуемый удаленным объектом, действующим в роли сервера. Сервис, предоставляемый объектом, инкапсулируется с помощью интерфейса, определенного на языке IDL. Именно собственный язык IDL является одной из изюминок CORBA. Вообще, существуют три различных языка описаний под одним и тем же названием: OMG IDL (очевидно, используется в CORBA), Microsoft IDL (разработан для технологии DCOM, но в силу двоичного представления объектов не играет в этой технологии ключевой роли) и OSF IDL. Однако, по сравнению с DCOM, CORBA имеет ряд существенных отличий.

Технология CORBA изначально проектировалась для создания распределенных систем. В силу этого сервер объектов и клиентские программы, в отличие от COM/DCOM, в технологии CORBA, как правило, располагаются на разных машинах. Взаимодействие между клиентом и сервером происходит следующим образом. В процессе клиента имеется объект-посредник, именуемый stub (или Client-Side Stab). Он является полномочным представителем сервера и исполняет функции, во многом сходные с функциями объекта Proxy в технологии DCOM. Именно к stub при помощи интерфейса объекта обращается программа-клиент так, как будто stub и являет собой объект. Далее stub перенаправляет запрос клиента к особому объекту, который действует также на машине клиента. Этот объект называется ORB (Object Required Broker, брокер объектных запросов). Получив запрос, ORB формирует широковещательное сообщение во внешнюю сеть. На это сообщение откликается один из объектов Smart Agent, который функционирует на одном из компьютеров сетевого окружения (локальная сеть или Интернет). Smart Agent знает, где расположены соответствующие серверы объектов (фактически это как бы виртуальный сетевой каталог, где зарегистрированы некоторые серверы), и перенаправляет запрос на нужный сервер. На сервере пакет запроса принимает еще один объект ORB, который дешифрует запрос и пересылает его следующему объекту — BOA (Basic Object Adapter, базовый адаптер объектов). Роль объекта BOA заключается в фильтрации, кэшировании запросов и, соответственно, разграничении доступа к объекту сервера. Если запрос пропущен BOA, то он попадает в объект сервера skeleton. При этом в адресном пространстве сервера создается требуемый объект, skeleton помещает аргументы вызова в стек объекта и реализует собственно вызов. Используя объект BOA, skeleton также регистрирует созданный серверный CORBA-объект с помощью Smart Agent, а также сообщает о доступности, факте создания и о готовности объекта принимать запросы клиента. Далее следует обратная связь по описанной цепочке объектов (рис. 4.6).

Рис. 4.6. Технология CORBA

Как видно из описания, CORBA реализует собой типичную многозвенную (здесь — трехзвенную) архитектуру. В роли Middleware — программного обеспечения промежуточного слоя — здесь выступает объект Smart Agent. Обычно при практической реализации программа, выполняющая Действия Smart Agent, устанавливается на выделенную машину в корпоративной сети или на несколько машин в сети Интернет. При создании серверов они регистрируются на ДОСТУПНЫХ Smart Agent.

CORBA значительно более строго и формально подходит к механизмам обмена и передаче данных. Передача данных между компонентами ORB и smart Agent происходит при помощи специального протокола UDP (Ultrawide Data Protocol), который загружает сеть значительно меньше, чем протокол TCP/IP — тем самым происходит некоторая экономия системных ресурсов.

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

Благодаря трехзвенной архитектуре и наличию развитого языка создания интерфейсов IDL, технология CORBA позволяет создавать истинные кросс-платформенные информационные системы. Клиентские программы, программное обеспечение Middleware и серверы могут работать на разных аппаратных платформах под управлением различных операционных систем. В языке OMG IDL, лежащем в основе CORBA, представлены даже некоторые возможности объектно-ориентированного программирования, такие как: инкапсуляция данных, полиморфизм и наследование. IDL CORBA поддерживает множественное наследование. Для достижения тех же целей DCOM позволяет объекту иметь несколько интерфейсов. OMG IDL также позволяет определить исключения. В то же время не стоит понимать IDL как язык программирования. В нем целиком и полностью отсутствуют какие-либо вычислительные функции. Это исключительно язык описаний. Именно это и позволяет легко производить отображение конструкций IDL на языки программирования клиентского ПО и достигнуть межплатформенного взаимодействия (двоичный интерфейс объектов СОМ фактически препятствует переносу данной технологии из среды Windows на другие платформы). Пример описания интерфейса билетной кассы кинотеатра приведен в листинге 4.1.

Листинг 4.1. Пример описания интерфейса на языке IDL

Struct Place

{

char row;

unsigned long seat

};

interface Office

{

readonly attribute unsigned long NumOf Seats

float GetPrise (in Place chosen Place)

}

Как видно из листинга, синтаксис IDL очень похож на синтаксис C++.

Еще одним важным достоинством CORBA является полностью объектная структура технологии. Понятие "объекта" в CORBA принципиально отличается от своего СОМ-аналога. Объект CORBA не является переменной языка программирования и в общем случае время его существования не связано со временем работы серверных или клиентских приложений. CORBA-объект не занимает никаких ресурсов компьютера — оперативной памяти, сетевых ресурсов и т. п. Эти ресурсы использует только так называемый servant ("сервант"), который является "инкарнацией" одного или нескольких CORBA-объектов. Именно сервант является переменной языка программирования. Пока не существует сервант, сопоставленный с конкретным объектом CORBA, этот объект не может обслуживать вызовы клиентов, но, тем не менее, он существует. Результатом создания объекта (при этом совершенно не обязательно, что создается и сопоставляется с этим объектом соответствующий сервант) является так называемая "объектная ссылка" CORBA, которая сопоставлена с этим, и только с этим объектом, и это сопоставление остается корректным в течение всего срока существования CORBA-объекта. Объектная ссылка CORBA правильно интерпретируется ORB от любого производителя программного обеспечения. После уничтожения CORBA-объекта все объектные ссылки на него навсегда теряют смысл. С помощью объектной ссылки клиент вызывает методы объекта, при этом инкарнациями этого объекта могут быть различные серванты (но не более одного одновременно), которые физически могут находиться даже на различных компьютерах. Все CORBA-объекты, в отличие от технологии СОМ, не обезличены, а создаются с параметром, задающим имя для их экземпляров. Это позволяет клиенту найти конкретный экземпляр объекта по имени. Клиент, который при попытке подключиться к объекту не указывает его имя, получит ссылку на произвольный экземпляр запрашиваемого объекта с любого сервера в сети. Такой вариант удобен, когда в CORBA-системе имеется механизм балансировки загрузки серверов. Возможна организация "долгоживущих объектов", информация о создании и функционировании которых сохраняется, и такие объекты можно возродить после перезапуска сервера объектов или на другом подобном сервере объектов. Именно долгоживущие объекты регистрируются при помощи BOA в службах smart Agent. Именно такие объекты нуждаются в уникальных идентификаторах. Наряду с долгоживущими объектами возможно существование так называемых транзистентных или временных объектов, которые живут только в течение того или иного процесса и прекращают свое функционирование с прекращением работы породившего их сервера. Объект СОМ может рассматриваться как достаточно примитивный частный случай объекта CORBA — как по своим возможностям, так и с точки зрения его цикла жизни.

CORBA имеет очень развитую сервисную часть. Только для поиска серверных объектов по различным критериям можно использовать 4 различных сервиса CORBA. OMG стремится к максимальной стандартизации вспомогательных возможностей CORBA.

CORBA имеет аналог библиотеки типов СОМ — это так называемый Репо-зитарий Интерфейсов (Interface Repository). Чтобы оценить принципиальную разницу в подходе CORBA по сравнению с СОМ, достаточно сказать, что ' Репозитарий Интерфейсов CORBA сам представляет собой объект CORBA со всеми вытекающими из этого возможностями. Помимо Репозигария Интерфейсов, CORBA использует Репозитарий Реализаций (Implementation Repository), который представляет собой базу данных, содержащую информацию о серверах приложений CORBA.

В отличие от COM, CORBA с самого начала рассматривалась как технология создания масштабируемых систем. Разделение собственно объектов CORBA и их сервантов, схемы соответствия между ними, характеристики объектных адаптеров, модели управления потоками и соединениями, схемы активации серверов приложений, универсальные решения по сохранению состояния объектов, автоматическое управление контекстом транзакций и безопасности — все это очень способствует решению данной проблемы.

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

Управление транзакциями берет на себя так называемый Сервис Управления Транзакциями CORBA (Object Transaction Service, OTS). Он является существенно более гибкой, продуманной и формализованной системой, чем MTS в технологии COM/DCOM, и содержит все необходимое в рамках CORBA-модели. Серверы приложений CORBA и OTS запускаются и работают независимо друг от друга. Важной особенностью CORBA является тесное взаимодействие OTS и ORB, что обеспечивает автоматическое распространение контекста транзакций в многопоточной распределенной среде. Спецификация CORBA предусматривает (необязательную) поддержку вложенных транзакций.

Работа над Сервисом Безопасности CORBA (Security Service) продолжалась в течение 2 лет, спецификация была принята в 1996 г. Сервис безопасности позволяет обеспечить уровень безопасности В2 (уровень, близкий к высшему уровню защиты, который используется в государственных учреждениях). Предусмотрена идентификация пользователя, списки прав доступа к ресурсам, система аудита и многое другое. Особенно приятно, что разработчик не должен явно взаимодействовать с этим сервисом — это задача для ORB. Основная нагрузка возложена на системных администраторов.

Спецификации CORBA не оговаривают использование Интернета в качестве особого случая. Интеграция CORBA и Интернета выполняется естественным образом — за счет использования протокола ПОР (Interner/Intranet Object Protocol), построенного поверх TCP/IP. URL-имена могут быть использованы в качестве имен для службы именования CORBA. На практике производители программного обеспечения предоставляют расширения CORBA, упрощающие работу с Интернетом (VisiBroker URL Naming Service) или решающие те или иные проблемы — например, "обход" ограничений, накладываемых на апплеты Java, используемых в качестве CORBA-клиентов (например, Borland/Visigenic GateKeeper).

Скорость и удобство разработки CORBA-систем сильно зависит от используемой технологии. До недавнего времени традиционным способом создания распределенных систем, основанных на CORBA, являлось использование Java-технологий — Enterprise JavaBeans и так называемых Application Server, например, BEA WebLogic и Inprise Application Server. Использование этих технологий позволяет чрезвычайно быстро создавать высокоэффективные, масштабируемые, транзакционные серверы приложений. Клиентская часть таких систем может быть написана на любом языке программирования, поддерживающим объекты CORBA. Поддержка технологии CORBA появилась с выходом четвертой и была существенно расширена в пятой версии популярного средства программирования Delphi фирмы Borland/Inprise. Это дало еще один мощный и очень популярный инструмент разработки распределенных информационных систем. Delphi 5 поддерживает все необходимые CORBA-компоненты, а также включает детально разработанную справочную систему (правда, на английском языке) по объектам CORBA. Все это, включая удобства самого Delphi, как системы разработки приложений, делает процесс создания CORBA-приложений исключительно быстрым и удобным.

В качестве недостатков технологии CORBA обычно приводят ее чрезмерную сложность. Действительно, двухзвенная архитектура DCOM несколько проще. Программисту, использующему CORBA, необходимо знать большое количество интерфейсов из различных сервисов, правильно использовать возможности объектных адаптеров и многое другое. Поскольку CORBA использует различные схемы отображения IDL на разные языки программирования, то разработчику в общем случае надо знать их особенности для наиболее широко используемых языков. Сложность CORBA является закономерной платой за ее огромные возможности в плане надежности, безопасности, масштабируемости и межплатформенного взаимодействия.

 

Сравнительный анализ

Технология CORBA носит существенно более общий, передовой и универсальный характер, чем COM/DCOM, что заложено в ее фундаменте. Тем не менее, DCOM и CORBA демонстрируют примерно одинаковую, очень высокую производительность. Выбор той или иной технологии диктуется характеристиками проектируемой информационной системы. Для создания распределенных систем малого и среднего масштаба, функционирующих под управлением Microsoft Windows (такая система наиболее соответствует потребностям большей части предприятий СНГ), лучше всего подходит технология DCOM. Здесь главный выигрыш состоит в относительной простоте и отлаженности технологии. Кроме того, в этом случае появляется возможность использования всей мощи и функциональности Microsoft Office и других продуктов Microsoft. При разработке среднемасштабных и крупных информационных систем, особенно таких, в которых компоненты могут быть удалены на значительные расстояния, и/или работать на разных аппаратно-программных платформах, а также систем, нуждающихся в высокой степени надежности, рекомендуется использовать CORBA, т. к. даваемые этой технологией преимущества с лихвой компенсируют некоторую сложность разработки и сопровождения приложений.

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

ГЛАВА 5


Информационная система фирмы "Два кирпича"

  • Определение целей ИС
  • Постановка задач
  • Функциональная модель работы фирмы
  • Анализ ИС с помощью вариантов использования.
  • Структурные элементы диаграммы вариантов использования
  • Покупатель стройматериалов
  • Отделы фирмы
  • Варианты использования системы
  • Промежуточные итоги
  • Уточнение диаграммы вариантов использования
  • Варианты использования клиентами фирмы
  • Варианты использования сотрудниками фирмы
  • Использование диаграмм классов
  • Структура диаграммы классов
  • База данных ИС фирмы "Два кирпича"
  • Диаграмма сайта
  • Подведение итогов

 

Для иллюстрации материала, излагаемого в книге, рассмотрим Интернет-ориентированную ИС малого предприятия "Два кирпича".

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

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

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

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

 

Определение целей ИС

При проектировании ИС и последующей ее программной реализации будем преследовать следующие цели:

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

Все эти цели будем реализовывать, создавая единую информационную систему, которая будет работать на основе Web-интерфейсов.

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

 

Постановка задач

На основании анализа поставленных целей определим основные задачи ИС.

1. Разработать БД, в которой будет храниться информация о продаваемых товарах.

2. Обозначить группы пользователей ИС.

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

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

На основании анализа поставленных задач будем вырабатывать конкретные рекомендации по их реализации, которые затем выстроятся в технологические требования проекта ИС.

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

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

 

Функциональная модель работы фирмы

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

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

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

Итак, перейдем к анализу ИС.

 

Анализ ИС с помощью вариантов использования

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

Рис. 5.1. Диаграмма вариантов использования

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

Благодаря тому, что диаграмма отображает варианты использования системы, из ее анализа мы сможем выделить ключевые направления дальнейшего уточнения процессов, которые должна будет обслуживать ИС.

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




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 583; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.107 сек.