РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ СОТРУДНИЧЕСТВА ПРИ ИСПОЛЬЗОВАНИИ ВНЕШНИХ ДАННЫХ
COOPERATION CAPABILITY ENHANCEMENT USING EXTERNAL DATA

Предпосылки создания изобретения
В современных реализациях компьютерной системы предприятий бизнес-данные могут быть распределены между множеством хранилищ данных. Например, пользователь может запрашивать доступ ко множеству хранилищ данных «Line-of-Business», чтобы получить информацию о предпринимательской деятельности, такую как, например, информация о клиентах или же другие данные, связанные с бизнесом. Подобные производственные хранилища данных «Line-of-Business» могут быть распределены по всей системе, а также могут являться внешними по отношению к системе.
Пользователь, применяющий подобные системы данных, а также другие бизнес-процессы, может нуждаться в частой навигации между большим числом внешних бизнес-систем в процессе повседневных операций. Маневрирование между внешними бизнес-системами и выборка содержимого из внешних хранилищ данных может быть сложной и дорогостоящей как с точки зрения администратора, так и с точки зрения пользователя.
Краткое описание изобретения
В одном аспекте вычислительное устройство включает в себя процессор и системную память, соединенную с процессором, причем системная память содержит инструкции, которые при их исполнении процессором предписывают процессору: создавать модуль каталога бизнес-данных, который осуществляет доступ к данным, размещенным во внутреннем и внешнем хранилищах данных, и производит операции над ними, причем модуль каталога бизнес-данных принимает запрос данных, определяет, размещены ли данные во внутреннем или же внешнем хранилище, и осуществляет доступ к данным, размещенным во внешнем хранилище данных; и создавать модуль предоставления внешних данных, предоставляющий данные, к которым осуществлен доступ, из внешнего хранилища, причем модуль предоставления внешних данных отображает данные из внешнего хранилища данных для представления их на клиентском вычислительном устройстве. Пользователь может осуществлять доступ к данным из внешнего хранилища и производить операции над ними так, как если бы это были данные из внутреннего хранилища.
В другом аспекте способ получения бизнес-данных включает в себя: прием запроса на данные из хранилища данных; определение того, размещены ли данные во внутреннем хранилище данных или во внешнем хранилище данных; в случае если данные размещены во внешнем хранилище данных, осуществление доступа к данным во внешнем хранилище данных; отображение внешних данных из внешнего хранилища данных; представление внешних данных из внешнего хранилища данных пользователю таким же образом, как если бы это были данные из внутреннего хранилища данных.
В еще одном аспекте машиночитаемый носитель информации содержит машиноисполняемые инструкции, которые при их исполнении вычислительным устройством предписывают вычислительному устройству выполнять этапы: создания определений бизнес-объектов, инкапсулирующих набор определенных атрибутов, связанных с бизнес-объектами; доступа к определениям сущностей и выполнения описи атрибутов, определенных в них; приема запроса на данные из хранилища данных; определения того, размещены ли данные во внутреннем хранилище данных или во внешнем хранилище данных; в случае если данные размещены во внешнем хранилище данных, осуществления доступа к внешним данным во внешнем хранилище данных с использованием одного или более вызовов API (интерфейсы прикладного программирования), специфических для внешнего хранилища данных; отображения внешних данных из внешнего хранилища данных; генерации форм и представлений для представления пользователю клиентского вычислительного устройства, где формы и представления содержат контент, согласующийся с разрешенными операциями, реализованными в интерфейсах API внешних бизнес-систем, связанных с внешним хранилищем данных; представления внешних данных из внешнего хранилища данных пользователю посредством одной из форм или представлений таким же образом, как если бы это были внутренние данные из внутреннего хранилища; представления пользователю возможности совершать операции над внешними данными из внешнего хранилища данных таким же образом, как если бы это было совершение операций над внутренними данными из внутреннего хранилища.
Данное краткое описание сущности изобретения дано для введения в упрощенной форме подборки концепций, которые будут подробно описаны в разделе «Подробное описание», в упрощенной форме. Данное краткое описание сущности изобретения не предназначается для идентификации ключевых или неотъемлемых признаков заявляемого изобретения, также оно не предназначается и для использования любым способом для ограничения объема заявляемого изобретения.
Описание чертежей
Аспекты настоящего описания могут быть более точно поняты с учетом последующего подробного описания различных вариантов реализации в связи с прилагаемыми чертежами.
Фиг. 1 показывает пример сетевой компьютерной системы.
Фиг. 2 показывает пример серверного вычислительного устройства из системы, изображенной на Фиг. 1.
Фиг. 3 показывает пример логических модулей серверного вычислительного устройства, изображенного на Фиг. 2.
Фиг. 4 показывает пример логических модулей иллюстративного модуля каталога бизнес-данных по Фиг. 3.
Фиг. 5 показывает пример логических модулей иллюстративного модуля предоставления списка внешних данных по Фиг. 3.
Фиг. 6 показывает логическую блок-схему для примерного способа создания списка внешних данных.
Фиг. 7 показывает логическую блок-схему для примерного способа формирования представления списка внешних данных.
Фиг. 8 показывает логическую блок-схему для примерного способа отправки новой формы.
Фиг. 9 показывает логическую блок-схему для примерного способа удаления конкретного экземпляра субъекта.
Подробное описание изобретения
Настоящая заявка представлена на системы и способы интеграции данных, размещенных в одном или нескольких внешних хранилищах данных, в предпочтительную программную бизнес-платформу. Данные, размещенные во внешних хранилищах, представляются пользователю в таком же виде, как если бы они изначально принадлежали предпочтительной программной бизнес-платформе. Пользователь может выполнять операции над данными в соответствии с одним или несколькими предварительно заданными ограничениями.
Описанные здесь примеры включают хранилища данных, которые являются «внутренними», и хранилища данных, которые являются «внешними». Под «внутренними» хранилищами данных понимаются хранилища, которые расположены внутри системы или предприятия и доступ к которым возможен только изнутри системы или предприятия, в связи с ограничениями таких средств обеспечения безопасности, как, например, межсетевые экраны. Под «внешними» хранилищами данных понимаются хранилища, доступ к которым может быть осуществлен извне системы или предприятия, например, с помощью некоторой сети, подобной сети Интернет.
Следующие реализации изобретения, приведенные в качестве примеров, описываются здесь по отношению к платформе совместной работы Sharepoint, разработанной корпорацией Microsoft (Redmond, Washington). Тем не менее, концепции настоящего раскрытия также применимы к другим системам, в которых существует потребность в интеграции данных, размещенных во внешних хранилищах, в программную платформу.
На Фиг. 1 показан пример сетевой компьютерной системы 100, включающей в себя данные, размещенные как во внутренних, так и во внешних хранилищах данных, к которым осуществляется доступ со стороны программной бизнес-платформы. Термины «система» и «платформа», как правило, относятся к любой аппаратной архитектуре и/или программной инфраструктуре, позволяющим программному обеспечению выполнять программные модули, алгоритмы, операции и задания на одном или более вычислительных устройствах, которые могут быть соединены между собой в единую сетевую среду.
Приведенная в качестве примера сетевая компьютерная система 100 включает в себя клиентское вычислительное устройство 105, серверное вычислительное устройство 110, локальную бизнес-систему 115, локальное хранилище 120 данных, множество внешних бизнес-систем 125a-c (в совокупности, внешние бизнес-системы 125) и внешние хранилища 130 данных a-c (в совокупности, внешние хранилища 130 данных). Кроме того, показаны первая сеть связи 135a и вторая сеть связи 135b (в совокупности, сеть связи 135). Также возможны и иные варианты реализации примерной сетевой вычислительной среды 100.
Сеть связи 135 - это двунаправленный тракт связи для передачи данных между одним или несколькими вычислительными устройствами. В примерном варианте реализации изобретения, первая сеть связи 135a образует внутренний тракт связи для передачи данных между клиентским вычислительным устройством 105 и серверным вычислительным устройством 110. Вторая сеть связи 135b образует внешний тракт связи для передачи данных между серверным вычислительным устройством 110 и внешней бизнес-системой 125.
Вообще, сеть 135 связи может быть любой из ряда беспроводных или проводных сетей типа WAN, LAN, Интернет или иных сетей пакетного типа, таких, что элементы сети 100 могли бы обмениваться данными посредством этих сетей. Также возможны и иные варианты реализации сети связи 135.
В показанном примере, сеть 135a - это сеть, расположенная «внутри» по отношению к платформе 140 бизнес-данных. Сеть 135a является «внутренней», поскольку сеть 135a есть сеть типа LAN или WAN, доступ к которой возможен только с устройств 105, 110 и прочих устройств, расположенных за средствами обеспечения безопасности, такими как сетевой экран, связанный с платформой 140 бизнес-данных.
Сеть 135b - это сеть, доступ к которой возможен со множества вычислительных устройств, расположенных вне платформы 140 бизнес-данных. Например, сетью 135b может быть Интернет или другая сеть, доступ к которой возможен извне платформы 140 бизнес-данных.
Вычислительные устройства 105, 110 могут быть вычислительными устройствами общего назначения, как описано ниже. В показанном примере серверное вычислительное устройство 110 - это бизнес-сервер, который может реализовывать бизнес-процессы. Примеры бизнес-процессов включают в себя процессы совместной обработки данных, процессы управления данными и другие. Серверное вычислительное устройство 110 может включать в себя множество соединенных между собой серверных вычислительных устройств, совместно работающих для реализации бизнес-процессов.
Локальная бизнес-система 115 - это вычислительное устройство, включающее в себя одну или несколько бизнес-систем, обеспечивающих бизнес-приложения. Локальная бизнес-система 115 обычно включает в себя бизнес-логику, которая производит операции с данными, расположенными в одном или нескольких хранилищах данных, таких как локальное хранилище 120 данных, подробно описанное ниже. Одним из примеров локальной бизнес-системы может служить Windows SharePoint Services 3.0, предоставляемая корпорацией Microsoft. Также возможны и иные варианты реализации локальной бизнес-системы 115.
Локальное хранилище 120 данных - это среда хранения данных, построенная по принципу реляционного хранилища данных или по любому другому принципу построения устройств постоянного хранения данных. Локальное хранилище 120 данных сохраняет данные в предопределенном формате, так что серверное вычислительное устройство 110 может запрашивать хранящиеся в нем данные, изменять их и управлять ими. Например, локальное хранилище 120 данных может являться базой данных с поддержкой XML, такой как, например, база данных, основывающаяся на языке структурированных запросов (SQL). В определенных вариантах реализации локальное хранилище 120 данных может содержать множество устройств хранения данных, логически сгруппированных между собой в конфигурацию «ферма». Также возможны и иные варианты реализации локального хранилища данных 120.
Как показано на Фиг. 1, клиентское вычислительное устройство 105, серверное вычислительное устройство 110, локальная бизнес-система 115 и локальное хранилище 120 данных логически сгруппированы внутри платформы 140 бизнес-данных так, чтобы функционально работать в качестве программной бизнес-платформы. Например, пользователь может взаимодействовать с приложением Web-браузера на клиентском вычислительном устройстве, чтобы использовать функциональность соответствующих устройств 110, 115 и локального хранилища 120 данных в качестве инструмента управления бизнес-данными и сотрудничества с одним или несколькими другими пользователями, работающими внутри платформы 140 бизнес-данных.
Одним из примеров вариантов реализации такой платформы бизнес-данных является платформа совместной работы Sharepoint, разработанная корпорацией Microsoft. В представленном примере варианта реализации, компонент платформы может быть выполнен как Office SharePoint Server 2007, а компонент сервисов может быть воплощен как Windows SharePoint Services 3.0, соответственно. Также возможны и иные варианты реализации платформы 140 бизнес-данных.
Внешние бизнес-системы 125 подобны локальной бизнес-системе 115, как описано выше, за исключением работы вне платформы 140 бизнес-данных. Каждая соответствующая внешняя бизнес-система 125a-c может включать в себя одну или более бизнес-систем, которыми предоставляются бизнес-приложения.
Например, одна или более внешних бизнес систем 125a-c могут быть ERP-системой (системой планирования ресурсов предприятия) от SAP America, Inc. Of Newtown Square, Pennsylvania, или любой другой общей системой управления взаимоотношениями с клиентами. Вообще, каждая из соответствующих внешних бизнес-систем 125a-c может быть производственной («Line-of-business») системой любого типа, включающей в себя внешнюю сервисную или программную систему с бизнес-логикой, выполняющей операции над данными в реляционном хранилище данных или любом другом устройстве постоянного хранения данных.
В представленном в качестве примера варианте реализации, каждая из соответствующих внешних бизнес-систем 125a-с коммуникативно соединена с соответствующим внешним хранилищем данных 130a-c. Внешние хранилища 130 данных могут быть сконфигурированы таким же образом, как и локальное хранилище 120 данных, как описано выше, где каждое соответствующее внешнее хранилище 130a-c отформатировано таким образом, чтобы соответствующая внешняя бизнес-система 125a-c могла производить операции над данными, размещенными в этом хранилище. Также возможны и иные варианты реализации внешних хранилищ данных 130.
Способом, аналогичным описанному выше, в отношении элементов платформы 140 бизнес-данных, пользователь может взаимодействовать с приложением Web-браузера на клиентском вычислительном устройстве 105 для использования функциональностей серверного вычислительного устройства 110, внешних бизнес-систем 125 и внешних хранилищ данных 130 как инструмента управления бизнес-данными и сотрудничества с одним или несколькими другими пользователями, работающими в контексте платформы 140 бизнес-данных.
В то время как внешние бизнес-системы 125 и внешние хранилища 130 данных расположены снаружи платформы 140 бизнес-данных, серверное вычислительное устройство 110 настоящего изобретения сконфигурировано таким образом, чтобы интегрировать функциональность внешних бизнес-систем 125 в платформу 140 бизнес-данных.
Например, как подробно описано ниже, серверное вычислительное устройство 110 может быть сконфигурировано таким образом, чтобы выполнять операцию отображения, за счет которой внешние бизнес-данные переносятся в контекст платформы бизнес-данных 140. В представленном примере серверное вычислительное устройство 110 реализует множество способов для представления и обработки соответственных внешних бизнес-данных, которые аналогичны способам представления и обработки бизнес-данных, размещенных внутри платформы 140 бизнес-данных. Таким образом внешние бизнес-данные представляются пользователю и обрабатываются так, как если бы они были собственными (т.е. «внутренними») для платформы 140 бизнес-данных.
Фиг. 2 показывает подробный вид серверного вычислительного устройства 110, изображенного на Фиг. 1. Как упоминалось выше, в показанном примере серверное вычислительное устройство 110 - это вычислительное устройство, включающее в себя по меньшей мере один процессор 205 и системную память 210.
Например, серверное вычислительное устройство 110 может являться персональным компьютером, портативным персональным компьютером или карманным персональным компьютером. Серверное вычислительное устройство 110 может включать в себя любое число устройств ввода/вывода, центральный процессор, устройства хранения данных, сетевое устройство и любые другие функциональные устройства, обеспечивающие обработку и передачу данных.
В зависимости от конфигурации и типа вычислительного устройства, системная память 210 может быть энергозависимой (например, памятью с произвольным доступом (RAM)), энергонезависимой (например, памятью, доступной только для чтения (ROM), флэш-памятью и т.д.) или любой их комбинацией. Системная память 210 может хранить операционную систему 215 для управления работой вычислительного устройства. Одним из примеров операционной системы 215 может служить операционная система Windows, разработанная корпорацией Microsoft, или сервер, такой как, например, Microsoft Office SharePoint Server 2007, также разработанный корпорацией Microsoft.
Системная память 210 может также включать одно или несколько программных приложений 220 и может включать в себя программные данные. Программные приложения 220 могут включать в себя множество различных типов одно- и многофункциональных программ, таких как программа электронной почты, программа-календарь, программа Интернет-браузера, программа работы с электронными таблицами, программа для сбора информации и составления отчета, программа обработки текстов и многие другие. Одним из примеров таких программ может служить пакет приложений Office, разработанный корпорацией Microsoft.
Серверное вычислительное устройство 110 может обладать дополнительными особенностями или функциональностью. Например, серверное вычислительное устройство 110 может также включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или магнитная лента. Подобное дополнительное хранилище изображено на Фиг. 2 с помощью съемного хранилища 225 и несъемного хранилища 230. Машиночитаемые носители информации могут включать в себя физические энергонезависимые и энергозависимые, съемные и несъемные носители, реализованные с помощью любой методики или технологии хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Системная память 210, съемное хранилище 225 и несъемное хранилище 230 - все являются примерами машиночитаемых носителей информации. Компьютерные носители информации включают в себя (но не в ограничительном смысле) RAM, ROM, EEPROM, флэш-память или память, созданную по другой технологии, CD-ROM, DVD или другие оптические носители, магнитные кассеты, магнитную ленту, носитель на магнитных дисках или другие магнитные носители либо любой другой носитель, который может быть использован для хранения желаемой информации и к которому может осуществить доступ серверное вычислительное устройство 110. Любые такие компьютерные носители информации могут быть частью серверного вычислительного устройства 110.
Серверное вычислительное устройство 110 может также содержать устройство(-а) ввода 235, такие как клавиатура, мышь, перо, устройство голосового ввода, сенсорное устройство ввода и т.п. Другие устройства вывода 240, такие как дисплей, динамики, принтер и т.п., также могут быть включены.
Серверное вычислительное устройство 110 может также содержать коммуникационное соединение 245, обеспечивающее связь с прочими вычислительными устройствами (например, клиентскими вычислительными устройствами, серверными вычислительными устройствами, базами данных), такими как внешние бизнес-системы 125, через сеть (например, сеть связи 135 по Фиг. 1) в распределенной вычислительной сетевой среде. Коммуникационное соединение 245 является одним из примеров коммуникационных сред. Коммуникационные среды, как правило, воплощают машиночитаемые инструкции, структуры данных, программные модули и прочие данные в модулированном информационном сигнале, таком как несущая волна или другой механизм передачи, и включают в себя любые среды доставки информации. Термин «модулированный информационный сигнал» подразумевает сигнал, один или несколько параметров которого устанавливаются или изменяются таким образом, чтобы закодировать информацию в этом сигнале. Например, коммуникационные среды включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, а также беспроводные среды, такие как акустические, радиочастотные, инфракрасные и прочие беспроводные среды.
В приведенных в качестве примеров вариантах реализации, клиентское вычислительное устройство 105 по Фиг. 1 может быть сконфигурировано таким же образом, как и серверное вычислительное устройство 110, как описано выше. Клиентское вычислительное устройство 105 может также содержать приложение Web-браузера, которое формирует изображение графического интерфейса пользователя. Таким образом, пользователь может взаимодействовать с онлайн-контентом с помощью Web-страницы. В приведенных в качестве примера вариантах реализации, приложением Web-браузера является программа-клиент, использующая гипертекстовый протокол передачи данных (НТТР) для выполнения запросов на онлайн-контент к Web-серверам. Одним примером подобного приложения Web-браузера может служить Internet Explorer, разработанный компанией Microsoft.
Вообще, приведенная в качестве примера система 100 может включать в себя множество клиентских вычислительных устройств 105 и серверных вычислительных устройств 110. Также возможны и иные варианты реализации клиентского вычислительного устройства 105 и серверного вычислительного устройства 110.
На Фиг. 3 показан пример логических модулей серверного вычислительного устройства 110, изображенного на Фиг. 2. Серверное вычислительное устройство 110 включает в себя приведенный в качестве примера модуль 305 каталога бизнес-данных (BDC-модуль) и приведенный в качестве примера модуль 310 предоставления списка внешних данных (EDL-модуль).
BDC-модуль 305 и EDL-модуль 310 работают вместе, чтобы интегрировать бизнес-данные, размещенные во внешних хранилищах данных 130, в контекст платформы бизнес-данных 140. Например, в одном из вариантов реализации BDC-модуль 305 и EDL-модуль 310 совместно генерируют и визуализируют «список внешних данных» для бизнес-данных из внешнего хранилища данных 130a на графическом интерфейсе пользователя Web-браузера, запущенного на клиентском вычислительном устройстве 105. Пользователь клиентского вычислительного устройства 105 может осуществлять доступ к этим внешним бизнес-данным и/или производить над ними операции таким же образом, как пользователь мог бы осуществлять доступ и производить операции в отношении данных, размещенных внутри платформы бизнес-данных 140.
Приведенный в качестве примера BDC-модуль 305 включает в себя логические модули программного обеспечения, исполняющего на серверном вычислительном устройстве 110, что позволяет BDC-модулю 305 осуществлять доступ к и/или оперировать с данными, находящимися во внешних хранилищах данных 130. В общем, когда пользователь, взаимодействующий с приложением Web-браузера через клиентское вычислительное устройство 105, запрашивает данные, BDC-модуль 305 принимает этот запрос и определяет, размещены ли запрошенные данные внутри или снаружи платформы 140 бизнес-данных 140. Определив статус запрошенных данных, BDC модуль производит обработку запроса данных.
В приведенных в качестве примера вариантах реализации, когда запрос данных ассоциирован с бизнес-данными, размещенными снаружи платформы 140 бизнес-данных, BDC-модуль 305 извлекает бизнес-данные различных типов из внешних хранилищ данных 130, используя API-вызовы, поддерживаемые соответствующими внешними бизнес-системами 125, поскольку бизнес-логика внешних бизнес-систем 125 представляется в виде набора API. В приведенных в качестве примера вариантах реализации, соответствующие API каждой соответствующей внешней бизнес-системы 125a-c определяют разрешенные операции наряду с одним или несколькими предопределенными ограничениями касаемо отличающихся визуализации и операций над бизнес-данными, размещенными в соответствующих внешних хранилищах данных 130a-c.
В одном аспекте, информация об API, связанных с соответствующими внешними бизнес-системами 125a-c, содержится в данных, размещенных в локальном хранилище данных 120, к которому может быть осуществлен доступ BDC-модулем 305. Кроме того, прочие данные, связанные с каждой из соответствующих внешних бизнес-систем 125a-c, также могут быть сохранены в локальном хранилище данных 120, включая различные параметры и определения структур, используемых BDC-модулем 305 для доступа к данным и их получения из внешних хранилищ данных 130.
Например, эти данные могут включать в себя данные, относящиеся к сущностям, методам, параметрам и дескрипторам параметров, ассоциированным с каждым методом, данные безопасной авторизации, данные фильтров и параметры, связанные с каждой из соответствующих внешних бизнес-систем 125 и внешних хранилищ данных 130. Кроме того, локальное хранилище 120 данных может содержать данные, описывающие типы данных, размещенных в каждом из соответствующих внешних хранилищ данных 130.
Приведенный в качестве примера EDL-модуль 310 включает в себя логические модули программного обеспечения, запущенного на серверном вычислительном устройстве 110, позволяющие EDL-модулю 310 предоставлять бизнес-данные, размещенные во внешних хранилищах данных 130, в контекст платформы 140 бизнес-данных. Например, EDL-модуль 310 включает в себя алгоритмы, отображающие внешние бизнес-данные на «формы» и «представления» для последующей презентации этих данных на клиентском вычислительном устройстве 105 посредством приложения Web-браузера. В одном аспекте, предоставление внешних бизнес-данных относится к процессу создания конфигурации для внесения изменений в продукт.
В приведенных в качестве примера вариантах реализации, «представление» соответствует способам показа на экране внешних бизнес-данных на основе конфигурации соответствующих внешних бизнес-систем 125 и соответствующих внешних хранилищ данных 130 согласно данным, размещенным в локальном хранилище данных 120, как описано выше. «Форма» соответствует способам, относящимся к данным для обновления внешних бизнес-данных, сохраненных в соответствующих внешних хранилищах данных 130. Таким образом предоставленные формы и представления включают в себя контент, согласующийся с разрешенными операциями, реализованными в интерфейсах API соответствующих внешних бизнес-систем 125, и позволяют осуществлять доступ к внешним бизнес-данным и изменять их с помощью разрешенных CRUDQ-операций (операций создания, чтения, обновления, удаления и запроса), как будет подробно описано ниже.
Фиг. 4 показывает подробный вид примера логических модулей, BDC-модуля 305, изображенного на Фиг. 3. В приведенных в качестве примера вариантах реализации, BDC-модуль 305 включает в себя приведенный в качестве примера модуль параметров 405 и приведенный в качестве примера модуль сущностей 410.
Модуль параметров 405 содержит программное обеспечение, осуществляющее доступ к параметрам соединений и определениям множества бизнес-систем, которые могут моделироваться BDC-модулем 305 и к которым он может осуществлять доступ как к источнику бизнес-данных и бизнес-логики. В приведенных в качестве примера вариантах реализации, конкретные параметры соединений и определения для соответствующих бизнес-систем содержатся в данных, сохраненных в локальном хранилище данных 120, доступ к которому может быть осуществлен с помощью модуля параметров 405.
Вообще, бизнес-системы могут быть определены как существующие как в контексте платформы 140 бизнес-данных, так и вне его. Например, могут быть определены параметры соединений и определения для локальной бизнес-системы 115 и соответствующих внешних бизнес-систем 125a-c. Кроме того, BDC-модуль 305 является расширяемым в том смысле, что в любое время могут быть определены новые бизнес-системы с соответствующими параметрами и определениями.
Модуль сущностей 410 включает в себя программное обеспечение, создающее определения бизнес-объектов, инкапсулирующие набор определенных атрибутов, относящихся к бизнес-объекту, упоминаемому здесь как «субъект». В представленных в качестве примера вариантах реализации, субъекты и соответствующие атрибуты содержатся в данных, хранящихся в локальном хранилище данных 120, доступ к которому можно осуществить с помощью модуля сущностей 410.
Вообще, экземпляр субъекта содержит элементы данных, которые могут быть данными простого типа, обеспечивающего представление скалярных типов данных, таких как целые числа и строки, либо сложного типа, обеспечивающего представление структурированного поля, такого как Адрес (Address). Например, экземпляр субъекта, такого как «Customers» (клиенты) или «Employees» (служащие), может включать в себя данные в виде табличных списков. В представленном в качестве примера варианте реализации, экземпляр субъекта «Customers» (клиенты) может включать в себя табличный список данных, содержащий столбцы, в которые входят такие поля, как Customer Name (имя клиента), Orders (заказы), Products (изделия) и Addresses (адреса), где табличный список включает в себя элементы данных, присвоенные каждому соответствующему столбцу и строке.
В одном аспекте, атрибуты сущностей могут содержать множество определений, предписывающих, каким образом можно осуществить доступ к полям и соответствующим элементам данных, относящимся к конкретному субъекту, изменить их или произвести их визуализацию. Например, атрибуты субъекта, связанные с методами, назначенными CRUDQ-операциям, могут предписывать разрешенные CRUDQ-операции и связанную с этими операциями функциональность. Например, если метод типа «Creator» (создатель) определен в рамках атрибутов субъекта, то разрешается создание нового экземпляра субъекта. Кроме того, как будет подробно описано ниже, CRUDQ-операции могут быть логически сгруппированы в Группу Представлений (View Group), которая позволяет предоставлять каждую из соответствующих форм и представлений, связанных с субъектом.
Предоставленные формы и представления будут обладать соответствующими функциональными возможностями, связанными, например, с определенными методами, назначенными CRUDQ-операциям внутри Группы Представлений. Например, если метод «Creator» (создатель) определен внутри Группы Представлений субъекта, то на Web-странице может быть предоставлен элемент меню «New» (новый), который пользователь может выбрать для создания нового экземпляра субъекта. Другие приведенные в качестве примера методы включают в себя метод типа «Finder» (искатель) или «Special Finder» (специальный искатель), соответствующие представлению; метод типа «Updater» (обновитель), позволяющий обновлять одно или несколько свойств конкретного экземпляра субъекта; а также метод типа «Deleter» (уничтожитель), позволяющий удалять конкретный экземпляр субъекта.
Как упоминалось выше, в конкретных вариантах реализации методы, назначенные CRUDQ-операциям для соответствующих представлений и форм, могут быть логически сгруппированы в Группу Представлений. Вообще, субъект может содержать множество групп представлений. Например, одно конкретное представление для экземпляра субъекта «Customers» (клиенты) может соответствовать набору столбцов, включающих в себя «First Name» (имя), «Last Name» (фамилия) и «Company Name» (название компании). В конкретных вариантах реализации это специальное представление может поддерживать только операцию просмотра, в которой соответствующая Группа Представления может содержать только методы типа «Finder» (искатель) или «SpecificFinder» (специальный искатель), как будет подробно описано ниже.
В приведенных в качестве примера вариантах реализации также возможны и другие типы определенных атрибутов сущностей. Например, может быть определен атрибут «Identifier» («Идентификатор»), который представляет постоянные идентификационные данные конкретного субъекта, такие как первичный ключ, так чтобы соответствующий субъект мог быть идентифицирован. Кроме того, может быть определен атрибут «Filter Descriptor» («Дескриптор фильтра»), включающий в себя критерии для фильтрации элементов данных, возвращаемых после активации метода, назначенного соответствующей CRUDQ-операции. Некоторыми примерами критериев фильтрации данных могут служить такие критерии, как критерий «Page Number» (номер страницы), критерий «Wildcard» (групповой символ), критерий «Comparison» (сравнение) и другие. Кроме того, может быть определен атрибут «Actions» (Действия), включающий в себя действия, являющиеся ссылками в виде универсального указателя информационного ресурса (URL), которые могут быть связаны с субъектом.
Кроме того, может быть определен атрибут «Relationships» («Отношения»), содержащий ссылки на одну или несколько сущностей, на которые определена ассоциация. В приведенных в качестве примера вариантах реализации, ассоциации представляют собой отношения между одной или несколькими сущностями. Кроме того, может быть определен атрибут «Access» («Доступ»), содержащий методы, которые могут быть использованы администратором для установки прав доступа (т.е. CRUDQ-операции). Множество других методов или типов атрибутов сущностей также может быть определено.
Фиг. 5 показывает подробный вид логических модулей приведенного в качестве примера EDL-модуля 310, изображенного на Фиг. 3. В приведенных в качестве примера вариантах реализации, EDL-модуль 310 включает в себя приведенный в качестве примера модуль 505 генерации схемы и приведенный в качестве примера модуль 510 визуализации и генерации форм и представлений (FVGR).
С одной стороны, приведенный в качестве примера модуль 505 генерации схемы (Schema) и FVGR-модуль 510 позволяют EDL-модулю 310 производить интеграцию бизнес-данных, размещенных во внешних хранилищах данных 130, в контекст платформы 140 бизнес-данных с помощью отображения соответствующих бизнес-данных на формы и представления для презентации пользователю с помощью графического интерфейса пользователя, реализуемого приложением Web-браузера на клиентском вычислительном устройстве 105. В соответствии с принципами настоящего изобретения, предоставляемые формы и представления включают в себя контент, согласующийся с разрешенными операциями, реализованными в интерфейсах API соответствующих внешних бизнес-систем 125, как установлено BDC-модулем 305.
В одном аспекте, модуль генерации схем 505 содержит программное обеспечение, осуществляющее доступ к определениям сущностей, определенным в модуле сущностей 410, как описано выше. Вообще, модуль 505 генерации схемы осуществляет доступ к соответствующему субъекту и всем ассоциированным атрибутам, содержащимся в данных, размещенных в локальном хранилище данных 120. Например, модуль 505 генерации схемы может принимать запрос на доступ к субъекту «Customers» (клиенты) и выполнять опись атрибутов, определенных в нем. В приведенном в качестве примера варианте реализации, субъект «Customers» (клиенты) может быть определен внутри контекста платформы 140 бизнес-данных и, таким образом, по умолчанию, может содержать все методы, связанные со стандартными CRUDQ-операциями, включая метод «Creator» (создатель), метод «Specific Finder» (специальный искатель), метод «Updater» (обновитель), метод «Deleter» (уничтожитель). Соответственно, по запросу модуль 505 генерации схемы производит опись, которая будет отражать присутствие перечисленных CRUDQ-методов для субъекта «Customers».
В качестве еще одного примера, модуль 505 генерации схемы может принимать запрос на доступ к субъекту «Employees» и выполнять опись определенных в нем атрибутов. В приведенном в качестве примера варианте реализации, субъект «Employees» может быть определен вне контекста платформы 140 бизнес-данных и, таким образом, может не содержать все из CRUDQ-методов. Например, субъект «Employees» может не включать в себя метод «Creator», и, таким образом, по запросу, модуль 505 генерации схемы произведет опись, в которой укажет, что субъект «Employees» имеет только метод «Specific Finder», метод «Updater» и метод «Deleter».
FVGR-модуль 510 включает в себя программное обеспечение, осуществляющее доступ к модулю 505 генерации схемы с целью запросить опись атрибутов, определенных в соответствующем субъекте. Впоследствии, на основании установленной описи, FVGR-модуль 510 генерирует формы и представления для последующей презентации пользователю клиентского вычислительного устройства 105 с помощью графического интерфейса пользователя, реализованного в приложении Web-браузера. Таким образом, предоставляемые формы и представления содержат контент, согласующийся с типами данных внешних бизнес-данных, размещенных в соответствующих внешних хранилищах данных 130, и разрешенными бизнес-операциями, реализованными в интерфейсах API соответствующей внешней бизнес-системы 125, как установлено BDC-модулем 305.
Например, в отношении субъекта «Customers», как описано выше, FVGR-модуль 510 осуществляет доступ к модулю 505 генерации схемы с целью запросить опись атрибутов субъекта «Customers». В приведенном в качестве примера варианте реализации, модуль генерации схем 505 выполняет опись и возвращает определенные атрибуты, включая метод «Creator», метод «Specific Finder», метод «Updater» и метод «Deleter».
Впоследствии, FVGR-модуль 510 создает формы и представления в ответ на запрос релевантных данных из экземпляра субъекта «Customers», выполненный клиентским вычислительным устройством 105. Это может включать в себя, например, создание элемента меню «New» (новый) и создание Web-страницы «NewItem.aspx», когда обнаружен метод «Creator». Если найден метод «Updater», то это может включать в себя создание элемента меню «Edit» (редактирование) и создание Web-страницы «EditItem.aspx» (элемент редактирования). Если найден метод «Deleter», то это может включать в себя создание элемента меню «Delete» (стереть). Кроме того, как будет подробно описано ниже, если найден метод «Specific Finder», то это может включать в себя создание элемента меню «View» (вид) и, в процессе формирования списка внешних данных, создание нового представления формы «DispItem.aspx», где метод «Specific Finder» будет опрошен на предмет возвращаемых им полей и будет добавлен в виде полей на экранную форму «DispItem.aspx».
Аналогично, в отношении субъекта «Employees», как описано выше, FVGR-модуль 510 осуществляет доступ к модулю 505 генерации схемы с целью запросить опись атрибутов субъекта «Employees». В приведенном в качестве примера варианте реализации, модуль 505 генерации схемы выполняет опись и возвращает полученные определенные атрибуты, включая метод «Specific Finder», метод «Updater» и метод «Deleter».
Впоследствии, FVGR-модуль 510 предоставляет формы и представления в ответ на запрос внешних бизнес-данных, выполненный клиентским вычислительным устройством 105. В приведенных в качестве примера вариантах реализации, это может также включать создание форм и представлений в отношении метода «Specific Finder», метода «Updater» и метода «Deleter» таким же образом, как описано выше для субъекта «Customers». Однако в приведенном в качестве примера варианте реализации, метод «Creator» не будет обнаружен в субъекте «Employees» и, следовательно, на экране не будет показана соответствующая форма с соответствующими ссылками.
Примеры, описанные здесь, включают в себя визуализацию бизнес-данных в приложении Web-браузера. Однако системы и способы настоящего изобретения могут быть применены к любому клиентскому процессу формирования изображения, такому как, например, визуализация с помощью расширяемого языка разметки приложений (XAML) для Windows Presentation Foundation (WPF).
Как описано выше, платформа 140 позволяет пользователю осуществлять доступ к данным, расположенным как во внутренних, так и во внешних хранилищах, просматривать эти данные и производить операции над ними. Примеры таких операций описаны ниже со ссылкой на Фигуры 6-8.
На Фиг. 6 показана логическая блок-схема приведенного в качестве примера способа создания списка внешних данных 600. На этапе 605 бизнес-приложение запускается на серверном вычислительном устройстве. Впоследствии, на этапе 607 серверное вычислительное устройство осуществляет доступ к локальному хранилищу данных и выполняет опись атрибутов, определенных в рамках определений всех сущностей, хранящихся в локальном хранилище данных.
На этапе 610 серверное вычислительное устройство анализирует опись атрибутов, полученную этапе 605, чтобы идентифицировать, например, один или несколько параметров соответствующего внешнего хранилища данных, в котором размещены бизнес-данные, которые будут использованы для создания списка внешних данных.
На этапе 615 серверное вычислительное устройство выполняет процедуру отображения, во время которой типы данных, соответствующие элементам данных внешнего источника данных, отображаются в поля типов данных, являющиеся собственными для предпочитаемой бизнес-платформы. Например, экземпляр субъекта «Customers» может иметь «First Name» и «Last Name», имеющие элементы данных стокового типа («string»). Серверное вычислительное устройство отобразит элементы данных «First Name» и «Last Name» в поля типа данных, имеющего тип «string», которые являются собственными для платформы бизнес-данных. В вариантах реализации, где предпочтительной платформой бизнес-данных является, например, SharePoint, этап 615 может отобразить элементы данных «First Name» и «Last Name» субъекта типа «Customers» в поле «SPList», которое является полем с типом данных «string», что позволяет визуализировать внешние бизнес-данные в виде форм и представлений в контексте платформы SharePoint. Таким образом, процедура отображения по этапу 615 работает для сопряжения внешних бизнес-данных с бизнес-платформой так, как если бы это были ее внутренние данные.
Далее, на этапе 620 серверное вычислительное устройство создает список внешних данных. В приведенных в качестве примера вариантах реализации, список внешних данных конфигурируется без каких-либо соответствующих форм или представлений. В одном аспекте, созданный список внешних данных разграничен так, чтобы обеспечить платформе бизнес-данных возможность соединения с соответствующим источником внешних данных через серверное вычислительное устройство в любой момент времени.
На этапе 625 серверное вычислительное устройство анализирует опись атрибутов, полученную на этапе 605, чтобы определить, какие методы, ассоциированные с CRUDQ-операциями, определены внутри сущностей, хранящихся в локальном хранилище данных. В некоторых вариантах реализации, методы логически группируются внутри Группы Представлений, поставленной в соответствие каждой форме и представлению для конкретного субъекта.
На этапе 630 серверное вычислительное устройство создает представления для каждого метода «Finder», обнаруженного в Группе Представлений на этапе 625. В приведенных в качестве примера реализациях, серверное вычислительное устройство создает Web-страницу для каждой Группы Представлений, содержащей метод «Finder», и конфигурирует Web-раздел представления, который будет визуализирован на Web-странице. В одном аспекте, Web-раздел использует представление на языке разметки совместных приложений (CAML), сгенерированное на основе XML из метода «Finder», и составляет список всех полей типов данных, которые будут возвращены в представлении. В одном аспекте, Web-страница конфигурируется таким образом, чтобы в момент ее просмотра пользователем выполнялся «Finder» и внешние бизнес-данные извлекались из внешнего хранилища данных и оформлялись серверным вычислительным устройством в тот вид, в каком пользователь может ожидать в контексте платформы бизнес-данных.
На этапе 635 серверное вычислительное устройство создает формы для каждого метода «Update», найденного в Группе Представлений на этапе 625. Например, «Edit Form» («форма редактирования») создается тогда, когда соответствующая Группа Представлений содержит метод «Update» (обновление). В приведенных в качестве примера вариантах реализации, серверное вычислительное устройство создает Web-страницу для каждой Группы Представлений, содержащей метод «Update», и конфигурирует Web-раздел формы для визуализации на Web-странице. На этапе 640 серверное вычислительное устройство отображает действия, связанные с соответствующими внешними бизнес-данными, на индивидуально конфигурируемые действия платформы бизнес-данных. Например, могут быть созданы ссылки на URL, которые могут относиться к субъекту.
Фиг. 7 показывает логическую блок-схему приведенного в качестве примера способа формирования изображения списка внешних данных 700. На этапе 705 серверное вычислительное устройство осуществляет доступ к локальному хранилищу данных и выполняет опись атрибутов, определенных в рамках определений всех сущностей, хранящихся в локальном хранилище данных. Серверное вычислительное устройство анализирует опись атрибутов так, что, например, серверное вычислительное устройство может вызвать API внешней бизнес-системы, позволяющий извлечь внешние бизнес-данные. В иллюстративных вариантах реализации, приведенные в описании атрибуты включают в себя, например, атрибуты «LobSystemInstance», «EntityNamespace» (пространство имен субъекта), «EntityName» (имя субъекта), имя «SpecificFinder» (имя специального искателя), которые полностью определяют Группу Представлений для соответствующего субъекта.
На этапе 710 для соответствующего метода «Finder», идентифицированного в описи на этапе 705, имя метода «Finder» сохраняется в виде CAML-представления аналогично, например, этапу 630 приведенного в качестве примера способа 600, как описано выше. На этапе 715 серверное вычислительное устройство вызывает API внешней системы бизнес-данных, чтобы определить набор фильтров в «Finder» и сконфигурировать значения фильтров на основании значений, сохраненных в CAML-представлении.
На этапе 720 серверное вычислительное устройство выполняет метод «Finder», чтобы извлечь внешние бизнес-данные из внешнего источника данных. На этапе 725 извлеченные данные переупорядочиваются в соответствии с CAML-представлением, при этом одно или несколько сортировок, фильтраций и размещения по страницам применяются к извлеченным данным. Вообще, извлеченные данные загружаются в память в виде таблицы данных, причем для предотвращения необходимости многократного копирования данных в таблице используется схема индексирования. На этапе 730 производится визуализация HTML в Web-страницу для извлеченных данных, обработанных способом, согласующимся с этапом 725. В приведенном в качестве примера варианте реализации, извлеченные данные визуализируются на основании поля типа данных, являющегося собственным для платформы бизнес-данных.
Фиг. 8 показывает логическую блок-схему для приведенного в качестве примера способа отправки новой формы 800. На этапе 805 серверное вычислительное устройство собирает значения полей формы из локального хранилища данных. В приведенных в качестве примера вариантах реализации, этап 805 реализуется при выборе пользователем «OK» в форме «Edit» на визуализируемой Web-странице, чтобы произвести сбор значений полей формы HTML.
На этапе 810 серверное вычислительное устройство осуществляет доступ к локальному хранилищу данных и выполняет опись атрибутов, определенных в рамках определений всех сущностей, хранящихся в локальном хранилище данных. Таким образом, серверное вычислительное устройство может вызывать API внешних систем бизнес-данных, позволяющий извлечь внешние бизнес-данные. В иллюстративных вариантах реализации, приведенные в описании атрибуты включают в себя, например, атрибуты «LobSystemInstance», «EntityNamespace», «EntityName» и имя «SpecificFinder», которые полностью определяют Группу Представлений для соответствующего субъекта.
На этапе 815 серверное вычислительное устройство анализирует опись атрибутов, чтобы определить, например, параметры метода «Updater», определенные в рамках определений всех сущностей, хранящихся в локальном хранилище данных. В приведенном в качестве примера варианте реализации для каждого значения поля в форме устанавливается ассоциированный параметр «Updater». На этапе 825 серверное вычислительное устройство выполняет метод «Updater», чтобы обновить внешние бизнес-данные в соответствующем хранилище бизнес-данных.
На Фиг. 9 показана логическая блок-схема приведенного в качестве примера способа удаления конкретного экземпляра субъекта 900. На этапе 910 серверное вычислительное устройство осуществляет доступ к локальному хранилищу и выполняет опись атрибутов, определенных в рамках определений всех сущностей, хранящихся в локальном хранилище данных. Серверное вычислительное устройство анализирует опись атрибутов, получая, например, атрибут «Identifier» субъекта, представляющий идентификационные данные конкретного субъекта, такие как первичный ключ, так чтобы соответствующий субъект мог быть идентифицирован.
На этапе 915 серверное вычислительное устройство анализирует опись атрибутов, полученную на этапе 910, таким образом, например, что серверное вычислительное устройство может вызвать API внешней системы бизнес-данных, позволяющий извлечь внешние бизнес-данные. В иллюстративных вариантах реализации, приведенные в описи атрибуты включают, например, атрибуты «LobSystemInstance», «EntityNamespace», «EntityName» и имя «SpecificFinder», которые полностью определяют Группу Представлений для соответствующего субъекта. На этапе 920 серверное вычислительное устройство выполняет метод «Deleter».
Приведенные здесь варианты реализации изобретения могут быть реализованы в виде логических операций в вычислительном устройстве в сетевой среде вычислительных систем. Логические операции могут быть реализованы как: i) последовательность машиноисполняемых инструкций, этапов или программных модулей, выполняющихся на вычислительном устройстве, и ii) соединенные между собой логические или аппаратные модули, запущенные в вычислительном устройстве.
Например, логические операции могут быть реализованы как алгоритмы в программном обеспечении, прошивке (Firmware), аналоговых/цифровых схемах и/или любой их комбинации без выхода за рамки объема настоящего раскрытия. Программное обеспечение, прошивка или подобная последовательность машиноисполняемых инструкций может быть закодирована и размещена на машиночитаемом носителе, а также может быть закодирована с помощью сигнала, передаваемого несущей волной между вычислительными устройствами.
Хотя изобретение было описано на языке, применяемом к конкретным структурным особенностям и/или методологическим действиям, должно быть понятно, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничивается конкретными особенностями или действиями, описанными выше. Скорее, конкретные особенности и действия, описанные выше, раскрываются как примерные формы реализации формулы изобретения.