WO2012125392A1 - Methods and systems for persistent virtual application hosting - Google Patents

Methods and systems for persistent virtual application hosting Download PDF

Info

Publication number
WO2012125392A1
WO2012125392A1 PCT/US2012/028201 US2012028201W WO2012125392A1 WO 2012125392 A1 WO2012125392 A1 WO 2012125392A1 US 2012028201 W US2012028201 W US 2012028201W WO 2012125392 A1 WO2012125392 A1 WO 2012125392A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
application
primary
virtual machine
failure
Prior art date
Application number
PCT/US2012/028201
Other languages
French (fr)
Inventor
Ian James TAYLOR
Original Assignee
Skydesks, Incorporated
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
Application filed by Skydesks, Incorporated filed Critical Skydesks, Incorporated
Publication of WO2012125392A1 publication Critical patent/WO2012125392A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session

Definitions

  • the present invention relates to methods and systems for hosting a plurality of remote users of a virtual application.
  • Cloud-computing environments use the Internet to provide shared computing resources, software, and data to users on demand. Such environments free users from the burdens of owning, operating, and maintaining complex computer systems.
  • service providers operate computer applications on servers "in the cloud” that can be accessed by users running simple client applications to view their remote desktop.
  • the resource can be "virtualized.”
  • a single server can be divided into multiple “virtual machines” (VMs) or “virtual private servers” (VPSs), each dedicated to a different user.
  • VMs virtual machines
  • VPNs virtual private servers
  • Each VPS may run its own operating system (OS), store data separately, and operate independently from other VPSs on the same physical server.
  • OS operating system
  • Many VPS providers offer VPS services by monthly subscription, with prices according to a user's demands on storage, processing capacity, etc.
  • VPS systems are often used to access software tools for conducting business, such as trading on financial markets.
  • the MetaTrader 4 Automated Trading System MT4
  • MT4 enables automated trading of financial markets, such as the global foreign exchange market (Forex).
  • EA expert advisor
  • a trader typically employs a VPS to host the EA and MT4, which can be resource-intensive and costly.
  • financial transactions and trading require a level of security and reliability that can be difficult to ensure in conventional VPS systems.
  • EAs are automated currency trading MetaQuotes applications that are written as plugins for MT4. They are written in a proprietary MetaQuotes language, which is quite similar to Java and C. EA providers typically release their EAs as EX4 files, which are compiled MetaTrader EAs. Essentially, EX4s are binary representations of the EA code, which can be executed at run-time by the
  • VMs virtual machines
  • Certain embodiments use a Linux-based architecture to provide a cloud-computing VM environment.
  • a Linux Operating System may use the Wine toolkit to provide Windows-based applications such as MT4.
  • a system for virtual application hosting for a plurality of remote users comprising a website configured to: receive an access request from one of the users via a client application running on the user's computing device, configure a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user, and maintain the primary application executing in the user's session in the event of a failure of the virtual machine;
  • the application upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure.
  • the system operates NX technology.
  • the primary application may, by way of example and not limitation, comprise the Meta Trader 4 Automatic Trading System (MT4) which is executed using the Wine toolkit.
  • MT4 Meta Trader 4 Automatic Trading System
  • the system of the present invention may further include a secondary application that may be accessed by the user, wherein the secondary application is an EA in the MT4.
  • the present invention may take the form of a method for virtual application hosting for a plurality of remote users comprising: receiving an access request from one of the users via a client application running on the user's computing device, configuring a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user, and maintaining the primary application executing in the user's session in the event of a failure of the virtual machine;
  • the application upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure.
  • the present invention may also take the form of a non-transitory computer readable medium which, when run on a processor, provides a method for virtual application hosting for a plurality of remote users comprising: receiving an access request from one of the users via a client application running on the user's computing device, configuring a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user, and maintaining the primary application executing in the user's session in the event of a failure of the virtual machine;
  • the two-tier system of the present invention protects against both the VM failing and the MetaTrader application from crashing, to keep the customer's VM MT4 trading 24 hours a day, every day.
  • the monitoring system of the present invention and a related VPS Linux image protects virtual application users, such as forex MT4 users, from interference and machine fluctuations.
  • An embodiment of the present invention has been implemented as the Lightweight Monitoring System (LMS). LMS automatically reboots any VM upon the detection of any one of a number of issues e.g. non- responsiveness, MT4 application crashing, overloaded VM, and so forth.
  • LMS Lightweight Monitoring System
  • the LMS takes a completely different hands-off approach and monitors each VM remotely using SSH and a public/private key infrastructure. All that is needed on a VM is a public key for the monitoring system, which can be provisioned along with the VM creation (on Rackspace for example), so it requires no further management or configuration.
  • the LMS system is itself a VM that uses a Cron job monitor and launch a Java application for retrieving a list of current users. The Cron job monitors LMS for failures also to make sure that the system runs 24/7 and is free from Java crashes too.
  • LMS performs a complex remote SSH command for retrieving information about the current status of a VM at that point in time
  • the monitoring system runs the following commands using remote SSH:
  • the LMS can detect VM crashes, can monitor specific applications (e.g. MT4) to see if they are running, and can also monitor the system load, the memory and the disk space usage.
  • the monitoring system can monitor 25 Rackspace accounts using concurrent threads (one Java thread per Rackspace account) with between 20 and 70 VMs per account.
  • Each VM can be monitored every three minutes and a monitored VM can be rebooted if, for example, three consecutive failures are detected. After a failure and a reboot an exponential back-off timer can be adopted to avoid the constant rebooting of misbehaving VMs.
  • a VM fails persistently then an email may be issued to the user to deal with issues that cannot be resolved automatically.
  • LMS may also interface with Twitter to provide Web tweets on the status of each of the VMs.
  • Fig. 1 is an architectural overview of a preferred embodiment of the present invention
  • Fig. 2 illustrates a preferred signup and Virtual Private Server (VPS) configuration
  • FIG. 3 illustrates a preferred fault detect sequence
  • Fig. 4 illustrates a process for isolating the OS by direct access to the application without use of a desktop
  • Figs. 5(a) - 5(d) illustrate of creating and managing accounts.
  • Figure 1 illustrates an architectural overview of a preferred embodiment
  • the first is the need when running certain virtual applications, such as those related to Geneva, to minimize downtime.
  • the second is to assure the security of the applications being run, particularly the EAs.
  • the present invention is a scalable, cost-effective VPS for virtual application hosting on a continuous, uninterrupted, fault-tolerant, persistent basis.
  • the invention leverages a Linux-based cloud-computing environment and optimized X Windows sessions to support remote desktop hosting of any Windows or Linux application. This is outlined in the architecture diagram of Fig. 1, as described in further detail below.
  • Users 22 can log onto their remote applications 16 over the Internet from a Windows, Linux, or Mac computer, with a rapid response time and support persistence of the application after they log off.
  • the invention can be configured with any Windows application, it will be illustrated herein, by way of example and not limitation, using the MT4 Windows application for Forex currency trading.
  • MT4 is a de facto forex standard.
  • the invention need not be Windows server-based and may offer a unique environment, without a desktop, completely free from viruses, spyware, and trojans.
  • platform is a virtual machine
  • VMM virtual management subsystem 12 which includes a back-end server configuration that manages multiple virtual machines (VMs).
  • the VMM module provides an interface between the user interface (the Web site 10) and the management of the underlying VMs 14 for each user.
  • VMM 12 is capable of dynamically creating a VM without administrator influence for a specific user who has chosen a specific broker configuration. The user can choose, for example, any combination of over 100 forex broker-customized MT4 releases and an EA from drop down lists on the website.
  • Each EA is a robot trading application, which is written in a unique language called MetaQuotes (MQ4) for use with the MT4 application.
  • MQ4 MetaQuotes
  • the MT4 application is executed in a Linux environment using the open-source Wine toolkit.
  • users can mirror other EAs onto their VM by means of a Mirror Application (SkyApp) allowing completely customized VM configuration without any direct user involvement in this process.
  • SkyApp Mirror Application
  • a user signs up by going to the Sign-up Web page.
  • the signup procedure is a one-step process, and on this page, the user preferably enters the following information: • MetaTraderBroker: The user has multiple MetaTraderBroker custom installations to choose from. Other brokers can be added, as needed. Typically, a user will have already signed up with a broker so that they can trade forex currencies. Each broker provides a custom MT4 application that is configured to logon to that specific broker. The user therefore may select which broker they want to use by selecting from a simple drop-down list.
  • the VMM creates a VM for the user and is configured with the user's choice through interaction between the VMM and the newly created VM.
  • a wizard simplifies the complex installation process and configuration of a new VPS for a user, and thus makes it far simpler to use than any other MT4- based VPS on the market today.
  • the Wizard takes a user from initial signup through the selection of an expert advisor, the selection of their forex broker, the building of their own virtual private server configured with their MT4 version for their broker, in around 5 minutes.
  • the GUI is user friendly and hides back-end code necessary to perform and simplify this process into three steps. The subscriber selection of the
  • MetaTrader (MT4) Trading Platform may incorporate, for example, more than 120 custom MT4 broker installations and subscription-based expert advisors (EAs), all installed or reconfigured automatically using this simple wizard.
  • EAs subscription-based expert advisors
  • Step One Provides access to all of the NX client installation installers and auto-detects the system the user is running on to minimize the client-side installation for accessing the remote desktop.
  • Step Two Provides a simple intuitive list of supported forex brokers (120 installations at this point) for the user to select their preferred broker or to find out about brokers by browsing the home pages of each of the brokers, to select one for use.
  • Step 3 (VPS Building and Configuration). To the user, this process is represented by a user-friendly progress bar, but in the background the following functionality:
  • a VM request is issued to Rackspace for the creation of a new VM
  • This request is monitored using an AJAX JSON callback at 2-second intervals and feedback about the time remaining estimate of the complete process is provider to the user. At the first stage, this is calculated by the time remaining of the VM built plus some heuristic estimations of the post configuration process.
  • the VM boots up.
  • the wizard waits for the reboot by monitoring the VM.
  • the VM boots up it automatically configures for the specific user by reading details from a configuration file deployed upon VM creation. This process automatically unpacks the MT4 broker distributed on the VM that the user selected.
  • the wizard then takes the EA distribution stored on the website and uploads it to the VM. When this is complete, it reboots the VM to complete the installation process.
  • the server Upon rebooting, the server automatically starts the NX client application for the user in the background and thus MT4 is running using a virtual graphics server on the VM awaiting the user to connect and resume the session,
  • an NX file is generated for the user and a GUI is provided for the user to select the screen size and to download the
  • Figs 5(a)-(d) illustrate screen shots that demonstrate the process.
  • the VM then boots up.
  • the VM Upon boot up, the VM receives the configuration information from the VMM and automatically configures the VM for that user with the MT4 broker application he chooses.
  • the VMM waits until this process is finished before installing the EA into the broker's EA directory on the VM. Shortly after (usually within a minute), the VM starts a virtual X server and launches the client's MT4 application. This actually runs MT4 with the configuration specified automatically within a virtual graphical display, i.e., this is not visible, but it is running. This is a very important (revise?) aspect of the system because this auto-start process is maintained after any reboot of the system, which is used to implement the fault tolerance of the platform.
  • the preferred fault detect sequence is shown in Fig. 3, including steps 300-326.
  • the actual application is running with a Window application or X Windows.
  • the machine will be rebooted as described below.
  • users log into the system with no graphics card.
  • XWindows is designed to look for a graphics card or a virtual X server, so the VM may in effect look for a something that is not there. Accordingly, it is generally impossible to restart that process without the user logging in.
  • an NX client is started on the server, which uses the VNC server to bootstrap X Windows and enables a start MT4 running within that virtual window system. That is part of the complexity required. A second part is to transition from that condition, when the user actually logs in a physically fashion. The user will not detect the conversion.
  • NX is configured to invoke a script. Then a plug in script is used that terminates the virtually server and creates a condition as if there was never one there in the first place. This happens at almost the same time the user logs in so that it seems as if nothing has ever happened.
  • the application thus runs on from the time after a reboot of the fault until the user comes back in.
  • the user Before the fault, the user is running a MT4 in the NX environment that uses its own Window system configuration. After the fault, it runs using VNC until the user actually logs in again.
  • the virtual server remotely displays XWindows VNC.
  • NX for remote viewing is several times faster than VNC, NX is preferred. Because VNC permits virtual log-in without the presence of the user, it allows for automatic continued application up time in the event of a system fault.
  • the cloud provider upon a general VM failure, the cloud provider detects the issue and will reboot the VM to solve it. Upon reboot, the VM will start the MT4 application automatically and, therefore, the trader will only lose a few minutes of trading upon each failure.
  • the VM may, for example, be based on Ubuntu (a Linux instantiation) but is highly configured.
  • Ubuntu a Linux instantiation
  • the desktop of the VM is completely shut down and a user only has access to his MT4 application.
  • the user cannot start any other application on the VM and therefore cannot gain access to the underlying configuration or intellectual property (IP) of the design of the mechanics of the underlying VM operation.
  • IP intellectual property
  • the design not only protects the IP invested in the capacity to host a virtual application, it also protects the IP of any affiliates, such as EAs.
  • the present invention provides an extremely simple operating environment for the user. And since most users are not familiar with Linux, this design will minimize confusion for users and protect both the users and operators from countless configuration issues that would result in a completely open system.
  • the user is notified, for example by an email, that the VM is ready for use, along with a request to download the latest version of a client-remote application, which connects the user's host computer to the VM.
  • a free client application may be used, such as that which may be obtained from a company called No Machine.com. This particular free application is available for the
  • the user is also asked to log into his VPS account on the website to retrieve his customized NXS file for access to his account.
  • the NXS file is a NX virtual desktop configuration file, which is used by the NX client-side application to access the VM.
  • Mobile tablets e.g., iPad
  • smart cell phones may also be allowed to access the system.
  • the user downloads his NXS file securely via a secure socket layer (SSL) to his desktop.
  • the NXS file is analogous to a private key to the user's VPS server.
  • the NXS file contains all of the session configuration, location, and authentication information to access the VPS.
  • the user double-clicks the NXS file to his desktop and, within a relatively short period of time (e.g., within a few seconds), a window appears showing the remote desktop with MT4 running.
  • the ready-to-use, subscribed EAs also appear in the user's MT4 EAs folder.
  • a desktop application such as SkyApp, which locates his local MT4 EA folder and mirrors the EAs installed in that directory to his MT4 EA directory on his VM. This allows the user to further customize his remote virtual machine without needing to perform any specific installation himself.
  • the invention thus may be used to achieve user-friendliness as a top priority and allow users to be free from all installation and configuration issues for their remote desktop VPSs.
  • a Linux-based cloud-computing environment and optimized XWindows sessions support remote desktop hosting of any Windows or Linux application.
  • This unique combination of several technologies enables users' access to remote VM sessions within a UNIX environment in a safe, scalable fashion. Users can log onto their remote application using a Windows, Linux, or Mac OSx computer, with a rapid response time, support for persistence of the application after they log off, and fault tolerance to ensure their applications run uninterrupted 24 hours a day, 7 days a week.
  • the invention in a preferred embodiment, by way of example and not limitation, may be said to bridge five technologies: cloud computing and the use of VMs; a user-friendly, highly customized, locked-down hosting environment on each VM; the Wine toolkit for running Windows-based applications on a Linux OS; an NX remote desktop for efficient visual access to the remote desktop; and a website that provides secure automated account and VM creation and
  • the invention's initial application is MT4, a cte facto standard forex trading platform.
  • NXS files may be sent by email to users. Instead, users may download a customized NXS file from the website.
  • the Web download will be SSL download.
  • a subscriber upload of MT4 files (required to run an EA or even multiple EAs in a user's account) may be made to the Web server (again via an SSL link). The Web server can then automatically download the files to the user's account on the appropriate VM.
  • EA file downloads are common with EA providers.
  • EA files are routinely uploaded by subscribers to Window forex VPS servers. However, this upload and file placement on the VPS needs to be done manually by the user. Preferably, this is done automatically as soon as the user points to his MT4 directory on his home machine where the files are installed. Moreover, this may be done for all installed EAs simultaneously for each installed broker-branded MT4 installation.
  • the invention Architecture a Model for Affordable Linux-Based APS Hosting [0070] The invention has developed a unique customization of the
  • Ubuntu10.10 OS that is designed to work in a remote VM.
  • the VM is based on Ubuntu but, as was described above, is highly configured so that a user only has access to a specific running application (e.g., MT4).
  • MT4 running application
  • a user cannot start any other application on the VM nor can he gain access to installation, modification, configuration, or network services available on most OSs by default.
  • This architecture enables cost-effective virtual remote hosting of any Linux or Windows- based application on a Linux VM for the following reasons:
  • This architecture provides an extremely simple operating environment for users that typically use Windows. This simplicity can be extremely user-friendly for Windows users, and little or no learning curve needs to be undertaken in order to use the product.
  • This architecture protects intellectual property in withholding access to the underlying mechanics of the customized implementation for installing and configuring applications and providing long-running fault tolerance features.
  • a competitor masquerading as a user will be unable to gain access to the VM to attempt to copy or understand how the VM operates and provides its configuration and persistent features.
  • affiliate IP Protection e.g., EAs
  • the invention solves this issue through the locked-down nature of the architecture described above, which does not allow a user to gain access to anything other than MT4. This makes it impossible for a user to gain access to EX4 files and, therefore, he cannot copy them.
  • This level of protection provides a unique business advantage within the forex industry. EA providers are uniquely protected against theft and misuse of their EAs.
  • the VM preferably automatically starts the graphical-based T4 application upon reboot. This is a nontrivial task because, in order to restart a graphical application on a remote server, one provides a mechanism that not only can create a virtual X server for hosting the X application, but this mechanism is also compatible with the remote access method that a user uses to access his VM.
  • the VM described herein solves this problem through the use of a virtual network computing (VNC) server that interfaces or handshakes, through a complex set of timed server control commands, with the NX client upon a user login to provide seamless switching between a virtual graphics server and an NX client.
  • VNC virtual network computing
  • Timing commands refer to a mixture of Cron jobs (jobs that run at set intervals) and hand over scripts that allow the user to transfer between the VNC session and the NX session upon logging into the system.
  • a user logs on an NX startup script is called, which is run as the user.
  • a handshake mechanism is used to hand over this over to a root process that monitors for user loggings.
  • a root process is started and kills the VNC job allowing the user to log in using a normal NX session (because the VNC session is now killed).
  • the way this works is that the trigger is activated and the user script is frozen preferably for no more than around 20 second to allow time for the root process to complete, then the session resumes as normal.
  • Ubuntu servers are amongst the most reliable in the industry, often staying up for years. An outer bound for VM failure of six months is believed to be reasonable, meaning that on average a server will fail at most twice a year. A cloud-computing provider should be able to detect such a failure within two minutes and will reboot the VM. Then, the VM, upon reboot, will automatically restart the MT4 graphical application, preferably within one further minute, and the customer would be back trading again within three minutes. Under this exemplary scenario, a customer should experience a maximum of six minutes downtime per year, which is several orders of magnitude superior in performance compared to any other VPS available today. This is equivalent to an uptime of 99.99999%.
  • the user session is run in an SSL environment.
  • a user of the invention never knows his back-end account username and password because he can only gain access them through his NX client-side application, which uses encrypted authentication information. Therefore, a user only has access to his Web login details and the NXS file that is used to access his back-end virtual hosting account. Because the actual details are never made available outside the secure website, this makes it impossible for an attacker to gain access to a user's VPS.
  • the invention leverages a cloud-computing hosting environment and can dynamically create VMs for its customers on the fly.
  • a cloud-computing hosting environment can dynamically create VMs for its customers on the fly.
  • scalability is only limited by a VM computing provider.
  • a VM provider may have 60,000 cloud servers— each capable of hosting sixty VMs— with the existing infrastructure, over three million customers may be serviced.
  • the number of customers that may be hosted can double to six million
  • MT4 is a broker specific brand of trading application. What this means is the company can be accessed worldwide, which is global.
  • a broker wants to use the MT4 as their currency platform because it runs four times faster the broker may contact the licensee to obtain a license, and the application is granted to the broker so that the broker's advertisement appears on one the broker's servers website that appears on the front end.
  • the user can use a demo account which is free for paper trading and sign up with the broker for MT4.
  • the user can then decide to send money to the broker and open a live trading account.
  • the pull down menu and configuration described above gives the user the choice of brokers.
  • the user or subscriber who is interested may decide to buy a subscription which is monthly. He signs up by choosing the kind of broker on a drop down list on a website.
  • the basic service will enable the subscriber to upload his EA to the website. It will then be automatically transferred to this account on the VM.
  • the premium service will enable a user to subscribe to a specified EA for an additional cost. There can be a drop down list of premium EAs. The chosen EA then works inside of MT4.
  • the prices of the premiums EAs may vary depending on the EA. Once these are selected, the broker and the EA, then the user can sign up for either the basic or premium account and pay through a credit card or PayPal. Preferably it will be for one month with recurring payment. [0084] If a user wants to put his own EA in the system, the user can upload from the user's account, his own EA and transfer in to the appropriate directory. The user does not do anything more. He logs into his account on the website to do it. It does not matter which server he is using.
  • the user may have a separate application of clients by accessing a website called No Machine.com. He downloads an application from his computer from a website, he then installs the application by pressing an application wizard. He only does that once and can use it as many times as he likes. He does not have to keep downloading when he changes applications.
  • An additional feature is that all updates of the EA software will be automatically provided to the subscriber in his VM. In the trading application actually they will be added so that if he is running more than one version, he does not have to change it, but he can.
  • [0092] In addition there can be set files. These set files are parameters for the EAs such as stop loss, and a variety of other parameters. These parameters are all currency parameter specific. The website can provide updates to all set files to all currencies that are supported.
  • environments Such environments and related applications may be specially constructed for performing the various processes and operations according to the invention or they may include a general-purpose computer or computing platform selectively activated or reconfigured by code to provide the necessary functionality.
  • the processes disclosed herein are not inherently related to any particular computer or other apparatus, and may be implemented by a suitable combination of hardware, software, and/or firmware.
  • various general-purpose machines may be used with programs written in accordance with teachings of the invention, or it may be more convenient to construct a specialized apparatus or system to perform the required methods and techniques.
  • Systems and methods consistent with the present invention also include physical, tangible, and /or non-transitory computer readable storage media that include program instruction or code for performing various computer- implemented operations based on the methods and processes of the invention.
  • the media and program instructions may be those specially designed and constructed for the purposes of the invention, or they may be of the kind well known and available to those having skill in the computer software arts.
  • Examples of program instructions include, for example, machine code, such as produced by a compiler, and files containing a high level code that can be executed by the computer using an interpreter.

Abstract

A system and method is provided for receiving an access request from one of the users via a client application running on the user's computing device, configuring a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user, and maintaining the primary application executing in the user's session in the event of a failure of the virtual machine; wherein upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure.

Description

METHODS AND SYSTEMS FOR PERSISTENT VIRTUAL APPLICATION
HOSTING
This application claims priority to U.S. Provisional Patent Application No. 61/451 ,955 filed March 11 , 20 1 , the contents of which are incorporated herein by reference.
BACKGROUND
TECHNICAL FIELD
[0001] The present invention relates to methods and systems for hosting a plurality of remote users of a virtual application.
DESCRIPTION OF THE RELATED ART
[0002] Cloud-computing environments use the Internet to provide shared computing resources, software, and data to users on demand. Such environments free users from the burdens of owning, operating, and maintaining complex computer systems. Typically, service providers operate computer applications on servers "in the cloud" that can be accessed by users running simple client applications to view their remote desktop.
[0003] To enable multiple users to share a single computing resource, such as a server, the resource can be "virtualized." For example, a single server can be divided into multiple "virtual machines" (VMs) or "virtual private servers" (VPSs), each dedicated to a different user. Each VPS may run its own operating system (OS), store data separately, and operate independently from other VPSs on the same physical server. Many VPS providers offer VPS services by monthly subscription, with prices according to a user's demands on storage, processing capacity, etc.
[0004] Conventional VPS systems are often used to access software tools for conducting business, such as trading on financial markets. For example, the MetaTrader 4 Automated Trading System (MT4) enables automated trading of financial markets, such as the global foreign exchange market (Forex). To offer trading services, a trader can create an expert advisor (EA) to automate trading to achieve financial goals. A trader typically employs a VPS to host the EA and MT4, which can be resource-intensive and costly. Additionally, financial transactions and trading require a level of security and reliability that can be difficult to ensure in conventional VPS systems.
[0005] EAs are automated currency trading MetaQuotes applications that are written as plugins for MT4. They are written in a proprietary MetaQuotes language, which is quite similar to Java and C. EA providers typically release their EAs as EX4 files, which are compiled MetaTrader EAs. Essentially, EX4s are binary representations of the EA code, which can be executed at run-time by the
MetaTrader system. However, there are multiple tools that decompile EX4 files back into the source code. Therefore, a competitor could very easily copy an EA, modify it, and release it as their own EA. This is a massive problem for EA providers and shapes any commercial model EA developers have for their products.
SUMMARY
[0006] Methods and systems consistent with the present invention provide a virtual machines (VMs) hosting environment for applications. Certain embodiments use a Linux-based architecture to provide a cloud-computing VM environment. For example, a Linux Operating System (OS) may use the Wine toolkit to provide Windows-based applications such as MT4.
[0007] In a general sense, a system for virtual application hosting for a plurality of remote users is provided comprising a website configured to: receive an access request from one of the users via a client application running on the user's computing device, configure a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user, and maintain the primary application executing in the user's session in the event of a failure of the virtual machine;
wherein upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure.
[0008] Preferably, the system operates NX technology. [0009] The primary application may, by way of example and not limitation, comprise the Meta Trader 4 Automatic Trading System (MT4) which is executed using the Wine toolkit.
[0010] The system of the present invention may further include a secondary application that may be accessed by the user, wherein the secondary application is an EA in the MT4.
[0011] In other words, the present invention may take the form of a method for virtual application hosting for a plurality of remote users comprising: receiving an access request from one of the users via a client application running on the user's computing device, configuring a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user, and maintaining the primary application executing in the user's session in the event of a failure of the virtual machine;
wherein upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure.
[0012] The present invention may also take the form of a non-transitory computer readable medium which, when run on a processor, provides a method for virtual application hosting for a plurality of remote users comprising: receiving an access request from one of the users via a client application running on the user's computing device, configuring a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user, and maintaining the primary application executing in the user's session in the event of a failure of the virtual machine;
wherein upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure. [0013] The two-tier system of the present invention protects against both the VM failing and the MetaTrader application from crashing, to keep the customer's VM MT4 trading 24 hours a day, every day.
[0014] The monitoring system of the present invention and a related VPS Linux image protects virtual application users, such as Forex MT4 users, from interference and machine fluctuations. An embodiment of the present invention has been implemented as the Lightweight Monitoring System (LMS). LMS automatically reboots any VM upon the detection of any one of a number of issues e.g. non- responsiveness, MT4 application crashing, overloaded VM, and so forth.
[0015] Most proprietary monitoring systems require the installation of a daemon of each of the virtual machines to monitor its progress. Although this approach allows an application to monitor the VM locally for faults, it has some key limitations for use in cloud computing. Firstly, every VM that wants to make use of such a system has to install the daemon application on the VM, which typically requires some post configuration step on an image to install, which also will need to be updated periodically. An example of this approach is Cloudkick. This adds an administration overhead to the system because the system needs to manage another application across the collection of distributed resources. Secondly, the daemon also has to open a port for communication with the controller application to allow requests about status, which opens up another security hole for hackers to target. This extra complexity does not lend well to achieving a zero configuration system that is free from administration overhead as the number of nodes increases.
[0016] The LMS takes a completely different hands-off approach and monitors each VM remotely using SSH and a public/private key infrastructure. All that is needed on a VM is a public key for the monitoring system, which can be provisioned along with the VM creation (on Rackspace for example), so it requires no further management or configuration. The LMS system is itself a VM that uses a Cron job monitor and launch a Java application for retrieving a list of current users. The Cron job monitors LMS for failures also to make sure that the system runs 24/7 and is free from Java crashes too.
[0017] LMS performs a complex remote SSH command for retrieving information about the current status of a VM at that point in time The monitoring system runs the following commands using remote SSH:
1) ssh -o UserKnownHostsFile=/dev/nulI -o StrictHostKeyChecking=no root@VMAddress top -b -n2 to get the output from top on the VM. This is then parsed to find the load average of the machine, the number of processors, and the memory used.
2) ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@VMAddress df | grep sda to get the amount of disk space that is remaining on the machine.
[0018] These commands can be executed because there is a public key on each of the VMs that is matched with a private key from the monitoring machine to authenticate.
[0019] The key difference between this approach and other approaches, e.g. Cloudkick, is that no daemons need to be run on the VM so the maintenance is zero. Upgrade of the VM machines is not required nor does access need to be gained to re-program how VMs are monitored.
[0020] The LMS can detect VM crashes, can monitor specific applications (e.g. MT4) to see if they are running, and can also monitor the system load, the memory and the disk space usage. For example, the monitoring system can monitor 25 Rackspace accounts using concurrent threads (one Java thread per Rackspace account) with between 20 and 70 VMs per account. Each VM can be monitored every three minutes and a monitored VM can be rebooted if, for example, three consecutive failures are detected. After a failure and a reboot an exponential back-off timer can be adopted to avoid the constant rebooting of misbehaving VMs.
[0021] If a VM fails persistently then an email may be issued to the user to deal with issues that cannot be resolved automatically. For example, LMS may also interface with Twitter to provide Web tweets on the status of each of the VMs.
[0022] It is important to understand that both the foregoing general description and the following detailed description are exemplary and explanatory only, and are not restrictive of the invention as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
[0023] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments. In the drawings:
[0024] Fig. 1 is an architectural overview of a preferred embodiment of the present invention; [0025] Fig. 2 illustrates a preferred signup and Virtual Private Server (VPS) configuration;
[0026] Fig. 3 illustrates a preferred fault detect sequence;
[0027] Fig. 4 illustrates a process for isolating the OS by direct access to the application without use of a desktop; and
[0028] Figs. 5(a) - 5(d) illustrate of creating and managing accounts.
DESCRIPTION OF THE EMBODIMENTS
[0029] In the following description, for purposes of explanation and not limitation, specific techniques and embodiments are set forth, such as particular sequences of steps, interfaces, and configurations, in order to provide a thorough understanding of the techniques presented here. While the techniques and embodiments will primarily be described in the context of the accompanying drawings, those skilled in the art will further appreciate that the techniques and embodiments can also be practiced in other electronic devices or systems.
[0030] Reference will now be made in detail to exemplary embodiments of the present invention, examples of which are illustrated in the accompanying drawings. Whenever possible, the same reference numbers will be used
throughout the drawings to refer to the same or like parts.
[0031] Figure 1 illustrates an architectural overview of a preferred
embodiment of the present invention, including a website 10, virtual machine management 12, virtual machines 14, applications 16, plugins 18, and mirror applications, all of which are available to users 22.
[0032] There are two problems addressed by the present invention. The first is the need when running certain virtual applications, such as those related to Forex, to minimize downtime. The second is to assure the security of the applications being run, particularly the EAs.
[0033] Thus, the present invention is a scalable, cost-effective VPS for virtual application hosting on a continuous, uninterrupted, fault-tolerant, persistent basis. The invention leverages a Linux-based cloud-computing environment and optimized X Windows sessions to support remote desktop hosting of any Windows or Linux application. This is outlined in the architecture diagram of Fig. 1, as described in further detail below. [0034] Users 22 can log onto their remote applications 16 over the Internet from a Windows, Linux, or Mac computer, with a rapid response time and support persistence of the application after they log off. Although the invention can be configured with any Windows application, it will be illustrated herein, by way of example and not limitation, using the MT4 Windows application for Forex currency trading. MT4 is a de facto Forex standard. Unlike all currently available VPSs used for the Forex trading market, in a preferred embodiment the invention need not be Windows server-based and may offer a unique environment, without a desktop, completely free from viruses, spyware, and trojans.
[0035] At the heart of the invention platform is a virtual machine
management (VMM) subsystem 12, which includes a back-end server configuration that manages multiple virtual machines (VMs). The VMM module provides an interface between the user interface (the Web site 10) and the management of the underlying VMs 14 for each user. VMM 12 is capable of dynamically creating a VM without administrator influence for a specific user who has chosen a specific broker configuration. The user can choose, for example, any combination of over 100 Forex broker-customized MT4 releases and an EA from drop down lists on the website.
[0036] Each EA is a robot trading application, which is written in a unique language called MetaQuotes (MQ4) for use with the MT4 application. The MT4 application is executed in a Linux environment using the open-source Wine toolkit. Furthermore, through the Web site, users can mirror other EAs onto their VM by means of a Mirror Application (SkyApp) allowing completely customized VM configuration without any direct user involvement in this process.
[0037] This is a totally user-transparent, fully automated process in the Forex currency trading market that is a zero-configuration product.
The User Account Creation and VPS Configuration Process
[0038] This section provides an overview of the user account and signup process to illustrate the procedure and function of the invention for the MT4 application. This process is illustrated using Fig. 2 as comprising eight steps, 1-8.
Step 1:
[0039] A user signs up by going to the Sign-up Web page. The signup procedure is a one-step process, and on this page, the user preferably enters the following information: • MetaTraderBroker: The user has multiple MetaTraderBroker custom installations to choose from. Other brokers can be added, as needed. Typically, a user will have already signed up with a broker so that they can trade Forex currencies. Each broker provides a custom MT4 application that is configured to logon to that specific broker. The user therefore may select which broker they want to use by selecting from a simple drop-down list.
• Expert Advisor: The user then selects which EA they want to use, such as for example from the list of the invention affiliate EAs by again selecting from the drop-down list.
• Account Details: The user chooses a username and a password for his account.
• Personal Details: The user then enters his personal information, e.g., name, address, telephone, email address, and so on.
• Credit Card Details: The user provides his credit card details for payment for the selected subscription services.
• User Agreement: The user finally checks the box to agree with a user agreement and clicks "Create VPS Now" to create his VM and begin trading with his desired broker and EA.
Step 2:
[0040] The VMM creates a VM for the user and is configured with the user's choice through interaction between the VMM and the newly created VM.
[0041] A wizard simplifies the complex installation process and configuration of a new VPS for a user, and thus makes it far simpler to use than any other MT4- based VPS on the market today.
[0042] The Wizard takes a user from initial signup through the selection of an expert advisor, the selection of their Forex broker, the building of their own virtual private server configured with their MT4 version for their broker, in around 5 minutes. The GUI is user friendly and hides back-end code necessary to perform and simplify this process into three steps. The subscriber selection of the
MetaTrader (MT4) Trading Platform may incorporate, for example, more than 120 custom MT4 broker installations and subscription-based expert advisors (EAs), all installed or reconfigured automatically using this simple wizard. [0043] The wizard integrates the following technical functions in three short configuration steps once a user signs up for subscription by specifying an EA product:
1. Step One (Client-side Configuration): Provides access to all of the NX client installation installers and auto-detects the system the user is running on to minimize the client-side installation for accessing the remote desktop.
2. Step Two (Forex Broker Choice). Provides a simple intuitive list of supported Forex brokers (120 installations at this point) for the user to select their preferred broker or to find out about brokers by browsing the home pages of each of the brokers, to select one for use.
3. Step 3 (VPS Building and Configuration). To the user, this process is represented by a user-friendly progress bar, but in the background the following functionality:
a. First, a VM request is issued to Rackspace for the creation of a new VM
b. This request is monitored using an AJAX JSON callback at 2-second intervals and feedback about the time remaining estimate of the complete process is provider to the user. At the first stage, this is calculated by the time remaining of the VM built plus some heuristic estimations of the post configuration process.
c. Once the VM build is complete, the VM boots up. The wizard waits for the reboot by monitoring the VM. When the VM boots up, it automatically configures for the specific user by reading details from a configuration file deployed upon VM creation. This process automatically unpacks the MT4 broker distributed on the VM that the user selected.
d. When the VM is ready and the broker is installed, the wizard then takes the EA distribution stored on the website and uploads it to the VM. When this is complete, it reboots the VM to complete the installation process.
e. Upon rebooting, the server automatically starts the NX client application for the user in the background and thus MT4 is running using a virtual graphics server on the VM awaiting the user to connect and resume the session,
f. Once the VM is ready, an NX file is generated for the user and a GUI is provided for the user to select the screen size and to download the
NX file for accessing their VPS.
[0044] Figs 5(a)-(d) illustrate screen shots that demonstrate the process.
[0045] The VM then boots up.
Step 3:
[0046] Upon boot up, the VM receives the configuration information from the VMM and automatically configures the VM for that user with the MT4 broker application he chooses.
Step 4:
[0047] The VMM waits until this process is finished before installing the EA into the broker's EA directory on the VM. Shortly after (usually within a minute), the VM starts a virtual X server and launches the client's MT4 application. This actually runs MT4 with the configuration specified automatically within a virtual graphical display, i.e., this is not visible, but it is running. This is a very important (revise?) aspect of the system because this auto-start process is maintained after any reboot of the system, which is used to implement the fault tolerance of the platform.
[0048] The preferred fault detect sequence is shown in Fig. 3, including steps 300-326.
[0049] The actual application is running with a Window application or X Windows. When there is a failure on the virtual machine detected, the machine will be rebooted as described below.
[0050] In a preferred embodiment, users log into the system with no graphics card. Upon a fault, XWindows is designed to look for a graphics card or a virtual X server, so the VM may in effect look for a something that is not there. Accordingly, it is generally impossible to restart that process without the user logging in.
[0051] To restart the application automatically so that it runs on the remote server, there is provided a log-in without the presence of the actual user, and that is not visible. The log-in is virtually hosted on an Xserver. When the VM boots up, during the bootstrap sequence, there is provided the ability to fake a user's connection to simulate a user's logging onto the machine.
[0052] Preferably, an NX client is started on the server, which uses the VNC server to bootstrap X Windows and enables a start MT4 running within that virtual window system. That is part of the complexity required. A second part is to transition from that condition, when the user actually logs in a physically fashion. The user will not detect the conversion. When a user logs in using NX, NX is configured to invoke a script. Then a plug in script is used that terminates the virtually server and creates a condition as if there was never one there in the first place. This happens at almost the same time the user logs in so that it seems as if nothing has ever happened.
[0053] The application thus runs on from the time after a reboot of the fault until the user comes back in. The whole time the MT4 is still running, so the down time is minimized (e.g., maybe one to two minutes).
[0054] Before the fault, the user is running a MT4 in the NX environment that uses its own Window system configuration. After the fault, it runs using VNC until the user actually logs in again. The virtual server remotely displays XWindows VNC.
[0055] Because NX for remote viewing is several times faster than VNC, NX is preferred. Because VNC permits virtual log-in without the presence of the user, it allows for automatic continued application up time in the event of a system fault.
[0056] Thus, upon a general VM failure, the cloud provider detects the issue and will reboot the VM to solve it. Upon reboot, the VM will start the MT4 application automatically and, therefore, the trader will only lose a few minutes of trading upon each failure.
[0057] The VM may, for example, be based on Ubuntu (a Linux instantiation) but is highly configured. The desktop of the VM is completely shut down and a user only has access to his MT4 application. The user cannot start any other application on the VM and therefore cannot gain access to the underlying configuration or intellectual property (IP) of the design of the mechanics of the underlying VM operation. However, the design not only protects the IP invested in the capacity to host a virtual application, it also protects the IP of any affiliates, such as EAs.
[0058] This isolation of the OS is achieved by direct access to the application without use of a desktop. The applicable process is shown in Fig. 4 as including steps 400-418.
[0059] Thus, the present invention provides an extremely simple operating environment for the user. And since most users are not familiar with Linux, this design will minimize confusion for users and protect both the users and operators from countless configuration issues that would result in a completely open system.
Step 5:
[0060] The user is notified, for example by an email, that the VM is ready for use, along with a request to download the latest version of a client-remote application, which connects the user's host computer to the VM. A free client application may be used, such as that which may be obtained from a company called No Machine.com. This particular free application is available for the
Windows, Linux, and Solaris OSs. The user is also asked to log into his VPS account on the website to retrieve his customized NXS file for access to his account. The NXS file is a NX virtual desktop configuration file, which is used by the NX client-side application to access the VM. Mobile tablets (e.g., iPad) and smart cell phones may also be allowed to access the system.
Step 6:
[0061] The user downloads his NXS file securely via a secure socket layer (SSL) to his desktop. The NXS file is analogous to a private key to the user's VPS server. The NXS file contains all of the session configuration, location, and authentication information to access the VPS.
Step 7:
[0062] The user double-clicks the NXS file to his desktop and, within a relatively short period of time (e.g., within a few seconds), a window appears showing the remote desktop with MT4 running. The ready-to-use, subscribed EAs also appear in the user's MT4 EAs folder.
Step 8:
[0063] If the user has additional EAs that he wishes to upload on his platform, he may use a desktop application such as SkyApp, which locates his local MT4 EA folder and mirrors the EAs installed in that directory to his MT4 EA directory on his VM. This allows the user to further customize his remote virtual machine without needing to perform any specific installation himself.
[0064] The invention thus may be used to achieve user-friendliness as a top priority and allow users to be free from all installation and configuration issues for their remote desktop VPSs.
[0065] Thus, in a preferred embodiment, a Linux-based cloud-computing environment and optimized XWindows sessions support remote desktop hosting of any Windows or Linux application. This unique combination of several technologies enables users' access to remote VM sessions within a UNIX environment in a safe, scalable fashion. Users can log onto their remote application using a Windows, Linux, or Mac OSx computer, with a rapid response time, support for persistence of the application after they log off, and fault tolerance to ensure their applications run uninterrupted 24 hours a day, 7 days a week.
[0066] Thus, the invention, in a preferred embodiment, by way of example and not limitation, may be said to bridge five technologies: cloud computing and the use of VMs; a user-friendly, highly customized, locked-down hosting environment on each VM; the Wine toolkit for running Windows-based applications on a Linux OS; an NX remote desktop for efficient visual access to the remote desktop; and a website that provides secure automated account and VM creation and
configuration. These technologies together provide a unique combination for a cost- effective, scalable, secure, user-friendly infrastructure for virtual hosting of long- running applications. The invention's initial application is MT4, a cte facto standard Forex trading platform.
[0067] Due to security problems, one may choose not to send NXS files by email to users. Instead, users may download a customized NXS file from the website. The Web download will be SSL download. Similarly, a subscriber upload of MT4 files (required to run an EA or even multiple EAs in a user's account) may be made to the Web server (again via an SSL link). The Web server can then automatically download the files to the user's account on the appropriate VM.
[0068] EA file downloads are common with EA providers. EA files are routinely uploaded by subscribers to Window Forex VPS servers. However, this upload and file placement on the VPS needs to be done manually by the user. Preferably, this is done automatically as soon as the user points to his MT4 directory on his home machine where the files are installed. Moreover, this may be done for all installed EAs simultaneously for each installed broker-branded MT4 installation.
[0069] The advantages that various aspects and embodiments of the present invention may offer, alone or in combination, are summarized as:
1. The Invention Architecture, a Model for Affordable Linux-Based APS Hosting [0070] The invention has developed a unique customization of the
Ubuntu10.10 OS that is designed to work in a remote VM. The VM is based on Ubuntu but, as was described above, is highly configured so that a user only has access to a specific running application (e.g., MT4). A user cannot start any other application on the VM nor can he gain access to installation, modification, configuration, or network services available on most OSs by default. This architecture enables cost-effective virtual remote hosting of any Linux or Windows- based application on a Linux VM for the following reasons:
• By disabling all functions, users cannot gain access to any of the conventional Ubuntu configuration tools. This removes a massive support overhead that would normally be incurred in such an environment because offering uncustomized off-the-shelf remote Linux VPS service would incur support not only for the product/application it is hosting, but also for the OS itself. Supporting Linux for customers is not a scalable proposition for economic virtual hosting solutions for specific applications and would drastically change any business model for providing Linux-based VPSs for Windows OS users.
• This architecture provides an extremely simple operating environment for users that typically use Windows. This simplicity can be extremely user-friendly for Windows users, and little or no learning curve needs to be undertaken in order to use the product.
• This architecture protects intellectual property in withholding access to the underlying mechanics of the customized implementation for installing and configuring applications and providing long-running fault tolerance features. A competitor masquerading as a user will be unable to gain access to the VM to attempt to copy or understand how the VM operates and provides its configuration and persistent features.
2. Affiliate IP Protection (e.g., EAs)
[0071] Due to the nature of the VM, its design also protects any data or intellectual property that affiliates may try to access. This is extremely important and creates an untapped marketplace within the scope of Forex MetaTrader currency trading for protecting the intellectual property of EA providers. As noted above, EAs are multiple tools that decompile EX4 files back into the source code. Therefore, a competitor could very easily copy an EA, modify it, and release it as their own EA. This is a massive problem for EA providers and shapes any commercial model EA developers have for their products.
[0072] However, the invention solves this issue through the locked-down nature of the architecture described above, which does not allow a user to gain access to anything other than MT4. This makes it impossible for a user to gain access to EX4 files and, therefore, he cannot copy them. This level of protection provides a unique business advantage within the Forex industry. EA providers are uniquely protected against theft and misuse of their EAs.
[0073]
3. Fault Tolerance: The Invention Provides Unparalleled Uptime
The VM preferably automatically starts the graphical-based T4 application upon reboot. This is a nontrivial task because, in order to restart a graphical application on a remote server, one provides a mechanism that not only can create a virtual X server for hosting the X application, but this mechanism is also compatible with the remote access method that a user uses to access his VM. As described above, the VM described herein solves this problem through the use of a virtual network computing (VNC) server that interfaces or handshakes, through a complex set of timed server control commands, with the NX client upon a user login to provide seamless switching between a virtual graphics server and an NX client. These timing commands refer to a mixture of Cron jobs (jobs that run at set intervals) and hand over scripts that allow the user to transfer between the VNC session and the NX session upon logging into the system. Basically, when a user logs on an NX startup script is called, which is run as the user. Now, because the user does not have the permission to kill the background VNC session, a handshake mechanism is used to hand over this over to a root process that monitors for user loggings. When this is activated a root process is started and kills the VNC job allowing the user to log in using a normal NX session (because the VNC session is now killed). The way this works is that the trigger is activated and the user script is frozen preferably for no more than around 20 second to allow time for the root process to complete, then the session resumes as normal.
[0074] From a user's experience perspective, this provides an unparalleled uptime for his remote VPS, and particularly for an MT4 user, this means that his MT4 application will be available for currency trading. This may be a goal for an MT4-based VPS. Even with a server failure, the system can recover within approximately a minute after the cloud-computing vendor resolves the specific hardware outage. One cloud-computing vendor, RackSpaceHosting, that provides the underlying infrastructure has a 100% uptime SLA (Service Level Agreement), which means their confidence in the uptime for a server is so high that they refund costs if there is any downtime.
[0075] Ubuntu servers are amongst the most reliable in the industry, often staying up for years. An outer bound for VM failure of six months is believed to be reasonable, meaning that on average a server will fail at most twice a year. A cloud-computing provider should be able to detect such a failure within two minutes and will reboot the VM. Then, the VM, upon reboot, will automatically restart the MT4 graphical application, preferably within one further minute, and the customer would be back trading again within three minutes. Under this exemplary scenario, a customer should experience a maximum of six minutes downtime per year, which is several orders of magnitude superior in performance compared to any other VPS available today. This is equivalent to an uptime of 99.99999%.
4. VM Security
[0076] The user session is run in an SSL environment. A user of the invention never knows his back-end account username and password because he can only gain access them through his NX client-side application, which uses encrypted authentication information. Therefore, a user only has access to his Web login details and the NXS file that is used to access his back-end virtual hosting account. Because the actual details are never made available outside the secure website, this makes it impossible for an attacker to gain access to a user's VPS.
5. Security of Windows Applications
[0077] As described above, users can run Windows applications within a Linux-Wine sandbox, which not only protects them from viruses targeted for a Windows machine, but also allows their session on Linux to run within a virtual environment within their (obfuscated) user accounts. This approach offers robust security from external and internal forms of attack.
6. Scalability
[0078] The invention leverages a cloud-computing hosting environment and can dynamically create VMs for its customers on the fly. With, for example, one customer hosted per VM, scalability is only limited by a VM computing provider. And since a VM provider may have 60,000 cloud servers— each capable of hosting sixty VMs— with the existing infrastructure, over three million customers may be serviced. Furthermore, with two customers on each VM, the number of customers that may be hosted can double to six million
[0079] Security is high given the disclosed system. The user goes into a virtual application of the MT4 currency trade in application when he logs on. There is no desk top, therefore, there is no browser and no internet which may not be secure. By not going into a browser or internet, but using the T4, that provides a very secure environment.
[0080] Another feature is that the entire user account creation process is automated and the accounts are created on the websites in minutes. Another unique feature is that MT4 is a broker specific brand of trading application. What this means is the company can be accessed worldwide, which is global. When a broker wants to use the MT4 as their currency platform because it runs four times faster the broker may contact the licensee to obtain a license, and the application is granted to the broker so that the broker's advertisement appears on one the broker's servers website that appears on the front end. The user can use a demo account which is free for paper trading and sign up with the broker for MT4. The user can then decide to send money to the broker and open a live trading account. The pull down menu and configuration described above gives the user the choice of brokers.
[0081] The user or subscriber who is interested may decide to buy a subscription which is monthly. He signs up by choosing the kind of broker on a drop down list on a website.
[0082] He can also choose whether he wants a basic service or premium service. The basic service will enable the subscriber to upload his EA to the website. It will then be automatically transferred to this account on the VM. The premium service will enable a user to subscribe to a specified EA for an additional cost. There can be a drop down list of premium EAs. The chosen EA then works inside of MT4.
[0083] The prices of the premiums EAs may vary depending on the EA. Once these are selected, the broker and the EA, then the user can sign up for either the basic or premium account and pay through a credit card or PayPal. Preferably it will be for one month with recurring payment. [0084] If a user wants to put his own EA in the system, the user can upload from the user's account, his own EA and transfer in to the appropriate directory. The user does not do anything more. He logs into his account on the website to do it. It does not matter which server he is using.
[0085] He goes up to his website and does things on this website once he is logged in then he can do certain steps to upload one of his EAs he will be able to do that by selecting his directory and upload that whole directory.
[0086] The user may have a separate application of clients by accessing a website called No Machine.com. He downloads an application from his computer from a website, he then installs the application by pressing an application wizard. He only does that once and can use it as many times as he likes. He does not have to keep downloading when he changes applications.
[0087] During the process of account creation there is an email automatically sent to the subscriber, which tells him that his VM has been created. If he uses the basic service and he also installs the application he goes up to his new account with the user name and password and he clicks to download, a text file with all information in it. He only needs to double click the file and he is automatically put into his VM.
[0088] When the file is clicked, the VM is opened, the user is going directly into his virtual machine; he is in his MT4 trading application. He can do what he wants to do. It looks identical to his Window application. The difference may not be apparent.
[0089] Using the present teachings, one may decide which EAs are put on the website as premiums EAs. What that means is there is no installation required by the subscriber; the subscriber signs up and from that point on, no further installation is required.
[0090] When an EA makes a trade, that trade will be mirrored in the user's account on his VM so that the trades that are made by the experts will be the same trade as made by the subscriber; the subscriber will choose from the drop down list, will be able to check from each of these experts on their performance.
[0091] An additional feature is that all updates of the EA software will be automatically provided to the subscriber in his VM. In the trading application actually they will be added so that if he is running more than one version, he does not have to change it, but he can. [0092] In addition there can be set files. These set files are parameters for the EAs such as stop loss, and a variety of other parameters. These parameters are all currency parameter specific. The website can provide updates to all set files to all currencies that are supported.
[0093] The foregoing description of possible implementations consistent with the present invention and does not represent a comprehensive list of all such implementations or all variations of the implementations described. The description of only some implementations should not be construed as an intent to exclude other implementations. One of ordinary skill in the art will understand how to implement the invention in the appended claims in many other ways, using equivalents and alternatives that do not depart from the scope of the following claims.
[0051] The systems and methods disclosed herein may be embodied in various forms including, for example, a data processor, such as a computer that also includes a database. Moreover, the above-noted features and other aspects and principles of the present invention may be implemented in various
environments. Such environments and related applications may be specially constructed for performing the various processes and operations according to the invention or they may include a general-purpose computer or computing platform selectively activated or reconfigured by code to provide the necessary functionality. The processes disclosed herein are not inherently related to any particular computer or other apparatus, and may be implemented by a suitable combination of hardware, software, and/or firmware. For example, various general-purpose machines may be used with programs written in accordance with teachings of the invention, or it may be more convenient to construct a specialized apparatus or system to perform the required methods and techniques.
[0052] Systems and methods consistent with the present invention also include physical, tangible, and /or non-transitory computer readable storage media that include program instruction or code for performing various computer- implemented operations based on the methods and processes of the invention. The media and program instructions may be those specially designed and constructed for the purposes of the invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of program instructions include, for example, machine code, such as produced by a compiler, and files containing a high level code that can be executed by the computer using an interpreter.
[0094] The foregoing description has been presented for purposes of illustration. It is not exhaustive and does not limit the invention to the precise forms or embodiments disclosed.
[0095] Modifications and adaptations of the invention can be made from consideration of the specification and practice of the disclosed embodiments of the invention. For example, one or more steps of methods described above may be performed in a different order or concurrently and still achieve desirable results.
[0096] Other embodiments of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope of the invention being indicated by the following claims.

Claims

WHAT IS CLAIMED IS:
1. A system for virtual application hosting for a plurality of remote users comprising:
a website configured to:
receive an access request from one of the users via a client application running on the user's computing device,
configure a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user, and
maintain the primary application executing in the user's session in the event of a failure of the virtual machine;
wherein upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure.
2. The system of claim 1 , wherein the virtual machine operates NX technology.
3. The system of claim 1 , wherein the primary application is the Meta Trader 4 Automatic Trading System (MT4) which is executed using the Wine toolkit.
4. The system of claim 1 , wherein a further secondary application that may be accessed by the user is an expert advisor (EA) in the MetaTrader 4
Automated Trading System (MT4).
5. A method for virtual application hosting for a plurality of remote users comprising:
receiving an access request from one of the users via a client application running on the user's computing device;
configuring a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user; and
maintaining the primary application executing in the user's session in the event of a failure of the virtual machine,
wherein upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure.
6. The method of claim 5, wherein the virtual machine method operates NX technology.
7. The method of claim 5, wherein the primary application is the Meta Trader 4 Automatic Trading System (MT4) which is executed using the Wine toolkit.
8. The method of claim 5, wherein a further secondary application that may be accessed by the user is an expert advisor (EA) in the MetaTrader 4
Automated Trading System (MT4).
9. A non-transitory computer readable medium that, when run on a processor, provides a method for virtual application hosting for a plurality of remote users comprising:
receiving an access request from one of the users via a client application running on the user's computing device;
configuring a Linux based virtual machine for the user on one of a plurality of nodes managed by the website, wherein the user's session employs the use of one primary executable application accessible only to the user at the user's computing device, the same application being the one and only one primary accessible upon any request by the user; and
maintaining the primary application executing in the user's session in the event of a failure of the virtual machine,
wherein upon detection of the failure of the virtual machine the application is automatically restarted without re-login by the user and, upon re-login by the user, the user is reconnected to the application with the primary application having been continued automatically after the failure.
10. The computer readable medium of claim 9, wherein the resultant virtual machine operates NX technology.
11. The computer readable medium of claim 9, wherein the primary application is the Meta Trader 4 Automatic Trading System (MT4) which is executed using the Wine toolkit.
12. The computer readable medium of claim 9, wherein a further secondary application that may be accessed by the user is an expert advisor (EA) in the MetaTrader 4 Automated Trading System (MT4).
PCT/US2012/028201 2011-03-11 2012-03-08 Methods and systems for persistent virtual application hosting WO2012125392A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161451955P 2011-03-11 2011-03-11
US61/451,955 2011-03-11

Publications (1)

Publication Number Publication Date
WO2012125392A1 true WO2012125392A1 (en) 2012-09-20

Family

ID=45894662

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/028201 WO2012125392A1 (en) 2011-03-11 2012-03-08 Methods and systems for persistent virtual application hosting

Country Status (1)

Country Link
WO (1) WO2012125392A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694637B1 (en) * 2001-02-16 2014-04-08 Parallels IP Holdings GmbH Virtual private server with CPU time scheduler and isolation of system components
CN103929413A (en) * 2013-12-16 2014-07-16 汉柏科技有限公司 Method and device for preventing cloud network from being attacked
CN104794031A (en) * 2015-04-16 2015-07-22 上海交通大学 Cloud system fault detection method combining self-adjustment strategy with virtualization technology
CN106126303A (en) * 2016-07-01 2016-11-16 合信息技术(北京)有限公司 The installation method of (SuSE) Linux OS, Apparatus and system
CN106469415A (en) * 2016-08-31 2017-03-01 醇钱科技发展(北京)有限公司 Network movable type expert's signal follows transaction system and its method
CN107896176A (en) * 2017-12-05 2018-04-10 深圳市共济科技股份有限公司 A kind of processing method of calculate node, intelligent terminal and storage medium

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001095093A2 (en) * 2000-06-02 2001-12-13 Sun Microsystems, Inc. Process persistence in a virtual machine
US20030118353A1 (en) * 2001-12-20 2003-06-26 Baller Eric Henry Method and apparatus for managing intelligent assets in a distributed environment
US20050108709A1 (en) * 2003-10-28 2005-05-19 Sciandra John R. Method and apparatus for accessing and managing virtual machines
US20060085792A1 (en) * 2004-10-15 2006-04-20 Microsoft Corporation Systems and methods for a disaster recovery system utilizing virtual machines running on at least two host computers in physically different locations
US7213246B1 (en) * 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
WO2007149671A2 (en) * 2006-06-23 2007-12-27 Sentillion, Inc. Remote network access via virtual machine
US7370164B1 (en) * 2006-03-21 2008-05-06 Symantec Operating Corporation Backup of virtual machines from the base machine
US20080271020A1 (en) * 2007-04-25 2008-10-30 Raymond Francis Leitz System and method for working in a virtualized computing environment through secure access
US20100037096A1 (en) * 2008-08-06 2010-02-11 Reliable Technologies Inc. System-directed checkpointing implementation using a hypervisor layer
US20100083250A1 (en) * 2008-09-30 2010-04-01 Fujitsu Limited Virtual machine system, and method for managing thereof

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001095093A2 (en) * 2000-06-02 2001-12-13 Sun Microsystems, Inc. Process persistence in a virtual machine
US20030118353A1 (en) * 2001-12-20 2003-06-26 Baller Eric Henry Method and apparatus for managing intelligent assets in a distributed environment
US7213246B1 (en) * 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
US20050108709A1 (en) * 2003-10-28 2005-05-19 Sciandra John R. Method and apparatus for accessing and managing virtual machines
US20060085792A1 (en) * 2004-10-15 2006-04-20 Microsoft Corporation Systems and methods for a disaster recovery system utilizing virtual machines running on at least two host computers in physically different locations
US7370164B1 (en) * 2006-03-21 2008-05-06 Symantec Operating Corporation Backup of virtual machines from the base machine
WO2007149671A2 (en) * 2006-06-23 2007-12-27 Sentillion, Inc. Remote network access via virtual machine
US20080271020A1 (en) * 2007-04-25 2008-10-30 Raymond Francis Leitz System and method for working in a virtualized computing environment through secure access
US20100037096A1 (en) * 2008-08-06 2010-02-11 Reliable Technologies Inc. System-directed checkpointing implementation using a hypervisor layer
US20100083250A1 (en) * 2008-09-30 2010-04-01 Fujitsu Limited Virtual machine system, and method for managing thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MASLAK B A ET AL: "COORDINATED RESOURCE RECOVERY IN VM/ESA", IBM SYSTEMS JOURNAL, IBM CORP. ARMONK, NEW YORK, US, vol. 30, no. 1, 1 January 1991 (1991-01-01), pages 72 - 89, XP000227722, ISSN: 0018-8670 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694637B1 (en) * 2001-02-16 2014-04-08 Parallels IP Holdings GmbH Virtual private server with CPU time scheduler and isolation of system components
CN103929413A (en) * 2013-12-16 2014-07-16 汉柏科技有限公司 Method and device for preventing cloud network from being attacked
CN104794031A (en) * 2015-04-16 2015-07-22 上海交通大学 Cloud system fault detection method combining self-adjustment strategy with virtualization technology
CN106126303A (en) * 2016-07-01 2016-11-16 合信息技术(北京)有限公司 The installation method of (SuSE) Linux OS, Apparatus and system
CN106469415A (en) * 2016-08-31 2017-03-01 醇钱科技发展(北京)有限公司 Network movable type expert's signal follows transaction system and its method
CN106469415B (en) * 2016-08-31 2019-06-28 醇钱科技发展(北京)有限公司 Network-based movable type expert's signal follows transaction system and its method
CN107896176A (en) * 2017-12-05 2018-04-10 深圳市共济科技股份有限公司 A kind of processing method of calculate node, intelligent terminal and storage medium
CN107896176B (en) * 2017-12-05 2021-03-16 深圳市共济科技股份有限公司 Processing method of computing node, intelligent terminal and storage medium

Similar Documents

Publication Publication Date Title
US10827008B2 (en) Integrated user interface for consuming services across different distributed networks
US20210409483A1 (en) Multi tenancy for single tenancy applications
US9489227B2 (en) Apparatus and method for virtual desktop service
US9361080B2 (en) Multi tenant access to applications
US9807153B2 (en) Managing user state of cloud desktops
EP3017397B1 (en) Cryptographically attested resources for hosting virtual machines
US9710297B2 (en) Dynamic allocation and assignment of virtual environment
CN106462467B (en) Integrated API and UI for consuming services over different distributed networks
US8856917B2 (en) Single sign-on for remote desktops
US20170161059A1 (en) Management of multiple application programming interface versions for development environments
US20130067345A1 (en) Automated Desktop Services Provisioning
US20130074064A1 (en) Automated infrastructure provisioning
US20130283263A1 (en) System and method for managing resources in a virtual machine environment
US20130247036A1 (en) Information processing apparatus, virtual image file creation system, and virtual image file creation method
US8677454B2 (en) Utilization of virtual machines by a community cloud
WO2012125392A1 (en) Methods and systems for persistent virtual application hosting
Frampton Complete guide to open source big data stack
US10394534B2 (en) Framework for flexible logging of development environment deployment
WO2002073438A1 (en) Method and system for management of remote devices
Ribeiro Common infrastructure provisioning
Ward et al. SQL Server on Azure Virtual Machine
Seppänen Elastic Build System in a Hybrid Cloud Environment
AU2020319582A1 (en) Desktop virtualization with linked power management to client devices

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: 12711060

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12711060

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 25/02/2014)

122 Ep: pct application non-entry in european phase

Ref document number: 12711060

Country of ref document: EP

Kind code of ref document: A1