Thursday, 19 February 2009

Where is the Boundary of Service - The choice of living in the Cloud

The rapid development of cloud technologies has created a growing population of vendors new and old all developing different and varing aspects of the term called cloud computing. What is interesting in comparison with different on-demand platform initiatives was the aspects of boundary design in the Infrastructure as a service, Platform as a Service and Software as a service concepts. The differentiation of the consumer interface of on-demand services is a critical question of "how do you provision and consume the service". It goes to the heart of where does service integration, service aggregation and service brokering actual occur and the difference of a provider offering pure utility capacity at the touch point boundary of the on demand services

This view is very much exposed in the Eucalyptus utility Computing Architecture Initiative by the University of California, Santa Barbara ( ) one of its goals is to offer a "network as a service" boundary (multi-network was also mentioned). What this means is that instead of consuming as a service the infrastructure utility (Storage, compute) the network itself is also provisioned such that the access of the service is at the MAC address network point and the API of the provider. In simple terms this means the End User Device plugs into the network IP and accesses the service as a Network oriented service with all the aspects of the resources and provisioning behind this. This is quite a different story to selecting and accessing storage or compute power on demand. An analogy is like buying electricity units of power and storing this in a battery for use as opposed to taking your end user device and plugging it in and just drawing down the electricity as you need it during the use of that device. It's a matter of abstraction and ease of use and a key one in how on-demand services are access.

The development of online sustainable services needs to fully realize the aspect of what it means to live in the cloud service environment. With the fast evolution of Grid technology capacity and off-premise utility services the economics of on-demand service this is rapidly becoming a key decision point.

The element of network is essential to this paradigm as the speed of the data connection and volume of package and file download is a key limiting factor to the use of performance, scalability and extensibility.

As we become increasingly leveraged as an Information Economy, the role of network convergence with storage and capacity is increasingly the presence of how the channels of service and resources may be accessed. But this is probably only part of the story as other boundary points of service also exist in the content and the application and exchange collaboration capabilities that are provisioned within these channels.
The boundary management is very much the visceral Customer experience that is resolved in this on-demand service exchange. This spans today the EUC end with the form factor device on the edge service into the network up to the selection of the applications and hardware services consumed and then the experience of the service in execution in the business operation and its value add for business performance. The choice of service and the provision of service also renders other boundaries that need consideration: the Platform boundary it self on which the API to the Utility resource is connected and the address of the Operating System Image and the ecosystem template standards that an instance may run in. (The Eucalyptus example is that the Open Source Architecture works with the Amazon EC2 API and accesses it as a Storage Utility Service.) What appears to be the emerging case is that extensibility of service is more than the mash-up cloud service (Integration as a service) which does provide a co-existence path for old world (pre-cloud) and new world services but also the importance of "how on-demand service is consumed" as a collective noun experience. The development of Collaboration as a service and Communications as a service is clearly a boundary that extends the cloud radius and span of use beyond the definitions of utility services of five years ago as we see new service exchanges evolving into true online marketplaces.

Friday, 6 February 2009

SOA is not Dead, its alive and kicking and has help shape service design patterns in the Cloud

The much talked about SOA demise is not surprising given the long history of its movement to establish a paradigm shift architectural design framework for open, encapsulated, loosely coupled abstraction of physical technology from usage. The many publications, Vendors, industrial standards bodies have all developed elaborate thesauri of the definition of service design management. One might say many have made a very good living out of lecturing and writing about SOA !   The architectural goals of SOA  have not gone away indeed it has thrived and taken on many forms in service orientated design approaches that seek flexibility through virtualization, web 2.0 mash-ups and simple web service exchanges.  

The first chinks in the armour appeared a few years ago with the WS* versus REST debate entitled “SOA versus WOA” which, realizing that the governance of web services in SOA had an overhead sought to simplify the service message exchange and “get back to the original stateless concept of the Internet”.  

Gartner proclaimed last year that SOA had its 10th birthday and the continuation of “what is a platform” debate is moving into on-demand elastic and the various forms of business and IT alignment.
Its not surprising that particularly in these economic times there is a sense of needing a new idea and approach to competitiveness, sustainability and value.

SOA has contributed  to creating the Cloud services and management

The goals of SOA have not changed, they fundamentally brought together the principle of “one fact, one place” and built on object orientation, componentization and model driven architecture MDA to become an agnostic services framework for infrastructure and applications transactions. While SOA has been seen as business enterprise application and integration centric its concepts have been found in many areas of IT and Business standardization and shared service design. These still remain core design principles even as the lifecycles of SaaS multi-tenancy, utility computing and agile development such as Scrum have increased the rationalization, abstraction and speed of code development and deployment. 

So how have these principles been seen in the evolution of the cloud that we see today?

Virtualized infrastructure has been codified with semantic methods for volume, image and component modelling such that the physical architecture can be described as a Utility service.

Application multi-tenancy design principles have evolved into a connection between the Infrastructure as a service (IaaS) into the applications layer to enable abstraction at the Operating System level and user level of the Application Service.

Marketplace orientation of the solution has created “managed services”  that are service catalogue based or a hybrid version that is either open source, proprietary or a combination of both.  The exchange of IT resources has become a service.

Some examples of where these design connections can be seen.

Cloud Design features emerging today

Examples of related SOA Design Patterns           

Elastic  availability of Storage, compute capacity

Adaptation and extensions of Session Façade, Aggregator(EIP), Unit of Work(PEAA)

Massive parallelism of computation

Adaptation and extensions of Session Façade, Aggregator(EIP), Unit of Work(PEAA)

Cloud Bursting – pass through appliance alerts

Adaptation and extensions of Command pattern (GoF)

Interceptor (POSA2)

Broker (POSA1)

Federated on-demand availability – geographical independence

Context Object management

Command pattern (GoF)
Façade (GoF)

Domain Store

Service Registry

Agnostic service tier

Federated Identify management / SSO

Adapter(GoF)  in definition of security protocols

Domain Model (PEAA)

Protocol Security management

Software as a Service Multi-tenancy

Adaptation and extensions of Service layer(PEAA)

Domain Model (PEAA)

Adaptation and extensions of Refactoring Patterns for optimizing design for better modularity, reusability and maintainability
Abstract factory (GoF)

Service Inventory

Canonical Meta Data Model

Agnostic Service tier

Marketplace Catalogue Provisioning

Front Controller pattern

Intercepting Filter

Service to worker pattern adapter
Business Delegate
Service Locator

Proxy (GoF)


On-demand packages and composite solutions

Composite Pattern (GoF)

Application Controller (PEAA)

Web Service Broker



Cloud computing does introduce new architectural design features often found in grid computing created by the new elastic capacity capabilities. Existing n-tier and distributed architectures will need to evolve to be able to exploit these new properties of massive parallel computation, distributed components and location independence.  But at the heart there is the need to decouple the virtualized infrastructure; describe the service in a encapsulated meta language with a degree of physical independence;  request distributed services via open protocols and manage the monitoring of services to defined SLAs and performance.  

New design patterns have emerged from the development of the cloud architectures and by no means has this been completed. There are still many aspects on interoperability and semantic engineering that are yet to be fully realized. We still see multiple versions of cloud solutions from vendors with varying degrees of proprietary aspects that can either lock in or free up IT services to exploit the goals of on-demand pay as you go.

Lets not be too hasty, the desire for service oriented IT is still very strong and arguably will become even more desirable as ways to focus on paying for what you really need and actually use rather than the costs of overheads, operating efficiencies and change impact take hold.  

Being able to quickly assess business processes needs for services and the ability to provision and apply appropriate solutions to meet current and future business operational needs will be essential design skills for any service providers to meet the aspirations of CEO’s, CIO’s, CFO’s, CTO’s and COO’s.

Solutions change but the path to using services in IaaS, PaaS, SaaS and other marketplace orchestrations will be through an effective, secure and economically compelling price and usage model that the cloud promises and some of the design techniques from SOA are a strong candidate to help get there.

Thursday, 5 February 2009

New approaches to relevant and realistic on-demand services

Cloud Augmentation

The investigation of on-demand paradigm highlighted a number of interesting competitive advantage and competitive leadership potentials in agent based technology.

It is possible to use agent technology to define a new approach to intelligent services.  A new kind of definition has been developed of human and system interactions that are either automated or semi automated in action and response. The concept of augmentation, is as it is described in the word, an extension to the services and real world through augmented services that automated added value actions and activities.  For example:

·         A user can search for a catalogue item and the intelligent search comes back this a range of alternatives together with the service provider parties, pricing and recommendations. The user can  then select from this and investigate further or accept the recommendations

o   The business benefits are in the maximizing of resources and available solutions that would otherwise have been unaware or not pursued by the user.

·         A business process that involves a number of events and/or workflow steps could be automated such that the searching, identification and negotiation of provisioning of the resources, products and services can be semi- automated or in part fully automated dynamically. The System (Agent) can go and search for appropriate solutions and specifications from a catalogue and asset style register and come back based on rules and preferences of the user possible alternatives and recommendations.

o   The business benefits are in the coordination and negotiation of resources and sources such that an optimal service arrangement and options can be presented to the user. He resulting user experience is enhanced as the system provided augmented services to execute and add additional value for the user experience. 

What  are agents?

Agents are a type of Software application that attempt to semi-automate decision makings in complex environments.
     There are many types of agents from technical network monitoring robots to self learning agents to agent advisor avatars.

How might agents work in the cloud ?

Application objects can be "modelled" in a virtual world, parallel to the physical world. There are agents in this virtual world who can question & negotiate with these objects to provide answers to questions posed by the user. If appropriate, the user can then implement the recommended actions in the real world.



The following characteristics where elaborated:

·         As a precursor, the assets and components in a real world system are defined using service oriented principles described in Service Contracts (black box public facing definition) and meta description (internal white box definition of the service encapsulation).  This is then augmented further but adding additional Semantic and real world physics meta data descriptions to that service component

o   For example,  a Web Server will be described by its technical characteristics + its physical location, physical geometry and world map location + is actual real time use and performance characteristics.  Another example,  a Application function or specific Person can be described by its technical and logic characteristics + its physical location (n the case of a Human their GPS or other location based defined, physical geometry (in the case of a application function its actual code location and states), skills (in the case of a Human the personal skills, its availability and current performance characteristics. (In the can of a human asset it may be notional rather that actual individuals named, but in principle either is possible)

o   So a Virtual world representation of the real world physics is rendered dynamically as possible.

·         Agents are used to define the rules and intelligent operating conditions they operate under. Agents can read the service level meta-description of components in the Service oriented Virtual World.  Agents live in the virtual world description space and can act on the service components based on the rules and policies defined.

o   Security can be defined by placing constraints and security options on agents it what they can and can not do.

·         The User via an UI can interact with one or more Service agents that facilitate the user through the service request and response life cycle. 

o   The interaction of service is not static and based on a fixed catalogue and configuration activity. Agents look at user preferences and available options and resources and advise the user on options and recommendations

·          The provision of service can be automated via the system (agents)  dynamically managing the provisioning and construction of a workflow to connect the resources to the consumer.

o   The System (agents) can automatically construct alternative worklflows and suggest these to the User as options based on QoS optimizations. On selection, the system (agent) can then build the workflow to connect and execute the transaction dynamically.

o   Service aggregator and service broker activities are linked together with the system (agent) technology such that provisioning of the service optimizes the brokering (sourcing and coordination of service components) and composing and delivering the services (aggregation of the service experience for the user)   

·         The system (agents) manages the on-demand service dynamically and for different types of XaaS service types to achieve QoS optimization.

o   The request and response can work for PaaS selection of infrastructure performance and service capacity provision

o   The request and response can work for software on demand SaaS provision and configuration

o   The request and response service can support on demand business processes and information as a service.  The agents provide specific business process workflows and functionality to respond to real-time business request and events


 A new way of looking at Business Processes  (BPaaS, InfoaaS)

The development of Business Processes and Information as a Service is a move in the direction of more realistic and real world services.
  The following features summarise the key differences:

·         Business processes are part of a holistic environment that can be dynamically changing

·         Users behavior in events acting upon the activities and resources can in themselves change the outcomes of activities and resource choices made

·         Business performance are interlinked with a number of participants, activities and resources which in themselves can create different combinations of supply chain and value activities. These many evolve over time as different resources and relationships are sourced and provisioned changing the shape of the supply chain and value propositions

·         The meaning of Information, its semantics, is crucial to defining what the business processes, activities, asset and knowledge are worth. By being able to describe what the asset, component, service and relationship characteristics  the business is able to be more effective in utilizing and acting with knowledge and improved understanding of capabilities

What this means in Business Processes and Information in business terms is a new way of looking at  how activities and events affect each other and the workflows connecting  these actions with resources and users (providers and consumers).

How can Agents help in the real world?

·         Craftsman world => Agents could help clean up "legacy" estates and prepare to on-ramp new services

·         Industrialized world => Agents could help weigh up internal and external factors to balance our capacity across our global service delivery centres

·         Business Process on Demand world => Agents could help pull together a "best of breed" business process, based on requirements of KPIs, Enabling technologies. Resource types, etc........ from the Marketplace.



In short it is describing an alternative next generation view of Business process management that is no longer a declarative, stoichastic, static perspective of operations and outcomes but a vibrant and flexible combination of participants and interactions.  

·         Individual business processes or collections of sub processes are in-fact part of a wider holistic environment that affects or is affected by the relationships between these processes and the individual inputs and outcomes of these processes.

o   What business workflows need to represent is the interrelated conditions and relationships between the process providers and process consumers and how they are impacted on other related processes.  By intelligently defining these it is possible to improve the way business processes individually work and are best optimized between business processes  

·         The digitization of resources, products and services and their assets are enabling a rich source of potential solutions and knowledge that through appropriate cataloguing and intelligent description of their worth and capability can be harvested and optimized.

o   Business process as a service as through automation seek out and describe the outcomes as parameters and the system services (agents) can then go forth based on rules and preferences seek out optimal solutions and a range of alternatives and associated content and resources for achieving a goal or set of goals.  For example,  a user requests a purchase for a product or service and the system (agent) can seek out and search alternative marketplaces, catalogues, the skills, available solutions in their region or elsewhere that are related. The system can search distributed content and services and auto-discover other sources or systems (agents) and trigger their events.

·         A distributed service framework could be used to describe an evolving and unfolding dynamic use of a service catalogue or business process service.   This could be used to mitigate and migrate the service in a way that exploited the elastic properties of the service framework by targeting it towards where the demand is.

o   Business and IT services on demand would be optimized through targeting the services on demand as they arise from specific demand and exploiting the assets and services enabling them.  Specifically, the system (agents) would seek to maximizing the service resources for a user dynamically, promoting and allocating content and resources to the end point of user of a user.