Автор работы: Пользователь скрыл имя, 08 Января 2013 в 15:24, доклад
Основы и основные понятия корпорации и КИС
Термин корпорация происходит от латинского слова corporatio - объединение. Корпорация обозначает объединение предприятий, работающих под централизованным управлением и решающих общие задачи. Как правило, корпорации включают предприятия, расположенные в разных регионах и даже в различных государствах (транснациональные корпорации).
1 Основы и основные понятия корпорации и КИС
2 Общие вопросы проектирования и внедрения КИС
2.1 Что даёт внедрение КИС?
2.2 Принципы построения КИС
2.3 Этапы проектирования КИС:
3 Классификация и характеристики КИС
3.1 Классификация КИС
3.2 Классификация автоматизированных систем
3.3 Характеристики КИС
4 Архитектура КИС
5 Требования, предъявляемые к КИС
6 Выбор аппаратно-программной платформы КИС
7 Международные стандарты планирования производственных процессов. MRP/ERP системы
Внедрение
Достоинства
Недостатки
Зарубежные ERP-системы
Российские ERP-системы
Когда клиент запрашивает услугу от СОМ-объекта, он передает СОМ-объекту идентификатор класса (CLSID). CLSID - всего лишь GUID, который применяется при обращении к СОМ-объекту. После передачи CLSID, СОМ-сервер должен обеспечить так называемую фабрику класса (см. следующий раздел), которая создает экземпляры СОМ-объектов.
В общих чертах, СОМ-сервер должен выполнять следующее:
1. регистрировать данные в системном реестре Windows для связывания модуля сервера с идентификатором класса (CLSID);
2. предоставлять фабрику СОМ-класса, создающую экземпляры СОМ-объектов;
3. обеспечивать механизм, который выгружает из памяти серверы СОМ, которые в текущий момент времени не предоставляют услуг клиентам.
Фабрика класса
СОМ-объекты представляют собой экземпляры coclass. Напомним, что Coclass - это класс, поддерживающий один или более интерфейс. СОМ-объекты могут предоставлять только те услуги, которые определены в интерфейсах coclass. Экземпляры Cociass создаются при помощи специального типа объекта, называемого фабрикой класса.
Фабрика класса - это специальный СОМ-объект, который поддерживает интерфейс IclassFactory и отвечает за создание экземпляров того класса, с которым ассоциирована данная фабрика класса.
Интерфейс IclassFactory определен в модуле Delphi ActiveX так:
type
IClassFactory = interface (IUnknown)
['{00000001-0000-0000-COOO-
function Createlnstance (const unkOuter: lUnknown; const iid: TIID out obj): HResult; stdcall;
function LockServer (fLock: BOOL): HResult; stdcall;
end;
Как видно из вышеприведенного куска кода, интерфейс имеет два метода:
Createlnstance и LockServer.
Метод Createlnstance создает экземпляр СОМ-объекта ассоциированной фабрики класса.
Метод LockServer применяется для хранения СОМ-сервера в памяти. Если параметр метода fLock имеет значение true, то счетчик ссылок сервера увеличивается, иначе - уменьшается. Когда счетчик достигает значения о, сервер выгружается из памяти.
Всякий раз, когда услуги СОМ-объекта запрашиваются клиентом, фабрика класса создает и регистрирует экземпляр объекта для конкретного пользователя. Если услуга того же СОМ-объекта запрашивает другой клиент, фабрика класса создает второй экземпляр объекта для обслуживания второго клиента. coclass должен иметь фабрику класса и идентификатор класса CLSID. Использование CLSID для cociass подразумевает, что они могут быть откорректированы всякий раз, когда в класс вводятся новые интерфейсы. Таким образом, в отличие от DLL, новые интерфейсы могут изменять или добавлять методы, не влияя на старые версии.
Мастер создания СОМ-объектов Delphi самостоятельно заботится о создании фабрики класса.
Локальные и удаленные серверы
С использованием СОМ клиент не должен беспокоиться о том, где располагается объект, он просто делает вызов интерфейса данного объекта. Технология СОМ обеспечивает все необходимые шаги для того, чтобы сделать этот вызов. Шаги могут отличаться, в зависимости от местонахождения объекта. Объект может находиться в том же процессе, где и клиент, в другом процессе на том же компьютере, где расположен клиент, или на другом компьютере в сети. В зависимости от этого применяются разные типы серверов:
1. внутренний сервер (In-
2. локальный сервер или сервер вне процесса (Local server, Out-of-process server);
3. удаленный сервер (Remote server).
Внутренний сервер - это библиотека DLL, которая запущена в одном процессе вместе с клиентом. Например, элемент управления ActiveX, который внедрен на Web-страницу и просматривается при помощи Internet Explorer или Netscape Navigator. В данном случае элемент управления ActiveX загружен на клиентскую машину и находится в том же процессе, что и обозреватель Web. Приложение-клиент связывается с сервером внутри процесса при помощи прямых вызовов СОМ-интерфейса. На рис. 13.2. представлена схема взаимодействия клиента с внутренним сервером.
Рисунок 13.2 - Схема взаимодействия клиента с внутренним сервером
Внутренний СОМ-сервер должен экспортировать четыре функции:
function DllRegisterServer: HResult; stdcall;
function DllUnregisterServer: HResult; stdcall;
function DllGetClassObject (const CLSID, IID: TGUID; var Obj): HResult;
stdcall;
function DllCanUnloadNow: HResult; stdcall;
Все вышеперечисленные функции уже реализованы в модуле comserv, их нужно только добавить в описания exports вашего проекта.
Рассмотрим данные функции более подробно:
1. DllRegisterServer - применяется для
регистрации DLL СОМ-сервера в системном
реестре Windows. При регистрации СОМ-класса
в системном реестре создается раздел
в HKEY_CZASSES_ROOTCLSID{
2. DllUnregisterServer - применяется для удаления всех разделов, подразделов и параметров, которые были созданы в системном реестре функцией DllRegisterServer при регистрации DLL СОМ-сервера.
3. DllGetclassObject - возвращает фабрику класса для конкретного СОМ-класса.
4. DllcanUnloadNow - применяется для определения, можно ли в настоящий момент времени выгрузить DLL СОМ-сервера из памяти. Функция проверяет, есть ли указатели на любой СОМ-объект данной DLL, если есть, то возвращает значение S_FALSE, т. е. DLL выгрузить нельзя. Если ни один СОМ-объект данной DLL не используется, то функция возвращает значение SJTRUE.
Рисунок 13.3 - Путь к локальному СОМ-серверу в окне редактора системного реестра
Локальный сервер - это приложение ЕХЕ, которое запущено в другом процессе, но на одном компьютере вместе с клиентом. Например, лист электронной таблицы Microsoft Excel связан с документом Microsoft Word. При этом два разных приложения работают на одном компьютере. Локальные серверы используют СОМ для соединения с клиентом.
Когда клиент и
сервер находятся в различных
приложениях, а также, когда они
находятся на разных компьютерах
в сети, СОМ использует внутренний (внутрипроцессный)
прокси (In-process proxy) для реализации процедуры
удаленного вызова. Прокси располагается
в одном процессе вместе с клиентом, поэтому,
с точки зрения клиента, вызов интерфейсов
осуществляется так же, как и в случае,
когда клиент и сер'вер находятся внутри
одного процесса. Задача прокси заключается
в том, чтобы перехватывать вызовы клиента
и перенаправлять их туда, где запущен
сервер. Механизм, который позволяет клиенту
получать доступ к объектам, расположенным
в другом адресном пространстве или на
другом компьютере, называется маршалинг (
Функции маршалинга:
1. принимать указатель интерфейса из процесса сервера и делать указатель прокси в процессе клиента доступным;
2. передавать аргументы вызовов интерфейса таким образом, как будто они произошли от клиента и размещать аргументы в процесс удаленного объекта.
Для любого вызова
интерфейса клиент помещает аргументы
в стек, вызывает необходимую функцию
СОМ-объекта через указатель
Таким образом, маршалинг - это процесс упаковки информации, а демаршалинг - процесс распаковки информации.
Тип маршалинга зависит от объектной принадлежности СОМ. Объекты могут использовать стандартный механизм маршалинга, предоставляемый интерфейсом IDispatch. Стандартный маршалинг позволяет устанавливать связь при помощи стандартного системного удаленного вызова процедуры (Remote Procedure Call, RFC).
На рис. 13.4 изображена схема, показывающая методику взаимодействия клиента и сервера в случае, когда приложения работают на одном компьютере, но в разных приложениях.
Рисунок 13.4 - Схема взаимодействия клиента с сервером в разных процессах на одном компьютере
Локальный СОМ-сервер регистрируется в системном реестре Windows так же, как и внутренний СОМ-сервер.
Удаленный сервер - это библиотека DLL или иное приложение, запущенное на другом компьютере. То есть клиент и сервер работают на разных компьютерах в сети. Например, приложение базы данных, написанное с помощью Delphi, соединяется с сервером на другом компьютере в сети. Удаленный сервер использует распределенные СОМ-интерфейсы (Distributed COM, DCOM) для связи с клиентом.
Удаленный сервер работает также с помощью прокси. Различие в работе между локальным и удаленным сервером заключается в типе используемой межпроцессной связи. В случае локального сервера - это СОМ, а в случае удаленного сервера - DCOM. Схема взаимодействия клиента и удаленного сервера показана на рис. 13.5.
Рисунок 13.5 - Схема взаимодействия клиента с сервером на разных компьютерах
СОМ-клиенты
Очень важным при
разработке СОМ-приложений является создание
приложений, называемых СОМ-клиентами,
которые могут запрашивать
Типичным СОМ-клиентом является диспетчер автоматизации (Automation Controller). Диспетчер автоматизации - это часть приложения, которая знает какой тип информации необходим ему от.разных объектов сервера, и она запрашивает данную информацию по мере надобности.
Расширения СОМ
Технология
СОМ изначально разрабатывалась
как ядро для осуществления
Технология ActiveX - это технология, которая использует компоненты СОМ, особенно элементы управления. Она была создана для того, чтобы работа с элементами управления была более эффективной. Это особенно необходимо при работе с приложениями Internet/Intranet, в которых элементы управления должны быть загружены на компьютер клиента, прежде чем они будут использоваться.
Технология ActiveX - не единственное расширение СОМ. В табл. 3.2 представлены некоторые из используемых в настоящее время расширений СОМ.
Перечисленные в табл. 13.1 расширения СОМ - это далеко не все из имеющихся. Постоянно идет доработка старых и создание новых, более совершенных технологий межпрограммного взаимодействия.
Таблица 13.1 - Список расширений СОМ
Расширение СОМ |
Краткое описание |
Серверы автоматизации
(Automation servers) |
Серверы
автоматизации- это объекты, которыми можно
управлять из других приложений во время
работы приложения. Таким образом, автоматизация-это
способность приложения программно контролировать
объекты других приложений |
Диспетчеры
автоматизации или СОМ-клиенты (Automation
Controllers, COM Clients) |
Диспетчеры
автоматизации- это клиенты серверов автоматизации.
Они позволяют разработчику или пользователю
писать сценарии для управления серверами
автоматизации |
Элементы управления
ActiveX (ActiveX Controls) |
Элементы управления
ActiveX предназначены для серверов
внутри процесса (in-process COM servers). Элементы ActiveX обычно используются
путем встраивания в приложение-клиент |
Библиотеки
типов (Type Libraries) |
Библиотеки
типов представляют собой статичные
структуры данных, которые часто
сохраняются как файлы |
Страницы активного
сервера (Active Server Pages) |
Активные
серверные страницы- это компоненты ActiveX, которые
позволяют вам создавать динамически
изменяющиеся Web-страницы |
Активные документы
(Active Documents) |
Активные
документы - это объекты, которые поддерживают
связывание и внедрение, визуальное редактирование,
перенос (drag-and-drop). В качестве примера таких
документов можно представить документы
Microsoft Word и книги Microsoft Excel |
Визуальные
межпроцессные объекты (Visual Cross-process
Objects) |
Визуальные
межпроцессные объекты- это визуальные объекты, которыми
можно управлять из других процессов |
На рис. 13.6 представлена диаграмма, которая показывает связь некоторых расширений СОМ и их связь с технологией СОМ.
Использование СОМ-объектов имеет как преимущества, так и некоторые ограничения. СОМ-объекты могут быть как визуальными, так и невизуальными. Какие-то СОМ-объекты должны быть запущены в одном процессе с клиентом, другие - в разных процессах либо на разных,,компьютерах.