Table of Contents
Abstract
pyswarm is planned to be a holistic set of model-driven software development tools focussed on the easy creation of powerful and business logic enriched applications in the field of Web- and data-centric solutions for industry, public sector and non-profit organizations.
The generated software systems are implemented in Python and data is stored in PostgreSQL databases, so they can be hosted on almost any platform. The generated applications will be optimally customizable to the needs of organizations and their users and can be adopted with ease to future changes.
|
Note |
|---|---|
|
The information in this chapter cover features that are planned for pyswarm 1.0 (milestone Rocking Herring ). Some of the features are already implemented, either partially or fully, others are not yet implemented at all, and some of them probably will not make it into the first final release. Usually you can learn about the current state of implemented features if you study the other parts and chapters of the documentation which applies for the release of pyswarm you have downloaded. |
|
Broad range of clients can be integrated.
pyswarm realizes a n-tier architecture where components are orchestrated to interact together - even if geographically distributed over multiple hosts. Direct access to a database is exclusive privilege of its corresponding business logic component which provides API for access by other components.
It is likely that remote procedure calls between pyswarm logic-components will be based on XMLRPC.
Servers will host specialized pyswarm applications.
pyswarm components are packaged as nodes that are deployed to hosts. Nodes may contain multiple sub-packages each of them for specific domains, e.g. online-shops or integrated ERP portals. The sub-packages are sub-divided into more specialized business logic components and corresponding persistent repositories (= object-relational databases) for all their business objects.
Clients, whether they are other pyswarm logic components, native GUIs, Web services or whatever compatible, will not access a database directly. Activities will be controlled by the envolved business logic to enforce objects' compliance to the specified and implemented business rules.
Therefore all activities on business objects will be processed within transactions. Transaction safety is ACID compliant and by 2-phase-commit also granted in inter-componental (nested) transactions.
pyswarm also covers a run-time environment (serve) for logic-components. Beside datatype support and operation handling the library also provides common aspects which are likely useful for any application developer, e.g. access control, priviliges bound to clients and/or users, logging of activities, logical deletion and restorage of objects, exception handling, internationalization.
An pyswarm application can access external features, e.g. Python standard library or any 3rd party Python packages and modules installed on the same host. A good example would be the popular mailing list server MailMan which is implemented in Python. A pyswarm CRM application could ask MailMan if the e-mail address of a given customer is in the subscription list of the company's newsletter. If an employer joins the company, the e-mail address is automatically added to all internal discussion lists.