|Original author(s)||TechDivision GmbH|
|Stable release||1.0.0 / 16. February 2015|
|Written in||PHP, C, Shell|
|Operating system||Windows, Mac OS, Linux|
|License||OSL (open-source software)|
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.
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 or using forked processes. 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 and enable easier communication in between parallel working batches.
After deciding on the technical blueprint, development began on the GitHub platform and the project shaped fast. As of now (December 2014) the project consists of 36 separate repositories, around 80,000 lines of code and estimated effort of 20 years (COCOMO model)
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.
appserver.io comes with its own runtime environment, containing PHP in version 5.5 extended with several external 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 deployment API. 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 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. In addition appserver.io offers an Enterprise Bean implementation based on the Enterprise Java Beans functionality.
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):
- Persistence Container
- Message Queue
- Servlet Engine
- AOP support
- Design by Contract support
- Annotation based Dependency Injection
- Timer service
- Deployment API
- Integrated FastCGI client
- Enterprise Beans similar to Enterprise Java Beans
The paid enterprise version of appserver.io will offer further features, including:
While being in an early stage of development As of 2014[update], appserver.io provided tested pre-release versions of its product over their GitHub project page. Following list contains versions released up to this date.
appserver.io beta versions
|Old version, no longer supported: 0.5.7||10. October 2013|
|Old version, no longer supported: 0.5.8||5. February 2014|
|Old version, no longer supported: 0.5.9||13. February 2014|
|Old version, no longer supported: 0.6.0||9. May 2014|
|Old version, no longer supported: 0.7.0||14. July 2014|
|Old version, no longer supported: 0.8.0||22. July 2014|
|Old version, no longer supported: 0.9.0||23. July 2014|
|Old version, no longer supported: 0.10.0||23. October 2014|
|Old version, no longer supported: 0.11.0||27. November 2014|
|Old version, no longer supported: 1.0.0rc||19. January 2015|
|Current stable version: 1.0.0||16. February 2015|
In addition, there are development releases regularly published over the homepage of the project.
The project had several 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
- As of version 0.10.0 applications do run in a separated context allowing for complete app independency
- As of version 0.10.0 enterprise beans similar to Enterprise Java Beans were introduced
- 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.
- Sitepoint: An Interview with the Appserver.io Crew
- dev-metal: Postmodern PHP – appserver.io, a multithreaded application server for PHP, written in PHP
- SitePoint PHP Blog: An Interview with the Appserver.io Crew
- SuperbCrew: Interview with Josef Willkommer from Appserver.io Team