2012/07/31

The cell DNA is the tissue DNA

Like a biological tissue, the computing tissue should have one DNA (Deoxyribonucleic acid is a nucleic acid containing the genetic instructions used in the development and functioning of all known living organisms), it rules the behavior of tissue components, this DNA can be divided in two main areas, the DNA of the tissue rules each member behaviors, to be part of the tissue should follow the DNA directives, cell that does not follow the DNA for one tissue can be considered anomaly and killed.

Is expected the interaction between different versions of DNA, this is important for tissues version upgrade and downgrade.

The two parts of the DNA are:

- Static DNA part
    This part of DNA is defined by the version of the tissue DNA, if one tissue is compliant with one or more versions of DNA it should understand a those versions of DNA messages and should have DNA compatible behavior, as an evolutionary system each new version of a tissue should inherit previous DNA and enhance it. It cannot be changed without killing the cell.

- Dynamic DNA part
    This part of DNA is defined by the environment, changes in the environment causes changes on tissue DNA, other tissue premises, like response time for one service can change the tissue DNA (to guarantee those premises), the dynamic DNA part rules the externalized tissue services, any change in the dynamic part of the DNA should work without killing the cell or interrupting any service.

Some DNA configurations can be pushed from tissue to member cells or from member cell to the tissue, in this environment one cell can join a tissue without being created by the tissue, in this case the cell should present himself and proof that it is trusted by the tissue, int those cases some DNA content is forwarded from cells to the tissue (respecting the tissue version).

The DNA can be defined with different scopes, it can have a scope of cell, service or tissue, and one with more precedence over others.

  Higher level - tissue:
    Defines tissue level information communication and storage, defines the tissue services behavior

    • defines the data structure for the tissue
    • defines the services provided to member cells interfaces
    • minimal number of services instances (availability of tissue services)
    • cell reliability policies.
    • expected availability for tissue services
    • tissue history interpretation algorithms

  Medium level - cell:
    Defines cell level information communication and storage, defines the cell behavior

    • maximum of host resources usage
    • maximum of cell resources usage
    • notification frequencies
    • service acceptance policies (if a cell can receive a service or not)
    • local cell configurations
    • installation and work directories
    • cell configuration files location
    • tissue catalog service location


  Lower level - service
    Defines service level information communication and storage, defines de service behavior

    • expected availability of the service
    • ports and load balancing algorithms
    • specific service configurations



DNA in this system does not represent code, but how any implementation for one tissue should behave. The tissue should hold all the DNA information with all details, this allows the tissue to replicates lost cells or clone cells for growing. The DNA should open to permit many vendors interact in the same tissue providing complementary services.

2012/07/29

The steps to reach a mature level


Extending the Autonomic Computing concept, Tissue computing is not about a revolutionary technology but an evolutionary technology, it should be open and heterogeneous,
to easely be adopted by different vendors. The implementation of the tissue and cells but the information flow and persistence should have a well defined format.

Those tissues can be private or public, symmetrical or asymmetrical, homogeneous or heterogeneous, aware of cell implementation technology, location, network distance.

The experience demonstrates that the XML/WS combination is the most powerful way to expose and transmit information between loosely coupled components, so
the definition of the tissue computing will be done using XML/WS language.

To reach a good maturity level of this systems architecture paradigm, is important that the information flow and information storage have very well defined formats,
the information handled by this system can be divided in 2 categories:

Information flow examples:
  • Cell administrative communication with tissue
    • Services availability information
    • Cell help ask to the tissue
  • Tissue administrative communication with cells.
    • Ask for resource availability (internal and external)
    • Cell death detection
    • Service relocation
  • Service administrative communication.
    • Service status information
    • Service history notification

Information storage examples:
  • Cell self information
    • Cell services information
    • Cell resources information
    • Cell external resources information
  • Cell self environment information
    • Host resource used by cell
    • Host resources available
    • Host availability history
  • Tissue self information
    • Cells information
    • Services information
    • External resources information
    • Dependencies information
  • Tissue environment information
    • Information about the cell's hosts
    • Information about tissue network elements topology
  • Service self information
    • Information about service 
    • Service configuration
  • Service environment information
    • External resources failures
    • Service usage history


There are many other information about tissue tiers that should be well defined, the be compliant with most computing technology platforms, the best way is to define "xml schemas" through XSD files,  by this way the core of the tissue (his DNA) will be defined by a set of XSD files. Also the interaction between

2012/07/26

The steps to reach a tissue maturity

Extending the Autonomic Computing concept, tissue computing is not about a revolutionary technology but an evolutionary technology, it should be open and heterogeneous, easy be adopted by different vendors. Not the implementation of the tissue and cells but the information flow and persistence should have a well defined format.

Those tissues can be private or public, symmetrical or asymmetrical in terms of service distribution or host characteristics, homogeneous or heterogeneous in terms of hardware platform, operating system, , aware of cell implementation technology, location or network distance.

The experience demonstrates that the XML/WS combination is the most powerful way to expose, store and transmit information between loosely coupled components, so the definition of the tissue computing will be done using XML/WS language. It is very useful for high abstraction definitions.

To reach a good maturity level of this systems architecture paradigm, is important that the information flow and information storage have very well defined formats,  the information handled by this system can be divided in 2 categories:

Information flow:

  - Cell administrative communication with tissue
    - Services availability information
    - Cell help ask to the tissue
 
  - Tissue administrative communication with cells.
    - Ask for resource availability (internal and external)
    - Cell death detection
    - Service relocation

Information storage:

  - Cell self information
    - Cell services information
    - Cell resources information
    - Cell external resources information

  - Cell self environment information
    - Host resource used by cell
    - Host resources available
    - Host availability history

  - Tissue self information
    - Cells information
    - Services information
    - External resources information
    - Dependencies information

  - Tissue environment information
    - Information about the cell's hosts
    - Information about tissue network elements topology

 
Note that those communications are not related with the services implemented by the cells, only the tissue adminitration information communcation or storage is considered, if a cell provides a SMTP listen service, all communication with mail relay services is not covered here, only the information about those inderdependent services are related is relevant to the service tissue.

2012/07/25

Cellular tissue autonomic behavior



Cellular Autonomic Behavior computing paradigm:

A new approach for agent based autonomic computing, in complement of use the autonomic nervous system, use a cells tissue as the conceptual foundation. In this concept exists one physical component type called cell and a logical component called tissue, multiple cell forms a tissue and have proprietary knowledge of its state, the tissue is a composition of cells and have the knowledge of the whole tissue that no one single cell have. The cells provides services.

A set of modifications on the Axiomonitor agent based software to embed autonomic features:

Cell level functions:

  • Cell level self healing 
    • over computing detection
    • ask for reinforcements
    • service restart
  • Cell level self configuring
    • by internal demand
    • by tissue demand
    • cell based services 
    • effectors and sensor
  • Cell level self protecting
    • intrusion detection
    • resource allocation limits
    • service isolation schemes
  • Cell level self environment knowledge
    • CPU
    •  Network
    • Disk
    • Memory
    • Usable external resource
  • Cell communications
    • with tissue (nervous system)
    • direct with other cells (data osmosis)
  • Cell level service deployment 
    • requisites validation
    • Code deployment


Tissue level:

  • Tissue level resources availability
    • service high availability
    • service contingency
  • Tissue level service migration
    • movement to other infrastructure
    • tissue reconstruction 
      •  lost (dead) cells
    • leave failing or exiting cells
  • Tissue level service/resource allocation on demand
    • by cell reinforcement asking
    •  by average response time  increase
  • Tissue level service fail over
    • redundancy of services provided by the tissue
  • Tissue level self configuration 
    • record usage patters and provide enough resource to meet the performance goal.
    • use service allocation
    • use service migration
  • Tissue level service demand prediction
    • records usage patterns and processing times
    • by expected performance definition establishes a relation between allocated resource and response times
  • Tissue level external change management integration
  • Tissue monitoring activity expose
    • Exposes activities to humans
    • Permits changes to decisions of reconfiguration


2012/07/21

An introduction

This is a blog about a different way to think information technology systems, after about 20 years working with infrastructure consulting I saw the evolution of IT systems technology and architecture but some weak points of those environments still present in the more advanced architectures.

As a demand for some customers I developed an agent based software that executes remote monitoring, remote corrective actions and remove provisioning activities. This agent based software demonstrates me that the resilience and flexibility of distributed computing is very complex but also very powerful.

In another customer a demand for identity provisioning created a new view of the agent based architecture for me, the remote coordinated processing, the ability to distribute processing logic over a agent based environment, first with a "close to used resource" approach and after with a "split the work approach", with agents is possible to divide a large job that handles lots of data in smaller pieces and send those pieces to be executed by many agents, and I found the ability of agents to ensure performance of a system.

But distribute code and manage resource is not easy and I searched an already established method to do that and I found an IBM initiative called "autonomic computing" (www.research.ibm.com/autonomic/) that uses concepts of human autonomic nervous system to information systems.