WHITE PAPER Draft WorkSpot 1.0 June 6, 1999 Greg Bryant Project: Virtualize GNU/Linux, make it available to consumers over the Internet. SOME HISTORY: The primary WorkSpot goal is to create a virtual desktop, that resides on the Internet, which a user can access from anywhere else on the web. This is a client-server application. Most of the computation takes place on the server-end. But what should the user-end, that is the client-end, look like? Our initial try was to create an HTML-level user interface, and to allow developers to create HTML-level applications to plug into the user's data. This is also the approach of our competitors. But how about creating a direct connection to the desktop of a virtual computer? The hardest first part of this, we knew, was the screen connection to a browser. Later, we found this work was already done and available under GNU GPL or General Public License (i.e. FreeSource). That project is called Virtual Network Computing (VNC). With VNC available, it's fairly easy to imagine what the WorkSpot technology should look like. SOME ARCHITECTURE: 1. The top layer is a VNC connection, over the Internet. VNC uses a Java applet that can run securely within a user's browser. 2. The VNC connection is made to a user desktop. This desktop has to be a "web-enabled" desktop, through which you can browse, and onto which you can drag URL's. After all, people will be using it in a browser. It has to integrate with the verb and noun that have made the WWW so influential: "to browse" and "the hyperlink". But it also needs traditional desktop functionality, icons for launching applications, filenames, going to other desktops etc. Incidentally, this gives us the opportunity to actually merge a decent browser into a desktop. And to organize the creation of a decent desktop [with, for example, integrated history, and multiple 'saved' desktops, in which you can leave applications open, and come back to them later...] 3. Under the desktop is a stripped-down version of Debian GNU/ Linux. Ultimately, the consumer-level web-desktop needs to protect normal people from the UNIX programming environment, and to run applications in separate virtual machines etc. But it's still Debian GNU/Linux underneath. 4. The GNU/Linux is stripped-down because it's running on virtual machines. These virtual machines are isolated slices of the real machines they are running on. This is the typical approach to virtual machine technology, as opposed to the Java approach of defining a brand new artificial machine, simulated or emulated, as a standard. 5. The virtual machines will have access to virtualized disk space, acting as close to the machine as possible. Virtual IP addresses, video devices, graphics and numerical acceleration, etc., will also be available. 6, The Virtual Machine Monitors, which actually spawn the virtual machines, will link together an indefinate number of machines. This is so that the actual applications may run on any available real machine. 7. The reason this has never been done is because of worries over bandwidth (internet connections don't deliver much data) and latency (internet signals are too slow for the user to feel real-time control). The broadband problem is being dealt with as we speak. The latency issue can be dealt with by distributing WorkSpot 1.0 to ISP's around the world that are physically close to the user [this also implies that we will be distributing WorkSpot 1.0, and not trying to host everyone ourselves]. THE BUSINESS MODEL Linux, for all the publicity and steep investment (both corporate and community-minded) is available to almost no one. Only programmers and corporations buy boxes and put Linux on them. A very constrained market, by Internet standards. But, if we make a virtual Linux machine available to EVERYONE, this changes everything. Linux will no longer be just a back-end system. It'll be a consumer system, and every computer user will have access to it. This creates a new kind of channel for distribution and payment of services -- users will pay ISP's, developers, and us, for their computing experience. And this will obviously improve GNU/Linux and its offerings. The new channel will be open to all those people and corporations (and there are lots of them) who are, and have, invested lots of money porting consumer products to Linux. Some biggies here are IBM and Corel. These companies, and many others in the worlds of hardware, networking, and telecommunications, can probably be convinced to invest in making WorkSpot successful and omnipresent. Why us? Why wouldn't they make their own equivalent system? Well, we ARE community-minded, we want everyone to make money, and WorkSpot 1.0 will be distributed under the GNU GPL. It's freeware. That gets a lot of attention, and gives us a special place (as long as we are technologically strong). Why would a large company compete against us when they can just make money through us? And invest in us. But how about OUR making money? Investors want to know not just what we're going to do for them, but how we're going to make money in the future. [So we're IPO-able.] Our primary ways of making money are: 1) Maintain the monetary channel between users and providers, and taking a cut. 2) Maintaining the "site" which acts as a software center: categorization of applications, feedback on them, catalyzing new applications, etc. 3) Coordinating the network of ISP's that makes WorkSpot inter-operable across the world. 4) Taking on contracts to: a) add software to WorkSpot (Oracle, IBM etc), making it "automatically available" on the virtual machine (you wouldn't want people to have to configure oracle on a virtual machine -- you should just be able to connect to it), and take a cut of THEIR residuals. b) catalyze developers to use new technologies through WorkSpot c) create workspot connections through various technologies jini, wireless, voice d) refer developers 5) Handling all advertising on the desktop -- there may be some, or their may be none, depending on the user or the ISP. But we handle this transaction since we are the "authors" of the desktop technology. 6) Develop our own software, and get WorkSpot revenues from that. But that's sometime later. We have hundreds of ideas, but our main advantage will be that our company name will be known around the world because of this free platform we've created! The branding possibilities are endless "The WorkSpot office suit" or whatever. WorkSpot will be the platform name, so will carry a lot of weight when people are choosing applications to use on it! and of course our own software will get our highest ratings in the software center (cause we won't charge for it until it's good ...) Since we are using free source, we want to produce free source. In fact, I believe that bits of the revenue stream should be fed back into those projects that are part of WorkSpot 1.0. The GNU, VNC, WINE and Linux projects, for example. But, if the source is free, how do we retain control of the monetary stream between application developers and users? First of all, the GNU GPL means that anyone using EVEN A LITTLE of our code must also give away THEIR source. That means no one can steal the code, run away, and hide it somewhere in a proprietary system. Now, why won't someone somewhere take the code, set it up and CHANGE the monetary stream? Part of the way the monetary stream works, and the way the software works, is that we will see all the transactions of the system. They can't hide any changes they make without breaking the license. But say they just switch roles with us, and put their e-commerce connection in place of ours. What's to protect us? 1. Consumers -- we hope to have heavy industry and non-corporate goodwill, so that if some one does this they will become insignificant since application providers will not be providing their software to that pirated WorkSpot. 2. But in case some big corporation tries to do this (highly unlikely) we have a patent on this business plan: Create a FreeSource virtual machine and desktop, give it away, make money off the resource, application rental, and advertising revenue streams, and sue anyone who tries to make money in the same way, since we have a patent on the business model. Note that the actual relationship between us and developers will be taken care of through standard encryption keys. Once they've developed this relationship with us, they are unlikely to have it with anyone else (rather like VeriSign's business model, but taken several steps further). WorkSpot micropayments will not work unless parties involved have these encrypted- key relationships. So pirated copies of WorkSpot won't be able to "charge" micropayments during application runs. NB: security is taken care of through encryption keys for monetary transactions -- therefore releasing WorkSpot source free, continually under "copyleft", is quite safe. Safer, since many programmers will be thinking about our security issues. THE DEVELOPMENT COMMUNITY: We want WorkSpot 1.0 to be free source because we want people to work on it. Those people will of course be paid residuals for work on WorkSpot, the same way application developers get paid by users of WorkSpot. [As an aside, I should note that web CONTENT providers will also get paid through the WorkSpot mechanism -- they'll get residuals for TV shows, movies, audio, financial information, databases, etc. And we get a cut of all that money flowing for content...] We take our cut. This is good for software, and good for developers and content providers. Free source, used for this purpose, under our authorship, is for the community benefit. That's what the license says. You can do what you want with the code, as long as you keep your changes public. But our patent says you can't do what WE're doing. People could eliminate the micropayment channel, but then only free software will run on the system, since developers who want money will not provide their applications. The question of how a developer who uses and developes free source can get residuals through the WorkSpot mechanism is very important. Users pay for RUN TIME and other resources. The run time charge for an application is the same whether the source is free or not. Identifying the owners, authors of code is important, and doesn't violate the spirit of free source. It's intended just to reward those who organize and contribute to a particular piece of code. If "A"'s code gets incorporated into "B"'s 'product', then everyone will know that B is a thief, and through an eBay-esque public humiliation (through WorkSpot's feedback forum) people will know that "B" stole from "A".