Open Infrastructure

Open Infrastructure

The Mathematical Mesh is an open infrastructure built on open specifications and services. While the term ‘Open Infrastructure’ is new, the idea that it represents is not. It is merely the application of the principles of open-source software to communication services.

Background

The idea that a computer system should maximize opportunities to build and extend systems has been central to the idea of free software and open software since a young computer scientist became frustrated by the fact that he could not modify the code of a new departmental printer in 1980. Richard Stallman realized that the opaque nature of computer code effected a subtle transfer of power from the owner of a device to the manufacturer or supplier. Free software emerged as an attempt to return power to the user.

Free software proved to be a major accelerator for the computing industry in the 1980s and even more so in the 1990s by making advanced programming tools including the GNU Emacs editor and the gcc compile available to a large number of amateur and student programmers.

But Stallman’s concept of Free Software came with a not-so-subtle shift in power from software developers in general to developers of free software. The full GPL licenses require that if a program uses some GPL code, the entire system must be licensed under the GPL. While the intent of this restriction was to prevent the creation of proprietary versions of GPL applications by making minor modifications, it also had the effect of preventing software developers extending their existing proprietary software systems with GPL licensed code. This concern was particularly acute at some of the larger proprietary software companies maintaining code bases containing large amounts of third-party software under ‘complicated’ licensing terms. In some cases, most famously the ‘Pinball Cadet’ game provided in Windows XP, the current owner of the copyrights is unknown.

The Open-Source movement grew out of the realization that a more pragmatic approach to software distribution would serve a wider community. The success of ‘permissive software’ licenses for the BSD UNIX system, X-Windows and Donald Knuth’s TeX document typesetting system provided an alternative model of software distribution that was neither proprietary nor restricted.

The World Wide Web created a new distribution model for software and a new set of business requirements. The Web was not just a server and a client, it was an information infrastructure expressly designed to integrate with legacy information sources to make them Web accessible. This created a serious concern for the developers of the Apache server project in particular.

While term ‘open-source’ was coined in 1998, the ideas and arguments behind it were not new. The MIT and BSD licenses commonly used in open-source code date back to the 1980s. What was new in 1998 was the creation of an Open-Source Movement with a separate identity from Stallman’s Free Software Foundation. The term ‘open-source’ was suggested by Christine Peterson in February 1998. Stallman’s term ‘Free software’ had frequently required the clarification ‘free as in freedom, not free as in beer’. ‘Open-source’ avoided the need for clarification and not incidentally, could be applied to a wide variety of license terms.

As with the World Wide Web, open-source software is likely to play an important role in the deployment of the Mathematical Mesh. But it is inaccurate to call these ‘open-source’ projects as this does not really address what is most important. In the 1980s, the computing world was created by computer engineers for computer engineers. Programming was central to that world and so the availability of source code was the main difference between systems that were open and those that were not.

The computing world has changed since. Rather than merely serving a small technical elite, the computing world has reached into every part of that world. The question ‘who has the power’ is even more relevant than in 1980. But the availability of source code and the ability to modify it is only a small part of the answer.

The core concern of the Mesh is how Alice can create a document and share it with Bob without the contents being disclosed to Mallet. While the availability of open-source applications and code is certainly desirable, it is neither a necessary nor a sufficient condition to protect the interests of Alice and Bob.

What really matters to Alice and Bob is that if they are both using applications that claims to be built on ‘the Mesh’ that they interoperate. That is, data generated by Alice’s application will work in the way Alice reasonably expects in Bob’s application.

Like most modern computing infrastructures, the Mesh employs a service-based model. This provides the presence and store-and-forward capabilities required to allow Alice and Bob to interact with the ease and the flexibility they expect. But the introduction of a service necessarily creates a new potential point of control. A potential that has been ruthlessly exploited by many of the largest and most successful social media corporations. A walled garden is a very profitable business model but it is one that makes Alice and Bob subordinate to the gardener.

Open Specifications

The Mesh is built from Open Specifications that anyone can implement using the tools and languages they choose, adapt or extend in any way that they choose and distribute under any license terms they choose.

An open-source reference library and open-source applications built using the library are provided but use of these tools is a choice, not a requirement. The primary function of a reference library is to provide a reference against which other implementations may be tested. The Mesh reference libraries are generated using the Gödel code synthesis tools I worked on in the 90s which allow the specifications and code to be generated from a single source. While this is the best way to generate reference code, it is not ideal for generating a code library to be used to extend legacy applications.

The Mesh is not an open-source project because its primary output is the open-specification, not the code itself. If the Mesh is to succeed, a wide variety of implementation libraries will be needed to meet the needs of developers writing in wide and changing variety of programming languages. A few years ago, an application library written in C would likely be sufficient for most purposes. The growing popularity of Rust and Go are beginning to challenge that assumption.

So, what makes a specification open? There are many potential variations but in my view, a specification is open if:

  • Implementing the specification does not require any form of license or establish any claim in the result.

  • Anyone can implement the specification using the tools and languages of their choice.

  • Anyone can adapt or extend the specification in any way they choose provided that potential end-users are made aware of any changes that may affect interoperability.

Open Services

The Mesh is built on the principle of Open Services. Anyone can offer a Mesh Service without restriction on users, geography or business model. Users have a free choice of Mesh Service Provider and may change their choice at any time they choose without restrictions or switching costs. Users of one Mesh Service Provider may interact with users of any other Provider without restriction.

The razor and blades business model is a staple of every MBA course. While giving away the razor to allow the sale of the much pricier blades is certainly a good deal for the seller, it is usually a very bad one for the customer who is forced to accept a single blade supplier unless they are willing to pay a large switching cost.

Before and since the Web, many corporations have attempted to create an information service that keeps users contained in a ‘walled garden’ within which the corporation offering the service has full control over who is allowed to buy and sell and takes a fee from every transaction. In his famous essay, ‘The Cathedral and the Bazaar’ Eric Raymond mused over two differing approaches to development of open-source software and the benefits of loosening control. Such distinctions become moot if we imagine such a debate to be taking place within the context of a medieval city controlled by a lord who extracts an unearned tax or rent on every transaction within its walls.

While the walled garden model proved remarkably unsuccessful for the promoters of ‘Interactive TV’ and ‘Wireless Application Protocol’, it has established itself as the dominant model in messaging and social media. Before sending someone an instant message, I have to first remember which messaging service the intended recipient uses and on social media, I am not the customer but the product.

So, what makes a service open? There are many potential variations but in my view, a service is open if:

  • Anyone can provide a service without the need for licensing or other restrictions.

  • Users may use any service provider that is willing to offer them service.

  • Users may change their service provider at any time without switching costs.

  • Users of a service provider may send and receive communications with other service providers without restriction.

Open Infrastructure

A system is an open infrastructure if it is an infrastructure described by an open specification that provides an open service.

While the Mesh is the first infrastructure to describe itself as such, it is obviously not the first open infrastructure. SMTP email and the Web were both conceived with the principles of an open infrastructure in mind.

The DNS and IP Address range allocation infrastructures also embody many of the principles of an open infrastructure but with an important point of difference with is central to their function of registering unique identifiers. But rather than attempting to stretch the definition of an Open Infrastructure to cover such registries, we should instead recognize an ‘Open Registry’ as an entirely distinct concern.