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 PDFInfo
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
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
Клиентский узел 10 может представлять собой любой персональный компьютер (например, 286, 386, 486, Pentium, Pentium II, Macintosh), терминал, работающий в среде Windows, Internet-компьютер, беспроводное устройство, информационное устройство, RISC Power PC, Х-компьютер, рабочую станцию, миникомпьютер, большую ЭВМ или иное вычислительное устройство, имеющее экранную среду Windows и память постоянного хранения информации достаточного объема для исполнения прикладных программ, загружаемых через сеть 40 с серверов 30, 32, 34. Платформы Windows, поддерживаемые клиентским узлом 10, могут включать в себя Windows 3.х, Windows 95, Windows 98, Windows NT 3.51, Windows NT 4.0, Windows СЕ, Macintosh, Java и Unix. Клиентский узел 10 может включать в себя экран 12 дисплея, клавиатуру 14, память 16 для хранения загружаемых приложений, процессор 17 и мышь 18. Память 16 может обеспечивать постоянное или энергозависимое хранение. Процессор 17 может исполнять приложения локально, на клиентском узле 10, и отображать экранную среду Windows на экране 12 дисплея. Такая локальная обработка информации на клиентском узле осуществляется в соответствии с вышеописанной клиентской моделью вычислений.
В другом варианте клиентский узел 20 может представлять собой любой терминал (работающий в среде Windows или нет) либо маломощное клиентское устройство, действующее в соответствии с серверной моделью вычислений. При серверной модели вычислений исполнение прикладных программ происходит целиком на серверах 30, 32, 34 приложений, а пользовательский интерфейс, нажатия клавиш и перемещения мыши передаются на клиентский узел 20 через сеть 40. Пользовательский интерфейс может приводиться в действие при помощи текста (как, например, в DOS) или графически (как, например, в Windows). Платформы, которые может поддерживать клиентский узел 20, включают в себя DOS и Windows СЕ для терминалов, ориентированных на работу с Windows. Клиентский узел 20 включает в себя экран 22 дисплея, клавиатуру 24, мышь 28, процессор (не показан) и память длительного хранения (не показана).In another embodiment, the
Серверы 30, 32, 34 и 36 приложений могут представлять собой любые вычислительные устройства, которые осуществляют управление доступом к другим частям сети (например, рабочим станциям, принтерам). Следует понимать, что к сети 40 может быть подключено большее или меньшее число серверов приложений. Серверы 30, 32, 34 и 36 могут работать в соответствии либо с клиентской, либо с серверной моделью вычислений, как это было описано выше.
Каждый сервер 30, 32, 34 и 36 приложений располагает одной или большим числом прикладных программ, доступ к которым могут получить клиентские узлы 10 и 20. Прикладные программы, доступ к которым разрешен для клиентских узлов, называют опубликованными приложениями. К числу таких приложений относятся, например, текстовые процессоры, такие как MICROSOFT WORD®, и электронные таблицы, такие как MICROSOFT EXCEL® от Microsoft Corporation (США), программы финансовых отчетов, программы регистрации клиентов, программы, обеспечивающие информацию технической поддержки, базы данных клиентов или управляющие программы установки приложений.Each
Серверы 30, 32 и 34 могут принадлежать одному и тому же домену 38. В сети 40 доменом является фрагмент сети, содержащий группу серверов приложений и клиентских узлов, находящихся под управлением одной базы данных системы защиты. Домен может включать в себя одну или несколько “серверных ферм”. (Серверная ферма - это группа серверов, которые связаны вместе, чтобы действовать как единая серверная система и обеспечивать централизованное администрирование.) И наоборот, серверная ферма может включать в себя один или несколько доменов. Чтобы серверы из двух различных доменов могли принадлежать к одной серверной ферме, может потребоваться, чтобы между этими доменами существовали доверительные отношения. Доверительные отношения - это такая связь между различными доменами, которая дает возможность пользователю получать доступ к ресурсам, связанным с каждым из доменов посредством одноразовой проверки прав доступа (аутентификации) в начале сеанса.
В одном из вариантов осуществления настоящего изобретения сервер 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
Сеть 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
Программное окружениеSoftware environment
В соответствии с принципами настоящего изобретения пользователь любого клиентского узла 10, 20 может узнать, какие прикладные программы, установленные на серверах 30, 32, 34 и 36 приложений в сети 40, ему доступны. При этом пользователю не нужно знать, где найти эти приложения, и не требуется вводить техническую информацию, необходимую для связи с такими приложениями. Эти доступные прикладные программы составляют “программное окружение” пользователя. Система для определения программного окружения клиентского узла включает в себя некоторую прикладную программу (в дальнейшем: приложение “Программное окружение”), память для хранения компонентов этой прикладной программы и процессор для исполнения этой прикладной программы.In accordance with the principles of the present invention, a user of any
Приложение “Программное окружение” может быть инсталлировано в памяти клиентского узла 10 и/или на серверах 30, 32, 34 и 36 приложений, как описывается ниже. Приложение “Программное окружение” представляет собой совокупность служебных программ, прикладных программ интерфейса (API) и программ пользовательского интерфейса (UI), которые показывают пользователям клиентских узлов 10, 20 те прикладные программы, размещенные на серверах приложений, право пользоваться которыми (например, осуществлять их исполнение) имеет каждый клиентский узел.The software environment application can be installed in the memory of
Сервер приложений, работающий в соответствии с прикладной программой “Программное окружение”, собирает информацию о приложениях от каждого из серверов приложений внутри серверной фермы. Информация о приложениях, по каждому из приложений, размещенных на серверах, может представлять собой различные сведения, включающие, например, адрес сервера, на котором размещено данное приложение, имя приложения, сведения о пользователях или группах пользователей, которым разрешено пользоваться данным приложением, и функциональный минимум клиентского узла, который необходимо иметь, прежде чем устанавливать соединение и выполнять программу. Например, приложение может передавать поток видеоданных, и, следовательно, клиентский узел, как минимум, должен поддерживать видеоданные. Другим примером является способность клиентского узла поддерживать звуковые данные или способность обрабатывать зашифрованные данные. Информация о приложениях может быть сохранена в базе данных, как это описано далее.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
На основании данных полномочий пользователя и информации о приложениях сервер может также определить, какие прикладные программы, установленные на серверах приложений, доступны для пользователя клиентского узла. Сервер передает информацию о доступных приложениях на клиентский узел. Этот процесс избавляет пользователя клиентского узла от необходимости настраивать связь с приложениями. Также администратор сервера может управлять доступом к приложениям пользователей различных клиентских узлов.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
В одном варианте осуществления изобретения приложение “Программное окружение” отфильтровывает прикладные программы, на использование которых клиентский узел 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
На фиг.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
На фиг.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
На фиг.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
Клиентский узел 20 через web-браузер 80 передает запрос 82 для доступа к адресу унифицированного указателя ресурсов (URL), соответствующего HTML странице, размещенной на сервере 30. В некоторых вариантах осуществления первая HTML страница 84, возвращаемая на клиентский узел 20 сервером 30, является страницей проверки прав доступа, которая пытается идентифицировать клиентский узел 20.The
Страница проверки прав доступа позволяет клиентскому узлу 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
Сервер 30 может проверить данные полномочий пользователя, полученные от клиентского узла 20. В другом варианте сервер 30 может передать данные полномочий пользователя другому серверу для аутентификации. В этом варианте осуществления сервер, выполняющий аутентификацию, может находиться в другом домене, нежели сервер 30. Данные полномочий пользователя клиентского узла 20, прошедшие проверку прав доступа, могут быть сохранены на клиентском узле 20 в файлах предыстории обращений (cookies) или в областях, которые не отображаются web-браузером 80 или любым другим способом, принятым для поддержки web-страниц. В некоторых вариантах осуществления серверная ферма, в которую входит сервер 30, может дать гостевым пользователям, т.е. пользователям, у которых нет присвоенных данных полномочий, возможность доступа к приложениям, которые размещены на серверах этой фермы. В таких вариантах осуществления страница проверки прав доступа может предоставить механизм, такой как кнопка, или выбор из меню, который позволяет клиентскому узлу 20 указать, что он является гостевым пользователем. В иных вариантах осуществления сервер 30 может полностью опустить страницу проверки прав доступа.
В соответствии с фиг.2С, как только клиентский узел 20 успешно проходит аутентификацию сервером 30, этот сервер подготавливает и передает на клиентский узел 20 HTML-страницу 88, включающую в себя окно 58 “Программное окружение”, в котором появляются графические иконки 57, 57', представляющие приложения, к которым клиентский узел 20 имеет доступ. Пользователь клиентского узла 20 запрашивает исполнение приложения, представленного иконкой 57, посредством щелчка мышью на этой иконке.In accordance with FIG. 2C, as soon as the
На фиг.3А показан пример процесса обмена данными между клиентским узлом 10, главным серверным узлом, в данном примере - сервером 30, и сервером 32. Клиентский узел 10 имеет с сервером 32 активное соединение 72. Клиентский узел 10 и сервер 32 могут использовать активное соединение 72 для обмена информацией, касающейся исполнения первой прикладной программы. Данные полномочий пользователя клиентского узла 10 хранятся на клиентском узле. Такое хранение данных полномочий пользователя может осуществляться в памяти длительного хранения или в кэш-памяти.FIG. 3A shows an example of a data exchange process between the
В данном варианте осуществления приложение “Программное окружение” работает на клиентском узле 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
На фиг.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
В данном варианте осуществления приложение “Программное окружение” работает на сервере 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
Главный серверный узел 30 указывает (стрелка 65) серверу 32, что искомое приложение доступно на сервере 34. Сервер 32 связывается с сервером 34, чтобы установить соединение 66. Чтобы осуществить проверку прав доступа к приложению, сервер 34 получает данные полномочий пользователя клиентского узла 20 от сервера 32. Сервер 32 и сервер 34 устанавливают соединение (стрелка 66), посредством которого сервер 32 запрашивает исполнение второй прикладной программы, а сервер 34 возвращает серверу 32 результирующий графический интерфейс пользователя. Сервер 32 пересылает результирующий графический интерфейс пользователя на клиентский узел 20, где производится его отображение. Соответственно, обмен информацией между клиентским узлом 20 и сервером 34 проходит через сервер 32.The
Подобным образом клиентский узел 20 может производить запуск третьей прикладной программы путем двойного щелчка мышью на иконке 57'. Запрос запуска третьей прикладной программы проходит на сервер 32. Сервер 32 пересылает этот запрос на главный серверный узел 30, который, учитывая загрузку серверов и доступность прикладной программы, определяет, какой сервер может обработать данный запрос. В этом примере главный серверный узел указывает, что запустить на выполнение третью прикладную программу может сервер 36.Similarly, the
Сервер 32 и сервер 36 устанавливают соединение (стрелка 74), посредством которого сервер 32 запрашивает исполнение третьей прикладной программы, а сервер 36 возвращает серверу 32 результирующий графический интерфейс пользователя. Чтобы разрешить исполнение третьей прикладной программы, сервер 36 может выполнить аутентификацию данных полномочий пользователя клиентского узла 20, которые получаются от сервера 32. Сервер 32 пересылает результирующий графический интерфейс пользователя на клиентский узел 20, где он отображается. Соответственно, результаты исполнения третьей прикладной программы проходят от сервера 36 к клиентскому узлу 20 через сервер 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
На фиг.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
В данном варианте осуществления приложение “Программное окружение” запускается на выполнение на сервере 32. На дисплее клиентского узла 20 имеется окно 58 “Программное окружение”, в котором появляется графическая иконка 57, представляющая вторую прикладную программу. Пользователь клиентского узла 20 может запускать вторую прикладную программу посредством двойного щелчка мышью на иконке 57. Запрос на запуск второй прикладной программы проходит на сервер 32. Сервер 32 отвечает (т.е. “перезванивает”) клиентскому узлу 20 путем возврата информации о приложениях, такой как имя приложения и функциональный минимум клиентского узла 20, необходимый для работы со вторым приложением.In this embodiment, the “Software Environment” application is launched for execution on the
Имея информацию от сервера 32, клиентский узел 20 далее через соединение 77 связывается с главным серверным узлом 30, чтобы определить, какой сервер может исполнить вторую прикладную программу. В данном примере таким сервером является сервер 34. Затем клиентский узел 20 устанавливает соединение 78 с сервером 34. Сервер 34 запрашивает от клиентского узла 20 данные полномочий пользователя, чтобы определить права доступа пользователя клиентского узла 20. Вторая прикладная программа выполняется на сервере 34, и сервер 34 возвращает графический интерфейс пользователя клиентскому узлу 20 через установленное соединение 78. Соответственно, клиентский узел 20 может иметь множество активных соединений с множеством серверов.Having information from the
На фиг.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
В данном варианте осуществления шаблон 90 представляет собой стандартный документ SGML, HTML или XML, содержащий особые теги “программного окружения”, которые заменяются динамической информацией. Эти теги указывают серверу 30, где на экране следует вставить информацию, соответствующую доступным приложениям, такую как изображения иконок. В частности, в одном варианте осуществления теги программного окружения внедрены в комментарии внутри файла, давая файлу возможность оставаться совместимым со стандартными интерпретирующими программами. В другом варианте осуществления теги программного окружения являются расширениями языка разметки, используемого как основа для шаблона.In this embodiment,
Примеры HTML-тегов, которые могут быть использованы в шаблоне в соответствии с настоящим изобретением, приведены ниже, в таблице 1. 1 Examples of HTML tags that can be used in a template in accordance with the present invention are shown below in table 1. 1
Для настройки полей управления и для обеспечения условной обработки, относящейся к приложению “Программное окружение”, могут быть введены и другие теги.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
В одном из вариантов осуществления создают объект анализатора шаблонов, который захватывает шаблон, интерпретирует особые теги “программного окружения”, присутствующие в шаблоне, и на выходе выдает исходный шаблон, в котором все теги “программного окружения” заменены соответствующим текстом. Объект анализатора шаблонов может быть передан в виде 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
Пользователь клиентского узла 20 может запускать приложение посредством двойного щелчка мышью на иконке 57, 57', отображаемой на web-странице “Программное окружение”. В некоторых вариантах осуществления каждая иконка представляет собой закодированный URL, который указывает: местонахождение приложения (т.е., на каких серверах оно размещено или, в ином варианте, адрес главного сервера); команду запуска, связанную с приложением; и шаблон, определяющий, как должен быть представлен результат работы приложения (т.е. в окне, “вложенном” в браузер, или в отдельном окне). В некоторых вариантах осуществления URL включает в себя файл или ссылку на файл, который содержит информацию, необходимую клиенту для установления связи с сервером, на котором размещено приложение. Этот файл может создаваться динамически приложением “Программное окружение”. Клиентский узел 20 устанавливает соединение (стрелка 94) с сервером, который был определен как сервер, на котором размещено запрашиваемое приложение (в данном примере - это сервер 32), и производит обмен информацией, касающейся исполнения нужного приложения. В некоторых вариантах осуществления соединение 94 осуществляют, используя протокол независимой архитектуры вычислительной системы (1СА), выпускаемый Citrix Systems. Таким образом, клиентский узел 20 может отображать результат работы приложения в окне, отдельном от web-браузера 60, или же результат работы приложения может быть “вложен” в web-браузер.The user of the
Фиг.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
Сервер 30 приложений, например, включает в себя служебную компоненту 44 (PNSVC) и базу 48 данных приложений. Клиентский узел 10, являясь характерным примером клиентского узла, на базе которого можно реализовать приложение “Программное окружение”, включает в себя программный интерфейс 52 приложения (PNAPI), пользовательский интерфейс 56 и локальную кэш-память 60. PNSVC 44 ведет обмен данными с базой 48 данных приложений и с PNAPI 52 на клиентском узле 10 через канал 62 связи.The
Канал 62 связи может быть установлен, например, посредством протокола ICA. ICA представляет собой протокол общего назначения для представления данных, предназначенный для работы совместно с протоколами промышленного стандарта, такими как TCP/IP, IPX/SPX, NetBEUI, с использованием транспортных протоколов промышленного стандарта, таких как ISDN, Frame Relay и режима асинхронной передачи данных (АТМ). Протокол IСА создает виртуальные каналы, которые представляют собой сеансовые каналы передачи и могут быть использованы кодом прикладного уровня для выдачи команд обмена данными. Команды виртуальных каналов рассчитаны на тесную интеграцию с функциями клиентских узлов. Один тип виртуального соединения, который поддерживается протоколом IСА, это виртуальный канал “программного окружения”.
Протокол виртуального канала “программного окружения” может включать в себя четыре группы команд: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) для распределенных электронных каталогов.
База 48 данных приложений включает в себя список серверов приложений. Каждый сервер в этом списке имеет связанный с ним набор приложений. С каждым приложением связывается информация о приложении, которая может включать имя приложения, список серверов и клиентов, которым разрешено использовать данное приложение. Ниже, в таблице 2, приведен сильно упрощенный пример информации о приложениях, которая поддерживается базой данных. Пользователи А и В - это пользователи клиентских узлов 10, 20, “н/д” означает, что приложение размещено на сервере, но не доступно для пользователей клиентских узлов, и “-” означает, что приложение на сервере отсутствует.The
Таблица 2 показывает список серверов 30, 32, 34; приложения, размещенные на этих серверах (электронная таблица, клиентская база данных, текстовый процессор и калькулятор), и тех пользователей, которым разрешено использовать эти приложения. Например, на сервере 30 размещена программа электронной таблицы, клиентская база данных и текстовый процессор. Пользователю А разрешено пользование электронной таблицей, пользователю В разрешено пользование клиентской базой данных и ни одному из пользователей не разрешено пользование текстовым процессором. Следует понимать, что для указания, кому разрешено пользоваться определенным приложением, могут быть применены и другие приемы. Например, информация о пользователях, хранящаяся в базе данных, может быть использована для указания тех клиентов, которым запрещено пользование определенным приложением, а не тех, кому это разрешено.Table 2 shows a list of
Чтобы получить информацию, которая хранится в базе 48 данных, сервер 30 получает от каждого сервера фермы информацию о приложениях, которые размещены на этих серверах, включая информацию управления, которая указывает, каким клиентам и серверам разрешен доступ к каждому конкретному приложению. Эта информация о приложениях, которая поддерживается в базе данных, при перезагрузке сервера 30 может либо сохраняться, либо пропадать.To obtain information that is stored in
База 48 данных приложений может являться центральной базой данных, которая хранится на серверах 30, 32 и 34 приложений, и быть доступной для всех серверов, входящих в серверную ферму. Соответственно, информация о приложениях может быть доступной для использования другими серверами, такими как те, которые производят аутентификацию опубликованных приложений в начале сеанса и запускают приложения. В другом варианте осуществления база 48 данных приложений может поддерживаться в каждом из серверов 30, 32, 34 приложений на основе информации, которую каждый сервер получает при обмене данными с другими серверами фермы.
Служебная компонента приложения “Программное окружение” (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
Другие функции программы 44 PNSVC включают в себя осуществление служебных операций и функций, запрашиваемых со стороны PNAPI 52, и обмен данными с PNAPI 52 на клиентском узле 10, с использованием драйвера виртуальных устройств “программного окружения” (VDPN). Драйвер VDPN действует в соответствии с вышеописанным протоколом виртуального канала “программного окружения” для установления и поддержания ICA соединения.Other functions of the
Программный интерфейс приложения “Программное окружение” (PNAPI)Software Environment Application Program Interface (PNAPI)
PNAPI 52 представляет собой набор программных функций или сервисов, которые используются приложением “Программное окружение” для выполнения различных операций (например, для открывания окон на экране, открывания файлов и окон сообщений). PNAPI 52 обеспечивает общий механизм обработки для объектов запуска приложений (например, иконок), которые формируются при работе приложения “Программное окружение”, и для обработки объектов приложений в пользовательском интерфейсе старых клиентов (т.е. существующих в течение какого-то времени или их предшественников). Когда клиентский узел 10 запускает какое-либо доступное приложение, механизм запуска может произвести запуск приложения на сервере 30, если это необходимо (т.е. когда клиентский узел 10 не располагает ресурсами, чтобы локально выполнить прикладную программу).
PNAPI 52 обеспечивает компоненту 56 пользовательского интерфейса всей информацией по опубликованному приложению для осуществления отображения на экране 12 (фиг.1) клиентского узла 10. Также, для осуществления функции одноразовой аутентификации, PNAPI 52 управляет входом в систему серверной фермы по локальной базе данных полномочий регистрации (т.е. паролей) для пользователей клиентского узла 10. Данные полномочий могут сохраняться или не сохраняться при перезагрузке клиентского узла 10 (т.е. при выключении и последующем включении питания).
PNAPI 52 обеспечивает автоматическое и ручное управление объектами приложения “Программное окружение”, сохраняемыми в локальной кэш-памяти 60. Содержимое локальной кэш-памяти 60 может обновляться пользователем клиентского узла 10 либо вручную, либо с периодичностью, которую определяет пользователь, либо сервером, в любое время во время действия соединения. При реализации в среде Windows PNAPI 52 может устанавливать связи с удаленными файлами приложений и управлять меню "Start" и иконками рабочего стола экрана для быстрого вызова объектов приложений.
Пользовательский интерфейс программного окруженияSoftware User Interface
Модуль 56 пользовательского интерфейса осуществляет связь с PNAPI 52 и может являться расширенной версией существующего интерфейса клиент-пользователь (например, программы удаленного управления приложениями, Remote Application Manager). Модуль 56 пользовательского интерфейса через PNAPI 52 получает доступ к информации, которая хранится в локальной кэш-памяти, и визуально представляет эту информацию пользователю на экране 12 дисплея (фиг.1) клиентского узла 10. Отображаемая информация представляет собой смесь информации, создаваемой пользователем клиентского узла 10, и информации, получаемой приложением “Программное окружение”. Модуль 56 пользовательского интерфейса может также показать пользователю все приложения, с которыми пользователь работает в данный момент времени, и все активные и прекращенные сеансы.The
При реализации в среде Windows модуль 56 пользовательского интерфейса может представлять множество разных графических компонентов, таких как окна или выпадающие меню, которые должны отображаться на экране 12 дисплея (фиг.1). Отображение сочетания таких компонентов графического пользовательского интерфейса обычно называют “рабочим столом” экрана. Рабочий стол, формируемый модулем 56 пользовательского интерфейса, может включать в себя окно “Программное окружение”, показывающее соседние прикладные программы, доступные для пользователя клиентского узла 10. Эти прикладные программы представляют собой фильтрованный набор опубликованных приложений, размещенных на серверной ферме в сети. Модуль 56 пользовательского интерфейса может создавать для каждой серверной фермы свое окно программного окружения или объединять приложения с различных серверных ферм в одном окне программного окружения.When implemented in a Windows environment, the
На верхнем уровне каталогов окно “Программное окружение” содержит папку для каждой серверной фермы. Щелчок мышью 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
Характерной чертой реализации приложения “Программное окружение” на базе клиентского узла является то, что пользователь может просматривать объекты, отображаемые в окне программного окружения, даже когда клиентский узел отключен от линии (в режиме 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
На фиг.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
Чтобы запустить на выполнение приложение “Программное окружение” при его реализации на базе серверного узла, пользователь клиентского узла 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
Подобно тому, как это показано на фиг.4 для сервера 30, сервер 30' использует данные полномочий пользователя, чтобы определить те прикладные программы, которые разрешены для пользователя клиентского узла 20. Графическое окно “Программное окружение” возвращается на клиентский узел 20 и отображается на экране 22 клиентского узла (фиг.1). Это окно может содержать иконки, представляющие разрешенные, а возможно, и неразрешенные прикладные программы, которые составляют программное окружение клиентского узла 20.Similar to that shown in FIG. 4 for
Пользователь клиентского узла 20 может выбрать и запустить одну из прикладных программ, представленных в окне “Программное окружение”. При запуске прикладной программы приложение “Программное окружение” может, если это подходит, осуществить исполнение прикладной программы на том же самом сервере 30', учитывая требования к распределению загрузки между серверами и доступность этой прикладной программы на сервере 30'. PNAPI 52' может включать в себя механизм для запуска удаленного приложения локально на сервере 30', когда объявлено, что запуск прикладной программы должен быть осуществлен сервером 30'. Когда нужно, чтобы выполнение прикладной программы прошло на другом сервере, приложение “Программное окружение” может осуществить запуск этой прикладной программы через сервер 30' (т.е. клиентское устройство на базе сервера), используя окна для представления этой программы на рабочем столе экрана клиентского узла 20, как это было описано выше для фиг.3В.The user of the
В одном из вариантов осуществления приложение “Программное окружение”, реализованное на базе 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,
Класс объекта данных полномочий управляет информацией, необходимой для проверки прав доступа пользователя в нужную серверную ферму. Объект данных полномочий передает сохраненные данные полномочий пользователя другим объектам “программного окружения”. В некоторых вариантах осуществления объект данных полномочий является абстрактным классом, который не может быть реализован, и представляет данные полномочий пользователя. Можно создавать различные расширения класса, чтобы дать возможность использовать разные механизмы аутентификации, включая биометрию, микропроцессорные кредитные карточки, механизмы аутентификации на основе аппаратных ключей, такие как аутентификация с запросом и подтверждением, формирование паролей, зависимых от времени, и другие способы. Например, может быть создано расширение типа “данные полномочий в виде открытого текста”, которое сохраняет имя пользователя, домен и пароль, как простой текст.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
Фиг.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
Каждая прикладная программа, представленная одной из иконок 128, не доступна для пользователя клиентского узла 10, 20, хотя эти приложения присутствуют на серверной ферме. Недоступность этих приложений может быть отмечена на экране дисплея (например, иконки 128 могут быть перечеркнуты). Попытка запустить такое приложение должна инициировать появление сообщения, указывающего, что пользователю не разрешено использовать это приложение.Each application program represented by one of the
На фиг.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
На этапе 86 сервер 32 приложений устанавливает соединение с каждым из других серверов 30, 34 и 36 для обмена, как это было описано выше, информацией о приложениях, соответствующей прикладным программам, размещенным на этих серверах (этап 88). На этапе 90 сервер 32 приложений создает и поддерживает базу данных собранной информации о приложениях. Каждый другой сервер 30, 34, 36 в серверной ферме может создать базу данных, эквивалентную базе данных сервера 32, и таким же способом, что и сервер 32. В другом варианте осуществления база данных сервера 32 может являться централизованной базой данных, которая доступна для каждого другого сервера 30, 34, 36 приложений в серверной ферме. Сбор информации о приложениях может происходить независимо или может быть инициирован запросом клиентского узла 10, 20 начать сеанс, направляемым серверу фермы 38.At
На этапе 92 клиентский узел 10, 20 может запросить исполнение прикладной программы с рабочего стола экрана. Главный серверный узел может обработать этот запрос и, оценив распределение загрузки серверов и доступность данной прикладной программы, как это описывалось выше, определить сервер приложений, который должен обслужить запрос клиентского узла 10, 20 (этап 94). Например, для обслуживания запроса клиентского узла 10, 20 может быть выбран сервер 32 приложений. На этапе 96 клиентский узел 10, 20 устанавливает канал связи с сервером 32. Сервер 32 и клиентский узел 10, 20 могут вести обмен данными в соответствии с протоколом ICA, который является подходящим для клиентского узла, как было описано выше.At
Кроме того, в ответ на запрос запустить на выполнение прикладную программу, главный серверный узел 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
В других вариантах осуществления окно “Программное окружение” может включать в себя приложения, которые присутствуют на серверной ферме, но не доступны для использования клиентским узлом 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
Вся информация, необходимая для практической реализации настоящего изобретения, может быть представлена в виде одной или нескольких программ, которые могут считываться компьютером и которые могут быть реализованы как одно или несколько промышленных изделий. Промышленное изделие может представлять собой гибкий диск, жесткий диск, 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)
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)
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)
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 |
-
1999
- 1999-12-27 RU RU2001117826/09A patent/RU2237275C2/en active
Non-Patent Citations (1)
Title |
---|
О'ДОННЕЛ Д., ЛЭДД Э. Microsoft Internet Explorer 3 в подлиннике: Пер. с англ. - СПб.: BHV-Санкт-Петербург, 1997. НОРЕНКОВ И.П. и др. Телекоммуникационные технологии и сети. - М., МГТУ им. Н.Э.Баумана, 1998, с.131-136. * |
Cited By (24)
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 |