Date: Sat, 20 Jun 92 12:39:51 0 From: infoage!bradcox@hsi.hsi.com (Brad Cox, Ph.D.) Subject: File 1--Proposal: A Market Mechanism for Information Age Goods The enclosed article, which was written as a column for an object-oriented programming magazine, proposes an initiative that has great potential for both good and for harm. I believe that superdistribution, as discussed in this paper, should be relevant to EFF's interests, even though it looks at privacy from a viewpoint contrary to the one that EFF generally endorses. ++++++++++++++ "WHAT IF THERE *IS* A SILVER BULLET...AND THE COMPETITION GETS IT FIRST?" (Invited Column; Journal of Object-oriented Programming; June 1992) Few programmers could develop a compiler, word processor or spreadsheet to compete in today's crowded software market The cost and complexity of modern-day applications far exceed the financial and intellectual capacity of even the rarest of individuals. Even large-granularity sub-components like window systems, persistent object databases and communication facilities can be larger than most individuals could handle. But nearly any of us could provide smaller (so-called 'reusable') software components that others could assemble into larger objects; components as small as Stacks and Queues. So why don't we? Why do we drudge away our lives in companies with the financial, technical, and marketing muscle to build the huge objects we call applications? Why don't we start software companies, like Intel, to invent, build, test, document, and market small-granularity objects for other companies to buy? Think of the reduction in auto emission pollution if more of us stayed home to build small-granularity components for sale! Think of not having to get along with the boss! Object-oriented programming technologies have brought us tantalizingly close to making this dream technically, if not economically, feasible. Subroutines have long been able to encapsulate functionality into modules that others can use without needing to look inside, just as with Intel's silicon components. Object-oriented programming languages have extended our ability to encapsulate functionality within Software-ICs<1> that can support higher-level objects than subroutines ever could<2>. Such languages have already made the use of pre-fabricated data structure and graphical user interface classes a viable alternative to fabricating cut-to-fit components for each application. All this is technically feasible already, even though the software industrial revolution has hardly begun<3>. Yet these technical advances have not really changed the way we organize to build software. They've just providing better tools for building software just as we've done in the past. The pre-fabricated small components of today are not bought and sold as assets in their own right, but are bundled (given away) inside something much larger than any individual could build. Sometimes they are bundled to inflate the value (and price!) of some cheap commodity item, as in Apple's ROM software that turns a $50 CPU chip into a $5000 Macintosh computer. Sometimes they play the same role with respect to software objects, as in the libraries that come with object-oriented compilers. There is no way of marketing the small active objects that we call reusable software components, at least not today. The same is true of the passive objects we call data. For example, nearly 50% of the bulk waste in our landfills is newspapers and magazines. Nearly half of our bulk waste problem could be eliminated if we could break the habit of fondling the macerated remains of some forest critter's home as we drink our morning coffee. But this is far more than a bad habit from the viewpoint of newspaper publishers. If they distributed news electronically, how would they charge for their labor? Paper-based information distribution makes certain kinds of information unavailable even when the information is easily obtainable. For example, I hate price-comparison shopping and would gladly pay for high-quality information as to where to buy groceries and gasoline cheaply within driving distance of my home. This information is avidly collected by various silver-haired ladies in my community, but solely for their own use. There is no incentive for them to electronically distribute their expertise to customers like myself. What if entrepreneurs could market electronic information objects for other people to buy? Couldn't geographically specialized but broadly relevant objects like my gasoline price example be the 'killer apps' that the hardware vendors are so desperately seeking? Think of what it could it mean to today's saturated market if everyone who buys gasoline and groceries bought a computer simply to benefit from Aunt Nellie's coupon-clipping acumen? Information Age Economics These questions outline the fundamental obstacle of the manufacturing age to information age transition. The human race is adept at selling tangible goods such as Twinkies, automobiles, and newspapers. But we've never developed a commercially robust way of buying and selling easily copied intangible goods like electronic data and software. Of course, there are more obstacles to building a robust market in electronic objects than I could ever mention here. Many of them are technological deficiencies that could easily be corrected, such as the lack of suitably diverse encapsulation and binding mechanisms in today's object-oriented programming languages, insufficient telecommunications bandwidth and reliability, and the dearth of capable browsers, repositories and software classification schemes. My second book, Object Technologies; A Revolutionary Approach, considers these technical obstacles in detail to show how each one could be overcome if suitable economic incentives were in place. The biggest obstacle is that electronic objects can be copied so easily that there is no way to collect revenue the way Intel does, by collecting a fee each time another copy of a silicon object is needed. More than any other reason, this is why nobody would ever quit their day job to build small-granularity software components for a living. A striking vestige of manufacturing age thinking is the still-dominant practice of charging for information age goods like software by the copy. Since electronic goods can be copied easily by every consumer, the producers must inhibit copying with such abominations as shrinkwrap license agreements and copy protection dongles. Since these are not reliable and are increasingly rejected by software consumers, SPA (Software Publishers Association) and BSA (Business Software Alliance) have even started using handcuffs and jail sentences as copy protection technologies that actually do work even for information age products like software. The lack of robust information age incentives explains why so many corporate reuse library initiatives have collapsed under a hail of user complaints. "Poorly documented. Poorly tested. Too hard to find what I need. Does not address my specific requirements." Except for the often rumored "Not invented here" syndrome, the problem is only occasionally a demand side problem. The big problems are on the supply side. There are no robust incentives to encourage producers to provide minutely specialized, tested, documented and (dare I hope?) guaranteed components that quality-conscious engineers might pay good money to buy. As long as these "repositories" are waste disposal dumps where we throw poorly tested and undocumented trash for garbage pickers to "reuse", quality-conscious engineers will rightly insist, "Not in my backyard!" Paying for software by the copy (or "reusing" it for free) is so widespread today that it may seem like the only option. But think of it in object-oriented terms. Where is it written that we should pay for an object's instance variables (data) according to usage (in the form of network access charges) yet pay for methods (software) by the copy? Shouldn't we also consider incentive structures that could motivate people to buy and sell electronic objects in which the historical distinction between program and data are altogether hidden from view? Superdistribution Lets consider a different approach that might work for any form of computer-based information. It is based on the following observation. Software objects differ from tangible objects in being fundamentally unable to monitor their copying but trivially able to monitor their use. For example, it is easy to make software count how many times it has been invoked, but hard to make it count how many times it has been copied. So why not build an information age market economy around this difference between manufacturing age and information age goods? If revenue collection were based on monitoring the use of software inside a computer, vendors could dispense with copy protection altogether. They could distribute electronic objects for free in expectation of a usage-based revenue stream. Legal precedents for this approach already exist. The distinction between copyright (the right to copy or distribute) and useright (the right to 'perform', or to use a copy once obtained) are both provided by existing copyright laws. They were stringently tested in court a century ago as the music publishers were sorting out the implications of the emerging music broadcasting industry. When we buy a record, we acquire ownership of a physical copy (copyright), but only a limited useright; just the right to use the music for personal enjoyment. Conversely, large television and radio companies get the very same records for free, but pay substantial fees for the useright to play the music on the air. The fees are administered by ASCAP (American Society of Composers, Authors and Publishers) and BMI (Broadcasting Musicians Institute) by monitoring how often each record is broadcast to how large a listening audience. A Japanese industry-wide consortium, JEIDA (Japanese Electronics Industrial Development Association) is developing an analogous approach that analogizes each computer to a station that broadcasts to an audience of one<4>. Called super%distribution, its premise is that copy protection is exactly the wrong idea for software. Instead, superdistribution allows software to be freely distributed and freely acquired via whatever distribution mechanism you please. You are specifically encouraged to download superdistribution software from networks, give copies to your friends, or send it as junk mail to people you've never met. Spray my software from airplanes if you want. Please! This generosity is possible because this software is 'meterware'. It has strings attached that effectively make revenue collection completely independent of software distribution. The software contains embedded instructions that make it useless except on machines that are equipped for this new kind of revenue collection. The computers that can run superdistribution software are otherwise quite ordinary. In particular, they will run ordinary pay-by-copy software just fine. They just have additional capabilities that only superdistribution software uses. In JEIDA's current prototype, these services are provided by a silicon chip that plugs into a Macintosh coprocessor slot. Electronic objects (not just applications, but active and/or passive objects of every granularity) that are intended for superdistribution invoke this hardware to ensure that the revenue collection hardware is present, that prior usage reports have been uploaded, and that prior usage fees have been paid. The hardware is not complicated (the main complexities are tamper-proofing, not base functionality). It merely provides several instructions that must be present before superdistribution software can run. The instructions count how many times they have been invoked by the software, storing these usage counts temporarily in a tamper-proof persistent RAM. Periodically (say monthly) this usage information is uploaded to an administrative organization for billing, using public key encryption technology to discourage tampering and to protect the secrecy of this information. The end-user gets a monthly bill for their usage of each top-level component. Their payments are credited to each component's owner in proportion to the component's usage. These accounts are then debited according to each application's usage of any sub-components. These are credited to the sub-component owners, again in proportion to usage. In other words, the end-user's payments are recursively distributed through the producer-consumer hierarchy. The distribution is governed by usage metering information collected from each end-user's machine, plus usage pricing data that is provided to the administrative organization by each component vendor. Since communication is infrequent and involves only a small amount of metering information, the communication channel could be as simple as a modem that autodials a hardwired 800 number each month. Many other solutions are viable, such as flash cards or even floppy disks to be mailed back and forth each month in the mails. A Revolutionary Approach Whereas software's ease of replication is a liability today, superdistribution makes it an asset. Whereas software vendors must spend heavily to overcome software's invisibility, superdistribution thrusts software out into the world to serve as its own advertisement. Whereas the personal computer revolution isolates individuals inside a standalone personal computer, superdistribution establishes a cooperative/competitive community around an information age market economy. Of course, there are many obstacles to this ever happening for real. A big one is the information privacy issues raised by usage monitors in every computer from video games to workstations to mainframes. Although we are accustomed to usage monitoring for electricity, telephone, gas, water and electronic data services, information privacy is an explosive political issue. Superdistribution could easily be legislated into oblivion out of the fear that the usage information would be used for other than billing purposes. A second obstacle is the problem of adding usage monitoring hardware to a critical number of computers. This is where today's computing establishment could be gravely exposed to those less inclined to maintain the status quo. It is significant that superdistribution was not developed by the American computer establishment, who presently controls 70% of the world software market. It was developed by JEIDA, an industry-wide consortium of Japanese computer manufacturers. The Japanese are clearly capable of building world-class computers. Suppose that they were to simply build superdistribution capabilities into every one of them, not as an extra-price option but as a ubiquitous capability of every computer they build? Review the benefits I've discussed in this column and then ask: Whose computers would you buy? Whose computers would Aunt Nellie and her friends buy? What if superdistribution really is a Silver Bullet for the information age issues I've raised in this column? And what if the competition builds it first? [Footnotes] <1> ) Software-IC is a registered trademark of The Stepstone Corporation. <2> Brad J. Cox; Object-oriented Programming; An Evolutionary Approach; Addison Wesley; 1986. <3> Brad J. Cox; Object Technologies; A Revolutionary Approach; Addison Wesley; late 1992. Also see Planning the Software Industrial Revolution; IEEE Software; November 1990, and There is a Silver Bullet; Byte magazine; October 1990. <4> Ryoichi Mori and Masaji Kawahara; Superdistribution: An Overview and the Current Status; ISEC 89-44; and Superdistribution: The Concept and the Architecture; The Transactions of the IEICE Vol. E 73 No 7 July 1990. Also seeWhat lies ahead; Byte 1989 January; pp 346-348 and On Superdistribution; Byte 1990; September; p 346. * * * * * Brad Cox, Ph.D. (203) 868-9182 voice / -0780 fax Information Age Consulting Best: infoage!bradcox@hsi.com Downloaded From P-80 International Information Systems 304-744-2253