dzone.com/research/enterpriseintegration
|
dzone.com
|
research@dzone.com
|
(919) 678-0300
7
2014 Guide To EntErprisE intEgration
A fully-formed ESB product or open source distribution isn’t the only
option either. Minimal frameworks that harness all of the well-known
enterprise integration patterns (e.g. Apache Camel, Spring Integration)
can be paired with a message queue and other open source frameworks
to provide smart routing, transformation, orchestration, and other
features of ESBs.
SERVICE-ORIENTED ARCHITECTURE
Loose-coupling and modular applications were nothing new in the
2000s, but a stronger emphasis on these strategies started when
messaging integration paradigms made it easier to build modular
pieces of software that worked together to form complete systems and
applications. This is when the idea of Service-Oriented Architecture
(SOA) came into mainstream use. The goal of SOA is to make software
architecture more flexible to change. It is an architecture style that uses
discrete software services, each having one clearly defined business
task, with well-defined, loosely-coupled interfaces that are orchestrated
to work as a complete system by sharing functionality.
Developers generally try to build loosely-
coupled software components in their
applications, so the basic concept of SOA
is intuitive to many developers. In the
late 2000’s, however, the perception of
SOA became tied to the ESB architecture,
which many argue is not the best way
to build SOA. Though I’ve given the
basic definition of SOA above, it is
trickier to define in practice [1]. ESBs
and SOA received some backlash from
the development community because
enterprise-scale ESBs often seem to
have too many unnecessary features
or too strict a tie to a vendor’s product
suite. Developers using ESBs also tend to
use them as a place to hide complexity,
instead of dealing with it more eectively.
MICROSERVICES
Major web companies like Netflix and SoundCloud have recently put
the spotlight back on SOA after sharing their methods for integration
and scalability, which center around an architecture composed of
microservices. Some developers are saying that microservices are what
SOA is supposed to be, but regardless of whether microservices fall
under that broad definition, their definition is much clearer.
The community that has formed around microservices favors an
integration approach that diers from the classic ESB strategy.
Instead of a smart ESB mediator in the middle of the services-based
architecture, microservices will connect to each other by having smart
endpoints on each service and having dumb pipes—which are fast
messaging channels with very little logic present in the transfer stage
[2]. Microservices, like their name implies, are also strict about the size
of each service. Each microservice tends to make up one business
feature of the system. A microservice is a unit of software that can be
independently removed, plugged in, and upgraded. Unlike software
libraries, they are out-of-process components that communicate via web
services, remote procedure calls, or other similar methods. This strict
componentization makes it easy to have cross-functional developers or
teams dedicated to each service, and that’s exactly what Netflix does.
API ARCHITECTURES
Integrating systems with websites and applications made by other
people was another challenge in the history of integration that is
handled today through web APIs. The architectural patterns of web APIs
have made it easier for developers to connect unfamiliar software to
their own projects, whether they’re from another department in a large
enterprise, or from an entirely dierent company. There are certainly
strong opinions about the mechanisms being used in these APIs (SOAP
vs REST, XML vs JSON, or HATEOAS vs pragmatic REST), but each
option has its pros and cons. An organization needs to find the right
fit for their needs. The current focus for many toolmakers is building
solutions that can manage an API-dense architecture and marketplace.
IPAAS
As cloud services proliferated several years ago, integration
with those services and on-premise systems was another major
challenge for the industry. While there are many possible solutions
to this obstacle—many involving a new way of thinking given the
distributed, elastic nature of cloud infrastructure—an obvious
solution was to build integration utilities into cloud development
platforms. The iPaaS (integration Platform-as-a-Service) has emerged
as a viable option for providing integration utilities similar to those
found in ESBs, but with various cloud integration scenarios in mind.
THE EI OUTLOOK
The core messaging paradigm of modern integration is likely here to
stay for many more years as we enter a new era of connected devices
through the Internet of Things. ESBs are still a great solution for many
tech firms given the variety of options from lightweight to large legacy-
integration scale. SOA may fade into obscurity as a term, but its patterns
and lessons will live on in the fabric of modern development, especially
in emerging microservices architecture. Will microservices become
the new standard of scalable architecture? Loose-coupling is already a
standard, but microservices will take some time to become mainstream,
and if they do, there will always be enterprises that misuse its patterns
and give it a bad name.
References:
[1]: http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html
[2]: http://martinfowler.com/articles/microservices.html
WRITTEN BY Mitch Pronschinske
Mitch Pronschinske is the Head Analyst for DZone’s
Research division. He has been writing, curating, and editing
content for an audience of IT professionals for over five
years. In that time, he has understood the complexity that
software producers deal with on a daily basis and strives to make their
world easier to understand and digest.
WRITTEN BY AsAnkhA PererA
Asankha Perera is the founder and CTO of AdroitLogic—
the creators of the free and open source Enterprise
Service Bus UltraESB. He is a member of the Apache
Software Foundation and the VP of the Apache
HttpComponents project.
will
Microservices
becoMe tHe
new stAndArd
of scAlAble
ArcHitecture?