Autonomic micro-framework for Python based on Application Utility functions
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc The last stable code drop from my old Google Code project page Aug 21, 2010
examples
LICENSE
README
aupy2.py

README

AUPY - Application Utility for Python
Version: 1.0
Released on: November 20, 2007
Version: 2.0
Released on: October 10, 2008

====
IMPORTANT NOTICE:
=======================
The codebase for Aupy2 is outdated and needs to be improved.
Some backwards compatible features (for Aupy1.0 style use) are buggy.
A updated version, using Python2.7 and current best practices is being
done in my spare time.  The current version should still be considered
proof-of-concept.


=====
OVERVIEW:
=======================

AUPY is a bundle of utilties used to create and use utility functions within
your python code to evaluate a program's performance and behavior.  While the
idea of application utility was originally developed for economic models
and later applied in AI applications, it is extremely useful to create 
self-aware and self-monitoring applications; crucial in creating applications
that exercise autonomic abilities and characteristics.

Autonomic applications exercise four core self-managing characteristics:
Self-Configuration:
Self-Healing:
Self-Optimization:
Self-Protecting:

Of these, AUPY can aid in achieving all except self-configuration.

These four characteristics can be employed at five levels of effectiveness
within autonomic systems, as defined by IBM:
Level 1 (Basic): All elements are managed independently; most systems today
Level 2 (Managed): Systems are collected and managed in groups.  System
  Awareness exists in some capacity and productivity is increased.
Level 3 (Predictive): The system collects and monitors data, recognizing
  patterns of operation and behavior.  This reduces the need for deep
  skills and system administration.
Level 4 (Adaptive): The system uses the monitored data and recognized
  patterns to take specific actions known as Service-Level Agreements.
  These actions manage performance, healing, and protection.
Level 5 (Autonomic): All components create a fully integrated and dynamic
  system completely managed by business rules and high level goals.

AUPY can aid in achieving up to level 4.



=====
FILE MANIFEST:
=======================

aupe.py - all of the AUPY functionality and decorators.  This file is
  used to define utility functions, functions to be monitored,
  atomic transaction functions, time-out functions, and more.

aupe_ftp.py - a self-aware FTP class for ftplib.

aupe_socket.py - a self-aware socket library.  Currently it monitors throughput

binary_dl_client.py - an ftp client that is self-aware, using aupe_ftp, and
  optionally aupe_socket

example.py - example usage of aupe and its abilities

proc.py - a wrapper to gather information on linux systems from /proc

socket.py - a soft link to either aupe_socket.py or _org_socket.py, the
  originally socket library.  Pointing this to aupe_socket.py inheritly
  makes ALL networked applications exercise the abilities of having
  application level utility for network operations.


=====
NOTES:
=======================

AUPY IS DEPENDENT ON PCAP

There is still a lot of work to be done and aupy should be considered a
proof-of-concept of bringing elementary level application utility into
a language.  I wrote the original functionality in about an hour to
illustrate to the Software Engineering Research Group at Drexel
University the benefits of basic autonomic abilities in software.


=====
CONTACT:
=======================
Paul deGrandis
paul.degrandis@gmail.edu

Thanks for checking AUPY out!