Welcome!

Related Topics: Microservices Expo, Java IoT, Linux Containers, Open Source Cloud, @CloudExpo, SDN Journal

Microservices Expo: 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).

Latest Stories
My team embarked on building a data lake for our sales and marketing data to better understand customer journeys. This required building a hybrid data pipeline to connect our cloud CRM with the new Hadoop Data Lake. One challenge is that IT was not in a position to provide support until we proved value and marketing did not have the experience, so we embarked on the journey ourselves within the product marketing team for our line of business within Progress. In his session at @BigDataExpo, Sum...
The modern software development landscape consists of best practices and tools that allow teams to deliver software in a near-continuous manner. By adopting a culture of automation, measurement and sharing, the time to ship code has been greatly reduced, allowing for shorter release cycles and quicker feedback from customers and users. Still, with all of these tools and methods, how can teams stay on top of what is taking place across their infrastructure and codebase? Hopping between services a...
Virtualization over the past years has become a key strategy for IT to acquire multi-tenancy, increase utilization, develop elasticity and improve security. And virtual machines (VMs) are quickly becoming a main vehicle for developing and deploying applications. The introduction of containers seems to be bringing another and perhaps overlapped solution for achieving the same above-mentioned benefits. Are a container and a virtual machine fundamentally the same or different? And how? Is one techn...
SYS-CON Events announced today that MobiDev, a client-oriented software development company, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place June 6-8, 2017, at the Javits Center in New York City, NY, and the 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. MobiDev is a software company that develops and delivers turn-key mobile apps, websites, web services, and complex softw...
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm.
What sort of WebRTC based applications can we expect to see over the next year and beyond? One way to predict development trends is to see what sorts of applications startups are building. In his session at @ThingsExpo, Arin Sime, founder of WebRTC.ventures, will discuss the current and likely future trends in WebRTC application development based on real requests for custom applications from real customers, as well as other public sources of information,
Interoute has announced the integration of its Global Cloud Infrastructure platform with Rancher Labs’ container management platform, Rancher. This approach enables enterprises to accelerate their digital transformation and infrastructure investments. Matthew Finnie, Interoute CTO commented “Enterprises developing and building apps in the cloud and those on a path to Digital Transformation need Digital ICT Infrastructure that allows them to build, test and deploy faster than ever before. The int...
Whether you like it or not, DevOps is on track for a remarkable alliance with security. The SEC didn’t approve the merger. And your boss hasn’t heard anything about it. Yet, this unruly triumvirate will soon dominate and deliver DevSecOps faster, cheaper, better, and on an unprecedented scale. In his session at DevOps Summit, Frank Bunger, VP of Customer Success at ScriptRock, discussed how this cathartic moment will propel the DevOps movement from such stuff as dreams are made on to a practic...
ChatOps is an emerging topic that has led to the wide availability of integrations between group chat and various other tools/platforms. Currently, HipChat is an extremely powerful collaboration platform due to the various ChatOps integrations that are available. However, DevOps automation can involve orchestration and complex workflows. In his session at @DevOpsSummit at 20th Cloud Expo, Himanshu Chhetri, CTO at Addteq, will cover practical examples and use cases such as self-provisioning infra...
The cloud competition for database hosts is fierce. How do you evaluate a cloud provider for your database platform? In his session at 18th Cloud Expo, Chris Presley, a Solutions Architect at Pythian, gave users a checklist of considerations when choosing a provider. Chris Presley is a Solutions Architect at Pythian. He loves order – making him a premier Microsoft SQL Server expert. Not only has he programmed and administered SQL Server, but he has also shared his expertise and passion with budd...
"My role is working with customers, helping them go through this digital transformation. I spend a lot of time talking to banks, big industries, manufacturers working through how they are integrating and transforming their IT platforms and moving them forward," explained William Morrish, General Manager Product Sales at Interoute, in this SYS-CON.tv interview at 18th Cloud Expo, held June 7-9, 2016, at the Javits Center in New York City, NY.
Apache Hadoop is emerging as a distributed platform for handling large and fast incoming streams of data. Predictive maintenance, supply chain optimization, and Internet-of-Things analysis are examples where Hadoop provides the scalable storage, processing, and analytics platform to gain meaningful insights from granular data that is typically only valuable from a large-scale, aggregate view. One architecture useful for capturing and analyzing streaming data is the Lambda Architecture, represent...
SYS-CON Events announced today that Ocean9will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Ocean9 provides cloud services for Backup, Disaster Recovery (DRaaS) and instant Innovation, and redefines enterprise infrastructure with its cloud native subscription offerings for mission critical SAP workloads.
With billions of sensors deployed worldwide, the amount of machine-generated data will soon exceed what our networks can handle. But consumers and businesses will expect seamless experiences and real-time responsiveness. What does this mean for IoT devices and the infrastructure that supports them? More of the data will need to be handled at - or closer to - the devices themselves.
In his session at DevOps Summit, Tapabrata Pal, Director of Enterprise Architecture at Capital One, will tell a story about how Capital One has embraced Agile and DevOps Security practices across the Enterprise – driven by Enterprise Architecture; bringing in Development, Operations and Information Security organizations together. Capital Ones DevOpsSec practice is based upon three "pillars" – Shift-Left, Automate Everything, Dashboard Everything. Within about three years, from 100% waterfall, C...