In the IIC's Industrial Internet Connectivity Framework, how much difference is there between a "Connectivity Transport" and a "Connectivity Framework"? Why make that distinction?
The basic difference is that a "transport" lets you exchange blocks of opaque data, while a "framework" exchanges data structures of known content. These sound similar, but they actually are profoundly different.
A transport can send data back and forth, but all interpretation is up to the application. This is called "technical interoperability". A great analogy: two people are technically interoperable if they can speak and listen but perhaps not the same language. That lets you communicate, but translating the information is up to the people.
A connectivity framework exchanges data structures, so it knows about types and field names, aka "syntactic" interoperability. This is like two people who speak the same language, or maybe with an interpreter who translates between them. A connectivity framework allows applications to communicate, even if they are written in different languages, talk over different networks, run on different CPUs, or use different operating systems.
The IICF also defines another level, called semantic interoperability. Two people are semantically interoperable if they not only speak the same language, but they also have similar educational backgrounds so they can collaborate on specific tasks. The IICF doesn't describe this level because semantically interoperable systems in practice address particular application verticals.
Syntactic interoperability is the key level analyzed by the IICF because it's needed to build complex industrial systems. A framework that understands data structures can provide configurable quality-of services (QoS) that enable control over data delivery rates, reliability, durability, filtering, persistence, and data liveliness. Frameworks that understand the data can implement generic tools that use the data, interact with databases and other data-aware functions, and control program interfaces. Together, these functions enable a “data model” for the system, allowing diverse components to work together. Sophisticated implementations can even match some differences in data model, thus allowing a large distributed system to grow incrementally from parts that are not all developed or deployed together. Syntactic interoperability is the critical functionality for large software systems.
Stated more simply, connectivity frameworks are called "frameworks" because they provide an architecture. While transports can send data, frameworks provide a structure that defines how and when applications interact. Choosing a framework is often the first and most important step in building an intelligent distributed application.