Appserver.io

Last updated
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
Written in PHP, C, Shell
Operating system Windows, macOS, Linux
Type Application server
License OSL (open-source software)
Website appserver.io   OOjs UI icon edit-ltr-progressive.svg

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.

Contents

History

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

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

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

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
VersionRelease date
Old version, no longer maintained: 1.0.0 "Iron Horse"16 February 2015
Old version, no longer maintained: 1.0.1 "Iron Horse"27 February 2015
Old version, no longer maintained: 1.0.2 "Iron Horse"12 March 2015
Old version, no longer maintained: 1.0.3 "Iron Horse"17 April 2015
Old version, no longer maintained: 1.0.4 "Iron Horse"17 April 2015
Old version, no longer maintained: 1.0.5 "Iron Horse"12 May 2015
Old version, no longer maintained: 1.0.6 "Iron Horse"8 July 2015
Old version, no longer maintained: 1.1.0 "Iron Knight"11 November 2015
Old version, no longer maintained: 1.1.1 "Iron Knight"11 May 2016
Old version, no longer maintained: 1.1.2 "Iron Knight"1 July 2016
Old version, no longer maintained: 1.1.3 "Iron Knight"8 October 2016
Current stable version:1.1.4 "Iron Knight"9 June 2017

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

Footnotes

  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

Related Research Articles

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.

An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers.

<span class="mw-page-title-main">NetBeans</span> Integrated development environment software for software development

NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called modules. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java development, it has extensions for other languages like PHP, C, C++, HTML5, and JavaScript. Applications based on NetBeans, including the NetBeans IDE, can be extended by third party developers.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

WebSphere Application Server (WAS) is a software product that performs the role of a web application server. More specifically, it is a software framework and middleware that hosts Java-based web applications. It is the flagship product within IBM's WebSphere software suite. It was initially created by Donald F. Ferguson, who later became CTO of Software for Dell. The first version was launched in 1998. This project was an offshoot from IBM HTTP Server team starting with the Domino Go web server.

Web server software allows computers to act as web servers. The first web servers supported only static files, such as HTML, but now they commonly allow embedding of server side applications.

<span class="mw-page-title-main">GlassFish</span> Application server project

GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by Payara, Oracle and Red Hat. The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the Eclipse Public License (EPL).

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

Hiawatha is a web server available for multiple platforms. It is developed by Hugo Leisink.

Python Paste, often simply called paste, is a set of utilities for web development in Python. Paste has been described as "a framework for web frameworks".

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

<span class="mw-page-title-main">Rack (web server interface)</span> API specification for web applications in programming language Ruby

Rack is a modular interface between web servers and web applications developed in the Ruby programming language. With Rack, application programming interfaces (APIs) for web frameworks and middleware are wrapped into a single method call handling HTTP requests and responses.

<span class="mw-page-title-main">Node.js</span> JavaScript runtime environment

Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser.

The JBoss Enterprise Application Platform is a subscription-based/open-source Java EE-based application server runtime platform used for building, deploying, and hosting highly-transactional Java applications and services developed and maintained by Red Hat. The JBoss Enterprise Application Platform is part of Red Hat's Enterprise Middleware portfolio of software. Because it is Java-based, the JBoss application server operates across platforms; it is usable on any operating system that supports Java. JBoss Enterprise Application Platform was originally called JBoss and was developed by the eponymous company JBoss, acquired by Red Hat in 2006.

Phalcon is a PHP web framework based on the model–view–controller (MVC) pattern. Originally released in 2012, it is an open-source framework licensed under the terms of the BSD License.

<span class="mw-page-title-main">Eclipse Che</span> Developer workspace server software

Eclipse Che is an open-source, Java-based developer workspace server and Online IDE. It includes a multi-user remote development platform. The workspace server comes with a flexible RESTful webservice. It also contains a SDK for creating plug-ins for languages, frameworks or tools. Eclipse Che is an Eclipse Cloud Development (ECD) top-level project, allowing contributions from the user community.

RoadRunner is an open-source application server, load-balancer and process manager written in Golang (Go) and implemented by PHP 7. It is used in rapid application development to speed up the performance of large web applications for users. It is often used in conjunction with frameworks like Symfony, Laravel, and others to enhance the performance and responsiveness of PHP web applications.

References