Overview: The central technical challenge for Agile Architecture is how to achieve functionality and performance without having to trade off flexibility. The context for these central patterns of Agile Architecture is the concept of architecting at a dynamic level of abstraction above the logical level of contracted APIs and data schemas.
At this dynamic level, there are the central patterns that are essential to resolving the fundamental compromise of distributed computing:
Dynamic Coupling. Tightly coupled interfaces require detailed knowledge of both sides of a distributed computing interaction, and any change on one side might break the other. Contracted interfaces introduce loose coupling, but at the expense of a static interface. With dynamic coupling, interface differences are resolved dynamically at run time.
Dynamic Schemas. Neither the WSDL files that specify Web Services, nor the URIs, HTTP verbs, and Internet Media Types that specify RESTful APIs adequately contract the message semantics for any interaction. Dynamic schemas abstract all semantic metadata in a consistent way, relying once again upon the integration engine to resolve these dynamic schemas for each interaction at run time.
Extreme Late Binding. SOA registries ended up doing little more than resolving endpoint references at run time, similar to the way DNS resolves domain names - in other words, they provided late binding. Such late binding adds some flexibility to an interaction, but typically at the expense of performance. Today, however, dynamic coupling and dynamic schemas enable any client to discover at run time all the metadata it requires to interact with any endpoint, without sacrificing performance - what we call extreme late binding.
Put these architectural principles together and you have an approach for building inherently flexible software, even in a complicated distributed computing environment.
Why should you attend: The central challenge of distributed computing is how to get your various distributed bits to communicate with each other properly. Since those distributed components are typically heterogeneous, we must somehow come up with a common means of establishing interaction among components everybody can agree on. Yet, once we do that, we've necessarily compromised on flexibility, because changing how our components interact is a difficult, complex endeavor. This problem pervades the entire history of APIs, from remote procedure calls to Web Services to RESTful APIs and everything in between. We must somehow contract interfaces in order to abstract the underlying functionality, yet the very act of introducing such contracts is a compromise, since the interface itself now lacks flexibility.
Areas Covered in the Session:
Review of Web Services and RESTful APIs
Limitations of contracted interfaces
Challenges of document style services
Challenges of custom media types
Meta, Dynamic, and Logical abstractions
Data, metadata, and code at the Meta level
Working with abstract models
The role of the business agility platform
Capabilities vs. Affordances
Implementing dynamic coupling
Implementing dynamic schemas
The role of extreme late binding
Who Will Benefit:
Jason Bloomberg is the leading expert on Digital Transformation through 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.