Rhapsody: A Mighty Multi-Machine by John_Markle@lcmm.qc.ca January, 1997 The Apple/NeXT announcement of December 20th has caused some concern within the MacOS community. In my opinion, there is no need for concern, but rather for celebration. I am optimistic that most current MacOS users will switch over quickly to the NeXT-based MacOS, code-named Rhapsody, since there are many advantages to the incoming object-oriented NeXT technology. Not only is the NEXTSTEP OS mature and robust, but as Byte magazine pointed out a few years back, it is the most respected piece of software on the planet. Coupled with flexible object frameworks for solving practical problems and a powerful development environment, the overall package represents a winning combination for Apple. In a nutshell, what you can expect from Rhapsody is mainframe-league computing on a desktop machine with a user-friendly interface. In a way, Rhapsody will represent the culmination of the advanced design principles (eg, a mainframe on a motherboard) set forth in the original NeXT cube. NEXTSTEP represents a core asset of NeXT, the OS foundation upon which its various middleware objects play; the essential objects of NEXTSTEP have recently been abstracted into OPENSTEP, a cross-platform object standard. Since its introduction, NEXTSTEP has seen a continual enhancement of its features (eg, drag and drop) and, as with the MacOS, many of these features have been copied by competitors (eg, Windows95). I shall back up my fundamental optimism by citing several benefits, reasons why current MacOS users should be looking forward to using Rhapsody. These reasons have been gleaned from my own experience with NEXTSTEP over the past seven years, from intelligence which has been e-mailed to me (thank you, Olivier and Eric), and from lurking on comp.sys.mac.advocacy (thank you all). My trusty old Oxford dictionary's first definition of rhapsody is "epic poem, or part of it, of length for one recitation." Therefore think of this document as my prosaic rhapsody to Rhapsody. I have organized the benefits of Rhapsody according to nine core features: 1) multi-user, 2) multi-linguistic, 3) multi-tasking, 4) multi-threading, 5) multi-processing, 6) multi-platform, 7) multi-object, 8) multi-market, and 9) multi-level. Although there are few details as yet, these features do represent latent properties of NEXTSTEP which will most likely be retained within Rhapsody. 1) Multi-User Whereas the MacOS is designed for a single user (ie, "personal" computer), NEXTSTEP is designed for multiple users. Without a valid user-name and password, one cannot access NEXTSTEP. However, users are easy to create and delete, and each user determines which of his files, if any, can be seen by the neighbouring users. Each user chooses his language, adjusts the application dock and the file viewer to his own liking, and also determines which applications will auto-launch upon his signing on. Using Rhapsody, a family could have separate users for Mom, Pop, Brother and Sister, each reflecting their individual preferences. A small enterprise could have as many users as required, each tailored to a specific business function yet sharing common data. A school could have separate users for each teacher and provide common administration software. Therefore, Rhapsody will be a machine which can adapt to its environment and assume multiple roles in the process. Because of its legacy as an outsider and its need to coexist in a heterogeneous world, NEXTSTEP is by nature very network-friendly. NEXTSTEP supports MacOS, DOS, Windows and UNIX file formats and it speaks all standard networking protocols, including TCP/IP, the Internet protocol. Therefore, Rhapsody should be plug-and-play compatible with any corporate/academic/governmental local-area or wide-area network, and should be able to access any file on any platform. 2) Multi-Linguistic NEXTSTEP provides a choice of several languages for the system user interface and has a Japanese version as well. It addresses language localization issues at the system level and provides guidelines for developers which address this problem. Therefore, if the guidelines have been properly followed, an application developed for NEXTSTEP is capable of supporting multiple languages in its user interface; in fact, a third party could add support for another language. If maintained in Rhapsody, integrated multi-linguistic support will be a feature which will greatly interest multi-national corporations. However, I suspect that this will be a feature which will come later, rather than in the first release. NEXTSTEP now uses Display PostScript Level 2, a device-independent imaging model, for rendering the screen and for printing (ie, high-fidelity WYSIWYG). If this engine is retained under Rhapsody, and if it is updated to Display PostScript Level 3, and if Unicode support is retained, then any language should be representable upon the screen; using the PlanetReady Printers due out this summer, anything on the screen could be easily printed out on paper. Granted, there are several ifs involved in this scenario, but the attraction of a single OS useable most anywhere in the world is a strong argument in favour of providing these features within Rhapsody. One principle followed throughout the development of NEXTSTEP was to use standards wherever possible. Hence, there is a wide variety of standard data formats, compression formats, sound formats, and colour models which are available for use by applications; for example, Pantone colours can be used for consistency between the screen and the printer. Therefore, Rhapsody will be able to fit into almost any shop without much difficulty; by keeping NEXTSTEP's integrated multi-linguistic feature, this shop could be anywhere in the world. 3) Multi-Tasking Pre-emptive multi-tasking is a mainframe-like property which enables an OS to distribute CPU cycles effectively among multiple processes (ie, daemons and applications), and to isolate and shut down aberrant processes. Protected memory, another mainframe-like property which promotes system stability, means that each application runs in its own virtual space and that if any application tries to exceed its own boundaries then it, and only it, will crash. Since Rhapsody will have both of these properties, it should be extremely crash-resistant, a major priority in the office and at home. The Services feature is a powerful aspect of NEXTSTEP which will be able to make use of the multi-tasking property. Any application which wishes to offer a service (eg, e-mail) to running applications can conform to certain guidelines and thereby advertise and provide its service. Any application which wishes to accept these offered services must simply provide a Services menu item in its main menu. When the user chooses this item, a sub-menu constructed by the system lists all of the services offered, many of which have sub-menus of their own. Services are very powerful. For example, when I'm Web browsing I first tear off the Mail services sub-menu and place it on the desktop. Then whenever I select some text from a page within the browser, the "Mail selection" sub-menu item activates. When I click on this item, Mail.app is activated and a new message appears with my selection included as the message; I simply add the recipient(s) and a message title, and then post and forget about it. I have set up another user as my environmental scanner and I mail all intelligence to that user. I sign on as the scanner every so often and organize the incoming intelligence into a variety of mailboxes created to track various topics. Then, when I need to find something later, I know exactly where to go. It's a simple system, but it's elegant and efficient. Hopefully, this Services feature will be carried over to Rhapsody. 4) Multi-Threading Multi-threading occurs when a running process spawns a separate activity. For example, an application used to produce an animation video will have thousands of individual frames to render. Each of these frames can be thought of as a separate thread in a larger fabric, and work can be done on each thread independently of the others. Therefore, if multiple processors are available via a network, then many frames can be rendered simultaneously, thereby shortening the development time. Both Toy Story and Space Jam were made in this fashion, the latter under NEXTSTEP. Using a concept known as a "community supercomputer," one CPU is set up as the overseer of a "farm" of other CPUs which are used to do the actual rendering. The beauty of the farm approach is that it can run 24-hours a day, uninterrupted, until the job is finished. In addition, if one's deadline is cut in half, one can still meet it simply by doubling the number of CPUs available on the networked farm. Several years ago, the community supercomputer concept was used by Richard Crandell, NeXT's chief scientist at the time, to prove the validity of a prime number which had been discovered in England. He was able to parse the problem into discrete segments using signal processing theory and then distributed these problem segments as threads to a world-wide network of NeXT machines which chewed away at them, thread after thread, until the proof was complete. The beauty of the exercise was that most of the work was done in the background of the participating machines, while the machines' owners went about their mundane affairs in the foreground. Therefore, Rhapsody should open the doors to creative co-operative farm projects: any group of like-minded Rhapsody users would be able to pool the resources of their machines in order to tackle large problems. 5) Multi-Processing This feature is tied to both multi-tasking and multi-threading, but involves the use of extra on-board CPUs, not something which every computer has. The NeXT computers had a DSP chip which was good for special activities (eg, sound and music), but not good for sharing work with the main CPU. Although multiple-CPU computers are becoming increasingly popular, to go truly mainstream they will need an OS like Rhapsody which can harness their full power for the ordinary user. Although the incorporation of multi-processing into Rhapsody is not a trivial problem to solve, Apple now has the strongest team of engineers in the industry and this team is actively addressing the problem. The advantage of including this feature would be the ability to accomodate raw processing power in whatever quantities the user required. Therefore, both the chip and hardware industries should see a surge of extra growth after a multi-processing Rhapsody were to become available. Ideally, in the future when your Rhapsody-based machine begins to feel sluggish, you could add another CPU along with some extra RAM. 6) Multi-platform Rhapsody will be OPENSTEP compliant, meaning that one can develop an OPENSTEP application today and then simply recompile it once Rhapsody becomes available; in fact, I imagine a lot of development work for Rhapsody is already under way. There are three current development choices: OPENSTEP for Mach (aka NEXTSTEP 4.0) with Interface Builder which runs on Intel and Motorola chips; OPENSTEP for WindowsNT (and soon Windows95); and Solaris OpenStep with WorkShop from Sun. Granted, the ante is currently high for an OPENSTEP developer, but with the broad market which Rhapsody promises, the potential payoff now justifies the investment of time and money. NEXTSTEP 3.3 compiled code could be quad-fat. This meant that, if you so wished, your application could run on four hardware platforms - Motorola, Intel, HP-RISC and SPARC - and so you had a choice of development platforms and deployment platforms. Therefore, the engineers from NeXT are used to thinking cross-platform; in fact, a partial port of NEXTSTEP to the PPC platform was done a few years ago. In the final analysis, Rhapsody will only be as portable as its kernel. Since Rhapsody will represent the first OS from Apple which can run beyond its own hardware base, to recoup its investment Apple should be planning to get Rhapsody running on as many platforms as soon as possible. Naturally, they will want to increase sales of their now diverse software, middleware and service product lines. You know what they say about all work and no play. Fear not, for Rhapsody should prove to be an exciting platform for developers of games; for example, Doom was first programmed under NEXTSTEP. Don Yacktman, guardian of the public-domain MiscKit, has promised to port all of his NEXTSTEP games, including some never before released, over to Rhapsody. In addition, he intends to complete the GameKit, a set of objects designed to facilitate game construction (eg, distributed-object network-based high-score server object). 7) Multi-Object Two anecdotes show the power of objects. In one of the updates to NEXTSTEP, a fax button was added to the print panel object. Since all applications which print must use this panel, the new button enabled all such applications to also produce fax output, and without the need to recompile. Similarily, when Pantone colours were added to the colour well object, all applications using the well had immediate use of the Pantone scheme. These pleasant surprises occurred because objects are extensible, or capable of taking on new behavioural properties over time. All NeXT software has been built around objects, or stand-alone data/logic constructs which communicate by messaging one another. NeXT has been the object's torch bearer since the days of the cube, an important role which now must be assumed by Apple via Rhapsody and OPENSTEP. Basic OPENSTEP objects include the Foundation Classes, a set of storage primitives, and the Application Framework, the visual objects used in the GUI. The Text object is a good example of a well-designed OPENSTEP object: it represents a basic word processor, with cut and paste and optional font and spell-checking features. Above the basic OPENSTEP object layer sit Portable Distributed Objects (PDO); using these objects you can relocate work across a network at will for overall load balancing among machines. The Enterprise Object Framework is used to model business objects such as products, processes, customers, etc. Acting as database-independent adaptors, Enterprise objects can read from and write to SQL databases (eg, Oracle, Sybase, Informix) as well as legacy data sources (eg, mainframe-based proprietary information systems). Binding any OPENSTEP application together are the custom objects which the developer designs to meet its specific needs. Via PDO, NeXT's universal object request broker, OPENSTEP objects on various OS platforms (eg, Mach, NT, Solaris) can communicate with each other and with OLE and Corba objects as well. This means that data stored in an Excel spreadsheet on a remote machine can be accessed and updated. OPENSTEP is a developer's dream because there is no longer any need to write platform-specific code. Therefore, Rhapsody should benefit greatly from its intimate relationship with OPENSTEP. 8) Multi-Market NEXTSTEP has a UNIX layer above the Mach kernel which accounts for its robust, self-correcting, virus-free behaviour. Although this UNIX layer is hidden beneath the elegant GUI, the power of the command line interface is as close as Terminal.app. If UNIX is retained within Rhapsody, then thousands of utilities, servers and other important executables will become available to the power-user. Hence, Rhapsody will likely prove to be very popular in the UNIX market and will also win converts from the WindowsNT market. The core strength of the OPENSTEP-related suite of development tools (ie, Interface Builder et alia) is its ability to accelerate the application development process by at least an order of magnitude, sometimes two, thereby dramatically reducing programming costs. Maintenance costs drop as well under OPENSTEP, since any given change need be made usually in one place only. Finally, since objects are reusable, future development costs are also minimized. Because of these time and cost factors, OPENSTEP is ideal for the development of mission critical custom applications. This is the reason that NEXTSTEP became the darling of the banking and financial services industries where time-to-market is critical. In general, NeXT's corporate customers are known within their industries for developing innovative information technology solutions. Therefore, since Rhapsody and OPENSTEP will ease and accelerate the development process, the time and investment required to produce any given application will drop dramatically. As a result, I expect a lot of truly stunning applications to appear, directed at very specialized audiences and created by very small teams of programmers. Rhapsody will open up new markets where no one has gone before, and once again we'll feel the way we did when the Macintosh was first introduced. In short, a software renaissance is looming. It is a pleasure to program with NeXT's objects and its first-rate development software, which has also been copied by the industry (eg, Adobe's PageMill). In fact, it was this programming facility which first attracted me to the platform. Granted, it's not easy to switch to an object-oriented paradigm, but the benefits are very tangible. To summarize, if a creative individual can dream something up using objects, he'll be able to build it using Rhapsody. 9) Multi-Level Rhapsody will be able to operate as a stand-alone machine and, as pointed out earlier, to work well on a local-area or wide-area network. However, because of NeXT's leadership in the Web market, Rhapsody will also be able to work on the level of the Internet and its corporate kin, the in-house intranet. Intranets are valued by corporations because inexpensive, platform-neutral Web browsers are used as the common client across a heterogeneous network. Hence, development costs are incurred only on the server side of an intranet application, thereby providing an inexpensive way to build three-tier client-server systems. In addition, information delivered via an intranet is always current, and the full-blown Internet is but a step away. The first Web server and browser (ie, WorldWideWeb.app) were invented by Tim Berners-Lee and others at Cern using NEXTSTEP on black hardware. NeXT in turn has responded to the burgeoning Web market with the WebObject Framework, designed primarily for connecting databases and legacy data with the Web in a dynamic manner. WebObjects accept requests from a Web server, access Enterprise objects and other sources for the required data, build HTML output on the fly, and finally hand this output back to the server for delivery. In the open NeXT tradition, WebObjects output can include Java applets and ActiveX components, and WebObjects can operate with standard CGI HTML servers and with those from Netscape and Microsoft. Last summer, WebObjects received PC Magazine's Editors' Choice Award for the best product for building heavy-duty Websites. Therefore, with the use of WebObjects, applications running under Rhapsody will be able to operate as industrial-strength servers on a corporate intranet or on the Internet itself. Couple WebObjects with the flexibility and power of PDO and Enterprise objects, and the synergy is enormous (eg, writing client-supplied information to a remote database). Because WebObjects run independently of the HTML server, the overall processing load can be balanced and scaled as required. In addition, the time required to develop a Web-based solution is minimized because of WebObjects Builder. Hence, Rhapsody will provide a cost-efficient means for business or government to bring their data, regardless of its location and volume, to the level of the Web. With this type of power available on a friendly, affordable desktop machine, I would expect to see a blossoming of Rhapsody-based Web-related server activity, as even the smallest shops get in on the action. The Web will become dynamic with Rhapsody, moving from simply broadcasting static pages to narrowcasting client-specific pages. In effect, Rhapsody will help to democratize the Web, especially if the multi-linguistic feature is retained. Conclusion My dictionary's second definition of rhapsody is "enthusiastic extravagant high-flown utterence or composition, emotional irregular piece of music." I think this definition will fit the product well: a rhapsody must be thought out in tremendous detail for it to work, and Rhapsody obviously meets that requirement. The marriage of the best of the MacOS and NEXTSTEP, products with very complimentary markets, will result in a new standard for the future. Rhapsody and its related object frameworks and development tools will be conducive to the development of best-of-breed applications, in record time, which fully harness the raw power of the hardware at hand and are scaleable to meet future demands. Rhapsody already has the power to evoke strong emotions, particularly negative ones among those who know little about what it represents. However, I am sure that once Rhapsody is on the market, it will soon attract a dedicated following of users who enjoy experiencing positive emotions. The overall Rhapsody experience will be exciting, yet sublime. (Whereas MacOS advocates are enthusiastic in general, NEXTSTEP advocates, due to their until-recent isolation in spite of a superior product, are doubly so ¬ Corporate America is going to love this multi-machine called Rhapsody: it will represent a stable, object-oriented OS useable on a single-user laptop as well as a networked high-end server (eg, application, Web, object or database); it will support portable objects which are industry compliant; it will be Inter/intranet compliant; it will be database and legacy data compliant; it will be the first choice for mission critical custom applications; it will be hardware independent; and, finally, it will be multi-lingual at some point. None of this is by accident, however, since NEXTSTEP et alia were designed to fit in everywhere (ie, "it just works") while standing out above the competition. This means that AppLE (thanks, Mmalcolm) should make a lot of money from the corporate market with Rhapsody. Since whatever OS people use at work, they prefer to use at home, then Rhapsody will win new converts in the home market as well. The education sector will also be strengthened with an enormous release of raw computing power (eg, Why not run a black hole simulation for the kindergarten class?). Current MacOS users will lead this mass conversion, however, once they get a hard look at the goods. In my humble opinion, Rhapsody looks like a win-win situation all the way around, with the exception of one major black cloud (ie, Micro$oft) looming on the horizon. This cloud will be the main source of the rhapsodical irregularity. At the December 20th press conference, Steve Jobs said the following: "With this merger, the advanced software from NeXT will be married with Apple's very high-volume hardware platforms and marketing channels to create another breakthrough, leapfrogging existing platforms, and fueling Apple and the industry copy cats for the next ten years and beyond." I hope you now have a better understanding of what he was referring to. It all goes to prove that you can't keep a good man down. Notably, it took a woman - Ellen Hancock, Apple's CTO - to see the tremendous synergistic value in the Apple/NeXT merger. With Rhapsody and its vision, Apple will no longer be insular, but rather open to the world. Although I am sure that there are other benefits of Rhapsody which I've forgotten to mention, those which have been covered should be enough to convince the skeptical. Back in May, 1992, I wrote an article about the benefits of switching to NEXTSTEP entitled "To leapfrog, or not to leapfrog?" Well, my MacOS confreres, soon will come the time to make this decision. I hope eventually to meet you all on the other side. Copyright, 1997, John Vincent Markle ----- John Markle has run the monthly NEXTSTEP SIG for Le Club Macintosh de Montreal since October, 1990. He has long advocated NEXTSTEP by writing many enthusiastic articles for both InterFace and Mac@Zine, most of which can be found at the following URL: <¬ftp://ftp.next.peak.org/pub/next/newsletters/MNUG/>. PS: No MIME or NeXTMail at lcmm.qc.ca; plaintext only, please.