System configuration

Last updated

A system configuration (SC) [1] in systems engineering defines the computers, processes, and devices that compose the system and its boundary. More generally, the system configuration is the specific definition of the elements that define and/or prescribe what a system is composed of.

Contents

Alternatively, the term "system configuration" can be used to relate to a model (declarative) for abstract generalized systems. In this sense, the usage of the configuration information is not tailored to any specific usage, but stands alone as a data set. A properly-configured system avoids resource-conflict problems, and makes it easier to upgrade a system with new equipment.

Sample configuration

The following is a basic SC XML System Configuration:

Description: This provides information about a single "site" (MyHouse) and specifies that there is one host with user-setup and mysql-db components. The host must have an account on it for a user named mysql, with appropriate parameters. Notice that the configuration schema requires no XML tags that are Windows- or UNIX-specific. It simply presents data as standalone information – with no pretense for how the data is to be used.

This is the hallmark for a good system configuration model.

Further extensions

The above model can be extended. For example, the user could have more attributes like "preferences" and "password". The components could depend on other components. Properties can be defined that are passed into sub-elements. The extensions can be endless (WATCHOUT: complexity) and must be managed and well-thought-out to prevent "breaking" the idea of the system configuration.

Usage

The usage for the model in practical terms falls into several categories: documentation, deployment & operations.

Documentation

One use of the configuration is to simply record what a system is. This documentation could in turn become quite extensive, thus complicating the data model. It is important to distinguish between configuration data and descriptive data. Of course comments can be applied at any level, even in most tools, however the bloating of the data can reduce its usefulness. For example, the system configuration is not a place to record historical changes, or descriptions of design and intent for the various elements. The configuration data is simply to be "what it is" or "what we want it to be".

Deployment

Deployment involves interpreting a configuration data set and acting on that data to realize the configure the system accordingly. This may simply be a validation of what's there to confirm that the configuration is in effect.

Examples include a Perl library launched from the command line to read the configuration and begin launching processes on the local or remote hosts to install components. Also while the system is running, there may be a SystemConfiguration service that provides an interface (i.e. CORBA IDL interfaces) for other system applications to use to access the configuration data, and perform deployment-like actions.

Operations

When the system is in operation, there may be uses for the configuration data by specific kinds of services in the system. For example, a Secnager may access the configuration to acquire the MD5 passwords for the user accounts that are allowed to log into hosts remotely. A system monitor service (see: system monitoring) may use the data to determine "what to monitor" and "how to monitor" the system elements. A PresentationManager might use the data to access menu-items and views based on user access privileges.

<system_configuration><sitename="MyHouse"><hosts><host_refname="host1"/></hosts></site><groupname="mysql"gid="500"/><username="mysql"uid="500"><groups><group_refname="mysql"/></groups></user><hostname="host1"><users><user_refname="mysql"></users><profiles><profile_refname="workstation"/></profiles></host><profilename="workstation"><components><component_refname="user-setup"><component_refname="mysql-db"></components></profile><componentname="user-setup"></component><componentname="mysql-db"></component></system_configuration>

Related Research Articles

<span class="mw-page-title-main">MySQL</span> SQL database engine software

MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behavior. Devices that typically support SNMP include cable modems, routers, network switches, servers, workstations, printers, and more.

<span class="mw-page-title-main">Data definition language</span> Syntax for defining data structures

In the context of SQL, data definition or data description language (DDL) is a syntax for creating and modifying database objects such as tables, indices, and users. DDL statements are similar to a computer programming language for defining data structures, especially database schemas. Common examples of DDL statements include CREATE, ALTER, and DROP. If you see a .ddl file, that means the file contains a statement to create a table. Oracle SQL Developer contains the ability to export from an ERD generated with Data Modeler to either a .sql file or a .ddl file.

FCAPS is the ISO Telecommunications Management Network model and framework for network management. FCAPS is an acronym for fault, configuration, accounting, performance, security, the management categories into which the ISO model defines network management tasks. In non-billing organizations accounting is sometimes replaced with administration.

In computing, a data source name is a string that has an associated data structure used to describe a connection to a data source. Most commonly used in connection with ODBC, DSNs also exist for JDBC and for other data access mechanisms. The term often overlaps with "connection string". Most systems do not make a distinction between DSNs or connection strings and the term can often be used interchangeably.

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 staff required to maintain a cluster and facilitates reliable change management. However, three unique features make it particularly attractive for managing grid resources:

Microsoft SQL Server Integration Services (SSIS) is a component of the Microsoft SQL Server database software that can be used to perform a broad range of data migration tasks.

Active Setup is a mechanism for executing commands once per user early during login. Active Setup is used by some Microsoft Windows operating system components like Internet Explorer to set up an initial configuration for new users logging on for the first time. Active Setup is also used in some corporations’ software distribution systems to create an initial customized user environment.


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.

mysqlBind/unxsBind is a DNS management software system. It supports Internet Systems Consortium BIND Domain Name System (DNS) and is distributed as open source software under the GNU General Public License.

Windows Vista contains a range of new technologies and features that are intended to help network administrators and power users better manage their systems. Notable changes include a complete replacement of both the Windows Setup and the Windows startup processes, completely rewritten deployment mechanisms, new diagnostic and health monitoring tools such as random access memory diagnostic program, support for per-application Remote Desktop sessions, a completely new Task Scheduler, and a range of new Group Policy settings covering many of the features new to Windows Vista. Subsystem for UNIX Applications, which provides a POSIX-compatible environment is also introduced.

The Keyword Services Platform (KSP) is a keyword research tool available through Microsoft adCenter, which contains a set of algorithms for providing information about keywords used in search engine queries.

The User State Migration Tool (USMT) is a command line utility program developed by Microsoft that allows users comfortable with scripting languages to transfer files and settings between Windows PCs. This task is also performed by Windows Easy Transfer, which was designed for general users but then discontinued with the release of Windows 10, where they instead partnered with Laplink. Starting with Windows 8, many settings and data are now being synchronized in cloud services via a Microsoft Account and OneDrive. USMT allows a high-volume, automated deployment of files and settings, and is also useful in migrating user settings and files during OS upgrades. Because USMT has high complexity and a command line interface, there have been several attempts to provide access to its useful functionality by creating GUI wrappers for it. 32-bit to 64-bit migrations are supported, but 64-bit to 32-bit are not.

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.

<span class="mw-page-title-main">Icinga</span> Monitoring software

Icinga is an open-source computer system and network monitoring application. It was created as a fork of the Nagios system monitoring application in 2009.

<span class="mw-page-title-main">Juju (software)</span> Open source service orchestration management tool

Juju is a free and open-source application modeling tool developed by Canonical Ltd. Juju is an application management system. It was built to reduce the operation overhead of software by facilitating, deploying, configuring, scaling, integrating, and performing operational tasks on public and private cloud services along with bare-metal servers and local container-based deployments.

In database management systems (DBMS), a prepared statement, parameterized statement, is a feature where the database pre-compiles SQL code and stores the results, separating it from data. Benefits of prepared statements are:

Checkmk is a software system developed in Python and C++ for IT Infrastructure monitoring. It is used for the monitoring of servers, applications, networks, cloud infrastructures, containers, storage, databases and environment sensors.

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.

<span class="mw-page-title-main">BOSH (software)</span>

BOSH is an open-source software project that offers a toolchain for release engineering, software deployment and application lifecycle management of large-scale distributed services. The toolchain is made up of a server and a command line tool. BOSH is typically used to package, deploy and manage cloud software. While BOSH was initially developed by VMware in 2010 to deploy Cloud Foundry PaaS, it can be used to deploy other software. BOSH is designed to manage the whole lifecycle of large distributed systems.

References

  1. "What is the difference between system configuration and system state?". stackoverflow.com. Retrieved 16 January 2025.