Service Modeling Language
# Service Modeling Language

Die Service Modeling Language (SML) ist ein durch führende IT-Unternehmen geschaffener Standard, um Informationen über IT-Systeme technisch einheitlich im XML-Format zu beschreiben. Diese so maschinell lesbaren Systembeschreibungen sollen dann ebenso einheitlich und konsistent durch unterschiedlichste Systemmanagement-Werkzeuge und IT Service Provider erfasst, bearbeitet, verändert und benutzt werden, um beispielsweise diese IT-Ressourcen zu verwalten.

## Überblick

Wie unter [1] beschrieben, bietet SML selbst keine Definition von IT-Infrastruktur, sondern ist eine Metasprache. Die oben beschriebenen Darstellungsmöglichkeiten der IT-Systeme sollen mit Hilfe der Common Model Library (CML) möglich sein. Diese soll verschiedene Implementationen von SML beinhalten, die verschiedene IT-Systeme modellieren. Zu beachten ist, dass der Name CML noch zu definieren ist [2].
SML ist eine Sprache, die gemeinschaftlich von den IT-Unternehmen BEA, BMC, Cisco, Dell, EMC, HP, IBM, Intel, Microsoft und Sun in einem Entwurf für eine Spezifikation vorgeschlagen worden ist.
Am 21. März 2007 wurde SML vom W3C aufgenommen und wird dort nun einem Standardisierungsverfahren unterzogen. SML basiert auf Arbeiten, die Microsoft vor dreieinhalb Jahren im Zuge der Entwicklung seines System Definition Models (SDM) begonnen hatte, das wiederum ein Teil ihres Systemmanagement-Frameworks Dynamic Systems Initiative ist.
Um Einschränkungen für ein XML-Dokument zu definieren, die über die Möglichkeiten von XML Schema hinausgehen, benutzt SML die Datenstruktur-Beschreibungssprache Schematron. Schematron-Regeln werden hierbei als XML-Attribute oder als 'xs:appinfo'-Elemente zu dem üblichen XML Schema angefügt.

### Features

SML bietet folgende Features[1]:
* Ein Profil von XML Schema 1.0
* Schematron zum Definieren von Beschränkungen
* Einen Mechanismus, um diese Beschränkungen an Typen und Elemente zu binden
* Inter-Dokument-Referenzen ("Links")
* deref: eine XPath-1.0-Erweiterung, um diese Links in XPath ausdrücken zu können
* sml:key-, sml:unique- und sml:keyref-Elemente zum Definieren von (eindeutigen) Schlüsseln
Die einzige Funktion von SML ist die Validierung von SML-Dokumenten. Die Validierung überprüft gegebene XML-Dateien, die sogenannten Instanzen, gegenüber einem oder mehreren SML-Schemata, das Modell der Instanz. Das Modell ist demnach ein Zusammenschluss von verschiedenen Dateien, die untereinander referenziert werden.

### SML-Interchange-Format

Zusätzlich zum SML-Standard wurde zeitgleich der Standard des Service Modeling Language Interchange Format, kurz SML-IF, dem W3C abgegeben. Dieses ist zum Austausch von SML-Modellen zwischen verschiedenen Systemen gedacht. Der hervorstechende Unterschied zu SML ist hierbei, dass das Modell gebündelt in einer Datei geliefert wird. Die einzelnen Teilmodelle werden hierbei wiederum als SML-Dokumente eingegliedert.

## Quellen

* http://blogs.technet.com/pratul/archive/2006/08/16/447257.aspx
* http://blogs.technet.com/servicedesk/archive/2007/03/26/cmdb-modeling-the-it-environment.aspx