Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Компоненты и CASE-технология




Компонентный подход (с сере­дины 90-х годов XX в. до нашего времени) предпо­лагает построение программного обеспечения из отдельных компонентов - физически отдельно существующих частей программного обеспечения, ко­торые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую тех­нологию. На сегодня рынок объектов стал реальностью, так в Интернете су­ществуют узлы, предоставляющие большое количество компонентов, рекла­мой компонентов забиты журналы. Это позволяет программистам создавать продукты, хотя бы частично состоящие из повторно использованных частей, т. е. использовать технологию, хорошо зарекомендовавшую себя в области проектирования аппаратуры.

Компонентный подход лежит в основе технологий, разработанных на базе COM (Component Object Model - компонентная модель объектов), и тех­нологии создания распределенных приложений CORBA (Common Object Request Broker Architecture - общая архитектура с посредником обработки запросов объектов). Эти технологии используют сходные принципы и разли­чаются лишь особенностями их реализации.

Технология СОМ фирмы Microsoft является развитием техноло­гии OLE 1 (Object Linking and Embedding,— связывание и внедрение объек­тов), которая использовалась в ранних версиях Windows для создания состав­ных документов. Технология СОМ определяет общую парадигму взаимодей­ствия программ любых типов, библиотек, приложений, операционной сис­темы, т. е. позволяет одной части программного обеспечения использовать функции (службы), предоставляемые другой, независимо от того, функцио­нируют ли эти части в пределах одного процесса, в разных процессах на од­ном компьютере иди на разных компьютерах (рис. 1.7). Модификация СОМ, обеспечивающая передачу вызовов между компьютерами, называется DCOM (Distributed СОМ - распределенная СОМ).

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

Каждый интерфейс имеет имя, начинающееся с символа «I» и глобаль­ный уникальный идентификатор IID (Interface IDentifier). Любой объект СОМ обязательно реализует интерфейс IUnknown (на схемах этот интерфейс всегда располагают сверху). Использование этого интерфейса позволяет по­лучить доступ к остальным интерфейсам объекта.

 

Объект всегда функционирует в составе сервера — динамической библи­отеки или исполняемого файла, которые обеспечивают функционирование объекта. Различают три типа серверов:

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

• локальный сервер - создается отдельным процессом, который работает на одном компьютере с клиентом;

• удаленный сервер - создается процессом, который работает на другом
компьютере.

Например, Microsoft Word является локальным сервером. Он включает множество объектов, которые могут использоваться другими приложениями.

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

Взаимодействие клиента и сервера обеспечивается базовыми механиз­мами СОМ или DCOM, поэтому клиенту безразлично местонахождение объ­екта. При использовании локальных и удаленных серверов в адресном про­странстве клиента создается рrоху-объект - заместитель объекта СОМ, а в адресном пространстве сервера СОМ — заглушка, соответствующая клиенту. Получив задание от клиента, заместитель упаковывает его параметры и, ис­пользуя службы операционной системы, передает вызов заглушке. Заглушка распаковывает задание и передает его объекту СОМ. Результат возвращается клиенту в обратном порядке.

На базе технологии СОМ и ее распределенной версии DCOM были раз­работаны компонентные технологии, решающие различные задачи разработ­ки программного обеспечения.

OLE-automation или просто Automation (автоматизация) - технология создания программируемых приложений, обеспечивающая программируе­мый доступ к внутренним службам этих приложений. Вводит понятие диспинтерфейса (dispinterface) - специального интерфейса, облегчающего вы­зов функций объекта. Эту технологию поддерживает, например, Microsoft Excel, предоставляя другим приложениям свои службы.

ActiveX- технология, построенная на базе OLE-automation, предназна­чена для создания программного обеспечения как сосредоточенного на одном компьютере, так и распределенного в сети. Предполагает использование визуального программирования для создания компонентов - элементов уп­равления ActiveX. Полученные таким образом элементы управления можно устанавливать на компьютер дистанционно с удаленного сервера, причем ус­танавливаемый код зависит от используемой операционной системы. Это позволяет применять элементы управления ActiveX в клиентских частях приложений Интернет.

Основными преимуществами технологии ActiveX, обеспечивающими ей широкое распространение, являются:

• быстрое написание программного кода - поскольку все действия, свя­занные с организацией взаимодействия сервера и клиента берет на про­граммное обеспечение СОМ, программирование сетевых приложений становится похожим на программирование для отдельного компьютера;

• открытость и мобильность - спецификации технологии недавно были
переданы в Open Group как основа открытого стандарта;

• возможность написания приложений с использованием знакомых
средств разработки, например, Visual Basic, Visual C++, Borland Delphi,
Borland C++ и любых средств разработки на Java;

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

• стандартность - технология ActiveX основана на широко используемых стандартах Internet (ТСРЯР, HTML, Java), с одной стороны, и стандар­тах, введенных в свое время Microsoft и необходимых для сохранения совместимости (COM, OLE).

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

MIDAS (Multitier Distributed Application Server - сервер многозвенных распределенных приложений) - технология, организующая доступ к данным разных компьютеров с учетом балансировки нагрузки сети.

Все указанные технологии реализуют компонентный подход, заложен­ный в СОМ. Так, с точки зрения СОМ элемент управления ActiveX - внут­ренний сервер, поддерживающий технологию OLE-automation. Для програм­миста же элемент ActiveX - «черный ящик», обладающий свойствами, мето­дами и событиями, который можно использовать как строительный блок при создании приложений.

Технология СORBА, разработанная группой компаний OMG (Object Management Group — группа внедрения объектной технологии про­граммирования), реализует подход, аналогичный СОМ, на базе объектов и интерфейсов CORBA. Программное ядро CORBA реализовано для всех ос­новных аппаратных и программных платформ и потому эту технологию можно использовать для создания распределенного программного обеспечения в гетерогенной (разнородной) вычислительной среде. Организация взаимо­действия между объектами клиента и сервера в CORBA осуществляется с помощью специального посредника, названного VisiBroker, и другого специ­ализированного программного обеспечения.

Отличительной особенностью современного этапа развития технологии программирования, кроме изменения подхода, является создание и внедре­ние автоматизированных технологий разработки и сопровождения про­граммного обеспечения, которые были названы CASE-технологиями (Computer-Aided Software/System Engineering - разработка программного обеспечения/программных систем с использованием компьютерной под­держки). Без средств автоматизации разработка достаточно сложного про­граммного обеспечения на настоящий момент становится трудно осуществи­мой: память человека уже не в состоянии фиксировать все детали, которые необходимо учитывать при разработке программного обеспечения. На сего­дня существуют CASE-технологии, поддерживающие как структурный, так и объектный (в том числе и компонентный) подходы к программированию.

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




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


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


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



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




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