What is an Interface?
Some may regard the answer to this question as obvious, but it has hidden depths.
Here are some definitions to start us off:
That all seems to make sense, but there are problems.? Take definition #1 - what, exactly, does “interact” mean?? How would you know if these two agents had interacted?
Similarly, #2 and #4 - how do we know two things have “affected” each other?
Definition #3 is clear from a computing point of view, but then why not use the word “connection” rather than “interface”? ?We’re all aware of the term Man-Machine Interface, or MMI, but is the interface directly between human and machine, or do we interface between hardware which is connected to it (e.g., the keyboard for a computer, or brakes, accelerator and steering in a car?)
The question came up in the computing environment where I work, and the use of the word “interface” was queried during a meeting.? When is a connection between two systems an interface, and when is it actually an intermediary system?
For example, the business knows that the data it needs in system C comes from system A.? But the technical team knows that, behind the scenes, system A actually writes data to database B, and system C then reads that data from the same database.? Is there an interface between system A and system C, or is database B an intermediary?? And if we were to be pedantic, is there not, therefore, an interface between system A and database B, and another interface between database B and system C?
My initial definition of an interface would be: “any communication between two agents or systems identified by the transfer of data between them”.? You know that there is an interface, as data can be demonstrated to have been passed from one agent/system to another.? In the above example, you might regard database B as the interface, as it really just facilitates the passage of data between system A and system C.? But really, the pedantic view is correct.? There are two interfaces:? A to B, and B to C.? So what does that make B?
If I talk to you, and maybe give you information, such as the date and time of our next meeting, then there is an interface between us, demonstrated by the fact that information that only I had initially is now in your possession.? If I pass that information to you on a piece of paper, I’m communicating the same data, but using a different medium.? So is the medium of communication merely the medium of transfer, or is there actually an interface between me and the paper I write on, and another interface between the paper and you?
Or what if I email you?? The email application may be an intermediary between us, but it is not the interface.? Again, the interfaces are between me and the email system, and the email system and you.
With verbal communication, it might actually be more complex:? There is an interface between my brain (which generates the information) and my vocal capability (which puts it in transmissible form), between my voice and the surrounding air (which carries the sound), between the air and your auditory capability (which receives the information), and between your ears and your brain (which receives, processes and stores the information).? Or is the air simply the medium through which the sound is transmitted, making the “real” interface just between my voice and your ears?
In computing, we often talk about a chunk of controlling software between two systems as an interface, but in reality, there are two interfaces as described in the ABC example shown above.? Middleware, for example, is software that lies between an operating system and the systems running on it, so it’s technically not an interface; it’s intermediary software.? Data may be changed, re-directed, temporarily stored, etc., by the middleware before it is finally passed to the target systems.
Other examples:? A proxy server, providing a secure link between users and the internet, is a computer, and is therefore an intermediary and not just an interface. ?An adaptor is intermediary hard or software that allows two otherwise incompatible device to be linked.? It must change something between the two systems, so it is an intermediary.? If you plug a machine into a power socket, your machine now interfaces with the power grid.? But if you have a UK plug that needs to connect to a European power socket, you need an adaptor - a hardware intermediary in the same sense as an IT adaptor.? A fa?ade pattern in computing is described as an object that serves as a front-facing “interface” masking more complex underlying or structural code, but it’s not really just an interface, it’s an intermediary, because it changes what is actually there into something simpler and more acceptable to the end user.
领英推荐
An interface is intangible.? It’s the medium through which information passes, rather than the real-world object generating, controlling or receiving that information.? In computing, it may well be just a cable, a connector or a radio signal.? In verbal communication, the air is the medium through which the information passes.? The function of an interface would therefore be the transmission of information without altering it in any way.? This is what air, cables and radio waves do.? An intermediate database, on the other hand, receives, formats and stores information, and the target system C may re-format it when it reads it and stores it for itself.
What if there is a database trigger, that automatically sends data to system C when the database receives it from system A?? Here, the interfaces are:? Between the database and the trigger, between the trigger and the package it delivers, and between the package and system C.
Let’s re-visit the definition of an interface:? It’s a connecting medium between two systems, or two agents, that transmits information from one system to another, but does not change that information in any way.
And now let’s complicate the issue.? What’s a boundary?? A standard definition is: “A line or limit where one thing ends and another begins, or something that indicates such a line or limit”.? In computing, a partitioned server fits the definition, the conceptual border between partitions forming a boundary.
A good “real-world” example is a national boundary.? Unless the boundary is indicated by a geophysical manifestation such as a river, it’s an imaginary, one-dimensional line, on one side of which is, say, France, and on the other side, Germany.? Is it an interface?? Well, it allows the transmission of information from one side to another, so according to our definition, it is.? Although on one side of the boundary the people speak French, and are bound by French law and customs, on the other side of the line, it’s all German.? Some may argue that any information passing across the boundary is therefore transformed, but that’s not quite true.? It’s not the boundary itself that transforms the information; that transformation takes place after the information has passed the boundary, and it is done once inside the country.? In fact, there may be no transformation.? A document written in French may be passed across the border to Germany without change.? It may be later translated, but that requires the presence of a brain or a machine? - intermediary hardware and software, therefore.? Indeed, there doesn’t even need to be any transfer of information at all.? An interface, as we have seen, facilitates the transfer of information, but a boundary is simply the imaginary line between the two countries - no more.
In practice, of course, people, goods and information pass constantly between the two countries.? It therefore behaves more like an interface than a pure boundary.? Also, as members of the EU, there is very little constraint on the free movement of data and materiel.? We would not say, however, that the boundary allows, or facilitates free movement. ?And between another two countries, e.g., North and South Korea, or the USA and Mexico, the boundaries may actually act as impediments to free transfers…not interfaces, therefore, by my definition.? Border control may act like intermediary middleware; you may be detained, interrogated, searched, have your passport stamped, your visa checked, certain goods confiscated, and your biometrics taken.
If one French speaker and one German speaker, unable to speak each other’s languages, require a translator, is that translator an interface between them?? I would say that, technically, the translator is an intermediary.? She doesn’t pass data unchanged between the two speakers, and may even temporarily retain some information before passing it from the speaker to the listener.
But let’s go back to the origin of the question - information technology.? Does it matter whether or not we call intermediary software an interface or not?? Well, it may do.? Software has to be designed, built, tested and implemented.? Then it has to be maintained, and perhaps upgraded occasionally, maybe even replaced.? That’s significant work.? Interfaces such as cables, phone lines, connectors and the internal electronic components of a computer (mainly the CPU and memory), are much simpler and more robust.? Even radio is relatively unchanging - the transmission and reception protocols may vary, but data is still, in the real world, passed unchanged (and in real time) between systems.
Whether there is an intermediary or an interface, therefore, makes a huge commercial difference to both capex and opex.? Why have expensive intermediary software when a simple interface will do?? If all I really need to do is login to a database, do I really need any additional software?? Creating an interface may be as simple as setting up an account or providing a link.? I just need a laptop.? In cases where I do need to process data in some way, intermediary software such as middleware may be unavoidable, but we should, at least, be aware of the difference between an interface and an intermediary.? One is simple and inexpensive, the other is probably not, so we need to know which we are providing, even if only to provide correct project and support estimates.
?
Here's a summary of definitions:
Interface: ?A connecting medium between two systems, or two agents, that facilitates the transmission of data from one system to another, but does not store or change that data in any way.
Intermediary:? Software that routes and controls the passage of data between two or more systems.? Data may be modified, filtered, re-directed, stored, etc., by the intermediary before it is finally transferred to the target system(s).
Boundary: ?A line or limit where one thing ends and another begins, or something that indicates such a line or limit.