Кротов А.А., Лупян Е.А.

Обзор методов реструктуризации и интеграции информационных систем


План

Введение

Часть I - Реструктуризация унаследованных систем

Часть II - Интеграция ИС Заключение

Литература


Введение

В последнее десятилетие уходящего тысячелетия во всем постиндустральном мире наблюдается бурное развитие информационных технологий. За последние 30 лет развития этой области человеческой деятельности создано огромное количество программ, немалая часть которых до сих пор играет жизненно-важную роль в информационном обеспечении процессов, происходящих и в мелких частных фирмах и в крупных мультинациональных корпорациях. 15-20 лет назад основной аппартной платформой для программного обеспечения были мэйнфремы, языком программирования COBOL, а СУБД IMS. Ввиду практического отсутствия других платформ проблемы переносимости ПО просто не возникало. Но прогресс не стоял на месте, и вскоре появились персональные компьютеры, рабочие станции, а с ними и множество видов операционных систем. Тактовая частота процессоров, объемы внешней и оперативной памяти увеличивали свои показатели экспоненциально. Вместе с этим с еще большей скоростью росло количество, сложность и разнообразие информационных систем.

Потребности бизнеса во взаимодействии составляющих его структур породили в необходимость в интеграции обслуживающих бизнес разрозненных инфраструктур. Наибольшее сопротивление этому начинанию оказывают вышеупомянутые устаревшие программные комплекы (Legacy Systems), потому как в силу своей архитектуры они практически совсем не расширяемы, модернизация и интеграция их друг с другом и с вновь разрабатываемыми ИС требует огромных финансовых и временных затрат. Созданные когда-то интерфейсы к этим системам давно устарели и совершенно не удовлетворяют текущим потребностям пользователей, привыкших к гораздо большей функциональности GUI-интерфейсов. Эта проблема особенно остро стоит перед большими корпорациями, целыми отраслями промышленности, имеющими в своем арсенале подобное наследство, потому что ограниченность их возможностей в быстро меняющемся мире уменьшает их конкурентоспособность и может однажды привезти к информационному коллапсу. Поэтому так остро стоит вопрос об эффективных с точки зрения затрат времени и человеческих ресурсов методах модернизации или миграции унаследованных систем. И острота его вряд ли уменьшится в ближайшие десятилетия. В данном обзоре будет сделана попытка описать в общих чертах текущее состояние на этом фронте.

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

Часть I - Реструктуризация унаследованных систем

 Что подразумевается под понятием "унаследованная система"

Унаследованные системы [15] (legacy systems) - это системы, по тем или иным причинам переставшие удовлетворять изменившимся потребностям применений, которые тем не менее продолжают использоваться ввиду больших затруднений, возникающих при попытке их замены. Унаследованные системы используют морально устаревшие технологии, архитектуры, платформы, а также собственно программное и информационное обеспечение. При проектировании таких систем, как правило, не предусматриваются должные меры для их пошаговой миграции в новые системы. Для таких систем характерны также монолитность и закрытость. Практически любая система до последнего времени после создания противодействала изменениям и имела тенденцию быстрого превращения в бремя организации, потому что при ее создании использовались "уставшие" технологии, архитектуры, платформы.

В статье Энн Мак-Крори "Что такое унаследованные системы?" [1] раскрывается сложность и запутанность этого понятия. Это может быть комбинацией из:

а) компьютерные системы, которые по тем или иным причинам перестали вас устраивать;
б) системы для мэйнфреймов, написанные на Cobol и прослужившие более 5 лет;
в) исчерпавшие себя системы для мини-компьютеров или мэйнфреймов;
г) приложения с интерфейсом для Unix;
д) совокупность аппаратного и программного обеспечения, которое успешно выполняло возложенные на него задачи   до тех пор,пока не пришла пора заменить его новыми средствами;
е) любая морально устаревшая система
Некоторой неопределенностью в данном вопросе мы обязаны постоянному развитию отрасли. Одно время под наследуемыми  системами понимались повсеместно заменявшиеся мэйнфреймы. Сегодня устаревшими можно считать любые системы, снятые с производства всемирно известными компаниями.

Некоторые под термином "наследуемая" подразумевают "непригодная". Ее трудно или совсеи невозможно связать с другими системами. У нее большие проблемы с маштабируемостью, ее трудно поддерживать, развивать дальше. Для них подобная система - тяжкое бремя. От нее нельзя отказаться, хотя она значительно снижает производительность труда.

 Причины, приводящие к реструктуризации унаследованной системы

С момента создания первой ЭВМ было создано поистине гигантское количество программного обеспечения. На начальных этапах информационной эры больше беспокоились об оптимизации алгоритмов для повышения скорости вычислений (собственно для этого и были созданы компьютеры) и мало задумывались о таких понятиях, как масштабируемость, взаимодействие с другими системами в гетерогенной сетевой среде, переносимость на другие аппаратные платформы. Теперь, например,  мы имеем наследие в 70%  написанного на языке COBOL кода (в основном, для мэйнфреймов) от всего ПО, созданного за все эти годы. Тратятся огромные усилия для поддержки и доработки таких ИС. Нет нужды объяснять, что любая организация, которая расчитывает на выживание в конкурентной борьбе, стремится избавиться от этого тяжкого груза. Потребность в реструктуризации унаследованной системы часто является также следствием потребности интеграции ее с другими ИС (2-я часть данного обзора).
Порою масштабы и важность решаемых наследуемой системой задач не позволяет в приемлемые сроки заменить на новую ИС. Нужна постепенная миграция, при которой необходимо соблюдать правило, что мигрировавшие составляющие новой ИС и оставшиеся компоненты унаследованной системы сохраняли интероперабельность.

 Реверс-инжениринг наследуемой системы как основной метод ее реструктуризации

В классической постановке решение задачи разработки программной системы (инжениринг) представляет собой спиральный цикл, основанный на итеративном чередовании этапов анализа, проектирования и программирования (реализации). Инжиниринг предполагает построение различных моделей программной системы, которые отражают различные взгляды на нее и служат основой для программирования. Система создается как последовательность исполняемых релизов, каждый из которых все более полно отвечает предъявляемым к системе требованиям.

В реальной жизни разработка программной системы редко начинается "с нуля". Обычно программная система имеет некоторую предысторию в виде совокупности программ, реализующих - частично или полностью - требования к системе. Ярким примером являются рассматриваемые здесь унаследованные системы. Поэтому разработка такой системы сопровождается реконструкцией (re-engineering) старой системы через непрерывный процесс формирования и уточнения требований предметной области. В этом процессе часто используется так называемый реверс-инжениринг программных кодов, при котором путем анализа текстов программ восстанавливается исходная модель-алгоритм программы, которая затем развивается теми же методами, что и при инжиниринге. Система должна быть сконструирована так, чтобы произвольные ее составляющие могли быть реконструированы при сохранении целостности системы.

Каковы главные цели реинжинирингового подхода?  Во-первых [6] , это создание оптимальной структуры, нацеленной на достижение определенной иерархии целей. Во-вторых, получение нового или добавленного качества в каждом элементарном процессе в отдельности и, в конечном итоге, на выходе всей системы в целом. В-третьих, это оптимизация предшествующих двух шагов с целью достижения максимальной гибкости и настраиваемости системы в непрерывно меняющейся окружающей среде. Определив цели реинжиниринга, можно с уверенностью утверждать, что макросистема, образованная из подвергнутых реинжинирингу систем, должна в целом обладать добавленным качеством, а также продуктивностью наряду с соответствующими свойствами гибкости и самоадаптации.

Метод создания промежуточного ПО - эмулятора доступа к устаревшей системе

Метод эмуляции или иммитации работы системы для каких-то внешних по отношению к ней систем стар как мир компьютеров (и не только). Начиналось это еще с эмуляции терминалов к мэйнфремам. Сейчас он запечатлен, например, в стандартах взаимодействия открытых систем (ISO OSI - Open Systems Interaction), в драйверах доступа к внешней аппаратуре из ЭВМ, в протоколе доступа к SQL-ориентированным базам данных (ODBC - Open Data Base Connectivity), многочисленным шлюзам к
унаследованным базам данных и др.

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

  1. Приобрести новый пакет бухгалтерского учета. К сожалению, существующим пакетом пользуются и другие системы фирмы, поэтому это будет само по себе  серьезным проектом
  2. Взять интерфейсные модули бухгалтерского учета непосредственно из старой системы и максимально их использовать
  3. Разработать ПО промежуточного уровня, работающее между приложением и пакетом бухгалтерского учета (эмулятор доступа). Прикладное ПО производит простые и четко определенные вызовы этого ПО. ПО промежуточного уровня превращает такой вызов в вызов системы бухучета. Это ПО можно разрабатывать отдельно от основного приложения. Если будет приобретен новый пакет бухучета, нам придется лишь переписать программы промежуточного уровня, поскольку наши приложения полностью изолированы от внутренних механизмов бухгалтерских программ (инкапсуляция доступа).
Авторы книги рекомендуют 3-й вариант как наиболее гибкий и эффективный. Как развитие идеи ПО промежуточного уровня к настоящему времени разработано несколько промышленных стандартов, поддерживающих эту архитектуру. Наибольшым успехом в среде разработки крупномасштабных распределенных ИС на сегодня (и на ближайшее будущее) пользуется OMG CORBA. В проектах малых и средних размеров сегодня более популярен Microsoft COM+ (не путайте с COM (Core Object Model) - ядром объектной модели у OMG!). Более подробно эти стандарты будут описаны ниже. Можно еще отметить, что в войне этих двух подходов достигнуто небольшое перемирие: созданы шлюзы для взаимодействия объектов из этих разных систем. Возможно возникновение и некоего общего стандарта по взаимодействию (как это было сделано, например, во 2-й версии CORBA: был создан GIOP - единый протокол для общения ORB (Object Request Broker) разных производителей).

Еще одним следствием эволюции подхода ПО промежуточного слоя стал компонентый метод разработки ПО. Это когда каждый модуль системы представляет из себя полностью автономный компонент, имеющей для доступа к себе некий стандартный API (Application Programming Interface). Причем, компоненты эти при определенных обстоятелствах (когда возможна совместимось) могут быть написаны на разных программных языках. В связи с бурным развитием распределенных (по разным ЭВМ) систем этот метод получил широкое распостранение.  В объектном подходе такие компоненты рассматривают как распределенные по сети объекты. Приемущества описываемой архитектуры в черезвычайной гибкости и масштабируемости получаемого на ее основе ПО.
Эволюция данного подхода будет рассмотрена немного ниже.

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

Часть II - Интеграция ИС


Попробуем описать возможную эволюцию роста некоей гипотетической ИС.

Этап 1
Допустим, когда-то была создана система S (см рис.). Эта система состоит из 3-х независимых между собой подсистем (Ss - Subsystem).
 

Этап 2
На очередном этапе развития системы возникла потребность взаимодействия между Ss1 и Ss2, Ss1 и Ss3.
Разработчик пишет интерфейсы для каждой связи Ss-i <-> Ss-j. Обозначим стрелками направления взаимодействия между подсистемами. Интерфейсы представляют из себя описания вызовов процедур, исполняемых на данной подсистеме. Стрелки - это передача параметров вызова и возвращаемый результат.


 
 

Этап 3
Далее, разработчик видит, что интерфейсы к Ss1 содержат пересекающееся множество описаний функций, и он решает объединить их в один интерфейс.


 

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


 

Этап 5
На сегодняшний день уже разработано несколько стандартов такого промежуточного ПО, среди них описываемые ниже OMG CORBA и Microsoft DCOM/COM+. Поэтому в какой-то момент рациональнее будет не изобретать велосипед, а использовать эти стандарты для построения их собственной реализации либо продукты стороних призводителей ПО. Это прямой путь к технической интероперабильности подсистем.
Еще можно добавить стандарт открытых систем и мы получим сегодняшнюю мечту многих разработчиков крупных ИС уровня корпорации.

Этап 6
Заглянем на секунду в будущее. Мы там видим, как подсистемы представляют из себя автономные объекты, которые живут своей жизнью и общаются друг с другом на уровне смысловых понятий их предметной области.
Это уже уровень семантической интероперабильности компонентов. По сложности стоящих перед исследователями задач он приближается к проблемам исскуственного интелекта.

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

Попробуем определить открытую систему через ее признаки.
Каким требованиям должна удовлетворять открытая информационная система?
Как минимум, необходимо обеспечить: Соблюдение стандартов открытых систем позволяет не привязываться к конкретному поставщику ПО или оборудования, интегрироваться с другим ПО. Но простого соблюдения этой идеологии недостаточно для построения ПО, от которого требуется простота и гибкость взаимодействия его компонентов (например, интерабельность по отношению к операционным системам и аппартным платформам). В [15] промежуточный слой (Middleware) определяется как слой программного обеспечения , который расположен между операционной системой и средствами управления компьютерными сетями снизу и прикладными системами сверху. В 7-уровневой модели ISO/OSI это находится на 6-7 уровнях (представления и прикладного).
Выше этот термин использовался в более узком смысле как ПО взаимодействия между подсистемами. В рамках объектной парадигмы и идеи интероперабельности в промежуточном слое вводится объектная модель - ядро, унифицированный язык спецификации интерфейсов объектов, универсальный механизм поддержки интероперабельности объектов, позволяющие создавать глобальные объектные пространства. Для формирования информационной архитектуры вводится расширяемый набор унифицицированных служб, которые используются как при конструировании прикладных систем, так и для формирования функционально законченных объектных средств промежуточного слоя, предлагающих конкретные виды услуг. Существенно, что и службы, и средства представляются однородно своими объектными интерфейсами, что позволяет обеспечить их интероперабельность. Потребность в создании единых промышленных стандартов промежуточного программного слоя стала одной из основных причин создания консорциума Object Management Group (OMG). Этот консорциум был основан в апреле 1989 года 11 компаниями, среди которых 3Com Corporation, American Airlines, Canon, Inc., Data General, Hewlett-Packard, Philips Telecommunications N.V., Sun Microsystems и Unisys Corporation. На сегодняшний день его членами является более 800 компаний, среди которых такие гиганты ИТ-индустрии как IBM, Oracle, Microsoft.

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

На этой иделогической платформе была разработана спецификация OMA - Object Management Architecture (Архитектура Управления Объектом). Ее ключевыми составляющими являются:

Нас более всего интересует первая компонента, так как именно CORBA является звеном, связывающим
разнородные приложения. Итак, CORBA (Common Objects Request Broker Architecture - общая архитектура объектных запросов) - это промышленный  стандарт на средства взаимодействия в неоднородных вычислительных средах, разработанный

Центральным звеном данной архитектуры является программа-брокер ORB, которая помогает формировать запросы на доступ к объектам, т. е. служит посредником (брокером) между клиентом и сервером. Системы CORBA состоят из объектов - компонентов с четко определенными интерфейсами, описывающими услуги, которые они предоставляют другим объектам системы (продолжение идеи технологии клиент-сервер). Указанные объекты могут являться как компонентами, реализованными на объектно-ориентированном языке типа C++ или Java, так и представлять собой простые оболочки крупных фрагментов кода (возможно, унаследованного).


На рисунке показан запрос(Request) клиента(Client) серверу - реализации объекта(Object Implementation) посредством ORB.

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

Брокеры ORB поддерживают и другие функциональные возможности. Например, интерфейс динамической активизации (Dynamic Invocation Interface, DII) и интерфейс динамических схем (Dynamic Skeleton Interface, DSI)  позволяют производить доступ к объектам, не используя заглушки и структуры (skeletons), специфические для конкретных типов объектов.

Каждый объект CORBA снабжается интерфейсом, определенным на языке описания интерфейса (Interface Definition Language). В основе его лежит простая объектная модель. IDL играет роль общепонятного рабочего языка, совместно используемого различными программами и системами. Брокер ORB передает объекту относящиеся к нему запросы и выполняет все необходимые процедуры преобразования между средой вызывающей программы и средой объекта.

Описание интерфейса на языке IDL состоит из имени интерфейса, списка наследуемых параметров (необязательный компонент) и списка операций и атрибутов. Для каждой операции указывается имя, возвращаемое значение, несколько параметров (хотя их может и не быть) и предложение raises (необязательный компонент). Атрибуты используются в качестве удобного варианта задания значения, допускающего чтение и запись; впрочем, в результате обработки запроса на чтение возвращаемое значение может быть пересчитано, так что атрибуты не должны представлять внутренние переменные (переменные-члены). Определения интерфейсов хранятся в репозитарии интерфейсов (Interface Repository).

Для удовлетворения потребности обеспечение взаимодействия брокеров ORB разных производителей консорциум OMG в 2-й версии CORBA определил спецификацию протокола Internet InterORB Protocol (IIOP), который должен использоваться брокерами ORB для поддержания взаимодействия в сети Internet. Стандартный пакет IIOP включает идентификатор требуемого объекта, обозначение вызываемой операции и передаваемые объекту параметры.

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

Архитектурой CORBA определены различные службы (сервисы) , расширяющие круг основных возможностей брокеров ORB. Некоторые из этих служб функционируют в качестве серверов поверх ORB, другие же следует встраивать в ORB, по крайней мере частично.

В области связующих технологий наиболее важными (можно сказать, основополагающими) для работы в среде ORB являются 3 сервиса:

В весьма ограниченных рамках данной статьи невозможно описать все 16 сервисов CORBA. Упомянем только лишь еще пару очень важных служб: Сервисы CORBA намного облегчают жизнь разработчикам приложений, потому как решают множество типичных задач, с которыми сталкиваются разработчики при создании среды взаимодействия между компонентами приложений. Вся документация по службам CORBA доступна на Web-странице http://www.omg.org/corba/cfindex.htm. Рассматривая различные элементы программного обеспечения (сами программы, объекты, функции, базы данных и т. д.) как компоненты, поддерживающие тот или иной набор функциональных возможностей, мы сталкиваемся с проблемой интеграции этих компонентов, разделенных разнообразными границами: Используя брокеры ORB, язык IDL и протокол IIOP, архитектура CORBA полностью решает проблему связывания программных компонентов в неоднородной вычислительной среде. Однако такое решение не является единственным. Модель распределенных объектов DCOM (Distributed Component Object Model) - это объектное связующее ПО, предложенное корпорацией Microsoft. Оно было разработано на основе созданных ранее и весьма популярных технологий этой компании - OLE (Object Linking and Embedding), COM и ActiveX. Технология объектной компоновки увидела свет в конце 80-х годов и первоначально предназначалась для поддержки широко известной ныне прикладной модели, ориентированной на данные и строящейся на базе составных документов. В начале 90-х годов вышла редакция OLE 2.0, в которой была представлена модель объектов-компонентов (Component Object Model, COM). Эта редакция вскоре стала именоваться просто OLE и в конечном итоге включила в себя широкий спектр технологий, реализуемых поверх COM.

В рамках модели COM был предложен стандарт двоичного интерфейса, позволившего организовывать службы (в виде динамически компонуемых библиотек или приложений) на разных языках программирования. Однако возможности этой модели существенно ограничивались тем, что она не поддерживала распределенные среды. В модели DCOM этот недостаток устранен: клиентам разрешено обращаться к имеющимся службам с удаленных компьютеров через сеть. Технологии OLE сравнительно недавно были переименованы в ActiveX, а термин OLE вновь обрел свой первозданный смысл.

Модель DCOM изначально разрабатывалась с целью обеспечить возможность интеграции приложений. Идея поддержки распределенной обработки появилась позднее. Характер этой объектной модели отражает историю ее создания. DCOM поддерживает объектно-ориентированную модель, но такую, которая кардинально отличается от классических образцов. Объект DCOM предоставляет сервис посредством одного или нескольких отличающихся друг от друга интерфейсов. Он может использовать все свои интерфейсы самостоятельно, а может прибегнуть к так называемому методу агрегирования и передать один или несколько интерфейсов в распоряжение других объектов DCOM. Агрегирование позволяет строить приложение из повторно используемых компонентов DCOM.

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

Узел-клиент может запросить объект DCOM (используя стандартные методы интерфейсов, реализуемые всеми объектами DCOM) через какой-либо конкретный интерфейс, идентифицируемый уникальным номером (UUID). Интерфейс считается постоянным: после того как он опубликован, его не разрешается изменять. Добавление новых функций в объект DCOM может производиться только путем создания новых интерфейсов.

Хотя между технологиями CORBA и DCOM имеются существенные различия, обе они поддерживают интеграцию компонентов. Так, DCOM позволяет преодолевать ограничения, связанные с сетевой средой, языком программирования, унаследованным ПО и парадигмой. Минусы этой модели связаны с тем, что она не является открытым стандартом. Хотя Microsoft и заявляет о своем сотрудничестве с такими авторитетными объединениями производителей, как IETF и W3C, в настоящее время модель DCOM доступна только на платформах Microsoft. Возможно, в ближайшие месяцы ситуация изменится, если другие компании начнут переносить DCOM на иные платформы, но пока что модель DCOM не обеспечивает прозрачности границ, связанных с операционной системой и фирмой-производителем.

Представители Microsoft утверждают, что с выходом в свет их нового продукта - сервера транзакций (Transaction Server) - модель DCOM станет полноценной системой масштаба предприятия, поддерживающей службы именования, событий, защиты, транзакций и жизненного цикла объектов. Мы надеемся, что безконфликтное сосуществование моделей CORBA и DCOM рано или поздно будет достигнуто; кстати, OMG уже рассматривает вопрос взаимодействия COM/CORBA.
 

Заключение

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

  1. Энн Мак-Крори  "Что такое унаследованные системы?"  : Computerworld, США, 1998.
  2. Е.Зиндер  "Реинжиниринг + информационные технологии = новое системное проектирование" : Корпорация LVS  : Открытые Системы, 1996, №1.
  3. Б.А.Позин  "Современные средства программной инженерии для создания открытых прикладных информационных систем" : РосНИИ ИТ и АП : СУБД, 1995,  №1.
  4. Ian Sommerville  "Software Engineering" : Addison-Wesley, 1996.
  5. Смирнов А.В., Юсупов Р.М.  "Технология параллельного проектирования: основные принципы и проблемы внедрения"  : Анализ и проектирование, 1997,  №2.
  6. Александр Громов, Мария Каменнова  "Особенности реализации больших проектов"  : Computerworld, 1996, №22.
  7. С. Кузнецов  "Введение в информационные системы" : СУБД, 1997,  №2.
  8. М.Ш. Левин   "Комбинаторное проектирование систем" : Анализ и проектирование, 1997,  №4.
  9. Наталья Дубова  "Интегрированные системы управления распределенной корпорацией"  : Открытые Системы, 1998, №1.
  10. Калиниченко Л.А., Когаловский М.Р.  "Стандарты OMG: Язык определения интерфейсов IDL в архитектуре CORBA"  : СУБД, 1996,  №2.
  11. Джошуа Гринбаум  "Достоинства и недостатки приложений масштаба предприятия": Computerworld, 1996, №31
  12. Питер Кин  "Впереди - перегрузки!": Computerworld, Директору информационной службы, 1998, №9.
  13. Геннадий Бережной  "Проблемы создания больших информационных систем": PCworld, 1998, №8.
  14. Ю. Пуха  "Объектные технологии построения распределенных информационных систем": СУБД, 1997,  №3.
  15. Д.О. Брюхов, В.И. Задорожный, Л.А. Калиниченко, М.Ю. Курошев, С.С. Шумилов "Интероперабельные информационные системы: архитектуры и технологии" : СУБД, 1995,  №4.
  16. К.В.Ахтырченко  "Применение технологии CORBA при построении распределенных информационных систем : Лаборатория информационного моделирования НИИВЦ МГУ: СУБД, 1998, №1-2.
  17. Глеб Ладыженский  "Распределенные информационные системы и базы данных" : Jet Infosystems, CIT Forum, 1996.
  18. Сергей Кузнецов  "Переносимость и интероперабельность информационных систем и международные стандарты": Jet Infosystems, CIT Forum, 1996.
  19. К. В. Ахтырченко, В. В. Леонтьев  "Распределенные объектные технологии в информационных системах": СУБД, 1997,  №5-6.
  20. Ахтырченко К.В., Аристархов А.А. "Опыт применения технологий CORBA, Java(RMI) при построении информационных систем с многозвенной архитектурой": CIT Forum, 1999.
  21. Dave Ensor, Ian Stevenson   "Oracle Design" : O'Relly, 1997
  22. Роберт Орфали, Дан Харки, Джери Эдвардс  "Основы CORBA" : изд. Малип, Москва, 1999
  23. Сергей Дунаев  "Интранет технологии" : Диалог-МИФИ, Москва, 1997

  24.