|license:||Evasion Project COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0|
The EvasionProject is a toolbox that allows you to make Point of Sale (POS), Ticket Pickup Machines or other types of applications. It is written in Python for rapid development and cross platform support.
For example a ticket pickup system would use the following parts:
Director: This is the “main” program which loads and monitors the program parts. The director runs a broker all other parts can connect to publish and / or subscribe to signals.
Agency: This is used to load agents that could drive a ticket printer, payment device or magswipe. Each agent can communicate with anyone connected to the broker via signals. The agency is managed by the director.
Web: This is a web application which provides the GUI for the ticket pickup system. It is run and managed as a process under the director.
Viewpoint: This is a special internet browser the director can run and point at the web application. The web application can signal the viewpoint to change what it is looking at. The viewpoint can be managed by the director or run outside of its control.
NewmanOnline provides a Cinema Administration and Ticketting system. It uses the EvasionProject as the basis for its Windows based ATM, Kiosk and Usherpoint systems. These are used through-out Europe and allow for unmanned sales and pickup.
PythonPro uses the EvasionProject as the basis for its Prepay Internet Cafe system. It is used to manage the various part of its highly customised Linux client.
The project “toolbox” is made up of a number of parts. Each of these parts is a Python package under the “evasion” namespace.
The “evasion.director” is an init.d like management program. It runs and maintains the broker, agency, web application, viewpoint and any other program under its care.
The director uses simple INI based configuration. It can be configured to run an arbitrary amount of programs used to make up an application.
The broker is the heart of messaging and hardware abstraction. The “evasion.messenger” library is the higher level library all parts use when dealing with it. The director provides its own STOMP broker based on the MorbidQ_by default. For larger scale systems, distributed across a network, other brokers could be used for example ActiveMQ or RabbitMQ. This would allow for seamless scalability as the messaging traffic increases.
The agency manages the hardware drivers called agents. An agent is simply a special Python package conforming to a certain interface. The agents are dynamically loaded from director configuration at run time.
The Evasion viewpoint is generally a reference implementation and companies to to branch it and implement their own versions. This allows you to customise the start or screen or further refine the interface.
The “evasion.web” is a customised version of the Pylons web framework. It allows a web application to be made out of “Apps”. Each “App” could provide all of the web application or specific parts. Each App is a special Python package. They can derive from each other and so can allow highly reuseable functionality to be developed.
The project now uses GitHub to host its code.