The previous post on Cloud Service Oriented Architecture (C-SOA) discussed what’s required to achieve a high level of agility in the enterprise. The net result of extending SOA architecture principles beyond the enterprise firewall to leverage cloud resources (C-SOA) will be very effective in achieving this goal.
To begin constructing valid C-SOA services, they must be [a] defined within a valid governance framework and [b] based on a sound information model. C-SOA principals require those services, processes, information model and the governance framework to have expanded context that includes both on-premise and distributed cloud resources. Let us have a closer look at some of the key elements of C-SOA …
The information model typically includes and references the data model, data dictionary, data catalog and its metadata (data structure, logical model, physical models, data definitions, etc.). With C-SOA, it is important to realize a single, not multiple, schema database which is consistent, distributed and inclusive of on-premise as well as service providers’ platforms. This can only be achieved thorough good understanding of data latency requirements (real time/near time), integrity requirements (integrity controls) and how the information is used within the context of applications rather than simply inspecting existing schemas and data structures. This is a prerequisite step on deciding which data and associated services should reside on-premise or in the cloud.
C-SOA services are basically functions and each, as with any function, defines behavior for a given set of inputs. One of the most important features of these services is being loosely coupled. For example, they need to be independent of location, security mechanisms, communication protocol, semantics and state. This loose coupling allows for dynamic binding and the ability to compose new services or composite applications from existing services – including cloud services. Another advantage of designing loosely-coupled services is the inherent isolation characteristic so that one component’s failure does not affect, or cascade to, other services. This is particularly important when composing cloud-aware applications designed around availability, reliability, parallelism, redundancy, latency, resource consumption and recoverability of the underlying resources. This is the main motive for seeking interoperability between cloud providers, which will undoubtedly take center stage in due time. Since one of the most important SOA principals is to limit proprietary or dependencies on technology or services – vendor lock-in -, likewise, C-SOA principals advocate for open standards and interoperable services. For example, OpenStack, as an open industry-standard platform, is well positioned to address key interoperability challenges – at least for IaaS.
Services need to be published, discovered and consumed. Today, this is achieved through intimate knowledge of the services provided, which is generally static in nature. As the cloud services market matures, a Broker as a Service (BaaS) will emerge and will implement Services Directory along with automated lookup mechanisms. For now, the enterprise services metadata repository should be kept to provide information about the services including semantics, security model, interfaces, dependencies, parameters, service level, error handling and associated cost. This way, a C-SOA architect has a reference point where services are accessed and deployed in a standard way to achieve best fit for purpose.
Business processes will span multiple systems and potentially multiple geographies and take advantage of services both on-premise and in the cloud. The process orchestrator should allow the design and configuration of multiple services or applications to direct the flow of actions, events or data. For example, processing a credit card application for a credit card issuer may potentially involve cloud services (CRM customer acquisition, credit score lookup, fund transfer request and a cross-selling affiliate program invocation) and on-premise services (data validation, team assignment, approval system and decision-based system). The value of the process orchestrator is the automation of a process workflow to take advantage of cloud-based services. This level of agility in changing core business processes and adapting to available services without major development undertaking is very powerful.
When leveraging cloud resources from service providers, enterprises relinquish some control. Strong governance is a mechanism to manage the risks associated with this dependency. This is traditionally divided into design-time governance (defining policies to services) and runtime governance (applying the policies on real-time behavior). In any enterprise cloud architecture, there is a multitude of services invoked to support the business operations. With a governance framework and a security model in place, enterprises have the ability to control when services are added, modified, stopped or accessed for C-SOA as an end-to-end architecture. Rackspace, for example, supports strong security and governance policies through the compartmentalization offerings, standardized equipment, robust access control, authorization, authentication, auditing, logging, monitoring, change management, patch release management and other thorough operational policies, to name a few of these elements. Governance elements should be defined for the entire C-SOA effort to provide important control over the design, discovery, monitoring, maintenance and support of these hybrid services.
A quality management plan should be in place to ensure that the services, applications and processes are meeting the defined business requirements and appropriately expanding the concept of SOA contracts to embody cloud services. This includes quality management for scalability, SLA, utilization, security, standards, etc.
IT, understandably, must provide services that are reliable, scalable, cost-effective and agile. While business leaders prioritize revenue generation in one hand, IT leaders prioritize process efficiency improvements and cost cutting on the other; and C-SOA can effectively address both domains of priorities. C-SOA provides a needed level of abstraction and isolation to reduce development costs and time for delivering these multi-sourced heterogeneous services. Correctly executed, the ultimate benefit is increased agility, speed and cost effectiveness that can lead to better pace of innovation, competitiveness and improved return on investment.
Previously related articles: