Click here to close now.

Welcome!

Microservices Journal Authors: Carmen Gonzalez, Liz McMillan, Roger Strukhoff, Elizabeth White, Tech Spot

Related Topics: Microservices Journal, Java, Linux, Open Source, Cloud Expo, SDN Journal

Microservices Journal: Article

Beyond REST and SOA: Introducing Agent-Oriented Architecture

Dynamic coupling represents a paradigm shift in how to build and utilize APIs

A question we commonly get at EnterpriseWeb is whether our platform follows REST or not. Representational State Transfer (REST) is an architectural style for distributed hypermedia systems such as the World Wide Web, and is perhaps best known for providing a lightweight, uniform Web-style application programming interface (API) to server-based resources. One the one hand, EnterpriseWeb can both consume and expose any type of interface, including tightly coupled APIs, Web Services, as well as RESTful APIs, and the platform has no requirement that customers must build distributed hypermedia systems. It would be easy to conclude, therefore, that while EnterpriseWeb supports REST, it is not truly RESTful.

Such a conclusion, however, would neglect the broader architectural context for EnterpriseWeb. The platform builds on top of and extends REST as the foundation for the dynamic, enterprise-class architectural style we call Agent-Oriented Architecture (AOA). EnterpriseWeb's intelligent agent, SmartAlex, leverages RESTful constraints as part of the core functionality of the EnterpriseWeb platform. The resulting AOA pattern essentially reinvents application functionality and enterprise integration, heralding a new paradigm for distributed computing.

The Limitations of REST
One of the primary challenges to the successful application of REST is understanding how to extend REST to distributed hypermedia systems in general, beyond the straightforward interactions between browsers and Web servers. To help clarify this point, Figure 1 below illustrates a simple RESTful architecture. In this example, the client is a browser, and it sends GETs and PUTs or other RESTful queries to URIs that resolve to resources on a server, which responds by sending the appropriate representation back to the client. In addition, REST allows for a cache intermediating between client and server that might resolve queries on behalf of the server for scalability purposes.

Figure 1: Simple RESTful Architecture

As an architectural style, however, the point of REST isn't the uniform interface that the HTTP verbs enable. REST is really about hypermedia, where hypermedia are the engine of application state - the HATEOAS constraint essential to building hypermedia systems. In figure 1, we're representing HATEOAS by the interactions between human users and their browsers as people click links on Web pages, thus advancing the application state. The RESTful client (in other words, the browser) maintains application state for each user by showing them the Web page (or other representation) they requested when they followed a given hyperlink.

However, software clients that do not necessarily have user interfaces may be problematic for REST, but they are a familiar part of the Service-Oriented Architecture (SOA) architectural style, where we call such clients Service consumers. Combining REST and SOA into the combined architectural style we call REST-Based SOA introduces the notion of an intermediary that presents a Service endpoint and resolves interactions with that endpoint into underlying interactions with various legacy systems. The SOA intermediary in this case exposes RESTful endpoints as URIs that accept GETs, PUTs, etc. from Service consumers, which can be any software client. See figure 2 below for an illustration of the REST-Based SOA pattern.

Figure 2: REST-Based SOA

Note that adding SOA to REST augments the role of the intermediary. Pure REST allows for simple caching and proxy behavior, while SOA calls for policy-based routing and transformation operations that provide the Service abstraction. SOA also reinforces the notion that the Service consumer can be any piece of software, regardless of whether it has a user interface.

Even with REST-based SOA, however, we still have problems with implementing HATEOAS: coding our clients so that they are able to gather the metadata they need by following hyperlinks. In other words, how do we apply REST to any hypermedia system, where instead of a browser we have any piece of software as a client? How do we code the software client to know how to follow hyperlinks, where it doesn't know what the hyperlinks are ahead of time or what representations they're supposed to interact with? Humans simply click hyperlinks until they get the representation they want, even if they don't know beforehand how to find it. How do we teach software to automate this process and gather all the metadata it needs by following a sequence of hyperlinks?

Introducing Agent-Oriented Architecture
The answer to these questions is to cast an intelligent agent in the role of SOA intermediary in the REST-Based SOA pattern in Figure 2. Intelligent software agents (or simply intelligent agents when we know we're talking about software) are autonomous programs that have the authority to determine what action is appropriate based upon the requests made of them. In this new, Agent-Oriented architectural pattern, the agent interacts with any resource as a RESTful client, where the agent must be able to automatically follow hyperlinks to gather all the information it requires in order to respond appropriately to any request from the client.

In other words, when following this newly coined AOA architectural style, software clients do not have to comply with HATEOAS (they may, but such compliance is optional). Instead, the agent alone must follow the HATEOAS constraint as it interacts with resources. To achieve this behavior, we must underspecify the intelligent agent. In other words, the agent can't know ahead of time what it's supposed to do to respond to any particular request. Instead, it must be able to process any request on demand by fetching related resources that provide the appropriate metadata, data, or code it needs to properly respond to that request with a custom response, for each interaction in real time. Figure 3 below illustrates the basic AOA pattern.

Figure 3: Agent-Oriented Architecture

For each request from any client, regardless of whether it has a user interface, the agent constructs a custom response based on latest and most relevant information available. In fact, requests to the agent can come from anywhere (i.e., they follow an event-driven pattern). The agent's underspecification means that it doesn't know ahead of time what behavior it must exhibit, but it does know how to find the information it needs in order to determine that behavior - and it does that by following hyperlinks, as per HATEOAS. In other words, the goal-oriented agent resolves URIs recursively in order to gather and execute the information it needs - a particularly concise example of fully automated HATEOAS in action.

The Benefits of AOA

An earlier Loosely-Coupled newsletter explained that if you follow REST, you're unable to accept out-of-band metadata or business context outside of the hypermedia. Agent-Oriented Architecture, however, solves these problems, because the agent is free to fetch whatever it needs to complete the request, since it treats all entities - metadata, data, code, etc. - as resources. In other words, the agent serves as a RESTful client, even when the software client does not. What was out-of-band for REST isn't out-of-band for AOA. Everything is on the table.

The true power of AOA, though, lies in how it resolves the fundamental challenge of static APIs. Whether they be Web Services, RESTful APIs, or some other type of loosely-coupled interface, every approach to software integration today suffers from the fact that interactions tend to break when API contract metadata change.

By adding an intelligent agent to the mix, we're able to resolve differences in interaction context between disparate software endpoints dynamically and in real time. Far more than a traditional broker, which must rely on static transformation logic to resolve endpoint differences, the agent must be able to interpret metadata, as well as policies, rules, and the underlying data themselves to create real time interactions that maintain the business context - an example of dynamic coupling, a central principle to AOA.

Dynamic coupling, therefore, represents a paradigm shift in how to build and utilize APIs. Up to this point in time, the focus of both SOA and REST has been on building loosely-coupled interfaces: static, contracted interfaces specified by WSDL and various policy metadata when those interfaces are Web Services, or Internet Media Types and related metadata for RESTful interactions. Neither approach deals well with change. AOA, in contrast, relies upon dynamic coupling that responds automatically to change, since the agent interprets current metadata for every interaction in real time.

Icons by http://dryicons.com

More Stories By Jason Bloomberg

Jason Bloomberg is the leading expert on architecting agility for the enterprise. As president of Intellyx, Mr. Bloomberg brings his years of thought leadership in the areas of Cloud Computing, Enterprise Architecture, and Service-Oriented Architecture to a global clientele of business executives, architects, software vendors, and Cloud service providers looking to achieve technology-enabled business agility across their organizations and for their customers. His latest book, The Agile Architecture Revolution (John Wiley & Sons, 2013), sets the stage for Mr. Bloomberg’s groundbreaking Agile Architecture vision.

Mr. Bloomberg is perhaps best known for his twelve years at ZapThink, where he created and delivered the Licensed ZapThink Architect (LZA) SOA course and associated credential, certifying over 1,700 professionals worldwide. He is one of the original Managing Partners of ZapThink LLC, the leading SOA advisory and analysis firm, which was acquired by Dovel Technologies in 2011. He now runs the successor to the LZA program, the Bloomberg Agile Architecture Course, around the world.

Mr. Bloomberg is a frequent conference speaker and prolific writer. He has published over 500 articles, spoken at over 300 conferences, Webinars, and other events, and has been quoted in the press over 1,400 times as the leading expert on agile approaches to architecture in the enterprise.

Mr. Bloomberg’s previous book, Service Orient or Be Doomed! How Service Orientation Will Change Your Business (John Wiley & Sons, 2006, coauthored with Ron Schmelzer), is recognized as the leading business book on Service Orientation. He also co-authored the books XML and Web Services Unleashed (SAMS Publishing, 2002), and Web Page Scripting Techniques (Hayden Books, 1996).

Prior to ZapThink, Mr. Bloomberg built a diverse background in eBusiness technology management and industry analysis, including serving as a senior analyst in IDC’s eBusiness Advisory group, as well as holding eBusiness management positions at USWeb/CKS (later marchFIRST) and WaveBend Solutions (now Hitachi Consulting).

@MicroservicesExpo Stories
The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that produce software that is obsolete at launch. DevOps may be disruptive, but it is essential. The DevOps Summit at Cloud Expo – to be held June 3-5, 2015, at the Javits Center in New York City – will expand the DevOps community, enable a wide...
Enterprises are fast realizing the importance of integrating SaaS/Cloud applications, API and on-premises data and processes, to unleash hidden value. This webinar explores how managers can use a Microservice-centric approach to aggressively tackle the unexpected new integration challenges posed by proliferation of cloud, mobile, social and big data projects. Industry analyst and SOA expert Jason Bloomberg will strip away the hype from microservices, and clearly identify their advantages and d...
Cloud Expo, Inc. has announced today that Andi Mann returns to DevOps Summit 2015 as Conference Chair. The 4th International DevOps Summit will take place on June 9-11, 2015, at the Javits Center in New York City. "DevOps is set to be one of the most profound disruptions to hit IT in decades," said Andi Mann. "It is a natural extension of cloud computing, and I have seen both firsthand and in independent research the fantastic results DevOps delivers. So I am excited to help the great team at ...
There is no question that the cloud is where businesses want to host data. Until recently hypervisor virtualization was the most widely used method in cloud computing. Recently virtual containers have been gaining in popularity, and for good reason. In the debate between virtual machines and containers, the latter have been seen as the new kid on the block – and like other emerging technology have had some initial shortcomings. However, the container space has evolved drastically since coming on...
Container frameworks, such as Docker, provide a variety of benefits, including density of deployment across infrastructure, convenience for application developers to push updates with low operational hand-holding, and a fairly well-defined deployment workflow that can be orchestrated. Container frameworks also enable a DevOps approach to application development by cleanly separating concerns between operations and development teams. But running multi-container, multi-server apps with containers ...
Converging digital disruptions is creating a major sea change - Cisco calls this the Internet of Everything (IoE). IoE is the network connection of People, Process, Data and Things, fueled by Cloud, Mobile, Social, Analytics and Security, and it represents a $19Trillion value-at-stake over the next 10 years. In her keynote at @ThingsExpo, Manjula Talreja, VP of Cisco Consulting Services, will discuss IoE and the enormous opportunities it provides to public and private firms alike. She will shar...
With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo in Silicon Valley. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be! Internet of @ThingsExpo, taking place Nov 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 17th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading in...
SYS-CON Events announced today that EnterpriseDB (EDB), the leading worldwide provider of enterprise-class Postgres products and database compatibility solutions, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. EDB is the largest provider of Postgres software and services that provides enterprise-class performance and scalability and the open source freedom to divert budget from more costly traditiona...
How can you compare one technology or tool to its competitors? Usually, there is no objective comparison available. So how do you know which is better? Eclipse or IntelliJ IDEA? Java EE or Spring? C# or Java? All you can usually find is a holy war and biased comparisons on vendor sites. But luckily, sometimes, you can find a fair comparison. How does this come to be? By having it co-authored by the stakeholders. The binary repository comparison matrix is one of those rare resources. It is edite...
With the advent of micro-services, the application design paradigm has undergone a major shift. The days of developing monolithic applications are over. We are bringing in the principles (read SOA) hereto the preserve of applications or system integration space into the application development world. Since the micro-services are consumed within the application, the need of ESB is not there. There is no message transformation or mediations required. But service discovery and load balancing of ...
The integration between the 2 solutions is handled by a module provided by XebiaLabs that will ensure the containers are correctly defined in the XL Deloy repository based on the information managed by Puppet. It uses the REST API offered by the XL Deploy server: so the security permissions are checked as a operator could do it using the GUI or the CLI. This article shows you how use the xebialabs/xldeploy Puppet module. The Production environment is based on 2 tomcats instances (tomcat1 &...
Do you think development teams really update those BMC Remedy tickets with all the changes contained in a release? They don't. Most of them just "check the box" and move on. They rose a Risk Level that won't raise questions from the Change Control managers and they work around the checks and balances. The alternative is to stop and wait for a department that still thinks releases are rare events. When a release happens every day there's just not enough time for people to attend CAB meeting...
T-Mobile has been transforming the wireless industry with its “Uncarrier” initiatives. Today as T-Mobile’s IT organization works to transform itself in a like manner, technical foundations built over the last couple of years are now key to their drive for more Agile delivery practices. In his session at DevOps Summit, Martin Krienke, Sr Development Manager at T-Mobile, will discuss where they started their Continuous Delivery journey, where they are today, and where they are going in an effort ...
SYS-CON Events announced today that the "First Containers & Microservices Conference" will take place June 9-11, 2015, at the Javits Center in New York City. The “Second Containers & Microservices Conference” will take place November 3-5, 2015, at Santa Clara Convention Center, Santa Clara, CA. Containers and microservices have become topics of intense interest throughout the cloud developer and enterprise IT communities.
Disruptive macro trends in technology are impacting and dramatically changing the "art of the possible" relative to supply chain management practices through the innovative use of IoT, cloud, machine learning and Big Data to enable connected ecosystems of engagement. Enterprise informatics can now move beyond point solutions that merely monitor the past and implement integrated enterprise fabrics that enable end-to-end supply chain visibility to improve customer service delivery and optimize sup...
Buzzword alert: Microservices and IoT at a DevOps conference? What could possibly go wrong? In this Power Panel at DevOps Summit, moderated by Jason Bloomberg, the leading expert on architecting agility for the enterprise and president of Intellyx, panelists will peel away the buzz and discuss the important architectural principles behind implementing IoT solutions for the enterprise. As remote IoT devices and sensors become increasingly intelligent, they become part of our distributed cloud en...
I’ve been thinking a bit about microservices (μServices) recently. My immediate reaction is to think: “Isn’t this just yet another new term for the same stuff, Web Services->SOA->APIs->Microservices?” Followed shortly by the thought, “well yes it is, but there are some important differences/distinguishing factors.” Microservices is an evolutionary paradigm born out of the need for simplicity (i.e., get away from the ESB) and alignment with agile (think DevOps) and scalable (think Containerizati...
In this Power Panel at DevOps Summit, moderated by Jason Bloomberg, president of Intellyx, panelists Roberto Medrano, Executive Vice President at Akana; Lori MacVittie, IoT_Microservices Power PanelEvangelist for F5 Networks; and Troy Topnik, ActiveState’s Technical Product Manager; will peel away the buzz and discuss the important architectural principles behind implementing IoT solutions for the enterprise. As remote IoT devices and sensors become increasingly intelligent, they become part of ...
There is no doubt that Big Data is here and getting bigger every day. Building a Big Data infrastructure today is no easy task. There are an enormous number of choices for database engines and technologies. To make things even more challenging, requirements are getting more sophisticated, and the standard paradigm of supporting historical analytics queries is often just one facet of what is needed. As Big Data growth continues, organizations are demanding real-time access to data, allowing immed...
I’m not going to explain the basics of microservices, as that’s that’s handled elsewhere. The pattern of using APIs, initially built to cross application boundaries within a single enterprise or organization, is now being leveraged within a single application architecture to deliver functionality. Microservices adoption is being driven by two forces: the need for agility and speed; and the re-composing of applications enabling experimentation and demands to support new delivery platforms such as...