Appserver.io

appserver.io is an implementation of an application server for PHP based web environments. Its goal is to bring the concept of application server middleware into the PHP market to enable and support enterprise application development and management. To ensure this, the project consists of a middleware which delivers classical PHP web applications and provides additional web services.

History

The basic idea of a WildFly equivalent for PHP was present within TechDivision quite some time but due to technical shortcomings of the PHP language it took until July 2013 before development on the project could start.

At that time the possibility of programming a non-blocking socket-based middleware in PHP was given by using an asynchronous event driven workflow. In parallel as of August 2012 a threading extension for PHP by Joe Watkins enabled true POSIX compatible multithreading. Even if controversially discussed threads were used as implementation base as they allow the programmer to account for hardware usage instead of relying on the used runtime environment.

After deciding on the technical blueprint, development began on the GitHub platform and the project shaped fast. As of now (May 2014) the project consists of 28 separate repositories, around 54,000 lines of code and estimated effort of 14 years (COCOMO model)

Licensing

appserver.io is an open-source software under the OSL in version 3.0. It can be downloaded free of charge either as an installable package from the project page, or as a source from GitHub. The project aims at a freemium marketing approach splitting the software into a Community and an Enterprise EDition.

Product features

appserver.io comes with its own runtime environment, containing PHP in version 5.5 extended with several third party libraries, PHP extensions and service daemons. This idea of a self-containing environment makes appserver.io an out-of-the-box runtime environment for PHP development but has a downside with the specific setup. Mainly the usage of a multithreading environment is seen critically, as it is considered to break the so called shared nothing concept of PHP as it allows for inter-process communication on object level.

Together with the bundled runtime, appserver.io tries to bundle administration by offering a central admin backend which is capable of managing features provided by the middleware as well as managing application deployment and status. As of version 0.6.0 application management is implemented to the full extent and allows for easy drag and drop deployment of applications. Additional features such as virtual host management, logging, dashboards and extended clustering and deployment options are planned for the near future.

As another concept besides known sandboxed PHP applications appserver.io offers the usage of servlets, objects which are persistent in between client requests. These are able to, in theory, yield big performance gains as repeated bootstrapping of applications is avoided, but they need the wrapping of these bootstrap parts to make use of the servlet concept.

As the project's Java role model, appserver.io offers several services which can be used individually by internal and external applications. As a core concept of application servers, these services are organized in a modular way.

Below is a list of features an appserver.io installation provides (some of them usable as standalone products):

The paid enterprise version appserver.io offers further features, including:

  • Clustering functionality
  • An Application firewall
  • Application snapshotting
  • Hot backup
  • Load balancing

Versions

While being in an early stage of development , appserver.io provided stable pre-release versions of its product over their GitHub project page. Following list contains versions released up to this date.

appserver.io beta versions

Version

Release date

10. October 2013

5. February 2014

13. February 2014

9. May 2014

In addition, there are development releases regularly published over the homepage of the project.

Version milestones

The project had two big milestones within the versions above:

  • As of version 0.5.8 appserver.io supports Windows with a guided installation procedure
  • As of version 0.6.0 the built in web server and modules structure ensure compatibility with non-servlet applications

Books

  • Meyen, Sebastian (2013): Software Development Trends. Frankfurt am Main: entwickler.press. S. 25-49.
  • Piech, Guido (2014): Onlineplattform für den Einzelhandel. Das digitale Schaufenster ist erröffnet. In: IT MITTELSTAND, Ausgabe 1-2 (2014), S. 54-64.

References