LYME (software bundle)

Last updated
The LYME and LYCE software bundles LYME software bundle.svg
The LYME and LYCE software bundles

LYME and LYCE are software stacks composed entirely of free and open-source software to build high-availability heavy duty dynamic web pages. The stacks are composed of:

Contents

The LYME and LYCE bundles can be and are combined with many other free and open-source software packages such as e.g. netsniff-ng for security testing and hardening, Snort, an intrusion detection (IDS) and intrusion prevention system (IPS), RRDtool for diagrams, or Nagios, Collectd, or Cacti, for monitoring.

Details

Both databases Mnesia and CouchDB as well as Yaws (and also Mochiweb, Misultin, and Cowboy) are written in Erlang, so web applications developed for LYME/LYCE may be run entirely in one Erlang virtual machine. This is in contrast to LAMP where the web server (Apache) and the application (written in PHP, Perl or Python) might be in the same process, but the database is always a separate process. As a result of using Erlang, LYME and LYCE applications perform well under high load [1] and if distribution and fault tolerance is needed. [2]

The query and data manipulation language of Mnesia is also Erlang (rather than SQL), therefore a web-application for LYME is developed using only a single programming language.

Interest in LYME as a stack had begun by August 2005, [3] as was soon cited as a high-performance web application platform that used a single development language throughout. Favorable comparisons to other popular stacks such as Ruby on Rails were soon forthcoming. Comparisons to LAMP have also been favourable,[ citation needed ] although some [4] have highlighted the difficulties of porting "SQL thinking" to the very different context of Mnesia.

Adoption

A successful user of LYME is the Swedish internet payment-processing company Klarna, who have built their whole architecture on LYME. This is seen as a successful project that demonstrates virtues of both LYME and functional programming in general. [5] LYME was also covered in the Erlang session [4] at the Software Practice Advancement (SPA) 2008. [6]

Besides Yaws, there are several other web servers written in Erlang, e.g. Mochiweb, Misultin, and Cowboy.

Besides Mnesia and CouchDB, there are a couple of other databases written in Erlang, e.g., Cloudant, Couchbase Server (born as Membase), database management system optimized for storing data behind interactive web applications, Riak, and SimpleDB (part of Amazon Web Services [7] ).

See also

Related Research Articles

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

Django (web framework) Python web framework

Django is a Python-based free and open-source web framework that follows the model-template-views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an American independent organization established as a 501(c)(3) non-profit.

LAMP (software bundle) Software bundle

LAMP is a very common example of a web service stack, named as an acronym of the names of its original four open-source components: the Linux operating system, the Apache HTTP Server, the MySQL relational database management system (RDBMS), and the PHP programming language. The LAMP components are largely interchangeable and not limited to the original selection. As a solution stack, LAMP is suitable for building dynamic web sites and web applications.

Catalyst (software)

Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by such frameworks as Ruby on Rails, Maypole, and Spring.

The acronyms BAPP and BAMP refer to a set of open-source software programs commonly used together to run dynamic web sites or servers. This set is a solution stack, and an open source web platform.

MAMP is a solution stack composed of free and open-source and proprietary commercial software used together to develop and run dynamic web sites on Apple Macintosh computers.

Mnesia

Mnesia is a distributed, soft real-time database management system written in the Erlang programming language. It is distributed as part of the Open Telecom Platform.

Yaws (web server)

Yaws is a web server written in Erlang by Claes (klacke) Wikström. Yaws can be embedded into other Erlang-based applications or run as a regular standalone web server.

Apache CouchDB

Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang.

The acronym WIMP is a solution stack of software, partially free and open source software, used to run dynamic Web sites on servers. The expansion is as follows:

OTP is a collection of useful middleware, libraries, and tools written in the Erlang programming language. It is an integral part of the open-source distribution of Erlang. The name OTP was originally an acronym for Open Telecom Platform, which was a branding attempt before Ericsson released Erlang/OTP as open source. However neither Erlang nor OTP is specific to telecom applications.

Cloudant is an IBM software product, which is primarily delivered as a cloud-based service. Cloudant is a non-relational, distributed database service of the same name. Cloudant is based on the Apache-backed CouchDB project and the open source BigCouch project.

Opa (programming language)

Opa is an open-source programming language for developing scalable web applications.

Linux kernel-based operating systems have been widely adopted in a very wide range of uses. All the advantages and benefits of free and open-source software apply to the Linux kernel, and to most of the rest of the system software.

MEAN (solution stack) JavaScript software stack

MEAN is a free and open-source JavaScript software stack for building dynamic web sites and web applications.

The following outline is provided as an overview of and topical guide to MySQL:

RocksDB

RocksDB is a high performance embedded database for key-value data. It is a fork of Google's LevelDB optimized to exploit many CPU cores, and make efficient use of fast storage, such as solid-state drives (SSD), for input/output (I/O) bound workloads. It is based on a log-structured merge-tree data structure. It is written in C++ and provides official language bindings for C++, C, and Java; alongside many third-party language bindings. RocksDB is open-source software, and was originally released under a BSD 3-clause license. However, in July 2017 the project was migrated to a dual license of both Apache 2.0 and GPLv2 license, possibly in response to the Apache Software Foundation's blacklist of the previous BSD+Patents license clause.

Hoodie (software)

In computing, Hoodie is an open-source JavaScript package, that enables offline first, Front-end web development by providing a complete backend infrastructure. It aims to allow developers to rapidly develop web applications using only front-end code by providing a backend based on Node.js and Apache CouchDB. It runs on many Unix-like systems as well as on Microsoft Windows.

References

  1. Ghodsi, Ali. "Apache vs. Yaws". Archived from the original on 2007-01-18. Retrieved 2013-10-14.
  2. Armstrong, Joe (2003). "Making reliable distributed systems in the presence of software errors" (PDF). Retrieved 2013-10-14.
  3. "Things I Can No Longer Be Bothered With (LAMP)". August 22, 2005. Retrieved 2013-10-14.
  4. 1 2 "Lyme vs Lamp I". Archived from the original on 2009-03-16. Retrieved 2008-09-29.
  5. Dr. Erik Stenman (13 December 2007). "Functional Programming in Real Life" (PDF). Department of Information Technology, Uppsala University . Retrieved 2013-10-14.
  6. Erlang: What All The Fuss Is About. Software Practice Advancement (SPA) 2008. BCS. 16–19 March 2008. Retrieved 2013-10-14.
  7. What You Need To Know About Amazon SimpleDB