Предоставление функциональных возможностей для клиентских служб посредством реализации и привязки контрактов
Иллюстрации
Показать всеИзобретение относится к области взаимодействия программных приложений. Техническим результатом является автоматизация представления функциональных аспектов целевой службы клиентской службе. В большинстве случаев способы выполняются в рамках распределенной вычислительной среды, выполненной с возможностью исполнения базовых операций служебного(ых) приложения(й). В вариантах осуществления контракт реализуется и привязывается при выявлении того, что представляемые функциональные аспекты удовлетворяют зависимостям клиентской службы. В большинстве случаев контракт определяет интерфейсы и поддерживает свойства, которые задают конфигурацию интерфейсов во время инсталляции. В ходе реализации один из интерфейсов устанавливается и параметризуется в соответствии со свойствами, связанными с ним. В ходе привязки целевая служба и клиентская служба связываются посредством каналов связи, которые маршрутизируются через установленный интерфейс. Соответственно, вызовы от клиентской службы по каналам связи позволяют получить доступ к функциональным аспектам целевой службы и применить их. 3 н. и 17 з.п. ф-лы, 7 ил.
Реферат
Уровень техники
Как правило, разработчики пишут программные приложения с допущением большого числа степеней свободы в их конфигурации. В качестве примера, такие разработчики могут выгодно использовать эти степени свободы при установке программного приложения, которое функционирует в рамках специфических ограничивающих условий для конкретной платформы, которая обеспечивает поддержку программного приложения. Таким образом, эти свободы, связанные с программным приложением, позволяют программному приложению функционировать во взаимодействии с платформой.
В одном варианте, эта конфигурация программного приложения может применяться поставщиками служб аренды приложений, которые разрабатывают программное приложение для работы на платформе, доступной удаленно через сеть Интернет. В этом варианте, платформа исполняет программно реализованную программу таким образом, что пользователи могут удаленно оперировать файлами, используя программное приложение. Соответственно, платформа выполняется с возможностью установки базовых элементов программного приложения, запускающегося на ней, для обеспечения текущей загрузки удаленного использования. Степени свободы в программном приложении предусматривают увеличение или сокращение этих базовых элементов и организацию согласованности между ними. Однако, поскольку не существует способа оповещения о функциональных возможностях этих базовых элементов, обеспечение возможности использования этих функциональные возможностей для программно реализованных программ вне рассматриваемого программного приложения практически невозможно. Дополнительно, даже если другие программно реализованные программы осведомлены о функциональных возможностях выполняющихся в настоящее время базовых элементов, не существует средства для автоматического связывания программных приложений друг с другом или автоматического конфигурирования базовых элементов, чтобы предоставить возможность удаленного полноценного использования функциональных возможностей.
Современные решения для задания конфигурации базовых элементов программного приложения опираются на управляющие платформы в отношении ручной настройки базовых элементов. Эти решения для каждого данного случая являются трудоемкими, подвержены ошибкам и не охватывают связывания базовых элементов с другой программно реализованной программой. Дополнительно, эти недостатки привлечения ручного управления чрезмерно увеличиваются при расширении платформы с включением в нее множества взаимосвязанных аппаратных составляющих, которые поддерживают работу большого числа программных приложений.
Сущность Изобретения
Данный раздел "Сущность Изобретения" предусмотрен для представления в упрощенной форме понятий, которые дополнительно описываются ниже в разделе "Осуществление Изобретения". Данный раздел "Сущность Изобретения" не предназначен для установления ключевых или существенных признаков заявляемого предмета изобретения, а также не предназначен для использования в качестве помощи при определении объема заявляемого предмета изобретения.
Варианты осуществления настоящего изобретения относятся к способам, системам, а также к среде хранения информации на компьютере, содержащей исполняемые компьютером инструкции, заключенные в ней, которые, при исполнении, выполняют способы в соответствии с вариантами осуществления из данного документа, для автоматизации представления функциональных аспектов целевой службы (услуги) (например, служебного приложения, запущенного в распределенной вычислительной среде) для клиентской службы (услуги) с помощью транспортного средства, именуемого в данном документе контрактом. В большинстве случаев, способы выполняются в рамках распределенной вычислительной среды, выполненной с возможностью исполнения базовых операций служебного(ых) приложения(й). В вариантах осуществления, контракт назначается при выявлении того, что представляемые им функциональные аспекты удовлетворяют зависимостям клиентской службы. После назначения, способы настоящего изобретения могут включать в себя реализацию контракта в пределах распределенной вычислительной среды и привязку реализованного контракта к составляющим программам служебных приложений.
В большинстве случаев, контракт определяет интерфейсы и поддерживает свойства, которые задают конфигурацию интерфейсов во время инсталляции. В ходе реализации контракта, один из интерфейсов устанавливается и параметризуется в соответствии со связанными с ним свойствами. В ходе привязки реализованного контракта, входные оконечные точки составляющих программ, входящих в состав целевой службы, связываются через каналы связи с установленным интерфейсом. Соответственно, организация доступа к функциональным аспектам целевой службы обеспечивается для других служебных приложений, которые могут получать доступ к установленному интерфейсу.
Процесс привязки также может включать в себя процедуры связывания выходных оконечных точек составляющих программ, которые содержат клиентскую службу, с установленным интерфейсом, и конфигурирование целевой службы на основании параметризации установленного интерфейса. Помимо этого, клиентская служба может быть выполнена с возможностью форматирования вызовов, подаваемых от выходных оконечных точек, для определенных характеристик целевой службы. Соответственно, вызовы от клиентской службы могут маршрутизироваться по каналам связи, чтобы позволить получить доступ к целевой программе, и могут быть совместимы с конфигурацией целевой службы, чтобы предоставить возможность правильного применения функциональных аспектов целевой службы.
В вариантах осуществления, целевая служба может выявлять идентификационную информацию клиентской службы при приеме вызова, а также прилагаемого к нему требования. Целевая служба, в большинстве случаев, способна динамически реагировать на идентификационную информацию клиентской службы. В связи с этим, после интерпретации идентификационной информации клиентской службы, целевая служба может, соответственно, подстраивать свой уровень обслуживания (например, оперировать своими функциональными аспектами) для обеспечения конкретной клиентской службы при ответе на вызов.
Данный раздел "Раскрытие Изобретения" предусмотрен для представления в упрощенной форме набора понятий, которые дополнительно описываются ниже в разделе "Осуществление Изобретения". Данный раздел "Раскрытие Изобретения" не предназначен для установления ключевых или существенных признаков заявляемого предмета изобретения, а также не предназначен для использования в качестве помощи при определении объема заявляемого предмета изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Ниже подробно описываются варианты осуществления настоящего изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг.1 является структурной схемой иллюстративной вычислительной среды, пригодной для использования при реализации вариантов осуществления настоящего изобретения.
Фиг.2 является структурной схемой, поясняющей иллюстративную распределенную вычислительную среду, пригодную для использования при реализации вариантов осуществления настоящего изобретения, которая выполнена с возможностью привязки реализованного контракта к целевой службе.
Фиг.3 является структурной схемой, поясняющей иллюстративную распределенную вычислительную среду, пригодную для использования при реализации вариантов осуществления настоящего изобретения, которая выполнена с возможностью привязки контракта, привязанного к целевой службе, к клиентской службе.
Фиг.4 является графическим представлением иллюстративного контроллера системы коммутации для использования каналов с балансировкой нагрузки (LB - load-balancing), чтобы маршрутизировать передачу данных между служебными приложениями, в соответствии с вариантом осуществления настоящего изобретения.
Фиг.5 является графическим представлением иллюстративного контроллера системы коммутации для использования каналов без сохранения состояния переключения (SLS - stateless-switch), чтобы маршрутизировать передачу данных между служебными приложениями, в соответствии с вариантом осуществления настоящего изобретения.
Фиг.6 является блок-схемой последовательности операций, демонстрирующей полный способ для автоматической реализации контракта и привязки реализованного контракта к целевой службе, в соответствии с вариантом осуществления настоящего изобретения.
Фиг.7 является блок-схемой последовательности операций, демонстрирующей полный способ для автоматического назначения реализованного контракта на основании зависимостей клиентской службы, и привязки к ней назначенного контракта, в соответствии с вариантом осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Предмет вариантов осуществления настоящего изобретения описывается в данном документе для конкретных ситуаций, чтобы соответствовать предусмотренным патентным законодательством требованиям. Однако, как таковое, описание не предназначено для ограничения объема настоящего патента. Скорее, авторы изобретения предполагают, что заявляемый предмет изобретения может быть, кроме того, воплощен и иными способами, чтобы включать в себя различные этапы или совокупности этапов, подобные описанным в этом документе, в сочетании с другими современными или будущими техническими решениями.
Варианты осуществления настоящего изобретения относятся к способам, системам, а также к носителям для хранения информации на компьютере, содержащим заключенные в них исполняемые компьютером инструкции, которые, при исполнении, выполняют способы в соответствии с вариантами осуществления из данного документа, для автоматического обеспечения клиентских служб, которые записываются в ожидании организации доступа к определенным функциональным возможностям для поддержания функционирования клиентских служб. Эти функциональные возможности, на которые опирается клиентская служба, могут раскрываться при помощи контрактов, которые служат транспортным средством, чтобы позволить клиентской службе получить доступ и применить функциональные возможности в целевой службе, выполняющейся в пределах распределенной вычислительной среды. Надлежащий контракт может назначаться исходя из того, раскрывает ли контракт функциональные возможности, которые удовлетворяют зависимостям, соответствие которым предполагает клиентская служба. Затем контракт назначения может быть реализован (например, устанавливая интерфейс в пределах распределенной вычислительной среды) и привязан к целевой и клиентской службам (например, связывая составляющие программы целевой и клиентской служб через установленный интерфейс). В силу этого, ожидаемые функциональные возможности, необходимые для создания возможности исполнения клиентской службы, автоматически обнаруживаются и связываются с клиентской службой.
Соответственно, в одном аспекте, варианты осуществления настоящего изобретения имеют отношение к одному или более считываемым с помощью компьютера носителям, которые содержат заключенные в них исполняемые компьютером инструкции. При исполнении этих исполняемых компьютером инструкций предоставляется способ для привязки реализованного контракта к целевой службе в пределах распределенной вычислительной среды. Прежде всего, способ включает в себя этапы, на которых идентифицируют контракт, который определяет совокупность интерфейсов, и реализуют идентифицированный контракт для установления интерфейса из совокупности интерфейсов в пределах распределенной вычислительной среды. Как правило, контракт поддерживает набор свойств для инсталляции каждого из интерфейсов, а реализованный контракт выступает в качестве транспортного средства для клиентской службы, чтобы получить доступ к части целевой службы. Помимо этого, способ может включать в себя этап, на котором привязывают реализованный контракт к целевой службе посредством параметризации установленного интерфейса со значениями, полученными из набора свойств, связанных с установленным интерфейсом. В вариантах осуществления, процесс привязки включает в себя автоматическое связывание установленного интерфейса и одного или более ролевых вариантов, а также сопоставление связей через контроллер системы коммутации, отвечающий за организацию исполнения целевой службы. В большинстве случаев, ролевые варианты заключают в себе дублирование, по меньшей мере, одной роли, представляющей тип составляющей программы, которая, при исполнении, предоставляет функциональные возможности целевой службе.
В другом аспекте, варианты осуществления настоящего изобретения имеют отношение к использующему компьютер способу для привязки реализованного контракта, ранее привязанного к целевой службе, к клиентской службе в пределах распределенной вычислительной среды. В вариантах осуществления, способ содержит этапы, на которых принимают от клиентской службы указание на соответствие ее зависимости и назначают контракт, раскрывающий обобщение функциональных возможностей, которые удовлетворяют зависимости составляющих программ клиентской службы. Как правило, контракт предварительно реализуется в пределах распределенной вычислительной среды и привязывается к целевой службе, которая производит функциональные возможности. Способ может дополнительно включать в себя этап, на котором развертывают клиентскую службу, чтобы инициализировать ее работу. В иллюстративном варианте осуществления, развертывание предусматривает автоматическое связывание одной или более составляющих программ с интерфейсом, определяемым назначенным привязанным контрактом, причем этот интерфейс устанавливается в пределах распределенной вычислительной среды после реализации назначенного привязанного контракта, и запись описания связей в контроллере системы коммутации, отвечающем за организацию исполнения целевой службы. В вариантах осуществления, способ, прежде всего, включает в себя, но не ограничивается этим, этап, на котором принимают указание на увеличение числа вариантов роли служебного приложения. Как упоминалось выше, роль отображает конкретный класс составляющей, которая действует в сочетании с другими ролями служебного приложения для осуществления его распределенных функциональных возможностей. В качестве примера, указание является результатом события, содержащего, по меньшей мере, или изменение рабочей нагрузки удаленного использования служебного приложения, или падение с отключением от сети одного или более узлов центра хранения и обработки данных. Соответственно, эти события, и другие события, предполагаемые в настоящем изобретении, могут обусловливать необходимость инсталляции дополнительных ролей служебного приложения в рамках распределенного центра хранения и обработки данных.
Еще в одном аспекте, варианты осуществления настоящего изобретения имеют отношение к компьютерной системе, выполненной с возможностью автоматического связывания клиентской службы с целевой службой посредством реализации и привязки контракта, предоставленного распределенной вычислительной средой. В большинстве случаев, центр хранения и обработки данных включает в себя распределенные вычислительные устройства. Компьютерная система может включать в себя носитель для хранения информации на компьютере, который содержит множество заключенных в нем составляющих компьютерного программного обеспечения. Прежде всего, составляющие компьютерного программного обеспечения включают в себя служебные приложения (например, клиентскую службу и целевую службу), контракт, а также контроллер системы коммутации, который выполнен с возможностью организации распределенной вычислительной среды. В большинстве случаев, клиентская служба включает в себя одну или более составляющих программ, тогда как целевая служба включает в себя один или более ролевых вариантов, причем эти ролевые варианты заключают в себе дублирования, по меньшей мере, одной роли, представляющей тип составляющей программы, которая, при исполнении, предоставляет функциональные возможности целевой службе. В процессе работы, клиентская служба конфигурируется для предъявления указания на соответствие своей зависимости. Контракт может раскрывать обобщение функциональных возможностей целевой службы, которые удовлетворяют зависимости составляющих программ клиентской службы. Контракт дополнительно конфигурируется для определения, по меньшей мере, одного интерфейса. Контроллер системы коммутации конфигурируется для выполнения одного или более следующих процессов, в произвольном порядке: установка интерфейса на распределенной вычислительной платформе посредством реализации контракта; привязка контракта к целевой службе и к клиентской службе; и автоматическое связывание программных составляющих клиентской службы с ролевыми вариантами целевой службы через установленный интерфейс.
В большинстве случаев, конкретизация и согласованная организация ролевых вариантов целевой службы облегчаются моделью обслуживания (см. позиционное обозначение 250 на Фиг.2). Как используется в данном документе, фраза "модель обслуживания" не подразумевает ограничения и в целом относится к любому информационному обмену, который включает в себя информацию, имеющую отношение к установлению и организации вариантов целевой службы в пределах распределенной вычислительной среды. В одном варианте, модель обслуживания включает в себя описание того, какие роли целевой службы должны быть установлены, или как варианты каждой из ролей должны быть инсталлированы и активизированы в центре хранения и обработки данных. То есть, модель обслуживания выполняет функции сочленения ролей, которые должны запускаться для целевой службы, и условий, при которых варианты ролей должны быть инсталлированы.
Помимо этого, модель обслуживания может назначать один или более узлов (например, узлы I 221, II 222, III 223, IV 224 и V 225 на Фиг.2 и 3) в рамках распределенного вычислительного центра (см. позиционное обозначение 200 на Фиг.2 и 3) для поддержания вариантов ролей. Это может выполняться контроллером системы коммутации. Соответственно, модель обслуживания выполняет функцию создания копии интерфейса, предоставляя инструкции для организации составляющих программ, таких как ролевые варианты, целевой службы, а также и клиентской службы, в конкретных вариантах осуществления. То есть, модель обслуживания помогает управлять контроллером системы коммутации при координировании действий между составляющими программами после развертывания в рассредоточенных позициях по всей распределенной вычислительной среде. Эти позиции, как правило, описываются техническими характеристиками развертывания в рамках модели обслуживания. Вообще говоря, фраза "технические характеристики развертывания" подразумевает ограничение и используется для обозначения механизма, который организует конкретизацию ролевых вариантов на узлах, которые определяют, какие каналы связи использовать в качестве трактов информационного обмена между ролевыми вариантами, и/или который предоставляет информацию, описывающую конкретный способ, которым будет выполняться целевая служба.
Ролевые варианты целевой службы (например, роль А 261 и роль В 262 целевой службы 205 на Фиг.2) обычно относятся к копиям, по меньшей мере, одной роли. Вообще говоря, как используется в данном документе, термин "роль" в широком смысле отображает любой класс составляющих, которые работают в сочетании с другими ролями целевой службы для осуществления функциональных возможностей, которые удовлетворяют ожидаемой зависимости клиентской службы.
Для того чтобы инициализировать работу целевой службы, и ее функциональных аспектов, модель обслуживания в сочетании с техническими характеристиками развертывания конкретизирует ролевые варианты по отношению к узлам распределенной вычислительной среды. Конкретизация, прежде всего, включает в себя назначение узлов, которые выявляются как доступные для размещения ролевого варианта, установку ролевого варианта на назначенных узлах, конфигурирование установленных ролевых вариантов и построение взаимосвязей между входными оконечными точками и выходными оконечными точками, относящимися к ролевым вариантам. Как будет обсуждаться более подробно ниже, после реализации контракта, интерфейс может связываться с входными оконечными точками ролевых вариантов, чтобы содействовать организации доступа к части функциональных возможностей целевой службы.
В большинстве случаев, узлы в пределах распределенной вычислительной среды задействуются для обеспечения работы ролевых вариантов. Как используется в данном документе, термин "узел" не подразумевает ограничения, а охватывает все формы вычислительных устройств, таких, например, как персональный компьютер, настольный компьютер, портативный компьютер, карманное устройство, подвижная телефонная трубка, бытовой электронный прибор и тому подобное. В одном аспекте, узел представляет собой вычислительное устройство из числа множества распределенных вычислительных устройств, соединенных между собой через сетевое облако. В большинстве случаев, эти распределенные вычислительные устройства способны размещать на себе множество вариантов различных ролей служебного приложения. В качестве примера, конкретный узел может выполняться с возможностью обеспечения двух или более сред для размещения, каждая из которых поддерживает ролевой(ые) вариант(ы). Эти ролевые варианты могут запускаться на узле в полной изоляции (т.е., предписывая служебному приложению высокий уровень безопасности), при частичном информационном обмене с другими ролями, или в состоянии взаимодействия с одной или более другими ролями служебного приложения.
После приведения в действие, запущенная целевая служба может привязываться к клиентской службе для осуществления ожидаемой зависимости, записанной для клиентской службы. Контракты, как правило, являются транспортными средствами, применяемыми в соответствии с настоящим изобретением для усовершенствования процесса привязки. В одном варианте осуществления, контракты раскрывают абстрактное определение того, что ожидается от запущенной целевой службы (т.е., функциональные возможности целевой службы). В другом варианте осуществления, контракты определяют совокупность интерфейсов и поддерживают набор свойств, связанных с каждым из интерфейсов. В большинстве случаев, интерфейсы связаны в одном или более аспектах. В вариантах осуществления, свойства задействуются для подгонки, или параметризации, интерфейса после инсталляции в распределенной вычислительной среде. В качестве примера, свойства могут зависеть, частично, от протокола узлов. Эти свойства наполняются надлежащей информацией при создании целевой службы, чтобы контроллер системы коммутации мог обнаружить целевую службу и мог задавать конфигурацию составляющих программ клиентской службы для успешного получения доступа к целевой службе.
Как будет рассматриваться ниже, контракт может быть реализован (например, устанавливая один из совокупности определяемых интерфейсов) и привязан к целевой службе. Контроллер системы коммутации может отбирать для привязки целевой службы одну или более целевые службы, основываясь, частично, на функциональных возможностях целевой(ых) службы(служб). Соответственно, контракт может быть привязан более чем к одному служебному приложению. Однако интерфейс, который устанавливается в ходе реализации контракта, может конфигурироваться по-разному в зависимости от характеристик узла, ролевых вариантов отобранной целевой службы, и тому подобного.
После вкратце описанных общих сведений о вариантах осуществления настоящего изобретения далее описывается иллюстративная операционная среда, пригодная для реализации вариантов осуществления настоящего изобретения.
Обращаясь к чертежам в общем, и для начала к Фиг.1, в частности, иллюстративная операционная среда для реализации вариантов осуществления настоящего изобретения демонстрируется и описывается в целом в виде вычислительного устройства 100. Вычислительное устройство 100 является лишь одним примером подходящей вычислительной среды и не предполагает внесения какого-либо ограничения относительно области применения или функциональных возможностей вариантов осуществления настоящего изобретения. Также вычислительная среда 100 не должна интерпретироваться как обладающая какой-либо зависимостью или требованием, связанным с какой-то одной или сочетанием проиллюстрированных составляющих.
Варианты осуществления настоящего изобретения могут быть описаны в общем контексте компьютерного кода или машинно-используемых инструкций, в том числе исполняемых компьютером инструкций, таких как составляющие программы, исполняющихся компьютером или другой машиной, такой как карманный персональный компьютер или другое карманное устройство. В большинстве случаев, составляющие программы, включающие в себя подпрограммы, программы, объекты, компоненты, структуры данных и тому подобное, относятся к коду, который выполняет конкретные задачи, или реализуют конкретные абстрактные типы данных. Варианты осуществления настоящего изобретения могут быть осуществлены на практике в разнообразных системных конфигурациях, в том числе на карманных устройствах, бытовой электронике, компьютерах общего назначения, специализированных вычислительных устройствах и т.д. Варианты осуществления настоящего изобретения также могут быть осуществлены на практике в распределенных вычислительных средах, в которых задачи выполняются устройствами с удаленной обработкой данных, связанными между собой через сеть связи.
Продолжая рассматривать Фиг.1, вычислительное устройство 100 включает в себя шину 110, которая непосредственно или косвенно соединяет следующие устройства: запоминающее устройство 112, одно или более обрабатывающих устройств 114, один или более компонентов 116 представления, порты 118 ввода/вывода, компоненты 120 ввода/вывода и иллюстративный источник 122 питания. Шина 110 символизирует собой то, что может быть одной или более шинами (такими, как адресная шина, шины данных, или их комбинация). Хотя различные блоки на Фиг.1 показаны как обведенные линиями ради ясности, в действительности разграничение различных компонентов не настолько явное, и, образно, было бы точнее сделать линии серыми и нечеткими. Например, можно принять во внимание такое представление компонентов, при котором устройство отображения является компонентом ввода/вывода. Кроме того, в обрабатывающих устройствах есть запоминающее устройство. Авторы настоящего изобретения осознают, что такова природа данной области техники, и напоминают, что схема на Фиг.1 является лишь изображением иллюстративного вычислительного устройства, которое может использоваться применительно к одному или более вариантам осуществления настоящего изобретения. Не проводится различий между такими категориями как "рабочая станция", "обслуживающий узел", "портативный компьютер", "карманное устройство", и т.д., поскольку все они предусматриваются в рамках Фиг.1 и именуются "компьютер" или "вычислительное устройство".
Вычислительное устройство 100, как правило, включает в себя разнообразные считываемые с помощью компьютера носители. В качестве примера, но не ограничения, считываемые с помощью компьютера носители могут содержать Оперативное Запоминающее Устройство (ОЗУ); Постоянное Запоминающее Устройство (ПЗУ);
Электрически Стираемое Программируемое Постоянное Запоминающее Устройство (ЭСППЗУ); запоминающее устройство с групповой перезаписью или запоминающее устройство, выполненное по другой технологии; CDROM, цифровые универсальные диски (DVD) или другие оптические или голографические носители; магнитные кассеты, магнитную ленту, хранилище на магнитных дисках или другие магнитные устройства хранения, или любой другой носитель, который может использоваться для кодирования необходимой информации и может быть доступен со стороны вычислительного устройства 100.
Запоминающее устройство 112 включает в себя носители для хранения информации на компьютере в форме энергозависимого и/или энергонезависимого запоминающего устройства. Запоминающее устройство может быть съемным, стационарным, или комбинацией таковых. Иллюстративные аппаратные устройства включают в себя твердотельное запоминающее устройство, накопители на жестких дисках, накопители на оптических дисках и т.д. Вычислительное устройство 100 включает в себя одно или более обрабатывающих устройств, которые считывают данные из различных модулей, таких как запоминающее устройство 112 или компоненты 120 ввода/вывода. Компонент(ы) 116 представления представляют отражения данных для пользователя или другого устройства. Иллюстративные компоненты представления включают в себя устройство отображения, громкоговоритель, печатающий компонент, вибрирующий компонент, и т.д. Порты 118 ввода/вывода позволяют вычислительному устройству 100 логически соединяться с другими устройствами, в том числе с компонентами 120 ввода/вывода, причем некоторые из них могут быть встроенными. Иллюстративные компоненты включают в себя микрофон, координатную ручку, игровой манипулятор, антенну спутниковой связи, сканирующее устройство, печатающее устройство, беспроводное устройство и т.д.
Обратимся теперь к Фиг.2, показана структурная схема, демонстрирующая распределенную вычислительную среду 200, пригодную для использования при реализации вариантов осуществления настоящего изобретения. В большинстве случаев, распределенная вычислительная среда 200 выполняется с возможностью привязки реализованного контракта 235 к целевой службе 205 и привязки контракта, привязанного к целевой службе 205, к клиентской службе, как показано на Фиг.3. Распределенная вычислительная среда 200 включает в себя центр 210 хранения и обработки данных, выполненный с возможностью обеспечения и поддержания работы составляющих программ, или вариантов А 261 и В 262 ролей, целевой службы 205 согласно модели 250 обслуживания. Специалистам в данной области техники будет понятно и должно приниматься ими во внимание, что центр 210 хранения и обработки данных, продемонстрированный на Фиг.2, является просто одним примером, подходящим для обеспечения одного или более служебных приложений (например, целевой службы 205), и не предполагает внесения какого-либо ограничения относительно области применения или функциональных возможностей вариантов осуществления настоящего изобретения. Также центр 210 хранения и обработки данных не должен интерпретироваться как обладающий какой-либо зависимостью или требованием, связанным с каким-то отдельным узлом, сочетанием узлов (например, узлов I 221, II 222 и III 223), ресурсами (не показано), или набором API для организации доступа к ресурсам (не показано). Дополнительно, хотя различные блоки на Фиг.2 показаны как обведенные линиями ради ясности, в действительности, разграничение различных компонентов не настолько явное, и, образно, было бы точнее сделать линии серыми и нечеткими.
Центр 210 хранения и обработки данных включает в себя различные узлы (например, узлы I 221, II 222 и III 223), операционную систему, запущенную на каждом из этих узлов, ролевые варианты А 261 и В 262, интерфейсы (например, интерфейс 220), а часто и контроллер 215 системы коммутации, который может включать в себя агенты системы коммутации (не показано), локально инсталлированные на узлах I 221, II 222 и III 223. Агенты системы коммутации выступают в качестве расширения контроллера 215 системы коммутации и выполняют совместные функции для инсталляции и организации целевой службы 205, наряду с прочим. Помимо этого ролевые варианты А 261 и В 262 могут взаимно соединяться друг с другом через входные оконечные точки (например, входную оконечную точку 255), от которых подаются вызовы, и выходные оконечные точки, на которые принимаются вызовы. В одном варианте, одно или более из этих взаимных соединений может устанавливаться через сетевое облако (не показано). Сетевое облако соединяет между собой перечисленные выше объекты таким образом, что ролевые варианты А 261 и В 262 и интерфейс 220, который может быть с возможностью распределенного размещения на различных физических ресурсах, могут распознавать местоположение друг друга для того, чтобы устанавливать связь между собой. Помимо этого сетевое облако облегчает эту связь по каналам 290 связи, оперативно соединяющим интерфейс 220 с входной оконечной точкой 255 варианта 261 роли А. В качестве примера, сетевое облако может включать в себя, без ограничения, одну или более локальных вычислительных сетей (ЛВС) и/или глобальных вычислительных сетей (ГВС). Такие сетевые среды являются обычным явлением в учрежденческих, корпоративных компьютерных сетях, внутрикорпоративных сетях на базе технологии Интернет и в сети Интернет. Соответственно, эта сеть не описывается дополнительно в данном документе.
Дополнительно, следует отметить, что варианты осуществления настоящего изобретения не ограничиваются реализацией на таких физических ресурсах, как показанные на Фиг.2, а могут быть реализованы на любых из множества различных типов вычислительных устройств, оборудования, и составляющих программ в рамках вариантов осуществления из данного документа. Другими словами, показанные узлы I 221, II 222 и III 223 центра 210 хранения и обработки данных изображают лишь иллюстративную конфигурацию, которая предназначена исключительно для обсуждения; соответственно, любая подходящая компоновка узлов, и размещенных на них ролевых вариантов, известная в компьютерной отрасли, может использоваться и предусматриваться в соответствии с настоящим изобретением.
Эти иллюстративные узлы I 221, II 222 и III 223 и ролевые варианты А 261 и В 262 центра 210 хранения и обработки данных служат, чтобы ввести понятие реализации служебного контракта и привязки реализованного контракта 235 к целевой службе 205, что будет обсуждаться далее. Прежде всего, идентифицируется служебный контракт. В одном варианте, контракт идентифицируется для раскрытия обобщения функциональных возможностей 260 варианта 261 роли А, которые соответствуют ожидаемой зависимости, записанной для клиентской службы (см. позиционное обозначение 305 на Фиг.3). Идентифицированный контракт, как правило, определяет совокупность интерфейсов и поддерживает набор свойств 240, каждое из которых связывается с одним или более интерфейсами. В процессе работы набор свойств 240 полезен для инсталляции и подгонки конфигурации каждого из интерфейсов.
Идентифицированный служебный контракт может быть реализован для установки интерфейса 220 из совокупности интерфейсов в пределах вычислительного устройства (например, узла I 221) распределенной вычислительной среды 200. Как обсуждалось более подробно выше, реализованный контракт выступает в качестве транспортного средства для клиентской службы, чтобы получать доступ к функциональным возможностям 260 целевой службы 205. Процесс реализации может включать в себя параметризацию установленного интерфейса 220 со значениями 230, полученными из набора свойств 240, связанных с установленным интерфейсом 220. В одном варианте, параметризация может включать в себя управление значениями 230 для параметров 270, которые неявно присутствуют в пределах интерфейса 200.
Процесс реализации также может включать в себя инсталляцию ограничивающих условий 295 в отношении интерфейса 220. Прежде всего, набор свойств 240, связанных с интерфейсом 220, может задавать ограничивающие условия 295, которые частично регулируют работу установленного интерфейса 220. Дополнительно, параметризация установленного интерфейса 220 со значениями 230, полученными из набора свойств 240, обеспечивает выполнение ограничивающих условий 295 в пределах распределенной вычислительной среды 200. В силу этого, ограничивающие условия 295 служат руководством для определения того, как интерфейс 220 подключается (например, определяя, какие внешние порты обслуж