Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер

 

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

Область техники, к которой относится изобретение

Настоящее изобретение, в общем случае, относится к сетям с архитектурой типа клиент/сервер. Более конкретно, настоящее изобретение относится к серверу и к реализуемому с его помощью способу информирования клиентской системы о прикладных программах (приложениях), установленных в системах сервера, которые доступны для исполнения клиентской системой.

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

Современные компьютерные сети состоят из ряда компьютерных систем, называемых узлами, которые связываются с другими компьютерными системами через каналы связи (см., например, патенты США №№5666501, 5689708, 5729734, 5737592, 5794207 и 5826027). В типичном случае некоторые из этих узлов являются клиентскими узлами, а другие узлы являются серверными узлами (называемыми далее также серверами). Клиентский узел формулирует и посылает запросы к серверному узлу. Пользователь клиентского узла вводит запросы через интерфейс пользователя, работающий на клиентском узле. Серверный узел оценивает эти запросы и посылает ответы в клиентский узел для отображения на интерфейсе пользователя клиентского узла.

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

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

Кроме того, часто после того, как пользователь узнал, какие программы приложений имеются на серверном узле, он должен установить связь с этими приложениями. Выпущены программы, помогающие устанавливать такую связь. Так, например, программа Remote Application Manager производства компании Citrix Systems, Inc., (США) представляет собой приложение, которое инсталлируют на клиентском узле. Эта прикладная программа предлагает администратору клиентского узла ввести информацию, которая установит связь с приложением, открытым для общего пользования (опубликованным) на конкретном серверном узле. Администратор передает такую информацию, как имя сеанса, протокол для доступа к серверному узлу, имя сервера или IP-адрес или имя опубликованного приложения. Подходы такого типа требуют, чтобы администратор имел эту информацию и обладал подробными сведениями о протоколах и доменах, чтобы установить такое соединение.

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

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

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

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

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

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

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

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

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

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

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

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

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

Перечень фигур чертежей

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

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

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

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

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

фиг.3А, 3В и 3С представляют собой блок-схемы, иллюстрирующие примеры процессов, посредством которых клиентский узел может запускать приложение из окна “Программное окружение”, которое отображается на этом клиентском узле;

фиг.3D представляет собой блок-схему, иллюстрирующую пример процесса, посредством которого клиентский узел может запускать приложение из web-страницы “Программное окружение”, которая отображается на этом клиентском узле;

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

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

фиг.6А представляет собой пример снимка экрана дисплея клиентского узла, после исполнения приложения, определяющего программное окружение, в соответствии с настоящим изобретением;

фиг.6В представляет собой еще один пример снимка экрана дисплея клиентского узла, после исполнения приложения, определяющего программное окружение, в соответствии с настоящим изобретением;

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

Сведения, подтверждающие возможность осуществления изобретения

На фиг.1 показана первая вычислительная система (клиентский узел) 10 и вторая вычислительная система (клиентский узел) 20, которые через сеть 40 имеют связь с вычислительными системами (серверами приложений) 30, 32, 34 и 36. Сеть 40 может являться локальной сетью (LAN) или глобальной сетью (WAN), такой как Интернет или всемирная сеть. Пользователи клиентских узлов 10, 20 могут быть подключены к сети 40 посредством разнообразных видов линий связи, включающих стандартные телефонные линии, линии связи LAN или WAN (например, Т1, Т3, 56 кб, Х.25), широкополосные линии (ISDN, Frame Relay, ATM) и беспроводные линии связи. Соединение может быть установлено при помощи разнообразных протоколов связи (например, TCP/IP, IPX, SPX, NetBIOS, Ethernet, RS232 и прямой асинхронной связи).

Клиентский узел 10 может представлять собой любой персональный компьютер (например, 286, 386, 486, Pentium, Pentium II, Macintosh), терминал, работающий в среде Windows, Internet-компьютер, беспроводное устройство, информационное устройство, RISC Power PC, Х-компьютер, рабочую станцию, миникомпьютер, большую ЭВМ или иное вычислительное устройство, имеющее экранную среду Windows и память постоянного хранения информации достаточного объема для исполнения прикладных программ, загружаемых через сеть 40 с серверов 30, 32, 34. Платформы Windows, поддерживаемые клиентским узлом 10, могут включать в себя Windows 3.х, Windows 95, Windows 98, Windows NT 3.51, Windows NT 4.0, Windows СЕ, Macintosh, Java и Unix. Клиентский узел 10 может включать в себя экран 12 дисплея, клавиатуру 14, память 16 для хранения загружаемых приложений, процессор 17 и мышь 18. Память 16 может обеспечивать постоянное или энергозависимое хранение. Процессор 17 может исполнять приложения локально, на клиентском узле 10, и отображать экранную среду Windows на экране 12 дисплея. Такая локальная обработка информации на клиентском узле осуществляется в соответствии с вышеописанной клиентской моделью вычислений.

В другом варианте клиентский узел 20 может представлять собой любой терминал (работающий в среде Windows или нет) либо маломощное клиентское устройство, действующее в соответствии с серверной моделью вычислений. При серверной модели вычислений исполнение прикладных программ происходит целиком на серверах 30, 32, 34 приложений, а пользовательский интерфейс, нажатия клавиш и перемещения мыши передаются на клиентский узел 20 через сеть 40. Пользовательский интерфейс может приводиться в действие при помощи текста (как, например, в DOS) или графически (как, например, в Windows). Платформы, которые может поддерживать клиентский узел 20, включают в себя DOS и Windows СЕ для терминалов, ориентированных на работу с Windows. Клиентский узел 20 включает в себя экран 22 дисплея, клавиатуру 24, мышь 28, процессор (не показан) и память длительного хранения (не показана).

Серверы 30, 32, 34 и 36 приложений могут представлять собой любые вычислительные устройства, которые осуществляют управление доступом к другим частям сети (например, рабочим станциям, принтерам). Следует понимать, что к сети 40 может быть подключено большее или меньшее число серверов приложений. Серверы 30, 32, 34 и 36 могут работать в соответствии либо с клиентской, либо с серверной моделью вычислений, как это было описано выше.

Каждый сервер 30, 32, 34 и 36 приложений располагает одной или большим числом прикладных программ, доступ к которым могут получить клиентские узлы 10 и 20. Прикладные программы, доступ к которым разрешен для клиентских узлов, называют опубликованными приложениями. К числу таких приложений относятся, например, текстовые процессоры, такие как MICROSOFT WORD, и электронные таблицы, такие как MICROSOFT EXCEL® от Microsoft Corporation (США), программы финансовых отчетов, программы регистрации клиентов, программы, обеспечивающие информацию технической поддержки, базы данных клиентов или управляющие программы установки приложений.

Серверы 30, 32 и 34 могут принадлежать одному и тому же домену 38. В сети 40 доменом является фрагмент сети, содержащий группу серверов приложений и клиентских узлов, находящихся под управлением одной базы данных системы защиты. Домен может включать в себя одну или несколько “серверных ферм”. (Серверная ферма - это группа серверов, которые связаны вместе, чтобы действовать как единая серверная система и обеспечивать централизованное администрирование.) И наоборот, серверная ферма может включать в себя один или несколько доменов. Чтобы серверы из двух различных доменов могли принадлежать к одной серверной ферме, может потребоваться, чтобы между этими доменами существовали доверительные отношения. Доверительные отношения - это такая связь между различными доменами, которая дает возможность пользователю получать доступ к ресурсам, связанным с каждым из доменов посредством одноразовой проверки прав доступа (аутентификации) в начале сеанса.

В одном из вариантов осуществления настоящего изобретения сервер 36 приложений располагается не в домене 38, а в другом домене. В другом варианте осуществления сервер 36 приложений располагается в том же самом домене, что и серверы 30, 32 и 34. В любом из этих вариантов серверы 30, 32 и 34 приложений могут принадлежать к одной серверной ферме, в то время как сервер 36 может принадлежать к другой ферме, или все серверы 30, 32, 34 и 36 могут принадлежать к одной и той же серверной ферме. Когда к сети 40 подключается новый сервер, он либо присоединяется к существующей серверной ферме, либо образует новую ферму.

Сеть 40 может включать в себя главный серверный узел для осуществления распределения нагрузки между серверами 30, 32, 34 и 36 приложений. Главным серверным узлом может являться один из серверов 30, 32, 34 и 36 приложений. Главный серверный узел имеет перечень адресов серверов и информацию о загрузке, соответствующую каждому из остальных серверов приложений. Главный серверный узел, на основе списка доступных серверов и соответствующих уровней загрузки, может направлять клиентский узел к определенному серверному узлу, на котором будет исполняться приложение. Альтернативно, серверы 30, 32, 34 и 36 приложений могут содействовать друг другу на равноправной основе с целью обмена информацией администрирования, такой как уровни загрузки, позволяющей любому серверу 30, 32, 34, 36 отзываться на запрос, сделанный клиентским узлом 10, 20.

Программное окружение

В соответствии с принципами настоящего изобретения пользователь любого клиентского узла 10, 20 может узнать, какие прикладные программы, установленные на серверах 30, 32, 34 и 36 приложений в сети 40, ему доступны. При этом пользователю не нужно знать, где найти эти приложения, и не требуется вводить техническую информацию, необходимую для связи с такими приложениями. Эти доступные прикладные программы составляют “программное окружение” пользователя. Система для определения программного окружения клиентского узла включает в себя некоторую прикладную программу (в дальнейшем: приложение “Программное окружение”), память для хранения компонентов этой прикладной программы и процессор для исполнения этой прикладной программы.

Приложение “Программное окружение” может быть инсталлировано в памяти клиентского узла 10 и/или на серверах 30, 32, 34 и 36 приложений, как описывается ниже. Приложение “Программное окружение” представляет собой совокупность служебных программ, прикладных программ интерфейса (API) и программ пользовательского интерфейса (UI), которые показывают пользователям клиентских узлов 10, 20 те прикладные программы, размещенные на серверах приложений, право пользоваться которыми (например, осуществлять их исполнение) имеет каждый клиентский узел.

Сервер приложений, работающий в соответствии с прикладной программой “Программное окружение”, собирает информацию о приложениях от каждого из серверов приложений внутри серверной фермы. Информация о приложениях, по каждому из приложений, размещенных на серверах, может представлять собой различные сведения, включающие, например, адрес сервера, на котором размещено данное приложение, имя приложения, сведения о пользователях или группах пользователей, которым разрешено пользоваться данным приложением, и функциональный минимум клиентского узла, который необходимо иметь, прежде чем устанавливать соединение и выполнять программу. Например, приложение может передавать поток видеоданных, и, следовательно, клиентский узел, как минимум, должен поддерживать видеоданные. Другим примером является способность клиентского узла поддерживать звуковые данные или способность обрабатывать зашифрованные данные. Информация о приложениях может быть сохранена в базе данных, как это описано далее.

Когда клиентский узел регистрируется в сети 40, его пользователь сообщает данные своих полномочий. Данные полномочий пользователя обычно включают в себя имя пользователя клиентского узла, пароль пользователя и имя домена, с которым пользователю разрешено работать. Данные полномочий пользователя могут быть получены из микропроцессорных кредитных карточек, из контролируемых по времени аппаратных ключей, карточек социального обеспечения, пользовательских паролей, личных идентификационных номеров (PIN), из цифровых сертификатов, основанных на алгоритмах шифрования с симметричным ключом и по эллиптической кривой, из биометрических характеристик пользователя или любых иных средств, посредством которых данные, идентифицирующие пользователя клиентского узла, могут быть получены и представлены для аутентификации. Сервер, отвечающий клиентскому узлу, может на основании данных полномочий пользователя осуществить его аутентификацию. Данные полномочий пользователя могут быть сохранены там, где исполняется приложение “Программное окружение”. Когда клиентский узел 10 исполняет приложение “Программное окружение”, данные полномочий пользователя могут быть сохранены на клиентском узле 10. Когда сервер приложений исполняет приложение “Программное окружение”, данные полномочий пользователя могут быть сохранены на этом сервере.

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

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

Как следует из описания фиг.2А-2С, приложение “Программное окружение” может быть запущено либо клиентским узлом 10, 20, либо сервером приложений. Результаты отображаются на экране 12, 22 дисплея клиентского узла 10, 20. В графическом варианте осуществления, с экранной средой Windows, результаты могут быть отображены в графическом окне “Программное окружение”, и каждое разрешенное приложение может быть представлено в этом окне графической иконкой.

В одном варианте осуществления изобретения приложение “Программное окружение” отфильтровывает прикладные программы, на использование которых клиентский узел 10, 20 не имеет разрешения, и производит отображение только разрешенных (т.е. доступных) программ. В других вариантах осуществления приложение “Программное окружение” может отображать разрешенные и неразрешенные программы. Когда фильтрация неразрешенных приложений отсутствует, то может выдаваться предупреждение, указывающее, что такие приложения не доступны. Альтернативно, приложение “Программное окружение” может сообщать клиентскому узлу обо всех прикладных программах, которые размещены на серверах 30, 32, 34, 36 приложений, не указывая, какие программы разрешены для исполнения клиентским узлам 10, 20, а какие запрещены. Полномочия могут быть определены после, когда клиентский узел 10, 20 попытается запустить одно из таких приложений.

На фиг.2А показан пример процесса, посредством которого сервер запускает приложение “Программное окружение” и представляет результаты работы этого приложения клиентскому узлу 10. Сервер может запустить данную программу в ответ на запрос 42 клиентского узла 10 определенной прикладной программы. Этот запрос проходит на главный серверный узел, в данном примере - на сервер 30. Главный серверный узел 30, принимая во внимание распределение загрузки и доступность приложений, сообщает (стрелка 43) клиентскому узлу 10, что искомое приложение доступно на сервере 32. Клиентский узел 10 и сервер 32 устанавливают соединение (стрелки 45 и 46). Посредством этого соединения сервер 32 может передать исполняемый код конкретного приложения в клиентский узел 10, когда клиентский узел 10 и сервер 32 работают в соответствии с клиентской моделью вычислений. Альтернативно, сервер 32 может исполнять конкретное приложение и передавать графический пользовательский интерфейс, когда клиентский узел 10 и сервер 32 работают в соответствии с серверной моделью вычислений. Кроме того, исполнять приложение 41 “Программное окружение” может либо главный серверный узел 30, либо сервер 32, пересылая результаты (стрелки 43 или 46) обратно на клиентский узел 10, так что когда клиентский узел 10 запрашивает приложение “Программное окружение”, результаты работы этой программы уже доступны для клиентского узла.

На фиг.2В показан другой пример процесса, посредством которого клиентский узел 10 инициирует исполнение приложения “Программное окружение”, а сервер представляет результаты работы этой программы клиентскому узлу 10. Клиентский узел 10 запускает приложение “Программное окружение” (т.е. производится щелчок мышью на иконке 41 “Программное окружение”, представляющей это приложение). Запрос 50 приложения “Программное окружение” направляется на главный серверный узел, в данном примере - на сервер 30. Главный серверный узел 30 может произвести исполнение приложения “Программное окружение”, если это приложение размещается на главном серверном узле 30, и возвратить результаты на клиентский узел 10. В другом варианте главный серверный узел 30 может указать (стрелка 51) клиентскому узлу 10, что приложение 41 “Программное окружение” доступно на другом сервере, в данном примере - на сервере 32. Клиентский узел 10 и сервер 32 устанавливают соединение (стрелки 53 и 54), посредством которого клиентский узел 10 запрашивает исполнение приложения 41 “Программное окружение”. Сервер 32 может исполнить приложение 41 и передать результаты (т.е. графический интерфейс пользователя) на клиентский узел 10.

На фиг.2С показан еще один пример процесса, посредством которого клиентский узел 20 инициирует исполнение приложения “Программное окружение”, в данном примере через глобальную сеть Internet (World Wide Web). Клиентский узел 20 запускает программу 80 web-браузера, такую как NETSCAPE NAVIGATOR от Netscape Communications, Inc. (США) или MICROSOFT INTERNET EXPLORER от Microsoft Corporation (США).

Клиентский узел 20 через web-браузер 80 передает запрос 82 для доступа к адресу унифицированного указателя ресурсов (URL), соответствующего HTML странице, размещенной на сервере 30. В некоторых вариантах осуществления первая HTML страница 84, возвращаемая на клиентский узел 20 сервером 30, является страницей проверки прав доступа, которая пытается идентифицировать клиентский узел 20.

Страница проверки прав доступа позволяет клиентскому узлу 20 передать данные полномочий пользователя через web-браузер 80 к серверу 30 для аутентификации. Переданные данные полномочий пользователя проверяются либо сервером 30, либо другим сервером фермы. Это дает возможность спроецировать домен защиты на сервер 30. Например, если сервер 30 работает под операционной системой WINDOWS NT от Microsoft Corporation (США), а сервер, выполняющий аутентификацию - под операционной системой UNIX, то можно говорить, что домен защиты UNIX спроецирован на сервер 30. Данные полномочий пользователя могут передаваться “в открытом виде” или быть зашифрованными. Например, данные полномочий пользователя могут передаваться посредством протокола безопасных соединений (SSL), который шифрует данные, используя алгоритм RC3, разработанный фирмой RSA Data Security, Inc. (США).

Сервер 30 может проверить данные полномочий пользователя, полученные от клиентского узла 20. В другом варианте сервер 30 может передать данные полномочий пользователя другому серверу для аутентификации. В этом варианте осуществления сервер, выполняющий аутентификацию, может находиться в другом домене, нежели сервер 30. Данные полномочий пользователя клиентского узла 20, прошедшие проверку прав доступа, могут быть сохранены на клиентском узле 20 в файлах предыстории обращений (cookies) или в областях, которые не отображаются web-браузером 80 или любым другим способом, принятым для поддержки web-страниц. В некоторых вариантах осуществления серверная ферма, в которую входит сервер 30, может дать гостевым пользователям, т.е. пользователям, у которых нет присвоенных данных полномочий, возможность доступа к приложениям, которые размещены на серверах этой фермы. В таких вариантах осуществления страница проверки прав доступа может предоставить механизм, такой как кнопка, или выбор из меню, который позволяет клиентскому узлу 20 указать, что он является гостевым пользователем. В иных вариантах осуществления сервер 30 может полностью опустить страницу проверки прав доступа.

В соответствии с фиг.2С, как только клиентский узел 20 успешно проходит аутентификацию сервером 30, этот сервер подготавливает и передает на клиентский узел 20 HTML-страницу 88, включающую в себя окно 58 “Программное окружение”, в котором появляются графические иконки 57, 57', представляющие приложения, к которым клиентский узел 20 имеет доступ. Пользователь клиентского узла 20 запрашивает исполнение приложения, представленного иконкой 57, посредством щелчка мышью на этой иконке.

На фиг.3А показан пример процесса обмена данными между клиентским узлом 10, главным серверным узлом, в данном примере - сервером 30, и сервером 32. Клиентский узел 10 имеет с сервером 32 активное соединение 72. Клиентский узел 10 и сервер 32 могут использовать активное соединение 72 для обмена информацией, касающейся исполнения первой прикладной программы. Данные полномочий пользователя клиентского узла 10 хранятся на клиентском узле. Такое хранение данных полномочий пользователя может осуществляться в памяти длительного хранения или в кэш-памяти.

В данном варианте осуществления приложение “Программное окружение” работает на клиентском узле 10. Дисплей клиентского узла имеет окно 58 “Программное окружение”, в котором появляется графическая иконка 57, представляющая вторую прикладную программу. Пользователь клиентского узла 10 может запустить вторую прикладную программу посредством двойного щелчка мышью на иконке 57. Запрос проходит к главному серверному узлу 30 через соединение 59. Главный серверный узел 30, через соединение 59, указывает клиентскому узлу 10, что искомая прикладная программа доступна на сервере 32. Узел 10 посылает сигнал серверу 32, чтобы установить второе соединение 70. Сервер 32 запрашивает данные полномочий пользователя от клиентского узла 10, чтобы проверить права доступа ко второй прикладной программе. При успешной аутентификации клиентский узел 10 и сервер 32 устанавливают второе соединение 70 и обмениваются информацией, касающейся исполнения второй прикладной программы. Соответственно, клиентский узел 10 и сервер 32 обмениваются друг с другом данными посредством множества соединений.

На фиг.3В показан пример процесса обмена данными между клиентским узлом 20, главным серверным узлом, в данном примере - сервером 30, и серверами 32, 34 и 36. Клиентский узел 20 имеет активное соединение 73 с сервером 32. Клиентский узел 20 и сервер 32 могут использовать активное соединение 73 для обмена информацией, касающейся исполнения первой прикладной программы. Данные полномочий пользователя клиентского узла 20 хранятся на сервере 32 в кэш-памяти или в памяти длительного хранения.

В данном варианте осуществления приложение “Программное окружение” работает на сервере 32. Сервер 32 имеет программное обеспечение, которое формирует клиентское устройство 62, построенное на базе сервера, позволяя серверу 32 действовать в роли клиентского узла 20. Дисплей клиентского узла 20 имеет окно 58 “Программное окружение”, в котором появляются графические иконки 57, 57', представляющие, соответственно, вторую и третью прикладные программы. Пользователь клиентского узла 20 может запустить вторую прикладную программу посредством двойного щелчка мышью на иконке 57. Запрос на запуск второй прикладной программы проходит к серверу 32 через активное соединение 73, а сервер 32 пересылает этот запрос на главный серверный узел 30 (стрелка 65).

Главный серверный узел 30 указывает (стрелка 65) серверу 32, что искомое приложение доступно на сервере 34. Сервер 32 связывается с сервером 34, чтобы установить соединение 66. Чтобы осуществить проверку прав доступа к приложению, сервер 34 получает данные полномочий пользователя клиентского узла 20 от сервера 32. Сервер 32 и сервер 34 устанавливают соединение (стрелка 66), посредством которого сервер 32 запрашивает исполнение второй прикладной программы, а сервер 34 возвращает серверу 32 результирующий графический интерфейс пользователя. Сервер 32 пересылает результирующий графический интерфейс пользователя на клиентский узел 20, где производится его отображение. Соответственно, обмен информацией между клиентским узлом 20 и сервером 34 проходит через сервер 32.

Подобным образом клиентский узел 20 может производить запуск третьей прикладной программы путем двойного щелчка мышью на иконке 57'. Запрос запуска третьей прикладной программы проходит на сервер 32. Сервер 32 пересылает этот запрос на главный серверный узел 30, который, учитывая загрузку серверов и доступность прикладной программы, определяет, какой сервер может обработать данный запрос. В этом примере главный серверный узел указывает, что запустить на выполнение третью прикладную программу может сервер 36.

Сервер 32 и сервер 36 устанавливают соединение (стрелка 74), посредством которого сервер 32 запрашивает исполнение третьей прикладной программы, а сервер 36 возвращает серверу 32 результирующий графический интерфейс пользователя. Чтобы разрешить исполнение третьей прикладной программы, сервер 36 может выполнить аутентификацию данных полномочий пользователя клиентского узла 20, которые получаются от сервера 32. Сервер 32 пересылает результирующий графический интерфейс пользователя на клиентский узел 20, где он отображается. Соответственно, результаты исполнения третьей прикладной программы проходят от сервера 36 к клиентскому узлу 20 через сервер 32.

Из этого пояснения следует, что клиентский узел может запускать на выполнение множество приложений посредством одного соединения с сервером 32, в то время как сервер 32 поддерживает множество соединений (в данном примере, одно соединение с сервером 34 и второе - с сервером 36). Кроме того, сервер 32 объединяет информацию, принятую от сервера 34, с информацией, принятой от сервера 36, в один поток данных для передачи на клиентский узел 20.

На фиг.3С показан пример процесса обмена информацией между клиентским узлом 20, главным серверным узлом, в данном примере - сервером 30, и серверами 32 и 34. Клиентский узел 20 имеет активное соединение 76 с сервером 32. Клиентский узел 20 и сервер 32 могут использовать активное соединение 76 для обмена информацией, касающейся исполнения первой прикладной программы. Клиентский узел 20 может сохранять данные полномочий пользователя в кэш-памяти или в памяти длительного хранения.

В данном варианте осуществления приложение “Программное окружение” запускается на выполнение на сервере 32. На дисплее клиентского узла 20 имеется окно 58 “Программное окружение”, в котором появляется графическая иконка 57, представляющая вторую прикладную программу. Пользователь клиентского узла 20 может запускать вторую прикладную программу посредством двойного щелчка мышью на иконке 57. Запрос на запуск второй прикладной программы проходит на сервер 32. Сервер 32 отвечает (т.е. “перезванивает”) клиентскому узлу 20 путем возврата информации о приложениях, такой как имя приложения и функциональный минимум клиентского узла 20, необходимый для работы со вторым приложением.

Имея информацию от сервера 32, клиентский узел 20 далее через соединение 77 связывается с главным серверным узлом 30, чтобы определить, какой сервер может исполнить вторую прикладную программу. В данном примере таким сервером является сервер 34. Затем клиентский узел 20 устанавливает соединение 78 с сервером 34. Сервер 34 запрашивает от клиентского узла 20 данные полномочий пользователя, чтобы определить права доступа пользователя клиентского узла 20. Вторая прикладная программа выполняется на сервере 34, и сервер 34 возвращает графический интерфейс пользователя клиентскому узлу 20 через установленное соединение 78. Соответственно, клиентский узел 20 может иметь множество активных соединений с множеством серверов.

На фиг.3D показан пример обмена данными между клиентским узлом 20, сервером 30, который в данном примере работает как web-сервер, и сервером 32. Клиентский узел 20 подтверждает серверу 30 свои права доступа, как было описано выше, в отношении фиг.2С. В одном из вариантов осуществления сервер 30 получает доступ к шаблону 90 экрана в виде SGML-, HTML- или XML-файла, чтобы использовать его как основу для построения окна “Программное окружение” и передать на клиентский узел 20. Этот шаблон может быть сохранен в энергозависимой памяти или в памяти долговременного хранения, связанной с сервером 30, или он может быть сохранен в памяти 92 большой емкости, такой как дисковое запоминающее устройство или оптическое запоминающее устройство, как показано на фиг.3D.

В данном варианте осуществления шаблон 90 представляет собой стандартный документ SGML, HTML или XML, содержащий особые теги “программного окружения”, которые заменяются динамической информацией. Эти теги указывают серверу 30, где на экране следует вставить информацию, соответствующую доступным приложениям, такую как изображения иконок. В частности, в одном варианте осуществления теги программного окружения внедрены в комментарии внутри файла, давая файлу возможность оставаться совместимым со стандартными интерпретирующими программами. В другом варианте осуществления теги программного окружения являются расширениями языка разметки, используемого как основа для шаблона.

Примеры HTML-тегов, которые могут быть использованы в шаблоне в соответствии с настоящим изобретением, приведены ниже, в таблице 1. 1

Для настройки полей управления и для обеспечения условной обработки, относящейся к приложению “Программное окружение”, могут быть введены и другие теги.

В одном варианте осуществления шаблон строят динамически, используя, например, COLD FUSION от Allaire Corp. (США) или ACTIVE SERVER PAGES от Microsoft Corporation (США). В ином варианте шаблон может быть статическим. Приложение “Программное окружение” анализирует шаблон, заменяя особые теги “программного окружения”, как это отмечалось выше. Теги, которые не относятся к особым тегам “программного окружения”, оставляются в файле, который анализируется программой 80 браузера, исполняемой на клиентском узле 20.

В одном из вариантов осуществления создают объект анализатора шаблонов, который захватывает шаблон, интерпретирует особые теги “программного окружения”, присутствующие в шаблоне, и на выходе выдает исходный шаблон, в котором все теги “программного окружения” заменены соответствующим текстом. Объект анализатора шаблонов может быть передан в виде cookie, строки запроса URL или поля управления из интерфейса web-сервера, чтобы предоставить информацию, при помощи которой должна производиться замена особых тегов “программного окружения”.

В другом варианте осуществления приложение “Программное окружение” предоставляет сценариям возможность забирать информацию через программный интерфейс приложения. Сценарии могут быть написаны, например, на VBScript или Jscript. В этом варианте осуществления язык подготовки сценариев применяется для динамического формирования конечного изображения на основе информации, которую возвращает приложение в ответ на запросы сценария. Когда конечное изображение оказывается сформированным, оно передается на клиентский узел 20 для отображения программой 80 браузера.

Пользователь клиентского узла 20 может запускать приложение посредством двойного щелчка мышью на иконке 57, 57', отображаемой на web-странице “Программное окружение”. В некоторых вариантах осуществления каждая иконка представляет собой закодированный URL, который указывает: местонахождение приложения (т.е., на каких серверах оно размещено или, в ином варианте, адрес главного сервера); команду запуска, связанную с приложением; и шаблон, определяющий, как должен быть представлен результат работы приложения (т.е. в окне, “вложенном” в браузер, или в отдельном окне). В некоторых вариантах осуществления URL включает в себя файл или ссылку на файл, который содержит информацию, необходимую клиенту для установления связи с сервером, на котором размещено приложение. Этот файл может создаваться динамически приложением “Программное окружение”. Клиентский узел 20 устанавливает соединение (стрелка 94) с сервером, который был определен как сервер, на котором размещено запрашиваемое приложение (в данном примере - это сервер 32), и производит обмен информацией, касающейся исполнения нужного приложения. В некоторых вариантах осуществления соединение 94 осуществляют, используя протокол независимой архитектуры вычислительной системы (1СА), выпускаемый Citrix Systems. Таким образом, клиентский узел 20 может отображать результат работы приложения в окне, отдельном от web-браузера 60, или же результат работы приложения может быть “вложен” в web-браузер.

Фиг.4 иллюстрирует пример организации программных компонентов для реализации приложения “Программное окружение” на базе клиентского узла. Реализация приложения “Программное окружение” на базе клиентского узла может быть использована либо в сетях с серверной моделью вычислений, в которых приложение “Программное окружение” исполняют серверы, либо в сетях с клиентской моделью вычислений, в которых клиентский узел 10 исполняет приложение “Программное окружение” локально. Приложение “Программное окружение” включает в себя служебную компоненту приложения “Программное Окружение” (PNSVC) (компонента 44), базу данных приложений (компонента 48), программный интерфейс приложения “Программное окружение” (PNAPI) (компонента 52), интерфейс пользователя приложения “Программное окружение” (компонента 56) и локальную кэш-память 60.

Сервер 30 приложений, например, включает в себя служебную компоненту 44 (PNSVC) и базу 48 данных приложений. Клиентский узел 10, являясь характерным примером клиентского узла, на базе которого можно реализовать приложение “Программное окружение”, включает в себя программный интерфейс 52 приложения (PNAPI), пользовательский интерфейс 56 и локальную кэш-память 60. PNSVC 44 ведет обмен данными с базой 48 данных приложений и с PNAPI 52 на клиентском узле 10 через канал 62 связи.

Канал 62 связи может быть установлен, например, посредством протокола ICA. ICA представляет собой протокол общего назначения для представления данных, предназначенный для работы совместно с протоколами промышленного стандарта, такими как TCP/IP, IPX/SPX, NetBEUI, с использованием транспортных протоколов промышленного стандарта, таких как ISDN, Frame Relay и режима асинхронной передачи данных (АТМ). Протокол IСА создает виртуальные каналы, которые представляют собой сеансовые каналы передачи и могут быть использованы кодом прикладного уровня для выдачи команд обмена данными. Команды виртуальных каналов рассчитаны на тесную интеграцию с функциями клиентских узлов. Один тип виртуального соединения, который поддерживается протоколом IСА, это виртуальный канал “программного окружения”.

Протокол виртуального канала “программного окружения” может включать в себя четыре группы команд:

(1) команды, связанные с инициализацией;

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

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

(4) команды, связанные с обратным вызовом при запуске приложений для работы пользовательского интерфейса на сервере приложений.

База данных приложений

База 48 данных приложений представляет собой кэш-память информации, предназначенной для полномочных пользователей или групп пользователей, обо всех открытых (т.е. опубликованных) приложениях в серверной ферме или в группе доверяемых доменов. Каждый сервер в серверной ферме может поддерживать свою собственную информацию о приложениях в памяти длительного хранения и строить базу 48 данных в энергозависимой памяти. В другом варианте осуществления вся собранная в базе 48 данных информация о приложениях может быть сохранена в памяти длительного хранения и сделана доступной для каждого другого сервера фермы. База 48 данных может быть реализована в уникальном формате (например, в виде связанного списка в памяти) или при помощи службы каталогов Novell (NDS) или любой службы каталогов, соответствующей стандарту Х.500, установленному Международным союзом по электросвязи (ITU) для распределенных электронных каталогов.

База 48 данных приложений включает в себя список серверов приложений. Каждый сервер в этом списке имеет связанный с ним набор приложений. С каждым приложением связывается информация о приложении, которая может включать имя приложения, список серверов и клиентов, которым разрешено использовать данное приложение. Ниже, в таблице 2, приведен сильно упрощенный пример информации о приложениях, которая поддерживается базой данных. Пользователи А и В - это пользователи клиентских узлов 10, 20, “н/д” означает, что приложение размещено на сервере, но не доступно для пользователей клиентских узлов, и “-” означает, что приложение на сервере отсутствует.

Таблица 2 показывает список серверов 30, 32, 34; приложения, размещенные на этих серверах (электронная таблица, клиентская база данных, текстовый процессор и калькулятор), и тех пользователей, которым разрешено использовать эти приложения. Например, на сервере 30 размещена программа электронной таблицы, клиентская база данных и текстовый процессор. Пользователю А разрешено пользование электронной таблицей, пользователю В разрешено пользование клиентской базой данных и ни одному из пользователей не разрешено пользование текстовым процессором. Следует понимать, что для указания, кому разрешено пользоваться определенным приложением, могут быть применены и другие приемы. Например, информация о пользователях, хранящаяся в базе данных, может быть использована для указания тех клиентов, которым запрещено пользование определенным приложением, а не тех, кому это разрешено.

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

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

Служебная компонента приложения “Программное окружение” (PNSVC)

Каждый сервер 30, 32, 34 и 36, на котором инсталлировано приложение “Программное окружение”, выполняет программу 44 PNSVC. Программа 44 PNSVC, работая на каждом сервере 30, 32, 34 и 36, устанавливает канал связи (т.е. именованный канал) с каждым другим сервером. Серверы 30, 32, 34 и 36 no этим именованным каналам осуществляют обмен информацией о приложениях. В другом варианте осуществления программа 44 PNSVC собирает информацию о приложениях с других серверов фермы путем удаленного вызова реестров (например, служебная компонента 44 передает дейтаграмму другим серверам того множества серверов, которые запрашивают информацию о приложениях, соответствующую прикладным программам, которые размещены на этих серверах). Программа 44 PNSVC также поддерживает взаимоотношения групп и пользователей с опубликованными приложениями в базе 48 данных приложений и получает доступ к информации при аутентификации пользователя клиентского узла. Администратор сервера 30 может при помощи пользовательского интерфейса конфигурировать компоненту 44 PNSVC.

Другие функции программы 44 PNSVC включают в себя осуществление служебных операций и функций, запрашиваемых со стороны PNAPI 52, и обмен данными с PNAPI 52 на клиентском узле 10, с использованием драйвера виртуальных устройств “программного окружения” (VDPN). Драйвер VDPN действует в соответствии с вышеописанным протоколом виртуального канала “программного окружения” для установления и поддержания ICA соединения.

Программный интерфейс приложения “Программное окружение” (PNAPI)

PNAPI 52 представляет собой набор программных функций или сервисов, которые используются приложением “Программное окружение” для выполнения различных операций (например, для открывания окон на экране, открывания файлов и окон сообщений). PNAPI 52 обеспечивает общий механизм обработки для объектов запуска приложений (например, иконок), которые формируются при работе приложения “Программное окружение”, и для обработки объектов приложений в пользовательском интерфейсе старых клиентов (т.е. существующих в течение какого-то времени или их предшественников). Когда клиентский узел 10 запускает какое-либо доступное приложение, механизм запуска может произвести запуск приложения на сервере 30, если это необходимо (т.е. когда клиентский узел 10 не располагает ресурсами, чтобы локально выполнить прикладную программу).

PNAPI 52 обеспечивает компоненту 56 пользовательского интерфейса всей информацией по опубликованному приложению для осуществления отображения на экране 12 (фиг.1) клиентского узла 10. Также, для осуществления функции одноразовой аутентификации, PNAPI 52 управляет входом в систему серверной фермы по локальной базе данных полномочий регистрации (т.е. паролей) для пользователей клиентского узла 10. Данные полномочий могут сохраняться или не сохраняться при перезагрузке клиентского узла 10 (т.е. при выключении и последующем включении питания).

PNAPI 52 обеспечивает автоматическое и ручное управление объектами приложения “Программное окружение”, сохраняемыми в локальной кэш-памяти 60. Содержимое локальной кэш-памяти 60 может обновляться пользователем клиентского узла 10 либо вручную, либо с периодичностью, которую определяет пользователь, либо сервером, в любое время во время действия соединения. При реализации в среде Windows PNAPI 52 может устанавливать связи с удаленными файлами приложений и управлять меню "Start" и иконками рабочего стола экрана для быстрого вызова объектов приложений.

Пользовательский интерфейс программного окружения

Модуль 56 пользовательского интерфейса осуществляет связь с PNAPI 52 и может являться расширенной версией существующего интерфейса клиент-пользователь (например, программы удаленного управления приложениями, Remote Application Manager). Модуль 56 пользовательского интерфейса через PNAPI 52 получает доступ к информации, которая хранится в локальной кэш-памяти, и визуально представляет эту информацию пользователю на экране 12 дисплея (фиг.1) клиентского узла 10. Отображаемая информация представляет собой смесь информации, создаваемой пользователем клиентского узла 10, и информации, получаемой приложением “Программное окружение”. Модуль 56 пользовательского интерфейса может также показать пользователю все приложения, с которыми пользователь работает в данный момент времени, и все активные и прекращенные сеансы.

При реализации в среде Windows модуль 56 пользовательского интерфейса может представлять множество разных графических компонентов, таких как окна или выпадающие меню, которые должны отображаться на экране 12 дисплея (фиг.1). Отображение сочетания таких компонентов графического пользовательского интерфейса обычно называют “рабочим столом” экрана. Рабочий стол, формируемый модулем 56 пользовательского интерфейса, может включать в себя окно “Программное окружение”, показывающее соседние прикладные программы, доступные для пользователя клиентского узла 10. Эти прикладные программы представляют собой фильтрованный набор опубликованных приложений, размещенных на серверной ферме в сети. Модуль 56 пользовательского интерфейса может создавать для каждой серверной фермы свое окно программного окружения или объединять приложения с различных серверных ферм в одном окне программного окружения.

На верхнем уровне каталогов окно “Программное окружение” содержит папку для каждой серверной фермы. Щелчок мышью 18 (фиг.1) на одной из папок вызывает появление окна, содержащего образы (т.е. иконки) всех приложений, размещенных на этой ферме и доступных пользователю (см., например, фиг.6А и 6В). Окно “Программное окружение” становится активным окном для запуска опубликованных приложений, а модуль 56 пользовательского интерфейса может быть использован для запуска приложений через PNAPI 52. Например, пользователь клиентского узла 10 может при помощи мыши 18 выбрать одну из выведенных иконок и запустить связанное с ней приложение.

Характерной чертой реализации приложения “Программное окружение” на базе клиентского узла является то, что пользователь может просматривать объекты, отображаемые в окне программного окружения, даже когда клиентский узел отключен от линии (в режиме offline), то есть когда соединение 62 ICA не активно. Кроме того, пользователь клиентского узла 10 может перетаскивать объекты приложений и папки из окна “Программное окружение” в другие графические компоненты (например, в другие окна, папки, и т.п.) рабочего стола экрана.

На фиг.5 показан пример организации программных компонентов для реализации приложения “Программное окружение” на базе серверного узла. Компоненты включают в себя служебную компоненту 44' (PNSVC), компоненту 48' базы данных приложений, компоненту 52' программного интерфейса приложений (PNAPI), компоненту 56' пользовательского интерфейса и локальную кэш-память 60'. Каждая программная компонента 44', 48', 52', 56' и 60' инсталлирована на сервере 30' приложений. Программные компоненты при реализации приложения на базе серверного узла соответствуют программным компонентам при его реализации на базе клиентского узла (см. фиг.4). Функционирование каждой программной компоненты на базе серверного узла аналогично функционированию такой же компоненты на базе клиентского узла, с отличиями или дополнительными возможностями, которые описываются ниже. Компонента 44' PNSVC осуществляет обмен данными с базой 48' данных приложений и с PNAPI 52', используя локальный вызов процедур. PNAPI 52' также производит обмен данными с модулем 56' пользовательского интерфейса и локальной кэш-памятью 60'.

Подобно тому, как это показано на фиг.4 для клиентского узла 10, клиентский узел 20 регистрируется в сети 40 (фиг.1); сервер 30' создает и поддерживает базу данных, содержащую информацию о приложениях, собранную с других серверов 32, 34 серверной фермы, и между сервером 30' и клиентским узлом 20 устанавливается канал связи. Сервер 30' приложений ведет обмен данными с клиентским узлом 20 через канал 62' связи ICA. Канал 62' связи может быть установлен посредством протокола виртуального канала ICA (например, Thinwire). Протокол Thinwire может быть использован для передачи команд представления от Windows-приложений, исполняемых на сервере 30', к клиентскому узлу 20. Пользователю клиентского узла 20 будет казаться, что приложения исполняются на самом клиентском узле 20. Клиентский узел 20 может включать в себя прикладную программу 64 удаленного управления приложениями (Remote Application Manager), которая осуществляет связь с сервером 30' приложений через канал 62' связи ICA.

Чтобы запустить на выполнение приложение “Программное окружение” при его реализации на базе серверного узла, пользователь клиентского узла 20 выходит на исходный рабочий стол экрана (на сервере 30') и запускает приложение “Программное окружение” из среды рабочего стола. Выход на исходный рабочий стол может происходить автоматически, т.е. через сценарий регистрации клиентского узла 20, посредством программы, указанной в группе StartUp в Windows 95, или посредством другого, особого централизованного механизма управления со стороны сервера. Все удаленное управление приложениями и их запуском осуществляется через исходный рабочий стол экрана.

Подобно тому, как это показано на фиг.4 для сервера 30, сервер 30' использует данные полномочий пользователя, чтобы определить те прикладные программы, которые разрешены для пользователя клиентского узла 20. Графическое окно “Программное окружение” возвращается на клиентский узел 20 и отображается на экране 22 клиентского узла (фиг.1). Это окно может содержать иконки, представляющие разрешенные, а возможно, и неразрешенные прикладные программы, которые составляют программное окружение клиентского узла 20.

Пользователь клиентского узла 20 может выбрать и запустить одну из прикладных программ, представленных в окне “Программное окружение”. При запуске прикладной программы приложение “Программное окружение” может, если это подходит, осуществить исполнение прикладной программы на том же самом сервере 30', учитывая требования к распределению загрузки между серверами и доступность этой прикладной программы на сервере 30'. PNAPI 52' может включать в себя механизм для запуска удаленного приложения локально на сервере 30', когда объявлено, что запуск прикладной программы должен быть осуществлен сервером 30'. Когда нужно, чтобы выполнение прикладной программы прошло на другом сервере, приложение “Программное окружение” может осуществить запуск этой прикладной программы через сервер 30' (т.е. клиентское устройство на базе сервера), используя окна для представления этой программы на рабочем столе экрана клиентского узла 20, как это было описано выше для фиг.3В.

В одном из вариантов осуществления приложение “Программное окружение”, реализованное на базе web-сервера, включает в себя группу объектов, которые управляют различными аспектами приложения. В одном варианте осуществления приложение включает в себя три основных класса объектов, которые подключаются к web-серверу: класс шлюзового объекта, класс объекта данных полномочий, класс объекта приложений. В некоторых особых вариантах осуществления классы объектов создаются как модель Java beans. Три основных класса объектов обеспечивают: проверку данных полномочий пользователей для доступа в серверную ферму; формирование списков опубликованных приложений, к которым конкретные пользователи могут получать доступ; обеспечение подробной информации по конкретным опубликованным приложениям и преобразование информации по опубликованным приложениям в формат, совместимый с ICA.

Если объекты созданы как Java beans, доступ к ним может быть осуществлен рядом различных способов. Например, они могут быть скомпилированы как СОМ-объекты и сделаны доступными через web-сервер, как компоненты ActiveX. В другом варианте осуществления Java beans могут использоваться в их естественной форме, такой как в случае, когда сервер использует технологию Java Server Pages. В еще одном варианте осуществления Java beans могут быть реализованы и использованы непосредственно в Java servlet. В еще одном варианте осуществления сервер 30 может осуществлять реализацию Java beans непосредственно как СОМ-объектов.

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

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

Как отмечалось выше, класс шлюзового объекта кэширует информацию, чтобы сократить время обмена данными с нужной серверной фермой. Шлюзовый объект может снабжаться расширением, чтобы вести обмен данными с серверной фермой по особым протоколам, например HTTP. В одном из вариантов осуществления создается класс расширения, который позволяет шлюзовому объекту вести обмен данными с серверной фермой через именованные каналы WINDOWS NT. Шлюзовый объект может создавать специальную процедуру программного интерфейса приложений, которая позволяет другим объектам “программного окружения” делать запросы, адресованные этому объекту, касающиеся информации о приложениях.

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

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

Фиг.6А представляет собой пример снимка экрана окна 120 “Программное окружение”, которое может быть выведено на экран 12, 22 (фиг.1) любого клиентского узла 10, 20 после завершения исполнения приложения “Программное окружение”. Окно 120 включает в себя графические иконки 122. Каждая иконка представляет какую-то прикладную программу, которая размещена на одном из серверов 30, 32, 34 и 36 сети 40 (фиг.1). Каждое представленное приложение доступно для исполнения пользователем клиентского узла. Пользователь может выбрать и запустить одно из приложений, пользуясь мышью 18, 28 или клавиатурой 14, 24.

Фиг.6В представляет собой пример снимка экрана другого окна 124 “Программное окружение”, которое может быть выведено на экран 12, 22 (фиг.1) любого клиентского узла 10, 20 после завершения исполнения приложения “Программное окружение”. Окно 124 включает в себя графические иконки 126, 128. Каждая иконка 126, 128 представляет какую-то прикладную программу, которая размещена на одном из серверов 30, 32, 34 и 36 сети 40. Каждое приложение, представленное одной из иконок 126, доступно для исполнения пользователем клиентского узла 10, 20. Пользователь может выбрать и запустить одно из приложений, пользуясь мышью 18, 28 или клавиатурой 14, 24. При показе программного окружения в web-среде снимки экранов подобны приведенным на фиг.6А и 6В, за исключением того, что иконки 122, 126, 128 отображаются в окне браузера.

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

На фиг.7 показан пример процесса, посредством которого пользователь любого клиентского узла 10, 20 может быть проинформирован о доступности приложений, размещенных на серверах 30, 32, 34 и 36 приложений в сети 40. На этапе 80 клиентский узел 10, 20 запрашивает регистрацию у одного из серверов, например сервера 32. Чтобы установить соединение, сервер 32 затребует достоверные данные полномочий пользователя. Сервер 32 получает данные полномочий пользователя от клиентского узла 10 (этап 82) и выполняет аутентификацию пользователя для регистрации в начале сеанса (этап 84). Рабочий стол отображается на клиентском узле 10, 20 (этап 85). Рабочий стол может включать в себя графическую иконку, представляющую приложение “Программное окружение”.

На этапе 86 сервер 32 приложений устанавливает соединение с каждым из других серверов 30, 34 и 36 для обмена, как это было описано выше, информацией о приложениях, соответствующей прикладным программам, размещенным на этих серверах (этап 88). На этапе 90 сервер 32 приложений создает и поддерживает базу данных собранной информации о приложениях. Каждый другой сервер 30, 34, 36 в серверной ферме может создать базу данных, эквивалентную базе данных сервера 32, и таким же способом, что и сервер 32. В другом варианте осуществления база данных сервера 32 может являться централизованной базой данных, которая доступна для каждого другого сервера 30, 34, 36 приложений в серверной ферме. Сбор информации о приложениях может происходить независимо или может быть инициирован запросом клиентского узла 10, 20 начать сеанс, направляемым серверу фермы 38.

На этапе 92 клиентский узел 10, 20 может запросить исполнение прикладной программы с рабочего стола экрана. Главный серверный узел может обработать этот запрос и, оценив распределение загрузки серверов и доступность данной прикладной программы, как это описывалось выше, определить сервер приложений, который должен обслужить запрос клиентского узла 10, 20 (этап 94). Например, для обслуживания запроса клиентского узла 10, 20 может быть выбран сервер 32 приложений. На этапе 96 клиентский узел 10, 20 устанавливает канал связи с сервером 32. Сервер 32 и клиентский узел 10, 20 могут вести обмен данными в соответствии с протоколом ICA, который является подходящим для клиентского узла, как было описано выше.

Кроме того, в ответ на запрос запустить на выполнение прикладную программу, главный серверный узел 30 или сервер 32 могут запустить на выполнение приложение (этап 93) и переслать результаты на клиентский узел 10, 20, хотя клиентский узел 10, 20 мог и не запрашивать приложение “Программное окружение” (PN). При исполнении приложения PN главный серверный узел 30 или сервер 32 фильтруют информацию о приложениях в базе данных на основе данных полномочий пользователя (этап 100). Результат фильтрации базы данных определяет те прикладные программы, которые составляют программное окружение клиентского узла 10, 20. Это программное окружение в виде информации о доступных приложениях пересылается на клиентский узел 10, 20 (этап 102) и отображается на экране 12, 22 клиентского узла в графическом окне “Программное окружение” (этап 104).

В других вариантах осуществления окно “Программное окружение” может включать в себя приложения, которые присутствуют на серверной ферме, но не доступны для использования клиентским узлом 10, 20. При реализации в среде Windows доступные (и недоступные) приложения могут быть представлены посредством иконок. Пользователь клиентского узла 10, 20 может выбрать и запустить одно из приложений, показанных в окне “Программное окружение”.

Вся информация, необходимая для практической реализации настоящего изобретения, может быть представлена в виде одной или нескольких программ, которые могут считываться компьютером и которые могут быть реализованы как одно или несколько промышленных изделий. Промышленное изделие может представлять собой гибкий диск, жесткий диск, CD ROM, карту флэш-памяти, PROM, RAM, ROM или магнитную ленту. В общем случае программы, которые могут быть выполняться на соответствующем компьютере при выполнении определенных операций способа по настоящему изобретению, могут быть реализованы на любом языке программирования. Примеры языков, которые могут быть использованы, включают С, C++ или JAVA. Эти программы могут быть записаны на/в одном или нескольких промышленных изделиях в виде объектного кода.

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

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

1. Способ показа клиентской системе прикладных программ, которые доступны для использования в сети, включающей клиентскую систему и совокупность серверов, среди которых имеется по меньшей мере один хост-сервер и множество серверов, на которых размещены прикладные программы, включающий в себя следующие этапы: (a) на хост-сервере получают информацию о приложениях, соответствующую прикладным программам, которые размещены на указанном множестве серверов и которые выполняют на одном сервере из этого множества, когда программы запускают на выполнение; (b) от клиентской системы принимают данные полномочий, удостоверяющие ее пользователя; (c) для каждой прикладной программы, размещенной на множестве серверов, на основе данных полномочий пользователя и информации о прикладных программах определяют, доступна ли эта программа для использования клиентской системой, и (d) от хост-сервера к клиентской системе передают информацию, указывающую клиентской системе каждую прикладную программу из числа размещенных на серверах, к которой пользователь клиентской системы имеет право доступа для выполнения ее на сервере, на котором эта программа размещена.

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

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

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

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

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

7. Способ по п.6, отличающийся тем, что включает в себя этап, на котором объединяют информацию, принятую от второго и третьего серверов, для передачи в клиентскую систему через первое соединение.

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

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

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

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

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

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

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

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

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

17. Способ по п.1, отличающийся тем, что на этапе (d): (d-a) формируют конечный кадр экрана, указывающий каждую прикладную программу из размещенных на серверах, которая доступна клиентской системе для выполнения, и (d-b) передают сформированный конечный кадр экрана в клиентскую систему.

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

19. Способ по п.18, отличающийся тем, что включает в себя этапы, на которых (e) анализируют SGML-документ; (f) в результате анализа SGML-документа извлекают информацию о прикладных программах, соответствующую программам, размещенным по меньшей мере на одном из множества серверов.

20. Способ по п.17, отличающийся тем, что на этапе (b) посредством хост-системы принимают от клиентской системы биометрические данные полномочий пользователя.

21. Способ по п.17, отличающийся тем, что на этапе (b) посредством хост-системы принимают от клиентской системы зашифрованные данные полномочий пользователя.

22. Способ по п.17, отличающийся тем, что на этапе (d-a): (a) посредством хост-системы принимают от клиентской системы данные полномочий пользователя; (b) на хост-сервере на основе принятых данных полномочий выполняют аутентификацию пользователя клиентской системы и (c) выполняют прикладную программу, выбранную из числа прикладных программ и размещенную на одном из множества серверов, не требуя дополнительного получения от клиентской системы данных полномочий пользователя.

23. Способ по п.17, отличающийся тем, что на этапе (d-a) формируют конечный кадр экрана в виде файла SGML, указывающий каждую прикладную программу из числа размещенных на серверах, которая доступна клиентской системе для выполнения.

24. Способ по п.17, отличающийся тем, что на этапе (d-a) формируют конечный кадр экрана в виде файла HTML, указывающий каждую прикладную программу из числа размещенных на серверах, которая доступна клиентской системе для выполнения.

25. Способ по п.17, отличающийся тем, что на этапе (d-a) формируют конечный кадр экрана, представляющий доступные прикладные программы в виде иконок в окне графического интерфейса пользователя.

26. Способ по п.17, отличающийся тем, что на этапе (d-b) передают сформированный конечный кадр экрана в клиентскую систему, используя HTTP.

27. Способ по п.17, отличающийся тем, что включает в себя следующие этапы: (e) принимают запрос на выполнение одной из доступных прикладных программ, размещенных на серверах, и (f) выполняют запрашиваемую прикладную программу.

28. Способ по п.27, отличающийся тем, что на этапе (f) выполняют запрашиваемую прикладную программу в окне, которое содержится на странице конечного кадра экрана.

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

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

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

32. Способ по п.1, отличающийся тем, что хост-сервер использует данные полномочий пользователя, чтобы определить, разрешен ли пользователю клиентской системы доступ к хост-серверу, и определить те прикладные программы, выполнение которых разрешено пользователю клиентской системы.

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

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

35. Способ отображения каждой прикладной программы, доступной для использования клиентской системой, в сети, включающей множество серверов, на которых размещены прикладные программы, содержащий следующие этапы: (a) принимают данные полномочий, удостоверяющие пользователя клиентской системы; (b) поддерживают информацию о прикладных программах, соответствующую каждой прикладной программе, размещенной на каждом из серверов; (c) на основе данных полномочий пользователя определяют, разрешено ли пользователю клиентской системы использование каждой прикладной программы из числа размещенных на серверах; (d) в ответ на информацию о прикладных программах передают информацию в клиентскую систему, при этом передаваемая информация показывает каждую прикладную программу, которую разрешено использовать пользователю клиентской системы.

36. Способ по п.35, отличающийся тем, что на этапе (d): (d-a) по результатам определения формируют конечный кадр экрана, указывающий каждую прикладную программу, из числа размещенных на серверах, которая доступна клиентской системе для выполнения, и (d-b) передают сформированный конечный кадр экрана в клиентскую систему.

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

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

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

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

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

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

43. Сервер по п.41, отличающийся тем, что указанное устройство формирования конечного кадра экрана выполнено с возможностью производить анализ шаблонов SGML-документов.

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

РИСУНКИРисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8, Рисунок 9, Рисунок 10, Рисунок 11, Рисунок 12, Рисунок 13



 

Похожие патенты:

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

Изобретение относится к области вычислительной техники, в частности к устройствам приоритетного обслуживания запросов

Изобретение относится к системам и способам отображения информации на удаленных компьютерах

Изобретение относится к области вычислительной техники, в частности к устройствам приоритетного обслуживания запросов

Изобретение относится к области вычислительной техники, в частности к устройствам приоритетного обслуживания запросов

Изобретение относится к вычислительной технике

Изобретение относится к вычислительной технике, в частности к устройствам приоритетного обслуживания запросов

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

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

Изобретение относится к области вычислительной техники, в частности, к устройствам приоритетного обслуживания запросов

Изобретение относится к вычислительной технике и используется в автоматических системах управления технологическими процессами

Изобретение относится к области вычислительной техники, в частности к устройствам приоритетного обслуживания запросов

Изобретение относится к способу и устройству обработки данных для сохранения возвратного состояния в устройстве обработки данных

Изобретение относится к системам обработки информации

Изобретение относится к механизмам обработки прерываний в компьютерных системах

Изобретение относится к области вычислительной техники и может быть использовано в системах обмена данными и локальных вычислительных сетях

Изобретение относится к вычислительным устройствам для управления памятью, в частности к контроллерам внешней памяти

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

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

Изобретение относится к способу и системе для обеспечения клиента информацией пользовательского интерфейса
Наверх