Cloud vs On-Premise Software Integrations
Integration between software applications is all about getting information out of one system and into another. The amount of data that actually gets transferred––and how that transfer is accomplished––is one of the big differences between cloud vs on-premise integrations. One long-standing method of integration for on-premise systems is called ETL, or Extract-Transform-Load. ETL involves pulling a table out of one system, manipulating it so that it can be used in the other system, and loading it in. Large amounts of information could be integrated in this way because there were no limitations on the number of files that could be transferred between systems, as it was being done on a company’s own network. Of course, there are several downsides to ETL. One is that moving huge amounts of data took significant time and bandwidth, which is why these operations were often done in the middle of the night or on weekends. Real time access to information is also not possible using this method. With today’s increased demand for real-time information and more integrations between cloud and on-premise applications, things have changed. With cloud integrations, information has to move across the Internet, which means there are bandwidth, speed and security concerns. Most cloud vendors manage these issues by moving away from tightly-coupled, table-based integrations to more loosely coupled integrations that are focused on integrating the specific pieces of data needed to do a task, rather than moving entire tables back and forth, thereby limiting the amount of data exposed to perform a particular transaction. This is called Service Oriented Architecture (SOA), which is one of the primary methods of integrating cloud-based applications. SOA is enabled by web services and supported by most application vendors, whether cloud or on-premise. For most integrations, SOA has replaced older ETL-type integrations.
Cloud vs On-Premise: Integration Tools
Integration tools fall into several main categories:
- Vendor-supplied on-premise integration tools: Often called middleware, many of the most popular ERP vendors, including Oracle, SAP and others, provide applications that can translate information between disparate systems. Oracle’s version of middleware is called Oracle Fusion, for instance, and SAP’s is called NetWeaver. This layer performs the processes that allow data to be moved between on-premise or cloud based systems without interfering with the core data tables.
- Third party on-premise integration tools: ERP vendors aren’t the only entities offering middleware. There are a number of third party vendors building applications to provide integration in a number of ways, from table access on an RDBMS system, to more messaging-based, point-to-point integrations.
- Cloud-delivered integration tools: These are tools that connect cloud-based ERP and third party applications, which are themselves available via the web as a service.
- APIs, Web Services, etc.: These are the specific integration tools that can integrate cloud and on-premise applications. Application programming interfaces (APIs) may be offered by the third party vendor. Web services integration tools and interfaces are typically built using common, well supported tools such as Java.
Considerations for On-premise to Cloud Integrations
When integrating on-premise applications with cloud applications, there are a few important things to consider, including:
- Data Limitations: What are the limitations on data volume? What is the size of the batch that can be uploaded at one time?
- Import/Export: What are the import/export capabilities? This used to be more of an obstacle than it is now, but still something to be familiar with.
- Integration Tools: What sort of integration tools can be used? Cloud integration tools such as RESTful web services, Java, etc., may be better than writing an interface in the native ERP language and require less work at upgrade time.
- Identity Management: How will system access be managed as employees onboard or terminate?
Considerations for Cloud-to-Cloud Implementations
When integrating cloud applications with other cloud applications, the considerations tend to revolve around concerns such as security, data limitations and who owns and maintains the integration. These concerns include:
- Speed: How fast can you move the data between applications, and what limitations are there on the volume of data that can be moved?
- Integration Tools: Does an API exist or does one need to be written? What other cloud integration tools can be used? When needed, interfaces can usually be written using well-supported, widely-used tools such as RESTful web services.
- Master Data: What system will be the “master” with regard to customer information? Can a third party application overwrite information in the main customer record? How will those updates be handled?
- Maintenance: Technology is always changing and improving. How will these changes be handled? Who will be in charge of maintaining the integrations through the upgrade process?
- Security: How does the data move on and off of your network, and how will you keep the data secure as it moves between systems?
Is your company considering cloud vs. on-premise integration? We’d like to hear about the challenges you’re facing in the comments.