Difference between revisions of "SME Server:Documentation:Developers Manual:Chapter1/de"

From SME Server
Jump to navigationJump to search
 
(14 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
==Für wen ist dieses Handbuch?==
 
==Für wen ist dieses Handbuch?==
  
This manual is aimed at developers and provides the information they require to integrate their applications into the SME Server platform. The manual discusses the key concepts of the SME Server such as the configuration database, configuration file templates and the events and actions model which differentiate the SME Server from other Linux distributions.
+
Dieses Handbuch ist Entwicklern gewidmet und stellt Informationen zur Integration von Anwendungen in die SME Server Plattform bereit. Das Handbuch beschreibt Schlüsselkonzepte des SME Servers wie die Konfigurations-Datenbank, Vorlagen für Konfigurationsdateien und das Modell der Actions und Events, das den SME Server deutlich von anderen Linux-Distributionen differenziert.
  
This manual is not a system administration or system tweaking guide for a particular release. Instead it provides examples of SME Server development best practice. This manual is also useful for SME Server system administrators to explain how the SME Server works "under the covers".
+
Dieses Handbuch ist keine Anleitung für Administratoren, um ein bestrimmtes Release schneller zu machen. Es stellt vielmehr einige Beispiele bereit und zeigt damit ''best practice'' Softwareentwicklung für den SME Server. Auch für Administratioren ist dieses Handbuch interessant, weil es erklärt, wie der SME Server ''unter der Haube'' funktioniert.
  
 
==Was ist der SME Server?==
 
==Was ist der SME Server?==
  
The SME Server is a software package that can be installed on a standard PC in less than thirty minutes, converting it into a complete, easy-to-use network server and firewall. The SME Server is based on the CentOS Linux server distribution, packaged in such a way that no knowledge of Linux is required to install or operate it. The CentOS packages are used unmodified, and configured automatically to emulate "best practice" from expert system administrators.
+
Der SME Server ist eine Softwarelösung, die auf einem Standard PC in weniger als 30 Minuten installiert werden kann und den PC damit in eine vollständige Netzwerkserver und Firewall-Lösung verwandelt. Der SME Server basiert auf der CentOS Linux Server Distribution und ist so erstellt, dass keine Linux-Kenntnisse zur Installation und Benutzung erforderlich sind. Softwarepakete von CentOS werden ohne Modifikationen verwendet und automatisch konfiguriert, um ''best practice services'' von Administrations-Experten zur Verfügung zu stellen.
  
The SME Server runs on commodity PC hardware, and supports a range of configurations and devices such as:
+
Der SME Server läuft auf einer breiten Palette von PC' und unterstützt eine ganze Reihe von Konfigurationen und Geräten wie
 +
*RAID Festplattenspiegelung
 +
*Viele verschiedene Netzwerkkarten
 +
*Backup auf Bandlaufwerken
 +
*Drucker am Parallel-Port, USB oder Netzanschluss
 +
*Viele verschiedene Optionen zur Verbindung mit dem Internet, einschließlich Kabelmodem, DSL/PPPoE, statische IP-Adresse und Einwahlverbindungen
  
    *
+
Die Software für den SME Server ist mit dem RPM Package Manager (RPM) erstellt. Vorhandene Pakete von CentOS oder von Drittherstellern werden wenn immer möglich verwendet. Dabei wird für den SME Server das Prinzip ''best of breed'' verwedet, um die besten Lösungen aus dem Open Source Umfeld zusammen zu nutzen. Der Server ist so designed, dass diese Pakete unmittelbar ersetzt werden können, wenn neue Versionen oder andere Alternativen erhältlich sind. Die aktuellen SW-Pakete sind:
  
      RAID disk mirroring
+
{| {{Tabelle}}
    *
+
| colspan="2" align="left" bgcolor="#ABCDEF" | '''SME Server SW-Pakete'''
 
+
|-
      Wide variety of network cards
+
|Webserver
    *
+
|Apache
 
+
|-
      Tape backup
+
|Mailserver
    *
+
|qmail
 
+
|-
      Parallel port, USB or network printers
+
|DNS-Server
    *
+
|djbdns und dnscache
 
+
|-
      A variety of Internet connectivity options, including cablemodem, DSL/PPPoE, static IP and dialup
+
|FTP-Server
 
+
|ProFTPd
Software for the SME Server is packaged using RPM Package Manager (RPM) system. Existing packages from CentOS and other third-party developers are used, wherever posssible. The SME Server uses the "best of breed" packages from the open source community. The design of the system allows for easy replacement of the packages if better choices become available. The current packages in use are:
+
|-
 
+
|Windows Dateiserver
Table 3-1. SME Server software
+
|Samba
Feature Software
+
|-
Web server Apache
+
|Macintosh Dateiserver
Mail server qmail
+
|Netatalk
DNS server djbdns and dnscache
+
|-
FTP server ProFTPd
+
|Fern-Administration
Windows file sharing Samba
+
|SSH, PPTP, HTTP über SSL
Macintosh file sharing Netatalk
+
|-
Remote administration SSH, PPTP, HTTP over SSL
+
|Band-Backup
Tape backups Flexbackup
+
|Flexbackup
Webmail Horde IMP
+
|-
 +
|Webmail
 +
|Horde IMP
 +
|}
  
 
==Design-Philosophie==
 
==Design-Philosophie==
 
 
 
 
 
+
Perfektion ist nicht dann erreicht, wenn etwas hinzugefügt werden kann, sondern wenn nichts mehr entfernt werden kann.
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
 
 
 
 
 
 
--Antoine de Saint-Exupéry  
 
--Antoine de Saint-Exupéry  
  
The SME Server automates the best practices of a skilled systems administrator, providing a simple interface for the users and consistent, modular extensibility for the developers.
+
Der SME Server automatisiert ''best practices'' von erfahrenen Systemadministratoren mit einem einfachen Web-Frontend für die Benutzer, das gleichzeitig für Entwickler modular erweiterbar ist.
Principle 1: Automating best practice
 
  
A good systems administrator knows what tasks must be done, either regularly or occasionally, to manage an Internet-connected server. Some tasks, such as backups and ensuring system security, are regular and ongoing. Other tasks, such as setting up file sharing or adding a new user, are only performed from time to time. In each case a good system administrator will not only know how to do the task itself, but also how to do it in a secure, maintainable, extensible and efficient manner, in accordance with current industry best practice.
+
===Prinzip 1: Automatisierung===
  
However, not every server has a dedicated, experienced system administrator. This is especially the case in small businesses, where there may be no IT staff at all. Therefore, the goal of the SME Server is to automate the activities performed by a good sysadmin, from simple tasks such as adding users right through to backups and other complex activities, to the point where they can be easily performed by someone with little or no technical knowledge of the system.
+
Ein guter Systemadministrator weiß, welche Aufgaben regelmäßig und gelegentlich erledigt werden müssen, um einen Server zu administrieren, der ständig mit dem Internet verbunden ist. Einige Aufgaben, wie z.B. Sicherungen oder Systemsicherheit sind regelmäßig durchzuführen. Andere Aufgaben, wie z.B. die Einrichtung gemeinsamer Laufwerke oder das Hinzufügen neuer Benutzer müssen nur gelegentlich durchgeführt werden. In jedem Fall weiß ein guter Systemadministrator nicht nur, wie diese Aufgaben durchgeführt werden, sondern auch, wie diese sicher, dauerhaft und effizient erledigt werden: eben als Industrie Standard im Sinne von ''best practices''.
Principle 2: Simplicity
 
  
The SME Server is characterized by its tight focus on providing network server functions. For the end-user, the SME Server provides simple, extensible web-based management. For developers, the SME Server provides clean, consistent, extensible interfaces to allow features to be added and modified.
+
Leider gibt es nicht für jeden Server einen gut ausgebildeten, erfahrenen Systemadministrator. Das ist besonders in Kleinunternehmen der Fall, in denen meistens nur wenig IT-Mitarbeiter vorhanden sind. Deshalb ist es das Ziel des SME Servers, die Aufgaben eines Systemadministrators möglichst gut zu automatisieren. Vom einfachen Hinzufügen eines Benutzers, über Durchführen von Sicherungen und anderer komplexer Aufgaben, all dies muss auch von jemanden erledigt werden können, der keine oder nur wenige Systemkenntnisse besitzt.
  
Some Linux distributions are aimed at desktop users, general purpose server applications, or "enterprise" server applications. The SME Server is different in that it is targeted towards providing network server functionality for small to medium enterprises. Because of this, the SME Server is much smaller than many other Linux distributions, as software packages which are not needed for this purpose (for example, the X window system) are not included in the distribution.
+
===Prinzip 2: Vereinfachung===
  
The SME Server is also simple for a non-technical person to manage. For an end-user administering the server, choices are kept to a minimum. If a decision is very likely to be the same for all small businesses, the answer is assumed and the end user is not required to make a choice. When decisions are required, they are phrased in terms independent of the underlying technology, so that end-users are not required to be intimately familiar with Linux or Linux applications.
+
Charakteristisch für den SME Server ist der Fokus auf die Bereitstellung von Netzwerkserver-Funktionen. Der End-Benutzer kann den Server über ein einfaches und erweiterbares Web-Frontend steuern. Der Entwickler hat mit dem SME Server klare, gleichbleibende und erweiterbare Schnittstellen, an denen Erweiterungen hinzugefügt oder geändert werden können.
  
For developers, the simplicity is in the architecture of the SME Server system. Features are layered in such a way that additional features can be added without affecting the current services, and often without requiring modifications to the user interface.
+
Linux-Distributionen sind häufig auf bestimmte Anwendungen ausgerichtet, wie z.B Desktop, spezielle Serveranwendungen oder ''Enterprise'' Serveranwendungen. Der SME Server unterscheidet sich hiervon dadurch, dass Netzwerkserver-Funktionen für kleine und mittlere Firmen (Small and Medium Enterprises = SME) bereitgestellt werden. Durch diese klare Ausrichtung ist die SME Server Distribution deutlich kleiner als viele andere Linux Distributionen, weil z.B. kein X-Window-System enthalten ist.
Principle 3: Extensibility
 
  
SME Server's third design goal is extensibility, which provides a balance to the simplicity previously described. Since the simplest possible server will not suit every need, we make it easy to customize and extend the server in a number of ways.
+
Außerdem ist der SME Server auch für Nicht-Techniker geeignet. Die Auswahlmöglichkeiten sind für den End-Benutzer, der den Server administriert, auf ein Minimum beschränkt. Einstellungen, die viele Kleinunternehmen benötigen, sind bereits voreingestellt. Die Einstellmöglichkeiten, für die Entscheidungen zu treffen sind, sind möglichst unabhängig vom technischen Hintergrund formuliert und daher auch ohne spezielle Linux-Kenntnisse verständlich.
  
Firstly, interfaces are provided for experienced users to customize the system from the Linux command line. These include tools to manipulate the configuration database, trigger events, or modify the configuration files for the various software installed on the system.
+
Für Entwickler bietet die Architektur des SME Servers besondere Einfachheit. Die Funktionen sind so gebaut, dass Erweiterungen hinzugefügt werden können, ohne vorhandene Dienste ändern zu müssen. Oft muss noch nicht einmal das Web-Frontend geändert werden.
  
Secondly, applications allows developers to create additional software modules which can be easily installed and configured by end-users. Applications may provide application software for the server's users, administration tools, network services, or any other type of software or data.
+
===Prinzip 3: Erweiterbarkeit===
  
The SME Server architecture explicitly supports developers by making it easy to drop software into place and remove it without needing to modify existing files. For instance, a web application does not need to edit the web server configuration file, but can simply drop a template fragment into the appropriate directory on the system and be assured that it will be expanded into the configuration file as required.
+
Zum Ausgleich der Vereinfachung steht das dritte Design-Prinzip, die Erweiterbarkeit des SME Servers. Weil ein ganz einfacher Server natürlich nicht alle gewünschten Funktionen bereitstellt, ist der SME Server so gebaut, dass er einfach auf verschiedene Arten geändert und erweitert werden kann.
Principle 4: Reliability
 
  
The SME Server is designed to run without intervention 24 hours per day, seven days a week. This reliability has been designed from the ground up: stable, well supported versions of the Linux kernel and applications, RAID disk mirroring, automatic firewall, and process supervision. Where applications have been shown to be insecure or unreliable, we use stable, secure replacements. The modular architecture allows this to be done without affecting the system administrator's view of the system and with only localised effect on the developer's view.
+
Für erfahrene Linux-Kenner kann der Server über die SME Server Shell geändert werden. Dazu stehen Tools zur Änderung der Konfigurations-Datenbank, Actions und Events oder auch Vorlagen für Konfigurationsdateien bereit.
  
==Architektur Überblick==
+
Im SME Server enthaltene kleine Systemtools erlauben Entwicklern, Erweiterungen als Softwaremodule bereitzustellen, die durch Endbenutzer einfach zu installieren und konfigurieren sind.
  
The SME Server consists of a simplified CentOS installation, together with a number of server applications, and a layer of software that manages those server applications. The management software presents users with a simplified user interface and automatically configures the server applications as necessary.
+
Die Architektur des SME Servers unterstützt Entwickler insbesondere auch dadurch, dass Software einfach hinzugefügt werden kann, ohne vorhandene Konfigurationsdateien ändern zu müssen. Beispielsweise muss für eine Web-Anwendung nicht die Konfiguration des Webservers angepasst werden. Es genügt, eine Konfigurationsvorlagendatei zu erzeugen, an passender Stelle auf dem Server zu speichern und anschließend in die Serverkonfiguration generieren zu lassen.
  
The applications are not recompiled or modified to work within the SME Server framework. Rather, the framework automates the tasks of an experienced system administrator, and configures each application in a sensible, standard way.
+
===Prinzip 4: Zuverlässigkeit===
  
The SME Server framework has four components:
+
Der SME Server ist für den unterbrechungsfreien Betrieb an 24 Stunden am Tag und 7 Tagen in der Woche gebaut. Diese Zuverlässigkeit ist Prinzip von Grund auf: stabile, gut unterstützte Versionen von Linux-Kernel und Anwendungen, RAID-Festplattenspiegelung, automatische Firewall und Prozessüberwachung. Sollten Anwendungen unsicher oder unzuverlässig werden, sind diese durch stabile und sichere Alternativen zu ersetzen, was durch die modulare Architektur des SME Servers so gut unterstützt wird, dass Administratoraufgaben dabei nicht gestört werden.
  
    *
+
==Architektur Überblick==
 
 
      server-manager and console user interfaces
 
    *
 
  
      configuration databases
+
Der SME Server besteht aus einer vereinfachten CentOS-Installation, bei der eine Reihe von Serveranwendungen mit einer eigenen Software zur Administration der Serveranwendungen kombiniert werden. Die Software zur Administration des Servers präsentiert sich den Endbenutzern als einfaches Web-Frontend und konfiguriert die Serveranwendungen soweit wie möglich automatisch.
    *
 
  
      template system, used to generate configuration files
+
Die Serveranwendungen werden für den Einsatz im SME Server nicht neu kompiliert oder abgeändert. Einzig das Framework zur Administration automatisiert die Aufgaben eines erfahrenen Sytemadministrators und konfiguriert jede einzelne Anwendung in standardisierter Art.
    *
 
  
      events and actions
+
Das SME Server Framwork besteht aus 4 Komponenten:
 +
*Server-Manager und Serverkonsole als Schnittstellen zur Benutzereingabe
 +
*Konfigurations-Datenbanken
 +
*Konfigurationsvorlagen (Template System), um Konfigurationsdateien zu generieren
 +
*Events und Actions
  
When a user configures an aspect of the server through one of the user interfaces, the SME Server automatically configures the server applications relevant to that change. The SME Server does so using these steps:
+
Nach Eingaben im Server-Manager oder in der Serverkonsole konfiguriert der SME Server automatisch die Parameter der betreffenden Serveranwendung. Dabei läuft die Konfiguration in folgenden Schritten ab:
  
    *
 
  
      The user interface changes values in the configuration database. This database (actually a collection of databases) contains parameters describing the state of the system (IP address assignments, policy settings, domain names, email server configuration, user accounts, and so on). The user interface does not perform the application reconfiguration, but instead signals an event to perform the changes.
+
'''Eingabe im Server-Manager oder in der Serverkonsole'''
    *
 
  
      The event relevant to the changes being made to the configuration database is signalled. For example, changes related to email configuration might signal the "email-update" event. These events are collections of scripts and an event can be extended to perform additional functions by adding scripts to the event directory. The actions for an event are run in a defined order to produce the desired system state.
+
Über die Benutzereingabe im Server-Manager oder in der Serverkonsole werden Einträge in der Konfigurations-Datenbank geändert. Diese Datenbank, die aktuell eigentlich eine Zusammenstellung mehrerer Datenbanken ist, enthält viele Parameter zur Beschreibung des Systemzustands (IP-Adresse, Domänenname, E-Mail-Konfiguration, Benutzerkonten, etc.). Über die Benutzerschnittstelle wird die Serveranwendung nicht direkt rekonfiguriert, wohl aber der Aufruf von Actions und Events, um gewünschte Änderungen zu rekonfigurieren.
    *
 
  
      The actions within the event ensure that the configuration files used by the server applications are configured correctly. This is done by combining "templates" for the configuration file with the values in the configuration database.
 
    *
 
  
      The actions then inform the applications that their configuration has been changed and that the application should re-read the file, or restart, as appropriate.
+
'''Auslösen des zugehörigen Events'''
  
Figure 5-1. SME Server Architecture
+
Um gewünschte Änderungen in der Konfigurations-Datenbank zu aktivieren, wird ein passendes Event ausgelöst. Beispielsweise erfolgt nach allen Änderungen an der E-Mail-Konfiguration das Event ''email-update''. Events sind eigentlich eine gezielte Skript-Zusammenstellung, die durch Hinzufügen von Funktionen auch noch erweitert werden können. Die Actions für ein Event laufen in vordefinierter Reihenfolge ab, um den gewünschten Systemstatus zu erzielen.
  
So, to recap: here are the steps performed when a system parameter is changed in the user interface (the same steps are used both for the console and for the web-based manager):
 
  
    *
+
'''Ablauf von Actions zu einem Event'''
  
      The user interface code modifies the settings in the configuration databases to specify the new system configuration.
+
Die zu einem Event gehörenden Actions stellen sicher, das die von den Serveranwendungen verwendeten Konfigurationsdateien richtig konfiguriert werden. Das wird dadurch erreicht, dass Vorlagen für die Konfigurationsdateien (Templates) mit den gewünschten Parametern aus der Konfigurations-Datenbank kombiniert werden.
    *
 
  
      The user interface code signals an event to inform the system that the configuration has changed.
 
    *
 
  
      The event triggers a sequence of actions.
+
'''Serveranwendung wird aktualisiert'''
    *
 
  
      The actions process a set of templates in order to generate new configuration files based on the current settings and reconfigure services where necessary.
+
Über die Actions erhält die betroffene Serveranwendung eine aktualisierte Konfiguration, die dann neu eingelesen wird und meistens zum Restart der Serveranwendung führt.

Latest revision as of 19:18, 20 May 2007


height=48px SME Server Handbücher

Administration
Benutzer
Entwickler

height=48px Zusätzliche Dokumentation

Technikerhandbuch
Häufig gestellte Fragen
HowTo-Anleitungen

height=48px Erweiterungen
Individuelle SME Server Erweiterungen

Kapitel 1: Der SME Server im Überblick

Über dieses Handbuch

Mitel hat diese Dokumentation erstellt, um Entwicklung auf der Plattform des SME Servers zu ermöglichen. Diese Dokumentation, die darin enthaltenen Code-Beispiele und der SME Server selbst sind unter open source Lizenz veröffentlicht.

Für wen ist dieses Handbuch?

Dieses Handbuch ist Entwicklern gewidmet und stellt Informationen zur Integration von Anwendungen in die SME Server Plattform bereit. Das Handbuch beschreibt Schlüsselkonzepte des SME Servers wie die Konfigurations-Datenbank, Vorlagen für Konfigurationsdateien und das Modell der Actions und Events, das den SME Server deutlich von anderen Linux-Distributionen differenziert.

Dieses Handbuch ist keine Anleitung für Administratoren, um ein bestrimmtes Release schneller zu machen. Es stellt vielmehr einige Beispiele bereit und zeigt damit best practice Softwareentwicklung für den SME Server. Auch für Administratioren ist dieses Handbuch interessant, weil es erklärt, wie der SME Server unter der Haube funktioniert.

Was ist der SME Server?

Der SME Server ist eine Softwarelösung, die auf einem Standard PC in weniger als 30 Minuten installiert werden kann und den PC damit in eine vollständige Netzwerkserver und Firewall-Lösung verwandelt. Der SME Server basiert auf der CentOS Linux Server Distribution und ist so erstellt, dass keine Linux-Kenntnisse zur Installation und Benutzung erforderlich sind. Softwarepakete von CentOS werden ohne Modifikationen verwendet und automatisch konfiguriert, um best practice services von Administrations-Experten zur Verfügung zu stellen.

Der SME Server läuft auf einer breiten Palette von PC' und unterstützt eine ganze Reihe von Konfigurationen und Geräten wie

  • RAID Festplattenspiegelung
  • Viele verschiedene Netzwerkkarten
  • Backup auf Bandlaufwerken
  • Drucker am Parallel-Port, USB oder Netzanschluss
  • Viele verschiedene Optionen zur Verbindung mit dem Internet, einschließlich Kabelmodem, DSL/PPPoE, statische IP-Adresse und Einwahlverbindungen

Die Software für den SME Server ist mit dem RPM Package Manager (RPM) erstellt. Vorhandene Pakete von CentOS oder von Drittherstellern werden wenn immer möglich verwendet. Dabei wird für den SME Server das Prinzip best of breed verwedet, um die besten Lösungen aus dem Open Source Umfeld zusammen zu nutzen. Der Server ist so designed, dass diese Pakete unmittelbar ersetzt werden können, wenn neue Versionen oder andere Alternativen erhältlich sind. Die aktuellen SW-Pakete sind:

SME Server SW-Pakete
Webserver Apache
Mailserver qmail
DNS-Server djbdns und dnscache
FTP-Server ProFTPd
Windows Dateiserver Samba
Macintosh Dateiserver Netatalk
Fern-Administration SSH, PPTP, HTTP über SSL
Band-Backup Flexbackup
Webmail Horde IMP

Design-Philosophie

Perfektion ist nicht dann erreicht, wenn etwas hinzugefügt werden kann, sondern wenn nichts mehr entfernt werden kann.

--Antoine de Saint-Exupéry

Der SME Server automatisiert best practices von erfahrenen Systemadministratoren mit einem einfachen Web-Frontend für die Benutzer, das gleichzeitig für Entwickler modular erweiterbar ist.

Prinzip 1: Automatisierung

Ein guter Systemadministrator weiß, welche Aufgaben regelmäßig und gelegentlich erledigt werden müssen, um einen Server zu administrieren, der ständig mit dem Internet verbunden ist. Einige Aufgaben, wie z.B. Sicherungen oder Systemsicherheit sind regelmäßig durchzuführen. Andere Aufgaben, wie z.B. die Einrichtung gemeinsamer Laufwerke oder das Hinzufügen neuer Benutzer müssen nur gelegentlich durchgeführt werden. In jedem Fall weiß ein guter Systemadministrator nicht nur, wie diese Aufgaben durchgeführt werden, sondern auch, wie diese sicher, dauerhaft und effizient erledigt werden: eben als Industrie Standard im Sinne von best practices.

Leider gibt es nicht für jeden Server einen gut ausgebildeten, erfahrenen Systemadministrator. Das ist besonders in Kleinunternehmen der Fall, in denen meistens nur wenig IT-Mitarbeiter vorhanden sind. Deshalb ist es das Ziel des SME Servers, die Aufgaben eines Systemadministrators möglichst gut zu automatisieren. Vom einfachen Hinzufügen eines Benutzers, über Durchführen von Sicherungen und anderer komplexer Aufgaben, all dies muss auch von jemanden erledigt werden können, der keine oder nur wenige Systemkenntnisse besitzt.

Prinzip 2: Vereinfachung

Charakteristisch für den SME Server ist der Fokus auf die Bereitstellung von Netzwerkserver-Funktionen. Der End-Benutzer kann den Server über ein einfaches und erweiterbares Web-Frontend steuern. Der Entwickler hat mit dem SME Server klare, gleichbleibende und erweiterbare Schnittstellen, an denen Erweiterungen hinzugefügt oder geändert werden können.

Linux-Distributionen sind häufig auf bestimmte Anwendungen ausgerichtet, wie z.B Desktop, spezielle Serveranwendungen oder Enterprise Serveranwendungen. Der SME Server unterscheidet sich hiervon dadurch, dass Netzwerkserver-Funktionen für kleine und mittlere Firmen (Small and Medium Enterprises = SME) bereitgestellt werden. Durch diese klare Ausrichtung ist die SME Server Distribution deutlich kleiner als viele andere Linux Distributionen, weil z.B. kein X-Window-System enthalten ist.

Außerdem ist der SME Server auch für Nicht-Techniker geeignet. Die Auswahlmöglichkeiten sind für den End-Benutzer, der den Server administriert, auf ein Minimum beschränkt. Einstellungen, die viele Kleinunternehmen benötigen, sind bereits voreingestellt. Die Einstellmöglichkeiten, für die Entscheidungen zu treffen sind, sind möglichst unabhängig vom technischen Hintergrund formuliert und daher auch ohne spezielle Linux-Kenntnisse verständlich.

Für Entwickler bietet die Architektur des SME Servers besondere Einfachheit. Die Funktionen sind so gebaut, dass Erweiterungen hinzugefügt werden können, ohne vorhandene Dienste ändern zu müssen. Oft muss noch nicht einmal das Web-Frontend geändert werden.

Prinzip 3: Erweiterbarkeit

Zum Ausgleich der Vereinfachung steht das dritte Design-Prinzip, die Erweiterbarkeit des SME Servers. Weil ein ganz einfacher Server natürlich nicht alle gewünschten Funktionen bereitstellt, ist der SME Server so gebaut, dass er einfach auf verschiedene Arten geändert und erweitert werden kann.

Für erfahrene Linux-Kenner kann der Server über die SME Server Shell geändert werden. Dazu stehen Tools zur Änderung der Konfigurations-Datenbank, Actions und Events oder auch Vorlagen für Konfigurationsdateien bereit.

Im SME Server enthaltene kleine Systemtools erlauben Entwicklern, Erweiterungen als Softwaremodule bereitzustellen, die durch Endbenutzer einfach zu installieren und konfigurieren sind.

Die Architektur des SME Servers unterstützt Entwickler insbesondere auch dadurch, dass Software einfach hinzugefügt werden kann, ohne vorhandene Konfigurationsdateien ändern zu müssen. Beispielsweise muss für eine Web-Anwendung nicht die Konfiguration des Webservers angepasst werden. Es genügt, eine Konfigurationsvorlagendatei zu erzeugen, an passender Stelle auf dem Server zu speichern und anschließend in die Serverkonfiguration generieren zu lassen.

Prinzip 4: Zuverlässigkeit

Der SME Server ist für den unterbrechungsfreien Betrieb an 24 Stunden am Tag und 7 Tagen in der Woche gebaut. Diese Zuverlässigkeit ist Prinzip von Grund auf: stabile, gut unterstützte Versionen von Linux-Kernel und Anwendungen, RAID-Festplattenspiegelung, automatische Firewall und Prozessüberwachung. Sollten Anwendungen unsicher oder unzuverlässig werden, sind diese durch stabile und sichere Alternativen zu ersetzen, was durch die modulare Architektur des SME Servers so gut unterstützt wird, dass Administratoraufgaben dabei nicht gestört werden.

Architektur Überblick

Der SME Server besteht aus einer vereinfachten CentOS-Installation, bei der eine Reihe von Serveranwendungen mit einer eigenen Software zur Administration der Serveranwendungen kombiniert werden. Die Software zur Administration des Servers präsentiert sich den Endbenutzern als einfaches Web-Frontend und konfiguriert die Serveranwendungen soweit wie möglich automatisch.

Die Serveranwendungen werden für den Einsatz im SME Server nicht neu kompiliert oder abgeändert. Einzig das Framework zur Administration automatisiert die Aufgaben eines erfahrenen Sytemadministrators und konfiguriert jede einzelne Anwendung in standardisierter Art.

Das SME Server Framwork besteht aus 4 Komponenten:

  • Server-Manager und Serverkonsole als Schnittstellen zur Benutzereingabe
  • Konfigurations-Datenbanken
  • Konfigurationsvorlagen (Template System), um Konfigurationsdateien zu generieren
  • Events und Actions

Nach Eingaben im Server-Manager oder in der Serverkonsole konfiguriert der SME Server automatisch die Parameter der betreffenden Serveranwendung. Dabei läuft die Konfiguration in folgenden Schritten ab:


Eingabe im Server-Manager oder in der Serverkonsole

Über die Benutzereingabe im Server-Manager oder in der Serverkonsole werden Einträge in der Konfigurations-Datenbank geändert. Diese Datenbank, die aktuell eigentlich eine Zusammenstellung mehrerer Datenbanken ist, enthält viele Parameter zur Beschreibung des Systemzustands (IP-Adresse, Domänenname, E-Mail-Konfiguration, Benutzerkonten, etc.). Über die Benutzerschnittstelle wird die Serveranwendung nicht direkt rekonfiguriert, wohl aber der Aufruf von Actions und Events, um gewünschte Änderungen zu rekonfigurieren.


Auslösen des zugehörigen Events

Um gewünschte Änderungen in der Konfigurations-Datenbank zu aktivieren, wird ein passendes Event ausgelöst. Beispielsweise erfolgt nach allen Änderungen an der E-Mail-Konfiguration das Event email-update. Events sind eigentlich eine gezielte Skript-Zusammenstellung, die durch Hinzufügen von Funktionen auch noch erweitert werden können. Die Actions für ein Event laufen in vordefinierter Reihenfolge ab, um den gewünschten Systemstatus zu erzielen.


Ablauf von Actions zu einem Event

Die zu einem Event gehörenden Actions stellen sicher, das die von den Serveranwendungen verwendeten Konfigurationsdateien richtig konfiguriert werden. Das wird dadurch erreicht, dass Vorlagen für die Konfigurationsdateien (Templates) mit den gewünschten Parametern aus der Konfigurations-Datenbank kombiniert werden.


Serveranwendung wird aktualisiert

Über die Actions erhält die betroffene Serveranwendung eine aktualisierte Konfiguration, die dann neu eingelesen wird und meistens zum Restart der Serveranwendung führt.