How to enable open connectivity
To enable real open, flexible and future save information systems, is it important to have the following principles in place:
IndependentDesign all interfaces to be independent from type of platform and programming language
Uniform InterfaceUse common basic functions and pure structured data (document style). Here it will be quite useful to have a closer look to the RESTful design principle.
StatelessDon't use session, cookies, tracking parameter and other implicit kind of temporary status storages. As they block resources, hide communication workflows, make usage complex and are risky for security.
TransparencyBe open. Provide the API for everybody. Use a common infrastructure database, from which all configurations can be taken, and to which all current used interface parameters can be written.
LayeredBest of breath: For each layer, have the best fitting technology. Use established standards wherever possible. Don't reinvent the wheel.
Data CentricWherever possible use the business driven data structures. Doing so the API will be the natural base for business discussions.
ScalabilityScalability means parallel handling. Best by using small technical clusters (like Microservices). Note, that this is the opposite of monolithic systems.
Event bus / notificaton bus / message busFor the successful communication in connected systems, a publish-subscribe notification bus (like MQTT) does perfectly fit. With such, all kind of data and events can be handled as a cached in a queue for all interested nodes.