WO2002101518A2 - Technique for integrating information from one or more remotely located sources - Google Patents
Technique for integrating information from one or more remotely located sources Download PDFInfo
- Publication number
- WO2002101518A2 WO2002101518A2 PCT/US2002/007565 US0207565W WO02101518A2 WO 2002101518 A2 WO2002101518 A2 WO 2002101518A2 US 0207565 W US0207565 W US 0207565W WO 02101518 A2 WO02101518 A2 WO 02101518A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- server
- client
- session
- script
- application
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Definitions
- the present invention relates generally to data processing and more particularly, to a technique for integrating and exchanging information between software processes running on remote computers.
- Terminal Server is an operating system from Microsoft® which provides multiple users with an interactive 32-bit desktop environment. With Terminal Server, all processing is remotely performed on the server. It relies on server-based computing through the use of terminals, Windows CE devices or PCs for data input and output.
- the Win32 user interface is passed to the client (thin client) where it is locally displayed. As keystrokes and mouse clicks are entered, they are sent to the server for interruption and execution. The server then refreshes the local "terminal" screen.
- Thin-client users have the immediate benefit of being able to utilize the Windows 2000- hosted applications while maintaining their current and familiar environment. If the server is properly sized, the response time between the keyboard or mouse click and a displayed result should be transparent to the user.
- Clients maintain multiple sessions on Terminal Server. Each session mimics a desktop computer for the client. Applications and system programs of different sessions do not collide. Each session has its own input and output facilities and focus window for keyboard input. Windows in different sessions do not overlap.
- FIGS 1-4 depict certain aspects and features of exemplary embodiments of the present solution constructed in accordance with the teachings herein.
- a working scheme of an exemplary embodiment of the present solution operates as follows: a Terminal Service (TS) Client component and a TS Server component are both installed on the server computer.
- the AMSS run- time enables indirect end user access to the existing application running on the server via a new GUI associated with the application.
- the AMSS run-time allows multiple end users on multiple workstations to use server application's functionality per application instance (however, not simultaneously).
- the client script creates this ActiveX control in order to activate the server-based part of Virtual User (i.e. server script) and establish communication channel with that part for data exchange.
- the Session Connector allows the client script to start one server script instance running in separate terminal session or attach to existing one, if the server script is already running and has no active connection to other client.
- Each session provides independent data communication channel accessible via Session Connector control.
- Each terminal session i.e. instance of server script
- This interface can be useful for platform-independent web-based clients that see server-based Virtual User application as a Web service.
- These 2 one-way MSMQ queues provide transport layer for client-server scripts data exchange.
- One queue is for sending data from client scripts to the server scripts and another one is for sending data from server scripts to the client scripts. Separation on two queues is done for convenience and considering possible high traffic between clients and server. All client-server communication channels use the same queue pair.
- Client-Manager queues These 2 one-way queues are solely dedicated for interaction between client scripts and Session Manager (SM).
- One queue is for sending client script requests to the SM, which is constantly listening this queue in order to fulfill every client script request.
- the SM sends to client scripts information about client-server communication channel queues and server script status.
- the module is responsible for running of requested server script in the separate terminal session and establishing connection between client script and server script. It gets the server script name from the client script, runs Terminal Services Client and activates server script inside the terminal session. Also, this control holds information about server script's run-time behavior. It obtains information about server script status by polling Manager-Server queue and reading messages from running server scripts. For interaction with client scripts, Session Manager uses Client-Manager queues. For interaction with server scripts, Session Manager uses Manager-Server queues. There can be only one Session Manager in the AMSS (single-server) configuration. Manager-Server queues
- These 2 one-way queues are dedicated for interaction between Session Manager and server scripts running inside terminal sessions.
- One queue is for sending information from Session Manager to managed server script, which is constantly listening this queue via In-Session control.
- the server script periodically sends to the Session Manager information about its run-time status.
- the server script creates this ActiveX control in order to be able to interact with Session Manager and client script connected to the particular instance of the server script.
- the In-Session control has interface for data exchange between server script and connected client scripts via client-server communication channel. It also has interface allowing to periodically inform the Session Manager about the server script's run- time status. Every instance of server script has to contain In-Session control.
- Client script creates an instance of Session Connector ActiveX control.
- This step has two possible actions on the client side:
- the Session Connector generates a GUID (ClientGUID) for its unique identification among all client scripts interacting with the Session Manager and sends to the AMSS_ClientToManager queue a "connect" message saying that it wants to connect to particular server script named ServerTaskl .
- GUID CreatedViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewViewView
- the Session Connector generates a GUID (ClientGUID) for its unique identification among all client scripts interacting with the Session Manager and sends to the AMSS_CUentToManager queue an "attach" message saying that it wants to attach to a server script running in terminal session with specified SessionID.
- GUID Created GUID
- the server script creates an instance of In- Session control, calls its Init method.
- the In-Session control generates unique numeric identifier SessionID and passes it in "ready" message to the AMSSjServerToManager queue saying that the server script is ready for working with clients.
- SessionID unique numeric identifier
- Every server script instance has unique SessionID identifier, which is used for unique client script-server script pair association. This identifier is also used for retrieving MSMQ messages appurtenant to particular client script-server script pair.
- the client and server scripts do data exchange directly using ReadData, WriteData, ServerCall methods and OnDataAvailable, OnServerCall events on Session Connector and In-Session control interfaces. Every WriteData call causes firing of OnDataAvailable event on the other side of client-server connection. Inside this event the script should use explicit call of ReadData method for data retrieving.
- client script can use ServerCall method, which is a wrapper around sequential calls of WriteData and ReadData methods with specified waiting period between them. Using of ServerCall method on client side fires OnServerCall event on the server side, where the server script can perform requested action and return result inside one function call.
- the data exchange methods on both controls work via independent MSMQ queues pair bypassing Session Manager module.
- the client script decides to finish its connection to the server script, it has two choices - 1) terminate the connection completely (using Disconnect method) or 2) temporarily interrupt current connection (using Detach method).
- the Session Connector sends "disconnect” message to SM.
- the SM sends "disconnect” message to the server script.
- the In-Session control fires OnDisconnect event, where the server script can prepare itself for shutdown. Then it sends "terminate" message to In-Session control and remove reference to this server script instance from its run-time database.
- the Session Connector On Detach call, the Session Connector sends "detach" message to SM.
- the SM marks the server script instance as “free” and sends "detach” message to the In-Session control.
- the In-Session control fires OnDetach event, where the server script can prepare itself for connection with the same or new client script later (stays in intermediate state).
- In-Session control gets "terminate” message, it fires OnTerminate event, where the server script can free its resources. Then, In-Session control logs off from the terminal session. The terminal session is closed. 10. When the server script decides to finish its job, it calls Terminate method. In- Session control sends "terminate” message to the SM and logs off the terminal session. The SM removes a reference to the server script instance from its run-time database and sends the "terminate" message to the Session Connector control. The control fires OnDisconnect event, where the client script can perform some actions needed upon connection termination.
- the server script has possibilities to inform the SM about its current status by calling of SignalReadiness, SignalMessage, SignalError and SignalFatalError methods. Inside these methods, the In-Session control sends "signal" messages to the SM, which holds this information for monitoring needs .
- the techniques may be implemented in hardware or software, or a combination of the two.
- the techniques are implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device and one or more output devices.
- Program code is applied to data entered using the input device to perform the functions described and to generate output information.
- the output information is applied to one or more output devices.
- Each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system, however, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
- Each such computer program is preferably stored on a storage medium or device (e.g., CD-ROM, hard disk or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document.
- the system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
- Terminal Server is an operating system from Microsoft intended to provide multiple users with interactive 32-bit desktop environment.
- Terminal Server all processing is remotely performed on the server. It relies on server-based computing through the use of terminals, Windows CE devices or PCs for data input and output.
- the Win32 user interface is passed to the client (thin client) where it is locally displayed. As keystrokes and mouse clicks are entered, they are sent to the server for interruption and execution. The server then refreshes the local "terminal" screen.
- Thin-client users have the immediate benefit of being able to utilize the Windows 2000-hosted applications while maintaining their current and familiar environment. If tire server is properly sized, the response time between the keyboard or mouse click and a displayed result should be transparent to the user.
- Clients maintain multiple sessions on terminal Server. Each session mimics desktop computer for client. Applications and system programs of different sessions do not collide. Each session has its own input and output facilities and focus window for keyboard input. Windows in different sessions do not overlap.
- API calls to Win32 subsystem of operating system in order to draw data on the screen and get input from mouse keyboard etc.
- Data records describing API calls and keyboard and mouse input are transmitted through the network between server computer and thin client with the help of RDP protocol.
- VU Virtual User
- VU application emulates the functions of human in two-fold manner. It controls the execution of application by emulating mouse and keyboard events and it get access to and capture the data drawn on the screen by utilizing facilities of "ANY" system. Software emulation of mouse and keyboard events such as mouse clicks and moves and pushing buttons on keyboard is a well-known method to those skilled in art. VU applications control execution of application through its GUI interface by emulating user events in software. Data capturing from the windows of application is described in our previous patent application.
- VU application from one side forms requests to application by forcing it (application) to execute certain activities such as opening and closing windows pushing on buttons and menu items selecting parts of window text etc.
- application application
- virtual user captures data from predetermined parts (regions) on window of application. This data also can determine control flow in VU application.
- VU application usually sends captured data to some client application or other VU. Requests of VU application can be parameterized by some other client application interacting with VU application through some type of interprocess communication facility such as Remote Procedure call or Message Queue. For example if we have database with GUI window which shows name of employer and its address such as: Bush Texas
- VU Gore Connecticut VU application is constructed so that given name of employer it must return in response its address. Then if client application sends to VU name "Bush” then VU must return to client "Texas" and "Gore" - "Connecticut”.
- VU application can be considered as a database manager, which processes client requests. It is clear that form of request and form of response are fixed in this approach.
- Client application which runs on Server computer sends requests to and receives responses from VU application.
- the interaction between Client application and VU application is implemented through interprocess communication facilities provided by OS Windows.
- Client applications can run not only on Server computer but also on other computers. These client applications must communicate with VU applications on Terminal Server in order to send requests and acquire captured data in responses. In the example demonstrated below application with data drawn in its GUI interface VU application capturing data from this application run on Server computer and Client application runs on another computer, which communicates with Server computer. Method of communication can be arbitrary. Client application sends requests to VU and acquires captured data from VU. Excessive details from the previous Fig are avoided.
- Clients communicating with VU applications on Server computer(s) constitute distributed application with loosely coupled architecture. Parts of distributed application can communicate through HTTP protocol to move information. Another option is to use a remote procedure call (RPC) protocol such as Microsoft RPC or its object-oriented counterpart Distributed COM (DCOM). Distributed applications can communicate via messages sent using Microsoft Message Queue Server (MSMQ). Mixed solutions can also be used.
- RPC remote procedure call
- MSMQ Microsoft Message Queue Server
- client application can communicate with intermediate agent on server computer server computer through HTTP or DCOM and this agent in turn communicates with VU applications through MSMQ.
- Terminal server provides the possibility to run such configuration so that pairs VU- Application will run in different sessions without colliding with each other because each session has independent window system and input output system.
- VU application may have two states. It may be in "busy” state, while processing the request from client or in "free” state which means that it is ready and can process new request.
- the special component Session Manager is responsible in current architecture for managing communications between client applications and VU. It supports current list of VU applications and their current states (busy or free). If all the VU applications are busy it can start new session with new VU.
- Session Manager When new message appears in queue Session Manager establishes communication between client application and VU so that client and VU can exchange input and output messages.
- Client applications can communicate with message queue through different facilities such as RPC,DCOM,HTTP or MSMQ.
- Data captured by Virtual user from Window of application can be utilized in new GUI on the client application. Therefore we have new application on the client side, which, reproduces parts of the functionality of application on the server side.
- the last picture is not exact because at the beginning client application and VU establish connection through Session Manager and after that they exchange data directly with one another.
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2002321997A AU2002321997A1 (en) | 2001-03-05 | 2002-03-05 | Technique for integrating information from one or more remotely located sources |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27347901P | 2001-03-05 | 2001-03-05 | |
US60/273,479 | 2001-03-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2002101518A2 true WO2002101518A2 (en) | 2002-12-19 |
WO2002101518A3 WO2002101518A3 (en) | 2003-02-27 |
Family
ID=23044109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2002/007565 WO2002101518A2 (en) | 2001-03-05 | 2002-03-05 | Technique for integrating information from one or more remotely located sources |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU2002321997A1 (en) |
WO (1) | WO2002101518A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007023391A2 (en) * | 2005-08-16 | 2007-03-01 | Exent Technologies, Ltd. | System and method for providing a remote user interface for an application executing on a computing device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6286003B1 (en) * | 1997-04-22 | 2001-09-04 | International Business Machines Corporation | Remote controlling method a network server remote controlled by a terminal and a memory storage medium for HTML files |
US6304895B1 (en) * | 1997-08-22 | 2001-10-16 | Apex Inc. | Method and system for intelligently controlling a remotely located computer |
US6448958B1 (en) * | 1997-07-04 | 2002-09-10 | International Business Machines Corporation | Remote control method, server and recording medium |
-
2002
- 2002-03-05 AU AU2002321997A patent/AU2002321997A1/en not_active Abandoned
- 2002-03-05 WO PCT/US2002/007565 patent/WO2002101518A2/en not_active Application Discontinuation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6286003B1 (en) * | 1997-04-22 | 2001-09-04 | International Business Machines Corporation | Remote controlling method a network server remote controlled by a terminal and a memory storage medium for HTML files |
US6448958B1 (en) * | 1997-07-04 | 2002-09-10 | International Business Machines Corporation | Remote control method, server and recording medium |
US6304895B1 (en) * | 1997-08-22 | 2001-10-16 | Apex Inc. | Method and system for intelligently controlling a remotely located computer |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007023391A2 (en) * | 2005-08-16 | 2007-03-01 | Exent Technologies, Ltd. | System and method for providing a remote user interface for an application executing on a computing device |
WO2007023391A3 (en) * | 2005-08-16 | 2007-10-04 | Exent Technologies Ltd | System and method for providing a remote user interface for an application executing on a computing device |
US7844442B2 (en) | 2005-08-16 | 2010-11-30 | Exent Technologies, Ltd. | System and method for providing a remote user interface for an application executing on a computing device |
Also Published As
Publication number | Publication date |
---|---|
WO2002101518A3 (en) | 2003-02-27 |
AU2002321997A1 (en) | 2002-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6868544B2 (en) | Method and system for general-purpose interactive notifications | |
US7137072B2 (en) | Method and system for managing documents modified while being viewed in a browser window | |
US7080120B2 (en) | System and method for collaborative processing of distributed applications | |
EP1559004B1 (en) | Session coupling | |
US6192394B1 (en) | Inter-program synchronous communications using a collaboration software system | |
RU2225027C2 (en) | System and method for combining local and remote windows into single medium for desktop | |
CA2210817C (en) | Client object api and gateway to enable oltp via the internet | |
US7376735B2 (en) | Method, apparatus, and system for capturing data exchanged between a server and a user | |
US9363134B1 (en) | Lightweight browser monitoring and viewing | |
US7668937B2 (en) | Wireless communication device use of application server applications | |
US9389930B2 (en) | System and method of providing inter-application communications | |
US9419814B2 (en) | Event / calendar based auto-start of virtual disks for desktop virtualization | |
US20060010125A1 (en) | Systems and methods for collaborative shared workspaces | |
US7881336B2 (en) | HTB gateway for healthcare transaction base | |
CA2812738A1 (en) | Unified reconnection to multiple remote servers | |
EP1747509A2 (en) | Systems and methods for enterprise collaboration | |
CZ20014468A3 (en) | Information processing method, cooperating server, cooperation system, and memory medium for storing information-processing program | |
EP1489505A2 (en) | A system supporting communication between a web enabled application and another application | |
US7197712B2 (en) | Server visualization and control | |
US20040049535A1 (en) | System and method for a distributed shell in a Java environment | |
WO2002101518A2 (en) | Technique for integrating information from one or more remotely located sources | |
CN108347456B (en) | Application program downloading method and device | |
CN109639795B (en) | Service management method and device based on AcitveMQ message queue | |
Wackerow | MQSeries Primer | |
EP4124955A1 (en) | Methods and systems for persistent communications between client applications and application servers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase in: |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |