Appserver.io

Summary

appserver.io is an application server for PHP-based web environments. The project consists of middleware which delivers classical PHP web applications and provides additional services.

appserver.io
Original author(s)TechDivision GmbH
Developer(s)TechDivision GmbH
Stable release
1.1.4 / 9 June 2017; 6 years ago (2017-06-09)
Repository
  • github.com/appserver-io/appserver Edit this at Wikidata
Written inPHP, C, Shell
Operating systemWindows, macOS, Linux
TypeApplication server
LicenseOSL (open-source software)
Websiteappserver.io Edit this on Wikidata

History edit

The basic idea of a WildFly equivalent for PHP was present within TechDivision well before July 2013 when development on the project began, due to technical shortcomings of the PHP language .

At that time the possibility of a non-blocking, socket-based PHP middleware was given by using an asynchronous event driven workflow or forked processes.[1][2] In parallel, as of August 2012, a threading extension for PHP by Joe Watkins enabled true POSIX compatible multithreading.[3] Controversially[4] threads were used because they allow the programmer to account for hardware usage instead of relying on the used runtime environment and enable easier communication between parallel working batches.

After deciding on the technical blueprint, development began on the GitHub platform. As of 2015, the project consisted of 36 separate repositories, around 80,000 lines of code and estimated effort of 18 years (COCOMO model).[5]

Licensing edit

Appserver.io is open-source software under the OSL in version 3.0. It can be downloaded 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, Professional and an Enterprise Edition.[6] As of 2015, the Community Edition[7] contained all base features and is open source and free of charge.

As of 2015, the Professional Edition[8] could only be used within the Microsoft Azure cloud service and offers additional developer support.

Product features edit

Appserver.io includes a runtime environment, containing PHP extended with external libraries, PHP extensions and service daemons.[9] It is an out-of-the-box runtime environment for PHP development. The use of a multithreading environment is considered to break the so-called shared nothing concept of PHP as it allows for inter-process communication on object level.[10]

Together with the bundled runtime, appserver.io bundles administration. As of version 0.6.0 application management is implemented with file-based application deployment.

Appserver.io offers servlets, objects that persist between client requests. These can eliminate repeated bootstrapping of applications, but require the wrapping of bootstrap parts. Appserver.io offers an Enterprise Bean implementation similar to Enterprise Java Beans functionality.

Appserver.io offers modular services that can be used individually by internal and external applications.

Features:

Appserver.io allows component-based scalability. Services and servers (e.g. an HTTP webserver) are adjustable in size and number based on an XML configuration file. Additional components can be configured for remote access, allowing for distributed systems and component replication.

Versions edit

As of 2014, appserver.io was in an early stage of development. The project provided tested, pre-release versions over GitHub. Development releases are regularly published over the homepage.

Appserver.io Stable Versions
Version Release date
Old version, no longer maintained: 1.0.0 "Iron Horse" 16 February 2015 (2015-02-16)
Old version, no longer maintained: 1.0.1 "Iron Horse" 27 February 2015 (2015-02-27)
Old version, no longer maintained: 1.0.2 "Iron Horse" 12 March 2015 (2015-03-12)
Old version, no longer maintained: 1.0.3 "Iron Horse" 17 April 2015 (2015-04-17)
Old version, no longer maintained: 1.0.4 "Iron Horse" 17 April 2015 (2015-04-17)
Old version, no longer maintained: 1.0.5 "Iron Horse" 12 May 2015 (2015-05-12)
Old version, no longer maintained: 1.0.6 "Iron Horse" 8 July 2015 (2015-07-08)
Old version, no longer maintained: 1.1.0 "Iron Knight" 11 November 2015 (2015-11-11)
Old version, no longer maintained: 1.1.1 "Iron Knight" 11 May 2016 (2016-05-11)
Old version, no longer maintained: 1.1.2 "Iron Knight" 1 July 2016 (2016-07-01)
Old version, no longer maintained: 1.1.3 "Iron Knight" 8 October 2016 (2016-10-08)
Current stable version: 1.1.4 "Iron Knight" 9 June 2017 (2017-06-09)

Appserver.io follows a naming convention based on major and minor version numbers. The major digit specifies a context for minor version names exist. The 1.*.* major version is named Iron which stands for a mythological view on the medieval age. Every minor version 1.x.* within this major release consist of a noun describing something common to this major context.

Project milestones edit

  • 0.5.8 Windows support with a guided installation procedure
  • 0.6.0 web server and modules structure ensured compatibility with non-servlet applications
  • 0.10.0 separate application context allowing complete independence
  • 0.10.0 enterprise beans
  • 1.0.0 stable API defined by so-called PSRs[11] (similar to JSRs)

Footnotes edit

  1. ^ "React".
  2. ^ "PHP: pcntl_fork - Manual".
  3. ^ "pthreads - Share Nothing, Do Everything :)".
  4. ^ "4.3 The Case of Threads vs. Events". berb.github.io. Retrieved 2016-09-01.
  5. ^ "The appserver.io Open Source Project on Open Hub".
  6. ^ "appserver.io enterprise edition".
  7. ^ "appserver.io community edition".
  8. ^ "appserver.io professional edition".
  9. ^ "appserver-io-php/runtime". GitHub.
  10. ^ "Multithreading in PHP with pthreads • /r/PHP". 4 August 2013.
  11. ^ "appserver.io PSRs".

Books edit

  • Meyen, Sebastian (18 December 2013). Software Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT. entwickler.Press. pp. 25–49. ISBN 978-3-86802-638-2.
  • Piech, Guido (2014): Online plattform für den Einzelhandel. Das digitale Schaufenster ist erröffnet. In: IT MITTELSTAND, Ausgabe 1-2 (2014), S. 54-64.

References edit

  • 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

External links edit

  • Official website