ICT practitioners have used the term “open system” for a long time – at last 40 years, I believe – and yet its meaning continues to be relatively fuzzy. The whole concept of openness for computer systems has picked up a lot of baggage over the years and it continues to evolve!
Today, the term “cloud” is arguably just as confusing, although some experts claim it’s just IT history repeating itself. Cloud computing represents shared, service-based systems, such as are provided by companies like Amazon AWS, Microsoft Azure and Google Cloud.
The question is: are these clouds “open”? And the follow-up question would be what is open cloud interconnection?
Background – the meaning of open
A quick Google search provides multiple definitions for open systems. A few examples should illustrate the point:
- A system in which the components and protocols conform to standards independent of a particular supplier (Google);
- A system that has external interactions (Wikipedia);
- Computer systems that provide some combination of interoperability, portability, and open software standards (Wikipedia);
- An entity with a boundary that is not closed. It receivesinputs and produces outputs (Principia Cybernetica);
- Open system(plural open systems). (computing) A system allowing hardware and software from different manufacturers to be used together seamlessly (Wiktionary).
The only possible conclusion is that there is no precise definition and consequently no definitive measure or statement of conformance.
An interesting book by James Pelkey traces the history of computer communications. Early references to open systems include:
- 1984 – ISO Reference Model for Open Systems Interconnection – ISO/IEC 7498 – the development of this standard actually started in 1978;
- 1995 – IEEE Guide to the POSIX Open System Environment (IEEE 1003.0-1995); and
- 1995 – NIST Open System Environment: Architectural Framework for Information Infrastructure (NIST SP 500-232).
The definition for an “open system” became more formalized in the 1990s with the emergence of independently administered software standards. The Open Group, for example, works to establish open, vendor-neutral IT standards and certifications.
Most recently, open has been applied to open source software that is co-developed by many people as part of a consortium or other non-proprietary group. A well-known example is the Linux operating system. The Open Source Initiative lists a set of criteria for software to be classed as open source, although the most fundamental requirement is that the source code is freely available to anyone.
Open systems re-imagined
Most experts would now consider open systems to be the norm for most IT ecosystems (except perhaps Apple products and IBM mainframes).
Key distinguishing characteristics of open systems would include:
- Internet protocols – allowing standards-based networking and inter-system communications;
- Application Programming Interfaces (APIs) – allowing standardized links between applications and software components;
- Standard operating environment – allowing portability across operating systems and platforms (such as virtualization and containerization) for applications, management, security and administration;
- Open source software – allowing applications and infrastructure to be supported and improved without vendor lock-in;
- Open data set – allowing the re-purposing and re-using of accessible, non-PII data; and
- Open access – allowing multi-party access to, or sharing of, public or community resources (access to Google Mail, for example).
As noted earlier, since there is no formal set of features for a system to be called “open” this list is neither complete nor a minimum set.
Do cloud services meet these basic qualifications for openness?
Open cloud interconnection (OCI)
If the litmus test for an openness is interoperability, portability and standards support, then most cloud service environments would probably pass the test (or will when mature).
Services provides by clouds can usually:
- Interface to the Internet and its TCP/IP protocols;
- Allow service access and linking via APIs (often REST over HTTP);
- Provide standard Linux-based infrastructures with Docker containers or virtual machines;
- Support open source applications, platforms and operating systems; and
- Enable public sharing of data and services when appropriate.
The Reference Model for Open Systems Interconnection identified the seven protocol layers for interconnecting “systems” without really specifying what a system was. In the OSI view, anything that implemented the protocols was a system – nothing would preclude cloud services from being classified as a system.
Can a cloud be “open”? The answer would be yes, as long as it provides standards-based access to the services, allows for services to interwork and supports open source software. An “open cloud” is a cloud that supports interconnection in an equivalent way to the OSI and TCP/IP architectures.
The other question would be – is openness still relevant? Perhaps it is less important now, since most cloud systems and services now meet the criteria for openness. There is, however, still some value in reminding ourselves of the days when systems were proprietary and vendor lock-in was a competitive weapon.
This is what I think, and I hope I haven’t “opened” a can of worms! Comments are welcomed.