Mts dll что это такое

Обновлено: 02.07.2024

Одной из самых больших проблем, с которыми сегодня сталкиваются веб-администраторы при работе с многоуровневыми веб-приложениями, является управление этими приложениями и их компонентами. Когда вы используете COM-компонент (например, DLL) в веб-приложении, вы должны учитывать особые соображения, такие как:

  • Что происходит, когда разработчику необходимо опубликовать компонент?
  • Как вы развертываете новую версию одного компонента на нескольких серверах одновременно?
  • Как вы автоматизируете процесс создания пакетов Microsoft Transaction Server (MTS) или приложений COM+ на сервере?

MTS и COM+ позволяют программно автоматизировать свои операции. Интерфейс автоматизации MTS позволяет создавать приложения для установки и управления для среды MTS. Вы можете создать пользовательское приложение установки почти так же легко, как с помощью мастера установки Microsoft Visual Basic (VB). Вы также можете получить доступ к функциям автоматизации из Active Server Pages (ASP).

Вы можете комбинировать VB с функциями автоматизации MTS и COM+, чтобы автоматизировать многие задачи управления, с которыми вы сталкиваетесь. Например, если вы объедините автоматизацию со сценариями VB и .bat или .cmd, вы получите мощный и надежный инструмент управления сервером. В этой статье я покажу вам, как программно управлять приложениями MTS.

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

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

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

Объект Каталог представляет собой объект в каталоге, который включает такие элементы, как пакет, компонент, интерфейс или роль. Коллекция каталога — это коллекция связанных объектов в каталоге. Коллекция RelatedCollectionInfo содержит доступные коллекции любого заданного объекта Каталога. В объекте «Каталог» доступно несколько коллекций. Например, в Основной каталог входят следующие коллекции:

  • Пакеты
  • Список компьютеров
  • Локальный компьютер
  • Удаленные компоненты
  • Связанная информация о коллекции
  • Информация о собственности

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

Первым шагом в использовании объектов MTS является создание ссылки на них в приложении VB. Откройте VB и создайте новый проект Standard EXE. В меню «Проект» выберите «Ссылки»; добавить ссылку на библиотеку административных типов MTS 2.0. (Этот шаг уже выполнен в примере приложения.) Теперь давайте углубимся в MTSPackageLister.vbp. Это приложение состоит из подпрограммы Main, функции FindPackage, функции GetAllPackages и функции AddPackage.

Подпрограмма Main
Первая строка подпрограммы Main в листинге 1 создает экземпляр объекта Catalog:

На этом этапе вы подключились к каталогу на сервере, на котором запущена утилита MTS. Вы также можете удаленно подключаться к другим серверам с помощью метода Connect объекта Каталога. (Чтобы использовать эту утилиту на сервере или удаленно подключиться к другому серверу, вы должны запустить ее в надлежащем контексте безопасности. Если вы запускаете программу, а ваша учетная запись не имеет соответствующих разрешений, вы не можете получить доступ к каталогу MTS.) Например, вы можете использовать этот метод для подключения к каталогу MTS на сервере с именем Server1:

Вы можете передать нулевой параметр ("") для подключения к серверу, на котором запущено приложение. (В примере кода метод Connect не используется, поэтому все действия выполняются на машине, на которой запущена утилита.) Следующая строка в Main выполняет метод GetCollection объекта CatalogCollection для создания коллекции Packages:

Функция FindPackage
Второй фрагмент кода в листинге 1 не используется в MTSPackageLister.vbp. Функция FindPackage принимает имя пакета в качестве параметра и ищет этот пакет в коллекции Packages. Шаги просты. Сначала вы заполняете коллекцию Packages:

Далее для. Следующий цикл увеличивает коллекцию до тех пор, пока имя текущего пакета не совпадет с именем пакета, переданным в функцию. Когда происходит совпадение, функция If. Потом. Оператор Else возвращает идентификатор пакета в качестве возвращаемого значения функции FindPackage, как показано во фрагменте A в листинге 1.

Функция GetAllPackages
Теперь, когда у вас есть коллекция Packages, вы можете использовать ее для нескольких задач. Во-первых, функция GetAllPackages извлекает список пакетов и помещает этот список в массив. Первое действие в функции выполняет метод Populate для извлечения пакетов из MTS:

Вы должны использовать метод Populate для извлечения пакетов, даже если вы использовали метод GetCollection для создания коллекции ранее. Далее установите переменную n равной количеству пакетов в коллекции:

Код перебирает пакеты и извлекает имя каждого пакета:

Функция ListPackages в листинге 2 выполняет GetAllPackages, затем берет массив, возвращенный функцией, и загружает элементы из него в поле списка в форме MTSUTilInferface, показанной в листинге 2. Вы можете в любой момент щелкнуть List Packages, показанный на экране 1, чтобы обновить список пакетов. Например, предположим, что вы добавляете новый пакет в MTS, пока у вас открыт MTSPackageLister.vbp. Если щелкнуть Список пакетов, будет выполнена функция GetAllPackages, которая, в свою очередь, повторно заполнит коллекцию и подберет новый пакет.

Функция AddPackage
Одной из наиболее часто выполняемых задач является добавление пакета на сервер, что обычно выполняется путем запуска MTS Explorer, перехода к папке Packages Installed и добавления пакета. (Если вы хотите добавить описание пакета, вы должны указать его в диалоговом окне свойств пакета.) MTSPackageLister.vbp также содержит код, позволяющий создать новый пакет. На рис. 1 вы можете видеть два текстовых поля в верхней части формы с пометками «Имя пакета» и «Описание пакета». Если вы введете имя в текстовое поле «Имя пакета», программа отобразит кнопку «Добавить пакет», показанную на рис. 2, стр. 9. Нажатие этой кнопки добавляет новый пакет и обновляет список пакетов.

Посмотрите на функцию AddPackage в листинге 1. Эта функция принимает в качестве параметров имя и описание пакета. Первая строка добавляет новый пакет в коллекцию Packages и устанавливает переменную newPack для ссылки на новый пакет:

Далее функция устанавливает имя пакета на входящее имя и описание на входящее описание:

Наконец, и это самое главное, функция вызывает метод SaveChanges:

Последняя строка функции устанавливает возвращаемое значение AddPackage равным возвращаемому значению метода SaveChanges:

Если добавление прошло успешно, возвращается значение 1.

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

Интерфейсы MTS Utility
Интерфейсы MTS Utility позволяют выполнять более конкретные задачи с конкретными коллекциями в каталоге. Особый интерес представляют три интерфейса MTS Utility: объект ComponentUtil, объект RemoteComponentUtil и объект PackageUtil.

Вы можете использовать объект ComponentUtil для установки и импорта компонентов в пакет. Например, вы можете автоматизировать процесс добавления компонентов в новый пакет. Первым шагом в работе с пакетом является получение его идентификатора. Этот идентификатор совпадает с тем, который FindPackage или новый пакет возвращает при доступе к свойству Key:

Затем вызовите метод GetCollection, чтобы получить коллекцию ComponentsInPackage:

Вы можете получить указатель на UtilInferface, вызвав метод GetUtilInterface:

Наконец, вы можете установить свой компонент, выполнив метод InstallComponent:

Вы можете использовать объект RemoteComponentUtil для выполнения тех же действий на удаленном компоненте (например, компоненте, к которому вы обращаетесь через Distributed COM — DCOM — на другом компьютере).

Объект PackageUtil взаимодействует с каталогом MTS для установки, экспорта и завершения работы пакетов. Возможность автоматического завершения работы компонентов очень полезна — она позволяет создать веб-интерфейс для управления пакетами из любой точки локальной сети или Интернета. Ваши разработчики также должны знать об этой функции, чтобы они могли закрывать пакеты по требованию без использования MTS Explorer. (MTS Explorer работает только в консоли управления Microsoft — MMC.Вы можете создать простую веб-страницу, которая будет проще в использовании и будет иметь функции, которых нет в MTS, например возможность закрыть приложение MTS на группе серверов одним щелчком мыши.)

Если вы хотите переместить пакет из одной системы в другую или создать установку, позволяющую клиенту получить доступ к пакету MTS, вы обычно экспортируете пакет. В MTS Explorer достаточно щелкнуть правой кнопкой мыши имя пакета и выбрать Экспорт. Используя объекты MTS Administration, вы можете получить доступ к интерфейсу Utility коллекции Packages и вызвать его метод ExportPackage, передав идентификатор пакета для экспорта.

Этот код передает идентификатор нового пакета, который вы только что создали, в метод ExportPackage:

Метод ExportPackage принимает три параметра. Первый параметр — это идентификатор пакета, второй — полный путь к экспортируемому пакету, а последний параметр задает параметры экспорта. Если третий параметр равен 0, метод не экспортирует пользователей. Если задать для параметра значение MtsExportUsers, метод экспортирует пользователей с ролями в этом пакете.

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

Давайте рассмотрим типичный пример, в котором эти утилиты действительно могут помочь. Предположим, у вас есть 15 веб-серверов, на всех из которых работают IIS и MTS. Допустим, на этих серверах работает одинаковая конфигурация пакетов и компонентов MTS. Что происходит, когда вам нужно развернуть новые версии компонентов на серверах?

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

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

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

Сведения о наиболее часто используемом файле с именем "mts.dll"

<Р> Продукт: (Empty Value) Компания: (Empty Value) Описание: (Empty Value) Версия: (Empty Value) MD5: 725d14ec3cc823915ee9f89301e75b3f SHA1: c7510e9b1b26dd225a774a9a59024b39be56d818 SHA256: 679c08f3edf5e2ef4baeeeb65d41344a3431746f426661e3cade1985c8d1e626 Размер: 594432 Каталог:% PROGRAMFILES% 2 \ Helicon Software \ Helicon Фильтр 5\библиотека Операционная система: Windows 7 Распространенность: Низкая

Icon

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

Библиотека "mts.dll" безопасна или опасна?

Последний новый вариант файла с именем "mts.dll" был обнаружен 3454 дня назад. В нашей базе содержится 2 варианта файла "mts.dll" с итоговой оценкой Безопасный и ноль вариантов с итоговой оценкой Угроза. Окончательные рейтинги основаны на обзорах файлов, дате обнаружения, активности пользователей и результатах антивирусного сканирования.

Библиотека с именем "mts.dll" может быть безопасной или опасной. Вы должны определить дополнительные атрибуты файла, чтобы определить правильный рейтинг. Наш отмеченный наградами бесплатный инструмент обеспечивает самый простой способ проверки ваших файлов через нашу базу данных. Инструмент содержит множество полезных функций для контроля вашей системы и использует минимум системных ресурсов.
Нажмите здесь, чтобы загрузить System Explorer бесплатно.

Отзывы пользователей о "mts.dll"

Добавить отзыв для "mts.dll"

Чтобы добавить отзыв пользователя, требуется дополнительная информация о файле. Если вы знаете md5, размер, sha1, sha256 или другой атрибут файла, который вы хотите просмотреть, вы можете воспользоваться расширенным поиском на нашей главной странице.

Если вы не знаете подробностей о файле, вы можете легко проверить его с помощью нашего бесплатного инструмента. Загрузите системный обозреватель.

Проверьте свой компьютер с помощью нашего бесплатного инструмента

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

ТИП: DLL с исходным кодом

IDE: Microsoft Visual C++ 6

DLL пакета разработчика My-T-Soft

Утилиты для внедрения My-T-Soft в среды разработки приложений (Microsoft Access, Borland Delphi, Visual Basic и другие среды визуального проектирования приложений), реализованные в виде автономной динамической библиотеки с исходным кодом.

My-T-Soft используется как общий термин для My-T-Touch, My-T-Pen, My-T-Soft или частных торговых марок семейства My-T-Soft от IMG.

Утилиты DLL поставляются с исходным модулем C, сценарием ресурсов (RC) и файлом определения модуля (DEF), а также информацией о проекте и рабочей области для Microsoft Visual C++ версии 6.

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

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

В выпуске 1.71 изменена библиотека DLL, включенная в примеры VBASIC. Все будущие надстройки к части DLL комплекта разработчика будут сделаны в этом проекте. Большинство из них являются альтернативными реализациями базового комплекта разработчика. Дополнительную информацию и примеры см. в I. Комплект разработчика My-T-Soft, в том числе о том, как обеспечить плавный переход между конфигурациями.

Примеры использования см. здесь:

Уголок разработчика на веб-сайте "http://www.imgpresents.com/imgdev.htm"

Инструкции в Уголке разработчика

Пример Visual Basic (папка VBASIC в DevKit)

Обратите внимание, что размер 12 — это виртуальный барьер для изменения размера на лету с больших размеров (т. е. больше, чем размер 12) на меньшие размеры (например, 12 или меньше). Не пересекайте этот барьер так или иначе, не установив сначала нарисованную клавиатуру размера 12. Все большие размеры не соответствуют размерам размера 12, поэтому повреждение действительного файла KBF возможно (вероятно!), если пересечение размера 12!

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

Описание утилиты/интерфейс вызова функции

Это список всех функций в DLL. Описание и интерфейс см. ниже:

MTS предоставляет распределенную среду выполнения, в которой вы запускаете бизнес-объекты. На рис. 9-1 показаны отношения между клиентскими приложениями и распределенными объектами, работающими в среде MTS. Как видите, MTS предоставляет приложение-контейнер (mtx.exe), которое действует как суррогатный процесс. Объекты MTS развертываются с помощью библиотек DLL в стиле COM, которые загружаются в среду MTS.

Объекты развертываются в среде выполнения MTS с использованием компонентов и пакетов. Каждый компьютер, на котором работает MTS, хранит информацию о конфигурации своих компонентов и пакетов в разделе реестра Windows, известном как каталог MTS. Вы можете проверить этот каталог, найдя следующий путь в реестре:


Рисунок 9-1. MTS предоставляет суррогатный процесс для каждого пакета сервера, который может загружать и запускать распределенные бизнес-объекты от имени клиентов в сети.

MTS использует термин "компонент" для обозначения создаваемого класса, который совпадает с компонентным классом COM. Чтобы запускать объекты Visual Basic в среде выполнения MTS, необходимо создать ActiveX DLL с общедоступными классами MultiUse. После установки библиотеки DLL каждый из ваших классов распознается как компонент MTS.

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

МТС поддерживает два типа пакетов. Пакет сервера предоставляет суррогатный процесс для запуска объектов MTS; он представляет собой распределенное приложение.Когда клиент активирует объект из серверного пакета, система MTS активирует и запускает объект в специфичном для пакета экземпляре контейнерного приложения MTS mtx.exe, как показано на рис. 9-1.

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

Пакет библиотеки, в отличие от пакета сервера, не предоставляет собственного суррогатного процесса. Вместо этого объекты, созданные из пакета библиотеки, загружаются в адресное пространство создавшего их клиентского приложения. Пакеты библиотек позволяют совместно использовать код компонентов в нескольких серверных пакетах и ​​запускать объекты MTS в средах, отличных от приложения-контейнера MTS mtx.exe.

И серверные пакеты, и библиотечные пакеты полагаются на службы MTS Executive, которые находятся в mtxex.dll. Эта библиотека DLL содержит большую часть логики сложных служб времени выполнения, предоставляемых MTS. Поскольку эти службы времени выполнения поддерживаются в библиотеке DLL, MTS может обеспечить гибкость развертывания.

Вы будете часто использовать серверные пакеты, которые полагаются как на mtx.exe, так и на mtxex.dll. Однако если клиентское приложение создает объект из пакета библиотеки MTS, среда выполнения MTS загружается в адресное пространство клиента. Процесс веб-сервера для Internet Information Server (IIS), Inetinfo.exe, является примером клиентского приложения, которое использует среду выполнения MTS, загружая mtxex.dll в свое адресное пространство. Хотя существуют сценарии развертывания, в которых пакеты библиотек подходят больше, чем серверные пакеты, в этой главе основное внимание уделяется использованию серверных пакетов, поскольку это лучший способ начать изучение того, как на самом деле работает MTS.

Установка ActiveX DLL

Вы создаете компоненты MTS с помощью Visual Basic, добавляя общедоступные классы MultiUse в ActiveX DLL. Убедитесь, что вы оставили модель многопоточности вашего проекта ActiveX DLL по умолчанию, т.е. Apartment Threaded. После создания библиотеки DLL вы можете установить ее в среде выполнения MTS с помощью MTS Explorer. Вы можете запустить MTS Explorer из системного меню «Пуск», выбрав «Программы», затем Windows NT 4.0 Option Pack, а затем Microsoft Transaction Server. В группе Сервер транзакций Microsoft щелкните Обозреватель сервера транзакций.

Проводник MTS имеет элемент управления в виде дерева на левой панели, который включает узел с именем Компьютеры (как показано на рис. 9-2). Здесь перечислены все компьютеры, которыми можно управлять с локального компьютера. По умолчанию под именем Мой компьютер регистрируется только локальный компьютер. Если вы хотите добавить другие удаленные компьютеры, вы можете щелкнуть правой кнопкой мыши папку «Компьютеры» и выбрать «Создать».

Развернув древовидное представление в разделе «Мой компьютер», вы увидите папку «Установленные пакеты». Когда вы развернете эту папку, вы увидите список всех пакетов на вашем локальном компьютере. Чтобы создать новый пакет, щелкните один раз папку Packages Installed. Затем щелкните папку правой кнопкой мыши и выберите «Создать», а затем «Упаковать».


Рисунок 9-2. Используя MTS Explorer, вы можете установить в среде выполнения MTS DLL ActiveX, созданную с помощью Visual Basic. Каждый класс MultiUse в вашей библиотеке DLL становится компонентом MTS.

Давайте создадим новый серверный пакет. После выбора команды «Новый пакет» вы увидите ряд диалоговых окон. В первом диалоговом окне вас спросят, хотите ли вы создать пустой пакет или установить готовый пакет из файла сценария пакета MTS. Укажите, что вы хотите создать пустой пакет. В следующем диалоговом окне введите имя нового пакета и нажмите кнопку Далее. В последнем диалоговом окне выберите, какая учетная запись пользователя будет служить идентификатором пакета. Вы можете либо выбрать имя учетной записи пользователя Windows NT, либо запустить пакет под именем интерактивного пользователя. Выберите учетную запись пользователя и нажмите кнопку Готово, чтобы создать пакет. Тщательно продумайте, какую учетную запись пользователя вы выберете, поскольку она будет служить участником безопасности пакета.

Я настоятельно рекомендую использовать выделенную учетную запись пользователя в производственной среде. При выборе удостоверения пакета вы можете выбрать учетную запись пользователя с локального компьютера или учетную запись из домена Windows NT. Однако в среде разработки вы можете быстро и удобно запустить пакет от имени интерактивного пользователя. Ваши бизнес-объекты будут работать с тем же набором разрешений, что и ваша учетная запись пользователя Windows NT, и вы сможете использовать некоторые из своих старых приемов разработки. Например, вы можете отображать окна сообщений во время отладки компонентов MTS.

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

После того, как вы нажмете «Готово», ваш новый серверный пакет будет включен в список «Установленные пакеты». Вы можете просмотреть и изменить дополнительные свойства пакета сервера, щелкнув его правой кнопкой мыши на левой панели MTS Explorer и выбрав «Свойства». Откроется диалоговое окно с вкладками, в котором можно выполнять такие действия, как настройка безопасности, изменение идентификатора пакета и переключение между пакетом сервера и пакетом библиотеки.

После того как вы создадите новый пакет или найдете существующий пакет, вы можете установить библиотеку ActiveX. Самый простой способ сделать это — развернуть папку пакета, выбрать папку «Компоненты», а затем перетащить DLL-файл ActiveX на правую панель MTS Explorer. Система MTS автоматически настроит все классы MultiUse в DLL. Каждый класс будет признан компонентом MTS. После установки библиотеки DLL вы увидите компоненты MTS в проводнике MTS, как показано ранее на рис. 9-2.

MTS также позволяет устанавливать подмножество компонентов из библиотеки DLL. Например, если библиотека DLL содержит три класса, вы можете установить два класса в одном пакете и третий класс в другом пакете. Для этого щелкните правой кнопкой мыши папку компонента на левой панели и выберите «Создать». В появившемся диалоговом окне вы можете добавлять компоненты по отдельности. Хотя вы можете устанавливать компоненты из одной библиотеки DLL в нескольких пакетах, это делает распространение обновлений более сложным и более подверженным ошибкам. Вы можете спроектировать каждую библиотеку DLL таким образом, чтобы все ее классы предназначались для одного конкретного пакета. Это не единственный вариант, но он может упростить работу как в среде разработки, так и в рабочей среде.

Активация в пакете MTS Server

Каждый компонент MTS основан на компонентном классе и, следовательно, имеет связанный идентификатор класса (CLSID). Клиентское приложение активирует объект MTS, обращаясь к диспетчеру управления службами (SCM) и передавая CLSID и идентификатор интерфейса (IID), как это делается во время любого другого запроса на активацию COM. Когда вы устанавливаете компонент в серверный пакет, система MTS изменяет записи реестра своих CLSID, чтобы перенаправить запросы активации на конкретный пакет экземпляра приложения-контейнера MTS.

Давайте рассмотрим, как выполняется активация в приложении MTS. Когда клиентское приложение, работающее вне среды MTS, активирует объект MTS, это называется базовым клиентом. Приложение Visual Basic, выступающее в качестве базового клиента, может активировать объект MTS с помощью оператора New или функции CreateObject. Когда базовый клиент пытается активировать новый объект, запрос сначала отправляется в SCM на клиентской машине. SCM на стороне клиента перенаправляет запрос на активацию клиента в SCM компьютера, на котором запущено приложение MTS. SCM на стороне сервера отвечает, отправляя локальный запрос на активацию CLSID. До этого момента последовательность активации такая же, как и любая другая в Distributed COM.

Теперь МТС начинает немного хитрить за кулисами. Когда вы установили DLL в серверный пакет с помощью MTS Explorer, система MTS изменила настройки реестра для каждого CLSID, чтобы изменить маршрутизацию каждого запроса на активацию. Каждому CLSID был присвоен подраздел [LocalServer32] со следующим путем:

Идентификатор GUID, следующий за mtx.exe в командной строке, идентифицирует конкретный пакет MTS. Если экземпляр этого серверного пакета уже запущен, SCM на стороне сервера обращается к процессу и согласовывает создание нового объекта MTS, передавая запрошенный CLSID. Если в пакете нет запущенного процесса, SCM запускает новый экземпляр mtx.exe, а затем согласовывает активацию нового объекта MTS. В любом случае создается новый объект и устанавливается соединение с базовым клиентом. Как и в случае любого другого внепроцессного соединения с использованием Distributed COM, между клиентом и объектом вводится уровень прокси/заглушки.

Экспорт пакетов MTS

За короткую историю COM одной из самых болезненных и проблемных областей развертывания распределенных приложений была настройка компьютеров в сетевой среде. В главе 8 объяснялось, что необходимо настроить на каждом сервере и каждом клиентском компьютере. MTS Explorer значительно упрощает работу с деталями настройки, которые не могут настроить системные утилиты. Вам не нужно полагаться на Dcomcnfg.exe, и вам не нужно беспокоиться о создании собственных AppID вручную. Система MTS создает скрытый AppID для каждого пакета сервера. Вы можете управлять всем администрированием безопасности и идентификации с помощью MTS Explorer.

MTS также помогает автоматизировать настройку компьютеров, задействованных в распределенном приложении. Для этого создаются программы установки как на стороне сервера, так и на стороне клиента. Если щелкнуть правой кнопкой мыши пакет в проводнике MTS и выбрать команду «Экспорт», MTS создаст файл сценария установки на стороне сервера с расширением .pak.

Файл .pak содержит установочную информацию о пакете, такую ​​как сведения о безопасности и список всех компонентов и каждой библиотеки DLL. В процессе экспорта MTS копирует файл .pak и все необходимые библиотеки DLL для развертывания пакета в выбранный вами каталог. Это упрощает перенос приложения с рабочей станции разработки на производственный сервер. Это также дает поставщикам программного обеспечения простой способ установить свои приложения MTS на сайте клиента. Обратите внимание, что поставщики программного обеспечения также могут создавать программы установки для создания пакетов и установки компонентов путем программирования с использованием набора объектов каталога, предоставляемых MTS.

При экспорте пакета MTS также создает программу установки на стороне клиента в подкаталоге \clients в каталоге, содержащем файл .pak. Это упрощает настройку компьютеров, на которых будут выполняться базовые клиентские приложения, для ваших серверных пакетов. Когда вы запускаете эту программу установки с любого компьютера Windows с распределенным COM, она настраивает реестр с помощью AppID, а также необходимых CLSID и IID. Он также устанавливает необходимые библиотеки типов, что позволяет универсальному маршалеру создавать прокси-серверы во время выполнения.

По умолчанию программа установки на стороне клиента указывает всем базовым клиентам активировать объекты MTS на компьютере, на котором была запущена команда Экспорт. Однако, изменив свойство Имя удаленного сервера, вы можете указать клиентским приложениям активировать свои объекты на любом сервере MTS в сети. Вы можете найти свойство «Имя удаленного сервера» для своего компьютера, щелкнув правой кнопкой мыши «Мой компьютер» в MTS Explorer, выбрав «Свойства» и выбрав вкладку «Параметры».

MTS предлагает еще один эффективный способ реконфигурации распределенного приложения после его запуска в рабочую среду. Когда в сети работает несколько компьютеров MTS, администратор может передавать и извлекать компоненты между компьютерами, перетаскивая компоненты между компьютерами с помощью MTS Explorer. Вы можете перенаправлять запросы на активацию по всему предприятию с одного рабочего стола, а также распределять вычислительную нагрузку между серверами и перенаправлять запросы на активацию в случае сбоя одной системы. Вы можете отправлять и извлекать компоненты только в том случае, если на всех задействованных машинах работает MTS. MTS может работать на Windows NT Server, Windows NT Workstation, Windows 95 и Windows 98. Дополнительные сведения о перенастройке удаленных компонентов из MTS Explorer см. в документации MTS.

В разделе «Использование COM-компонентов с MTS» я продемонстрировал, как создать COM-компонент поставщика. В этой статье я покажу вам, как превратить его в компонент, работающий в MTS.

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

  1. Создайте новую папку с именем DBCode для файлов базы данных.
  2. Переместите файлы recordset.bas и password.bas из папки RawCode в папку DBCode.
  3. Создайте новую папку с именем MTSCode для специальных файлов, связанных с MTS.
  4. Переместите MTSContext.bas в папку MTSCode.
  5. Создайте новую папку с именем VendorMTS.
  6. Добавьте оставшиеся файлы из RawCode в эту папку.

Затем вам нужно изменить код в компоненте Vendor, чтобы он работал с MTS. Сначала добавьте файлы Recordset.bas и Password.bas. Эти файлы были частью проекта DBStuff, который я демонстрировал, как компилировать в dll в прошлом месяце. На этот раз мы переместим эти файлы в проект как модули кода. Почему вы хотите использовать модули кода вместо компонентов COM? MTS может разрешить регистрацию компонента в одном пакете в данной системе, что создает проблему для модулей общего назначения, таких как компоненты БД. Если вы хотите использовать функциональность БД в другом компоненте, работающем в другом пакете, вы можете выполнить методы из компонента в другом пакете, но эта процедура увеличивает нагрузку на процесс. Перемещение функциональных возможностей в модуль кода упрощает включение кода в любой проект COM-компонента. Недостатком является то, что без надлежащего контроля разработчики могут изменять код.

Выполните следующие действия, чтобы изменить проект Vendor для работы с MTS.

  1. Откройте Vendor.vbp.
  2. Добавьте в проект файлы recordset.bas и password.bas. Выберите «Добавить модуль» в меню «Проект», затем щелкните вкладку «Существующие». Перейдите в папку DBCode и выберите файлы.
  3. Добавьте в проект модуль MTSContext.bas. Выберите «Добавить модуль» в меню «Проект», затем щелкните вкладку «Существующие». Перейдите в папку MTSCode и выберите файл.
  4. Добавьте ссылку на библиотеку типов Microsoft Transaction Server. Выберите «Ссылки» в меню «Проект» и выберите в списке библиотеку типов Microsoft Transaction Server, как показано на экране 1.
  5. Удалите ссылку проекта на DBStuff. Выберите «Ссылки» в меню «Проект» и снимите флажок «DBStuff». Измените параметр совместимости, чтобы указать на библиотеку DLL для этого проекта. Откройте свойства проекта и перейдите на вкладку Компонент. Вы увидите диалоговое окно, показанное на экране 2. Введите путь к DLL, которую вы собираетесь заменить, в текстовое поле в нижней части диалогового окна.

Затем вам нужно изменить код, чтобы он работал с использованием модулей кода (password.bas и recordset.bas) вместо использования компонента DBStuff. Шаги также охватывают настройку свойств класса и интеграцию методов MTS в приложение:

Чтобы изменить код, выполните следующие действия:

  1. Удалите строки, ссылающиеся на DBStuff, из каждой процедуры. Этот код выглядит так:
  2. Измените строки, в которых используются методы RecordsetStuff. Этот код должен вызывать методы как функции, потому что код из RecordsetStuff теперь находится в модуле кода. Вы можете удалить строки, которые создают экземпляр объекта из DBStuff. Строки, вызывающие метод RunSQLWithRS, будут выглядеть так:
  3. Измените значение свойства экземпляра для класса Publisher на 2 — требуется транзакция.
  4. Измените все строки, в которых используется CreateObject, чтобы они использовали функцию ContextCreateObject из класса MTSContext.
  5. Откройте класс Publisher.
  6. Добавьте вызов функции ContextSetComplete непосредственно перед оператором Exit Function. Повторите это для каждого метода в Publisher.
  7. Добавьте вызов функции ContextSetAbort сразу после метки обработчика ошибок. Повторите это для каждого метода в Publisher.
  8. Повторно скомпилируйте компонент "Продавец", затем выберите "Создать" в меню "Файл".

В листинге 1 показан завершенный код класса Publishers. В листинге 2 показан обновленный код Recordset.bas.

Затем выполните следующие действия, чтобы создать пакет MTS и добавить компонент в пакет:

  1. Откройте MTS Explorer в консоли управления Microsoft.
    MTS Explorer находится в папке NT Option Pack в меню Program Files.
  2. Откройте папку "Компьютеры".
  3. Откройте папку «Установленные пакеты» в разделе «Мой компьютер».
  4. Выберите «Новый пакет» в меню «Действие» или щелкните правой кнопкой мыши папку «Установленные пакеты» и выберите «Создать», «Пакет». Любое из этих действий запустит мастер пакетов.
  5. Выберите «Создать пустой пакет». У вас есть два варианта создания новых пакетов. Вы можете установить существующий пакет (экспортированный из другой системы) или создать новый пакет и ввести его атрибуты по мере необходимости.
  6. Введите имя нового поставщика пакета.
  7. Выберите учетную запись пользователя, под которой будет запускаться этот пакет. Этот параметр позволяет указать учетную запись пользователя, под которой будет запускаться пакет. Обычно вы создаете учетную запись пользователя для каждого пакета, который выполняется в системе, и назначаете соответствующие права этому пользователю. Пока просто примите значение по умолчанию (интерактивный пользователь) и нажмите "Готово".
  8. Откройте свойства нового пакета, щелкнув его правой кнопкой мыши в папке "Установленные пакеты" и выбрав "Свойства".
  9. Просмотрите вкладки и доступные параметры.
  10. Закройте окно свойств.
  11. Разверните папку пакета поставщика.
  12. Нажмите папку "Компоненты".
  13. Используйте Проводник NT, чтобы перетащить Vendor.dll в папку "Компоненты".

Теперь выполните следующие действия, чтобы протестировать компонент:

  1. Создайте новую папку с именем Project1.
  2. Скопируйте файлы Form1.frm, Project1.vbp и Project1.vbw в папку Project1.
  3. Вернуться к VB.
  4. Выберите «Добавить проект» в меню «Файл».
  5. Перейдите на вкладку "Существующие" и выберите "Проект1" в только что созданной папке "Проект1".
  6. В обозревателе проектов щелкните правой кнопкой мыши Project1 и выберите «Установить как запускаемый».
  7. Измените ссылку на компонент Vendor, чтобы она указывала на ваш только что перекомпилированный файл. Выберите «Ссылки» в меню «Проект» и выберите в списке библиотеку типов Microsoft Transaction Server, как показано на экране 3.

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

Читайте также: