Launched the Caladan PHP webapp handler

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.

Main features

  • Uses Carthag applications platform
  • Entirely OOP
  • MVC system
  • XML based configuration file
  • Lightweight
  • XML configuration is cached

Caladan is covered by the Mozilla Public License.

You can download Caladan from the Carthag Projects download page.

Launched the iConnect Web Application Server

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.

Launched the iConnect Enterprise Application Server

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.

Main features

  • 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.

Launched the iConnect Portal Server

Today I launched iConnect Portal Server, a data presentation and delivery system for building enteprise portals over the iConnect Web Application Server. Users of the platform have a customized single point of access to the company’s information system and resources.

iConnect Portal Server is covered by the Mozilla Public License.

You can download iConnect Portal Server from the Carthag Projects download page.

 

INSTALLING iCONNECT PORTAL SERVER
=================================

Requirements
————

In order to run iConnect Portal Server the following requirements must be met:

– PHP 5 (http://www.php.net/)
– Carthag 1.2 (http://www.carthag.net/)
– iConnect Web Application Server 1.0
(http://projects.carthag.org/index.php/?content_page=/was/index.html)
– Apache (http://httpd.apache.org/)

Installation (UNIX)
——————-

Installing iConnect Portal Server can be done in few easy steps.

1. Unpack your distribution file.

You will have downloaded a file named something like portalserver-x.y.tar.gz.
Unzip this file with a command like: gunzip portalserver-x.y.tar.gz

Next you have to untar it with: tar -xvf portalserver-x.y.tar

This will create a portalserver-x.y directory.

2. Install the files.

Simply copy the extracted directory in the target directory, like
/usr/local/iconnect/. You may want to rename portalserver-x-y to portalserver.

3. Setting up Carthag.

The procedure in step 2 should have done most of your
work for you. Now, you need to add iConnect Portal Server classes directory to Carthag’s
classpath in the classpath directive in Carthag’s carthag.ini file.

eg.: classpath = “/usr/local/iconnect/portalserver/classes/”

Once you have made these changes you should be ready to run
iConnect Portal Server based applications.

Installation (Windows)
———————-

Installing iConnect Portal Server under Windows can be done in few easy steps.

1. Run the installer.

Choose a target directory like C:\Program Files\iConnect\Portal Server and let
the installer place iConnect Portal Server there.

2. Setting up Carthag.

The installer in step 1 should have done most of your
work for you. Now, you need to add iConnect Portal Server classes directory to Carthag’s
classpath in the classpath directive in Carthag’s carthag.ini file.

eg.: classpath = “C:\Program Files\iConnect\Portal Server\classes\”

Once you have made these changes you should be ready to run
iConnect Portal Server based applications.

Launched Carthag Classes Consolidator

Today I’ve released the first public version of CCC – Carthag Classes Consolidator – an open source classes consolidator for Carthag applications. Being distributed with the Mozilla Public License, CCC is free to use and distribute. CCC is a component of the Solarix iConnect Tools.

CCC’s main purpose is to optimize Carthag classpaths and classes. It collects all the classes contained in the classpaths (excepted Carthag and CCC ones) and, if required, process them with specific consolidators. For now no consolidator other than the collector is available, but in the future there can be consolidators for classes code optimization, caching, etc.

Collected (and processed) classes, once collected, are kept in a storage. Following INSTALL file, storage classes classpath is the first one (after Carthag default classpaths) to be explored for classes by Carthag when importing them. In this manner, Carthag doesn’t have to search among all the classpaths. With a long classpath list, this may result in faster applications serving.

The consolidation process must be manually restarted each time a Carthag based application is installed, updated or removed, otherwise the storage is very likely to contain old classes (or no classes at all) incompatible with the new application.

Please note that applications whose classes rely on a certain position in the filesytem are likely to be subject to malfunctions. In that case, you should exclude classpaths for these applications from being consolidated using the “excluded_classpaths” directive in ccc.ini file.

To run the consolidation process, you must run the bin/consolidate batch file.

Supported options:

-h: display a short CCC usage help.

Supported commands:

refresh: starts the consolidation process. This is automatically called when no argument is given to consolidate batch file.

flush: entirely flushes the classes in storage.

You can download CCC from the Carthag Projects download page.

The new Carthag Projects site is ready

In the last weeks I started Carthag Projects, the home for open source solutions on the Carthag platform for public distribution at no charge. Its main goal is to have something like the Jakarta Project for the PHP community.

Carthag Projects creates and maintains various community efforts, mostly targeted towards the iConnect Architecture. The subprojects are divided in three categories: iConnect Architecture, Frameworks, Tools.

Two of the goals of the Carthag Projects effort are to port Java frameworks and tools to the Carthag platform, and to port already existing PHP projects to the Carthag platform too.

Carthag ports for Apache MavenPhingZZ/OSS InstallerphpDocumentor and projects like them are expected to be started in the near future.

Carthag Projects is open for new contributors and project ideas. And also: do you want to have your open source PHP based project ported to the Carthag platform? Just get in touch with me.

Launched the new Carthag open source PHP framework

Carthag is an enteprise level applications platform written in PHP 5, making full use of the new language features. Being distributed with the Mozilla Public License, Carthag is free to use and distribute and can be used in commercial products.

Carthag’s main purpose is to bring PHP at the Enterprise level. This is achieved by using new PHP 5 OOP features, adopting Design Patterns and bringing some other platforms ideas (in particular Java) to Carthag.

Differently from other PHP based platforms, Carthag is designed to be used in all types of applications, even client ones, and not only as a web scripting system.

Main features

  • Entirely OOP
  • Rigorous code organization (like Java)

Language and base packages

  • Bootstrap system
  • IO and files
  • Classes serialization
  • Data types
  • Exceptions
  • Class loader and class autoload interceptor
  • Support of threading/concurrent processes
  • Server sockets
  • Manipulators
  • Archives
  • Security manager
  • Dom/Sax XML manipulation
  • Utility packages

Standards

  • Implementation of design patterns like Observer, Factory, DAO, etc.
  • Singleton pattern implementation
  • Command pattern interface
  • Observer pattern implementation

Integration features

  • Database abstraction through Data Access
  • DAO base
  • Web services support (SOAP, UDDI, WSDL, XML-RPC)

Common application frameworks provided

  • Validation
  • Sessions
  • Logging system based on log4j
  • Templating
  • Localization
  • Authentication and authorization
  • Unit testing

Carthag structure

Carthag