The iConnect Architecture, my current main open source project in PHP, is a collection of standards, specifications and open source components for developing multitier enterprise applications using the PHP 5 language.
iConnect is similar in many ways to J2EE architecture and provides a base framework, a complete set of services and handles many common details of application behavior for simplifying development of enterprise applications.
Most PHP platforms are monolithic and are focused towards the CMS domain of requirements. iConnect is a complete service oriented architecture for middle-tier/front-tier distributed enterprise applications under a condition of increasing load (that is to say the Internet).
Continue reading iConnect: One Front End, One Vision
An article about iConnect has been published by phpArchitect magazine.
I decided to merge a large portion of LGPL licensed Creole‘s code inside Carthag, in order to enrich the DataAccess system in carthag.db package while maintaining compatibility. The porting has already been started.
I decided so because the current implementation of DataAccess is lacking some useful functions like id generation, a more robust approach, more drivers and also because Creole is PHP 5 native and built using design patterns.
I’d like to report here what I think about templating system in PHP. Some time ago I read a proposal in the Community process forum at Carthag’s site about porting some external template engine in Carthag. The proposal seemed ok to me. Anyway, as said there, we already have the best (IMHO) templating language available: PHP itself.
I think that most of the authors who write a template framework miss this point, and produce some big, slow leviathan like Smarty has become. I include myself to the ones who missed the point, and then realized that PHP itself is a templating system.
Please have a look at carthag.template.Template interface in Carthag platform. And also have a look at the carthag.template.engines subpackage, there is the PhpTemplate class. I think, even without benchmarks, that this is (one of) the fastest and at the same time most powerful template engine available in the PHP world.
iConnect Portal Server uses it, and produces pages very fast (Solarix site seems very fast to me), while my old Magellan CMS had a powerful but slow template engine.
Finally I started the implementation of the Native Language Support in Carthag 1.2.
I’ve just renamed the iConnect containers and applications:
So the naming is now simpler and more coherent.
I’ve launched Caladan, an open source webapp handler for the IxAS application server, providing a MVC (Model View Controller) framework to the IxAS application server. It is a component of Solarix iConnect Frameworks.
Being distributed with the Mozilla Public license, Caladan is free to use and distribute.
Caladan’s main purpose is to offer a Model View Controller (MVC) system for IxAS web applications, with a central configuration file for controlling the behaviour of the whole site.
- Uses Carthag applications platform
- Entirely OOP
- MVC system
- XML based configuration file
- XML configuration is cached
Caladan is covered by the Mozilla Public License.
You can download Caladan from the Carthag Projects download page.
I’ve released most of the components of PHP 5 iConnect architecture, based on my PHP 5 Carthag platform.
This architecture is similar in many ways to J2EE and offers: a platform, an enterprise application server (like EJB), a web application server (like Tomcat) and a portal server. Its runtime is based on PHP 5 and Apache.
Here is a better description of the iConnect architecture.
Here you can download iConnect containers and components.
Today I’ve released the first public versione of iConnect Web Application Server (WAS), a Carthag based application server in PHP. In particular, WAS is the Web Application Server component.
iConnect Web Application Server is covered by the Mozilla Public License.
You can download iConnect Web Application Server from the Carthag Projects download page.
iConnect EAS – Enterprise Application Server – is a distributed component architecture for the development and deployment of component-based business applications.
EAS components address critical business functions as objectified business logic, featuring encapsulation of business logic into business objects and an object to relational mapping persistence system.
EAS is the standard component architecture for building distributed object-oriented business applications in the Carthag platform. EAS makes possible to build distributed applications by combining components developed by different vendors.
EAS makes easy to write applications. Developers do not have to understand low-level details nor have to implement features like persistence, distributed logic serving, and other complex ones.
An EAS module can be developed once and deployed on multiple platforms without repackaging or source code modification.
- Encapsulates business logic in an EAS module
- Uses Carthag as framework
- Delivers optional persistence, with Value Objects and Data Access Objects
- EAS deployer
- Checks EAS module PHP code before deploying them
- Transparent access to remote EAS modules as if they were local
- Transparent access to local EAS modules without using EAS server
- Location of EAS modules through a EAS locator descriptor
- Own socket server for receiving requests and serving classes
- Authentication for accessing EASs and issuing actions
- XML based users/permissions file
- Per user Data Access Source Name for persistent EAS modules
- Uses XML-RPC as communication protocol
- Uses PHP internal XML-RPC server implementation for faster speed
- Watch dog for monitoring EAS server and restarting it in case of failure
- Supports EAS session for the entire lifetime of a remote object
- Sessions garbage collector
- Benchmarks supplied
EAS is covered by the Mozilla Public License.
You can download EAS from the Carthag Projects download page.