LYCE (software bundle)
   HOME

TheInfoList



OR:

LYME and LYCE are
software stack 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 ...
s composed entirely of free and open-source software to build high-availability heavy duty
dynamic web page A server-side dynamic web page is a web page whose construction is controlled by an application server processing server-side scripts. In server-side scripting, parameters determine how the assembly of every new web page proceeds, and includi ...
s. 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 services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
; * Yaws, the web server; * 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 s ...
; * 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 netsniff-ng is a free Linux network analyzer and networking toolkit originally written by Daniel Borkmann. Its gain of performance is reached by zero-copy mechanisms for network packets (RX_RING, TX_RING), so that the Linux kernel does not need ...
for security testing and hardening, Snort, an
intrusion detection An intrusion detection system (IDS; also intrusion prevention system or IPS) is a device or software application that monitors a network or systems for malicious activity or policy violations. Any intrusion activity or violation is typically rep ...
(IDS) and
intrusion prevention system An intrusion detection system (IDS; also intrusion prevention system or IPS) is a device or software application that monitors a network or systems for malicious activity or policy violations. Any intrusion activity or violation is typically rep ...
(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,
Collectd collectd is a Unix daemon that collects, transfers and stores performance data of computers and network equipment. The acquired data is meant to help system administrators maintain an overview over available resources to detect existing or loomi ...
, or Cacti, for monitoring.


Details

Both databases Mnesia and
CouchDB Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang. CouchDB uses multiple formats and protocols to store, transfer, and process its data. It uses JSON to store data, JavaScript as its query language using ...
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 h ...
. This is in contrast to
LAMP Lamp, Lamps or LAMP may refer to: Lighting * Oil lamp, using an oil-based fuel source * Kerosene lamp, using kerosene as a fuel * Electric lamp, or light bulb, a replaceable component that produces light from electricity * Light fixture, or li ...
where the web server ( Apache) and the application (written in
PHP PHP is a 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 implementation is now produced by The PHP Group. ...
,
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
or
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
) might be in the same
process A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic. Things called a process include: Business and management *Business process, activities that produce a specific se ...
, 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 A data manipulation language (DML) is a computer programming language used for adding (inserting), deleting, and modifying (updating) data in a database. A DML is often a sublanguage of a broader database language such as SQL, with the DML com ...
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 Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and we ...
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,000 ...
, 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 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 B ...
,
Couchbase Server Couchbase Server, originally known as Membase, is an open-source, distributed ( shared-nothing architecture) multi-model NoSQL document-oriented database software package optimized for interactive applications. These applications may serve many ...
(born as Membase), database management system optimized for storing data behind interactive web applications,
Riak Riak (pronounced "ree-ack" ) is a distributed NoSQL key-value data store based on Amazon's Dynamo paper, including its "tunable AP" approach, that is tunable consistency, to the tradeoffs imposed by the CAP Theorem. Riak offers high availability, ...
, and SimpleDB (part of
Amazon Web Services Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide d ...
What You Need To Know About Amazon SimpleDB
/ref>).


See also

*
LAMP (software bundle) LAMP (Linux, Apache, MySQL, PHP/Perl/Python) is an acronym denoting one of the most common software stacks for many of the web's most popular applications. However, LAMP now refers to a generic software stack model and its components are largel ...
* 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