|
Iris
Iris
Iris is the code-name for the Brainwave Application Server. As of v1.2, Iris is built on top of the excellent, open source, CherryPy project (http://www.cherrypy.org), which is a python-based web-server. Iris is bundled with the Brainwave Platform and is the preferred way to create web-applications. It takes away most of the work from the developer by providing out of the box integration with the Poseidon Database.
In addition to the basic CherryPy features, Iris has been extended in many ways to make development and deployment easier for the developer.
1. Multiple Dynamic Application Model
Iris supports multiple web applications at the same time, which can be loaded and unloaded dynamically. The 'Application Manager' application provides an easy to use interface to do just this.
2. Powerful Deployment Model
Each Brainwave application is distributed as a 'Kit' which is basically a zip file with the .kit extension. Application kits contain a manifest file (META-INF/MANIFEST.MF) - not unlike Java Archives - which specify various deployment parameters such as the Name, Install Location, License Agreement, Version Number, Build Number (etc.). The 'Application Deployer' and 'Software Update' application provide users with an easy way to deploy kits.
3. Plugin Framework
Iris Plugins are basically CherryPy filters with some additional packaging which make them a breeze to deploy.
4. Secure Application Library Framework
Most applications make use of library features in other applications (like dlls). Iris supports this functionality without sacrificing security by wrapping the entire application hierarchy in a 'Proxy' object which provides all applications access to methods in any other running application but not to any attributes. Further, it prevents code-injection by rogue applications.
5. Services
While primarily the domain of Hermes, Iris supports context-based return values via the @service decorator. When applied to actions, it provides additional keyword arguments which specify the type of HTTP Request based on the HTTP Accepts header. This can be used to modify the type of the return value.
6. Integration with Poseidon
Iris accesses via Remote Method Invocation (RMI) over the network interface. This enables Poseidon to run in its own process or even on a different physical host. This is completely seamless and abstracted away from the developer.
Further, database transactions are managed automatically by default with the developer having the option of taking as little or as much control as she desires.
Finally, the server and the database are both multi-threaded. Iris automatically handles the database connection pool and threading specific issues out of the box.
7. Running Behind Apache
Iris can be easily run behind Apache in high-load deployments which can take over processing of static files to provide significant processing gains.
View complete
|