[go: up one dir, main page]

RU2237275C2 - Server and method (variants) for determining software surroundings of client node in a network having client/server architecture - Google Patents

Server and method (variants) for determining software surroundings of client node in a network having client/server architecture Download PDF

Info

Publication number
RU2237275C2
RU2237275C2 RU2001117826/09A RU2001117826A RU2237275C2 RU 2237275 C2 RU2237275 C2 RU 2237275C2 RU 2001117826/09 A RU2001117826/09 A RU 2001117826/09A RU 2001117826 A RU2001117826 A RU 2001117826A RU 2237275 C2 RU2237275 C2 RU 2237275C2
Authority
RU
Russia
Prior art keywords
server
application
servers
client system
information
Prior art date
Application number
RU2001117826/09A
Other languages
Russian (ru)
Other versions
RU2001117826A (en
Inventor
Мартин ДУУРСМА (AU)
Мартин ДУУРСМА
Анатолий ПАНАСЮК (AU)
Анатолий ПАНАСЮК
Энтони УНГЕРМАН (US)
Энтони УНГЕРМАН
Брэдли Джей ПЕДЕРСЕН (US)
Брэдли Джей Педерсен
Том С. ДЭВИС III (US)
Том С. ДЭВИС III
Марк А. БЛУМФИЛД (US)
Марк А. БЛУМФИЛД
Роберт СИРАЛДО (US)
Роберт СИРАЛДО
Original Assignee
Ситрикс Системз, Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/252,391 external-priority patent/US6643690B2/en
Priority claimed from US09/390,928 external-priority patent/US6928469B1/en
Application filed by Ситрикс Системз, Инк. filed Critical Ситрикс Системз, Инк.
Publication of RU2001117826A publication Critical patent/RU2001117826A/en
Application granted granted Critical
Publication of RU2237275C2 publication Critical patent/RU2237275C2/en

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

FIELD: client/server architecture networks engineering.
SUBSTANCE: One of method variants includes following operations: host-server receives information about applications, which matches applications, which are placed on given plurality of servers and which are executed on one server from said plurality, when programs are launched for execution; from client system authorization data is received for authentication of user, for each application level of access from client system is determined; and from host-server to client system information is sent, which directs client system to each application from number of placed on servers, to which client system user has access for execution on server.
EFFECT: possible receiving of information about applications accessible on network servers by user of client system.
3 cl, 13 dwg, 2 tbl

Description

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

Настоящее изобретение, в общем случае, относится к сетям с архитектурой типа клиент/сервер. Более конкретно, настоящее изобретение относится к серверу и к реализуемому с его помощью способу информирования клиентской системы о прикладных программах (приложениях), установленных в системах сервера, которые доступны для исполнения клиентской системой.The present invention generally relates to networks with a client / server architecture. More specifically, the present invention relates to a server and to a method for informing a client system about application programs (applications) installed in server systems that are available for execution by a client system using it.

Уровень техникиState of the art

Современные компьютерные сети состоят из ряда компьютерных систем, называемых узлами, которые связываются с другими компьютерными системами через каналы связи (см., например, патенты США №№5666501, 5689708, 5729734, 5737592, 5794207 и 5826027). В типичном случае некоторые из этих узлов являются клиентскими узлами, а другие узлы являются серверными узлами (называемыми далее также серверами). Клиентский узел формулирует и посылает запросы к серверному узлу. Пользователь клиентского узла вводит запросы через интерфейс пользователя, работающий на клиентском узле. Серверный узел оценивает эти запросы и посылает ответы в клиентский узел для отображения на интерфейсе пользователя клиентского узла.Modern computer networks consist of a number of computer systems, called nodes, that communicate with other computer systems through communication channels (see, for example, US Patents Nos. 5666501, 5689708, 5729734, 5737592, 5794207 and 5826027). Typically, some of these nodes are client nodes, and other nodes are server nodes (hereinafter also referred to as servers). The client node formulates and sends requests to the server node. A client node user enters requests through a user interface running on the client node. The server node evaluates these requests and sends responses to the client node to display on the user interface of the client node.

Обычно на серверных узлах установлен ряд прикладных программ, доступ к которым может быть получен и которые могут быть исполнены посредством клиентских узлов. Когда клиентский узел запускает прикладную программу, исполнение этого приложения может происходить либо на клиентском, либо на серверном узле, в зависимости от модели вычислений, принятой в компьютерной сети. При серверной модели вычислений исполнение приложения производит серверный узел, а по сети в сторону клиентского узла для отображения передается только управляющая информация для пользовательского интерфейса клиентского узла. При клиентской модели вычислений серверный узел передает программу приложения на клиентский узел, так что клиентский узел может работать с программой, используя собственные ресурсы.Typically, a number of application programs are installed on server nodes, access to which can be obtained and which can be executed through client nodes. When the client node starts the application program, the execution of this application can occur either on the client or server node, depending on the calculation model adopted in the computer network. In the server model of calculations, the application is executed by the server node, and only control information for the user interface of the client node is transmitted over the network to the client node for display. In the client model of calculations, the server node transfers the application program to the client node, so that the client node can work with the program using its own resources.

Одним из недостатков современных компьютерных сетей является то, что клиентские узлы могут не знать о прикладных программах, которые имеются на серверных узлах и которые можно использовать. В действительности, клиентские узлы могут даже не знать обо всех серверных узлах, которые доступны в сети. Чтобы найти доступные приложения на конкретном серверном узле, пользователю клиентского узла может понадобиться найти и получить доступ к этому серверному узлу и вывести перечень файлов, существующих на этом серверном узле. Даже в этом случае перечень может не показать пользователю те приложения, работа с которыми пользователю разрешена.One of the drawbacks of modern computer networks is that client nodes may not be aware of applications that are available on server nodes and which can be used. In fact, client nodes may not even be aware of all server nodes that are available on the network. To find available applications on a specific server node, a client node user may need to find and access this server node and list the files that exist on that server node. Even in this case, the list may not show the user those applications with which the user is allowed to work.

Кроме того, часто после того, как пользователь узнал, какие программы приложений имеются на серверном узле, он должен установить связь с этими приложениями. Выпущены программы, помогающие устанавливать такую связь. Так, например, программа Remote Application Manager производства компании Citrix Systems, Inc., (США) представляет собой приложение, которое инсталлируют на клиентском узле. Эта прикладная программа предлагает администратору клиентского узла ввести информацию, которая установит связь с приложением, открытым для общего пользования (опубликованным) на конкретном серверном узле. Администратор передает такую информацию, как имя сеанса, протокол для доступа к серверному узлу, имя сервера или IP-адрес или имя опубликованного приложения. Подходы такого типа требуют, чтобы администратор имел эту информацию и обладал подробными сведениями о протоколах и доменах, чтобы установить такое соединение.In addition, often after the user finds out what application programs are available on the server node, he must establish a connection with these applications. Programs have been released to help establish this connection. For example, the Remote Application Manager program manufactured by Citrix Systems, Inc., (USA) is an application that is installed on a client node. This application program prompts the administrator of the client node to enter information that will establish a connection with the application open for public use (published) on a specific server node. The administrator transmits information such as the name of the session, the protocol for accessing the server node, the server name or IP address or the name of the published application. This type of approach requires the administrator to have this information and detailed protocol and domain information to establish such a connection.

Сущность изобретенияSUMMARY OF THE INVENTION

Настоящее изобретение дает возможность пользователю клиентской системы быть информированным о прикладных программах, доступных на серверах сети, при этом не требуется, чтобы пользователь знал, где находить такие приложения, и чтобы он вводил техническую информацию, необходимую для связи с такими приложениями.The present invention enables the user of the client system to be informed about the application programs available on the network servers, it is not required that the user knows where to find such applications and that he enters the technical information necessary to communicate with such applications.

С одной стороны, настоящее изобретение касается способа представления прикладных программ для клиентской системы в сети, включающей саму клиентскую систему и множество серверов. Любой из множества этих серверов, который способен принимать информацию о приложениях, соответствующую прикладным программам, размещенным на множестве серверов сети, может функционировать в качестве хост-сервера, собирающего указанную информацию о приложениях. Данные полномочий пользователя принимаются от клиентской системы. Возможность доступа клиентской системы к каждому из приложений для его исполнения определяется на основе данных полномочий пользователя и принятой информации о приложениях. От хост-сервера к клиентской системе передается информация, указывающая все размещенные на серверах приложения, которые доступны клиентской системе для исполнения. В некоторых вариантах осуществления хост-сервер формирует на выходе отображаемый файл, содержащий информацию, относящуюся к данному приложению, такой как файл языка разметки гипертекста (HTML), файл расширенного языка разметки (XML) или иной файл стандартного обобщенного языка разметки (SGML).On the one hand, the present invention relates to a method for presenting application programs for a client system in a network including the client system itself and a plurality of servers. Any of a variety of these servers that is capable of receiving application information corresponding to application programs hosted on a plurality of network servers can function as a host server collecting the specified application information. User credentials are received from the client system. The ability of the client system to access each of the applications for its execution is determined on the basis of user credentials and received information about the applications. Information is transmitted from the host server to the client system, indicating all applications hosted on the servers that are available to the client system for execution. In some embodiments, the host server generates an output file containing information related to the application, such as a hypertext markup language (HTML) file, an extended markup language (XML) file, or another standard general markup language (SGML) file.

Хост-сервер может проверить право доступа клиентской системы на основе полученных данных полномочий пользователя. Когда клиентская система выбирает для исполнения одно из доступных приложений, это приложение может быть исполнено без необходимости дополнительного ввода данных полномочий со стороны пользователя клиентской системы, если даже это приложение находится на сервере, ином, нежели хост-сервер.The host server can verify the access right of the client system based on the received user credentials. When the client system selects one of the available applications for execution, this application can be executed without the need for additional input of credentials by the user of the client system, even if this application is located on a server other than the host server.

В одном из вариантов осуществления изобретения соединение между клиентской системой и хост-сервером устанавливается с использованием протокола независимой архитектуры вычислительной системы (1СА). Протокол 1СА может устанавливать виртуальный канал для передачи информации к клиентской системе, с указанием каждого приложения из числа размещенных на серверах, которое доступно клиентской системе.In one embodiment, the connection between the client system and the host server is established using an independent computing system architecture (1CA) protocol. The 1CA protocol can establish a virtual channel for transmitting information to the client system, indicating each application from the number hosted on the servers, which is available to the client system.

При этом соединении может быть принят запрос на исполнение одного из приложений, размещенном на серверах. В ответ на этот запрос между клиентской системой и хост-сервером может быть установлено второе соединение для обмена информацией, касающейся исполнения запрошенного приложения. В другом варианте осуществления в ответ на запрос может быть установлено соединение между хост-сервером и вторым сервером, на котором имеется запрашиваемое приложение. Обмен информацией, касающейся исполнения запрашиваемого приложения, может осуществляться между вторым сервером и клиентской системой через хост-сервер.With this connection, a request can be made to execute one of the applications hosted on the servers. In response to this request, a second connection may be established between the client system and the host server to exchange information regarding the execution of the requested application. In another embodiment, in response to the request, a connection may be established between the host server and the second server on which the requested application is located. The exchange of information regarding the execution of the requested application can be carried out between the second server and the client system through the host server.

При соединении хост-сервера с клиентской системой может быть получен второй запрос на исполнение еще одного (второго) доступного приложения. В ответ на этот второй запрос может быть установлено еще одно соединение между хост-сервером и третьим сервером, на котором находится запрашиваемое приложение. Обмен информацией, касающейся исполнения этого второго запрашиваемого приложения, может осуществляться между третьим сервером и клиентской системой через хост-сервер. Для передачи к клиентской системе информация, получаемая от второго и третьего серверов, может быть объединена.When connecting the host server to the client system, a second request may be received to execute another (second) available application. In response to this second request, another connection may be established between the host server and the third server on which the requested application is located. Information regarding the execution of this second requested application may be exchanged between the third server and the client system through the host server. For transmission to the client system, information received from the second and third servers can be combined.

В еще одном варианте осуществления изобретения в ответ на первый запрос хост-сервер может передать клиентской системе информацию о приложениях. В ответ на предоставленную информацию о приложениях может быть установлено второе соединение между клиентской системой и вторым сервером, на котором находится запрашиваемое приложение.In yet another embodiment of the invention, in response to a first request, the host server may transmit application information to the client system. In response to the application information provided, a second connection may be established between the client system and the second server on which the requested application is located.

Хост-сервер может передавать информацию о доступных приложениях в ответ на запрос от клиентской системы. Передаваемая информация может создавать в клиентской системе графический пользовательский интерфейс, имеющий иконки (ярлыки), представляющие доступные приложения. Передаваемая информация может также показывать все приложения, размещенные на серверах, использование которых для клиентской системы запрещено.The host server can transmit information about available applications in response to a request from the client system. The transmitted information can create a graphical user interface in the client system that has icons (shortcuts) representing available applications. The transmitted information can also show all applications hosted on servers, the use of which is prohibited for the client system.

Хост-сервер может связываться с каждым из других серверов, чтобы определить приложения, которые размещены на этих серверах, с целью создать базу данных для хранения информации о приложениях. Доступ к этой базе данных может получать каждый из этих других серверов, или же каждый из этих других серверов может поддерживать собственную базу данных для хранения информации о приложениях.The host server can communicate with each of the other servers to determine the applications that are hosted on these servers in order to create a database for storing application information. Each of these other servers can access this database, or each of these other servers can maintain its own database for storing application information.

В другом аспекте настоящее изобретение касается способа представления для клиентской системы каждого приложения, которое размещено на сервере и которое доступно для клиентской системы. От клиентской системы принимаются данные полномочий пользователя. Информацию о приложениях поддерживает сервер. Доступность каждого из приложений, которые размещены на сервере, для исполнения клиентской системой определяется на основе данных полномочий пользователя и информации о приложениях. Информация, указывающая каждое приложение, которое доступно для клиентской системы, передается от сервера к клиентской системе.In another aspect, the present invention relates to a presentation method for a client system of each application that is hosted on a server and that is accessible to the client system. The user credentials are received from the client system. Application information is supported by the server. The availability of each of the applications that are hosted on the server for execution by the client system is determined on the basis of user credentials and application information. Information indicating each application that is available to the client system is transmitted from the server to the client system.

Еще в одном аспекте настоящее изобретение относится к серверу, содержащему служебный модуль, который собирает информацию, относящуюся к приложениям и соответствующую приложениям, которые размещены на указанном множестве серверов. База данных хранит собранную информацию о приложениях. Приемник принимает данные полномочий пользователя от клиентской системы. Для каждого из приложений, размещенных на указанном множестве серверов, модуль обслуживания, на основе данных полномочий пользователя и информации о приложениях, хранящейся в базе данных, определяет, доступно ли данное приложение для использования клиентской системой. Передатчик передает информацию к клиентской системе.In another aspect, the present invention relates to a server comprising a utility module that collects information related to applications and corresponding to applications that are hosted on a plurality of servers. A database stores collected information about applications. The receiver receives user credentials from the client system. For each of the applications hosted on the specified set of servers, the service module, on the basis of user credentials and application information stored in the database, determines whether this application is available for use by the client system. The transmitter transmits information to the client system.

Служебный модуль может передавать дейтаграмму к другим серверам из этого множества, чтобы собирать информацию о приложениях, соответствующую приложениям, размещенным на этих серверах. Передаваемая информация показывает пользователю клиентской системы каждую имеющуюся прикладную программу, которая доступна для использования клиентской системой. Передатчик может передавать информацию о доступных приложениях, используя протокол обмена по виртуальному каналу.The service module can transmit a datagram to other servers from this set in order to collect application information corresponding to the applications hosted on these servers. The transmitted information shows the user of the client system each available application program that is available for use by the client system. The transmitter can transmit information about available applications using the exchange protocol over a virtual channel.

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

Настоящее изобретение подробно описано в прилагаемой формуле изобретения. Преимущества изобретения можно лучше понять, рассматривая нижеследующее описание в совокупности с прилагаемыми чертежами, где:The present invention is described in detail in the attached claims. The advantages of the invention can be better understood by considering the following description in conjunction with the accompanying drawings, where:

фиг.1 представляет собой схему клиентских узлов, которые ведут обмен информацией с группой серверных узлов через сеть, в которой, в соответствии с принципами настоящего изобретения, может быть определено программное окружение клиентского узла;figure 1 is a diagram of client nodes that exchange information with a group of server nodes through a network in which, in accordance with the principles of the present invention, the software environment of the client node can be determined;

фиг.2А представляет собой блок-схему, иллюстрирующую пример процесса, посредством которого один из серверных узлов может инициировать исполнение приложения для определения программного окружения клиентского узла;2A is a flowchart illustrating an example of a process by which one of the server nodes can initiate an application to determine the software environment of the client node;

фиг.2В представляет собой блок-схему, иллюстрирующую пример процесса, посредством которого клиентский узел может инициировать исполнение приложения для определения программного окружения этого клиентского узла;2B is a flowchart illustrating an example of a process by which a client node can initiate execution of an application to determine the software environment of this client node;

фиг.2С представляет собой блок-схему, иллюстрирующую пример процесса, посредством которого клиентский узел использует web-браузер для определения своего собственного программного окружения;2C is a flowchart illustrating an example of a process by which a client node uses a web browser to determine its own software environment;

фиг.3А, 3В и 3С представляют собой блок-схемы, иллюстрирующие примеры процессов, посредством которых клиентский узел может запускать приложение из окна “Программное окружение”, которое отображается на этом клиентском узле;3A, 3B and 3C are flowcharts illustrating examples of processes by which a client node can start an application from the “Software Environment” window that is displayed on this client node;

фиг.3D представляет собой блок-схему, иллюстрирующую пример процесса, посредством которого клиентский узел может запускать приложение из web-страницы “Программное окружение”, которая отображается на этом клиентском узле;3D is a flowchart illustrating an example of a process by which a client node can launch an application from the “Software Environment” web page that is displayed on this client node;

фиг.4 представляет собой блок-схему осуществления вычислений на базе клиентского узла, при котором клиентский узел, имея инсталлированное приложение, определяющее программное окружение, соответствующее настоящему изобретению, ведет обмен данными с одним из серверных узлов;4 is a flowchart of computing based on a client node, in which the client node, having an installed application defining a software environment in accordance with the present invention, exchanges data with one of the server nodes;

фиг.5 представляет собой блок-схему осуществления вычислений на базе серверного узла, при котором клиентский узел ведет обмен данными с серверным узлом, имеющим, в соответствии с настоящим изобретением, инсталлированное приложение, определяющее программное окружение;5 is a flowchart of computing based on a server node in which a client node communicates with a server node having, in accordance with the present invention, an installed application defining a software environment;

фиг.6А представляет собой пример снимка экрана дисплея клиентского узла, после исполнения приложения, определяющего программное окружение, в соответствии с настоящим изобретением;6A is an example of a screen shot of a display of a client node after executing an application defining a software environment in accordance with the present invention;

фиг.6В представляет собой еще один пример снимка экрана дисплея клиентского узла, после исполнения приложения, определяющего программное окружение, в соответствии с настоящим изобретением;FIG. 6B is another example of a screen shot of a display of a client node after executing an application defining a software environment in accordance with the present invention; FIG.

фиг.7 представляет собой блок-схему осуществления процесса, посредством которого обеспечивается информирование узла клиента о доступности использования приложений, размещенных на серверах.FIG. 7 is a flowchart of a process by which a client node is informed of the availability of use of applications hosted on servers.

Сведения, подтверждающие возможность осуществления изобретенияInformation confirming the possibility of carrying out the invention

На фиг.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 и прямой асинхронной связи).Figure 1 shows the first computing system (client node) 10 and the second computing system (client node) 20, which through a network 40 are connected to computing systems (application servers) 30, 32, 34 and 36. Network 40 may be a local network (LAN) or wide area network (WAN) such as the Internet or the World Wide Web. Users of client nodes 10, 20 can be connected to network 40 through various types of communication lines, including standard telephone lines, LAN or WAN lines (for example, T1, T3, 56 kb, X.25), broadband lines (ISDN, Frame Relay , ATM) and wireless links. A connection can be established using a variety of communication protocols (for example, TCP / IP, IPX, SPX, NetBIOS, Ethernet, RS232 and direct asynchronous communication).

Клиентский узел 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 дисплея. Такая локальная обработка информации на клиентском узле осуществляется в соответствии с вышеописанной клиентской моделью вычислений.Client node 10 can be any personal computer (for example, 286, 386, 486, Pentium, Pentium II, Macintosh), a terminal running in Windows, an Internet computer, a wireless device, an information device, RISC Power PC, an X computer , a workstation, a minicomputer, a mainframe or other computing device having a Windows screen environment and a memory for storing information of sufficient volume to run application programs downloaded via network 40 from servers 30, 32, 34. Windows platforms supported by client node 10 can on Windows 3.x, Windows 95, Windows 98, Windows NT 3.51, Windows NT 4.0, Windows CE, Macintosh, Java, and Unix. The client node 10 may include a display screen 12, a keyboard 14, a memory 16 for storing downloaded applications, a processor 17 and a mouse 18. Memory 16 may provide permanent or volatile storage. The processor 17 can execute applications locally, on the client node 10, and display the Windows on-screen environment on the display screen 12. Such local processing of information on the client node is carried out in accordance with the above-described client model of calculations.

В другом варианте клиентский узел 20 может представлять собой любой терминал (работающий в среде Windows или нет) либо маломощное клиентское устройство, действующее в соответствии с серверной моделью вычислений. При серверной модели вычислений исполнение прикладных программ происходит целиком на серверах 30, 32, 34 приложений, а пользовательский интерфейс, нажатия клавиш и перемещения мыши передаются на клиентский узел 20 через сеть 40. Пользовательский интерфейс может приводиться в действие при помощи текста (как, например, в DOS) или графически (как, например, в Windows). Платформы, которые может поддерживать клиентский узел 20, включают в себя DOS и Windows СЕ для терминалов, ориентированных на работу с Windows. Клиентский узел 20 включает в себя экран 22 дисплея, клавиатуру 24, мышь 28, процессор (не показан) и память длительного хранения (не показана).In another embodiment, the client node 20 may be any terminal (working in a Windows environment or not) or a low-power client device operating in accordance with the server model of calculations. In the server model of computing, the execution of application programs takes place entirely on the application servers 30, 32, 34, and the user interface, keystrokes, and mouse movements are transmitted to the client node 20 through the network 40. The user interface can be activated using text (such as in DOS) or graphically (as, for example, in Windows). The platforms that client node 20 can support include DOS and Windows CE for Windows-oriented terminals. The client node 20 includes a display screen 22, a keyboard 24, a mouse 28, a processor (not shown), and long-term storage memory (not shown).

Серверы 30, 32, 34 и 36 приложений могут представлять собой любые вычислительные устройства, которые осуществляют управление доступом к другим частям сети (например, рабочим станциям, принтерам). Следует понимать, что к сети 40 может быть подключено большее или меньшее число серверов приложений. Серверы 30, 32, 34 и 36 могут работать в соответствии либо с клиентской, либо с серверной моделью вычислений, как это было описано выше.Application servers 30, 32, 34, and 36 can be any computing device that controls access to other parts of the network (for example, workstations, printers). It should be understood that more or fewer application servers may be connected to network 40. Servers 30, 32, 34, and 36 may operate in accordance with either the client or server model of computing, as described above.

Каждый сервер 30, 32, 34 и 36 приложений располагает одной или большим числом прикладных программ, доступ к которым могут получить клиентские узлы 10 и 20. Прикладные программы, доступ к которым разрешен для клиентских узлов, называют опубликованными приложениями. К числу таких приложений относятся, например, текстовые процессоры, такие как MICROSOFT WORD®, и электронные таблицы, такие как MICROSOFT EXCEL® от Microsoft Corporation (США), программы финансовых отчетов, программы регистрации клиентов, программы, обеспечивающие информацию технической поддержки, базы данных клиентов или управляющие программы установки приложений.Each application server 30, 32, 34, and 36 has one or more application programs that can be accessed by client nodes 10 and 20. Applications that are allowed to access client nodes are called published applications. Such applications include, for example, word processors such as MICROSOFT WORD® and spreadsheets such as MICROSOFT EXCEL® from Microsoft Corporation (USA), financial reporting programs, customer registration programs, technical support information programs, databases client or application installation management programs.

Серверы 30, 32 и 34 могут принадлежать одному и тому же домену 38. В сети 40 доменом является фрагмент сети, содержащий группу серверов приложений и клиентских узлов, находящихся под управлением одной базы данных системы защиты. Домен может включать в себя одну или несколько “серверных ферм”. (Серверная ферма - это группа серверов, которые связаны вместе, чтобы действовать как единая серверная система и обеспечивать централизованное администрирование.) И наоборот, серверная ферма может включать в себя один или несколько доменов. Чтобы серверы из двух различных доменов могли принадлежать к одной серверной ферме, может потребоваться, чтобы между этими доменами существовали доверительные отношения. Доверительные отношения - это такая связь между различными доменами, которая дает возможность пользователю получать доступ к ресурсам, связанным с каждым из доменов посредством одноразовой проверки прав доступа (аутентификации) в начале сеанса.Servers 30, 32, and 34 may belong to the same domain 38. In network 40, the domain is a network fragment containing a group of application servers and client nodes that are managed by a single security system database. A domain may include one or more “server farms”. (A server farm is a group of servers that are linked together to act as a single server system and provide centralized administration.) Conversely, a server farm can include one or more domains. In order for servers from two different domains to belong to the same server farm, you may need to trust between these domains. A trust relationship is such a relationship between different domains that enables the user to access resources associated with each of the domains through a one-time verification of access rights (authentication) at the beginning of the session.

В одном из вариантов осуществления настоящего изобретения сервер 36 приложений располагается не в домене 38, а в другом домене. В другом варианте осуществления сервер 36 приложений располагается в том же самом домене, что и серверы 30, 32 и 34. В любом из этих вариантов серверы 30, 32 и 34 приложений могут принадлежать к одной серверной ферме, в то время как сервер 36 может принадлежать к другой ферме, или все серверы 30, 32, 34 и 36 могут принадлежать к одной и той же серверной ферме. Когда к сети 40 подключается новый сервер, он либо присоединяется к существующей серверной ферме, либо образует новую ферму.In one of the embodiments of the present invention, the application server 36 is not located in the domain 38, but in another domain. In another embodiment, the application server 36 is located in the same domain as the servers 30, 32, and 34. In any of these embodiments, the application servers 30, 32, and 34 may belong to the same server farm, while the server 36 may belong to to another farm, or all of the servers 30, 32, 34, and 36 may belong to the same server farm. When a new server connects to network 40, it either joins an existing server farm or forms a new farm.

Сеть 40 может включать в себя главный серверный узел для осуществления распределения нагрузки между серверами 30, 32, 34 и 36 приложений. Главным серверным узлом может являться один из серверов 30, 32, 34 и 36 приложений. Главный серверный узел имеет перечень адресов серверов и информацию о загрузке, соответствующую каждому из остальных серверов приложений. Главный серверный узел, на основе списка доступных серверов и соответствующих уровней загрузки, может направлять клиентский узел к определенному серверному узлу, на котором будет исполняться приложение. Альтернативно, серверы 30, 32, 34 и 36 приложений могут содействовать друг другу на равноправной основе с целью обмена информацией администрирования, такой как уровни загрузки, позволяющей любому серверу 30, 32, 34, 36 отзываться на запрос, сделанный клиентским узлом 10, 20.Network 40 may include a main server node for performing load balancing between application servers 30, 32, 34, and 36. The main server node may be one of the application servers 30, 32, 34, and 36. The main server node has a list of server addresses and download information corresponding to each of the other application servers. The main server node, based on the list of available servers and the corresponding load levels, can direct the client node to the specific server node on which the application will run. Alternatively, application servers 30, 32, 34, and 36 can cooperate on an equal footing with a view to exchanging administration information, such as load levels, allowing any server 30, 32, 34, 36 to respond to a request made by client node 10, 20.

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

В соответствии с принципами настоящего изобретения пользователь любого клиентского узла 10, 20 может узнать, какие прикладные программы, установленные на серверах 30, 32, 34 и 36 приложений в сети 40, ему доступны. При этом пользователю не нужно знать, где найти эти приложения, и не требуется вводить техническую информацию, необходимую для связи с такими приложениями. Эти доступные прикладные программы составляют “программное окружение” пользователя. Система для определения программного окружения клиентского узла включает в себя некоторую прикладную программу (в дальнейшем: приложение “Программное окружение”), память для хранения компонентов этой прикладной программы и процессор для исполнения этой прикладной программы.In accordance with the principles of the present invention, a user of any client node 10, 20 can find out which application programs installed on application servers 30, 32, 34 and 36 in network 40 are available to him. In this case, the user does not need to know where to find these applications, and is not required to enter the technical information necessary to communicate with such applications. These available applications make up the “software environment” of the user. The system for determining the software environment of the client node includes a certain application program (hereinafter: the “Software Environment” application), a memory for storing components of this application program, and a processor for executing this application program.

Приложение “Программное окружение” может быть инсталлировано в памяти клиентского узла 10 и/или на серверах 30, 32, 34 и 36 приложений, как описывается ниже. Приложение “Программное окружение” представляет собой совокупность служебных программ, прикладных программ интерфейса (API) и программ пользовательского интерфейса (UI), которые показывают пользователям клиентских узлов 10, 20 те прикладные программы, размещенные на серверах приложений, право пользоваться которыми (например, осуществлять их исполнение) имеет каждый клиентский узел.The software environment application can be installed in the memory of client node 10 and / or on application servers 30, 32, 34 and 36, as described below. The “Software Environment” application is a combination of utilities, interface application programs (APIs) and user interface (UI) programs that show users of client nodes 10, 20 those applications located on application servers whose right to use them (for example, to implement them execution) has each client node.

Сервер приложений, работающий в соответствии с прикладной программой “Программное окружение”, собирает информацию о приложениях от каждого из серверов приложений внутри серверной фермы. Информация о приложениях, по каждому из приложений, размещенных на серверах, может представлять собой различные сведения, включающие, например, адрес сервера, на котором размещено данное приложение, имя приложения, сведения о пользователях или группах пользователей, которым разрешено пользоваться данным приложением, и функциональный минимум клиентского узла, который необходимо иметь, прежде чем устанавливать соединение и выполнять программу. Например, приложение может передавать поток видеоданных, и, следовательно, клиентский узел, как минимум, должен поддерживать видеоданные. Другим примером является способность клиентского узла поддерживать звуковые данные или способность обрабатывать зашифрованные данные. Информация о приложениях может быть сохранена в базе данных, как это описано далее.The application server, operating in accordance with the application program “Software Environment”, collects information about applications from each of the application servers inside the server farm. Information about the applications for each of the applications hosted on the servers can be various information, including, for example, the address of the server that hosts the application, the name of the application, information about users or user groups that are allowed to use this application, and functional The minimum client node that you must have before you establish a connection and run the program. For example, an application can transmit a video data stream, and therefore, the client node must at least support video data. Another example is the ability of a client node to support audio data or the ability to process encrypted data. Information about applications can be stored in a database, as described below.

Когда клиентский узел регистрируется в сети 40, его пользователь сообщает данные своих полномочий. Данные полномочий пользователя обычно включают в себя имя пользователя клиентского узла, пароль пользователя и имя домена, с которым пользователю разрешено работать. Данные полномочий пользователя могут быть получены из микропроцессорных кредитных карточек, из контролируемых по времени аппаратных ключей, карточек социального обеспечения, пользовательских паролей, личных идентификационных номеров (PIN), из цифровых сертификатов, основанных на алгоритмах шифрования с симметричным ключом и по эллиптической кривой, из биометрических характеристик пользователя или любых иных средств, посредством которых данные, идентифицирующие пользователя клиентского узла, могут быть получены и представлены для аутентификации. Сервер, отвечающий клиентскому узлу, может на основании данных полномочий пользователя осуществить его аутентификацию. Данные полномочий пользователя могут быть сохранены там, где исполняется приложение “Программное окружение”. Когда клиентский узел 10 исполняет приложение “Программное окружение”, данные полномочий пользователя могут быть сохранены на клиентском узле 10. Когда сервер приложений исполняет приложение “Программное окружение”, данные полномочий пользователя могут быть сохранены на этом сервере.When a client node registers in the network 40, its user reports his credentials. User authority data typically includes the user name of the client node, the user password, and the domain name that the user is allowed to work with. User credentials can be obtained from microprocessor credit cards, from time-controlled hardware keys, social security cards, user passwords, personal identification numbers (PINs), from digital certificates based on encryption algorithms with a symmetric key and an elliptic curve, from biometric user characteristics or any other means by which data identifying the user of the client node can be obtained and presented to au entifikatsii. The server responding to the client node can authenticate based on user credentials. User credentials can be saved where the Software Environment application is running. When the client node 10 executes the software environment application, user credentials can be stored on the client node 10. When the application server executes the software environment application, user credentials can be stored on this server.

На основании данных полномочий пользователя и информации о приложениях сервер может также определить, какие прикладные программы, установленные на серверах приложений, доступны для пользователя клиентского узла. Сервер передает информацию о доступных приложениях на клиентский узел. Этот процесс избавляет пользователя клиентского узла от необходимости настраивать связь с приложениями. Также администратор сервера может управлять доступом к приложениям пользователей различных клиентских узлов.Based on the user credentials and application information, the server can also determine which applications installed on the application servers are available to the user of the client node. The server sends information about available applications to the client node. This process eliminates the need for a client node user to configure communication with applications. Also, the server administrator can control access to applications of users of various client nodes.

Аутентификации пользователя, выполненной сервером, может быть достаточно, чтобы разрешить пользоваться каждой прикладной программой, представленной клиентскому узлу, несмотря на то, что эти программы могут находиться на другом сервере. Соответственно, когда клиентский узел запускает одно из приложений (т.е. инициирует его исполнение), дополнительный ввод данных полномочий пользователя может быть не нужен, чтобы разрешить использование этого приложения. Таким образом, одноразовый ввод данных полномочий пользователя может служить средством и для определения доступных приложений, и для разрешения запуска таких приложений без дополнительной ручной процедуры аутентификации, выполняемой пользователем клиентского узла.Authentication of the user performed by the server may be sufficient to allow each application program presented to the client node to be used, despite the fact that these programs can be located on another server. Accordingly, when the client node starts one of the applications (i.e., initiates its execution), additional input of user credentials may not be necessary to allow the use of this application. Thus, a one-time input of user credentials can serve as a means for determining available applications and for allowing the launch of such applications without additional manual authentication procedures performed by the user of the client node.

Как следует из описания фиг.2А-2С, приложение “Программное окружение” может быть запущено либо клиентским узлом 10, 20, либо сервером приложений. Результаты отображаются на экране 12, 22 дисплея клиентского узла 10, 20. В графическом варианте осуществления, с экранной средой Windows, результаты могут быть отображены в графическом окне “Программное окружение”, и каждое разрешенное приложение может быть представлено в этом окне графической иконкой.As follows from the description of FIGS. 2A-2C, the “Software Environment” application can be launched either by the client node 10, 20, or by the application server. The results are displayed on the display screen 12, 22 of the client node 10, 20. In the graphical embodiment, with the Windows on-screen environment, the results can be displayed in the graphics window “Software Environment”, and each allowed application can be represented in this window by a graphic icon.

В одном варианте осуществления изобретения приложение “Программное окружение” отфильтровывает прикладные программы, на использование которых клиентский узел 10, 20 не имеет разрешения, и производит отображение только разрешенных (т.е. доступных) программ. В других вариантах осуществления приложение “Программное окружение” может отображать разрешенные и неразрешенные программы. Когда фильтрация неразрешенных приложений отсутствует, то может выдаваться предупреждение, указывающее, что такие приложения не доступны. Альтернативно, приложение “Программное окружение” может сообщать клиентскому узлу обо всех прикладных программах, которые размещены на серверах 30, 32, 34, 36 приложений, не указывая, какие программы разрешены для исполнения клиентским узлам 10, 20, а какие запрещены. Полномочия могут быть определены после, когда клиентский узел 10, 20 попытается запустить одно из таких приложений.In one embodiment of the invention, the “Software Environment” application filters out applications for which the client node 10, 20 does not have permission to use, and displays only allowed (i.e. available) programs. In other embodiments, the software environment application may display allowed and unresolved programs. When there is no filtering of unauthorized applications, a warning may be displayed indicating that such applications are not available. Alternatively, the “Software Environment” application can inform the client node of all application programs that are hosted on application servers 30, 32, 34, 36, without indicating which programs are allowed for execution by client nodes 10, 20 and which are prohibited. Permissions can be determined after the client node 10, 20 attempts to start one of these applications.

На фиг.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 запрашивает приложение “Программное окружение”, результаты работы этой программы уже доступны для клиентского узла.On figa shows an example of the process by which the server launches the application "Software environment" and presents the results of this application to the client node 10. The server can run this program in response to a request 42 of the client node 10 of a particular application. This request goes to the main server node, in this example, to the server 30. The main server node 30, taking into account the load distribution and the availability of applications, informs (arrow 43) the client node 10 that the desired application is available on the server 32. Client node 10 and server 32 establish a connection (arrows 45 and 46). Through this connection, the server 32 can transfer the executable code of a particular application to the client node 10 when the client node 10 and the server 32 operate in accordance with the client computing model. Alternatively, server 32 may execute a particular application and transmit a graphical user interface when client node 10 and server 32 operate in accordance with a server computing model. In addition, either the main server node 30 or server 32 can execute the application 41 “Software environment”, sending the results (arrows 43 or 46) back to the client node 10, so that when the client node 10 requests the application “Software environment”, the results This program is already available for the client node.

На фиг.2В показан другой пример процесса, посредством которого клиентский узел 10 инициирует исполнение приложения “Программное окружение”, а сервер представляет результаты работы этой программы клиентскому узлу 10. Клиентский узел 10 запускает приложение “Программное окружение” (т.е. производится щелчок мышью на иконке 41 “Программное окружение”, представляющей это приложение). Запрос 50 приложения “Программное окружение” направляется на главный серверный узел, в данном примере - на сервер 30. Главный серверный узел 30 может произвести исполнение приложения “Программное окружение”, если это приложение размещается на главном серверном узле 30, и возвратить результаты на клиентский узел 10. В другом варианте главный серверный узел 30 может указать (стрелка 51) клиентскому узлу 10, что приложение 41 “Программное окружение” доступно на другом сервере, в данном примере - на сервере 32. Клиентский узел 10 и сервер 32 устанавливают соединение (стрелки 53 и 54), посредством которого клиентский узел 10 запрашивает исполнение приложения 41 “Программное окружение”. Сервер 32 может исполнить приложение 41 и передать результаты (т.е. графический интерфейс пользователя) на клиентский узел 10.FIG. 2B shows another example of the process by which the client node 10 initiates the execution of the “Software Environment” application, and the server presents the results of this program to the client node 10. The client node 10 launches the “Software Environment” application (i.e., click the mouse on the icon 41 “Software environment” representing this application). The request 50 of the application “Software environment” is sent to the main server node, in this example - to the server 30. The main server node 30 can execute the application “Software environment”, if this application is located on the main server node 30, and return the results to the client node 10. In another embodiment, the main server node 30 may indicate (arrow 51) to the client node 10 that the software environment application 41 is available on another server, in this example, on the server 32. Client node 10 and server 32 are installed the compound (arrows 53 and 54) by which the client node 10 requests execution of the application 41 "Programming Environment". Server 32 may execute application 41 and transmit the results (i.e., a graphical user interface) to client node 10.

На фиг.2С показан еще один пример процесса, посредством которого клиентский узел 20 инициирует исполнение приложения “Программное окружение”, в данном примере через глобальную сеть Internet (World Wide Web). Клиентский узел 20 запускает программу 80 web-браузера, такую как NETSCAPE NAVIGATOR от Netscape Communications, Inc. (США) или MICROSOFT INTERNET EXPLORER от Microsoft Corporation (США).FIG. 2C shows another example of the process by which the client node 20 initiates the execution of the software environment application, in this example, through the Internet (World Wide Web). Client node 20 launches a web browser program 80, such as NETSCAPE NAVIGATOR from Netscape Communications, Inc. (USA) or MICROSOFT INTERNET EXPLORER from Microsoft Corporation (USA).

Клиентский узел 20 через web-браузер 80 передает запрос 82 для доступа к адресу унифицированного указателя ресурсов (URL), соответствующего HTML странице, размещенной на сервере 30. В некоторых вариантах осуществления первая HTML страница 84, возвращаемая на клиентский узел 20 сервером 30, является страницей проверки прав доступа, которая пытается идентифицировать клиентский узел 20.The client node 20 through a web browser 80 transmits a request 82 to access the address of the unified resource locator (URL) corresponding to the HTML page hosted on the server 30. In some embodiments, the first HTML page 84 returned to the client node 20 by the server 30 is a page an authorization check that attempts to identify the client node 20.

Страница проверки прав доступа позволяет клиентскому узлу 20 передать данные полномочий пользователя через web-браузер 80 к серверу 30 для аутентификации. Переданные данные полномочий пользователя проверяются либо сервером 30, либо другим сервером фермы. Это дает возможность спроецировать домен защиты на сервер 30. Например, если сервер 30 работает под операционной системой WINDOWS NT от Microsoft Corporation (США), а сервер, выполняющий аутентификацию - под операционной системой UNIX, то можно говорить, что домен защиты UNIX спроецирован на сервер 30. Данные полномочий пользователя могут передаваться “в открытом виде” или быть зашифрованными. Например, данные полномочий пользователя могут передаваться посредством протокола безопасных соединений (SSL), который шифрует данные, используя алгоритм RC3, разработанный фирмой RSA Data Security, Inc. (США).The access check page allows the client node 20 to transmit user credentials via a web browser 80 to the server 30 for authentication. The transferred user credentials are checked either by server 30 or by another farm server. This makes it possible to project the security domain to server 30. For example, if server 30 is running under WINDOWS NT operating system from Microsoft Corporation (USA), and the server performing authentication under UNIX operating system, then we can say that the UNIX security domain is projected onto the server 30. The user credentials may be transmitted “in the clear” or be encrypted. For example, user credentials can be transmitted using a secure connection protocol (SSL), which encrypts data using the RC3 algorithm developed by RSA Data Security, Inc. (USA).

Сервер 30 может проверить данные полномочий пользователя, полученные от клиентского узла 20. В другом варианте сервер 30 может передать данные полномочий пользователя другому серверу для аутентификации. В этом варианте осуществления сервер, выполняющий аутентификацию, может находиться в другом домене, нежели сервер 30. Данные полномочий пользователя клиентского узла 20, прошедшие проверку прав доступа, могут быть сохранены на клиентском узле 20 в файлах предыстории обращений (cookies) или в областях, которые не отображаются web-браузером 80 или любым другим способом, принятым для поддержки web-страниц. В некоторых вариантах осуществления серверная ферма, в которую входит сервер 30, может дать гостевым пользователям, т.е. пользователям, у которых нет присвоенных данных полномочий, возможность доступа к приложениям, которые размещены на серверах этой фермы. В таких вариантах осуществления страница проверки прав доступа может предоставить механизм, такой как кнопка, или выбор из меню, который позволяет клиентскому узлу 20 указать, что он является гостевым пользователем. В иных вариантах осуществления сервер 30 может полностью опустить страницу проверки прав доступа.Server 30 may verify user credentials received from client node 20. In another embodiment, server 30 may transfer user credentials to another server for authentication. In this embodiment, the authentication server may be in a different domain than the server 30. The user credentials of the client node 20 that have passed the authorization check can be stored on the client node 20 in the cookies history files or in areas that they are not displayed by web browser 80 or by any other means adopted to support web pages. In some embodiments, the server farm, which includes server 30, can provide guest users, i.e. users who do not have assigned credentials, the ability to access applications that are hosted on the servers of this farm. In such embodiments, the access control page may provide a mechanism, such as a button, or a menu selection that allows client node 20 to indicate that he is a guest user. In other embodiments, server 30 may completely omit the authorization page.

В соответствии с фиг.2С, как только клиентский узел 20 успешно проходит аутентификацию сервером 30, этот сервер подготавливает и передает на клиентский узел 20 HTML-страницу 88, включающую в себя окно 58 “Программное окружение”, в котором появляются графические иконки 57, 57', представляющие приложения, к которым клиентский узел 20 имеет доступ. Пользователь клиентского узла 20 запрашивает исполнение приложения, представленного иконкой 57, посредством щелчка мышью на этой иконке.In accordance with FIG. 2C, as soon as the client node 20 successfully authenticates with the server 30, this server prepares and transmits to the client node 20 an HTML page 88, which includes the window 58 “Software environment” in which graphic icons 57, 57 appear 'representing applications to which the client node 20 has access. The user of the client node 20 requests the execution of the application represented by the icon 57 by clicking on this icon.

На фиг.3А показан пример процесса обмена данными между клиентским узлом 10, главным серверным узлом, в данном примере - сервером 30, и сервером 32. Клиентский узел 10 имеет с сервером 32 активное соединение 72. Клиентский узел 10 и сервер 32 могут использовать активное соединение 72 для обмена информацией, касающейся исполнения первой прикладной программы. Данные полномочий пользователя клиентского узла 10 хранятся на клиентском узле. Такое хранение данных полномочий пользователя может осуществляться в памяти длительного хранения или в кэш-памяти.FIG. 3A shows an example of a data exchange process between the client node 10, the main server node, in this example, the server 30, and the server 32. The client node 10 has an active connection 72 with the server 32. The client node 10 and the server 32 can use an active connection 72 for exchanging information regarding the execution of the first application program. The user authority data of the client node 10 is stored on the client node. Such storage of user credentials can be done in long-term storage memory or in cache memory.

В данном варианте осуществления приложение “Программное окружение” работает на клиентском узле 10. Дисплей клиентского узла имеет окно 58 “Программное окружение”, в котором появляется графическая иконка 57, представляющая вторую прикладную программу. Пользователь клиентского узла 10 может запустить вторую прикладную программу посредством двойного щелчка мышью на иконке 57. Запрос проходит к главному серверному узлу 30 через соединение 59. Главный серверный узел 30, через соединение 59, указывает клиентскому узлу 10, что искомая прикладная программа доступна на сервере 32. Узел 10 посылает сигнал серверу 32, чтобы установить второе соединение 70. Сервер 32 запрашивает данные полномочий пользователя от клиентского узла 10, чтобы проверить права доступа ко второй прикладной программе. При успешной аутентификации клиентский узел 10 и сервер 32 устанавливают второе соединение 70 и обмениваются информацией, касающейся исполнения второй прикладной программы. Соответственно, клиентский узел 10 и сервер 32 обмениваются друг с другом данными посредством множества соединений.In this embodiment, the “Software Environment” application runs on the client node 10. The display of the client node has a window “Software Environment” 58 in which a graphic icon 57 representing the second application program appears. The user of the client node 10 can start the second application program by double-clicking on the icon 57. The request goes to the main server node 30 through connection 59. The main server node 30, through connection 59, indicates to the client node 10 that the desired application is available on server 32 Node 10 sends a signal to server 32 to establish a second connection 70. Server 32 requests user credentials from client node 10 to check access rights to the second application. Upon successful authentication, the client node 10 and server 32 establish a second connection 70 and exchange information regarding the execution of the second application program. Accordingly, the client node 10 and the server 32 communicate with each other through multiple connections.

На фиг.3В показан пример процесса обмена данными между клиентским узлом 20, главным серверным узлом, в данном примере - сервером 30, и серверами 32, 34 и 36. Клиентский узел 20 имеет активное соединение 73 с сервером 32. Клиентский узел 20 и сервер 32 могут использовать активное соединение 73 для обмена информацией, касающейся исполнения первой прикладной программы. Данные полномочий пользователя клиентского узла 20 хранятся на сервере 32 в кэш-памяти или в памяти длительного хранения.FIG. 3B shows an example of a data exchange process between the client node 20, the main server node, in this example, the server 30, and the servers 32, 34 and 36. The client node 20 has an active connection 73 to the server 32. The client node 20 and the server 32 may use active connection 73 to exchange information regarding the execution of the first application program. The user credentials of the client node 20 are stored on the server 32 in the cache or in long-term storage memory.

В данном варианте осуществления приложение “Программное окружение” работает на сервере 32. Сервер 32 имеет программное обеспечение, которое формирует клиентское устройство 62, построенное на базе сервера, позволяя серверу 32 действовать в роли клиентского узла 20. Дисплей клиентского узла 20 имеет окно 58 “Программное окружение”, в котором появляются графические иконки 57, 57', представляющие, соответственно, вторую и третью прикладные программы. Пользователь клиентского узла 20 может запустить вторую прикладную программу посредством двойного щелчка мышью на иконке 57. Запрос на запуск второй прикладной программы проходит к серверу 32 через активное соединение 73, а сервер 32 пересылает этот запрос на главный серверный узел 30 (стрелка 65).In this embodiment, the “Software Environment” application runs on server 32. Server 32 has software that forms a client device 62 based on the server, allowing server 32 to act as client node 20. The display of client node 20 has window 58 “Software environment ”, in which graphic icons 57, 57 'appear, representing, respectively, the second and third application programs. The user of the client node 20 can launch the second application program by double-clicking on the icon 57. The request to start the second application program passes to the server 32 via the active connection 73, and the server 32 forwards this request to the main server node 30 (arrow 65).

Главный серверный узел 30 указывает (стрелка 65) серверу 32, что искомое приложение доступно на сервере 34. Сервер 32 связывается с сервером 34, чтобы установить соединение 66. Чтобы осуществить проверку прав доступа к приложению, сервер 34 получает данные полномочий пользователя клиентского узла 20 от сервера 32. Сервер 32 и сервер 34 устанавливают соединение (стрелка 66), посредством которого сервер 32 запрашивает исполнение второй прикладной программы, а сервер 34 возвращает серверу 32 результирующий графический интерфейс пользователя. Сервер 32 пересылает результирующий графический интерфейс пользователя на клиентский узел 20, где производится его отображение. Соответственно, обмен информацией между клиентским узлом 20 и сервером 34 проходит через сервер 32.The main server node 30 indicates (arrow 65) to the server 32 that the desired application is available on the server 34. The server 32 communicates with the server 34 to establish a connection 66. To verify the access rights to the application, the server 34 receives the user credentials of the client node 20 from server 32. Server 32 and server 34 establish a connection (arrow 66), through which server 32 requests the execution of the second application program, and server 34 returns to server 32 the resulting graphical user interface. The server 32 sends the resulting graphical user interface to the client node 20, where it is displayed. Accordingly, the exchange of information between the client node 20 and the server 34 passes through the server 32.

Подобным образом клиентский узел 20 может производить запуск третьей прикладной программы путем двойного щелчка мышью на иконке 57'. Запрос запуска третьей прикладной программы проходит на сервер 32. Сервер 32 пересылает этот запрос на главный серверный узел 30, который, учитывая загрузку серверов и доступность прикладной программы, определяет, какой сервер может обработать данный запрос. В этом примере главный серверный узел указывает, что запустить на выполнение третью прикладную программу может сервер 36.Similarly, the client node 20 can launch the third application by double-clicking on the icon 57 '. The request to start the third application program passes to the server 32. Server 32 forwards this request to the main server node 30, which, taking into account the load of the servers and the availability of the application program, determines which server can process this request. In this example, the main server node indicates that server 36 can start the third application.

Сервер 32 и сервер 36 устанавливают соединение (стрелка 74), посредством которого сервер 32 запрашивает исполнение третьей прикладной программы, а сервер 36 возвращает серверу 32 результирующий графический интерфейс пользователя. Чтобы разрешить исполнение третьей прикладной программы, сервер 36 может выполнить аутентификацию данных полномочий пользователя клиентского узла 20, которые получаются от сервера 32. Сервер 32 пересылает результирующий графический интерфейс пользователя на клиентский узел 20, где он отображается. Соответственно, результаты исполнения третьей прикладной программы проходят от сервера 36 к клиентскому узлу 20 через сервер 32.Server 32 and server 36 establish a connection (arrow 74), through which server 32 requests the execution of a third application program, and server 36 returns a resulting graphical user interface to server 32. To enable execution of the third application program, the server 36 can authenticate the user credentials of the client node 20, which are received from the server 32. The server 32 sends the resulting graphical user interface to the client node 20, where it is displayed. Accordingly, the results of the execution of the third application program pass from the server 36 to the client node 20 through the server 32.

Из этого пояснения следует, что клиентский узел может запускать на выполнение множество приложений посредством одного соединения с сервером 32, в то время как сервер 32 поддерживает множество соединений (в данном примере, одно соединение с сервером 34 и второе - с сервером 36). Кроме того, сервер 32 объединяет информацию, принятую от сервера 34, с информацией, принятой от сервера 36, в один поток данных для передачи на клиентский узел 20.It follows from this explanation that the client node can run many applications through a single connection to server 32, while server 32 supports many connections (in this example, one connection to server 34 and the second to server 36). In addition, server 32 combines information received from server 34 with information received from server 36 into a single data stream for transmission to client node 20.

На фиг.3С показан пример процесса обмена информацией между клиентским узлом 20, главным серверным узлом, в данном примере - сервером 30, и серверами 32 и 34. Клиентский узел 20 имеет активное соединение 76 с сервером 32. Клиентский узел 20 и сервер 32 могут использовать активное соединение 76 для обмена информацией, касающейся исполнения первой прикладной программы. Клиентский узел 20 может сохранять данные полномочий пользователя в кэш-памяти или в памяти длительного хранения.FIG. 3C shows an example of a process for exchanging information between a client node 20, a main server node, in this example, a server 30, and servers 32 and 34. Client node 20 has an active connection 76 to server 32. Client node 20 and server 32 can use active connection 76 for exchanging information regarding the execution of the first application program. Client node 20 may store user credential data in cache or long-term memory.

В данном варианте осуществления приложение “Программное окружение” запускается на выполнение на сервере 32. На дисплее клиентского узла 20 имеется окно 58 “Программное окружение”, в котором появляется графическая иконка 57, представляющая вторую прикладную программу. Пользователь клиентского узла 20 может запускать вторую прикладную программу посредством двойного щелчка мышью на иконке 57. Запрос на запуск второй прикладной программы проходит на сервер 32. Сервер 32 отвечает (т.е. “перезванивает”) клиентскому узлу 20 путем возврата информации о приложениях, такой как имя приложения и функциональный минимум клиентского узла 20, необходимый для работы со вторым приложением.In this embodiment, the “Software Environment” application is launched for execution on the server 32. On the display of the client node 20 there is a window “Software Environment” 58 in which a graphic icon 57 representing the second application program appears. The user of the client node 20 can start the second application program by double-clicking on the icon 57. The request to launch the second application program is sent to the server 32. The server 32 responds (ie, “calls back”) to the client node 20 by returning application information, such as the name of the application and the functional minimum of the client node 20, necessary for working with the second application.

Имея информацию от сервера 32, клиентский узел 20 далее через соединение 77 связывается с главным серверным узлом 30, чтобы определить, какой сервер может исполнить вторую прикладную программу. В данном примере таким сервером является сервер 34. Затем клиентский узел 20 устанавливает соединение 78 с сервером 34. Сервер 34 запрашивает от клиентского узла 20 данные полномочий пользователя, чтобы определить права доступа пользователя клиентского узла 20. Вторая прикладная программа выполняется на сервере 34, и сервер 34 возвращает графический интерфейс пользователя клиентскому узлу 20 через установленное соединение 78. Соответственно, клиентский узел 20 может иметь множество активных соединений с множеством серверов.Having information from the server 32, the client node 20 then, through connection 77, communicates with the main server node 30 to determine which server can execute the second application program. In this example, such a server is the server 34. Then, the client node 20 establishes a connection 78 with the server 34. The server 34 requests the user credentials from the client node 20 to determine the access rights of the user of the client node 20. The second application program runs on the server 34, and the server 34 returns the graphical user interface to the client node 20 through an established connection 78. Accordingly, the client node 20 may have many active connections to many servers.

На фиг.3D показан пример обмена данными между клиентским узлом 20, сервером 30, который в данном примере работает как web-сервер, и сервером 32. Клиентский узел 20 подтверждает серверу 30 свои права доступа, как было описано выше, в отношении фиг.2С. В одном из вариантов осуществления сервер 30 получает доступ к шаблону 90 экрана в виде SGML-, HTML- или XML-файла, чтобы использовать его как основу для построения окна “Программное окружение” и передать на клиентский узел 20. Этот шаблон может быть сохранен в энергозависимой памяти или в памяти долговременного хранения, связанной с сервером 30, или он может быть сохранен в памяти 92 большой емкости, такой как дисковое запоминающее устройство или оптическое запоминающее устройство, как показано на фиг.3D.3D illustrates an example of data exchange between client node 20, server 30, which in this example acts as a web server, and server 32. Client node 20 confirms its access rights to server 30, as described above, with respect to FIG. . In one embodiment, the server 30 accesses the screen template 90 in the form of an SGML, HTML, or XML file to use it as a basis for constructing the Software Environment window and transfer it to the client node 20. This template can be saved in volatile memory or long-term storage memory associated with the server 30, or it can be stored in a large-capacity memory 92, such as a disk storage device or optical storage device, as shown in FIG. 3D.

В данном варианте осуществления шаблон 90 представляет собой стандартный документ SGML, HTML или XML, содержащий особые теги “программного окружения”, которые заменяются динамической информацией. Эти теги указывают серверу 30, где на экране следует вставить информацию, соответствующую доступным приложениям, такую как изображения иконок. В частности, в одном варианте осуществления теги программного окружения внедрены в комментарии внутри файла, давая файлу возможность оставаться совместимым со стандартными интерпретирующими программами. В другом варианте осуществления теги программного окружения являются расширениями языка разметки, используемого как основа для шаблона.In this embodiment, template 90 is a standard SGML, HTML, or XML document containing specific “software environment” tags that are replaced by dynamic information. These tags indicate to the server 30 where on the screen to insert information relevant to available applications, such as icon images. In particular, in one embodiment, program environment tags are embedded in comments within a file, allowing the file to remain compatible with standard interpreting programs. In another embodiment, software environment tags are extensions of the markup language used as the basis for the template.

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

Figure 00000002
Examples of HTML tags that can be used in a template in accordance with the present invention are shown below in table 1. 1
Figure 00000002

Figure 00000003
Figure 00000003

Для настройки полей управления и для обеспечения условной обработки, относящейся к приложению “Программное окружение”, могут быть введены и другие теги.Other tags can be entered to configure control fields and to provide conditional processing related to the Software Environment application.

В одном варианте осуществления шаблон строят динамически, используя, например, COLD FUSION от Allaire Corp. (США) или ACTIVE SERVER PAGES от Microsoft Corporation (США). В ином варианте шаблон может быть статическим. Приложение “Программное окружение” анализирует шаблон, заменяя особые теги “программного окружения”, как это отмечалось выше. Теги, которые не относятся к особым тегам “программного окружения”, оставляются в файле, который анализируется программой 80 браузера, исполняемой на клиентском узле 20.In one embodiment, the template is built dynamically using, for example, COLD FUSION from Allaire Corp. (USA) or ACTIVE SERVER PAGES from Microsoft Corporation (USA). Alternatively, the template may be static. The software environment application analyzes the template, replacing the specific tags of the software environment, as noted above. Tags that do not belong to special tags of the “software environment” are left in a file that is analyzed by the browser program 80 executed on the client node 20.

В одном из вариантов осуществления создают объект анализатора шаблонов, который захватывает шаблон, интерпретирует особые теги “программного окружения”, присутствующие в шаблоне, и на выходе выдает исходный шаблон, в котором все теги “программного окружения” заменены соответствующим текстом. Объект анализатора шаблонов может быть передан в виде cookie, строки запроса URL или поля управления из интерфейса web-сервера, чтобы предоставить информацию, при помощи которой должна производиться замена особых тегов “программного окружения”.In one embodiment, a template analyzer object is created that captures the template, interprets the specific “software environment” tags present in the template, and outputs a source template in which all the “software environment” tags are replaced with the corresponding text. The template analyzer object can be transmitted in the form of a cookie, URL query string or control field from the web server interface to provide information that should be used to replace specific tags of the “software environment”.

В другом варианте осуществления приложение “Программное окружение” предоставляет сценариям возможность забирать информацию через программный интерфейс приложения. Сценарии могут быть написаны, например, на VBScript или Jscript. В этом варианте осуществления язык подготовки сценариев применяется для динамического формирования конечного изображения на основе информации, которую возвращает приложение в ответ на запросы сценария. Когда конечное изображение оказывается сформированным, оно передается на клиентский узел 20 для отображения программой 80 браузера.In another embodiment, the Software Environment application provides scripts with the ability to collect information through the application software interface. Scripts can be written, for example, in VBScript or Jscript. In this embodiment, the scripting language is used to dynamically generate the final image based on the information that the application returns in response to script requests. When the final image is formed, it is transmitted to the client node 20 for display by the browser program 80.

Пользователь клиентского узла 20 может запускать приложение посредством двойного щелчка мышью на иконке 57, 57', отображаемой на web-странице “Программное окружение”. В некоторых вариантах осуществления каждая иконка представляет собой закодированный URL, который указывает: местонахождение приложения (т.е., на каких серверах оно размещено или, в ином варианте, адрес главного сервера); команду запуска, связанную с приложением; и шаблон, определяющий, как должен быть представлен результат работы приложения (т.е. в окне, “вложенном” в браузер, или в отдельном окне). В некоторых вариантах осуществления URL включает в себя файл или ссылку на файл, который содержит информацию, необходимую клиенту для установления связи с сервером, на котором размещено приложение. Этот файл может создаваться динамически приложением “Программное окружение”. Клиентский узел 20 устанавливает соединение (стрелка 94) с сервером, который был определен как сервер, на котором размещено запрашиваемое приложение (в данном примере - это сервер 32), и производит обмен информацией, касающейся исполнения нужного приложения. В некоторых вариантах осуществления соединение 94 осуществляют, используя протокол независимой архитектуры вычислительной системы (1СА), выпускаемый Citrix Systems. Таким образом, клиентский узел 20 может отображать результат работы приложения в окне, отдельном от web-браузера 60, или же результат работы приложения может быть “вложен” в web-браузер.The user of the client node 20 can start the application by double-clicking on the icon 57, 57 'displayed on the web-page "Environment". In some embodiments, each icon is an encoded URL that indicates: the location of the application (i.e., on which servers it is hosted or, in another embodiment, the address of the main server); launch command associated with the application; and a template that defines how the result of the application should be presented (i.e., in a window “embedded” in a browser, or in a separate window). In some embodiments, the implementation of the URL includes a file or a link to a file that contains information necessary for the client to communicate with the server hosting the application. This file can be created dynamically by the Application Environment program. The client node 20 establishes a connection (arrow 94) with the server, which was defined as the server hosting the requested application (in this example, it is server 32), and exchanges information regarding the execution of the desired application. In some embodiments, connection 94 is made using the Independent Computing System Architecture (1CA) protocol available from Citrix Systems. Thus, the client node 20 can display the result of the application in a window separate from the web browser 60, or the result of the application can be “embedded” in the web browser.

Фиг.4 иллюстрирует пример организации программных компонентов для реализации приложения “Программное окружение” на базе клиентского узла. Реализация приложения “Программное окружение” на базе клиентского узла может быть использована либо в сетях с серверной моделью вычислений, в которых приложение “Программное окружение” исполняют серверы, либо в сетях с клиентской моделью вычислений, в которых клиентский узел 10 исполняет приложение “Программное окружение” локально. Приложение “Программное окружение” включает в себя служебную компоненту приложения “Программное Окружение” (PNSVC) (компонента 44), базу данных приложений (компонента 48), программный интерфейс приложения “Программное окружение” (PNAPI) (компонента 52), интерфейс пользователя приложения “Программное окружение” (компонента 56) и локальную кэш-память 60.Figure 4 illustrates an example of the organization of software components for implementing the application "Software environment" based on the client node. Implementation of the software environment application on the basis of the client node can be used either in networks with the server computing model in which the servers execute the software environment, or in networks with the client computing model in which the client node 10 runs the software environment locally. The Software Environment application includes the service component of the Software Environment application (PNSVC) (component 44), the application database (component 48), the software environment application program interface (PNAPI) (component 52), the application user interface “ Software Environment ”(component 56) and local cache 60.

Сервер 30 приложений, например, включает в себя служебную компоненту 44 (PNSVC) и базу 48 данных приложений. Клиентский узел 10, являясь характерным примером клиентского узла, на базе которого можно реализовать приложение “Программное окружение”, включает в себя программный интерфейс 52 приложения (PNAPI), пользовательский интерфейс 56 и локальную кэш-память 60. PNSVC 44 ведет обмен данными с базой 48 данных приложений и с PNAPI 52 на клиентском узле 10 через канал 62 связи.The application server 30, for example, includes a service component 44 (PNSVC) and an application database 48. Client node 10, being a typical example of a client node on the basis of which you can implement the application “Software environment”, includes application programming interface 52 (PNAPI), user interface 56 and local cache memory 60. PNSVC 44 communicates with base 48 application data and with PNAPI 52 on the client node 10 through the communication channel 62.

Канал 62 связи может быть установлен, например, посредством протокола ICA. ICA представляет собой протокол общего назначения для представления данных, предназначенный для работы совместно с протоколами промышленного стандарта, такими как TCP/IP, IPX/SPX, NetBEUI, с использованием транспортных протоколов промышленного стандарта, таких как ISDN, Frame Relay и режима асинхронной передачи данных (АТМ). Протокол IСА создает виртуальные каналы, которые представляют собой сеансовые каналы передачи и могут быть использованы кодом прикладного уровня для выдачи команд обмена данными. Команды виртуальных каналов рассчитаны на тесную интеграцию с функциями клиентских узлов. Один тип виртуального соединения, который поддерживается протоколом IСА, это виртуальный канал “программного окружения”.Communication channel 62 may be established, for example, via the ICA protocol. ICA is a general purpose data presentation protocol designed to work in conjunction with industry standard protocols such as TCP / IP, IPX / SPX, NetBEUI, using industry standard transport protocols such as ISDN, Frame Relay, and asynchronous data transfer mode ( ATM). The ICA protocol creates virtual channels, which are session transmission channels and can be used by application level code to issue data exchange commands. Virtual channel teams are designed for tight integration with client node functions. One type of virtual connection that is supported by the ICA protocol is the virtual circuit of the “software environment”.

Протокол виртуального канала “программного окружения” может включать в себя четыре группы команд:The virtual channel protocol of the “software environment” may include four groups of commands:

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

(2) команды, связанные с одноразовой аутентификацией, которые могут поддерживаться каждым клиентским узлом, желающим получить копию данных полномочий пользователя;(2) commands related to one-time authentication, which can be supported by each client node wishing to receive a copy of the user credentials;

(3) команды, связанные с данными приложениями для осуществления пользовательского интерфейса программного окружения; и(3) commands associated with these applications to implement the user interface of the software environment; and

(4) команды, связанные с обратным вызовом при запуске приложений для работы пользовательского интерфейса на сервере приложений.(4) commands related to callback when starting applications for the user interface to work on the application server.

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

База 48 данных приложений представляет собой кэш-память информации, предназначенной для полномочных пользователей или групп пользователей, обо всех открытых (т.е. опубликованных) приложениях в серверной ферме или в группе доверяемых доменов. Каждый сервер в серверной ферме может поддерживать свою собственную информацию о приложениях в памяти длительного хранения и строить базу 48 данных в энергозависимой памяти. В другом варианте осуществления вся собранная в базе 48 данных информация о приложениях может быть сохранена в памяти длительного хранения и сделана доступной для каждого другого сервера фермы. База 48 данных может быть реализована в уникальном формате (например, в виде связанного списка в памяти) или при помощи службы каталогов Novell (NDS) или любой службы каталогов, соответствующей стандарту Х.500, установленному Международным союзом по электросвязи (ITU) для распределенных электронных каталогов.Application database 48 is a cache of information intended for authorized users or groups of users about all open (i.e. published) applications in a server farm or in a group of trusted domains. Each server in the server farm can maintain its own application information in long-term storage and build a database of 48 data in volatile memory. In another embodiment, all application information collected in database 48 can be stored in long-term storage memory and made available for every other farm server. Database 48 can be implemented in a unique format (for example, in the form of a linked list in memory) or using the Novell directory service (NDS) or any directory service that complies with the X.500 standard established by the International Telecommunication Union (ITU) for distributed electronic directories.

База 48 данных приложений включает в себя список серверов приложений. Каждый сервер в этом списке имеет связанный с ним набор приложений. С каждым приложением связывается информация о приложении, которая может включать имя приложения, список серверов и клиентов, которым разрешено использовать данное приложение. Ниже, в таблице 2, приведен сильно упрощенный пример информации о приложениях, которая поддерживается базой данных. Пользователи А и В - это пользователи клиентских узлов 10, 20, “н/д” означает, что приложение размещено на сервере, но не доступно для пользователей клиентских узлов, и “-” означает, что приложение на сервере отсутствует.The application database 48 includes a list of application servers. Each server in this list has an associated set of applications. Each application is associated with information about the application, which may include the name of the application, a list of servers and clients that are allowed to use this application. Table 2 below provides a highly simplified example of application information supported by a database. Users A and B are users of client nodes 10, 20, “n / a” means that the application is hosted on the server but not accessible to users of client nodes, and “-” means that the application is not on the server.

Figure 00000004
Figure 00000004

Таблица 2 показывает список серверов 30, 32, 34; приложения, размещенные на этих серверах (электронная таблица, клиентская база данных, текстовый процессор и калькулятор), и тех пользователей, которым разрешено использовать эти приложения. Например, на сервере 30 размещена программа электронной таблицы, клиентская база данных и текстовый процессор. Пользователю А разрешено пользование электронной таблицей, пользователю В разрешено пользование клиентской базой данных и ни одному из пользователей не разрешено пользование текстовым процессором. Следует понимать, что для указания, кому разрешено пользоваться определенным приложением, могут быть применены и другие приемы. Например, информация о пользователях, хранящаяся в базе данных, может быть использована для указания тех клиентов, которым запрещено пользование определенным приложением, а не тех, кому это разрешено.Table 2 shows a list of servers 30, 32, 34; applications hosted on these servers (spreadsheet, client database, word processor, and calculator), and those users who are allowed to use these applications. For example, server 30 hosts a spreadsheet program, a client database, and a word processor. User A is allowed to use the spreadsheet, user B is allowed to use the client database, and no user is allowed to use the word processor. It should be understood that other techniques can be applied to indicate who is allowed to use a particular application. For example, user information stored in a database can be used to indicate those customers who are prohibited from using a particular application, and not those who are allowed to.

Чтобы получить информацию, которая хранится в базе 48 данных, сервер 30 получает от каждого сервера фермы информацию о приложениях, которые размещены на этих серверах, включая информацию управления, которая указывает, каким клиентам и серверам разрешен доступ к каждому конкретному приложению. Эта информация о приложениях, которая поддерживается в базе данных, при перезагрузке сервера 30 может либо сохраняться, либо пропадать.To obtain information that is stored in database 48, server 30 receives from each server in the farm information about applications that are hosted on these servers, including management information that indicates which clients and servers are allowed access to each specific application. This application information, which is maintained in the database, can either be saved or disappear when the server 30 is restarted.

База 48 данных приложений может являться центральной базой данных, которая хранится на серверах 30, 32 и 34 приложений, и быть доступной для всех серверов, входящих в серверную ферму. Соответственно, информация о приложениях может быть доступной для использования другими серверами, такими как те, которые производят аутентификацию опубликованных приложений в начале сеанса и запускают приложения. В другом варианте осуществления база 48 данных приложений может поддерживаться в каждом из серверов 30, 32, 34 приложений на основе информации, которую каждый сервер получает при обмене данными с другими серверами фермы.Application database 48 can be a central database that is stored on application servers 30, 32, and 34 and can be accessed by all servers included in the server farm. Accordingly, application information may be available for use by other servers, such as those that authenticate published applications at the beginning of the session and launch applications. In another embodiment, the application database 48 may be maintained in each of the application servers 30, 32, 34 based on the information that each server receives when exchanging data with other servers in the farm.

Служебная компонента приложения “Программное окружение” (PNSVC)Utility component of the software environment application (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.Each server 30, 32, 34, and 36 on which the Software Environment application is installed executes PNSVC program 44. PNSVC program 44, running on each server 30, 32, 34, and 36, establishes a communication channel (i.e., a named pipe) with each other server. Servers 30, 32, 34 and 36 no to these named pipes exchange information about applications. In another embodiment, the PNSVC program 44 collects application information from other servers in the farm by remotely invoking registries (for example, the service component 44 passes the datagram to other servers of the plurality of servers that request application information corresponding to the application programs hosted on these servers). The PNSVC program 44 also maintains the relationship of groups and users with published applications in the database 48 of the application data and gains access to information during user authentication of the client node. Server 30 administrator can configure PNSVC component 44 using the user interface.

Другие функции программы 44 PNSVC включают в себя осуществление служебных операций и функций, запрашиваемых со стороны PNAPI 52, и обмен данными с PNAPI 52 на клиентском узле 10, с использованием драйвера виртуальных устройств “программного окружения” (VDPN). Драйвер VDPN действует в соответствии с вышеописанным протоколом виртуального канала “программного окружения” для установления и поддержания ICA соединения.Other functions of the PNSVC program 44 include performing service operations and functions requested by the PNAPI 52, and exchanging data with the PNAPI 52 on the client node 10, using the software environment virtual device driver (VDPN). The VDPN driver acts in accordance with the “software environment” virtual channel protocol described above to establish and maintain an ICA connection.

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

PNAPI 52 представляет собой набор программных функций или сервисов, которые используются приложением “Программное окружение” для выполнения различных операций (например, для открывания окон на экране, открывания файлов и окон сообщений). PNAPI 52 обеспечивает общий механизм обработки для объектов запуска приложений (например, иконок), которые формируются при работе приложения “Программное окружение”, и для обработки объектов приложений в пользовательском интерфейсе старых клиентов (т.е. существующих в течение какого-то времени или их предшественников). Когда клиентский узел 10 запускает какое-либо доступное приложение, механизм запуска может произвести запуск приложения на сервере 30, если это необходимо (т.е. когда клиентский узел 10 не располагает ресурсами, чтобы локально выполнить прикладную программу).PNAPI 52 is a set of software functions or services that the Software Environment application uses to perform various operations (for example, to open windows on a screen, open files and message windows). PNAPI 52 provides a general processing mechanism for application launch objects (for example, icons) that are formed when the “Software Environment” application is running, and for processing application objects in the user interface of old clients (that is, existing for some time or their predecessors). When the client node 10 starts any available application, the start mechanism can launch the application on the server 30 if necessary (i.e., when the client node 10 does not have the resources to execute the application program locally).

PNAPI 52 обеспечивает компоненту 56 пользовательского интерфейса всей информацией по опубликованному приложению для осуществления отображения на экране 12 (фиг.1) клиентского узла 10. Также, для осуществления функции одноразовой аутентификации, PNAPI 52 управляет входом в систему серверной фермы по локальной базе данных полномочий регистрации (т.е. паролей) для пользователей клиентского узла 10. Данные полномочий могут сохраняться или не сохраняться при перезагрузке клиентского узла 10 (т.е. при выключении и последующем включении питания).PNAPI 52 provides the user interface component 56 with all the information on the published application for displaying the client node 10 on the screen 12 (FIG. 1). Also, for implementing the one-time authentication function, PNAPI 52 manages the server farm entrance to the local registration authority database ( i.e., passwords) for users of the client node 10. Authorization data may or may not be saved when the client node 10 is rebooted (i.e., when the power is turned off and then back on).

PNAPI 52 обеспечивает автоматическое и ручное управление объектами приложения “Программное окружение”, сохраняемыми в локальной кэш-памяти 60. Содержимое локальной кэш-памяти 60 может обновляться пользователем клиентского узла 10 либо вручную, либо с периодичностью, которую определяет пользователь, либо сервером, в любое время во время действия соединения. При реализации в среде Windows PNAPI 52 может устанавливать связи с удаленными файлами приложений и управлять меню "Start" и иконками рабочего стола экрана для быстрого вызова объектов приложений.PNAPI 52 provides automatic and manual control of software environment objects stored in the local cache 60. The contents of the local cache 60 can be updated by the user of the client node 10 either manually or at a frequency determined by the user or the server, at any time during the connection. When implemented in a Windows environment, PNAPI 52 can establish connections with remote application files and manage the Start menu and desktop screen icons to quickly call application objects.

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

Модуль 56 пользовательского интерфейса осуществляет связь с PNAPI 52 и может являться расширенной версией существующего интерфейса клиент-пользователь (например, программы удаленного управления приложениями, Remote Application Manager). Модуль 56 пользовательского интерфейса через PNAPI 52 получает доступ к информации, которая хранится в локальной кэш-памяти, и визуально представляет эту информацию пользователю на экране 12 дисплея (фиг.1) клиентского узла 10. Отображаемая информация представляет собой смесь информации, создаваемой пользователем клиентского узла 10, и информации, получаемой приложением “Программное окружение”. Модуль 56 пользовательского интерфейса может также показать пользователю все приложения, с которыми пользователь работает в данный момент времени, и все активные и прекращенные сеансы.The user interface module 56 communicates with PNAPI 52 and may be an extended version of an existing client-user interface (eg, remote application management programs, Remote Application Manager). The user interface module 56 through PNAPI 52 gains access to information stored in the local cache and visually presents this information to the user on the display screen 12 (Fig. 1) of the client node 10. The displayed information is a mixture of information created by the user of the client node 10, and information obtained by the application “Software Environment”. The user interface module 56 can also show the user all applications that the user is working with at a given time, and all active and terminated sessions.

При реализации в среде Windows модуль 56 пользовательского интерфейса может представлять множество разных графических компонентов, таких как окна или выпадающие меню, которые должны отображаться на экране 12 дисплея (фиг.1). Отображение сочетания таких компонентов графического пользовательского интерфейса обычно называют “рабочим столом” экрана. Рабочий стол, формируемый модулем 56 пользовательского интерфейса, может включать в себя окно “Программное окружение”, показывающее соседние прикладные программы, доступные для пользователя клиентского узла 10. Эти прикладные программы представляют собой фильтрованный набор опубликованных приложений, размещенных на серверной ферме в сети. Модуль 56 пользовательского интерфейса может создавать для каждой серверной фермы свое окно программного окружения или объединять приложения с различных серверных ферм в одном окне программного окружения.When implemented in a Windows environment, the user interface module 56 may represent many different graphical components, such as windows or drop-down menus, which should be displayed on the display screen 12 (FIG. 1). Displaying a combination of these components of the graphical user interface is usually called the “desktop” screen. The desktop generated by the user interface module 56 may include a “Software Environment” window showing neighboring applications available to the user of the client node 10. These applications are a filtered set of published applications hosted on a server farm on a network. The user interface module 56 can create its own software environment window for each server farm or combine applications from various server farms in one software environment window.

На верхнем уровне каталогов окно “Программное окружение” содержит папку для каждой серверной фермы. Щелчок мышью 18 (фиг.1) на одной из папок вызывает появление окна, содержащего образы (т.е. иконки) всех приложений, размещенных на этой ферме и доступных пользователю (см., например, фиг.6А и 6В). Окно “Программное окружение” становится активным окном для запуска опубликованных приложений, а модуль 56 пользовательского интерфейса может быть использован для запуска приложений через PNAPI 52. Например, пользователь клиентского узла 10 может при помощи мыши 18 выбрать одну из выведенных иконок и запустить связанное с ней приложение.At the top level of directories, the “Environment” window contains a folder for each server farm. Clicking 18 (Fig. 1) on one of the folders brings up a window containing images (i.e., icons) of all applications located on this farm and accessible to the user (see, for example, Figs. 6A and 6B). The “Software Environment” window becomes the active window for launching published applications, and the user interface module 56 can be used to launch applications through PNAPI 52. For example, the user of the client node 10 can use the mouse 18 to select one of the displayed icons and launch the application associated with it .

Характерной чертой реализации приложения “Программное окружение” на базе клиентского узла является то, что пользователь может просматривать объекты, отображаемые в окне программного окружения, даже когда клиентский узел отключен от линии (в режиме offline), то есть когда соединение 62 ICA не активно. Кроме того, пользователь клиентского узла 10 может перетаскивать объекты приложений и папки из окна “Программное окружение” в другие графические компоненты (например, в другие окна, папки, и т.п.) рабочего стола экрана.A characteristic feature of the implementation of the “Software Environment” application based on the client node is that the user can view the objects displayed in the program environment window even when the client node is disconnected from the line (offline), that is, when the ICA connection 62 is not active. In addition, the user of the client node 10 can drag and drop application objects and folders from the “Software Environment” window into other graphic components (for example, into other windows, folders, etc.) of the desktop screen.

На фиг.5 показан пример организации программных компонентов для реализации приложения “Программное окружение” на базе серверного узла. Компоненты включают в себя служебную компоненту 44' (PNSVC), компоненту 48' базы данных приложений, компоненту 52' программного интерфейса приложений (PNAPI), компоненту 56' пользовательского интерфейса и локальную кэш-память 60'. Каждая программная компонента 44', 48', 52', 56' и 60' инсталлирована на сервере 30' приложений. Программные компоненты при реализации приложения на базе серверного узла соответствуют программным компонентам при его реализации на базе клиентского узла (см. фиг.4). Функционирование каждой программной компоненты на базе серверного узла аналогично функционированию такой же компоненты на базе клиентского узла, с отличиями или дополнительными возможностями, которые описываются ниже. Компонента 44' PNSVC осуществляет обмен данными с базой 48' данных приложений и с PNAPI 52', используя локальный вызов процедур. PNAPI 52' также производит обмен данными с модулем 56' пользовательского интерфейса и локальной кэш-памятью 60'.Figure 5 shows an example of the organization of software components for implementing the application "software environment" based on the server node. Components include service component 44 '(PNSVC), application database component 48', application program interface component 52 '(PNAPI), user interface component 56', and local cache 60 '. Each software component 44 ', 48', 52 ', 56' and 60 'is installed on the application server 30'. Software components when implementing an application based on a server node correspond to software components when implementing it on the basis of a client node (see Fig. 4). The operation of each software component based on the server node is similar to the operation of the same component based on the client node, with differences or additional features, which are described below. Component 44 'PNSVC communicates with the application data base 48' and with PNAPI 52 'using a local procedure call. PNAPI 52 'also communicates with the user interface module 56' and the local cache 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.Similar to that shown in FIG. 4 for client node 10, client node 20 registers with network 40 (FIG. 1); the server 30 'creates and maintains a database containing application information collected from other servers 32, 34 of the server farm, and a communication channel is established between the server 30' and the client node 20. Application server 30 'communicates with client node 20 via ICA link 62'. Communication channel 62 'may be established by means of an ICA virtual channel protocol (e.g., Thinwire). The Thinwire protocol can be used to transfer presentation commands from Windows applications running on the server 30 'to the client node 20. It will appear to the user of the client node 20 that the applications are running on the client node 20. The client node 20 may include an application program 64 Remote Application Management (Remote Application Manager), which communicates with the server 30 'applications through the channel 62' ICA communication.

Чтобы запустить на выполнение приложение “Программное окружение” при его реализации на базе серверного узла, пользователь клиентского узла 20 выходит на исходный рабочий стол экрана (на сервере 30') и запускает приложение “Программное окружение” из среды рабочего стола. Выход на исходный рабочий стол может происходить автоматически, т.е. через сценарий регистрации клиентского узла 20, посредством программы, указанной в группе StartUp в Windows 95, или посредством другого, особого централизованного механизма управления со стороны сервера. Все удаленное управление приложениями и их запуском осуществляется через исходный рабочий стол экрана.In order to launch the “Software Environment” application when it is implemented on the basis of the server node, the user of the client node 20 goes to the original desktop screen (on the server 30 ') and launches the “Software Environment” application from the desktop environment. Exit to the original desktop can occur automatically, i.e. through the script to register client node 20, through the program specified in the StartUp group in Windows 95, or through another, special centralized server-side management mechanism. All remote control of applications and their launch is carried out through the original desktop screen.

Подобно тому, как это показано на фиг.4 для сервера 30, сервер 30' использует данные полномочий пользователя, чтобы определить те прикладные программы, которые разрешены для пользователя клиентского узла 20. Графическое окно “Программное окружение” возвращается на клиентский узел 20 и отображается на экране 22 клиентского узла (фиг.1). Это окно может содержать иконки, представляющие разрешенные, а возможно, и неразрешенные прикладные программы, которые составляют программное окружение клиентского узла 20.Similar to that shown in FIG. 4 for server 30, server 30 ′ uses the user credentials to determine which applications are allowed for the user of client node 20. The graphical window “Software Environment” returns to client node 20 and is displayed on the screen 22 of the client node (figure 1). This window may contain icons representing permitted, and possibly unresolved applications, which comprise the software environment of client node 20.

Пользователь клиентского узла 20 может выбрать и запустить одну из прикладных программ, представленных в окне “Программное окружение”. При запуске прикладной программы приложение “Программное окружение” может, если это подходит, осуществить исполнение прикладной программы на том же самом сервере 30', учитывая требования к распределению загрузки между серверами и доступность этой прикладной программы на сервере 30'. PNAPI 52' может включать в себя механизм для запуска удаленного приложения локально на сервере 30', когда объявлено, что запуск прикладной программы должен быть осуществлен сервером 30'. Когда нужно, чтобы выполнение прикладной программы прошло на другом сервере, приложение “Программное окружение” может осуществить запуск этой прикладной программы через сервер 30' (т.е. клиентское устройство на базе сервера), используя окна для представления этой программы на рабочем столе экрана клиентского узла 20, как это было описано выше для фиг.3В.The user of the client node 20 can select and run one of the application programs presented in the "Software Environment" window. When starting the application program, the application “Environment” can, if appropriate, execute the application program on the same server 30 ', taking into account the requirements for load distribution between servers and the availability of this application program on the server 30'. PNAPI 52 'may include a mechanism for starting a remote application locally on the server 30' when it is announced that the application should be launched by the server 30 '. When it is necessary that the application program runs on another server, the “Software Environment” application can launch this application program through server 30 '(ie, a server-based client device) using windows to present this program on the desktop screen of the client node 20, as described above for figv.

В одном из вариантов осуществления приложение “Программное окружение”, реализованное на базе web-сервера, включает в себя группу объектов, которые управляют различными аспектами приложения. В одном варианте осуществления приложение включает в себя три основных класса объектов, которые подключаются к web-серверу: класс шлюзового объекта, класс объекта данных полномочий, класс объекта приложений. В некоторых особых вариантах осуществления классы объектов создаются как модель Java beans. Три основных класса объектов обеспечивают: проверку данных полномочий пользователей для доступа в серверную ферму; формирование списков опубликованных приложений, к которым конкретные пользователи могут получать доступ; обеспечение подробной информации по конкретным опубликованным приложениям и преобразование информации по опубликованным приложениям в формат, совместимый с ICA.In one embodiment, the “Software Environment” application, implemented on the basis of a web server, includes a group of objects that control various aspects of the application. In one embodiment, the application includes three main classes of objects that connect to the web server: the class of the gateway object, the class of the authorization data object, the class of the application object. In some specific embodiments, object classes are created as a Java beans model. Three main classes of objects provide: verification of user authority data for access to the server farm; creating lists of published applications that specific users can access; providing detailed information on specific published applications; and converting information on published applications into an ICA compatible format.

Если объекты созданы как Java beans, доступ к ним может быть осуществлен рядом различных способов. Например, они могут быть скомпилированы как СОМ-объекты и сделаны доступными через web-сервер, как компоненты ActiveX. В другом варианте осуществления Java beans могут использоваться в их естественной форме, такой как в случае, когда сервер использует технологию Java Server Pages. В еще одном варианте осуществления Java beans могут быть реализованы и использованы непосредственно в Java servlet. В еще одном варианте осуществления сервер 30 может осуществлять реализацию Java beans непосредственно как СОМ-объектов.If objects are created as Java beans, they can be accessed in a number of different ways. For example, they can be compiled as COM objects and made available through a web server as ActiveX components. In another embodiment, Java beans can be used in their natural form, such as when the server uses Java Server Pages technology. In yet another embodiment, Java beans can be implemented and used directly in the Java servlet. In yet another embodiment, server 30 may implement Java beans directly as COM objects.

Класс объекта данных полномочий управляет информацией, необходимой для проверки прав доступа пользователя в нужную серверную ферму. Объект данных полномочий передает сохраненные данные полномочий пользователя другим объектам “программного окружения”. В некоторых вариантах осуществления объект данных полномочий является абстрактным классом, который не может быть реализован, и представляет данные полномочий пользователя. Можно создавать различные расширения класса, чтобы дать возможность использовать разные механизмы аутентификации, включая биометрию, микропроцессорные кредитные карточки, механизмы аутентификации на основе аппаратных ключей, такие как аутентификация с запросом и подтверждением, формирование паролей, зависимых от времени, и другие способы. Например, может быть создано расширение типа “данные полномочий в виде открытого текста”, которое сохраняет имя пользователя, домен и пароль, как простой текст.The authorization data object class manages the information necessary to verify user access rights to the desired server farm. The authority data object transfers stored user authority data to other “software environment” objects. In some embodiments, the authority data object is an abstract class that cannot be implemented and represents user authority data. Various class extensions can be created to enable the use of various authentication mechanisms, including biometrics, microprocessor credit cards, hardware-based authentication mechanisms, such as authentication with request and confirmation, the formation of time-dependent passwords, and other methods. For example, an extension such as “clear text authority data” can be created that saves the username, domain, and password as plain text.

Класс шлюзового объекта управляет обменом данных с нужной серверной фермой. В одном из вариантов осуществления класс шлюзового объекта создается как абстрактный класс Java, который не может быть реализован. Определенный шлюзовый объект может извлекать информацию о приложениях посредством связи с серверной фермой, используя определенный протокол, считывая кэшированную информацию о приложении, используя сочетание этих двух способов и другие различные способы.The gateway object class controls the exchange of data with the desired server farm. In one embodiment, the gateway object class is created as an abstract Java class that cannot be implemented. A specific gateway entity can retrieve application information by communicating with a server farm using a specific protocol, reading cached application information, using a combination of the two, and various other methods.

Как отмечалось выше, класс шлюзового объекта кэширует информацию, чтобы сократить время обмена данными с нужной серверной фермой. Шлюзовый объект может снабжаться расширением, чтобы вести обмен данными с серверной фермой по особым протоколам, например HTTP. В одном из вариантов осуществления создается класс расширения, который позволяет шлюзовому объекту вести обмен данными с серверной фермой через именованные каналы WINDOWS NT. Шлюзовый объект может создавать специальную процедуру программного интерфейса приложений, которая позволяет другим объектам “программного окружения” делать запросы, адресованные этому объекту, касающиеся информации о приложениях.As noted above, the gateway object class caches information to reduce the time it takes to exchange data with the desired server farm. The gateway object can be equipped with an extension to exchange data with the server farm using special protocols, such as HTTP. In one embodiment, an extension class is created that allows the gateway entity to communicate with the server farm through the WINDOWS NT named pipes. The gateway object can create a special application program interface procedure that allows other objects of the “software environment” to make requests addressed to this object regarding application information.

Класс объекта приложения содержит информацию об опубликованных приложениях и возвращает информацию о приложениях, размещенных на серверной ферме, чтобы создать web-страницу программного окружения. Класс объекта приложения создает объекты, представляющие прикладные программы, путем извлечения информации, относящейся к этим программам, либо из объекта, созданного шлюзовым объектом, либо напрямую из серверов фермы. Объект приложения действует как контейнер для определенных свойств прикладной программы, как настраиваемых, так и не настраиваемых, таких как: имя приложения (нельзя настраивать); процент площади рабочего стола экрана, которая может быть занята клиентским окном (можно настраивать); ширина клиентского окна в пикселях для данного приложения (можно настраивать); высота клиентского окна в пикселях для данного приложения (можно настраивать); число цветов, которые следует использовать при связи с приложением (можно настраивать); допустимая ширина полосы частот аудио-канала (можно настраивать); уровень кодирования, который должен быть использован при связи с приложением (можно настраивать); уровень видео, который следует использовать при связи с приложением (можно настраивать); должно ли приложение быть помещено в стартовое меню клиента (можно настраивать); должно ли приложение быть помещено на рабочий стол экрана клиента (можно настраивать); наименование папки программного окружения, к которой принадлежит данное приложение (можно настраивать); описание приложения (можно настраивать); источник графического файла иконки для данного приложения (можно настраивать); тип окна, которое должно быть использовано при связи с приложением (нельзя настраивать); и следует ли изменить параметры, принятые по умолчанию для данного объекта.The application object class contains information about published applications and returns information about applications hosted on the server farm to create a web page for the software environment. The application object class creates objects representing application programs by retrieving information related to these programs either from the object created by the gateway object or directly from the farm servers. The application object acts as a container for certain properties of the application program, both custom and non-custom, such as: application name (cannot be configured); the percentage of the desktop screen area that can be occupied by the client window (can be customized); the width of the client window in pixels for this application (can be customized); the height of the client window in pixels for this application (can be customized); the number of colors that should be used when communicating with the application (can be customized); allowable bandwidth of the audio channel (can be configured); level of coding, which should be used when communicating with the application (can be configured); level of video that should be used when communicating with the application (can be configured); whether the application should be placed in the start menu of the client (can be customized); whether the application should be placed on the desktop of the client screen (can be customized); name of the folder of the software environment to which this application belongs (can be configured); application description (can be customized); the source of the icon graphic file for this application (can be customized); the type of window that should be used when communicating with the application (cannot be configured); and whether to change the default parameters for this object.

Базовый класс приложений содержит информацию об опубликованных приложениях и используется шлюзовым базовым классом, чтобы возвращать информацию о приложениях, размещенных на серверной ферме, с целью создания web-страницы “Программное окружение”.The application base class contains information about published applications and is used by the gateway base class to return information about applications hosted on the server farm in order to create the “Software Environment” web page.

Фиг.6А представляет собой пример снимка экрана окна 120 “Программное окружение”, которое может быть выведено на экран 12, 22 (фиг.1) любого клиентского узла 10, 20 после завершения исполнения приложения “Программное окружение”. Окно 120 включает в себя графические иконки 122. Каждая иконка представляет какую-то прикладную программу, которая размещена на одном из серверов 30, 32, 34 и 36 сети 40 (фиг.1). Каждое представленное приложение доступно для исполнения пользователем клиентского узла. Пользователь может выбрать и запустить одно из приложений, пользуясь мышью 18, 28 или клавиатурой 14, 24.6A is an example of a screen shot of the window 120 “Software environment”, which can be displayed on the screen 12, 22 (FIG. 1) of any client node 10, 20 after completion of the execution of the application “Software environment”. Window 120 includes graphical icons 122. Each icon represents some kind of application program that is located on one of the servers 30, 32, 34, and 36 of the network 40 (FIG. 1). Each submitted application is available for execution by the user of the client node. The user can select and run one of the applications using the mouse 18, 28 or the keyboard 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 отображаются в окне браузера.FIG. 6B is an example screen shot of another window 124 “Software Environment”, which can be displayed on the screen 12, 22 (FIG. 1) of any client node 10, 20 after completion of the execution of the application “Software Environment”. Window 124 includes graphic icons 126, 128. Each icon 126, 128 represents an application program that is located on one of the servers 30, 32, 34 and 36 of network 40. Each application represented by one of the icons 126 is available for the user executing the client node 10, 20. The user can select and start one of the applications using the mouse 18, 28 or the keyboard 14, 24. When showing the software environment in a web environment, screenshots are similar to those shown in Figs. 6A and 6B, except that the icons 122, 126, 128 are displayed in a browser window.

Каждая прикладная программа, представленная одной из иконок 128, не доступна для пользователя клиентского узла 10, 20, хотя эти приложения присутствуют на серверной ферме. Недоступность этих приложений может быть отмечена на экране дисплея (например, иконки 128 могут быть перечеркнуты). Попытка запустить такое приложение должна инициировать появление сообщения, указывающего, что пользователю не разрешено использовать это приложение.Each application program represented by one of the icons 128 is not accessible to the user of the client node 10, 20, although these applications are present on the server farm. The inaccessibility of these applications may be indicated on the display screen (for example, icons 128 may be crossed out). Attempting to launch such an application should trigger a message indicating that the user is not allowed to use this application.

На фиг.7 показан пример процесса, посредством которого пользователь любого клиентского узла 10, 20 может быть проинформирован о доступности приложений, размещенных на серверах 30, 32, 34 и 36 приложений в сети 40. На этапе 80 клиентский узел 10, 20 запрашивает регистрацию у одного из серверов, например сервера 32. Чтобы установить соединение, сервер 32 затребует достоверные данные полномочий пользователя. Сервер 32 получает данные полномочий пользователя от клиентского узла 10 (этап 82) и выполняет аутентификацию пользователя для регистрации в начале сеанса (этап 84). Рабочий стол отображается на клиентском узле 10, 20 (этап 85). Рабочий стол может включать в себя графическую иконку, представляющую приложение “Программное окружение”.7 shows an example of a process by which a user of any client node 10, 20 can be informed about the availability of applications hosted on application servers 30, 32, 34, and 36 in network 40. At step 80, client node 10, 20 requests registration from one of the servers, for example, server 32. To establish a connection, server 32 will require valid user credentials. Server 32 receives user credentials from client node 10 (step 82) and authenticates the user to register at the start of the session (step 84). The desktop is displayed on the client node 10, 20 (step 85). The desktop may include a graphic icon representing the software environment application.

На этапе 86 сервер 32 приложений устанавливает соединение с каждым из других серверов 30, 34 и 36 для обмена, как это было описано выше, информацией о приложениях, соответствующей прикладным программам, размещенным на этих серверах (этап 88). На этапе 90 сервер 32 приложений создает и поддерживает базу данных собранной информации о приложениях. Каждый другой сервер 30, 34, 36 в серверной ферме может создать базу данных, эквивалентную базе данных сервера 32, и таким же способом, что и сервер 32. В другом варианте осуществления база данных сервера 32 может являться централизованной базой данных, которая доступна для каждого другого сервера 30, 34, 36 приложений в серверной ферме. Сбор информации о приложениях может происходить независимо или может быть инициирован запросом клиентского узла 10, 20 начать сеанс, направляемым серверу фермы 38.At step 86, the application server 32 establishes a connection with each of the other servers 30, 34, and 36 for exchanging, as described above, application information corresponding to the application programs hosted on these servers (step 88). At 90, the application server 32 creates and maintains a database of collected application information. Each other server 30, 34, 36 in the server farm can create a database equivalent to the server 32 database, in the same way as the server 32. In another embodiment, the server 32 database can be a centralized database that is accessible to each another server 30, 34, 36 applications in the server farm. The collection of information about the applications can occur independently or can be initiated by the request of the client node 10, 20 to start a session sent to the server of the farm 38.

На этапе 92 клиентский узел 10, 20 может запросить исполнение прикладной программы с рабочего стола экрана. Главный серверный узел может обработать этот запрос и, оценив распределение загрузки серверов и доступность данной прикладной программы, как это описывалось выше, определить сервер приложений, который должен обслужить запрос клиентского узла 10, 20 (этап 94). Например, для обслуживания запроса клиентского узла 10, 20 может быть выбран сервер 32 приложений. На этапе 96 клиентский узел 10, 20 устанавливает канал связи с сервером 32. Сервер 32 и клиентский узел 10, 20 могут вести обмен данными в соответствии с протоколом ICA, который является подходящим для клиентского узла, как было описано выше.At step 92, the client node 10, 20 may request the execution of the application program from the desktop screen. The main server node can process this request and, evaluating the distribution of server load and the availability of this application program, as described above, determine the application server that should serve the request of the client node 10, 20 (step 94). For example, an application server 32 may be selected to serve a request from a client node 10, 20. At step 96, the client node 10, 20 establishes a communication channel with the server 32. The server 32 and the client node 10, 20 can exchange data in accordance with the ICA protocol, which is suitable for the client node, as described above.

Кроме того, в ответ на запрос запустить на выполнение прикладную программу, главный серверный узел 30 или сервер 32 могут запустить на выполнение приложение (этап 93) и переслать результаты на клиентский узел 10, 20, хотя клиентский узел 10, 20 мог и не запрашивать приложение “Программное окружение” (PN). При исполнении приложения PN главный серверный узел 30 или сервер 32 фильтруют информацию о приложениях в базе данных на основе данных полномочий пользователя (этап 100). Результат фильтрации базы данных определяет те прикладные программы, которые составляют программное окружение клиентского узла 10, 20. Это программное окружение в виде информации о доступных приложениях пересылается на клиентский узел 10, 20 (этап 102) и отображается на экране 12, 22 клиентского узла в графическом окне “Программное окружение” (этап 104).In addition, in response to a request to run the application program, the main server node 30 or server 32 can run the application (step 93) and send the results to the client node 10, 20, although the client node 10, 20 might not request the application “Software Environment” (PN). When executing the PN application, the main server node 30 or server 32 filters application information in the database based on user credentials (step 100). The result of filtering the database determines those applications that make up the software environment of the client node 10, 20. This software environment in the form of information about available applications is sent to the client node 10, 20 (step 102) and displayed on the screen 12, 22 of the client node in a graphical the “Software Environment” window (step 104).

В других вариантах осуществления окно “Программное окружение” может включать в себя приложения, которые присутствуют на серверной ферме, но не доступны для использования клиентским узлом 10, 20. При реализации в среде Windows доступные (и недоступные) приложения могут быть представлены посредством иконок. Пользователь клиентского узла 10, 20 может выбрать и запустить одно из приложений, показанных в окне “Программное окружение”.In other embodiments, the “Software Environment” window may include applications that are present on the server farm but are not available for use by the client node 10, 20. When implemented in a Windows environment, available (and inaccessible) applications can be represented by icons. The user of the client node 10, 20 can select and run one of the applications shown in the "Environment" window.

Вся информация, необходимая для практической реализации настоящего изобретения, может быть представлена в виде одной или нескольких программ, которые могут считываться компьютером и которые могут быть реализованы как одно или несколько промышленных изделий. Промышленное изделие может представлять собой гибкий диск, жесткий диск, CD ROM, карту флэш-памяти, PROM, RAM, ROM или магнитную ленту. В общем случае программы, которые могут быть выполняться на соответствующем компьютере при выполнении определенных операций способа по настоящему изобретению, могут быть реализованы на любом языке программирования. Примеры языков, которые могут быть использованы, включают С, C++ или JAVA. Эти программы могут быть записаны на/в одном или нескольких промышленных изделиях в виде объектного кода.All information necessary for the practical implementation of the present invention can be represented in the form of one or more programs that can be read by a computer and which can be implemented as one or more industrial products. An industrial product may be a floppy disk, hard disk, CD ROM, flash memory card, PROM, RAM, ROM or magnetic tape. In general, programs that can be executed on an appropriate computer when performing certain operations of the method of the present invention can be implemented in any programming language. Examples of languages that can be used include C, C ++, or JAVA. These programs can be recorded on / in one or more industrial products in the form of object code.

Хотя настоящее изобретение было описано на примерах предпочтительных вариантов, для специалистов в данной области будет понятно, что в форму и детали осуществления изобретения могут быть внесены изменения, не выходящие за границы идеи и объема изобретения.Although the present invention has been described by way of examples of preferred options, it will be understood by those skilled in the art that changes may be made to the form and details of the invention without departing from the spirit and scope of the invention.

Claims (44)

1. Способ показа клиентской системе прикладных программ, которые доступны для использования в сети, включающей клиентскую систему и совокупность серверов, среди которых имеется по меньшей мере один хост-сервер и множество серверов, на которых размещены прикладные программы, включающий в себя следующие этапы: (a) на хост-сервере получают информацию о приложениях, соответствующую прикладным программам, которые размещены на указанном множестве серверов и которые выполняют на одном сервере из этого множества, когда программы запускают на выполнение; (b) от клиентской системы принимают данные полномочий, удостоверяющие ее пользователя; (c) для каждой прикладной программы, размещенной на множестве серверов, на основе данных полномочий пользователя и информации о прикладных программах определяют, доступна ли эта программа для использования клиентской системой, и (d) от хост-сервера к клиентской системе передают информацию, указывающую клиентской системе каждую прикладную программу из числа размещенных на серверах, к которой пользователь клиентской системы имеет право доступа для выполнения ее на сервере, на котором эта программа размещена.1. A method of showing the client system applications that are available for use on a network including a client system and a plurality of servers, among which there is at least one host server and a plurality of servers that host applications, which includes the following steps: ( a) on the host server receive information about applications that correspond to applications that are hosted on the specified set of servers and that run on the same server from this set when the programs run on you olnenie; (b) accept credentials from the client system certifying its user; (c) for each application hosted on multiple servers, based on user credentials and application information, it is determined whether the program is available for use by the client system, and (d) information indicating the client is transmitted from the host server to the client system the system, each application program from the number hosted on the servers to which the user of the client system has the right to execute it on the server on which this program is hosted. 2. Способ по п.1, отличающийся тем, что включает в себя этап, на котором устанавливают соединение между клиентской системой и хост-сервером, используя протокол независимой архитектуры вычислительной системы (ICA).2. The method according to claim 1, characterized in that it includes the step of establishing a connection between the client system and the host server using the protocol of an independent computing system architecture (ICA). 3. Способ по п.2, отличающийся тем, что протокол ICA устанавливает виртуальный канал для передачи информации клиентской системе, указывая каждую имеющуюся на серверах прикладную программу, которая доступна клиентской системе.3. The method according to claim 2, characterized in that the ICA protocol establishes a virtual channel for transmitting information to the client system, indicating each application program available on the servers that is available to the client system. 4. Способ по п.1, отличающийся тем, что содержит следующие этапы: устанавливают соединение между клиентской системой и хост-сервером; принимают запрос на выполнение одной из доступных прикладных программ, размещенных на серверах, и в ответ на запрос устанавливают второе соединение между клиентской системой и хост-сервером для обмена информацией, касающейся выполнения запрашиваемой прикладной программы.4. The method according to claim 1, characterized in that it comprises the following steps: establish a connection between the client system and the host server; receive a request to execute one of the available application programs hosted on the servers, and in response to the request, establish a second connection between the client system and the host server to exchange information regarding the execution of the requested application program. 5. Способ по п.1, отличающийся тем, что содержит следующие этапы: устанавливают первое соединение между клиентской системой и хост-сервером; принимают запрос на выполнение одной из доступных прикладных программ, размещенных на серверах; в ответ на запрос устанавливают второе соединение между хост-сервером и вторым сервером, на котором размещена запрашиваемая прикладная программа, и производят обмен информацией, касающейся выполнения запрошенной прикладной программы, между вторым сервером и клиентской системой через хост-сервер.5. The method according to claim 1, characterized in that it comprises the following steps: establish a first connection between the client system and the host server; accept a request to execute one of the available application programs hosted on servers; in response to the request, a second connection is established between the host server and the second server on which the requested application is located, and information regarding the execution of the requested application is exchanged between the second server and the client system through the host server. 6. Способ по п.5, отличающийся тем, что содержит следующие этапы: принимают второй запрос на выполнение второй из доступных прикладных программ, размещенных на серверах; в ответ на второй запрос устанавливают третье соединение между хост-сервером и третьим сервером, на котором размещена вторая запрашиваемая прикладная программа, и производят обмен информацией, касающейся выполнения второй запрошенной прикладной программы, между третьим сервером и клиентской системой через хост-сервер.6. The method according to claim 5, characterized in that it contains the following steps: accept the second request for execution of the second of the available application programs hosted on the servers; in response to the second request, a third connection is established between the host server and the third server hosting the second requested application program, and information is exchanged regarding the execution of the second requested application program between the third server and the client system through the host server. 7. Способ по п.6, отличающийся тем, что включает в себя этап, на котором объединяют информацию, принятую от второго и третьего серверов, для передачи в клиентскую систему через первое соединение.7. The method according to claim 6, characterized in that it includes the step of combining information received from the second and third servers for transmission to the client system via the first connection. 8. Способ по п.1, отличающийся тем, что содержит следующие этапы: устанавливают первое соединение между клиентской системой и хост-сервером; принимают запрос на выполнение одной из доступных прикладных программ, размещенных на серверах, и передают информацию клиентской системе в ответ на запрос выполнения прикладной программы.8. The method according to claim 1, characterized in that it comprises the following steps: establish a first connection between the client system and the host server; receive a request to execute one of the available application programs hosted on the servers, and transmit information to the client system in response to a request to execute the application program. 9. Способ по п.1, отличающийся тем, что переданную информацию отображают в клиентской системе в виде иконок, представляющих доступные прикладные программы в окне графического интерфейса пользователя.9. The method according to claim 1, characterized in that the transmitted information is displayed in the client system in the form of icons representing available applications in a graphical user interface window. 10. Способ по п.1, отличающийся тем, что включает в себя этап, на котором производят обмен данными между хост-сервером и каждым из множества других серверов, чтобы определить, какие прикладные программы размещены на указанных других серверах.10. The method according to claim 1, characterized in that it includes the step of exchanging data between the host server and each of the plurality of other servers in order to determine which applications are hosted on said other servers. 11. Способ по п.1, отличающийся тем, что включает в себя этап, на котором устанавливают канал связи между хост-сервером и клиентской системой, причем канал связи включает в себя по меньшей мере один виртуальный канал.11. The method according to claim 1, characterized in that it includes the step of establishing a communication channel between the host server and the client system, the communication channel including at least one virtual channel. 12. Способ по п.1, отличающийся тем, что сервер, на котором выполняется запущенная прикладная программа, является одним из множества серверов, иных, нежели хост-сервер, причем способ дополнительно включает в себя следующие этапы: на хост-сервере, на основе полученных данных полномочий пользователя, производят аутентификацию пользователя клиентской системы и выполняют запущенную прикладную программу, не требуя от пользователя клиентской системы дополнительного ввода данных полномочий.12. The method according to claim 1, characterized in that the server on which the running application is running is one of many servers other than the host server, the method further comprising the following steps: on the host server, based received user credentials, authenticate the user of the client system and execute the launched application program, without requiring the user of the client system to enter additional credentials. 13. Способ по п.1, отличающийся тем, что хост-сервер передает информацию о доступных прикладных программах в ответ на запрос такой информации со стороны клиентской системы.13. The method according to claim 1, characterized in that the host server transmits information about available applications in response to a request for such information from the client system. 14. Способ по п.1, отличающийся тем, что включает в себя этап, на котором на хост-сервере поддерживают базу данных для хранения информации о прикладных программах, при этом указанная база данных доступна для каждого из множества других серверов.14. The method according to claim 1, characterized in that it includes a stage on which the host server maintains a database for storing information about application programs, wherein said database is available for each of a variety of other servers. 15. Способ по п.1, отличающийся тем, что включает в себя этап, на котором на каждом из множества серверов поддерживают базу данных для хранения информации о прикладных программах.15. The method according to claim 1, characterized in that it includes a stage in which each of the many servers support a database for storing information about application programs. 16. Способ по п.1, отличающийся тем, что переданная информация далее показывает пользователю клиентской системы каждую из прикладных программ, размещенных на серверах, которую ему разрешено использовать.16. The method according to claim 1, characterized in that the transmitted information further shows the user of the client system each of the application programs hosted on the servers, which he is allowed to use. 17. Способ по п.1, отличающийся тем, что на этапе (d): (d-a) формируют конечный кадр экрана, указывающий каждую прикладную программу из размещенных на серверах, которая доступна клиентской системе для выполнения, и (d-b) передают сформированный конечный кадр экрана в клиентскую систему.17. The method according to claim 1, characterized in that in step (d): (da) form a final screen frame indicating each application program hosted on the servers, which is available to the client system for execution, and (db) transmit the generated final frame screen to the client system. 18. Способ по п.17, отличающийся тем, что на этапе (а) посредством web-сервера принимают информацию о прикладных программах, соответствующую программам, размещенным по меньшей мере на одном из множества серверов.18. The method according to 17, characterized in that at step (a) through the web server receive information about application programs corresponding to programs hosted by at least one of the plurality of servers. 19. Способ по п.18, отличающийся тем, что включает в себя этапы, на которых (e) анализируют SGML-документ; (f) в результате анализа SGML-документа извлекают информацию о прикладных программах, соответствующую программам, размещенным по меньшей мере на одном из множества серверов.19. The method according to p. 18, characterized in that it includes the steps in which (e) analyze the SGML document; (f) as a result of the analysis of the SGML document, information about application programs corresponding to programs located on at least one of the plurality of servers is extracted. 20. Способ по п.17, отличающийся тем, что на этапе (b) посредством хост-системы принимают от клиентской системы биометрические данные полномочий пользователя.20. The method according to 17, characterized in that at step (b) through the host system, biometric user credentials are received from the client system. 21. Способ по п.17, отличающийся тем, что на этапе (b) посредством хост-системы принимают от клиентской системы зашифрованные данные полномочий пользователя.21. The method according to 17, characterized in that at step (b) through the host system, encrypted user credentials are received from the client system. 22. Способ по п.17, отличающийся тем, что на этапе (d-a): (a) посредством хост-системы принимают от клиентской системы данные полномочий пользователя; (b) на хост-сервере на основе принятых данных полномочий выполняют аутентификацию пользователя клиентской системы и (c) выполняют прикладную программу, выбранную из числа прикладных программ и размещенную на одном из множества серверов, не требуя дополнительного получения от клиентской системы данных полномочий пользователя.22. The method according to 17, characterized in that in step (d-a): (a) through the host system, user credentials are received from the client system; (b) on the host server, based on the received credentials, authenticate the user of the client system and (c) execute the application program selected from among the application programs and hosted on one of the plurality of servers without requiring additional user credentials from the client system. 23. Способ по п.17, отличающийся тем, что на этапе (d-a) формируют конечный кадр экрана в виде файла SGML, указывающий каждую прикладную программу из числа размещенных на серверах, которая доступна клиентской системе для выполнения.23. The method according to 17, characterized in that at step (d-a) they form the final screen frame in the form of an SGML file indicating each application program from the number hosted on the servers, which is available to the client system for execution. 24. Способ по п.17, отличающийся тем, что на этапе (d-a) формируют конечный кадр экрана в виде файла HTML, указывающий каждую прикладную программу из числа размещенных на серверах, которая доступна клиентской системе для выполнения.24. The method according to p. 17, characterized in that at step (d-a) form the final screen frame in the form of an HTML file indicating each application program from the number hosted on the servers, which is available to the client system for execution. 25. Способ по п.17, отличающийся тем, что на этапе (d-a) формируют конечный кадр экрана, представляющий доступные прикладные программы в виде иконок в окне графического интерфейса пользователя.25. The method according to 17, characterized in that at step (d-a) form a final screen frame representing the available application programs in the form of icons in a window of a graphical user interface. 26. Способ по п.17, отличающийся тем, что на этапе (d-b) передают сформированный конечный кадр экрана в клиентскую систему, используя HTTP.26. The method according to 17, characterized in that at step (d-b) transmit the generated final screen frame to the client system using HTTP. 27. Способ по п.17, отличающийся тем, что включает в себя следующие этапы: (e) принимают запрос на выполнение одной из доступных прикладных программ, размещенных на серверах, и (f) выполняют запрашиваемую прикладную программу.27. The method according to 17, characterized in that it includes the following steps: (e) receive a request to execute one of the available application programs hosted on the servers, and (f) execute the requested application program. 28. Способ по п.27, отличающийся тем, что на этапе (f) выполняют запрашиваемую прикладную программу в окне, которое содержится на странице конечного кадра экрана.28. The method according to item 27, wherein in step (f) execute the requested application program in the window that is contained on the page of the final frame of the screen. 29. Способ по п.27, отличающийся тем, что включает в себя этап, на котором устанавливают связь между клиентской системой и сервером, на котором размещена запрашиваемая прикладная программа.29. The method according to item 27, wherein the step includes establishing a connection between the client system and the server on which the requested application is located. 30. Способ по п.17, отличающийся тем, что включает в себя этап, на котором производят обмен данными между хост-сервером и указанным множеством серверов, чтобы определить прикладные программы, размещенные на этом множестве серверов.30. The method according to 17, characterized in that it includes the step of exchanging data between the host server and the specified set of servers in order to determine the application programs hosted on this set of servers. 31. Способ по п.8, отличающийся тем, что в ответ на получение запроса на выполнение одной из доступных прикладных программ, размещенных на серверах, устанавливают второе соединение между клиентской системой и сервером, на котором размещена запрашиваемая прикладная программа.31. The method according to claim 8, characterized in that in response to receiving a request to execute one of the available applications located on the servers, a second connection is established between the client system and the server on which the requested application is located. 32. Способ по п.1, отличающийся тем, что хост-сервер использует данные полномочий пользователя, чтобы определить, разрешен ли пользователю клиентской системы доступ к хост-серверу, и определить те прикладные программы, выполнение которых разрешено пользователю клиентской системы.32. The method according to claim 1, characterized in that the host server uses the user credentials to determine whether the user of the client system is allowed access to the host server, and determine those applications whose execution is allowed to the user of the client system. 33. Способ по п.1, отличающийся тем, что каждый сервер передает информацию о прикладных программах, касающуюся каждой прикладной программы, размещенной на этом сервере, в централизованную базу данных.33. The method according to claim 1, characterized in that each server transmits information about application programs relating to each application located on this server to a centralized database. 34. Способ по п.1, отличающийся тем, что каждый сервер передает информацию о прикладных программах, касающуюся каждой прикладной программы, размещенной на этом сервере, на каждый другой сервер.34. The method according to claim 1, characterized in that each server transmits information about application programs related to each application program hosted on this server to each other server. 35. Способ отображения каждой прикладной программы, доступной для использования клиентской системой, в сети, включающей множество серверов, на которых размещены прикладные программы, содержащий следующие этапы: (a) принимают данные полномочий, удостоверяющие пользователя клиентской системы; (b) поддерживают информацию о прикладных программах, соответствующую каждой прикладной программе, размещенной на каждом из серверов; (c) на основе данных полномочий пользователя определяют, разрешено ли пользователю клиентской системы использование каждой прикладной программы из числа размещенных на серверах; (d) в ответ на информацию о прикладных программах передают информацию в клиентскую систему, при этом передаваемая информация показывает каждую прикладную программу, которую разрешено использовать пользователю клиентской системы.35. A method of displaying each application program available for use by a client system in a network including a plurality of servers hosting application programs, comprising the following steps: (a) receiving credential data identifying a user of the client system; (b) maintain application information corresponding to each application hosted on each of the servers; (c) based on the user's credentials, it is determined whether the user of the client system is allowed to use each application program from among those hosted on the servers; (d) in response to the information about the application programs, information is transmitted to the client system, while the transmitted information shows each application program that the user of the client system is allowed to use. 36. Способ по п.35, отличающийся тем, что на этапе (d): (d-a) по результатам определения формируют конечный кадр экрана, указывающий каждую прикладную программу, из числа размещенных на серверах, которая доступна клиентской системе для выполнения, и (d-b) передают сформированный конечный кадр экрана в клиентскую систему.36. The method according to clause 35, wherein in step (d): (da) the final screen frame indicating each application program from the number located on the servers that is available to the client system for execution is formed from the results of determination and (db ) transmit the generated final screen frame to the client system. 37. Сервер в сети, включающей в себя клиентскую систему и множество серверов, на которых размещены прикладные программы, содержащий служебный модуль, собирающий информацию о прикладных программах, соответствующую прикладным программам, которые размещены на указанном множестве серверов и которые выполняют на одном сервере из этого множества, когда производят их запуск на выполнение; приемник, принимающий данные полномочий, удостоверяющие пользователя клиентской системы; базу данных, которая аккумулирует собранную информацию о прикладных программах, причем служебный модуль на основе данных полномочий пользователя и информации о прикладных программах, хранящейся в базе данных, определяет для каждой прикладной программы, размещенной на указанном множестве серверов, доступна ли клиентской системе данная прикладная программа для выполнения, и передатчик, передающий в клиентскую систему информацию, указывающую клиентской системе каждую прикладную программу из числа размещенных на серверах, доступ к которой разрешен пользователю для ее выполнения на сервере, на котором эта прикладная программа размещена.37. A server in a network including a client system and a plurality of servers hosting application programs, comprising a utility module that collects information about application programs corresponding to application programs that are hosted on a specified set of servers and that run on one server from that set when they are launched; a receiver receiving authority data identifying a user of the client system; a database that accumulates the collected information about the application programs, and the service module, based on user credentials and information on the application programs stored in the database, determines for each application program located on the specified set of servers whether this application program is available to the client system execution, and a transmitter that transmits to the client system information indicating to the client system each application program from the number hosted on the servers, access to which th user is allowed to execute it on the server on which the application will be located. 38. Сервер по п.37, отличающийся тем, что указанный служебный модуль передает дейтаграмму к другим серверам из указанного множества, чтобы собрать информацию о прикладных программах, соответствующую прикладным программам, размещенным на этих серверах.38. The server according to clause 37, wherein said service module transmits a datagram to other servers from the specified set in order to collect information about application programs corresponding to application programs hosted on these servers. 39. Сервер по п.37, отличающийся тем, что база данных включает в себя информацию о клиентах.39. The server according to clause 37, wherein the database includes information about clients. 40. Сервер по п.37, отличающийся тем, что указанный передатчик передает информацию о доступных прикладных программах, используя протокол связи через виртуальный канал.40. The server according to clause 37, wherein said transmitter transmits information about available applications using a communication protocol via a virtual channel. 41. Сервер по п.37, отличающийся тем, что содержит устройство формирования конечного кадра экрана, которое создает конечные кадры, указывая каждую программу из числа размещенных на серверах, которая доступна клиентской системе для выполнения, и передатчик, передающий сформированные конечные кадры экрана в клиентскую систему.41. The server according to clause 37, characterized in that it contains a device for the formation of the final screen frame, which creates the final frames, indicating each program from the number hosted on the servers, which is available to the client system for execution, and a transmitter that transmits the generated final screen frames to the client the system. 42. Сервер по п.41, отличающийся тем, что указанный служебный модуль выполнен с возможностью передачи дейтаграммы множеству серверов, чтобы собрать информацию о прикладных программах, соответствующую программам, размещенным на этих серверах.42. The server according to paragraph 41, wherein said service module is configured to transmit a datagram to multiple servers in order to collect information about application programs corresponding to programs hosted on these servers. 43. Сервер по п.41, отличающийся тем, что указанное устройство формирования конечного кадра экрана выполнено с возможностью производить анализ шаблонов SGML-документов.43. The server according to paragraph 41, wherein the specified device for the formation of the final frame of the screen is configured to analyze templates of SGML documents. 44. Сервер по п.43, отличающийся тем, что указанный передатчик передает информацию о доступных прикладных программах, используя HTTP.44. The server according to item 43, wherein the specified transmitter transmits information about available applications using HTTP.
RU2001117826/09A 1999-02-18 1999-12-27 Server and method (variants) for determining software surroundings of client node in a network having client/server architecture RU2237275C2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US60/114,099 1998-12-29
US09/252,391 US6643690B2 (en) 1998-12-29 1999-02-18 Apparatus and method for determining a program neighborhood for a client node in a client-server network
US09/252,391 1999-02-18
US09/390,928 US6928469B1 (en) 1998-12-29 1999-09-07 Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US09/390,928 1999-09-07

Publications (2)

Publication Number Publication Date
RU2001117826A RU2001117826A (en) 2003-07-20
RU2237275C2 true RU2237275C2 (en) 2004-09-27

Family

ID=33436618

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2001117826/09A RU2237275C2 (en) 1999-02-18 1999-12-27 Server and method (variants) for determining software surroundings of client node in a network having client/server architecture

Country Status (1)

Country Link
RU (1) RU2237275C2 (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008060185A2 (en) * 2007-09-28 2008-05-22 Dominansis Ltd User network system
US7810143B2 (en) 2005-04-22 2010-10-05 Microsoft Corporation Credential interface
US7941848B2 (en) 2006-01-30 2011-05-10 Microsoft Corporation Elevating rights
US7945951B2 (en) 2006-01-30 2011-05-17 Microsoft Corporation Rights-context elevator
US8056072B2 (en) 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades
RU2446456C2 (en) * 2007-01-10 2012-03-27 Майкрософт Корпорейшн Integration of corporate search engines with access control application programming special interfaces
RU2453917C1 (en) * 2010-12-30 2012-06-20 Закрытое акционерное общество "Лаборатория Касперского" System and method for optimising execution of antivirus tasks in local area network
RU2460119C2 (en) * 2005-12-20 2012-08-27 Савант Системс Ллс Programmable multimedia controller with programmable functions
RU2462749C2 (en) * 2007-06-29 2012-09-27 Майкрософт Корпорейшн Unified representation of physical and virtual images
RU2463652C2 (en) * 2007-04-13 2012-10-10 Майкрософт Корпорейшн Extensible and programmable multi-tenant service architecture
RU2466450C2 (en) * 2007-01-16 2012-11-10 Гизмокс Лтд. Method and system to develop it-oriented server network applications
RU2469385C2 (en) * 2006-10-27 2012-12-10 Майкрософт Корпорейшн Thin client software development environment
RU2475809C2 (en) * 2007-04-18 2013-02-20 Кэнон Эропа Н.В. Printing apparatus, method and program for controlling printing
RU2481623C2 (en) * 2007-05-04 2013-05-10 Майкрософт Корпорейшн Network data control in distributed set of devices
RU2574355C2 (en) * 2010-08-26 2016-02-10 Форд Глобал Технолоджис, ЛЛК Methods and apparatus for remote activation of application
RU2622873C2 (en) * 2013-01-31 2017-06-20 Самсунг Электроникс Ко., Лтд. Method and device for applications control
US9778816B2 (en) 2013-01-31 2017-10-03 Samsung Electronics Co., Ltd. Method of and device for managing applications
US10261529B2 (en) 2006-09-13 2019-04-16 Savant Systems, Llc Configuring a system of components using graphical programming environment having a zone map
US10545628B2 (en) 2013-01-31 2020-01-28 Samsung Electronics Co., Ltd. Method of and device for managing applications
US11016637B2 (en) 2013-01-31 2021-05-25 Samsung Electronics Co., Ltd. Method of and device for managing applications

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2319309C2 (en) 2003-08-07 2008-03-10 Самсунг Электроникс Ко., Лтд. Audio/video device, device and method for controlling an audio/video device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
О'ДОННЕЛ Д., ЛЭДД Э. Microsoft Internet Explorer 3 в подлиннике: Пер. с англ. - СПб.: BHV-Санкт-Петербург, 1997. НОРЕНКОВ И.П. и др. Телекоммуникационные технологии и сети. - М., МГТУ им. Н.Э.Баумана, 1998, с.131-136. *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7810143B2 (en) 2005-04-22 2010-10-05 Microsoft Corporation Credential interface
US8302089B2 (en) 2005-10-31 2012-10-30 Microsoft Corporation Rebootless display driver upgrades
US8056072B2 (en) 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades
RU2460119C2 (en) * 2005-12-20 2012-08-27 Савант Системс Ллс Programmable multimedia controller with programmable functions
US7941848B2 (en) 2006-01-30 2011-05-10 Microsoft Corporation Elevating rights
US7945951B2 (en) 2006-01-30 2011-05-17 Microsoft Corporation Rights-context elevator
US10962996B2 (en) 2006-09-13 2021-03-30 Savant Systems, Inc. Configuring a system of components using graphical programming environment
US10261529B2 (en) 2006-09-13 2019-04-16 Savant Systems, Llc Configuring a system of components using graphical programming environment having a zone map
RU2469385C2 (en) * 2006-10-27 2012-12-10 Майкрософт Корпорейшн Thin client software development environment
RU2446456C2 (en) * 2007-01-10 2012-03-27 Майкрософт Корпорейшн Integration of corporate search engines with access control application programming special interfaces
US8341651B2 (en) 2007-01-10 2012-12-25 Microsoft Corporation Integrating enterprise search systems with custom access control application programming interfaces
RU2466450C2 (en) * 2007-01-16 2012-11-10 Гизмокс Лтд. Method and system to develop it-oriented server network applications
RU2463652C2 (en) * 2007-04-13 2012-10-10 Майкрософт Корпорейшн Extensible and programmable multi-tenant service architecture
RU2475809C2 (en) * 2007-04-18 2013-02-20 Кэнон Эропа Н.В. Printing apparatus, method and program for controlling printing
RU2481623C2 (en) * 2007-05-04 2013-05-10 Майкрософт Корпорейшн Network data control in distributed set of devices
RU2462749C2 (en) * 2007-06-29 2012-09-27 Майкрософт Корпорейшн Unified representation of physical and virtual images
WO2008060185A2 (en) * 2007-09-28 2008-05-22 Dominansis Ltd User network system
WO2008060185A3 (en) * 2007-09-28 2008-07-24 Dominansis Ltd User network system
RU2574355C2 (en) * 2010-08-26 2016-02-10 Форд Глобал Технолоджис, ЛЛК Methods and apparatus for remote activation of application
RU2453917C1 (en) * 2010-12-30 2012-06-20 Закрытое акционерное общество "Лаборатория Касперского" System and method for optimising execution of antivirus tasks in local area network
RU2622873C2 (en) * 2013-01-31 2017-06-20 Самсунг Электроникс Ко., Лтд. Method and device for applications control
US9778816B2 (en) 2013-01-31 2017-10-03 Samsung Electronics Co., Ltd. Method of and device for managing applications
US10545628B2 (en) 2013-01-31 2020-01-28 Samsung Electronics Co., Ltd. Method of and device for managing applications
US11016637B2 (en) 2013-01-31 2021-05-25 Samsung Electronics Co., Ltd. Method of and device for managing applications

Similar Documents

Publication Publication Date Title
EP1141828B1 (en) An apparatus and method for determining a program neighborhood for a client node in a client-server network
KR100998515B1 (en) How to execute distributed program using file-type association in client-server network
RU2237275C2 (en) Server and method (variants) for determining software surroundings of client node in a network having client/server architecture
US7330872B2 (en) Method for distributed program execution with web-based file-type association
US7117243B2 (en) Methods for distributed program execution with file-type association in a client-server network
US6643690B2 (en) Apparatus and method for determining a program neighborhood for a client node in a client-server network
CN107733922B (en) Method and apparatus for invoking a service
US20030069923A1 (en) Method for distributed program execution with server-based file type association
JP3518958B2 (en) Distributed file system translator with extended attribute support
US20050177731A1 (en) Secure management of authentication information
AU2002332001A1 (en) Methods for distributed program execution with file-type association in a client-server network
KR20050039539A (en) Interoperable credential gathering and access modularity
JP2002351829A (en) Providing computing service through online network computer environment
US20240179139A1 (en) Auto-Form Fill Based Website Authentication
EP1411429A2 (en) An apparatus and method for determining a program neighbourhood for a client node in a client-server network
KR20010103733A (en) An apparatus and method for determining a program neighborhood for a client node in a client-server network
AU2006233277B2 (en) Methods for distributed program execution with file-type association in a client-server network
AU2006233857B2 (en) Methods for distributed program execution with file-type association in a client-server network
Touesnard Design of a Universal Web Application Installer