It would not be wrong , If say that , I have built a career in Computer Programming/Software Engineering by working with re-engineering projects , software porting and application Integration.
In the early years , It was mostly interfacing C , Clipper and Assembler in writing business applications. CA-Clipper/Clipper Summer 87 had excellent facility to call C/Assembler functions ( EXTEND system ) and have Integrated C and Clipper in areas like VGA graphics , Local Language Font support , Data Compression , PC to PC file transfer protocols etc. to name a few.
Then , came Windows ( Win16/Win32s/Win32 ) and the focus shifted to producing DLLs in Borland C/C++ and Visual C/C++. Those DLLs were called from Delphi and Visual Basic. I have participated in
VBX (Visual Basic Xtensions ) , OCX and Active X projects in integrating business logic and functionality.
Writing COM automation client was another option to integrate application.
Around that time , Windows became a network operating System ( My only previous exposure was SCO Unix and Novel Netware ) and Sockets/NamedPipes became the primary integration mechanism between applications. There were things like DDE (Dynamic Data Exchange ) to interact between two applications.
In Win32 , It was mostly splitting the applications to DLLs , COM DLLs , OCX and ATL DLLs. This enabled front ends written in VB ,Power Builder and Delphi to call the functionality encapsulated in those components.
Then came , COM + ( DCOM ) as a mechanism to integrate applications and excellent support for creating ATL based COM components enabled people to write applications in layered manner across the network. Microsoft came up with MTS , MSMQ (later merged into COM + ) and related technologies to help us integrate applications . ( It was called Windows DNA - Windows Distributed Network Architecture )
With the arrival of java , there are other tools which I got exposed to. The first was RMI/IIOP ( Remote Method Invocation ) and then , support for EJB .
Finally , It became Enterprise .NET stack and JEE stack. Then , SOAP over HTTP ( aka Web services ) became the norm and interfacing java and .net apps became a routine affair for me.
Recently , I worked with Apple iPad as the front end and .net enterprise stack (WCF ) at the backend. It was an Ocassionally connected application (OCA ) and there were challenges with large file transfer , SOAP requests/repsonse, Synchronization and failsafe behavior.
Even though , I have mentioned lot of technologies, the Integration methodologies roughly fall into
a) File transfer
b) Shared database
b) Remote Procedure call/Remote Object call ( WCF , EJB stuff )
c) Asynchronous messaging ( JMS , MSMQ stuff )
The above information (regarding integration methodologies ) were usurped from the book,
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions by Gregor Hohpe & Bobby Woolf.
The taxonomy and quality of narration (regarding the business context ) is simply superb and given a choice I would have revamped the integration logic of couple of applications I had worked in the past.