SmartFrog

Last updated
SmartFrog
Smartfrog.svg
Developer(s) HP Labs in Bristol, England
Initial releaseJanuary 24, 2004;18 years ago (2004-01-24)
Stable release
3.18.016 / March 13, 2012;10 years ago (2012-03-13)
Repository sourceforge.net/projects/smartfrog/
Written in Java
Platform Linux, Microsoft Windows XP SP2, Microsoft Windows Vista, HP-UX, Mac OS/X
Type Configuration management, Framework
License Apache License 2.0
Website www.smartfrog.org

SmartFrog (Smart Framework for Object Groups) is a Java based open-source framework for helping host large-scale applications across component-based distributed system. It is proposed to make the design, configuration, deployment and management of distributed systems easier, correct and automatic. SmartFrog mainly consists of three aspects: SmartFrog Language, a runtime system, and a library of SmartFrog components that implement the SmartFrog component model. [1]

Contents

History

SmartFrog was originally developed in Hewlett-Packard's European Research Labs. It has been used in HP research on infrastructure automation and service automation as well as in a variety of HP products. [2] SmartFrog became open to public in January 2004 under GNU Lesser General Public License (LGPL) licence hosted on SourceForge. As a result, users and developers outside the lab can also make their contributions by using, extending the framework or reporting bugs. [3] In 2017, following Hewlett-Packard's corporate split into HP Inc. and Hewlett Packard Enterprise, whilst under Hewlett Packard Enterprise's ownership, SmartFrog was relicensed under the Apache License 2.0. [4]

Technologies

SmartFrog Language

SmartFrog Language is a configuration description language used for describing component collections and system configurations, such as which software components belong to the system, what the configuration parameters are, how the components are bound to other components in the system, and in what sequence the components work.

Component model

In SmartFrog, component is the most important and basic part. A system is considered to be a collection of applications, each of which are composed by a collection of components. Every component is written in a SmartFrog file in Java, which represents the existence and default attributes of components.

Runtime system

The runtime system interprets the descriptions written in SmartFrog Language and manages the components based on the interpretation results. It also provides users with tools to interact with components.

Features

As a framework

Instead of a package or library, SmartFrog is a framework, a building block to help build software systems. SmartFrog can be extended by adding new components into the framework, which means it has much wider applicability and could acquire new functionality. [5]

Template mechanism

In SmartFrog, every component is defined as a template. Typically for every new service, new components are created and activated. However, some general purpose components can be reused in different service. For the template mechanism, system configuration is easy to adapt to different requirements and the default configuration can be kept. Prototyping also allows keeping all the transformation and history of configurations of the system. Using SmartFrog to build large-scale distributed system, one can reuse some components and does not need to completely rewrite the whole application. Users can easily write or create simple SmartFrog components to install, uninstall, configure, start, and stop the system using the configuration description notation. [5]

Cross-client model

There are many software system similar to SmartFrog, but few of them uses the same model as what is used in SmartFrog. The largest category of systems is based on client-server model, where the configuration data for all clients are held in a server and each client is designed to match the configuration data stored in the server. However, in SmartFrog, cross-client model is used so that each client is treated as an independent entity. This provides SmartFrog with the ability to coordinate across large range of nodes, carry out autonomic actions and result in higher scalability. [6]

Security

SmartFrog has two running modes: secure and insecure. [7] In insecure mode, there is no restriction on client connection to SmartFrog, and the plain-text communication can be eavesdropped and intercepted. In this mode, the system is vulnerable to malign attacks.

SmartFrog needs to protect against malign deployment or other management action. In secure mode, SmartFrog uses public key infrastructure (PKI) system. Only clients that are certificated by specified certificate authority (CA) can connect to the SmartFrog Daemon. In addition, SmartFrog signs all components and descriptions with a certificate and only the signed ones can be deployed. Communications are encrypted using Transport Layer Security (TLS) protocols. [8]

The GridWeaver Project

The GridWeaver project started at 2002 and lasted a year. The project collaborators were the School of Informatics of Edinburgh University, HP Laboratories, and Edinburgh Parallel Computing Centre (EPCC).This project was aimed to find solutions to the problems of automating the configuration and management of the next generation of Grid computing fabrics. [9]

The project compared SmartFrog and Local ConFiGuration system (LCFG) in terms of strengths and weaknesses, as well as investigating how these tools are utilized to solve problems.

SFJS

SFJS is a configuration language, runtime and component library developed by Configured Things, a company co-founded by Patrick Goldsack, one of the SmartFrog project's lead authors. SFJS is a spiritual successor to SmartFrog, built on Node.js. [5] [10]

See also

Related Research Articles

Rational ClearCase is a family of computer software tools that supports software configuration management (SCM) of source code and other software development assets. It also supports design-data management of electronic design artifacts, thus enabling hardware and software co-development. ClearCase includes revision control and forms the basis for configuration management at large and medium-sized businesses, accommodating projects with hundreds or thousands of developers. It is developed by IBM.

NewWave

NewWave is a discontinued object-oriented graphical desktop environment and office productivity tool for PCs running early versions of Microsoft Windows. It was developed by Hewlett-Packard and introduced commercially in 1988. It was used on the HP Vectras and other IBM compatible PCs running Windows.

A bug tracking system or defect tracking system is a software application that keeps track of reported software bugs in software development projects. It may be regarded as a type of issue tracking system.

In computing, the Distributed Computing Environment (DCE) software system was developed in the early 1990s from the work of the Open Software Foundation (OSF), a consortium that included Apollo Computer, IBM, Digital Equipment Corporation, and others. The DCE supplies a framework and a toolkit for developing client/server applications. The framework includes:

Diskless node

A diskless node is a workstation or personal computer without disk drives, which employs network booting to load its operating system from a server.

Quattor is a generic open-source tool-kit used to install, configure, and manage computers. Quattor was originally developed in the framework of European Data Grid project (2001-2004). Since its first release in 2003, Quattor has been maintained and extended by a volunteer community of users and developers, primarily from the community of grid system administrators. The Quattor tool-kit, like other configuration management systems, reduces the manpower required to maintain a cluster and facilitates reliable change management. However, three unique features make it particularly attractive for managing grid resources:

HP 2640

The HP 2640A and other HP 264X models were block-mode "smart" and intelligent ASCII standard serial terminals produced by Hewlett-Packard using the Intel 8008 and 8080 microprocessors.

Jornada (PDA)

The Jornada was a line of personal digital assistants or PDAs manufactured by Hewlett-Packard. The Jornada was a broad product line that included Palm-Size PCs, Handheld PCs, and Pocket PCs. The first model was the 820, released in 1998, and the last was the 928 model in 2002 when Compaq and HP merged. The Jornada line was then succeeded by the more popular iPAQ model PDAs. All Jornada models ran Microsoft Operating Systems that were based on Windows CE.


This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator.

ProLiant Line of computer servers from Hewlett Packard Enterprise

ProLiant is a brand of server computers that was originally developed and marketed by Compaq and currently marketed by Hewlett Packard Enterprise. After Compaq merged with Hewlett-Packard (HP), HP retired its NetServer brand in favor of the ProLiant brand. HP ProLiant systems led the x86 server market in terms of units and revenue during first quarter of 2010. The HP ProLiant servers offer many advanced server features such as redundant power supplies, Out-of-band management with iLO or Lights-out 100, Hot-swap components and up to 8-Socket systems.

Microsoft Application Virtualization is an application virtualization and application streaming solution from Microsoft. It was originally developed by Softricity, a company based in Boston, Massachusetts, acquired by Microsoft on July 17, 2006. App-V represents Microsoft's entry to the application virtualization market, alongside their other virtualization technologies such as Hyper-V, Microsoft User Environment Virtualization (UE-V), Remote Desktop Services, and System Center Virtual Machine Manager.

This page is a comparison of notable remote desktop software available for various platforms.

Puppet (software) Open source configuration management software

In computing, Puppet is a software configuration management tool which includes its own declarative language to describe system configuration. It is a model-driven solution that requires limited programming knowledge to use.

Eucalyptus is a paid and open-source computer software for building Amazon Web Services (AWS)-compatible private and hybrid cloud computing environments, originally developed by the company Eucalyptus Systems. Eucalyptus is an acronym for Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems. Eucalyptus enables pooling compute, storage, and network resources that can be dynamically scaled up or down as application workloads change. Mårten Mickos was the CEO of Eucalyptus. In September 2014, Eucalyptus was acquired by Hewlett-Packard and then maintained by DXC Technology. After DXC stopped developing the product in late 2017, AppScale Systems forked the code and started supporting Eucalyptus customers.

The Application Interface Specification (AIS) is a collection of open specifications that define the application programming interfaces (APIs) for high-availability application computer software. It is developed and published by the Service Availability Forum and made freely available. Besides reducing the complexity of high-availability applications and shortening development time, the specifications intended to ease the portability of applications between different middleware implementations and to admit third party developers to a field that was highly proprietary in the past.

Radia Client Automation software is an end-user device lifecycle management tool for automating routine client-management tasks such as operating system deployments and upgrades, patch management, application software deployment, application use monitoring, security, compliance, and remote system management.

HP Open Extensibility Platform , developed by Hewlett-Packard Co., is an enterprise software development platform that consists of three unique layers. 1) HP OXPd, the device layer, enables document workflow applications, 2) HP OXPm, the management layer, exposes functionality for management software like HP Web Jetadmin, and 3) HP OXPw, the workflow layer, embeds web services technology into software like the HP Universal Printer Driver. The device layer, or HP OXPd, provides a software development kit (SDK) for creating document workflow applications based on standard web service protocols. Document workflow applications are value-added software applications designed specifically to increase user productivity while interacting with multifunction printers ("MFPs").

HP Universal Print Driver (UPD) is an intelligent print driver that supports a broad range of HP LaserJet printers and MFPs. Developed by Hewlett-Packard, it combines a general purpose driver and HP proprietary extensions. HP UPD simplifies driver deployment and management. This advanced print driver has the ability to discover HP printing devices and automatically configure itself to the device capabilities.

OpenLMI provides a common management infrastructure for Linux systems. Available operations include configuration of various operating system parameters and services, hardware components configuration, and monitoring of system resources. Services provided by OpenLMI can be accessed both locally and remotely, using multiple programming languages and standardized APIs.

References

  1. Goldsack, Patrick; Guijarro, Julio; Lain, Antonio; Mecheneau, Guillaume; Murray, Paul; Toft, Peter (2003). "SmartFrog: Configuration and Automatic Ignition of Distributed Applications": 1–9. CiteSeerX   10.1.1.187.8478 .{{cite journal}}: Cite journal requires |journal= (help)
  2. "SourceForge project page".
  3. "HP Labs SmartFrog project page". Archived from the original on 2019-02-20.
  4. "SmartFrog / SVN / Commit [r8898]". Sourceforge. 2017-05-16.
  5. 1 2 3 "SmartFrog official website". smartfrog.org.
  6. Goldsack, Patrick; Guijarro, Julio; Loughran, Steve; Coles, Alistair; Farrell, Andrew; Lain, Antonio; Murray, Paul; Toft, Peter (2009). "The Smart Frog configuration management framework". ACM SIGOPS Operating Systems Review. 43: 16–25. doi:10.1145/1496909.1496915. S2CID   11693395.
  7. "SmartFrog security". Archived from the original on 2015-03-28.
  8. "SmartFrog User Manual". Archived from the original on 2019-02-20.
  9. "GridWeaver Project". Archived from the original on 2016-09-23.
  10. "The SmartFrog Project". Configured Things. Retrieved 25 April 2022.