Software development, right from start, was custom and tailor-made. The most changing parts of these software products are the interfaces to the internal and external worlds; interfaces to other third-party software products, databases, file types, technologies, application software external to the system being integrated with.
Integration concepts must have evolved from device drivers. Earlier computer systems and their software environments were privately owned by vendors like IBM, HPE, Dell, Digital, etc.These vendors used to, and now also, custom develop hardware products and computer operating systems. The applications development in those days was called proprietary development. The only common thing was the programming interface exposed to developers and computer operators called computer languages like COBOL, C, Pascal, FORTRAN, etc.
The computer systems evolved from large-sized minimal processing machines to, nowadays, compact laptops, cell phones, IoT devices and supercomputers. These computer systems had main systems and external devices called peripheral devices. These devices later became interoperable amongst the hardware and software vendors and were being produced by third-party vendors. This introduced the concept of a device driver to be able to plug and play the devices. These device drivers separate from the internal intricacies of the devices from the main machine's operating control, and handle tasks on their own.
The same concept is being used in software integration tools like MS BizTalk. Here, intricacies of the software systems - their internal operations, methodology developed by different different developers - used to be called spaghetti code. These complications of internal systems were to be isolated from the system being integrated to and were separated by integration software.
The integration software like MS BizTalk has adapters (as I mentioned earlier) for various external systems. These adapters are ready-made (encapsulated) functionality for a specific technology (File, FTP, MSMQ, web services, EDI), databases (MS SQL Server, Oracle, etc.), application platforms (SAP, PeopleSoft, Baan, healthcare adapters for HIPPA, HL7, etc.), or for integration with a system under development being integrated to these external systems.
What integration software achieves is, it isolates business logic (if-then-else, business rules, loops, exception handling, etc.) required to control the data, concurrently (multi-threaded), and does validation of data, special handling, and routing. In achieving this functionality, it isolates the external interfaces' handling logic in the adapters, main control of process flow in workflows (called BizTalk Integrations), and ports (ports are the locations where process control and data is to be delivered).
There are receive-only, send-only, and send-receive ports. These MS BizTalk Integrations can be subscribed by connecting the dots between systems, by connecting to ports, just like an electrician connects wires, a plumber connects connectors, a construction worker connects bridges to the roads, tunnels are connecting two end of mountains, or a railway worker joins the tracks for railroad.