Cloud Computing, EAI, and Open Source Cloud Integration
Recently, “cloud computing” has become a popular and frequently used term. This has obscured its meaning, leaving cloud computing novices confused and preventing them from fully understanding its potential benefits.
Cloud computing is the provisioning of services and applications on demand over the Internet. This encompasses everything from cloud-based enterprise applications and infrastructures to social networking sites such as Facebook and Twitter, transforming the way IT systems are being built.
As those familiar with it are already aware, cloud computing promises to be more than just a trend, offering greater flexibility, scalability and cost-effective solutions to developers and IT administrators who are too often faced with the competing demands of maintaining business efficiency while being attentive to budget concerns. With more and more enterprise applications and services migrating to the cloud, integration becomes a mission-critical priority. This leads to an entirely new set of questions about cloud integration and what it means for enterprise architecture overall.
This article aims to demystify cloud computing, provide an overview of the different approaches to enterprise application integration, and explain how an open source model of cloud integration can meet the evolving needs of developers and system administrators working within enterprise environments.
Cloud Computing: New Possibilities and New Challenges
Since the early 2000s, cloud computing has transformed the way companies run their businesses. Software companies began to develop and offer enterprise applications entirely over the Internet, reducing on-premises infrastructure requirements and vastly increasing accessibility to crucial enterprise systems with the rapid and flexible provisioning of UI (user interface) applications. The advent of such cloud-based applications, or Software as a Service (SaaS), quickly became essential components of corporate IT strategies. Salesforce.com emerged as the industry leader of this early form of cloud computing with its popular CRM products.
More recently, Infrastructure as a Service (IaaS) has developed as another category of cloud computing. Amazon Web Services and Rackspace are two such providers of IaaS, offering virtual servers on which enterprise systems can be deployed. By moving IT infrastructures to the cloud, data systems can be easily shared and expanded with fewer capital investments.
While cloud computing has indeed opened up possibilities for IT administrators to further enhance business efficiency, it has also generated a new set of familiar problems. The development of cloud-based enterprise applications and services and the migration of existing on-premises applications and processes to the cloud has resulted in the fragmentation of systems and data across the enterprise. This fragmentation, in turn, can have costly consequences for enterprises that rely on these applications and services to operate their businesses.
Enterprise Application Integration (EAI) and the Cloud
Enterprise Application Integration, or EAI, has been the dominant framework for integrating enterprise applications and systems in on-premises infrastructures. Because most enterprise architectures are built as modular systems, individual applications and systems often cannot communicate with one another, creating information silos. EAI addresses this fragmentation by enabling interoperability between systems and integrating data across the enterprise through a variety of technologies.
IT administrators have traditionally relied on three primary architectures to integrate their on-premises systems: point-to-point, hub and spoke, and the enterprise service bus (ESB). In a point-to-point model, each system in the enterprise is linked to every other system, allowing the direct flow of data. In a hub and spoke architecture, various systems and applications are connected to a central point which then routes and directs data in the enterprise. With an ESB model, data is also centrally routed, but other components of the network also handle integration functions rather than a single hub.
The increasing reliance on SaaS applications and other cloud services means that data is once again being segregated into information silos; this time, however, many of the silos are now located in in the cloud. Several models of cloud integration have begun to emerge, all of which draw upon traditional EAI approaches with special attention to the recent growth in cloud services and applications.
One approach is to take existing on-premises integration architectures and middleware technologies (point-to-point, hub, ESB) and implement special connectors to newer cloud services and applications. A similar approach involves using traditional integration architectures that are hosted in the cloud. This approach takes advantage of the elasticity of cloud computing and reduces hardware requirements, but can be problematic when it comes to linking cloud applications to on-premises systems secured by firewalls.
Cloud integration is now increasingly being offered as a service. Ranging from SaaS applications to integration brokerage services, enterprises can now take advantage of a variety of cloud integration solutions delivered on demand over the Internet. These integration services are capable of a variety of connections: on-premises to cloud; cloud to cloud; or on-premises to on-premises.
The recent emergence of Integration Platform as a Service (iPaaS) marks the latest development in cloud integration services, providing a platform for developing and executing integration projects. iPaaS combines traditional EAI middleware technologies with the benefits of cloud computing to deliver a full package of integration services to enterprises.
Enhancing Flexibility through Open Source Cloud Integration
Running parallel to the recent expansion of cloud computing is the growth of open source communities and approaches to developing new technologies, and a few observers are wondering whether open source cloud integration is an appropriate approach. For the past several decades, open source communities have emerged in which developers collaborate on projects by freely distributing, copying and modifying source codes. With an entire community of developers using and modifying specific projects, technological improvements are made at a faster rate and with greater ease.
Although open source projects have typically been offered to end-users free of charge (e.g. Apache Tomcat and Firefox), professional open source companies have since emerged, combining the collaborative open source approach to developing technologies with the traditional proprietary offerings of regularly released upgrades and full support services.
The benefits of cloud computing--lower IT costs, greater flexibility, and improved scalability--overlap nicely with open source approaches. System administrators who are beginning to take advantage of cloud services might consider open source cloud integration as an approach to their IT projects. What remains to be seen as cloud computing and open source development continue to evolve is whether integration providers can successfully meet their proprietary needs and concerns while maintaining true to the interactive and collaborative nature of open source approaches.