
LYME and LYCE are
software stacks composed entirely of
free and open-source software
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
to build high-availability heavy duty
dynamic web pages. The stacks are composed of:
*
Linux, the
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
;
*
Yaws, the
web server
A web server is computer software and underlying hardware that accepts requests via HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initi ...
;
*
Mnesia or
CouchDB, the
database
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spa ...
;
*
Erlang, the
functional programming language
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that ...
.
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
Snort may refer to:
* Nose-blowing
* Sniffle
* Nasal administration, the inhaling of drugs through the nose
* Snort (software), a package for intrusion detection
* Snort, a map-coloring game
* Insufflation, the act of blowing, breathing, hissing, ...
, an
intrusion detection (IDS) and
intrusion prevention system (IPS),
RRDtool
RRDtool (''round-robin database tool'') aims to handle time series data such as network bandwidth, temperatures or CPU load. The data is stored in a circular buffer based database, thus the system storage footprint remains constant over time. ...
for diagrams, or
Nagios
Nagios Core , formerly known as Nagios, is a free and open-source computer-software application that monitors systems, networks and infrastructure. Nagios offers monitoring and alerting services for servers, switches, applications and servic ...
,
Collectd, or
Cacti
A cactus (, or less commonly, cactus) is a member of the plant family Cactaceae, a family comprising about 127 genera with some 1750 known species of the order Caryophyllales. The word ''cactus'' derives, through Latin, from the Ancient Gree ...
, for monitoring.
Details
Both databases
Mnesia
Mnesia is a distributed computing, distributed, real-time computing, soft real-time database management system written in the Erlang (programming language), Erlang programming language. It is distributed as part of the Open Telecom Platform.
De ...
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
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized har ...
. This is in contrast to
LAMP where the web server (
Apache) and the application (written in
PHP
PHP is a General-purpose programming language, general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementati ...
,
Perl
Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
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
and if distribution and fault tolerance is needed.
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,
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, although some
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
Klarna Bank AB, commonly referred to as Klarna, is a Swedish fintech company that provides online financial services such as payments for online storefronts and direct payments along with post-purchase payments.
The company has more than 4,00 ...
, 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 computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that ...
in general.
LYME was also covered in the Erlang session
at the Software Practice Advancement (SPA) 2008.
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
Amazon SimpleDB is a distributed database written in Erlang by Amazon.com. It is used as a web service in concert with Amazon Elastic Compute Cloud (EC2) and Amazon S3 and is part of Amazon Web Services. It was announced on December 13, 20 ...
(part of
Amazon Web Services
Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon.com, Amazon that provides Software as a service, on-demand cloud computing computing platform, platforms and Application programming interface, APIs to individuals, companies, and gover ...
What You Need To Know About Amazon SimpleDB
/ref>).
See also
* LAMP (software bundle)
* MEAN (software bundle) a JavaScript software stack for building dynamic web sites and web applications
References
{{Linux
Erlang (programming language)
Free web software
Web frameworks
Web development software
Internet software for Linux