Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Компонентный подход к программированию и CASE-технологии.




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

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

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

 

Рис. 1.7. Взаимодействие программных компонентов различных типов.

 

По технологии COM приложение предоставляет свои службы, используя специальные объекты COM, которые являются экземплярами классов COM. Объект COM, как и обычный объект, включает поля и методы, но в отличие от обычных объектов, объект COM может реализовать несколько интерфейсов, обеспечивающих доступ к его полям и функциям. Это достигается за счет организации отдельной таблицы адресов метода для каждого интерфейса (по типу таблиц виртуальных методов). При этом интерфейс обычно объединяет несколько однотипных функций. Кроме этого классы COM поддерживают наследование интерфейса, но не поддерживают наследование реализации, т. е. наследуют код метода, хотя при необходимости объект класса потока может вызвать метод родителя. Каждый интерфейс имеет имя, начинающееся с буквы I, и глобальный уникальный идентификатор ID. Любой объект COM обязательно реализует интерфейс IUnknown. На схемах этот интерфейс всегда располагается сверху. Использование его позволяет получить доступ ко всем интерфейсам объекта.

Объект всегда функционирует в составе сервера – динамической библиотеки или исполняемого файла, который обеспечивает функционирование объекта.

Различают три типа серверов:

1). Внутренний сервер.

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

 

2). Локальный сервер.

Создается отдельным процессом (модулем .exe), который работает на одном компьютере с клиентом.

3). Удаленный сервер.

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

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

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

На базе технологии COM и DCOM были разработаны компонентные технологии, решающие различные задачи разработки ПО:

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

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

· Быстрое написание программного кода, так как все действия, связанные с организацией взаимодействия сервера и клиента на программное обеспечение COM, программирование сетевых приложений становится похожим на программирование самого компьютера;

· Открытость и мобильность. Сертификация технологии передана в OpenGroup, как основа открытого стандарта;

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

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

· Стандартность. Технология ActiveX основана на стандартах Internet (TCP/IP, Java, HTML) с одной стороны и стандартах, необходимых для сохранения совместимости (COM, OLE), с другой.



Платформа .NET

C# (произносится Си-Шарп) - это новый язык программирования от компании Microsoft. Он входит в новую версию Visual Studio - Visual Studio.NET.

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

Еще одна из причин разработки компанией Microsoft нового языка программирования - это создание альтернативы языку Java. Реализация Java у Microsoft не была лицензионно. Компания Sun, владелица Java, подала на Microsoft в суд, и Microsoft этот суд проиграла. Тогда Microsoft решила вообще отказаться от Java, и создать свой Java-подобный язык, который и получил название C#. Что будет с Java после выхода C# - пока неизвестно. Скорей всего эти языки будут существовать оба, хотя ясно, что одна из целей разработки C# - это противоборство именно с Java

Код, получаемый в результате компиляции программы, написанной на C# выполняется в среде NET Runtime. Среда выполнения NET Runtime основана не на ассемблере (т. е. не на коде, родном для процессора), а на некотором промежуточном коде. Отдаленно он напоминает виртуальную Java машину. Только если в случае Java был только один язык для виртуальной машины, то для NET Runtime таких языков может быть несколько. Теоретически программа для среды NET Runtime может выполняться под любой операционной системой, в которой NET Runtime установлена. Но на практике пока единственная платформа для этого - это Windows.

NET Runtime состоит из нескольких частей. Одна из них - это Common Language Runtime. Это, говоря кратко, это некоторый набор стандартов, которые должны поддерживать все языки платформы .NET. Например, в предыдущих версиях Visual Studio была такая проблема, что разные языки по-разному хранили данные одного по идее типа. Так, скажем, тип целого в Visual Basic'е занимал два байта, а в Visual C++ - четыре. А это порождало проблемы при совместном использовании языков. Common Language Runtime как раз в частности и определяет стандартные для все языков .NET типы данных. И уже есть гарантии, что целый тип в одном языке будет в точности соответствовать одноименному типу в другом.

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

Именно NET Runtime берет на себя некоторые рутинные функции. Например, в нем организована сборка мусора. И если раньше программисту приходилось самому освобождать объекты, созданные динамически, то теперь эту задачу берет на себя среда NET Runtime. Еще одно свойство среды NET Runtime - это проверка типов. Означает это вот что. Когда программа выполняется, то в принципе некоторой функции можно подсунуть параметр неправильного типа. Скажем вместо целого подставить действительное число или еще что-нибудь в этом роде. Языки типа C++ свои параметры функций не проверяют, в результате чего записанная переменная большего размера может повредить чужую область памяти и программа может просто рухнуть. Еще классический пример на эту тему - это выход за пределы массива. В NET Runtime же такого невозможно. NET Runtime

Существует несколько языков для NET Runtime. В настоящее время это C#, VB.NET и Visual C++. Кроме того фирма Borland объявила, что ее продукты C++ Builder и Delphi тоже будут поддерживать NET Runtime.










Последнее изменение этой страницы: 2018-05-27; просмотров: 261.

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