WO2007100942A2 - Procédés et systèmes de fourniture d'accès à un environnement informatique fourni par une machine virtuelle fonctionnant en exécution d'un hyperviseur dans une session de services de terminal - Google Patents

Procédés et systèmes de fourniture d'accès à un environnement informatique fourni par une machine virtuelle fonctionnant en exécution d'un hyperviseur dans une session de services de terminal Download PDF

Info

Publication number
WO2007100942A2
WO2007100942A2 PCT/US2007/060895 US2007060895W WO2007100942A2 WO 2007100942 A2 WO2007100942 A2 WO 2007100942A2 US 2007060895 W US2007060895 W US 2007060895W WO 2007100942 A2 WO2007100942 A2 WO 2007100942A2
Authority
WO
WIPO (PCT)
Prior art keywords
machine
client
virtual machine
computing environment
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2007/060895
Other languages
English (en)
Other versions
WO2007100942A8 (fr
WO2007100942A9 (fr
Inventor
Steve Parry
Tony Low
Richard Croft
Richard Mazzaferri
Paul Ryman
Nick Bissett
Michael Wookey
Donovan Hackett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/552,787 external-priority patent/US8051180B2/en
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of WO2007100942A2 publication Critical patent/WO2007100942A2/fr
Publication of WO2007100942A9 publication Critical patent/WO2007100942A9/fr
Publication of WO2007100942A8 publication Critical patent/WO2007100942A8/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/328Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the presentation layer [OSI layer 6]

Definitions

  • the invention generally relates to providing access to computing
  • the invention relates to methods and systems
  • Desktop deployment strategies such as personal desktop deployment or
  • Each desktop PC is installed on the user's
  • PCs age rapidly and are usually replaced on a
  • a server-based computing model solves many of the desktop PC
  • each server hosts a number of
  • the thin client/server-based computing model is subject to these same limitations
  • client machines may not even be aware
  • the virtual machine may be relocated from one server machine to another server.
  • the client machine may not know that a virtual machine
  • a user of the client machine may need to find and gain access to that server machine and perform a directory listing of
  • problems of current desktop deployment strategies are:
  • An array of inexpensive physical machines may be partitioned into
  • machines may be servers such as rack-mount servers, blade servers, or stand ⁇
  • the physical machines may also be workstations or workstation
  • the hardware lifecycle may be extended by increasing
  • machines are configured to run multiple copies of one
  • the virtual machine can be any type of computing resource
  • request is directed to the selected, configured virtual machine and a remote
  • client machine Devices such as CD-ROM drives, floppy drives, USB drives
  • a deployment system may manage a pool of virtual machines (a machine
  • virtual machine management component may provide management functionality. Executing virtual machines may be migrated from one physical machine to
  • Inactive virtual machines may be suspended to
  • machines may be resumed prior to users requiring access. This can be done
  • Performance requirements of the requested resource may be considered
  • financial analysis package may require twice as many CPU resources as a
  • machine providing the financial analysis package may execute on a physical
  • virtual machines may be relocated to other available physical machines to ensure
  • Each user is provided a separate virtual machine environment, which provides increased flexibility in that each user may run any version or configuration of an operating system independently of other users and also
  • Virtual machines also provide
  • the operating system image may be incompatible - which also
  • the request including an
  • One of a plurality of execution machines is identified, the identified execution machine providing a
  • the hypervisor provides hardware resources required by the identified virtual machine.
  • the broker machine launches the session
  • the broker machine launches
  • the session management component in a terminal services session executing on
  • one of the plurality of virtual machines is the broker machine.
  • one of the plurality of virtual machines is the broker machine.
  • virtual machines is identified responsive to a request by the client for a type of
  • the identified virtual machine is launched in the
  • hypervisor In another embodiment, a connection is established between the
  • an apparatus configured to hardware resources required by the computing environment, an apparatus
  • the identification component is in communication with
  • a virtual machine management component and receives an identification of one
  • hypervisor executing in a terminal services session and providing a requested
  • the execution component provisions the identified
  • the management component establishes a connection between
  • a virtual machine service component executing in the
  • hypervisor receives configuration information associated with the client machine.
  • the virtual machine service component executes in the
  • the identification is associated with the client machine.
  • the identification is associated with the client machine.
  • the identification component identifies one of a plurality of
  • the identification component launching the identified virtual
  • the identification component receives an identification
  • identification component comprises a transceiver receiving an identification by a
  • the hypermedium page displayed by a network browser includes the
  • a hyperlink identifying a desired computing resource.
  • a client agent is started on the client
  • the client agent creates, via a terminal services session, a
  • the client agent receives data from the virtual machine
  • the network browser starts the client agent upon a
  • the client agent is registered with the network
  • a virtual machine is launched.
  • a server agent is started on the virtual machine.
  • data received from the virtual machine is displayed in a display
  • the hypermedium page displayed by a network browser comprises a
  • the client machine a network server, and a client agent.
  • the client machine is a network server, and a client agent.
  • hypermedium page including a hyperlink identifying a desired computing
  • the network server transmits, in response to selection of said hyperlink, a network configuration file to said client machine, said network
  • the client agent receives data for display from the virtual
  • the client agent displays data received from said
  • the display window is located within the boundaries of the
  • the display window is located
  • the hyperlink configuration file comprises a resource
  • session includes the step of receiving a request from a client system for an
  • a request to access one of the computing environments is received from the client system.
  • a connection is
  • the virtual machine executed by a hypervisor executing in the terminal services session
  • the accessed data transmitted
  • user interface window representing computing environments available to a user
  • the accessed data transmitted
  • the client system and the virtual machine is established, via the terminal services
  • user credentials are received from the client system.
  • the accessed data are transmitted to the client system
  • information is gathered about the client system and a
  • the data set is generated from the gathered information.
  • accessed data are transmitted to the client system indicating, responsive to the
  • the accessed data are transmitted to the client system
  • a web server receives a request from a client system
  • a page template is retrieved from a persistent storage, the web
  • server creates a page describing a display of computing environment images
  • a network including a client system and a plurality of
  • a server includes a broker module, a
  • the broker module accesses collected
  • the transmitter sends accessed data to the client system indicating to
  • the client system each computing environment determined to be available to the client system
  • the receiver receives a request to access one of the available
  • the transceiver provides a connection between the client system and a virtual machine providing the requested computing
  • the virtual machine executed by a hypervisor executing in a
  • terminal services session provided by an operating system executing on one of a
  • the receiver receives user credentials from the client
  • the server further comprises a database storing
  • the broker module determines for the transaction.
  • the server further comprises an output display
  • creation engine creating output displays indicating each computing environment
  • creation engine creates a web page describing a display of the computing
  • transceiver provides a connection between the client system and a virtual
  • FIG. 1 is a block diagram of one embodiment of an environment in which a
  • client machine accesses a computing resource provided by a remote machine
  • FIGs. 1A and 1 B are block diagrams depicting embodiments of typical
  • FIG. 2A is a block diagram of a system for providing access to a resource
  • FIG. 2B is a block diagram of one embodiment of a system in which a
  • client machine can initiate execution of an application program for determining
  • FIG. 2C is a block diagram of an embodiment in which a client machine
  • FIGs. 3A, 3B, and 3C are block diagrams of embodiments of systems of
  • FIG. 3D is a block diagram of one embodiment of a system in which a
  • client machine can access a resource from a resource neighborhood web page
  • FIG. 3E is a block diagram of one embodiment of a system in which a
  • FIG. 4 is a block diagram of one embodiment of a resource neighborhood
  • FIG. 5 is a block diagram of a computing embodiment in which a client
  • FIG. 6A is a screen shot of an embodiment of a display of a client machine
  • FIG. 6B is a screen shot of another embodiment of a display screen of a
  • FIG. 7A is a block diagram of an embodiment of a network providing
  • FIG. 7B is a block diagram depicting a more detailed embodiment of a
  • FIG. 8 is a flowchart depicting one embodiment of a process for providing
  • FIG. 9 is a flow diagram depicting one embodiment of a process for
  • FIG. 10 is a flow diagram depicting one embodiment of a process to
  • FIG. 11 is a block diagram depicting an embodiment of a machine farm
  • FIG. 12 is a block diagram depicting one embodiment of a virtual machine
  • FIG. 13 is a block diagram depicting one embodiment of a session
  • FIG. 14 is a block diagram depicting one embodiment of a system in which
  • a drive associated with the client machine 10 is made available to a computing
  • FIG. 15A is a block diagram depicting one embodiment of a client machine
  • FIG. 15B is a block diagram depicting one embodiment of a system for
  • FIG. 15C is a block diagram depicting one embodiment of a session login
  • FIG. 16A is a flow diagram depicting one embodiment of the steps to be
  • FIG. 16B is a flow diagram depicting one embodiment of a process to
  • FIG. 16C is a flow diagram depicting one embodiment of the steps taken
  • FIG 16D is a flow diagram depicting one embodiment of the steps taken to
  • FIG. 17 is a block diagram depicting one embodiment of a system in which
  • a remote machine authenticates the user of a client machine
  • FIG. 18 is a flow diagram depicting one embodiment of the steps taken to
  • FIG. 19 is a block diagram depicting one embodiment of a client machine
  • FIG. 20 is a flow diagram depicting one embodiment of steps taken by a
  • FIG. 21 is a block diagram depicts one embodiment of a plurality of
  • FIG. 22A is a flow diagram depicting one embodiment of the steps taken
  • FIG. 22B is a flow diagram depicting one embodiment of the steps taken
  • FIG. 23 is a flow diagram depicting another embodiment of the steps
  • FIG. 24 is a flow diagram depicting one embodiment of the steps taken to
  • FIG. 25 is a block diagram depicting an embodiment of a remote machine
  • FIG. 26 is a block diagram depicting one embodiment of a client machine
  • FIG. 27 is a block diagram depicting one embodiment of communication
  • FIG. 28 is a block diagram depicting one embodiment of a client machine
  • FIG. 29 is a flow diagram depicting one embodiment of the steps taken to
  • FIG. 30 is a flow diagram depicting one embodiment of the steps taken
  • FIG 31 is a block diagram depicting an embodiment of a system
  • FIG. 32 is a block diagram depicting another embodiment of a system
  • FIG. 33 is a block diagram depicting one embodiment of an architecture
  • FIG. 34 is a block diagram depicting another embodiment of an
  • FIG. 35 is a block diagram depicting another embodiment of an
  • FIG. 36 is a block diagram depicting another embodiment of an
  • FIG. 37 is a block diagram depicting one embodiment of a client machine
  • FIG. 38 is a block diagram depicting a client machine connected to more
  • FIG. 39 is a flow diagram depicting one embodiment of the steps taken to
  • FIG. 40 is a flow diagram depicting one embodiment of the steps taken to
  • FIG. 41 is a flow diagram depicting one embodiment for enabling
  • FIG. 42 is a block diagram depicting one embodiment of an agent
  • FIG. 43 is a block diagram depicting one embodiment of a system for
  • FIG. 44 is a flow diagram depicting one embodiment of the steps taken in
  • FIG. 45 is a block diagram of a system for providing a client with a reliable connection to a host service according to an embodiment of the invention.
  • FIG. 46 is a block diagram of a system for providing a client with a reliable connection to a host service according to another embodiment of the invention.
  • FIG. 47 depicts communications occurring over a network according to an embodiment of the invention.
  • FIG. 48 depicts communications occurring over a network according to another embodiment of the invention.
  • FIG. 49 depicts a process for encapsulating a plurality of secondary protocols within a first protocol for communication over a network according to an embodiment of the invention
  • FIG. 50 is a block diagram of an embodiment of a computer system to maintain authentication credentials in accordance with the invention
  • FIG. 51 is a flow diagram of the steps followed in an embodiment of the computer system of FIG. 5 to maintain authentication credentials during a first communication session in accordance with the invention
  • FIG. 52 is a flow diagram of the steps followed in an embodiment of the computer system of FIG. 50 to maintain authentication credentials during a second communication session following the termination of the first communication session of FIG. 53A in accordance with the invention
  • FIG. 53 is a block diagram of an embodiment of a computer system to maintain authentication credentials in accordance with another embodiment of the invention.
  • FIG. 54 is a flow diagram of the steps followed in an embodiment of the computer system of FIG. 53 to maintain authentication credentials during a first communication session in accordance with the invention
  • FIG. 55 is a flow diagram of the steps followed in an embodiment of the computer system of FIG. 53 to maintain authentication credentials during a second communication session following the termination of the first communication session of FIG. 53 in accordance with the invention
  • FIG. 56 is a flow diagram of the steps followed in an embodiment of the computer system of FIG. 53 to maintain authentication credentials during a second communication session following the termination of a second communication channel of the first communication session of FIG. 53 in accordance with the invention
  • FIG. 57 is a block diagram of a system to maintain authentication credentials and provide a client with a reliable connection to a host service according to an embodiment of the invention
  • FIG. 58 is a block diagram of a system to maintain authentication credentials and provide a client with a reliable connection to a host service according to another embodiment of the invention.
  • FIG. 59 is a block diagram of a system to maintain authentication credentials and provide a client with a reliable connection to a host service according to another embodiment of the invention.
  • FIG. 60 is a block diagram of a system to maintain authentication credentials and provide a client with a reliable connection to a host service according to another embodiment of the invention.
  • FIG. 61 is a block diagram of a system for providing a client with a reliable connection to a host service and further including components for reconnecting the client to a host service according to an embodiment of the invention
  • FIG. 62 is a block diagram of an embodiment of a system for providing a client with a reliable connection to a host service and further including components for reconnecting the client to a host service;
  • FIG. 63 is a block diagram of an embodiment of FIG. 61 further including components for initially connecting the client to a host service;
  • FIG. 64 is a block diagram of the system of FIG. 62 further including components for initially connecting the client to a host service and to maintain authentication credential according to an embodiment of the invention
  • FIG. 65 is a flow diagram of a method for network communications according to an embodiment of the invention.
  • FIG. 66 is a flow diagram of a method for reconnecting the client to the host services
  • FIGS. 67-69 are flow diagrams of a method for connecting a client to a plurality of host services according to an embodiment of the invention.
  • FIG. 70 is a flow diagram of a method for providing a client with a reliable connection to host services and for reconnecting the client to the host services according to an embodiment of the invention
  • FIGS. 71 -72 are flow diagrams of a method for reconnecting a client to host services according to an embodiment of the invention.
  • FIG. 73 is a conceptual block diagram of an embodiment of client software and server software
  • FIG. 74 is a flow chart of an embodiment of a method for monitoring network performance
  • FIG. 75 is a flow chart of an embodiment of a method of operation of the server software
  • FIG. 76 is a flow chart of an embodiment of a method of generating sub- metrics by the client
  • FIG. 77 is a flow chart of an embodiment of a method of generating sub- metrics by the client
  • FIG. 78 is a flow chart of an embodiment of a method of generating sub- metrics by the server
  • FIG. 79 is a schematic diagram depicting a networked client-server computing system
  • FIG. 80 is a flow chart depicting a method for connecting a client machine to disconnected application sessions
  • FIG. 81 is a flow chart depicting on embodiment a method for connecting the client machine to active application sessions
  • FIG. 82 is a schematic diagram depicting one embodiment of a client machine in communication with several remote machines
  • FIG. 83 is a flow diagram depicting one embodiment of steps taken in a method to connect a user of a client machine to a computing environment
  • FIG. 84 is a flow diagram depicting an embodiment of steps taken in a method to connect a user of a client machine to a computing environment in response to selection of a graphical user interface element;
  • FIG. 85 is a block diagram depicting one embodiment of a remote machine able to connect the client machine to an application session
  • FIG. 86 is a block diagram of an embodiment of a system for connecting a client machine to an application session responsive to application of a policy
  • FIG. 87 is a flow diagram depicting the steps taken in one method to connect a client machine to an application session responsive to application of a policy
  • FIG. 88 is a block diagram depicting one embodiment of a system for providing, by a virtual machine, access to a computing environment
  • FIG. 89A is a block diagram depicting one embodiment of a storage device and a computing device
  • FIG. 89B is a flow diagram depicting one embodiment of the steps taken in a method for providing access to a computing environment on a computing device via a storage device;
  • FIG. 9OA is a block diagram depicting one embodiment of a mobile computing device
  • FIG. 9OB is a flow diagram depicting one embodiment of the steps taken in a method for providing a portable computing environment by a mobile computing device
  • FIG. 91 A is a block diagram of one embodiment of a mobile computing device and a computing device
  • FIG. 91 B is a flow diagram depicting depicts one embodiment of the steps taken in a method for providing access to a computing environment on a computing device via a mobile computing device;
  • FIG. 92A is a block diagram depicting one embodiment of a mobile computing device and a computing device comprising a computing environment selector;
  • FIG. 92B is a flow diagram depicting an embodiment of the steps taken in a method for establishing a computing environment on a computing device via a mobile computing device;
  • FIG. 93A is a block diagram depicting one embodiment of a mobile computing device connecting to a docking station;
  • FIG. 93B is a block diagram depicting one embodiment of a docking station connecting a mobile computing device and a computing device;
  • FIG. 93C is a block diagram depicting one embodiment of a mobile computing device and computing device having a docking mechanism
  • FIG. 93D is a flow diagram depicting one embodiment of the steps taken in a method of providing to a mobile computing device one or more hardware resources;
  • FIG. 94A is a block diagram depicting one embodiment of a mobile computing device having a plurality of processors
  • FIG. 94B is a flow diagram depicting one embodiment of the steps taken in a method for switching, by a mobile computing device, between use of multiple processors;
  • FIG. 95 is a block diagram depicting one embodiment of a system for providing to a first client agent, via a second client agent on a first remote machine, output data generated by a resource executing in a virtual machine provided by a second remote machine;
  • FIG. 96 is a block diagram depicting an embodiment of a system for providing to a first client agent, via a second client agent on a first remote machine, output data generated by a resource executing in a virtual machine provided by a second remote machine; and
  • FIG. 97 is a block diagram depicting one embodiment of a system for identifying, by a coordinator machine, a worker machine providing, via a virtual machine, access to a computing environment.
  • FIG. 1 a block diagram of one embodiment of an
  • a remote machine 30 such as remote machine 30, 30', 30", or 30"'
  • remote machine 30 accepts connections from
  • the system may include
  • the logical group of remote machines may be referred to as
  • machine farm 38 a "server farm” or “machine farm,” indicated in FIG. 1A as machine farm 38.
  • the remote machines 30 may be geographically
  • the group of remote machines 30 logically grouped as a
  • machine farm 38 may be interconnected using a wide-area network (WAN) connection, metropolitan-area network (MAN) connection, a local area network
  • WAN wide-area network
  • MAN metropolitan-area network
  • LAN local area network
  • LAN local area network
  • SAN storage-area network
  • public network such as the Internet.
  • a machine farm 38 may include remote machines 30 physically
  • a machine farm 38 may be any type of network (LAN) connection or some form of direct connection.
  • LAN network
  • a machine farm 38 may
  • a centralized service may provide management for machine farm 38.
  • one or more remote machines 30 elect a particular remote
  • remote machine 30 may be referred to as a management server, management
  • the management node 30 may gather and store
  • an administrator designates one or more remote machines 30 to provide management functionality for machine farm 38.
  • management of the machine farm 38 may be de-centralized.
  • one or more remote machines 30 comprise components,
  • one or more remote machines 30 provide functionality for management of dynamic data, including techniques
  • machines 30 include communications capabilities to enable the one or more
  • remote machines 30 to interact with one another to share responsibility for
  • Each remote machine 30 may communicate with a
  • persistent store and, in some embodiments, with a dynamic store.
  • Persistent store may be physically implemented on a disk, disk farm, a
  • RAID redundant array of independent disks
  • writeable compact disc or any combination thereof
  • a single physical device may
  • the persistent store maintains static data associated with each remote machine
  • the persistent store may maintain the
  • LDAP Lightweight Directory Access Protocol
  • the persistent store stores server data in an ODBC-
  • the data stored by the persistent store may be replicated for reliability
  • the database itself may be replicated using
  • both physical and logical replication may be used
  • the remote machines 30 store "static" data, i.e., data
  • the remote machines 30 may develop a logical, common
  • the dynamic store may be physically implemented in the local memory of
  • memory can be random access memory, disk, disk farm, a redundant array of
  • RAID independent disks
  • data stored in the dynamic store are data that are typically
  • runtime data are the current workload level for each of the remote
  • remote machine 30 and licensing information.
  • the dynamic store comprises one or more tables
  • the dynamic store (i.e., the collection of all record tables) can be embodied in various ways.
  • the dynamic store is centralized; that is, all runtime data are stored in the memory of one remote machine 30 in the machine farm 38. That server operates in a manner similar to the management node described above, that is, all other remote machines 30 in the machine farm 38 communicate with the server acting as the centralized data store when seeking access to that runtime data.
  • each remote machine 30 in the machine farm 38 keeps a full copy of the dynamic store.
  • each remote machine 30 communicates with every other remote machine 30 to keep its copy of the dynamic store up to date.
  • each remote machine 30 maintains its own runtime data and communicates with every other remote machine 30 when seeking to obtain runtime data from them.
  • a remote machine 30 attempting to find an application program requested by the client machine 10 may communicate directly with every other remote machine 30 in the machine farm 38 to find one or more servers hosting the requested application.
  • a collector point is a server that collects run-time data.
  • Each collector point stores runtime data collected from certain other remote machines 30in the machine farm 38.
  • Each remote machine 30 in the machine farm 38 is capable of operating as, and consequently is capable of being designated as, a collector point.
  • each collector point stores a copy of the entire dynamic store.
  • each collector point stores a portion of the dynamic store, i.e., it maintains runtime data of a particular data type.
  • the type of data stored by a remote machine 30 may be predetermined according to one or more criteria. For example, remote machines 30may store different types of data based on their boot order. Alternatively, the type of data stored by a remote machine 30 may be configured by an administrator using administration tool 140. In these embodiments, the dynamic store is distributed among two or more remote machines 30in the machine farm 38.
  • Remote machines 30 not designated as collector points know the remote machines 30 in a machine farm 38 that are designated as collector points.
  • a remote machine 30 not designated as a collector point communicates with a particular collector point when delivering and requesting runtime data. Consequently, collector points lighten network traffic because each remote machine 30 in the machine farm 38 communicates with a single collector point remote machine 30, rather than with every other remote machine 30, when seeking to access the runtime data.
  • the machine farm 38 can be heterogeneous, that is, one or more of the remote machines 30 can operate according to one type of operating system platform (e.g., WINDOWS NT, manufactured by Microsoft Corp. of Redmond, Washington), while one or more of the other remote machines 30 can operate according to another type of operating system platform (e.g., Unix or Linux). Additionally, a heterogeneous machine farm 38 may include one or more remote machines 30 operating according to a type of operating system, while one or more other remote machines 30 execute one or more types of hypervisors rather than operating systems. In these embodiments, hypervisors may be used to emulate virtual hardware, partition physical hardware, virtualize physical hardware, and execute virtual machines that provide access to computing environments.
  • hypervisors may be used to emulate virtual hardware, partition physical hardware, virtualize physical hardware, and execute virtual machines that provide access to computing environments.
  • Hypervisors may include those manufactured by VMWare, Inc., of Palo Alto, California; the Xen hypervisor, an open source product whose development is overseen by XenSource, Inc., of Palo Alto; the VirtualServer or virtual PC hypervisors provided by Microsoft or others.
  • a hypervisor executes on a machine executing an operating system.
  • a machine executing an operating system and a hypervisor may be said to have a host operating system (the operating system executing on the machine), and a guest operating system (an operating system executing within a computing resource partition provided by the hypervisor).
  • a hypervisor interacts directly with hardware on a machine, instead of executing on a host operating system.
  • the hypervisor may be said to be executing on "bare metal," referring to the hardware comprising the machine.
  • Remote machines 30 may be servers, file servers, application servers, appliances, network appliances, gateways, application gateways, gateway servers, virtualization servers, deployment servers, or firewalls.
  • the remote machine 30 may be an SSL VPN server.
  • the remote machine 30 may be an application acceleration appliance.
  • the remote machine 30 may provide functionality including firewall functionality, application firewall functionality, or load balancing functionality.
  • the remote machine 30 comprises an appliance such as one of the line of appliances manufactured by the Citrix Application Networking Group, of San Jose, CA, or Silver Peak Systems, Inc., of Mountain View, CA, or of Riverbed Technology, Inc., of San Francisco, CA, or of F5 Networks, Inc., of Seattle, WA, or of Juniper Networks, Inc., of Sunnyvale, CA.
  • a remote machine 30 comprises a remote authentication dial-in user service, referred to as a RADIUS server.
  • remote machines 30 may have the capacity to function as a master network information node monitoring resource usage of other machines in the farm 38.
  • a remote machine 30 may provide an Active Directory.
  • Remote machines 30 may be referred to as execution machines, intermediate machines, broker machines, intermediate broker machines, or worker machines.
  • remote machines 30 in the machine farm 38 may be stored in high-density racking systems, along with associated storage systems, and located in an enterprise data center.
  • consolidating the machines in this way may improve system manageability, data security, the physical security of the system, and system performance by locating machines and high performance storage systems on localized high performance networks. Centralizing the machines and storage systems and coupling them with advanced system management tools allows more efficient use of machine resources.
  • the client machines 10 may also be referred to as endpoints, client nodes, clients, or local machines.
  • the client machines 10 have the capacity to function as both client machines seeking access to resources and as remote machines 30 providing access to remotely hosted resources for other client machines 10.
  • remote machines 30 may request access to remotely-hosted resources.
  • the remote machines 30 may be referred to as client machines 10.
  • the client machine 10 communicates directly with one
  • the client machines 30 in a machine farm 38.
  • the client machines 30 in another embodiment, the
  • client machine 10 executes an application to communicate with the remote
  • the client machine 10 communicates with one of the remote machines 30 via a gateway,
  • the client machine 10 such as an application gateway.
  • the client machine 10 such as an application gateway.
  • 10 can, for example, request access to or execution of various resources
  • remote machines 30 such as applications, computing environments,
  • the client machine 10 can communicate with the client machine 10 via the communications link 150.
  • the communications link 150 may be synchronous or asynchronous and
  • LAN connection may be a LAN connection, MAN connection, or a WAN connection. Additionally,
  • communications link 150 may be a wireless link, such as an infrared channel or
  • the communications link 150 may use a transport layer protocol
  • HTTP HyperText Protocol
  • XML Extensible Markup Language
  • XML Extensible Markup Language
  • communications link 150 uses a Wi-Fi protocol.
  • the Wi-Fi protocol In still another embodiment, the
  • communications link 150 uses a mobile internet protocol.
  • the communications link 150 may provide communications functionality
  • links e.g., T1 , T3, 56 kb, X.25, SNA, DECNET), broadband connections (ISDN,
  • Connections can be established using a
  • ARCNET ARCNET
  • SONET SONET
  • SDH Fiber Distributed Data Interface
  • FDDI Fiber Distributed Data Interface
  • RS232 IEEE
  • IEEE 802.11 IEEE 802.11 a, IEEE 802.11 b, IEEE 802.11g, CDMA, GSM, WiMax and
  • the remote machine 30 In one embodiment, the remote machine 30
  • gateway any type and/or form of gateway or
  • tunneling protocol such as Secure Socket Layer (SSL) or Transport Layer
  • TLS Citrix Gateway Protocol manufactured by Citrix Systems
  • the computer system 100 may include a network
  • network card card bus network adapter, wireless network adapter, USB network
  • the computer system 100 may support installation devices, such as a
  • floppy disk drive for receiving floppy disks such as 3.5-inch, 5.25-inch disks or
  • ZIP disks a CD-ROM drive, a CD-R/RW drive, a DVD-ROM drive, network
  • the computer system 100 may also include a storage device of any type
  • the storage device storing application software programs.
  • the storage device
  • the storage device comprises any type and form of
  • portable storage medium or device such as a compact flash card, a micro hard
  • storage devices may be generally referred to by a variety of names, including
  • thumb drive thumb key
  • vault drive USB drive
  • USB stick any of
  • the installation devices or mediums could also provide a storage medium or
  • the client machine 10 includes a client agent which
  • a client agent with a user interface is a Web Browser (e.g., INTERNET EXPLORER
  • the client agent can
  • a remote display protocol any type of protocol, such as a remote display protocol, and it can be, for
  • an HTTP client agent for example, an HTTP client agent, an FTP client agent, an Oscar client agent, a
  • ICA Independent Computing Architecture
  • RDP Desktop Protocol
  • the client agent is configured to
  • the client may connect to the remote machine 30.
  • the client may connect to the remote machine 30.
  • the client may connect to the remote machine 30.
  • the client may connect to the remote machine 30.
  • machine 10 includes a plurality of client agents, each of which may communicate
  • the remote control circuit or the Dell Corporation of Round Rock, TX. In some embodiments, the remote control circuit or the Dell Corporation of Round Rock, TX. In some embodiments, the remote control circuit or the Dell Corporation of Round Rock, TX. In some embodiments, the remote control circuit or the Dell Corporation of Round Rock, TX. In some embodiments, the remote control circuit or the Dell Corporation of Round Rock, TX. In some embodiments, the remote control circuit or the Dell Corporation of Round Rock, TX. In some embodiments, the remote
  • machines 30 may be blade servers, servers, workstation blades or personal
  • Figures 1 A and 1 B depict block diagrams of typical computer architectures
  • each computer 100 includes a central processing unit (CPU) 100 .
  • each computer 100 includes a central processing unit (CPU) 100 .
  • Each computer 100 may also perform various functions as arithmetic and logic operations.
  • Each computer 100 may also perform various functions as arithmetic and logic operations.
  • Each computer 100 may also perform various functions as arithmetic and logic operations.
  • the central processing unit 102 is any logic circuitry that responds to and
  • the central processing unit is provided by a microprocessor unit
  • Main memory unit 104 may be one or more memory chips capable of
  • microprocessor 102 such as Static random access memory (SRAM), Burst
  • DRAM Fast Page Mode DRAM
  • FPM DRAM Fast Page Mode DRAM
  • EDRAM Enhanced DRAM
  • Extended Data Output RAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data Output DRAM (EDO RAM), Extended Data
  • EDRAM synchronous DRAM
  • SDRAM synchronous DRAM
  • JEDEC SRAM PC100 SDRAM
  • DDR SDRAM Double Data Rate SDRAM
  • ESDRAM Enhanced SDRAM
  • FRAM RAM
  • the processor 102 communicates
  • main memory 104 with main memory 104 via a system bus 120 (described in more detail below).
  • FIG. 1 B depicts an embodiment of a computer system 100 in which the
  • processor communicates directly with main memory 104 via a memory port.
  • the main memory 104 may be DRDRAM.
  • FIG. 1 A and FIG. 1 B depict embodiments in which the main processor
  • main bus sometimes referred to as a "backside" bus.
  • main bus sometimes referred to as a "backside" bus.
  • main bus sometimes referred to as a "backside" bus.
  • processor 102 communicates with cache memory 140 using the system bus 120.
  • Cache memory 140 typically has a faster response time than main memory 104
  • SRAM static random access memory
  • BSRAM secondary random access memory
  • EDRAM EDRAM
  • the processor 102 communicates
  • Various buses may be
  • VESA VL bus an ISA bus
  • EISA bus an EISA bus
  • MCA MicroChannel Architecture
  • the processor 102 may use an
  • FIG. 1 B AGP Advanced Graphics Port
  • FIG. 1 depicts an embodiment of a computer system 100 in which the main processor 102 communicates directly with I/O device 130b via HyperTransport, Rapid I/O,
  • FIG. 1 B also depicts an embodiment in which local busses and
  • I/O devices 130 may be present in the computer system
  • Input devices include keyboards, mice, trackpads, trackballs, microphones,
  • Output devices include video displays, speakers, inkjet
  • An I/O device may also be any I/O device.
  • floppy disk drive for receiving floppy disks such as 3.5-inch, 5.25-inch disks or
  • the client machine 10 may comprise or be
  • any of the I/O devices 130a-130n may be connected to multiple display devices, which each may be of the same or different type and/or form. As such, any of the I/O devices 130a-130n may be of the same or different type and/or form. As such, any of the I/O devices 130a-130n may be of the same or different type and/or form. As such, any of the I/O devices 130a-130n may be of the same or different type and/or form. As such, any of the I/O devices 130a-130n may be of the same or different type and/or form. As such, any of the I/O devices 130a-130n may be of the same or different type and/or form. As such, any of the I/O devices 130a-130n may be of the same or different type and/or form. As such, any of the I/O devices 130a-130n may be of the same or different type and/or form. As such, any of the I/O devices 130a-130n may be of the same or different type
  • the client machine 10 may include any type and/or form of video
  • adapter video card, driver, and/or library to interface, communicate, connect or
  • a video adapter may
  • the client machine 10 may include multiple video adapters, with
  • each video adapter connected to one or more of the display devices.
  • any portion of the operating system of the client machine 10 may be any portion of the operating system of the client machine 10 .
  • the display devices may be provided by one or more other computing devices,
  • remote machine 30 connected to the client machine 10, for example, via
  • These embodiments may include any type of software designed and
  • a client machine 10 may be
  • an I/O device 130 may be a bridge between the
  • system bus 120 and an external communication bus, such as a USB bus, an
  • Apple Desktop Bus an RS-232 serial connection, a SCSI bus, a FireWire bus, a
  • FireWire 800 bus an Ethernet bus, an AppleTalk bus, a Gigabit Ethernet bus, an
  • Asynchronous Transfer Mode bus a HIPPI bus, a Super HIPPI bus, a SehalPlus
  • the computers are of tasks and access to system resources.
  • the computers are of tasks and access to system resources.
  • the computers are of tasks and access to system resources.
  • the computers are of tasks and access to system resources.
  • hypervisors which represent virtualized views of
  • Operating systems may
  • Typical operating systems include: the MICROSOFT WINDOWS family of
  • the client machines 10 and 20 may be any personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer (e.g., a personal computer).
  • Macintosh computer or a computer based on processors manufactured by Intel
  • television set-top box living room media center, gaming console, mobile gaming
  • NetPCs NetPCs
  • thin client or other computing device that has a windows-based
  • the display presentation program uses commands and data sent to it across communication channels to render a graphical display.
  • WINDOWS 3.x examples include, without limitation, WINDOWS 3.x, WINDOWS 95, WINDOWS 98,
  • WINDOWS CE Windows XP, Windows Vista, MAC/OS, Java, Linux, and UNIX.
  • the client machines 10 can include a visual display device (e.g., a computer
  • a data entry device e.g., a keyboard
  • persistent or volatile storage e.g., volatile RAM
  • model i.e., a server-based computing model
  • FIG. 1A and FIG. 1 B may have different processors, operating
  • the computer system 100 can be any computer system 100.
  • the computer system 100 may comprise a
  • PLAYSTATION PORTABLE (PSP) device manufactured by the Sony
  • a client machine 10 is a mobile device
  • a device may be a JAVA-enabled cellular telephone, such as those manufactured
  • the client machine 10 is mobile, it is
  • PDA personal digital assistant
  • the client machine 10 may be a
  • PDA personal digital assistant
  • the client machine 10 is a
  • the client machine 10 is a cellular telephone that operates under control of the PocketPC
  • a client machine 10 communicates with a remote machine 10
  • Resources may include,
  • the remote machine 30 is configured to control the remote machine 30.
  • remote machine 30' hosting a resource identified by the enumeration of
  • the client machine 10 is configured to manage resources.
  • the client machine 10 is configured to manage resources.
  • the client machine 10 executes a resource neighborhood
  • each of the remote machines 30 provides the functionality
  • FIG. 2A a block diagram depicts one embodiment of a
  • enumerate computing resources is transmitted from a client machine 10 (step
  • the request includes an identification of a user of
  • the client machine 10 transmits a request for access to a particular resource
  • step 206 included in the enumeration (step 206).
  • the transmitted request is a
  • the request is a request for an enumeration
  • the request is a
  • information associated with the client machine 10 is associated with the client machine 10
  • the remote machine 30 is received.
  • the remote machine 30 is received.
  • the remote machine 30 receives a
  • the remote machine 30 comprises a component receiving requests
  • a remote machine 30 functioning as a web server
  • the web server forwards the communications to a remote machine
  • the web server forwards the communications
  • the remote machine 30 may be selected responsive to an
  • IP Internet Protocol
  • the user provides credentials to the remote
  • a remote machine 30' having
  • client machine 10, 10' by the remote machine 30 gathers the credentials from the
  • collected data regarding available resources is
  • the accessed data concerning computing environments includes an indication of a plurality of hardware resources required to support the computing
  • computing environments includes an indication of a user or type of user
  • the accessed data is provided responsive to a request for identification of a
  • the collected data is stored on a server, such as a
  • the server is in communication with
  • the server a database storing the collected data.
  • the server a database storing the collected data.
  • the data is received from at least one server responsive to a
  • the server collects the data from a hypervisor executing
  • the server collects the data from a management component residing in a guest
  • the data is collected by an intermediate, brokering
  • the brokering machine maintains a
  • the brokering machine collects information from a virtual machine service component residing in a virtual
  • the brokering machine collects information from a virtual machine
  • machine comprises a machine 30 including a brokering module.
  • data is gathered about the
  • the accessed data is transmitted to the client system with
  • the accessed data is transmitted to the client system indicating to
  • the client system responsive to the application of a policy to the generated data
  • the indication includes at least one method of access
  • the indication includes at least one type of action associated with the computing environment which may be taken by, or on behalf
  • step 204 the enumeration is provided
  • the enumeration is provided responsive to a request from the user
  • the enumeration is provided responsive to a request from the user
  • an indication is transmitted to the client machine
  • the indication is generated
  • the accessed data is
  • the collected information is transmitted to the client machine 10, the
  • the collected information is
  • the client machine 10 as icons in a graphical user interface window representing
  • an enumeration of applications is presented to a user of the client
  • a physical machine provides access
  • a virtual machine provides access to a computing environment
  • an enumeration of standard operating environments (such as a guest operating system pre-configured with a plurality of application
  • the enumeration of available resources includes
  • the enumeration of the plurality of actions enables
  • the user to request execution of a computing environment.
  • the enumeration of the plurality of actions enables the user to request execution of a computing environment.
  • the enumeration of the plurality of actions enables the user to
  • the enumeration of the plurality of actions enables the user to
  • snapshot be taken of an existing state of a computing environment.
  • the enumeration of the plurality of actions enables the user to
  • a request is transmitted for access to a particular resource (step 206).
  • a user of the client machine 10 requests a resource responsive
  • the user requests a resource by selecting a graphical user interface
  • the user requests a resource by selecting a
  • the user requests an action associated with a
  • the user requests execution of the
  • the user requests termination of the resource. In still another of these embodiments, the user requests transmission
  • the user requests that a resource be
  • a request to access a file is
  • a remote machine 30 launches the Resource
  • RN Neighborhood
  • the remote machine 30 can launch the RN application 241 in
  • the remote machine 30 provides an enumeration of
  • the client machine 10 determines whether available resources to the client machine 10 (step 204).
  • the client machine 10 determines whether available resources to the client machine 10 (step 204).
  • the remote machine 30' can transfer the executable code of the particular application to the client machine 10, when the client machine 10 and
  • remote machine 30' are operating according to the client-based computing
  • the remote machine 30' can execute the particular
  • the remote machine 30' can execute the Resource Neighborhood application 241 and push the
  • FIG. 2B shows another embodiment of a system in which the client
  • a remote machine 30 presents the results of the RN application 241 to the
  • the client machine 10 launches the Resource Neighborhood
  • the client machine 10 directs a request 202 for the
  • the remote machine 30 can indicate (arrow 204) to
  • remote machine 30' available on another remote machine, in this example remote machine 30'.
  • client machine 10 and remote machine 30' establish a connection (arrows 206
  • the remote machine 30' can execute the
  • FIG. 2C shows another embodiment of a system in which a client machine
  • a client machine 10 executes a web browser
  • the client machine 10 via the web browser 280, transmits a request 282

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

La présente invention concerne un procédé de fourniture d'accès à un environnement informatique comprenant l'étape de réception d'une requête pour une énumération d'environnements informatiques disponibles. On accède à des données recueillies concernant des environnements informatiques disponibles. Des données accédées sont transmises, les données accédées indiquant chaque environnement informatique disponible. Une machine intermédiaire reçoit une requête provenant d'une machine client pour l'accès à un environnement informatique. Une parmi une pluralité de machines virtuelles fournissant l'environnement informatique demandée est identifiée. Une parmi la pluralité de machines d'exécution est identifiée, la machine d'exécution identifiée fournissant une session de services de terminal dans lequel un hyperviseur fonctionne pour fournir l'accès aux ressources matérielles demandées. Un agent client crée, via une session de services de terminal, un lien de communication vers la machine virtuelle fonctionnant dans un hyperviseur sur une machine d'exécution identifiée par un fichier de configuration hyperlien, l'hyperviseur fonctionnant dans une session de services de terminal fourni par la machine d'exécution.
PCT/US2007/060895 2006-01-24 2007-01-23 Procédés et systèmes de fourniture d'accès à un environnement informatique fourni par une machine virtuelle fonctionnant en exécution d'un hyperviseur dans une session de services de terminal Ceased WO2007100942A2 (fr)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US76167406P 2006-01-24 2006-01-24
US60/761,674 2006-01-24
US11/552,787 2006-10-25
US11/552,787 US8051180B2 (en) 2006-01-24 2006-10-25 Methods and servers for establishing a connection between a client system and a virtual machine executing in a terminal services session and hosting a requested computing environment
US11/559,635 US8355407B2 (en) 2006-01-24 2006-11-14 Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session
US11/559,635 2006-11-14
US11/563,927 US8010679B2 (en) 2006-01-24 2006-11-28 Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session
US11/563,927 2006-11-28

Publications (3)

Publication Number Publication Date
WO2007100942A2 true WO2007100942A2 (fr) 2007-09-07
WO2007100942A9 WO2007100942A9 (fr) 2007-11-01
WO2007100942A8 WO2007100942A8 (fr) 2007-12-21

Family

ID=38375729

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/060895 Ceased WO2007100942A2 (fr) 2006-01-24 2007-01-23 Procédés et systèmes de fourniture d'accès à un environnement informatique fourni par une machine virtuelle fonctionnant en exécution d'un hyperviseur dans une session de services de terminal

Country Status (1)

Country Link
WO (1) WO2007100942A2 (fr)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7942741B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying whether a device is communicating with a server
US7942739B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server
US7942738B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying a gaming device is in communications with a gaming server
US7942742B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Accessing identification information to verify a gaming device is in communications with a server
US7942740B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying a first device is in communications with a server by storing a value from the first device and accessing the value from a second device
US8012015B2 (en) 2006-11-15 2011-09-06 Cfph, Llc Verifying whether a gaming device is communicating with a gaming server
US8771064B2 (en) 2010-05-26 2014-07-08 Aristocrat Technologies Australia Pty Limited Gaming system and a method of gaming
US9749333B2 (en) 2014-05-05 2017-08-29 Oliver Lloyd Pty Ltd Shared access appliance, device and process
US10068421B2 (en) 2006-11-16 2018-09-04 Cfph, Llc Using a first device to verify whether a second device is communicating with a server
CN110400196A (zh) * 2019-06-20 2019-11-01 北京奇艺世纪科技有限公司 一种页面处理方法、装置及计算机可读存储介质
US11055115B1 (en) * 2018-08-09 2021-07-06 Parallels International Gmbh Virtual machine conversion in distributed system of remote desktops
WO2024065247A1 (fr) * 2022-09-28 2024-04-04 Citrix Systems, Inc. Session sécurisée virtuelle à la demande
WO2024065147A1 (fr) * 2022-09-27 2024-04-04 Citrix Systems, Inc. Gestion de groupe

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
No Search *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10525357B2 (en) 2006-11-15 2020-01-07 Cfph, Llc Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server
US11083970B2 (en) 2006-11-15 2021-08-10 Cfph, Llc Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server
US7942738B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying a gaming device is in communications with a gaming server
US7942742B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Accessing identification information to verify a gaming device is in communications with a server
US7942740B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying a first device is in communications with a server by storing a value from the first device and accessing the value from a second device
US8012015B2 (en) 2006-11-15 2011-09-06 Cfph, Llc Verifying whether a gaming device is communicating with a gaming server
US11710365B2 (en) 2006-11-15 2023-07-25 Cfph, Llc Verifying whether a device is communicating with a server
US9064373B2 (en) 2006-11-15 2015-06-23 Cfph, Llc Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server
US9111411B2 (en) 2006-11-15 2015-08-18 Cfph, Llc Verifying a first device is in communications with a server by strong a value from the first device and accessing the value from a second device
US9590965B2 (en) 2006-11-15 2017-03-07 Cfph, Llc Determining that a gaming device is communicating with a gaming server
US9685036B2 (en) 2006-11-15 2017-06-20 Cfph, Llc Verifying a gaming device is in communications with a gaming server by passing an indicator between the gaming device and a verification device
US9875341B2 (en) 2006-11-15 2018-01-23 Cfph, Llc Accessing information associated with a mobile gaming device to verify the mobile gaming device is in communications with an intended server
US7942739B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server
US9767640B2 (en) 2006-11-15 2017-09-19 Cfph, Llc Verifying a first device is in communications with a server by storing a value from the first device and accessing the value from a second device
US7942741B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying whether a device is communicating with a server
US10181237B2 (en) 2006-11-15 2019-01-15 Cfph, Llc Verifying a gaming device is in communications with a gaming server by passing an indicator between the gaming device and a verification device
US10212146B2 (en) 2006-11-15 2019-02-19 Cfph, Llc Determining that a gaming device is communicating with a gaming server
US10991196B2 (en) 2006-11-15 2021-04-27 Cfph, Llc Verifying a first device is in communications with a server by storing a value from the first device and accessing the value from a second device
US10810823B2 (en) 2006-11-15 2020-10-20 Cfph, Llc Accessing known information via a devicve to determine if the device is communicating with a server
US10068421B2 (en) 2006-11-16 2018-09-04 Cfph, Llc Using a first device to verify whether a second device is communicating with a server
US8771064B2 (en) 2010-05-26 2014-07-08 Aristocrat Technologies Australia Pty Limited Gaming system and a method of gaming
US9749333B2 (en) 2014-05-05 2017-08-29 Oliver Lloyd Pty Ltd Shared access appliance, device and process
US11055115B1 (en) * 2018-08-09 2021-07-06 Parallels International Gmbh Virtual machine conversion in distributed system of remote desktops
CN110400196A (zh) * 2019-06-20 2019-11-01 北京奇艺世纪科技有限公司 一种页面处理方法、装置及计算机可读存储介质
WO2024065147A1 (fr) * 2022-09-27 2024-04-04 Citrix Systems, Inc. Gestion de groupe
WO2024065247A1 (fr) * 2022-09-28 2024-04-04 Citrix Systems, Inc. Session sécurisée virtuelle à la demande

Also Published As

Publication number Publication date
WO2007100942A8 (fr) 2007-12-21
WO2007100942A9 (fr) 2007-11-01

Similar Documents

Publication Publication Date Title
US8051180B2 (en) Methods and servers for establishing a connection between a client system and a virtual machine executing in a terminal services session and hosting a requested computing environment
EP2375328A2 (fr) Procédés et systèmes pour fournir un accès à un environnement informatique
EP2369479A2 (fr) Procédés et systèmes pour fournir un accès à un environnement informatique
WO2007100942A2 (fr) Procédés et systèmes de fourniture d'accès à un environnement informatique fourni par une machine virtuelle fonctionnant en exécution d'un hyperviseur dans une session de services de terminal
US9742876B2 (en) Span out load balancing model
US11595482B2 (en) Image acquisition device virtualization for remote computing
US12432264B2 (en) System and method for workspace sharing
HK1162707A (en) Methods and systems for providing access to a computing environment
HK1162706A (en) Methods and systems for providing access to a computing environment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07756402

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07756402

Country of ref document: EP

Kind code of ref document: A2