About David Jones

Profile Picture David is a Software Developer from the UK with over 12 years experience. He holds a bachelors degree in Economics, and a masters degree in Software Development, from which many of the pages on this site have evolved. His interests include all things C#/.NET along with software frameworks, architectures and design patterns.

When not developing software David plays bass in a psychedelic rock band who are currently recording their first album.

Programmed Self-Destruct for Autonomic Computer Systems

Implementing biologically-inspired Apoptotic behaviour in digital objects: An Aspect-Oriented Approach

Complexity in computing is increasing beyond our capacity to manage it manually so we are now looking at nature for solutions. Many people believe that autonomic computing, inspired by the autonomic nervous system, will help provide the solution to the complexity problem through automation by enabling systems to become self-configuring, self-healing, self-optimising and self-protecting, without human intervention. With autonomic systems, administrators can concentrate on what they want a system to do, then let the system manage the low-level detail regarding how it will be done.

Apoptosis is a self-destruct mechanism built into cells which, when initiated, causes the living cell to destroy itself for the greater good of the organism as a whole, without causing any harm to the cell's surrounding environment. In order to investigate this biological mechanism in a computing context, my research project and dissertation for my Master of Science in Software Development degree considered how the Apoptotic behaviours of self-destruct and "Stay Alive" signals can be applied to an agent-based system in order to allow it to protect itself from a Denial-of-Service attack, along with researching, via prototypes, whether the Apoptotic behaviour can be implemented efficiently using Aspect Oriented Programming (AOP), which is itself considered a means of reducing complexity in software development.

It was originally hypothesised that a prototype which implemented Apoptotic behaviour through AOP would require more memory and take longer to initialise than one which implemented the behaviour through traditional inheritance, but that the increased resource requirements of the AOP prototypes would not be significant. Subsequent research and testing indicated this to be true, notwithstanding the fact that the PostSharp AOP framework for the .NET platform operates in such a way that the first time an AOP prototype is initialised the time taken is significant because the framework has to de-serialise the AOP aspects from disk.