Integrating Multiple Software Products for a Better User Experience
Read no further if your head starts spinning at the mention of software engineering. Just realize that the software apps you now use daily, whether on a smartphone, tablet, computer, or even smart TV, enhance the usability and utility of the product. However, the technology in these devices is too involved and complex for one company to manage it all. Therefore, engineering today requires not only creation, but also integration.
Integration means, in this case, putting multiple components together to make one useful or improved product. The whole “Open Source” movement is partially motivated by the fact that many useful components can be re-used by many different developers, and some developers are willing to give such code away for the benefit of the entire community. Even for commercial products (like Snowbound’s RasterMaster document manipulation library), many companies sell code libraries or resources that are embedded within other people’s programs. Operating systems such as Windows or UNIX that provide basic technology such as printing or file management can also be enhanced by add-on code libraries.
Today, web-based products also follow that same model. It may be beneficial for an app that runs within a web page to be callable by a different app. A portal for downloading insurance documents, for example, likely will need not only controls for selecting and downloading documents, but it may also need the ability to view those documents. Add-on viewing controls for sophisticated manipulation of documents can add that capability.
How Does This Work in Real Life?
As a real world example, Snowbound develops software libraries and tools to give developers the ability to create their own applications for viewing and converting documents. These tools have a sophisticated API (application programming interface) that developers call to manipulate and modify their specific documents. Hundreds of functions are available like zooming, rotation, conversion from color to gray scale, page extraction, and more. These kinds of functions are quite useful and necessary in many traditional software programs. However, they are also needed to enhance web applications.
A sample scenario might be an insurance company portal designed to permit customers to download, view, search, and print their documents. A basic web app would be able to list the documents that a user might have stored on the insurance company’s database. But more sophisticated features might allow the user to not only select and download a document, but also display it, search for specific content, and then print only what’s required. The typical browser doesn’t have that capability, but an HTML5 viewing app working within the browser might offer that feature.
So where does the API come in?
For usability and efficiency, current web app design leans toward putting all the necessary functions in one set of buttons located in one area of the web page. Most of us would agree that having the functions for finding a file, opening it and then searching for specific content would be easier to use if all those calls were confined to a set of buttons in one area on the page. However, these functions usually require the use of multiple apps which could cause user confusion. The solution is to have these multiple apps have API’s that the web page designer can use to position the buttons seamlessly on the page wherever they choose. The user will never know that multiple programs are running behind the scenes. All they know is that they’re enjoying an easier and faster experience accessing the documents they need.
One Seamless, Beautiful Result
So when this is done correctly, the uninitiated user gets to see a webpage that has all the functions they need in one logically organized place. They never need to know that under the hood are multiple applications developed by different companies accessing all kinds of databases on far flung servers anywhere in the world. It just works!