Методология интеграции гетерогенных информационных систем по свойствам неорганических веществ (1090084), страница 36
Текст из файла (страница 36)
Пример XML-документа, возвращающегопредметному посреднику отфильтрованный список свойств, рассмотренных винформационном ресурсе, приведен на рис. 5.2.6. Как видно, в документе описан наборсвойств с глобальными идентификаторами PropertyID, полученными от предметногопосредника.191Рис. 5.2.6. Пример XML-документа, описывающего свойства, освещенные винформационном источнике (снимок экрана из Microsoft IE).Полный список свойств, освещенных в ИС “Кристалл” приведен в табл.Таблица 5.1.
Свойства веществ, описанные в ИС “Кристалл”.№1345678910111213141516171819202122232425262728СвойствоТеплоемкостьАналитический обзорСостав соединенияУдельная теплоемкостьПлотностьТвердостьРастворимостьТемпература плавленияТемпература КюриХарактеристика кристаллической структурыПараметры элементарной ячейкиТепловое расширениеТеплопроводностьДиэлектрическая проницаемостьТангенс угла диэлектрических потерьПьезоэлектрические коэффициентыКоэффициенты электромеханической связиУпругие постоянныеПолоса пропусканияПоказатели преломленияКоэффициенты СелмейераКоэффициенты линейного электрооптического эффектаНелинейные оптические свойстваПьезооптические и упругооптические коэффициентыРаспространение и затухание упругих волнАкустооптические свойстваЛитератураПодкоманда Get_PropertiesValues метода GetData предназначена для запросазначений свойств, освещаемых в рамках интегрируемого источника с возможностью192фильтрации, задаваемой аналогично фильтрации в подкоманде Get_AllList с помощьюXML-документа.
Пример XML-документа, возвращающего предметному посредникуотфильтрованный список значений свойств в информационном ресурсе, приведен нарис. 5.2.7. Как видно, в документе описаны значения акустооптических свойств(PropertyID=27) из БД “Кристалл” (DBPropID=”crystal.*”) для химического веществаGaAs (SystemID=1, SubstanceID=86, ModificationID=0).Рис.
5.2.7. Пример XML-документа, описывающего значения свойства винформационном источнике (снимок экрана из Microsoft IE).Следует отметить, что у разных свойств в разных информационных источникахприсутствуютразличныеатрибутыи,следовательно,структураXML-узлаPropertyXML не является жестко фиксированной. Для того, чтобы отобразить этиданные конечному пользователю или подать на вход СППР, используют XSLTпреобразования, приводящие данные к требуемому виду.5.2.4. Разработка предметного посредникаПредметный посредник является точкой входа в интегрированную ИС иреализует ответы на запросы с использованием информации, размещенной винтегрированных источниках, доступ к которым он осуществляет через программныеадаптеры. Предметный посредник реализован в виде Web-сервиса, доступного поадресу https://meta.imet-db.ru/eii/Service.asmx с использованием протокола SOAP.Реализация предметного посредника в качестве Web-сервиса, оперирующего XMLдокументами, позволяет успешно осуществлять доступ к нему с любой современнойпрограммной платформы, на которой возникнет необходимость в использованииданных из интегрированной ИС.Было разработано общее описание Web-сервиса предметного посредника наязыке WSDL [180].
Используя это WSDL-описание можно автоматически создать вомногих современных программных средах прокси-классы для осуществления доступа к193предметному посреднику и, тем самым, использовать интегрированную ИС посвойствам неорганических веществ.Рассмотрим кратко назначение основных методов Web-сервиса предметногопосредника интегрируемой ИС. Метод GetMataInfo используется для полученияверсии предметного посредника и предназначен для реализации механизма поддержкиверсий. Текущей версией предметного посредника является версия 1.0.МетодProcessCommandиспользуетсяпрограммнымиадаптерамиинтегрируемых ИС для определения глобальных идентификаторов сущностейпредметной области.
Другими словами, этот метод используется для разрешениясинтаксических, структурных и семантических конфликтов, описанных в разделах 2.6.2и 2.6.3, соответственно. Этот метод может быть вызван только с использованиемучетных данных (поля Login и Password), определенных в таблице DBInfo. Такимобразом, правом вызова этого метода обладают только интегрируемые ИС.
В качествевходного аргумента в этот метод передается XML-документ, содержащий описаниесущностей, глобальные идентификаторы которых необходимо получить программномуадаптеруинтегрируемогоисточника,чтобывдальнейшемосуществлятьвзаимодействие с предметным посредником. Пример XML-документа показан нарис. 5.2.8.Рис. 5.2.8. Пример XML-документа, подаваемого на вход предметного посредника дляполучения глобальных идентификаторов сущностей (снимок экрана из Microsoft IE).Предметный посредник производит обработку всех узлов, соответствующихсущностям предметной области и расположенных в XML-документе согласно XPathвыражениям:“/MetaInfo/ChemicalSystemList/ChemicalSystem” – путь для химических систем (наоснове таблицы Meta_SystemInfo),194“/MetaInfo/ChemicalSubstanceList/ChemicalSubstance”–путьдляхимическихвеществ и их модификаций (на основе таблиц Meta_SystemInfo, Meta_SubstanceInfoи Meta_ModificationInfo),“/MetaInfo/ModificationList/Modification” – путь для разрешения семантическихконфликтов в обозначениях кристаллических модификаций (на основе таблицыMeta_ModificationRegistry),“/MetaInfo/PropertyList/Property” – путь для разрешения семантических конфликтовв обозначениях свойств информационного источника (на основе таблицыMeta_PropertyInfo).В результате обработки происходит определение глобальных идентификаторовсоответствующихсущностейнаосновезаписейвтаблицахметабазыисоответствующих им статусов.
После этого данная информация записывается в узлыXML-документа, соответствующие сущностям, а сам XML-документ возвращается вкачестве ответа Web-сервиса. Пример такого документа-ответа, соответствующегодокументу-запросу с рис. 5.2.8, приведен на рис. 5.2.9.Рис. 5.2.9. Пример XML-документа, передаваемого в качестве ответа Web-сервиса назапрос глобальных идентификаторов (снимок экрана из Microsoft IE).Следует отметить, что данный XML-документ соответствует документу-запросуна рис.
5.2.8 и содержит глобальные идентификаторы заданные в атрибутах SystemID,SubstanceID, ModificationID, PropertyID и соответствующие им статусы глобальныхидентификаторовватрибутахStatus_SystemID,Status_SubstanceID,Status_ModificationID, Status_PropertyID.
Необходимо отметить, что в узлах документазапроса, соответствующих путям “/MetaInfo/ChemicalSystemList/ChemicalSystem” и“/MetaInfo/ChemicalSubstanceList/ChemicalSubstance” могут содержаться сущности,описанные различными способами. Например, химическое вещество может быть195представлено в качестве HTML-формулы, заданной в атрибуте fromHTML и в качествеиерархической структуры описывающей соответствующее вещество.МетодыchildEIIService_GetMetaInfo,childEIIService_GetDataпредметногопосредникаchildEIIService_Supports,предназначеныдлянепосредственных вызовов методов GetMetaInfo, Supports, GetData программныхадаптеров источников данных интегрируемых ИС.
При этом для вызова этих методовдолжна использоваться учетная запись пользователя интегрированной ИС (из таблицыUserInfo), а нужный источник идентифицируется соответствующим учетным именем(поле Login из таблицы DBInfo). Эти методы могут использоваться в том случае, когдапользователям предметного посредника требуется непосредственно извлечь данные изинтегрируемых источников без их обработки предметным посредником. Этавозможность вводится для обеспечения гибкости в работе пользователей и реализацииими сценариев взаимодействия с интегрируемыми ИС, которые не предусмотреныпредметным посредником.Метод GetAllCommulativeData предметного посредника предназначен дляизвлечения информации, содержащейся в интегрированной ИС, объединяемойпредметным посредником. При вызове этого метода предметный посредникопрашивает все информационные источники интегрируемых ИС, анализирует ихответы и создает XML-документ, содержащий результирующий ответ предметногопосредника на запрос пользователя.
Для успешного вызова метода необходимопередать учетные данные пользователя интегрированной ИС, один из трех типовкоманды Get_AllList, Get_PropertiesList или Get_PropertiesValues, которые былирассмотрены при описании метода GetData программного адаптера интегрируемой ИС.Также на вход метода подается XML-документ с описанием параметров запроса.Рассмотрим результаты работы этого метода на примере вызова командыGet_PropertiesValues с передачей XML-документа с описанием параметров запроса,показанного на рис.
5.2.10.196Рис. 5.2.10. Пример XML-документа, задающего параметры запроса при вызове методаGetAllCommulativeData предметного посредника (снимок экрана из Microsoft IE).Отметим, что, так как используется команда GetAllCommulativeData, то вданном случае пользователь запрашивает значения свойств химических сущностей.РассмотримкраткопараметрызапросадлякомандыGetAllCommulativeData,передаваемые с помощью XML-документа, показанного на рис. 3.16. Поскольку винтегрированной ИС может содержаться большое количество разных свойств ихимических сущностей, запрос уточняется с помощью XML-документа. В этомдокументеприсутствуетузел,соответствующийXPath-пути“/root/PropertyID”,отвечающий за фильтрацию запрашиваемых свойств.
В нашем примере в этом узлеприсутствует только один дочерний узел item со значением 27, это означает, чтозапрашиваютсятолькозначениясвойствасглобальнымидентификаторомPropertyID=27, что соответствует акустооптическим свойствам.Узлы, соответствующие XPath-путям “/root/SystemID”, “/root/SubstanceID” и“/root/ModificationID” отвечают за фильтрацию запрашиваемых химических сущностей.При этом узел “/root/SystemID” фильтрует сущности на уровне химических систем,“/root/SubstanceID” – на уровне химических веществ и “/root/ModificationID”– на уровнехимических модификаций.
В нашем примере на рис. 3.16 накладывается фильтр похимической системе с глобальным идентификатором SystemID=1 (химическая системаAs-Ga), по химическому веществу с глобальным идентификатором SystemID=1,SubstanceID=86(химическоевеществоGaAs).Похимическоймодификациинакладывается фильтр, указывающий, что глобальный идентификатор химической197модификации ModificationID не должен принимать значения 1 и 2 (т.к. атрибут NotInузла “/root/ModificationID” равен единице).Отметимналичиеещедвухузлов,соответствующихXPath-путям“/root/ExpertRating”, “/root/DescribeChemicalEntities”. Узел ExpertRating указываетпредметному посреднику на необходимость добавления в XML-документ с ответомзначений экспертного рейтинга приведенной информации. Экспертный рейтингдобавляется к соответствующим узлам результирующего документа в качествезначения атрибута Rating.