Background behind the Organization and the Specification
IOPA is neither a protocol STANDARD nor a FRAMEWORK. Rather it is a PATTERN that defines a well-defined API (by convention not reference) between the broadest scope of Internet of Things (IoT) transport layers and application/device logic.
The reference implementation (Internet Open Protocols Abstraction for TypeScript, Swift and C#) is a fabric that speeds development of applications that use the pattern, but is not necessary to implement or to interoperate with any other application, or middleware micro-service -- it just provides some very handy reference classes and constants for intellisense development, and provides a robust, tested example of the most common logic required (a dispatcher called the AppBuilder class, and a factory for creating IOPA context with automatic scope tracking).
The Internet Open Protocols Abstraction (IOPA) is a specification and reference implementation of an API-first, Internet of Things (IoT) fabric.
The pattern is intended for connected humans, animals, devices and things that generally use Internet protocols for communication.
All aspects of IOPA are open-source and published under liberal licenses. Contributions are welcome, and policies are in place to make this simple. Equally it is an entirely extensible, so no one has to wait for IOPA to adopt a revision, they can simply register a unique namespace and add properties to the property bag for their application. Over time we hope that all such additions are socialized into the open community.
The purpose of the pattern is to make many similar protocols easy to use. There are no in-scope or out-of-scope hardware or information protocols, rather the pattern is focused on state, stores and transfer of state between stores, listeners and action creators. Implementation is provided for some common protocols including TCP, UDP, HTTP, CoAP, MQTT, routing, and static resource serving.
IOPA is first and foremost a higher level abstraction of underlying transport capabilities. A property bag or key-value dictionary is used so that no pre-compilation or libraries are needed to use IOPA.
The Internet Open Protocols Alliance (also abbreviated IOPA) is the not-for-profit organizing body that maintains and publishes the Internet Open Protocols Abstraction specification. See Free and Open Source for more details.
IOPA started off as one-person GitHub side project, and currently includes as its members those individuals and organizations actively using the IOPA fabric and pattern.