Опубликован: 24.11.2006 | Уровень: специалист | Доступ: платный
Лекция 1:

Программирование для интернета с использованием COM

Лекция 1: 12345678910 || Лекция 2 >
Ключевые слова: component, object model, COM, Windows, программное обеспечение, Visual Basic, ASP, DCOM, администрирование, IIS, HTTP, программа, архитектура, программирование, DLL, файл, IDL, среда разработки, IDE, пользователь, диалоговое окно, new, project, OPEN, элементы управления, standard, тестовая программа, control, объект, высота, класс, пара функций, отображение, значение, компонент, модульное тестирование, ключ команды, транзакция базы данных, cлужба, server application, network service, MTS, installation wizard, браузер, сервер, 'stress', application, center, visual, net, enterprise, edition, сценарий, консоль, хранение данных, упорядочивание данных, XML, форматирование, цикл разработки, анализ, завершение процесса, наследование, Java, функция, команда, интерфейс, дочерний класс, HTML, вывод, интерфейс объекта, service type, технология ODBC, базовая технология, MDAC, activex data object, BOF, конкатенация, производительность, call time, обобщение, XSL, XSLT, приложение, подпрограмма, лист, WWW, w3c, поиск

Модель компонентных объектов (Component Object Model, COM) – это спецификация, разработанная компанией Microsoft для построения программных компонентов, используемых приложениями или программами Windows для расширения своих функциональных возможностей. С помощью COM программное обеспечение, написанное на одном языке (например, на C++), может работать с программой, написанной на другом языке (скажем, на Visual Basic), без перекомпиляции программных компонентов. Это означает, что динамически подключаемую библиотеку, разработанную в C++, можно вызывать из исполняемого файла, написанного на Visual Basic. При работе с активными серверными страницами (ASP) VBScript может вызвать функцию из объекта COM, созданного при помощи языка VB, C++ или любого другого. Веб-разработка с использованием технологии COM осуществляется посредством вызова в ASP функций, расположенных в COM-объектах.

Аббревиатура DCOM означает Distributed Component Object Model (Распределенная модель компонентных объектов). Эта модель функционирует аналогично COM с точки зрения построения и работы с программой, а отличается только способом применения и конфигурацией сервера. DCOM потребляет объекты COM, расположенные на других физических узлах.

Примечание. Термин "потребление" часто используется, когда речь идет о вызове программного обеспечения динамически подключаемой библиотеки (DLL) или другой библиотеки. Этот термин появился в результате изменения терминологии "клиент-сервер", описывающей взаимодействие между клиентом базы данных (программой, осуществляющей запрос или ввод данных) и самой базой. Термины "потребитель" и "провайдер" стали нормой при описании программных компонентов; они отражают процесс взаимодействия между программой, которая базируется на другой программе, и программой, которая обслуживает другую программу.

В отличие от обычного ASP-программирования (см. лекцию 12 курса "Администрирование web-серверов в IIS"), в COM-программировании активные серверные страницы используются в качестве системы организации. ASP упорядочивают HTTP-запросы в команды, осуществляют потребление COM-объектов, непосредственно выполняющих работу, и возвращают ответ клиенту. Преимуществом такого подхода является то, что программа в COM-объекте инкапсулирована в виде единого дискретного элемента, который можно целиком добавить или удалить из системы. Программное обеспечение разрабатывается таким образом, что программисты могут его использовать, но не могут изменять, поскольку к дистрибутиву исходный код не прилагается. В зависимости от языка построения COM-объекта заложенные в программу машинные инструкции могут быть двоичными, выполняемыми с большей производительностью, чем языки сценариев VBScript в ASP.

Архитектура типичного COM-приложения показана на рис. 1.1.

В настоящее время COM-программирование заключается в написании библиотек DLL ActiveX с помощью языка Visual Basic 6 (VB6). Хотя объекты COM можно создавать с помощью других языков, в данной лекции мы будем работать с VB6. Проект VB6 компилируется в обычный исполняемый файл, что полностью избавляет программиста от трудностей, присущих работе с языком описания интерфейса COM (IDL) и управлению архитектурой самого объекта. VB6 является стандартным языком программирования, интегрированная среда разработки (IDE) довольно проста, и поэтому любой пользователь напишет, скомпилирует и запустит программу без особых трудностей.

Архитектура веб-приложения COM

Рис. 1.1. Архитектура веб-приложения COM

Примечание. Библиотека ActiveX DLL в VB6 является шаблоном проекта для создания COM-объекта.

Введение в Visual Basic 6

После запуска Visual Basic 6 отображается диалоговое окно New Project (Новый проект) (см. рис. 1.2), в котором выбирается тип проекта. Для построения COM-объектов веб-приложения выберите ActiveX DLL и нажмите на кнопку Open (Открыть).

Диалоговое окно нового проекта в Visual Basic 6

Рис. 1.2. Диалоговое окно нового проекта в Visual Basic 6

В VB6 можно создать проекты других типов, например, исполняемые файлы и элементы управления ActiveX. Проекты ActiveX EXE и Standard EXE обычно используются при разработке приложений. Проект исполняемого файла мы рассмотрим далее при создании тестовой программы для библиотеки DLL ActiveX. В проекте ActiveX Control мы сгенерируем элемент управления ActiveX, передаваемый браузеру или используемый в приложениях рабочего стола.

Из-за ограничений, связанных с разработкой программ в VB runtime, элементы управления ActiveX, написанные на VB, не подходят для веб-разработки, поскольку после установки программы на клиенте зачастую требуется перезагрузка компьютера для работы с новым элементом управления ActiveX.

Настройка проекта ActiveX DLL

После выбора типа проекта будет создан новый проект с именем Project1 и новый класс Class1. Если сразу скомпилировать проект, то конечный файл будет называться по умолчанию Project1.dll, а идентификатор класса (CLSID), используемый для идентификации класса в команде ASP Server.CreateObjectProject1.Class1. Имена класса и проекта должны быть информативными, а не шаблонными именами по умолчанию. Классу следует присвоить имя применительно к сути создаваемого проекта, а проекту – имя, определяющее файл хранилища или исполнения, внутри которого будет находиться класс.

Примечание. Все COM-объекты, созданные с помощью проекта Active X DLL в VB6, имеют расширение .dll.

Пусть в нашем примере веб-приложение является частью интернет-проекта по выбору параметров мебели с именем ConfigSeat.

Объект "стул" определен в процессе сбора требований, а создаваемый класс предназначен для представления этого объекта и является частью бизнес-логики программного приложения. Данный класс логично назвать clsChair. Префикс cls определяет объект как класс. Элемент Auto List Members в функции Visual Basic IntelliSense отображает имена частей проекта и не различает классы и другие типы файлов, например, модули. Использование префикса cls облегчает идентификацию класса в списке Auto List Members.

Для изменения имени класса откройте окно свойств с помощью команды View\Properties Window (Вид\Окно свойств) и выберите класс в Project Explorer (Диспетчер проектов). Исправьте имя Class1 в области Name (Имя) на clsChair (см. рис. 1.3). (Остальные параметры в окне свойств не меняйте, поскольку для этого требуются глубокие знания процесса разработки VB ActiveX. В данной лекции этот вопрос не рассматривается.)

Вы можете также изменить имя проекта, щелкнув правой кнопкой мыши на имени проекта в Project Explorer (Диспетчер проектов).

Окно свойств класса

Рис. 1.3. Окно свойств класса

В диалоговом окне свойств проекта во вкладке General (Общие) имеется текстовое поле Project Name (Имя проекта), в котором отображается имя по умолчанию Project1. В нашем примере назовем проект ConfigSeat. Удалите в текстовом поле имя Project1 и введите ConfigSeat (см. рис. 1.4).

Многие программисты не знают о существовании автоматической нумерации версий в VB6. Номера версий помогают определять последнюю версию разрабатываемой библиотеки DLL с помощью уникальных идентификаторов. При каждой компиляции программного кода номер версии увеличивается. Как правило, объект COM устанавливается на узел несколько раз. Потребители программного обеспечения должны использовать только одну версию (последнюю), и номера версий позволяют работать именно с этой версией. При отсутствии номеров версий для определения последней версии пришлось бы использовать дату создания файла. В некоторых ситуациях (особенно при совместной работе над проектом нескольких программистов) определение номера версии по дате не работает. Для включения автоматического присвоения номеров новым версиям проекта откройте вкладку Make (Создание) в диалоговом окне свойств проекта и отметьте опцию Auto Increment (Автоматическая нумерация). Если вы не сделаете это, ошибки в программе не возникнет. Опция Auto Increment (Автоматическая нумерация) по умолчанию не включена, но мы настоятельно рекомендуем включать ее в каждом проекте.

Диалоговое окно свойств проекта с новым именем ConfigSeat

Рис. 1.4. Диалоговое окно свойств проекта с новым именем ConfigSeat
Лекция 1: 12345678910 || Лекция 2 >
Дмитрий Васюков
Дмитрий Васюков
Россия, Брянск
Maxim Kuzmin
Maxim Kuzmin
Россия