Babel Middleware

Last updated
Babel
Developer(s) LLNL
Stable release
2.0.0 / January 2012;12 years ago (2012-01)
Operating system cross-platform
Type middleware
License LGPL
Website computation.llnl.gov/casc/components/

Babel is an open source middleware system serving the scientific computing community. As a language interoperability tool, Babel enables the arbitrary mixing of software libraries written in C/C++, Fortran, Python, and Java. [1] [2] As a distributed computing platform, Babel provides a language-neutral Remote Method Invocation (RMI) scheme similar to Java's RMI which allows third-party plug-ins to specify custom data encodings and network protocols. [3]

How it works

Babel requires developers to use an interface description language to specify the platform and language neutral interface to code. Babel uses a custom dialect called SIDL (Scientific Interface Definition Language), which has adaptations specific to computational science and engineering applications. The Babel tool parses the SIDL specification to generate source code which provides the glue between programming languages.

Babel works on all known POSIX and Unix variants, including Linux, Mac OS X, AIX, IRIX, Solaris, Tru64, Cray's XT4, IBM's Blue Gene, and many commodity clusters. Babel does not require special compiler or linker technology and works with GNU, Intel, IBM, PathScale, PGI, and many other compilers. Babel is distributed under an LGPL license.

Impact

Babel won an R&D 100 Award in 2006. [4] [5] It has been used in diverse computational applications such as accelerator beam dynamics, cell biology, chemistry, climate, electron effects, fusion, geomagnetics, materials, nuclear power plants, radio astronomy, and subsurface transport as well as infrastructure such as frameworks, meshing, solvers, sparse linear algebra, and sourcecode refactoring. [6] Babel is also redistributed with some customer applications, the CCA framework, and Debian Linux.

History

Babel was started as an internal research project on software components at Lawrence Livermore National Laboratory in 1999. The first public (alpha) release of Babel was in 2001. Also in 2001 it secured funding from SciDAC (Scientific Discovery Through Advanced Computing) along with its collaborators in the CCA Forum (Common Component Architecture Forum).

Community

Babel development and maintenance is currently funded by United States Department of Energy, but relies heavily on an open source community. Contributors hail from Sandia National Laboratories, Argonne National Laboratory, Oak Ridge National Laboratory, Tech-X Corp, MIT, University of Utah, and more. The Babel development team maintain open software repositories, mailing lists, and issue trackers.

See also

Related Research Articles

In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space, which is written as if it were a normal (local) procedure call, without the programmer explicitly writing the details for the remote interaction. That is, the programmer writes essentially the same code whether the subroutine is local to the executing program, or remote. This is a form of client–server interaction, typically implemented via a request–response message passing system. In the object-oriented programming paradigm, RPCs are represented by remote method invocation (RMI). The RPC model implies a level of location transparency, namely that calling procedures are largely the same whether they are local or remote, but usually, they are not identical, so local calls can be distinguished from remote calls. Remote calls are usually orders of magnitude slower and less reliable than local calls, so distinguishing them is important.

The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between systems on different operating systems, programming languages, and computing hardware. CORBA uses an object-oriented model although the systems that use the CORBA do not have to be object-oriented. CORBA is an example of the distributed object paradigm.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A computing platform, digital platform, or software platform is an environment in which software is executed. It may be the hardware or the operating system (OS), a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed using the services provided by the platform. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

<span class="mw-page-title-main">Inter-process communication</span> How computer operating systems enable data sharing

In computer science, inter-process communication (IPC), also spelled interprocess communication, are the mechanisms provided by an operating system for processes to manage shared data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing.

In distributed computing, an object request broker (ORB) is a concept of a middleware, which allows program calls to be made from one computer to another via a computer network, providing location transparency through remote procedure calls. ORBs promote interoperability of distributed object systems, enabling such systems to be built by piecing together objects from different vendors, while different parts communicate with each other via the ORB. Common Object Request Broker Architecture standardizes the way ORB may be implemented.

<span class="mw-page-title-main">Delphi (software)</span> General-purpose programming language and a software product

Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.

freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.

<span class="mw-page-title-main">Apache Axis</span> Web service framework

Apache Axis is an open-source, XML based Web service framework. It consists of a Java and a C++ implementation of the SOAP server, and various utilities and APIs for generating and deploying Web service applications. Using Apache Axis, developers can create interoperable, distributed computing applications. Axis development takes place under the auspices of the Apache Software Foundation.

The Service Availability Forum is a consortium that develops, publishes, educates on and promotes open specifications for carrier-grade and mission-critical systems. Formed in 2001, it promotes development and deployment of commercial off-the-shelf (COTS) technology.

This is an alphabetical list of articles pertaining specifically to software engineering.

<span class="mw-page-title-main">Java (software platform)</span> Set of computer software and specifications

Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

<span class="mw-page-title-main">VisIt</span>

VisIt is an open-source interactive parallel visualization and graphical analysis tool designed for viewing scientific data. It can visualize scalar and vector fields on 2D and 3D structured and unstructured meshes. VisIt was created to handle data sets ranging from terascale sizes to smaller kilobyte ranges.

The first version of the Enterprise Collaboration Architecture (ECA) has been published by the Object Management Group (OMG) in 2001. The vision of the (ECA) is to simplify the development of component based and services oriented systems by providing a modeling framework aligned with the model-driven architecture (MDA) of the Object Management Group (OMG).

<span class="mw-page-title-main">API</span> Software interface between computer programs

An application programming interface (API) is a way for two or more computer programs or components to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation. Whereas a system's user interface dictates how its end-users interact with the system in question, its API dictates how to write code that takes advantage of that system's capabilities.

Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

References

  1. Babel Users' Guide
  2. Epperly, Thomas GW; Kumfert, Gary; Dahlgren, Tamara; Ebner, Dietmar; Leek, Jim; Prantl, Adrian; Kohn, Scott (2011). "High-performance language interoperability for scientific computing through Babel". The International Journal of High Performance Computing Applications. 26 (3): 260–274. doi:10.1177/1094342011414036.
  3. Babel RMI paper at IPDPS '07
  4. R&D 100 Award Archive [ permanent dead link ]
  5. "LLNL Public Affairs Archive". Archived from the original on 2010-05-28. Retrieved 2008-08-17.
  6. CCA Impact paper at SciDAC 06