Main Page
From pythomnic3k
Contents |
What is it for ?
Pythomnic3k facilitates writing network services and distributed applications, which is useful in the following areas:
- Network services providing unified API to a bunch of 3rd party systems
- Distributed fault-tolerant LAN applications, built around a redundant set of network services
- Middleware layer orchestrating various systems in a LAN
- Standalone "regular" network services, exposed to Internet clients
If it is a framework, it has to make certain tasks simple. Pythomnic3k makes it simple to
- Start up a network service for any supported protocol
- Implement request processing in simple protocol-independent uniform way
- Write and modify application code online, with no need to restart
- Make application distributed by partitioning it into functional components
- Add redundancy to application by running multiple copies of its components
- Access external resources, such as databases or other network services
- Monitor and maintain the resulting distributed application
- Test each module of the developed service independently, the Python way
How to:
- Install
- Start one simple network service
- Start two separate services and make one call another
- Connect a service to a resource
- Contribute
Architecture
- Overview
- Service (cage) structure
- Communications between cages
- Request processing
- Development cycle
- Resources
- Transactions
- Persistency
- Retried calls
- Performance and scalability
- Extending
- Configuration
- Type checking
- Files layout
- Syntax reference
Design considerations:
- Simplicity. Minimum concepts with maximum reach
- Modularization through functional decomposition
- Network services are real-time applications
- The real world is not transactional
- Reliability is predictability
- Failures are unavoidable, you can only minimize the chances and be prepared
Compatibility:
Pythomnic3k has been tested under the following platforms:
- Windows 2003 Server 32-bit and 64-bit
- Windows 2008 Server 32-bit
- FreeBSD 7.x 32-bit and 64-bit
- Ubuntu 8.04 LTS and 8.10 Desktop
- CentOS 5.2 32-bit and 64-bit
