Смекни!
smekni.com

Автоматизированная система управления документооборотом центральной заводской лаборатории. Подсистема регистрации и сопровождения заказов на испытания (стр. 3 из 10)

1.2.3.6 Интерфейс приложений

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

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

Для того чтобы разработчик мог использовать программные инструменты от различных производителей (например, Java, C++, Delphi и т.п.) для определения интерфейсов распределенных объектов применяется специальный язык определения интерфейсов IDL. Для разных стандартов (CORBA, DCOM, DCE) этот язык несколько отличается, но главный его смысл – он нужен для однозначного определения интерфейса взаимодействия модулей между собой.

1.2.3.7 Гранулированность информационной системы

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

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

1.2.3.8 Минусы трехзвенных архитектур

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

– непроработанность архитектуры;

- тяжелые в реальности решения;

- несоответствие с уже имеющимися технологиями;

- неустойчивость версий стандартов, а, следовательно, потенциальная несовместимость;

- недоразвитость инструментов (неудобство, ошибки);

- неоправданная дороговизна средств (или обучения специалистов, или высокая цена администрирования).

Рассмотрим два основных вида объектных архитектур DCE и DCOM. DCE – это распределенная архитектура появившаяся раньше DCOM.

Исходная UNIX-ориентированность технологии DCE, ее некоторая громоздкость, ее ориентированность только на язык С, отсутствие системы управления приложениями – это очевидные минусы.

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

DCOM – закрытая архитектура с закрытым протоколом. Может использоваться только в рамках данной реализации, соотношения между объектными сервисами обладают очевидными недостатками. Производителем DCOM является компания Microsoft.

Но недостатки архитектуры так же, как и в случае DCE, можно исправить удачно сделанными продуктами. Inprise MIDAS вносит необходимую гибкость в архитектуру, снабжая ее необходимым инструментарием и утилитами.

1.2.3.9 Тонкие и толстые клиенты

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

Тонким клиентом называют также и стандартные internet‑клиенты, которые в интрасетях действительно занимаются только отображением / представлением данных, хотя и не являются объектами, соответствующими архитектурам DCE, CORBA, DCOM. Эти два типа клиентов различаются не столько по объему кода, сколько по способу их применения в течение жизни информационной системы. Трехзвенная архитектура предназначена для того, чтобы внести расширяемость и масштабируемость в информационные системы. Системы, которым нужны эти качества, никогда не бывают полностью завершены, и в течение жизненного цикла всегда подвергаются изменениям. Тонкие клиенты первого типа также подвергаются изменениям с изменениями системы и, должны время от времени заменяться новыми, более модифицированными версиями. Тонкие клиенты второго типа (ультратонкие) могут не заменяться в течение жизненного цикла системы, поэтому обслуживание интранет-системы несравненно проще трехзвенной системы, построенной без применения стандартных тонких клиентов. В принципе, никакого противоречия тут нет, и можно было бы построить ультратонкого клиента и для DCE, CORBA, DCOM.

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

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

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

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

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

1.3 Анализ средств программирования

На сегодняшний момент существует большое количество языков программирования с различными возможностями и функционалом. В процессе обучения был изучен язык программирования С++, поэтому было принято решение вести разработку системы на С++ или родственном ему языке. Язык C++ – это универсальный язык программирования, для которого характерны экономичность выражения, современный поток управления и
структуры данных, богатый набор операторов. Язык C++ не является ни языком «очень высокого уровня», ни «большим» языком, и не предназначается для некоторой специальной области применения, но отсутствие ограничений и общность языка делают его более удобным и эффективным для многих задач, чем языки, предположительно более мощные.

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

Проведем сравнительный анализ основных сред разработки на С++:

1.3.1 BorlandC++ Builder

BorlandC++ Builder– очень мощная интегрированная среда программирования. Вместо отдельного инструментария, оперирующего визуальными элементами управления, в C++ Builder интегрирована так называемая палитра компонент, разделенная картотечными вкладками на несколько функциональных групп. Функциональные возможности поставляемых компонент можно достаточно просто модифицировать, а также разрабатывать компоненты, обладающие совершенно новым поведением.

Система содержит библиотеку из более 100 визуальных компонент. Помимо известных элементов управления Windows (кнопки, линейки прокрутки, поля редактирования, простые и комбинированные списки и т.д.) библиотека содержит новые компоненты поддержки диалогов, обслуживания баз данных и многие другие.

Опытным C++ программистам нравится синтаксис и структура кода разрабатываемых на C++ Builder программ, хотя его графическое обрамление заметно отличается от традиционных оболочек систем разработки. C++ Builder поддерживает основные принципы объектно-ориентированного программирования – инкапсуляцию, полиморфизм и множественное наследование, а также нововведенные спецификации и ключевые слова в стандарте языка.

1.3.2 MicrosoftVisualC++