Not sure where to post this, but here goes...
Could someone please help me better understand the differences between a "Service" and an "Interface"? (Platform neutral)
When someone says "Service", to me that means a mini Program/Function which...
- Takes in INPUTS
- Performs one or more PROCESSES
- Returns OUTPUTS
The "Service" is usually accessible to other Systems - as opposed to a "Function" which implies something internal to a System/Application.
You "call" a Service, and the Service performs some actions.
When someone says "Interface", to me that means a way to connect to something, whether that be a System, Program, or Function.
In Programming, you typically refer to an "Application Programming Interface" (API).
With Systems, I have typically heard the term "Interface" as in an "Interface Control Document" (ICD).
Now talking about these concepts together....
To me, an "Interface" is a static thing that takes INPUTS and returns OUTPUTS in a certain format. Nothing more.
A "Service" is a dynamic thing that actually performs one or more activities.
When doing requirements and diagrams, wouldn't you want to show the SERVICES and the DATA that is passed between them, and *not* show INTERFACES which are really just a means to an end?
On my current project, I have inherited a bunch of requirements that are impossible to read, and it seems like the author did not understand the difference between a "Service" and an "Interface".
Hope my ramblings and questions above make some sense?!