MultiLink Solutions' Products MultiLink Solutions will offer two products, both based on the RMP protocol. The first is a free experimental version of the protocol, which is already being distributed to the Internet community. This is a "beta test" version of the core RMP software, which has not been formally verified or exhaustively tested. The other product will be GroupWare, an industrial quality version of the RMP software, along with a set of functional modules that work on top of it. We will offer three versions of GroupWare to companies: A free demo copy that shows off the uses of GroupWare, but is disabled in some way so that it can not be used with custom applications. This version will be for promotional use only. A developmental copy for programmers writing custom applications. The developmental copy contains the full GroupWare product, with all of the utility modules and some additional developmental tools. The license for a developmental copy will only be good for two years and is only good for up to 10 nodes, so it can not be used in lieu of the commercial version. A commercial version which will be sold by site license. The applications that are developed on top of the developmental copy will be run on the commercial version. ProductCustomersFunctionalityVerifiedCostExperimentalreleaseInternet usersCore technologyNoFreeGroupware -- DemoCommercial developersAll, only for demonstrationYesFreeGroupware -- DeveloperCommercial developersAllYes$3500 for 10 nodes, 2 year limit on useGroupware -- CommercialCommercial usersAllYes$5000 plus $500/server and $200/clientFigure 1: The GroupWare ModulesThe GroupWare ModulesRMP provides such a wide range of core functionality that almost all distributed and group applications can be built on top of it. Applications built on top of RMP take advantage of its efficient group communication, fault tolerance, load balancing, and security. In order to allow programmers to more easily take advantage of these services, GroupWare provides a set of tools on top of the RMP layer. These tools include MultiTCP, MultiRPC, MessageBus, and ReplicatedObjects. MultiTCP TCP/IP and SPX/IPX are two of the most popular standards that provide reliable communication between two processes. MultiTCP supports the same interfaces, but generalizes the functionality to groups of processes. This allows applications which were written for TCP/IP to take advantage of RMP's benefits with an absolute minimum of porting. In addition, programmers who are familiar with programming in this model can now easily write distributed and group applications that take advantage of RMP. The three interfaces that MultiTCP works with are the WinSock 2 standard, the BSD sockets interface, and the UNIX System V interface. MultiRPC Using Remote Procedure Calls (RPC) is currently one of the most widely used ways to write distributed applications. Remote procedures look the same as local procedures, but execute on a remote server. Current RPC implementations only allow a single server to be used at a time. MultiRPC allows clients to seamlessly use replicated servers, for fault-tolerance, efficiency, and load-balancing. Like MultiTCP, MultiRPC uses an interface which is very similar to current systems, which provides easy access to the base of existing programs and programming expertise. MessageBus The MessageBus tool provides a very easy to use messaging facility, which takes advantage of the popular "publisher/subscriber" model of communication. Subscribers register interest in a set of topics, such as "usa.stocks.ibm". Publishers then send out messages addressed to a given topic, and these are automatically delivered to the appropriate subscribers. In addition to just delivering messages, a message can require that it be handled by one of the recipients. In this case, one of the recipients of the message will be instructed to generate a reply to the incoming message. Because it takes advantage of RMP, the MessageBus is fully distributed and highly efficient, allowing very high numbers of messages to be sent and providing uninterrupted service even if some of the publishers and subscribers crash. The MessageBus can automatically queue up messages for subscribers who are not currently active, and can start up an inactive process when a message comes in that it is supposed to handle. MessageBus provides multiple interfaces for different languages. The interface for C closely resembles SunSoft's popular ToolTalk system, again allowing an existing class of applications to easily take advantage of RMP's efficiency and fault-tolerance. ReplicatedObjects The ReplicatedObjects module provides an object oriented system for replicated and distributed objects. The basic system provides replicated objects, naming and typing of objects, atomic transactions over these objects, and automatic updates of replicated objects if a new copy is created or if a failed copy comes back on-line. ReplicatedObjects supports both a custom interface that allows programmers to easily take advantage of the replicated nature of groups, as well as supporting the CORBA 2.0 standard. Intellectual Property In the development and marketing of GroupWare, as with every other computer product, intellectual property is a key issue. Because network protocols are much more successful if standardized, we must simultaneously try to make RMP a public standard at the same time we are gaining revenues from GroupWare. Promoting RMP into a widely accepted standard requires both that the design documents for RMP be made public and that a sample implementation be given away at no cost. By giving away a version of RMP to Internet users, we are building a large user base, positioning RMP to be the standard group communications protocol for the Internet, obtaining free publicity for RMP, and attracting other developers to build applications on top of RMP. For all of these reasons, giving RMP away to the Internet community is critical to the success of the company. The experimental copy of RMP has been available on the Internet since January, 1995. Standardizing RMP for group communications on the Internet will open up a very large market in the PC and business world. This path has allowed FTP Software and other vendors to build a huge business selling TCP/IP. We will manage to simultaneously sell GroupWare while giving away the experimental RMP implementation by differentiating the products so that GroupWare is much more attractive to business users, while RMP is attractive to experimental and academic users. We will do this by providing more features in GroupWare, by formally verifying and rigorously testing GroupWare, and by providing exemplary support for the commercial version. While promoting RMP as an open standard will open the market up to competition, it will also make GroupWare much more attractive to Independent Software Vendors (ISVs). MultiLink will work with ISVs to help them develop mass market applications such as databases, games, conferencing tools, and computer supported collaborative work (CSCW) systems. Based on our experience, it will take another company at least 18 months to have a commercial version of RMP ready for sale, even with the aid of the standards documents. This will provide MLS with a 1.5 to 2.5 year window before it will see direct competition. MLS will have a very mature product by that time, and a large market presence. Combined with the formal verification of the implementation of GroupWare, our dedication to support, and continued R&D, this will allow us to maintain the leadership in the RMP market, without proprietary standards or patents. Current Ownership of GroupWare The design and development of RMP has been funded over the past three years by a large number of research sponsors donating research money to the University of Illinois, the University of California at Berkeley, and West Virginia University. Brian Whetten began developing RMP three and a half years ago at the University of Illinois, for his M.S. thesis project. He implemented the first version of RMP there, and ported a MessageBus tool to it. After the first version of RMP demonstrated a number of shortcomings of the protocol, a second version of RMP was designed in early 1994. This version has been implemented by Todd Montgomery at West Virginia University, with the assistance of Jack Callahan, who is in charge of the formal verification of the protocol and our implementation of it. The actual programming of the current version of RMP has been funded exclusively by NASA and West Virginia University. NASA strongly encourages that the current beta test version be made publicly available, but claims no commercial or financial rights to RMP. NASA has no concern over the commercialization of RMP, and has no legal rights to impede MLS. Continuing to provide the free experimental version of RMP is critical to MLS's success, so there is no conflict of interest between MLS and NASA. In fact, we believe that NASA may become a major customer of GroupWare after it is formally verified. The primary developers of RMP, Brian Whetten, Todd Montgomery, and Jack Callahan, along with the members of this business team, have all signed an Ownership Agreement document, which assigns the ownership of this business plan, RMP, and profits which result from the sale of RMP. Formal Verification of GroupWare Professor Jack Callahan, from West Virginia University, is in charge of the formal verification of our implementation of RMP. Professor Callahan is Todd Montgomery's dissertation advisor. been working with Todd Montgomery to formally verify both RMP and our implementation of it. Unlike most verification teams, which only verify the specification of a protocol or other piece of software, this team is starting with the actual code for RMP and working backwards. Using a ground-breaking technique, the verification team is inserting code into RMP which automatically generates a description of the state machine and algorithms that RMP uses. These descriptions are then being fed into a formal verification tool which allows assumptions to be proven about RMP. These assumptions will demonstrate that the state machine and algorithms actually used in our implementation of RMP guarantee reliable delivery, atomicity and total ordering of messages, even in the face of arbitrary failures. Combined with an extensive testing program, this will enable us to say with great certainty that GroupWare can provide constant availability of communication that behaves correctly even in the face of arbitrary faults. This guarantee, which our key competitor ISIS can not provide, will be of great value to large corporations whose mission critical software absolutely must work correctly in the face of failures.