способ получения интерфейсов веб-служб из метаданных форм и таблиц

Классы МПК:G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций
Автор(ы):
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2008-04-03
публикация патента:

Изобретение относится к области компьютерных приложений. Техническим результатом является адаптация компьютерных приложений для работы в различных окружениях. Раскрывается система и способ получения интерфейсов веб-службы из метаданных формы и таблицы. Способ использует подсистему обнаружения, чтобы получать службы, которые доступны на сервере приложений, находит описания метаданных служб на сервере приложений и использует обнаруженные службы и описания метаданных, чтобы создавать интерфейсы веб-служб, так что служба доступна с помощью языка описания веб-служб. 3 н. и 10 з.п. ф-лы, 4 ил. способ получения интерфейсов веб-служб из метаданных форм и таблиц, патент № 2463653

способ получения интерфейсов веб-служб из метаданных форм и таблиц, патент № 2463653 способ получения интерфейсов веб-служб из метаданных форм и таблиц, патент № 2463653 способ получения интерфейсов веб-служб из метаданных форм и таблиц, патент № 2463653 способ получения интерфейсов веб-служб из метаданных форм и таблиц, патент № 2463653

Формула изобретения

1. Способ получения интерфейсов веб-служб из метаданных форм и таблиц, содержащий этапы, на которых:

принимают в подсистеме обнаружения первый запрос на службы, которые доступны на сервере приложений;

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

принимают второй запрос на описание этой службы;

извлекают метаданные форм, относящиеся к упомянутой форме, на сервере приложений;

определяют из метаданных форм, какие поля из каких таблиц показаны в упомянутой форме;

извлекают метаданные таблиц, относящиеся к свойствам этих полей; и

используют метаданные форм и метаданные таблиц, чтобы ответить на второй запрос описанием упомянутой службы в формате языка описания веб-служб (WSDL),

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

2. Способ по п.1, в котором второй запрос представляет собой WSDL-запрос.

3. Способ по п.1, дополнительно содержащий этап, на котором принимают первый запрос и второй запрос на сервере используя протокол передачи гипертекста (HTTP) и принимают запросы по простому протоколу доступа к объектам (SOAP) на предмет взаимодействий со службой, включая вставку и обновление.

4. Способ по п.1, в котором запись веб-службы - в формате средства обнаружения веб-служб, известном как формат DISCO.

5. Способ по п.1, в котором абстракции, предназначенные для доступа к ним через веб в качестве веб-службы, регистрируются в таблице базы данных.

6. Способ по п.5, в котором подсистема обнаружения заполняется из таблицы базы данных.

7. Способ по п.1, в котором объект веб-службы в упомянутом ответе содержит унифицированный указатель информационного ресурса (URL), указывающий на WSDL-описание упомянутой службы.

8. Способ по п.1, в котором XML-тип строится из метаданных форм и метаданных таблиц и имени упомянутой службы.

9. Способ по п.8, в котором каждое из полей, показываемых в упомянутой форме, представляется как поле XML-типа используя имя и тип этого поля из метаданных таблиц.

10. Считываемый компьютером носитель, содержащий исполняемый компьютером код для получения интерфейсов веб-служб из метаданных форм и таблиц, при этом компьютерный код содержит код для выполнения этапов, на которых:

принимают в подсистеме обнаружения первый запрос на службы, которые доступны на сервере приложений;

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

принимают запрос на языке описания веб-служб (WSDL) на описание этой службы;

извлекают метаданные форм, относящиеся к упомянутой форме, на сервере приложений;

определяют из метаданных форм, какие поля из каких таблиц показаны в упомянутой форме;

извлекают метаданные таблиц, относящиеся к свойствам этих полей; и

используют метаданные форм и метаданные таблиц, чтобы ответить на WSDL-запрос описанием упомянутой службы в формате WSDL,

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

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

12. Считываемый компьютером носитель по п.10, в котором запись веб-службы в упомянутом в ответе содержит унифицированный указатель информационного ресурса (URL), указывающий на WSDL-описание упомянутой службы.

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

принимать в подсистеме обнаружения первый запрос на службы, которые доступны на сервере приложений;

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

принимать запрос на языке описания веб-служб (WSDL) на описание этой службы;

извлекать метаданные форм, относящиеся к упомянутой форме, на сервере приложений;

определять из метаданных форм, какие поля из каких таблиц показаны в упомянутой форме;

извлекать метаданные таблиц, относящиеся к свойствам этих полей;

строить XML тип, содержащий имя упомянутой службы и поле, соответствующее каждому из полей, показываемых в упомянутой форме, используя имя и тип этого поля из метаданных таблиц; и

отвечать на WSDL-запрос описанием упомянутой службы в формате WSDL, содержащем упомянутый XML тип,

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

Описание изобретения к патенту

Уровень техники

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

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

Сущность изобретения

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

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

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

Краткое описание чертежей

Фиг.1 является блок-схемой вычислительной системы, которая может работать в соответствии с формулой изобретения;

фиг.2 является иллюстрацией блок-схемы способа получения интерфейсов веб-службы из метаданных формы и таблицы;

фиг.3 является иллюстрацией системы, которая осуществляет способ на фиг. 2; и

фиг.4 является иллюстрацией частей способа, который помогает в осуществлении системы.

Описание

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

Следует также принимать во внимание, что если термин не задан в явной форме в данном патенте с помощью предложения "При использовании в данном документе термин '____', заданный таким образом, чтобы означатьспособ получения интерфейсов веб-служб из метаданных форм и таблиц, патент № 2463653 " или аналогичного предложения, отсутствует намерение ограничивать значение данного термина, явно или косвенно, вне его очевидного или обычного значения, и этот термин не должен интерпретироваться быть ограниченным в области применения на основе любого утверждения, сделанного в любом разделе данного патента (за исключением формулировок формулы изобретения). В рамках, в которых на любой термин, приведенный в формуле изобретения в конце данного патента, ссылаются в данном патенте способом, согласованным с единственным значением, это осуществляется исключительно в целях ясности, с тем чтобы не вводить читателя в заблуждение, и нет намерения, чтобы данный термин формулы был ограничен, косвенно или иным образом, этим единственным значением. В заключение, если элемент формулы изобретения не определен перечислением слова "означает" и функционирует без изложения какой-либо структуры, не подразумевается, что рамки любого элемента формулы изобретения интерпретируются на основе применения 35 U.S.C. § 112, шестой параграф.

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

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

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

Относительно фиг.1, примерная система для реализации этапов заявленного способа и устройства включает в себя вычислительное устройство общего назначения в виде компьютера или ПК 110. Компоненты компьютера 110 могут включать в себя, но не только, центральный процессор 120, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, в том числе системную память, с центральным процессором 120. Системная шина 121 может быть любой из некоторых типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из многообразия шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину стандартной архитектуры для промышленного применения (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), шину стандарта (VESA) локальной видеошины для ПК и шину соединения периферийных компонентов (PCI), также известную как мезонинная шина, и PCI Express (PCI-E).

Компьютер 110 в типичном варианте включает в себя многообразие машиночитаемых носителей. Машиночитаемыми носителями могут быть любые имеющиеся в распоряжении носители, доступ к которым может быть осуществлен компьютером 110 и которые могут быть как энергозависимыми или энергонезависимыми, так и съемными или несъемными. В качестве примера, но не ограничения, машиночитаемые носители могут содержать компьютерные запоминающие носители и среду передачи данных. Компьютерные носители хранения включают в себя энергозависимые и энергонезависимые, съемные и стационарные носители, реализованные любым способом или технологией хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Носитель хранения данных компьютера включает в себя, но не в качестве ограничения, ОЗУ, ПЗУ (постоянное запоминающее устройство), ЭСППЗУ (электрически стираемое и программируемое ПЗУ), флеш-память или другую технологию памяти, диски CD-ROM (ПЗУ на компакт-диске), универсальные цифровые диски (DVD) или другое запоминающее устройство на оптическом диске, магнитные дискеты, магнитную ленту, запоминающее устройство на магнитном диске, или другие магнитные устройства хранения, или любые другие носители, которые могут быть использованы для сохранения желаемой информации и которые могут быть доступны посредством компьютера 110. Носитель передачи данных типично реализует машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированных сигналах данных, таких как волновая несущая или другой механизм распространения, и включает в себя любые носители доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более из его характеристик, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не в качестве ограничения, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая среда, RF, инфракрасное излучение и другая беспроводная среда. Сочетания любого из вышеперечисленного также следует включить в число машиночитаемых носителей.

Системная память 130 включает в себя среду хранения компьютера в виде энергозависимого и/или энергонезависимого запоминающего устройства, такого как постоянное запоминающее устройство 131 (ПЗУ) и оперативное запоминающее устройство 132 (ОЗУ). Базовая система 133 ввода/вывода (BIOS), содержащая в себе базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютера 110, к примеру, во время запуска, в типичном варианте сохранена в ПЗУ 131. ОЗУ 132 в типичном варианте содержит в себе данные и/или программные модули, которые непосредственно доступны и/или являются собственно выполняемыми блоком обработки 120. В качестве примера, но не ограничения, фиг. 1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители хранения. Только в качестве примера фиг.1 иллюстрирует накопитель 141 на жестком диске, который осуществляет считывание с и запись на несъемный энергонезависимый магнитный носитель, накопитель 151 на магнитных дисках, который осуществляет чтение с и запись на съемный энергонезависимый магнитный диск 152, и накопитель 155 на оптических дисках, который осуществляет чтение с и запись на съемный энергонезависимый оптический диск 156, такой как CD-ROM или другие оптические носители. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут быть использованы в примерном операционном окружении, включают в себя, но не в качестве ограничения, кассеты магнитной ленты, карты флеш-памяти, цифровые многофункциональные диски, цифровую видеоленту, твердотельное RAM, твердотельное ROM и тому подобное. Накопитель 141 на жестком диске в типичном варианте подключен к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, а привод 151 магнитного диска и привод 155 оптического диска в типичном варианте подключены к системной шине 121 посредством интерфейса съемной памяти, такого как интерфейс 150.

Накопители и ассоциативно связанные с ним носители хранения компьютера, обсужденные выше и проиллюстрированные на фиг.1, предоставляют хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестких дисках проиллюстрирован в качестве сохраняющего операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут или быть аналогичными, или отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 даны в настоящем документе с разными номерами, чтобы проиллюстрировать, что, как минимум, они являются различными копиями. Пользователь может вводить команды и информацию в компьютер 20 через устройства ввода, например клавиатуру 162 и указательное устройство 161, обычно упоминаемое как мышь, шаровой манипулятор (трекбол) или сенсорную панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер и т.п. Эти и другие устройства ввода часто подключены к блоку 120 обработки через пользовательский интерфейс 160 ввода, который соединен с системной шиной, но могут быть подключены посредством других интерфейсов и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой тип дисплейного устройства также подключен к системной шине 121 посредством такого интерфейса, как видеоинтерфейс 190. Помимо монитора, компьютеры могут также включать в себя другие периферийные устройства вывода, например громкоговорители 197 и принтер 196, которые могут быть подключены средствами периферийного интерфейса 195 вывода.

Компьютер 110 может работать в сетевом окружении, использующем логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленным компьютером 180 может быть персональная вычислительная машина (ПЭВМ), сервер (ЭВМ общего пользования), маршрутизатор, сетевая персональная ЭВМ, одноранговое устройство или другой общий узел сети, и он в типичном варианте включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя на фиг.1 проиллюстрировано только запоминающее устройство 181 хранения. Логические соединения, показанные на фиг.1, включают в себя локальную вычислительную сеть (LAN) 171 и глобальную вычислительную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды являются обычными в офисах, корпоративных компьютерных сетях, сетях интранет и Интернет.

Когда используется в сетевом LAN-окружении, компьютер 110 подключен к LAN 171 через сетевой интерфейс или адаптер 170. Когда используется в сетевом WAN-окружении, компьютер 110 в типичном варианте включает в себя модем 172 или другое средство для установления связи по WAN 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть подключен к системной шине 121 через интерфейс 160 пользовательского ввода или с использованием другого подходящего устройства. В объединенном в сеть окружении программные модули, изображенные относительно компьютера 110, или их части могут быть сохранены в удаленном запоминающем устройстве хранения. В качестве примера, а не ограничения, фиг.1 иллюстрирует удаленные прикладные программы 185 как находящиеся на запоминающем устройстве 181 хранения. Должно быть очевидно, что показанные сетевые соединения являются примерными и может быть использовано другое средство установления линии связи между компьютерами.

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

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

Абстракция элемента кода является ориентированной стандартным способом процедурной абстракцией, которая определяет интерфейс со способом образом, похожим на языки программирования типа Visual basic.

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

Обращаясь опять к фиг.2, на этапе 200 подсистема обнаружения может использоваться, чтобы обнаруживать службы, которые доступны на сервере приложений. Фиг.3 может быть иллюстрацией примера развертывания системы способа. Клиент 305 службы может быть потребителем или разработчиком службы. Клиент 305 службы может передавать запрос 310 обнаружения серверу 315 приложений через облако 320 передачи данных. В одном варианте осуществления облаком передачи данных является Интернет, и связь происходит с помощью http поверх TCP/IP. Конечно, возможны другие варианты. Например, клиент и сервер могут быть локальными, как, например, в интранете.

На этапе 210 клиент 305 службы (фиг.3) может запрашивать описания 325 метаданных служб на сервере 315 приложений. Сервер 315 может возвращать запрос 325 метаданных с помощью облака 320 передачи данных. В другом варианте осуществления метаданные извлекаются с помощью запроса на языке определения веб-служб. Запросы 330 служб могут также использовать облако 320 передачи данных.

На этапе 220 обнаруженные службы 310 и описания 325 метаданных используются, чтобы создавать интерфейсы веб-служб, так что служба доступна с помощью языка описания веб-служб. Передача данных от клиента службы к серверу приложений может использовать SOAP поверх http для взаимодействий службы, таких как вставка и обновление.

Фиг.4 является иллюстрацией того, как различные запросы могут быть обработаны. Как упомянуто ранее, клиент или разработчик 405 может запрашивать метаданные 410 из приложения. Запрос может быть доставлен инфраструктурой сервера (IIS) 415 агенту 420 службы. Агент 420 службы может затем определять тип запроса и затем маршрутизировать его в подходящую подсистему. Отдельные подсистемы обрабатывают запросы.

Одной подсистемой является подсистема 425 обнаружения. Подсистема обнаружения позволяет клиентам/разработчикам обнаруживать, какие службы доступны из системы. Ответ может быть во множестве форматов, включающих в себя формат DISCO от корпорации Microsoft. После того как веб-служба была развернута, потенциальные пользователи могут иметь возможность обнаруживать, где она находится и как она работает. DISCO является технологией Microsoft® для публикации и обнаружения веб-служб. Универсальное описание, поиск и интеграция (UDDI) являются общеотраслевой инициативой, которая определяет SOAP-протокол для обновления и опроса информационных хранилищ веб-служб. Подобно DISCO, UDDI делает возможным публикацию и обнаружение веб-службы, максимизацию предела области действия сайта и конечный успех.

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

Обнаружение с помощью DISCO

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

Ответом DISCO является XML-документ, который просто содержит ссылки на другие ресурсы, которые описывают веб-службу, скорее всего HTML-файл, который содержит удобную для восприятия человеком документацию, или WSDL-файл, содержащий соглашение об интерфейсе.

Абстракции из данных, лежащих в основе приложения, которые предназначаются для веб-доступа в качестве веб-службы, такие как формы 430 и таблицы 435, регистрируются в таблице базы данных. Подсистема 425 обнаружения заполняется из таблицы базы данных. Каждая запись в базе данных становится объектом веб-службы в DISCO-ответе в ответ, если пользователь пометил ее как службу. Каждый объект в ответе может содержать унифицированный указатель ресурса (url), указывающий на описание службы на языке описания веб-служб (wsdl).

Поставщик метаданных

Поставщик 440 метаданных может предоставлять описание интерфейса службы, которое может использоваться стандартными инструментальными средствами, такими как инструментальные средства, которые могут понимать WSDL-формат. Клиент/разработчик может запрашивать описание конкретной службы. Система загружает метаданные 427, которые описывают эту службу, такие как формы 430 и таблицы 435. Метаданные 427 затем используются, чтобы определять типы значений, которые передаются службе, так же как и сообщения.

Часть типа значения WSDL извлекается из метаданных 427, описанных как в формах 430, так и в таблицах 435. Система начинает загружать метаданные 427 формы, а метаданные 427 формы содержат информацию о том, в какие таблицы 435 форма 430 сохраняет данные. Метаданные 427 формы 430 также указывают то, какие поля из таблиц 435 показаны на форме 430. Метаданные 437 таблицы содержат поля и их свойства подобно типу (и размеру) и имени. Xml-тип строится из этой информации 427 метаданных в дополнение к имени службы. Имя службы формирует имя типа значения, тогда каждое поле на форме выделяется как поле по типу значения, где используются имя и тип поля.

Скажем, приложение имеет таблицу 435.

table id=l => Customers {

field id=l => Name:string(100),

field id=2 => TelephoneNumber:string(16),

field id=3 => Rating:int

}

и форму 430:

form id=2 => CustomerCard {

table-ref1,

field-ref1,

field-ref2,

can-read true,

can-insert true,

can-modify true,

can-delete false

}

Эта форма 430 может вставлять новую запись в таблицу Customers (клиенты). Эта форма 430 также может редактировать и читать поля Name (имя) и TelephoneNumber (телефонный номер), но она не может удалять запись, ни прочитать или отредактировать поле Rating (рейтинг). Желательно иметь доступ к этому виду/форме 430 как к программной конструкции. Чтобы сделать это, вид/форма 430 может быть зарегистрирована как служба.

Register Form:2 as Customer

Посредством регистрации формы 430 CustomerCard (карточка покупателя) как службы может быть извлечено WSDL-описание, и службы могут быть задействованы для описания в WSDL. WSDL-файл содержит следующую информацию:

Способы: поиск, вставка, обновление и получение.

Он содержит тип вызываемого покупателя, который имеет 2 поля: Name и TelephoneNumber.

Этот тип является параметром для способов.

Диспетчер

Диспетчер 445 принимает фактические запросы к службе. Запрос службы форматирован по спецификации, предоставленной на языке WSDL, предоставленном поставщиком 440 метаданных. Основной работой диспетчера 445 является отправка сообщения посредством виртуального заполнения формы 430 и вызова надлежащих способов формы 430 или заполнения ответа информацией из формы 430.

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

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

Класс G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций

способ и устройство отображения множества элементов -  патент 2528147 (10.09.2014)
устройство идентификации лагранжевых динамических систем на основе итерационной регуляризации -  патент 2528133 (10.09.2014)
интегрированная система сбора, контроля, обработки и регистрации полетной информации -  патент 2528092 (10.09.2014)
приемник импульсного сигнала -  патент 2528081 (10.09.2014)
система генерирования статистической информации и способ генерирования статистической информации -  патент 2527754 (10.09.2014)
поддержка быстрого слияния для устаревших документов -  патент 2527744 (10.09.2014)
система оповещения о программной ошибке и недостатке эффективности -  патент 2527208 (27.08.2014)
способ конверсии данных, устройство конверсии данных и система конверсии данных -  патент 2527201 (27.08.2014)
телекоммуникационная чип-карта, мобильное телефонное устройство и считываемый компьютером носитель данных -  патент 2527197 (27.08.2014)
контроллер распределения ресурсов -  патент 2526762 (27.08.2014)
Наверх