Welcome!

Microservices Expo Authors: Elizabeth White, Liz McMillan, Mehdi Daoudi, Pat Romanski, Flint Brenton

Related Topics: Microservices Expo

Microservices Expo: Article

SOA Feature Story: Real-Time SOA Starts with the Messaging Bus!

The mediator of all component interactions

Service Oriented Architectures are increasingly being used to implement high-performance and real-time systems. Traditional systems operate in "human real-time," where human patience is the limit. Increasingly, however, systems operate in "computer real-time," where the only limits are imposed by the operational speed of the computers and networks.

For example, next-generation Air Traffic Management systems are being developed to accommodate the huge increase in air traffic and link the operational capabilities of agencies such as the Federal Aviation Authority, the Department of Defense (DOD) and the Department of Homeland Security (DHS). These systems require higher information bandwidth (to track more aircraft or more complex "free-flight" trajectories) as well as much lower latencies or delays on the information (to detect flight abnormalities quickly). Similar demands are being made in healthcare, SCADA, network monitoring, energy distribution, transportation, and other critical infrastructure systems.

Best-of-Breed SOA Components
Demanding real-time applications require best-of-breed service-oriented foundational components. There are three kinds of foundational components in a SOA system: A messaging fabric/bus, information transformation/processing engines, and persistence/storage services (see Figure 1). Often these components are integrated into an Enterprise Service Bus (ESB) and hosted in a J2EE Application Server.

Of these foundational components, the Messaging Fabric/Bus is the most critical, since it mediates all interactions between components.

Low-performance SOA systems may use HTTP as the "messaging fabric/bus" to exchange messages between components. This approach is only suitable for non-demanding applications: HTTP isn't reliable, has limited bandwidth, introduces very high latencies, and can't buffer and queue messages and deliver them to systems that are either temporarily unavailable or join at a later time.

The solution is to deploy a high-performance messaging middleware such as RTI Data-Distribution Service, IBM WebSphere MQ, TIBCO, or SonicMQ. These middleware platforms have been developed with scalability and performance in mind. However, they each employ a different architecture optimized for different application scenarios.

Why Does Messaging Performance Matter?
The requirements and expectations of computer-speed real-time far exceed traditional human-speed real-time. Whereas in systems with a human in the loop, real-time meant that the information was available anywhere from fractions of a second to few seconds in the computer-to-computer world, real-time means decisions should be made in milliseconds or even microseconds.

Computer real-time puts more stringent requirements on the messaging infrastructure: Each processing and storage component must get hundreds of thousands of messages/events per second with microsecond or at worst millisecond latencies. This means that the messaging middleware must be able to deliver millions of messages a second system-wide.

And the capacity of the messaging fabric must be able to scale with the capacity of the underlying hardware and not impose any limits beyond those of the underlying hardware infrastructure (CPU speed, cores, speed, and bandwidth of the network) itself. As the CPU and network speeds increase those systems able to take advantage of what the hardware provides will deliver a competitive advantage. In an automated trading system, for instance, the critical metric is not the absolute time it takes to make a decision, but rather whether a decision is taken and the trade executed before competitive trades occur. The same is true in a combat management system.

One final aspect of computer real-time SOA systems is their "inverted performance-load utility curve." This means that the ability to respond in a timely manner becomes more important when the system is experiencing a high load. In a normal utility curve, such as in human real-time systems, degraded performance is acceptable under an increased load. This is because human expectations and patience adjust based on the circumstances (e.g., they understand that on a peak holiday period they may endure longer hold times when calling to make a flight reservation). In contrast, computer-speed real-time systems often have the opposite demands. It is precisely at the moments of high load when the "most critical action" is taking place and it is then when it is most critical to deliver top performance (e.g., it is precisely when market action is heavy that trading decisions must be made quickly).

The differences between human-speed real-time systems and computer-speed real-time systems are summarized in Table 1.

Selecting Messaging Middleware in SOA Systems
Messaging middleware is the key enabler of real-time SOA. However, there are many options. How can you choose the best messaging middleware for a particular real-time SOA system? Five areas distinguish messaging middleware: architecture, quality of service (QoS) control and filters, performance-boosting technologies, real-time determinism, and metrics.

Architecture
The four basic architectures employed by messaging middleware are: centralized (hub-and-spoke), clustered, federated, and peer-to-peer. (see Figure 2)

A centralized (hub-and-spoke) architecture routes every message though a single server that implements the message "service," contains all the message queues, and brokers every message.
A clustered architecture uses a collection of servers and assigns to each responsibility for some of the messages (like ownership of some of the message queues or topics). Each message is relayed by a server but not all messages use the same server.

A federated architecture also uses a collection of servers, but it uses them as a "resource pool" where queues may appear in multiple servers, and messages may be brokered by one or more servers.

A peer-to-peer architecture doesn't employ any brokers in the critical path. Messages are routed directly from the sender to the receiver.

Each has strengths and weaknesses. Centralized is easiest to administer and can provide stronger transactional semantics but suffers from poor performance, reduced tolerance to faults, and doesn't scale. Clustered is more scalable than centralized but also has reduced fault tolerance and can only offer good performance in a grid environment with all the clients co-located close to the grid. Federated is more scalable, but suffers from higher latency and jitter as each message is brokered by at least two servers. P2P offers the best scalability, performance, lowest jitter, and highest resilience, but is difficult for vendors to implement and offers limited transactional support.

As demands become more real-time, the need for performance, predictability, and balance tips the scale towards P2P architecture. That's why, for example, demanding networks like Voice over IP and Video over IP (like Skype) use peer-to-peer designs.

Quality of Service Control & Filters
QoS control is critical to deliver timely data with low latency and high throughput. CPU, memory, and network bandwidth resources must be shared among all the traffic. However, not all traffic requires the same bandwidth or has the same urgency or level or criticality. Without QoS control, the application has no way to differentiate different traffic classes and their corresponding constraints. As a consequence, the middleware can't make intelligent decisions, prioritize traffic, or ultimately meet the application requirements.


More Stories By Gerardo Pardo-Castellote

Gerardo Pardo-Castellote, PhD, is chief technology officer of Real-Time Innovations Inc.

Comments (3) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Gerardo Pardo-Castellote 07/20/08 01:57:08 AM EDT

Regarding the previous comment about "TCP not lining up a message on one connection after a file transfer on another connection." and the "information in the article not being correct."

This is true, but in order for this to occur you would need to open a new TCP connection for every message. This is extremely inefficient, requires a handshake involving a round-trip message, and allocates a lot of system resources. This is certainly something you do not want to do in a real-time system.

So in practice anybody developing a real-time system would have to hold the TCP connection open and send successive messages over it (or course one can keep more than one connection open, and round-robin among them but that does not change fundamental problem if the application is writing quickly). Therefore the information in the article IS correct.

Casual Visitor 06/12/08 03:04:45 PM EDT

TCP does not line up a message on one connection after a file transfer on another connection. Each TCP connection forms its own in-order transfer. If you want to convince people to buy your product, you should avoid putting incorrect information in the article. It is much better to have a good analysis with accurate claims so that people will believe that your product might overcome real problems rather than phantom ones like "messages wait behind file transfers".

Derek Pavatte 01/25/08 02:03:32 AM EST

If everything is automated, I suppose we will have more time to do things more pleasant things than work as much. These technological advancements sound very progressive. Let us all work towards a competent and ethical work environment.
http://www.greatdiamondsforless.com

@MicroservicesExpo Stories
Enterprises are moving to the cloud faster than most of us in security expected. CIOs are going from 0 to 100 in cloud adoption and leaving security teams in the dust. Once cloud is part of an enterprise stack, it’s unclear who has responsibility for the protection of applications, services, and data. When cloud breaches occur, whether active compromise or a publicly accessible database, the blame must fall on both service providers and users. In his session at 21st Cloud Expo, Ben Johnson, C...
Most of the time there is a lot of work involved to move to the cloud, and most of that isn't really related to AWS or Azure or Google Cloud. Before we talk about public cloud vendors and DevOps tools, there are usually several technical and non-technical challenges that are connected to it and that every company needs to solve to move to the cloud. In his session at 21st Cloud Expo, Stefano Bellasio, CEO and founder of Cloud Academy Inc., will discuss what the tools, disciplines, and cultural...
21st International Cloud Expo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy. Me...
With the rise of DevOps, containers are at the brink of becoming a pervasive technology in Enterprise IT to accelerate application delivery for the business. When it comes to adopting containers in the enterprise, security is the highest adoption barrier. Is your organization ready to address the security risks with containers for your DevOps environment? In his session at @DevOpsSummit at 21st Cloud Expo, Chris Van Tuin, Chief Technologist, NA West at Red Hat, will discuss: The top security r...
‘Trend’ is a pretty common business term, but its definition tends to vary by industry. In performance monitoring, trend, or trend shift, is a key metric that is used to indicate change. Change is inevitable. Today’s websites must frequently update and change to keep up with competition and attract new users, but such changes can have a negative impact on the user experience if not managed properly. The dynamic nature of the Internet makes it necessary to constantly monitor different metrics. O...
Agile has finally jumped the technology shark, expanding outside the software world. Enterprises are now increasingly adopting Agile practices across their organizations in order to successfully navigate the disruptive waters that threaten to drown them. In our quest for establishing change as a core competency in our organizations, this business-centric notion of Agile is an essential component of Agile Digital Transformation. In the years since the publication of the Agile Manifesto, the conn...
The nature of the technology business is forward-thinking. It focuses on the future and what’s coming next. Innovations and creativity in our world of software development strive to improve the status quo and increase customer satisfaction through speed and increased connectivity. Yet, while it's exciting to see enterprises embrace new ways of thinking and advance their processes with cutting edge technology, it rarely happens rapidly or even simultaneously across all industries.
Many organizations are now looking to DevOps maturity models to gauge their DevOps adoption and compare their maturity to their peers. However, as enterprise organizations rush to adopt DevOps, moving past experimentation to embrace it at scale, they are in danger of falling into the trap that they have fallen into time and time again. Unfortunately, we've seen this movie before, and we know how it ends: badly.
These days, APIs have become an integral part of the digital transformation journey for all enterprises. Every digital innovation story is connected to APIs . But have you ever pondered over to know what are the source of these APIs? Let me explain - APIs sources can be varied, internal or external, solving different purposes, but mostly categorized into the following two categories. Data lakes is a term used to represent disconnected but relevant data that are used by various business units wit...
There is a huge demand for responsive, real-time mobile and web experiences, but current architectural patterns do not easily accommodate applications that respond to events in real time. Common solutions using message queues or HTTP long-polling quickly lead to resiliency, scalability and development velocity challenges. In his session at 21st Cloud Expo, Ryland Degnan, a Senior Software Engineer on the Netflix Edge Platform team, will discuss how by leveraging a reactive stream-based protocol,...
Today most companies are adopting or evaluating container technology - Docker in particular - to speed up application deployment, drive down cost, ease management and make application delivery more flexible overall. As with most new architectures, this dream takes significant work to become a reality. Even when you do get your application componentized enough and packaged properly, there are still challenges for DevOps teams to making the shift to continuous delivery and achieving that reducti...
Many organizations adopt DevOps to reduce cycle times and deliver software faster; some take on DevOps to drive higher quality and better end-user experience; others look to DevOps for a clearer line-of-sight to customers to drive better business impacts. In truth, these three foundations go together. In this power panel at @DevOpsSummit 21st Cloud Expo, moderated by DevOps Conference Co-Chair Andi Mann, industry experts will discuss how leading organizations build application success from all...
The last two years has seen discussions about cloud computing evolve from the public / private / hybrid split to the reality that most enterprises will be creating a complex, multi-cloud strategy. Companies are wary of committing all of their resources to a single cloud, and instead are choosing to spread the risk – and the benefits – of cloud computing across multiple providers and internal infrastructures, as they follow their business needs. Will this approach be successful? How large is the ...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know that not all workloads are suitable for cloud. You know that you want the kind of ease of use and scalability that you get with public cloud, but your applications are architected in a way that makes the public cloud a non-starter. You’re looking at private cloud solutions based on hyperconverged infrastructure, but you’re concerned with the limits inherent in those technologies.
"NetApp's vision is how we help organizations manage data - delivering the right data in the right place, in the right time, to the people who need it, and doing it agnostic to what the platform is," explained Josh Atwell, Developer Advocate for NetApp, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
The “Digital Era” is forcing us to engage with new methods to build, operate and maintain applications. This transformation also implies an evolution to more and more intelligent applications to better engage with the customers, while creating significant market differentiators. In both cases, the cloud has become a key enabler to embrace this digital revolution. So, moving to the cloud is no longer the question; the new questions are HOW and WHEN. To make this equation even more complex, most ...
One of the biggest challenges with adopting a DevOps mentality is: new applications are easily adapted to cloud-native, microservice-based, or containerized architectures - they can be built for them - but old applications need complex refactoring. On the other hand, these new technologies can require relearning or adapting new, oftentimes more complex, methodologies and tools to be ready for production. In his general session at @DevOpsSummit at 20th Cloud Expo, Chris Brown, Solutions Marketi...
Leading companies, from the Global Fortune 500 to the smallest companies, are adopting hybrid cloud as the path to business advantage. Hybrid cloud depends on cloud services and on-premises infrastructure working in unison. Successful implementations require new levels of data mobility, enabled by an automated and seamless flow across on-premises and cloud resources. In his general session at 21st Cloud Expo, Greg Tevis, an IBM Storage Software Technical Strategist and Customer Solution Architec...
Today companies are looking to achieve cloud-first digital agility to reduce time-to-market, optimize utilization of resources, and rapidly deliver disruptive business solutions. However, leveraging the benefits of cloud deployments can be complicated for companies with extensive legacy computing environments. In his session at 21st Cloud Expo, Craig Sproule, founder and CEO of Metavine, will outline the challenges enterprises face in migrating legacy solutions to the cloud. He will also prese...
DevOps at Cloud Expo – being held October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real r...