BACKGROUND Geophysicists and geologists utilize various software applications, which are hosted on computer networks, in connection with the exploration and production of geologic resources, such as hydrocarbons. The computer networks typically include at least two client computer systems utilized by geophysicists and geologists. One client computer may be a high end UNIX-based workstation for performing technical computing tasks related to exploration and production (“E&P”). A second client computer may be a personal computer (“PC”) for performing administrative tasks such as sending electronic mail. The client workstations and PCs utilize the computer network to access applications which are hosted on multiple server computers.
Presently, multiple client computer networks utilized in E&P environments suffer from several drawbacks. One drawback is that the utilization of multiple client computers often places significant demands on often limited network resources such as bandwidth, requiring megabit networks, for example, to be upgraded to gigabit networks at additional cost. Another drawback with present networks is that a user, after selecting a server-based application from a client workstation, must wait for the application to be loaded from a remotely located server into the memory of the client workstation. Furthermore, the user would also have to wait for any data associated with the application to be loaded from a server into the memory of the client workstation before the application could be used. Yet another drawback is that when a user is running multiple applications on a workstation, the combined result of loading the applications and their associated data into memory consumes workstation resources (e.g., processor and memory resources), resulting in slower performance. Still another drawback is that while geophysicists and geologists are increasingly utilizing computer systems with multiple high resolution monitors for displaying graphics, current network applications are unable to fully utilize maximum display resolutions which may be as high as 3840×1200 on dual monitors capable of high resolution displays.
It is with respect to these considerations and others that the various embodiments of the present invention have been made.
SUMMARY In accordance with the present invention, the above and other problems are solved by methods, systems, and computer-readable media for displaying high resolution content related to the exploration and production of geologic resources in a thin client computer network. According to one aspect of the invention, a method is provided for displaying high resolution content generated by a securely hosted application program for the exploration and production of geologic resources on a client system in a thin client/server computer network. The method includes presenting an interface for accessing the application program, the application program hosted on the server, receiving a selection of the application program, determining a least utilized node in the client/server computer network for executing the selected application program via the client system, packaging images generated by the executed application program into a remote access application server display protocol, and displaying the images generated by the executed application program via the remote access application server display protocol as high resolution images on the client system. The high resolution displays may be displayed on multiple (e.g., dual monitors) displays associated with he client system.
The invention may be also implemented as a computer process, a computing system, or as an article of manufacture such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
These and various other features, as well as advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings.
DESCRIPTION OF THE DRAWINGSFIG. 1 is a computer network architecture diagram for implementing illustrative embodiments of the invention;
FIG. 2 is a simplified block diagram illustrating a server computer system in the computer network ofFIG. 1, which may be utilized for performing various illustrative embodiments of the present invention;
FIG. 3 is a flow diagram showing an illustrative routine for displaying high resolution content related to the exploration and production of geologic resources on a client system in the computer network ofFIG. 1, according to an illustrative embodiment of the present invention;
FIG. 4 is a computer generated display for selecting a suite of applications in the computer network ofFIG. 1, according to an illustrative embodiment of the present invention; and
FIG. 5 is a computer generated display for selecting an application or other data from a selected suite of applications inFIG. 4 for displaying high resolution images on a client system in the computer network ofFIG. 1, according to an illustrative embodiment of the present invention.
DETAILED DESCRIPTION Illustrative embodiments of the present invention provide for displaying high resolution content generated by a securely hosted application program for the exploration and production of geologic resources on a client system in a client/server computer network. Referring now to the drawings, in which like numerals represent like elements, various aspects of the present invention will be described. In particular,FIG. 1 and the corresponding discussion are intended to provide a brief, general description of a suitable operating environment in which embodiments of the invention may be implemented.
Embodiments of the present invention may be generally employed in a thin client/server computer network100 as shown inFIG. 1. Thenetwork100 includes a thin client workstation102 (hereinafter referred to as client workstation102). In accordance with various illustrative embodiments of the invention, theclient workstation102 may be a conventional desktop or laptop computer including a processor, a memory, and a mass storage device (not shown) for storing and executing an operating system (not shown), and one or more application programs such as a remote accessclient application program104 and a web browser (not shown). In one embodiment of the invention, the remoteaccess client application104 may be an Independent Computing Architecture (“ICA”) protocol client application such as METAFRAME which is marketed by CITRIX SYSTEMS of Ft. Lauderdale, Fla. As is known to those skilled in the art, an ICA protocol client application enables client computers (e.g., “thin” clients) secure access to applications and storage on one or more central server computers. In one embodiment, the operating system may be the UNIX operating system. In an alternative embodiment, the operating system may be either the WINDOWS® XP or WINDOWS® 2000 operating systems, and the web browser may be the INTERENT EXPLORER web browser, all of which are marketed by MICROSOFT CORPORATION of Redmond, Wash.
Theclient workstation102 also includesdual monitors105 and106, each monitor capable of displaying high resolution content, including graphics. For instance, in one embodiment of the invention, each of themonitors105 and106 may be capable of a resolution of at least 1920×1200 and 32 bit (i.e., “true”) color. It should be understood that themonitors105 and106 are not limited to the aforementioned resolution but may be capable of higher resolutions and/or presentation formats known to those skilled in the art.
It will be appreciated that thedual monitors105 and106 may be driven by a dual screen capable graphics card (not shown). For instance, in one embodiment of the invention, the graphics card may be the QUADRO NVS 280 graphics card marketed by NVIDIA CORPORATION of Santa Clara, Calif.
In thenetwork100,client workstation102 is connected to arouter108 which is in communication withfirewalls110 and111. Therouter108 enables secure communications between theclient workstation102 and either virtual private network/intranet114 and/or the Internet116. Thefirewalls110 and111 are in communication withrouter118 which enables communications with load-balanced METAFRAMEservers122 utilized for shared services, load-balancedWeb servers124, and load-balanced METAFRAMEservers126 utilized for customers (i.e., clients). The functionality of routers and firewalls in a client/server computer network is well known to those skilled in the art.
As is known to those skilled in the art, servers may be run in a “load-balanced” configuration in which the servers execute custom algorithms to provide increased capacity, performance, and availability of resources. In a load-balanced server configuration, a user is directed to the server that is least busy servicing other clients based on, for example, the current number of client sessions, per session memory, CPU utilization, disk I/O (input/output), and other system resources. For instance, a user attempting to access a website hosted on one of the load-balancedweb servers124 would be automatically directed to the web server that is least busy. In one embodiment of the invention, load-balancing functionality for theservers122,124, and126 is provided via the WINDOWS Load Balancing Service (“WLBS”) which is incorporated in the WINDOWS 2000 ADVANCED SERVER AND WINDOWS SERVER 2003 ENTERPRISE operating systems, marketed by MICROSOFT CORPORATION of Redmond, Wash.
Each of theservers126 also include a remote accessserver application program120. In one embodiment of the invention, the remote accessserver application program120 may be an Independent Computing Architecture (“ICA”) protocol server application such as METAFRAME which is marketed by CITRIX SYSTEMS of Ft. Lauderdale, Florida. In various embodiments of the invention, the remote accessserver application program120 is operative to display images generated byapplication programs140 stored on theapplication servers128 and129, as high resolution images on theclient workstation102, via the remote accessclient application program104. It will be appreciated that the remote accessserver application program120 may also utilize third-party application programs (not shown) for capturing3D graphics generated by theapplications programs140. In one embodiment, the third-party application programs may include the EXCEEDS suite of application programs, marketed by HUMMINGBIRD LTD. Of Toronto, Canada, for capturing OpenGL images generated by programs running on Linux/UNIX application servers. The remote accessserver application program120 will be described in greater detail below with respect toFIGS. 2-5.
It should be understood that the portion of thenetwork100 between theclient workstation102 and theservers122,124, and126 is known as a “FrontNet.” The FrontNet consists of network addresses that are routable on the Internet116 or network addresses that first undergo Network Address Translation (“NAT”) and are then routed to the Internet116. For theclient workstation102, the FrontNet includes two parts. The first part of the FrontNet is the FrontNet Web. The FrontNet Web is a subnet running in a virtual Local Area Network (“VLAN”) which is connected to a dedicated firewall interface. TheWeb servers124 and all customers connect to the aforementioned subnet. The second part of the FrontNet is the FrontNet Client. The FrontNet Client is a subnet which stands apart from the FrontNet Web VLAN and consists of multiple private VLANs. Each private VLAN includes an individual customer's dedicated servers (i.e., the servers126). The FrontNet Client enables each customer's servers to communicate withInternet116 through a gateway or router, but prevents any customer's servers (i.e., the servers126) from communicating with another customer's servers.
In thenetwork100, theservers122,124, and126 are in communication throughrouter145 with theapplication servers128 and129. Theapplication servers128 and129 host theapplication programs140 which may be accessed and executed by theclient workstation102 utilizing the various components in thenetwork100 including theservers122,124, and126, as will be described in greater detail below with respect toFIGS. 2-5. In the various embodiments of the invention, theapplication programs140 may be related to the exploration and production of geologic resources (e.g., hydrocarbons). In one embodiment, theapplication programs140 may include the OPENWORKS suite of application programs marketed by LANDMARK GRAPHICS CORPORATION (a wholly owned business unit of HALLIBURTON COMPANY) of Houston, Tex.
It should be understood that each of theapplication servers128 and129 may contain a “pool” of multiple servers or compute “nodes.” Each compute node in each pool hosts theapplication programs140. Each pool ofapplication servers128 and129 also includes at least one server for storing and executing a grid engine application130 (i.e., a grid server). In accordance with various embodiments of the invention, thegrid engine applications130 are program modules which perform real-time operations including continually monitoring the compute nodes for processor, memory, network, disk, and input/output utilization. Each requested command to invoke a process (e.g., a command from theclient workstation102 for the executing theapplication programs140 is intercepted by the grid servers in the pool ofapplication servers128 and129, and then based on an algorithm provided by thegrid engine applications130, the request is shunted by the grid servers to the least utilized compute node in its pool. In one embodiment, thegrid engine applications130 may be the GRID ENGINE application program marketed by SUN MICROSYSTEMS, INC. of Santa Clara, Calif. The functionality of thegrid engine applications130 will be discussed in greater detail below with respect toFIGS. 2-5.
It should be understood that the portion of thenetwork100 between theservers122,124, and126 and theservers128 and129 is known as a “MiddletNet.” In thenetwork100, the MiddleNet relays communications between the FrontNet servers (discussed above) and the network attachedstorage132,file servers134,authentication servers136, anddatabase servers138. It should be understood that the MiddleNet is a secure network outside offirewall113. The MiddleNet consists of several VLANs including one VLAN for the sharedservers122 and124 and another VLAN for the customer dedicatedservers126. It will be appreciated that the MiddleNet enables a customer's servers to communicate with theservers132,134,136, and138 and the customer's application server pool, but prevents them from communicating with any other customer's servers.
In thenetwork100, theservers128 and129 are in communication through thefirewall113 and therouter132 with network attachedstorage132,file servers134,authentication servers136, anddatabase servers138. It should be understood that the portion of thenetwork100 comprising thefirewall113, therouter132, and the network attachedstorage132,file servers134,authentication servers136, anddatabase servers138, makeup a secure data infrastructure known as a “BackNet.” It should further be understood that the BackNet accepts only certain defined network traffic, such as domain authentication or data requests. It will be appreciated that the BackNet, as a secure data infrastructure, does not completely trust network traffic from either the FrontNet or the MiddleNet, but does trust network traffic from the MiddleNet more than network traffic from the FrontNet.
It should be understood that theworkstation102 and theservers122,124,126,128,129,134,136, and138 in thenetwork100 for practicing embodiments of the invention may be representative of a number of computer system configurations, including, but not limited to, hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
Referring now toFIG. 2, an illustrative server computer architecture for a load-balanced METAFRAME server126 which may utilized in the various embodiments of the invention, will be described. Theserver126 shown inFIG. 2 includes a central processing unit205 (“CPU”), asystem memory207, including a random access memory209 (“RAM”) and a read-only memory (“ROM”)211, and a system bus212 that couples the memory to theCPU205. A basic input/output system containing the basic routines that help to transfer information between elements within theserver126, such as during startup, is stored in theROM211. Theserver126 further includes amass storage device214 for storing anoperating system210, the remote accessserver application program120, and aregistry file230, which will be described in greater detail below.
Themass storage device214 is connected to theCPU205 through a mass storage controller (not shown) connected to the bus212. Themass storage device214 and its associated computer-readable media provide non-volatile storage for theserver126. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by theserver126.
By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by theserver126.
Theserver126 may operate in a networked environment using logical connections to remote computers, databases, and other devices through a network such as the virtual private network/intranet114 (or alternatively theInternet116 ofFIG. 1). (There is no Item #218 on the drawings and this section should be referring to FIG. #2). Theserver126 may connect to thenetwork100 through anetwork interface unit220 connected to the bus212. Theserver126 may also include an input/output controller222 for receiving and processing input from a number of other devices, including a keyboard and mouse. Similarly, the input/output controller222 may provide output to a display screen, a printer, or other type of output device.
As mentioned briefly above, theoperating system210, remote accessserver application program120, andregistry file230 may be stored in themass storage device214. Theoperating system210 is a program module suitable for controlling the operation of theserver126 including providing support for load-balancing functions (discussed above in the description ofFIG. 1). Briefly discussed above in the description ofFIG. 1, the remote accessserver application program120 is operative to package images generated by a selectedapplication program140 into a remote access application server display protocol and display images generated by theapplication program140 as high resolution images on theclient workstation102, via the remote accessclient application program104. As will be discussed in greater detail below with respect toFIG. 3, the display of high resolution images by the remote accessserver application program120 may be enabled by modifying one or more registry settings in theregistry file230.
It should be appreciated that theservers122,124,128,129,134,136, and138 may include many of the conventional computing components illustrated inFIG. 2 and described above. It should further be appreciated that the aforementioned servers may include other conventional components not illustrated inFIG. 2 but known to those skilled in the art.
Referring now toFIG. 3, anillustrative routine300 will be described illustrating a process for displaying high resolution content generated by a securely hosted application program for the exploration and production of geologic resources on a client system in a client/server computer network. When reading the discussion of the illustrative routine presented herein, it should be appreciated that the logical operations of various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations illustrated inFIG. 3, and making up illustrative embodiments of the present invention described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims attached hereto.
Theillustrative routine300 begins atoperation305 where, in response to receiving a user request for a website hosted on the load-balanced Web server124, theserver124 presents a login screen for receiving credentials for accessing an application program. In one embodiment, the website may present one or more exploration and production (“E&P”) application programs for selection by the user. The E&P application programs may be included in the group of theapplication programs140 which are stored on one of theapplication servers128 or129 in thenetwork100. In particular, a user may access theserver124 by logging into the operating system of theclient workstation102 and launch a web browser for navigating to a login page on the website. It should be understood that according to one embodiment, theservers124 may be configured with Internet Protocol Security (“IPSec”) policies which act as packet filters. As known to those skilled in the art, IPSec is a set of protocols for supporting the secure exchange of packets at the IP or Network layer in the Open System Interconnection (“OSI”) model. It should be appreciated that the IPSec policies provide an additional layer of security, and they are configured so that only specific traffic such as http, https and ICMP are allowed into theserver124.
It will be appreciated that before the traffic (i.e., the URL for the website) from theclient workstation102 reaches theserver124, it may traverses thefirewalls110 and111 which limit the network activity between theclient workstation102 and theserver124. As known to those skilled in the art, the firewalls may be configured to allow specific types of traffic explicitly listed in the firewall rules. It should be appreciated that requested website may require the Secure Sockets Layer (“SSL”) protocol for data encryption which enables the secure communication of data between theclient workstation102 and theserver124. As known to those skilled in the art, URLs requiring SSL connections begin with the https prefix. It should be understood that in one embodiment of the invention, if a URL is entered without the https prefix, the user's unencrypted http session is re-directed into a new, encrypted https session which relies on server-side certificate based authentication.
The routine300 continues fromoperation305 tooperation310 where the website hosted on theservers124 receives logon credentials from a user. In particular, the website may prompt a user to enter a user ID and password for accessing a webpage listing a number of E&P application programs.
The routine300 continues fromoperation310 tooperation315 where theservers124 authenticate the user-supplied logon credentials by utilizing theauthentication servers136. Those skilled in the art should appreciate that, according to one embodiment, theservers124 may leverage the security framework provided by directory services such as Active Directory Services (“ADS”) developed by MICROSOFT CORPORATION of Redmond, Wash., in performing the authentication operation. In particular, theservers124 may utilize the Lightweight Directory Access Protocol (“LDAP”) structure within ADS to authenticate users and build the security context under which a user will operate. The protocol utilized may be the Kerberos protocol. Connectivity between theservers124 and the directory services infrastructure may be conducted through a separate sub-network (i.e., subnet) that is logically and physically isolated from the network connecting theservers124 and the workstation102 (i.e., the end-user). It should be understood that the second subnet may be configured with private IP address space and is typically not directly accessible from the Internet. This subnet is typically not directly accessible from the Internet. The concept of private IP address space is defined in Request for Comments document 1918. It will be appreciated that an additional firewall may be used between theservers124 and the directory services infrastructure (where user account information is stored) thereby providing an additional layer of network security. It will further be appreciated that using directory services, such as ADS, enables theservers124 to utilize a private Domain Name System (“DNS”) namespace thus allowing theservers124 to remain protected from external name servers and preventing other Internet servers from “learning” or “advertising” the DNS domain to un-trusted entities.
The routine300 continues fromoperation315 tooperation320 where theservers124 authorize and customize a web page based on the authenticated logon credentials. In particular, once the user is authenticated, the credentials are passed over to thedatabase servers138 for authorization. In accordance with one embodiment, theservers138 may comprise one or more structured query language (“SQL”) servers. During this process, theservers124 may run SQL commands to validate and match the credentials to a database hosted by theservers138. The SQL commands also customizes the user environment against the database and passes a series of variables via scripts back to theservers124, which then generates the appropriate web page with content the user has access to see. For instance, the content may consist of a home page enabling a user to select from a number of E&P applications, data, catalogs, and maps & graphs. It should be understood that each of the E&P applications may be individualized on a per user basis. It should also be understood that theservers124 utilize the LDAP hierarchy within the directory services (discussed above in operation315) to perform the personalization of the “look & feel” of the customized web page based on user access, permissions, and entitlements which may be set by a system administrator. It will be appreciated that the website hosted by theservers124 for the aforementioned logon, authentication, and authorization operations may have multiple security levels according to a role-based security structure. For instance, a security level hierarchy for a business organization may include a site administrator level (for a domain or enterprise administrator), a workspace manager level (for a webmaster, domain administrator, or team leader), a group manager level (for a business unit manager/supervisor), an editor level (for end users who can create and add content), and a user level (for end users who have read access only).
The routine300 continues fromoperation320 tooperation325, where theservers124 present an interface for accessing a list of available application programs. In particular, once a user sees what content is available for use, the user may select an application from the list of available applications. An illustrative interface for selecting an E&P application program is shown inFIGS. 4-5, which will be described in greater detail bellow.
The routine300 continues fromoperation325 tooperation330 where theservers124 receive a selection of an application program presented in the list of available application programs. The routine300 then continues fromoperation330 tooperation335 where, in response to receiving a selected application program, an application launch script is invoked on theservers124. In particular, the application launch script may generate a login prompt on theclient workstation102 for accessing the environment where the selected application is being hosted (i.e., theapplication servers128 and129). In various embodiments, theapplication servers128 and129 may comprise a WINDOWS® or, alternatively, a LINUX/UNIX environment, for hosting E&P application programs. For instance, if the selected application program is a Linux/UNIX executable program, the launch script may launch the EXCEED® suite of application programs which in turn would launch the selected application program via thegrid engine application130 on an available compute node (i.e., application server). If, on the other hand, the selected application program is a WINDOWS® executable program, the launch script may launch the application directly on the load-balanced servers126. It should be understood that after the login prompt is generated, the remote accessclient application program104 is invoked on theclient workstation102. As discussed above with in the description ofFIG. 1, the remote accessclient application program104 may comprise the CITRIX client for the WINDOWS® operating system.
The routine300 continues fromoperation335 tooperation340 where theservers124 establish a connection with one of the load-balanced METAFRAME servers126. It should be appreciated that both theservers124 and126 are “dual-homed.” Moreover, network traffic between theservers126 and any of compute nodes in the network100 (i.e., theapplication servers128 and129) is separate from the remote server application program traffic between theservers126 and theclient workstation102.
Once the connection is established, network traffic between theclient workstation102 and aserver126 is encrypted and may be sent using a remote access application server display protocol such as the ICA protocol. It should be appreciated that for security purposes, IPSec policies may be applied on theservers126 to restrict the type of network traffic communicated between theclient workstation102 and theservers126. Before a user's session is accepted and serviced by aserver126, the METAFRAME servers126 (also known as a server farm) are contacted by the remote access client application program (i.e., the ICA client application). As discussed above in the description ofFIG. 1, theservers126 service client requests by load balancing. For instance, each of theservers126 may be designed to service 10 to 15 concurrent users. Moreover, in accordance with the various embodiments of the invention and as will be discussed in greater detail below, each of theservers126 is configured with custom memory settings to accommodate high display resolutions on dual screen monitors associated with theclient workstation102.
The routine300 continuesform operation340 tooperation345 where a load-balanced METAFRAME server126 authenticates the user who previously selected the application program inoperation330 and335, by receiving a set of credentials for accessing theapplication servers128 and129. Once the credentials are supplied, they are validated by an information service such as the LFNUX Network Information Service (“NIS”). Then the request for the user-selected application is submitted to thegrid engine applications130 on theapplication servers128 and129.
The routine300 continues fromoperation345 tooperation350 where thegrid engine applications130 determine a least utilized compute node (i.e., a least utilized application server among theservers128 and129) for executing the user-selected application program. As discussed above in the description ofFIG. 1, thegrid engine applications130 functionality include continually monitoring the compute nodes for processor, memory, network, disk, and input/output utilization. It should be understood that in the embodiments of the invention, each requested command to invoke a process (such as running an application) is intercepted by a designated grid master server in theservers128 and129, and then based on an algorithm provided by thegrid engine applications130, the requested command is shunted to the least utilized compute node in its pool. For instance, the request may be shunted to the third compute node in a pool of twenty compute nodes. It should be appreciated that separate grid queues may be defined by group to control which applications and related processes will be executed on which compute nodes. It should also be appreciated that the compute nodes may belong to multiple grid groups. After the user-selected application is executed on the selected compute node, the compute node communicates directly with the appropriate load-balanced METAFRAME server126 and rasterizes images generated by the application on theMETAFRAME server126.
The routine300 then continues fromoperation350 tooperation355 where theMETAFRAME server126 packages the images generated by the application running on the selected compute node into a remote access server application protocol such as the CITRIX ICA protocol. The routine300 then continues fromoperation355 tooperation360 where theMETAFRAME server126 enables the images to be displayed as high resolution images on theclient workstation102 via the remote access (e.g., ICA)client application program104. In particular,METAFRAME server126 enables the display of high resolution images as a result of user-modified memory parameter settings in the registry file230 (seeFIG. 2) for terminal services utilized on theclient workstation102 to provide high resolution support for at least 1920 by 1200 resolution color monitors capable of displaying at least 32 bit or true color. In one embodiment of the invention, the terminal services may be provided by the WINDOWS Terminal Services application (provided in the WIDNOWS 2000 ADVANCED SERVER and WINDOWS SERVER 2003 operating systems). It should be understood that, according to one embodiment, high resolution support may be enabled by running a script file on theMETAFRAME servers126 to add certain settings in the registry which will allow the terminal services to use more memory. The modified settings in the registry enable the remote access server application program (e.g., CITRIX ICA server) to use the additional memory and generate high resolution images in a window generated by the remote access client application program (e.g., CITRIX ICA client) for display on one or more monitors associated with a client workstation. The routine300 then ends.
In accordance with one embodiment, the memory necessary for displaying high resolution images in an ICA client session may be determined by the following formula:
where the ICA connection color depth may include 4 bit color, 8 bit color 16 bit or “high” color, and24 bit or “true” color and where 8192 kilobytes represents the conventional memory limit for a terminal services application.
Large memory support may be configured in the
METAFRAME server126 by allocating memory from a kernel global memory pool which is larger than the maximum memory allocated in a logical video buffer for the terminal services application. For instance, large memory support may be enabled in CITRIX by adding and changing/modifying large memory settings “Twconfig.exe” and “Keysync.exe.” Twconfig.exe is a CITRIX command line utility that allows for CITRIX configuration outside of the CITRIX Command Console. Keysync.exe is a WINDOWS® command that inserts new keys into the registry and syncs the different operating system shells. Memory parameters and illustrative settings for Twconfig.exe and Keysync.exe are shown below:
| |
| |
| Twconfig.exe |
| New parameters: |
| /LARGEMEMSIZE:nnn - Maximum special large memory size |
| (in kilobytes) to use for |
| each session's graphics. |
| /LARGEMEMNUM:nnn - Number of sessions that can use special |
| large memory |
| Example: |
| Twconfig/LargeMemSize: 26500/LargeMemNum:3 |
| Keysync.exe |
| Example: |
| Keysync MaxLargeLVBMemSize/value: 27136000 |
| Keysync MaxLargeLVBMemNum/value: 3 |
| |
Referring now toFIG. 4, a computer generated display of awebsite400 for selecting an application program generated by the load-balanced Web servers124, is shown in accordance with an illustrative embodiment of the invention. Thewebsite400 includes a list ofapplications410 which may be selected by a user, such as the “Emerald City Linux”application420. As discussed above inFIG. 3, the applications in thelist410 are stored on and executed from theapplication servers128 and129. Furthermore, the selection of an application from thelist410 invokes a launch script for initiating a connection between theMETAFRAME server126 and a least utilized node among theapplication servers128 and129 for executing the selected application program.
Referring now toFIG. 5, a computer generated display of amenu500 for selectingProjects510,Data520,Applications530, andUtilities540 associated with the suite of applications420 (inFIG. 4), after theapplication suite420 has been selected. Themenu500 is displayed on theclient workstation102 via the remote accessclient application program104 in a seamless window. It should be understood that in accordance with one embodiment of the invention, the window displaying themenu500 may be seamlessly displayed across both of themonitors105 and106 associated with theclient workstation102.
Based on the foregoing, it should be appreciated that the various embodiments of the invention include a methods, systems, and computer-readable media for displaying high resolution content related to the exploration and production of geologic resources in a thin client computer network. It will be apparent by those skilled in the art that various modifications or variations may be made in the present invention without departing from the scope or spirit of the invention. Other embodiments of the present invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein.