Applications are increasingly being built on the web platform. This means that talking from one app to another, is not just cut-copy-paste, or OLE (Object Linking and Embedding) made famous by Microsoft. Today's web can subscribe to web events, URL's or API Callbacks. Data can be pushed around in bulk or in fine-grained API calls.
Two of the technologies many a layman would have heard by now is CSV and API. These two have conquered the ether, risen to the top of the pile as an easy means of transporting and sending data. But the full extent of integration is not really understood.
Here follows a brief conceptual overview of the eco-system concept which gives rise to a proper set of Web Integrations.
What is Integration
Quite simply, an integration is when one system integrates in one or more ways with another. They need not be operated by the same company nor run on the same network. Integration is when you take something you create in one system and push it to another system. The output of one, and the input of the other.
Manual work can be done, by importing a CSV, Excel file or some kind of data format. When you take a photo with your phone, connect it via usb, and copy it to your PC, your integrating. The manual kind is tedious. We don't have to tell you, you know these pain points.
API driven Integration
Often a product may offer you a Developer area, where an API is documented. It's usually consumed by other developers and is too complicated for the layman to use, but here is a quick idea of what its about.
The target platform, let's call it B, has an application programming interface. It is a means for code to communicate. These days, we typically use a web url as the Endpoint . The endpoint may be something like this:
If a developer uses this URL with code, they may POST an image to this URL. The URL will accept the image and save it on the server. In order for the target platform B to accept, they have already written code that accepts any image and stores it.
Platform A, needs to get the image from you, and then POST it to platform B. This could happen as you upload to one system, it creates a backup on another system.
In the same way, developer express more meaning in their API by providing more complete URL's.
Consider a URL like this:
In this scenario, platform A, can send a specific image to replace the one numbered uniquely with 2. The company that is sending it, is uniquely identified as company 1. In this way, many companies can send many images.
This is a contrived example, but hopefully you understand how URL's could be used to send data.
Other forms of Integration
Together with URL based API, you can also get libraries that developers use, that talk to services that other companies offer. Amazon has an SDK, which allows you to talk to software, that in turn communicates with a range of services on your Amazon Account. This allows my application to talk to Amazon's application and automate some sort of function. Amazon S3 is a file storage service, which we utilize many times. We can store your files inside of Amazon S3, by sending files to an API.
There are many forms of security, including end to end encryption. Services like those offered by Amazon, Microsoft and Google are often enabled and extended by API's. They also offer Certificates, HSM and many other security mechanisms.
We can build a piece of software that you can use, but we can also build software that other developers talk to for integrations. When a product offers a rich set of features together with a comprehensive integration system, we tend to call them eco-systems. Mainly because you are allowing others to create products within your platform. Examples of this include Trello and Slack.