Конференция "Корпоративные базы данных'2001"

Технологии интеграции компании Oracle на основе XML и MiddlewareСвязующее программное обеспечение (англ.middleware; также переводится как промежуточное программное обеспечение, подпрограммное обеспечение, межплатформенное программное обеспечение),в информатике— широко используемый термин, означающий слой или комплект технологического программного обеспечения для обеспечения взаимодействия между различными приложениями, системами, компонентами.

Глеб Ладыженский, Oracle Россия

Введение

Обсуждение XML не сходит со страниц большинства компьютерных изданий, а сам язык и его применение в сфере электронного бизнеса является "темой года". На наш взгляд, такая популярностьПопулярность(от лат.populares, от populus — народ) — высокая степень востребованности чего-либо или кого-либо в определенной области жизни человека, например: популярность сетевых игр. На возникновение популярности в некоторых случаях влияет мода, и наоборот. Так же, как и мода, популярность привязана к определенному и, как правило, небольшому отрезку времени. Популярность зачастую смешивают с известностью, хотя это не одно и то же. вполне заслужена - не только и не столько как собственно языка разметки электронных документов, но и как универсального формата для обмена электронными документДокумент (от лат.documentum— «образец, свидетельство, доказательство») — материальный объект, содержащий информацию в зафиксированном виде и специально предназначенный для её передачи во времени и пространстве .ами.

Наибольший интерес вызывает возможность организации обмена электронными документами между приложениям при помощи стандарта XML. В силу самоопределенности XML-документов, приложения могут передавать друг другу данные через XML-документы, не имея никакой дополнительной информации о струткуре передаваемых данных. Дело в том, что приложения могут работать с XML-документами нормальным образом, не привлекая для этого соответствующий DTD (Document Type Definition), то есть в общем случае двум приложениям, чтобы понять один XML-документ, не нужно пользоваться каким-то общим DTD, задающим XML-документ. Как раз этот факт делает обмен документами между приложениями простым, гибким и надежным.

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

1. Поддержка XML в Oracle

Корпорация Oracle поставляет набор компонентов, утилит и интерфейсов для организации работы с XML-документами. Этот набор включает:

  • Сервер реляционных баз данных Oracle8i (скоро будет доступен Oracle9i)
  • Расширение сервера interMedia
  • Программы-анализаторы XML-документов для Java, C, C++, PL/SQL (XML Parsers)
  • XSLT-процессоры
  • Генераторы XML-классов (Java и C++)
а также специальные утилиты
  • XML SQL Utility for Java
  • XSQL Servlet
  • XML Transviewer Beans (в данной статье не рассматривается)

2. Стратегии хранения XML-документов в базе данных Oracle

Существуют три базовых стратегии хранения XML-документов в базе данных Oracle

(1). Хранение XML-документов (вместе с тэгами, то есть полностью) как отдельных неделимых объектов. Документы храняться как данные типа CLOB или BLOB.

(2). Хранение элементов XML-документов как данных (то есть собственно данных, без тэгов) в объектно-реляцонном представлении; фактически, в таблицах реляционной базы данных.

(3). Смешанное хранение документов и данных с использованием представлений (views)

Хранение XML-документов в базе как неделимых объектов подходит в том случае, когда их содержание статично и, что существенно, любое обновление документа сводится к его перезаписи в базе данных. Типичные примеры таких документов - статьи, книги, технические руководства, контракты и т.д.То есть документы в обычном значении этого слова, и они храняться в базе данных целиком и поставляются из нее вовне также целиком.

Oracle умеет хранить документы такого типа в различных форматах (MS Word, WordPerfect, Acrobat и так далее), более того, организовывать по ним эффективный изощренный поиск и в том числе с использованием морфологии русского языка. В смысле особенностей хранения и обработки XML-документы ничем не отличаются от документов других форматов и сервер Oracle хранит их как большие объекты и не делает никакого различия между ними и, например, документами в формате MS Word.

Если документ структурно корректен и содержит элементы, которые могут обновляться и вообще использоваться по отдельности, а не как единое целое, то такой документ можно назвать датацентрическим. Обычно такие документы включают один или несколько элементов со сложной структурой. Примерами могут послужить бланки заказов, финансовые счета и т.д., то есть документы на базе сложных форм. Сервер Oracle8i предоставляет адекватные структуры для хранения и обработки элементов сложных документов. Речь идет об объектах в базе данных Oracle, конкретно - о типах, ссылках и коллекциях (collections). Возможны два варианта отображения структурированных XML-документов в объектно-реляционные структуры базы данных Oracle:

  • Хранение аттрибутов элементов XML-документов только в таблицах базы данных и использование объектных представлений для воспроизведения структуры XML-документов;
  • Хранение структурированных элементов XML в объектных таблицБогуслав Таблиц (словацк. Bohuslav Tablic (Tablicz); 6 сентября 1769, Ческе Брезово, Словакия — 21 января 1832, Костолне Моравце, Словакия) — чешско-словацкий писатель, священник, деятель возрождения словаков-лютеран, подобно тому как Бернолак является деятелем возрождения словаков-католиков. Таблиц учредил в Пресбурге «Общество чешско-словацкой литературы и языка» с целью издавать на понятном народу чешском языке простонародные и школьные книги. Учреждение этого общества было причиной если не процветания словацкой литературы, то появления в пресбургском лицее кафедры словацкого языка, для чего общество собрало большой капитал. Занять кафедру приглашен был Юрай Палкович. Общество скоро распалось, но кафедра продолжала существовать. Молодёжь имела возможность слушать историю своего народа на родном языке. В 1812 г. Таблиц был одним из основателей нового «Литературного общества Горных Городов» (Bergstdte), задававшегося прежней целью; результатом было открытие кафедры словацкого языка и в Банской Штьявнице. Это общество также скоро распалось. Таблиц писал очень много и по различным специальностям. Первое место занимают его «Poesie» (Вацов, 1806-1812). К ним приложены биографии известных словацких деятелей. Его «Sloventi verovci» (Вацов, 1805-1809) — отрывки из произведений древних словацких писателей, в то время почти уже позабытых. Перу Таблица принадлежит также много книг для народа, изданных двумя упомянутыми обществами.ах

Будучи сохраненными в объектно-реляционной базе данных, элементы документа становятся объектом различных операций, таких как выборка, обновление и т.д., осуществляемых с помощью утверждений языка SQL. Собственно процедура отображения документа в объектно-реляционную базу данных, равно как и различные поисковые операции над данными-элементами документа, занесенными в базу данных, выполняются программой XML SQL Utility (о ней подробнее будет расказано ниже).

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

Наконец, если необходимо обрабатывать документы смешанных типов, когда имеются как структурированные, так и неструктурированные данные в формате XML, рассматриваемые, тем не менее, как единый документ, целесообразно использовать представления Oracle. Они позволяют конструировать объекты "на лету", комбинируя данные, которые храняться в различном виде. Таким образом, можно хранить структурированные данные (такие, например, как данные о сотрудниках, заказчиках и т.д.) в одной точке с использованием объектно-реляционных таблиц, и хранить неструктурированные данные (такие как описания и комментарии) как данные типа CLOB. Когда необходимо обновить данные в целом, можно попросту создать структуру из различных "кусочков" данных с использованием конструктора типов в операторе SELECT, примененном к view. Утилита XML SQL далее даст возможность поиска сконструированных данных в view как отдельного XML-документа.

3. Обмен документами между приложениями

В общем случае, обмен данными между приложениями, которые разделяют некий общий DTD, сводится к выполнению следующих действий:

  1. Приложение, передающее данные (источник) генерирует XML-документ с использованием общего DTD.
  2. Источник направляет сгенерированный XML-документ приложению, принимающему данные (приемник)
  3. Приемник анализирует XML-данные, выполняет над ними свои собственные операции и записывает данные в базу данных, с которой он (приемник) работает.
  4. Приемник становится источником и направляет оригинальный XML-документ (или, возможно«Возможно» (фр.Peut-tre)— фильм режиссёра Седрика Клапиша 1999 года., новый документ, сгенерированный им самим) следующему приложению в цепочке обмена данными.

Существует несколько сценариев организации обмена XML-данными, которые рассматриваются ниже.

4. Обмен XML-данными с использованием общего DTD

На рис.1 приведен пример такого обмена. Здесь пользователь вводит запросЗапрос— это формулирование своей информационной необходимости пользователем некоторой базы данных, как, например, поисковой системы. Для составления запроса используется язык поисковых запросов. посредством использования Web-формы. XML-данные генерируются компонентом XSQL Servlet. XML-документ структурирован в соотвествии с некоторым DTD, который далее рассматривается как разделяемый несколькими приложениями. Приложение-приемник получает XML-документ, выполняет его анализАнализ (др.-греч. — разложение, расчленение)— операция мысленного или реального расчленения целого (вещи, свойства, процесса или отношения между предметами) на составные части, выполняемая в процессе познания или предметно-практической деятельности человека. с привлечением программы-анализатора для Java и записывает XML-данные в свою базу данных с помощью XML SQL Utility.

Рис.1. Пример обмена XML-данными с использованием общего DTD

Возможен иной вариантВариант (фр.variante, от лат.varians, родительный падеж variantis — меняющий, изменяющийся) — одна из нескольких редакций какого-либо произведения (литературного, музыкального и т. п.) или официального документа; видоизменение какой-либо части произведения (разночтения отдельных слов, строк, строф, глав). развития событий, представленный на рис.2. Некий заказчик оформляет заказ на покупку, обращаясь к Web-странице. Ввод заказов обеспечивает приложение Электронный магазин. Введенный заказ передается некоторому приложению Бухгалтерия, и, после обработки, направляется приложеним Склад и Поставка. Каждое приложение в цепочке читает и обрабатывает XML-данные так, как это предписано их логикой и записывает некоторые из этих данных в их собственные базы данных. Каждое приложение в цепочке передает следующему исходный или модифицированный в процессе обработки XML-документ.

Рис.2. Альтернативный вариант обмена XML-данными с использованием общего DTD

Ниже расписаны роли каждого из приложений.

Приложение Электронный магазин

  1. Приложение генерирует форму заказа
  2. ЗаказчикЗаказчик — лицо (физическое или юридическое), заинтересованное в выполнении исполнителем работ, оказании им услуг или приобретении у продавца какого-либо продукта (в широком смысле). Иногда при этом предполагается оформление заказа, но не обязательно. использует форму для запроса к базе данных для поиска доступных товаров, вводит необходимые для оформления заказа данные и подтверждает заказ
  3. Приложение получает заказ и на его основе генерирует XML-документ на основе общего DTD
  4. Приложение направляет DTD и XML-документ в Бухгалтерию

Приложение Бухгалтерия

  1. Получает и обрабатывает заказ (XML-документ), полученный из Электронного магазина
  2. Преобразует XML с использованием соответствующего стиля в представление заказа навигатора, с которым работает бухгалтер
  3. Бухгалтер запрашивает базу данных о заказчиках, проверяет кредитную информацию по заказчику, подтверждает или отвергает заказ.
  4. Приложение обновляет соответствующие записи в таблицах базы данных используя для этого данные, полученные из XML-документа
  5. Приложение на основе общего DTD генерирует новый XML-документ (суть модифицированный заказ), содержащий все привнесенные бухгалтерией значения и передает его следующему в цепочке приложению.

Приложение Склад и Поставка

  1. Получает и обрабатывает XML-документ используя для этого DTD также полученный из бухгалтерии
  2. Обновляет записи в базе данных поставок , используя для этого данные о заказчике и заказе, взятые из XML-документа
  3. Приложение генерирует внешнее представление XML-документа для навигатора, которыей используется пользователем-кладовщиком
  4. Кладовщик отпускает товар заказчикЗаказчик — лицо (физическое или юридическое), заинтересованное в выполнении исполнителем работ, оказании им услуг или приобретении у продавца какого-либо продукта (в широком смысле). Иногда при этом предполагается оформление заказа, но не обязательно.у.

5. Обмен документа без использования общего DTD

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

Хорошим способом будет использование стилей для преобразования исходного документа в новый, структура которого соответствует структуре таблицы поддерживающей базы данных. В этом случае можно было бы получить XML-документ, соответствующей структуре таблицы, используя XML SQL Utility. Дополнительно можно было бы получить таким образом и "локальный" DTD и использовать его для "оформления" приходящих "внешних" по отношению к этой базе данных документов. Общая схема описанного процесса представлена на рис.3.

Рис.3. Обмен XML-документами при отсутствии общего DTD

XML SQL Utility создает DTD в отдельном файле или добавляет его к сгенерированному XML-документу в тэге DOCTYPE. DTD можно использовать для разработки стилей, которые будут использованы для преобразования исходного XML-документа до записи в базу данных. Эта возможность проиллюстрирована рис.4.

Рис.4. Использование DTD для разработки стилей

Очевидны естественные ограничения DTD. Основная неприятность состоит в том, что DTD не содержит информации о типах данных. Собственно основным и единственным типов данных документов, описывемых DTD, является строка символов. Ясно, что при извлечении данных из базы данных будет потеряна такая важная характеристика, как тип данных. Это означает, что приложение использующее DTD, должно само присваивать типы данным, опираясь на контекстКонтекст (от лат.contextus— «соединение», «связь»)— законченный отрывок письменной или устной речи (текста), общий смысл которого позволяет уточнить значение отдельных входящих в него слов, предложений, ит.п. Это условия конкретного употребления языковой единицы в речи (письменной или устной), её языковое окружение, ситуация речевого общения., то есть выводя типы из элементов, которым они приписаны.

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

  1. Java-приложение использует XML SQL Utility для генерации DTD, который отражает структуру таблиц поддерживающей базы данных
  2. Приложение передает DTD генератору XML классов для Java, создающему классы, которые будут использованы для построения Web-формы, предоставляемой для работы пользователя
  3. Форма динамически создается компонетами Java Server Page, Java Servlet, и т.д. с использованием сгенерированных классов
  4. Когда пользователь заполняет форму и отправляет ее на обработку, сервлетСервлет является Java-программой, выполняющейся на стороне сервера и расширяющей функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ. отображает данные формы в соответствующие структуры XML и компонент XML SQL Utility записывает данные в базу данных

6. Архитектура для обмена XML-данными с применением Middleware

Существует несколько возможностей по передаче XML-документов между приложениями. Во-первых, их можно передавать попросту как файлы, используя для этой цели FTP, NFS, SMB либо другие известные протоколы передачи файлов. Во-вторых, можно использовать HTTP. В этом случае приложение, которому необходим XML-документ, запрашивает по HTTP сервлет. Третьей возможностью является использование Web-форм.

Наконец, можно использовать компонент Oracle8i Server под названием Advanced Queuing (специализированное средство для управления очередями). Рассмотрим эту возможностьВозможность — направление развития, присутствующее в каждом явлении жизни; выступает и в качестве предстоящего, и вполне объяснимо рациональным путем: в каждой возможности присутствует вероятная невозможность, «возможность невозможного». Возможность не определяется познанием того, что может быть. Познание вероятностей, возможностей не всегда влияет на нашу возможность. На изучении возможности основывается, главным образом, исследование бытия и события. более подробно. Oracle Server может инициировать отправку XML-документа через Net8 и JDBC в качестве сообщения одному или нескольким приложениям-приемникам, используя для этой цели Oracle Advanced Queuing (AQ). Приложение-приемник извлекает XML-документ из входной очередиОчередь— определённый порядок в следовании или в движении чего-либо или кого-либо. сообщений и обрабатывает его. Это как раз тот подход, который используется Oracle для интеграции приложений. Здесь сообщения в формате XML направляются инициирующими приложениями некоторому серверу, который можно было бы назвать сервером сообщений (AQ Hub) - по отношению к тем приложениям, которые хотели бы получать сообщения, циркулирующие в системе. При этом может быть использован стандартный механизмМеханизм (греч. mechan— машина)— это совокупность совершающих требуемые движения тел (обычно— деталей машин), подвижно связанных и соприкасающихся между собой. Механизмы служат для передачи и преобразования движения. взаимодействия "публикация/подписка", который уже реализован в Oracle8i.

На рис.5 представлена архитектура системыСистема (от др.-греч. — «сочетание»)— множество взаимосвязанных элементов, обособленное от среды и взаимодействующее с ней, как целое., в которой различные приложения асинхронно взаимодействуют, направляя друг другу стандартизованные (XML) сообщения, извлекают из них собственно данные, размещая их в локальных, принадлежащих им базах данных и генерируя сообщения на основе данных, хранящихся в локальных базах. Вся инфраструктура целиком строится на основе продуктов Oracle, ядром системы является сервер Oracle8i Enterprise Edition. Использование только Net8 является некоторым ограничением архитектуры, не позволяя расширить ее до масштабов глобальной сети, однако не будем забывать, что пересылку данных можно будет организовать и другими способами (FTP, HTTP).

Рис.5. Архитектура системы с асинхронной передачей стандартизованных сообщений

Рассмотрим более общую ситуацию, когда необходимо организовать обмен документами между двумя независимыми организациями. Пусть одна из них использует приложения Oracle Applications (на основе СУБД Oracle), другая - какие-либо другие приложения и не обязательно на основе Oracle. Более того, в рамках локальной сети первой организации для обмена электронными документами между различными приложениями используется описанная выше схема на основе Net8 и AQ, в другой же организации в качестве Message Oriented Middleware (MOM) используется IBM MQSeries. Очевидно, что в такой неоднородной среде необходим посредник, умеющий работать с различными системами MOM. В этом качестве Oracle предлагает использовать продукт Oracle Message Broker, реализованный на основе спецификации Java Message Service (JMS).

 

Мы рекомендуем еще посмотреть:

Пресс-релизПресс-релиз— сообщение для прессы; информационное сообщение, содержащее в себе новость об организации (возможно и частном лице), выпустившей пресс-релиз, изложение её позиции по какому-либо вопросу и передаваемое для публикации в СМИ. для вывода на принтерВерсия для вывода на принтер

Новости наших партнеров. Энфорта запускает сети в следующих 40 городах России.

17 января 2008 г.

Энфорта продвигает WiMAX в новые 40 городов России, используя дополнительные инвестиции.

Москва – Среда, 16 Января 2008 года.

    Энфорта объявляет об увеличении зоны покрытия своей сети до 65 крупнейших городов России к концу 2008 года. Сегодня компания предоставляет услуги высокоскоростного доступа в Интернет, телефонии и построения корпоративных сетей (VPN) при помощи WiMAX и других технологий в 25 региональных центрах России.

    ЗаявлениеЗаявление— просьба гражданина о содействии в реализации его конституционных прав и свобод или конституционных прав и свобод других лиц, либо сообщение о нарушении законов и иных нормативных правовых актов, недостатках в работе государственных органов, органов местного самоуправления и должностных лиц, либо критика деятельности указанных органов и должностных лиц. о планах дальнейшего регионального развития Энфорта было сделано сразу после утверждения программы дополнительного инвестирования в проект 40 миллионов долларов акционерами компании, к которым присоединился инвестиционный фонд Bessemer Venture Partners.

    Основанная в 1911 году, компания Bessemer является старейшим инвестионно-венчурным фондом в США с офисами в Силиконовой долинеДолине (серб. Долине, венг. Volgyes)— село в Сербии, в общине Канижа, в Северно-Банатском округе автономного края Воеводина, в историко-географической области Банат. По переписи населения Сербии 2002 года в селе проживали 516 жителей (по переписи населения 1991 года— 367 жителей)., Бостоне, Нью-Йорке, Шанхае, Мумбаи, Бангкоке и Тель-Авиве. "Это первая прямая инвестиция Bessemer Venture Partners в России, и мы гордимся, что этот фонд начал участвовать в развитии как Энфорты, так и России в целом", говорит Президент Энфорты Ли Спаркман.

    "Бизнес-предложение WiMAX приобретает абсолютноАбсолютный (лат.absolutus — законченный, неограниченный, безусловный, совершенный) — абсолютный означает то, что рассматривается само по себе, без отношения к чему-либо другому, противопоставляется относительному. новые масштабы в случае использования этого решения для создания первичной инфраструктуры для развивающейся экономики", комментирует ПартнерПартнёр(фр.partenaire — участник)— компаньон, товарищ, соучастник в каком-либо деле. Bessemer Venture Partners Рон Элвелл, присоединившийся к Совету Директоров Энфорты. "Мы считаем, что Энфорта обладает одними из самых интересных перспектив WiMAX в мире". Остальные инвесторы компании - Baring Vostok Capital Partners, Sumitomo Corporation и Европейский Банк реконструкции и развития (EBRD), также принимают участие в новой инвестиционной программе Энфорты.

    ПервыеВселенная «Механоидов»— придуманная фантастическая реальность, существующая в компьютерной игре «Механоиды». восемь новых городов проекта стартуют уже в первом квартале 2008 года, ими станут Ижевск, Нижний Новгород, ВолгоградВолгоград — город на юго-востоке европейской части России, административный центр Волгоградской области. Город-герой, место битвы за Сталинград. Город с 1589 по 1925 годы носил название Царицын, а с 1925 по 1961 годы — Сталинград (подробнее: История Волгограда)., ЛипецкЛипецк— город в России, административный центр Липецкой области., Томск, Комсомольск-на-АмуреКомсомольск-на-Амуре— город в России, административный центр Комсомольского района Хабаровского края. Занял третье место среди городов II категории во всероссийском конкурсе «Самый благоустроенный город России» в 2007 году. Население 269827 человек (1 января 2010)., Находка и УссурийскУссурийск— город в России, административный центр Уссурийского городского округа (до 2004 года— района) Приморского края.. "К концу года Энфорта будет оказывать услуги на территории, где проживает в общей сложности 55 миллионов человек", говорит Генеральный директорДиректор (от лат.dirigere, directum - отdi и regere — «управлять», мн. ч.— директора)— управляющий, руководитель компании, предприятия. Традиционно директор— высшая должность в предприятии, наделённая полномочиями выбора стратегии развития компании, работы с кадрами, отладкой финансовых потоков предприятия. Однако при ряде условий в некоторых организациях должность директора может быть формальной или отсутствовать вообще. Энфорты Виктор Ратников. "Российский рынок беспроводного широкополосного доступа все еще находится на раннем этапе своего развития, и Энфорта планирует быть в числе его лидеров".

***

О компании
Проект Энфорта был основан в октябре 2003 года с целью предоставления услуг высокоскоростного доступа в Интернет в регионах России на базе беспроводного стандарта WiMAX и других прогрессивных технологий. Энфорта является членом WiMAX Форума – ведущего отраслевого консорциума по разработке и продвижению стандарта IEEE 802.16.
СегодняСегодня — наречие, указывающее (кроме телевизионных рекламных анонсов) на «текущий» 24-часовой отрезок времени (с 00 до 24 часов по местному времени). компания обслуживает более 13 000 корпоративных клиентов в 25 регионах, а в 2008 году география проекта составит 65 городов России.
Более подробную информацию о текущей деятельности и планах развития Энфорта можно получить на сайте www.enforta.ru или по электронной почте .

Контактная информация  

Все пресс-релизы 

Поиск:
Авторизация
Логин
Пароль
Регистрация >
  Мероприятия « 2009 »   
« август » 
Пн  310172431
Вт  4111825 
Ср  5121926 
Чт  6132027 
Пт  7142128 
Сб 18152229 
Вс 29162330 
2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование