Appia (software)

Last updated

Appia is a free and open-source layered communication toolkit implemented in Java, and licensed under the Apache License, version 2.0. It was born in the University of Lisbon, Portugal, by the DIALNP research group that is hosted in the LaSIGE research unit. [1] [2] [3]

Contents

Components

Appia is composed by a core that is used to compose protocols, and a set of protocols that provide group communication, ordering guaranties, atomic broadcast, among other properties.

Core

The Appia core offers a clean way for the application to express inter-channel constraints. This feature is obtained as an extension to the functionality provided by current systems. Thus, Appia retains a flexible and modular design that allows communication stacks to be composed and reconfigured in run-time.

Protocols

The existing protocols include interface with TCP and UDP sockets, virtual synchrony, several implementations of total order, causal order, among others.

See also

Related Research Articles

In distributed computing, code on demand is any technology that sends executable software code from a server computer to a client computer upon request from the client's software. Some well-known examples of the code on demand paradigm on the web are Java applets, Adobe's ActionScript language for the Flash player, and JavaScript.

A Byzantine fault is a condition of a computer system, particularly distributed computing systems, where components may fail and there is imperfect information on whether a component has failed. The term takes its name from an allegory, the "Byzantine Generals Problem", developed to describe a situation in which, in order to avoid catastrophic failure of the system, the system's actors must agree on a concerted strategy, but some of these actors are unreliable.

Markus Guenther Kuhn is a German computer scientist, currently working at the Computer Laboratory, University of Cambridge and a fellow of Wolfson College, Cambridge.

Recurrent neural network class of artificial neural network where connections between units form a directed graph along a temporal sequence

A recurrent neural network (RNN) is a class of artificial neural networks where connections between nodes form a directed graph along a temporal sequence. This allows it to exhibit temporal dynamic behavior. Derived from feedforward neural networks, RNNs can use their internal state (memory) to process variable length sequences of inputs. This makes them applicable to tasks such as unsegmented, connected handwriting recognition or speech recognition.

Multipoint control unit

A multipoint control unit (MCU) is a device commonly used to bridge videoconferencing connections. The multipoint control unit is an endpoint on the LAN that provides the capability for three or more terminals and gateways to participate in a multipoint conference. The MCU consists of a mandatory multipoint controller (MC) and optional multipoint processors (MPs).

In digital logic design, an asynchronous circuit is quasi delay-insensitive (QDI) when it operates correctly, independent of gate and wire delay with the weakest exception necessary to be turing-complete.

A wireless ad hoc network (WANET) or Mobile ad hoc network (MANET) is a decentralized type of wireless network. The network is ad hoc because it does not rely on a pre-existing infrastructure, such as routers in wired networks or access points in managed (infrastructure) wireless networks. Instead, each node participates in routing by forwarding data for other nodes, so the determination of which nodes forward data is made dynamically on the basis of network connectivity and the routing algorithm in use.

Anomaly detection the identification of rare items, events or observations which raise suspicions by differing significantly from the expected or majority of the data

In data mining, anomaly detection is the identification of rare items, events or observations which raise suspicions by differing significantly from the majority of the data. Typically the anomalous items will translate to some kind of problem such as bank fraud, a structural defect, medical problems or errors in a text. Anomalies are also referred to as outliers, novelties, noise, deviations and exceptions.

In fault-tolerant distributed computing, an atomic broadcast or total order broadcast is a broadcast where all correct processes in a system of multiple processes receive the same set of messages in the same order; that is, the same sequence of messages. The broadcast is termed "atomic" because it either eventually completes correctly at all participants, or all participants abort without side effects. Atomic broadcasts are an important distributed computing primitive.

Memory-level parallelism (MLP) is a term in computer architecture referring to the ability to have pending multiple memory operations, in particular cache misses or translation lookaside buffer (TLB) misses, at the same time.

The Web of Things (WoT) is software architectural styles and programming patterns that allow real-world objects to be part of the World Wide Web. Similarly to what the Web is to the Internet, the Web of Things provides an Application Layer that simplifies the creation of Internet of Things (IoT) applications composed of multiple devices across different platforms and application domains. Differently from IoT which focuses on the Network Layer, WoT assumes that the connectivity between the devices is achieved and focuses on how to build applications.

Ensemble learning in statistics and machine learning, using multiple algorithms

In statistics and machine learning, ensemble methods use multiple learning algorithms to obtain better predictive performance than could be obtained from any of the constituent learning algorithms alone. Unlike a statistical ensemble in statistical mechanics, which is usually infinite, a machine learning ensemble consists of only a concrete finite set of alternative models, but typically allows for much more flexible structure to exist among those alternatives.

Reverse computation is a software application of the concept of reversible computing.

ProVerif is a software tool for automated reasoning about the security properties found in cryptographic protocols. The tool has been developed by Bruno Blanchet.

Tachyon (software) ray tracing software

Tachyon is a parallel/multiprocessor ray tracing software. It is a parallel ray tracing library for use on distributed memory parallel computers, shared memory computers, and clusters of workstations. Tachyon implements rendering features such as ambient occlusion lighting, depth-of-field focal blur, shadows, reflections, and others. It was originally developed for the Intel iPSC/860 by John Stone for his M.S. thesis at University of Missouri-Rolla. Tachyon subsequently became a more functional and complete ray tracing engine, and it is now incorporated into a number of other open source software packages such as VMD, and SageMath. Tachyon is released under a permissive license.

A distributed file system for cloud is a file system that allows many clients to have access to data and supports operations on that data. Each data file may be partitioned into several parts called chunks. Each chunk may be stored on different remote machines, facilitating the parallel execution of applications. Typically, data is stored in files in a hierarchical tree, where the nodes represent directories. There are several ways to share files in a distributed architecture: each solution must be suitable for a certain type of application, depending on how complex the application is. Meanwhile, the security of the system must be ensured. Confidentiality, availability and integrity are the main keys for a secure system.

Social cloud computing, also peer-to-peer social cloud computing, is an area of computer science that generalizes cloud computing to include the sharing, bartering and renting of computing resources across peers whose owners and operators are verified through a social network or reputation system. It expands cloud computing past the confines of formal commercial data centers operated by cloud providers to include anyone interested in participating within the cloud services sharing economy. This in turn leads to more options, greater economies of scale, while bearing additional advantages for hosting data and computing services closer to the edge where they may be needed most.

Transition (computer science)

Transition refers to a computer science paradigm in the context of communication systems which describes the change of communication mechanisms, i.e., functions of a communication system, in particular, service and protocol components. In a transition, communication mechanisms within a system are replaced by functionally comparable mechanisms with the aim to ensure the highest possible quality, e.g., as captured by the quality of service.

Communication in Distributed Software Development is an area of study that considers communication processes and their effects when applied to software development in a globally distributed development process. The importance of communication and coordination in software development is widely studied and organizational communication studies these implications at an organizational level. This also applies to a setting where teams and team members work in separate physical locations. The imposed distance introduces new challenges in communication, which is no longer a face to face process, and may also be subjected to other constraints such as teams in opposing time zones with a small overlap in working hours.

References

  1. Miranda, H.; Pinto, A.; Rodrigues, L. (2001). "Appia, a flexible protocol kernel supporting multiple coordinated channels". Proceedings 21st International Conference on Distributed Computing Systems. pp. 707–710. CiteSeerX   10.1.1.29.3130 . doi:10.1109/ICDSC.2001.919005. ISBN   978-0-7695-1077-4. S2CID   9822899.
  2. Mena, S.; Cuvellier, X.; Gregoire, C.; Schiper, A. (2003). "Appia vs. Cactus: Comparing protocol composition frameworks". 22nd International Symposium on Reliable Distributed Systems, 2003. Proceedings. pp. 189–198. CiteSeerX   10.1.1.10.4065 . doi:10.1109/RELDIS.2003.1238068. ISBN   978-0-7695-1955-5. S2CID   15488717.
  3. Rodrigues, J.; Miranda, H.; Ventura, J.; Rodrigues, L. (2001). "The design of RT-Appia". Proceedings Sixth International Workshop on Object-Oriented Real-Time Dependable Systems. pp. 261–268. doi:10.1109/WORDS.2001.945139. ISBN   978-0-7695-1068-2. S2CID   525072.