FIXME

Brudnopis

XML Metadata Interchange (XMI)

XML Metadata Interchange (XMI) to standard dla wymiany metadanych przy użyciu XMLa.

XMI może być używany dla jakichkolwiek metadanych, których metamodel da się wyrazić w specyfikacji MOF. Metamodel jest zapisywany w postaci XML Document Type Definitions (DTD), zaś model jest zapisywany w XMI zgodnie z regułami określonymi w specyfikacji mapowania XMI (XMI Mapping Specification).

Najczęściej XMI jest używany jako format zapisu i wymiany modeli UMLa pomiędzy różnymi narzędziami (jest to możliwe, gdyż UML jest oficjalnie zdefiniowany w metamodelu UML zgodnym z MOF).

XMI może zostać użyty także do zapisu aplikacji (np. Java, C++), komponentów (np. EJB), baz danych (np. CWM).

XMI może definiować: [za: 1]

  • reprezentację obiektów i atrybutów,
  • powiązania między obiektami (w tym samym pliku lub międzyplikowe),
  • referencje do innych obiektów poprzez wykorzystanie identyfikatorów,
  • wersjonowanie obiektów i ich definicji,
  • walidację dokumentów XMI przy pomocy DTD i XML Schema.
Należy podkreślić, że w obecnej postaci służy zapisowi modelu, a nie diagramów,
gdyż nie determinuje postaci wizualnej wykraczającej poza formalną treść modelu. [ 2 ]

Uproszczony przykład reprezentacji klasy

Uproszczony przykład reprezentacji klasy zapisanej przy pomocy XMLa: [schemat za: 3]

Klasa w XMI

Reprezentacja powyższej klasy w XMI wygenerowana przy użyciu StarUML:

<?xml version = "1.0" encoding = "UTF-8"?>
<XMI xmi.version = "1.1" xmlns:UML="href://org.omg/UML/1.3">
<XMI.content>
    <UML:Model xmi.id="UMLModel" name="Design Model">
        <UML:Class xmi.id="UMLClass" name="Osoba" visibility="public" namespace="UMLModel">
          <UML:Classifier.feature>
            <UML:Attribute xmi.id="UMLAttribute.6" name="imie" owner="UMLClass"/>
            <UML:Attribute xmi.id="UMLAttribute.7" name="nazwisko" owner="UMLClass"/>
            <UML:Attribute xmi.id="UMLAttribute.8" name="pesel" owner="UMLClass"/>
          </UML:Classifier.feature>
        </UML:Class>
    </UML:Model>
</XMI.content>
</XMI>

Przykład dwóch klas powiązanych asocjacją

2klasyZAsocjacja

Przykład dokumentu XMI dla dwóch klas powiązanych asocjacją z zaznaczonymi rolami i licznością (dokument wygenerowany przy użyciu StarUML):

<?xml version = "1.0" encoding = "UTF-8"?>
<XMI xmi.version = "1.1" xmlns:UML="href://org.omg/UML/1.3">
<XMI.header>
  <XMI.metamodel xmi.name = "UML" xmi.version = "1.3"/>
</XMI.header>
<XMI.content>
<UML:Model xmi.id="UMLProject.1">
  <UML:Namespace.ownedElement>
    <UML:Package xmi.id="UMLPackage.2" name="Package1" namespace="UMLProject.1">
      <UML:Namespace.ownedElement>
 
        <UML:Class xmi.id="UMLClass.3" name="Firma" 
                   namespace="UMLPackage.2" participant="UMLAssociationEnd.6"/>
        <UML:Class xmi.id="UMLClass.4" name="Osoba" 
                   namespace="UMLPackage.2" participant="UMLAssociationEnd.7"/>
 
        <UML:Association xmi.id="UMLAssociation.5" name="" namespace="UMLPackage.2">
          <UML:Association.connection>
 
            <UML:AssociationEnd xmi.id="UMLAssociationEnd.6"
                                name="pracodawca" aggregation="none" targetScope="instance"
                                visibility="public" ordering="unordered" isNavigable="true"
                                association="UMLAssociation.5" type="UMLClass.3">
              <UML:AssociationEnd.multiplicity>
                <UML:Multiplicity xmi.id="X.8">
                  <UML:Multiplicity.range>
                    <UML:MultiplicityRange xmi.id="X.9" lower="1" upper="-1"
                                           multiplicity="X.8"/>
                  </UML:Multiplicity.range>
                </UML:Multiplicity>
              </UML:AssociationEnd.multiplicity>
            </UML:AssociationEnd>
 
            <UML:AssociationEnd xmi.id="UMLAssociationEnd.7"
                                name="pracownik" aggregation="none" targetScope="instance"
                                visibility="public" ordering="unordered" isNavigable="true"
                                association="UMLAssociation.5" type="UMLClass.4">
              <UML:AssociationEnd.multiplicity>
                <UML:Multiplicity xmi.id="X.10">
                  <UML:Multiplicity.range>
                    <UML:MultiplicityRange xmi.id="X.11" lower="-1" upper="-1" 
                                           multiplicity="X.10"/>
                  </UML:Multiplicity.range>
                </UML:Multiplicity>
              </UML:AssociationEnd.multiplicity>
            </UML:AssociationEnd>
 
          </UML:Association.connection>
        </UML:Association>
 
      </UML:Namespace.ownedElement>
    </UML:Package>
  </UML:Namespace.ownedElement>
</UML:Model>
</XMI.content>
</XMI>

XMI jest ogólnoświatowym standardem zdefiniowanym normą:
ISO/IEC 19503:2005 Information technology -- XML Metadata Interchange (XMI).

Źródła

MetaObject Facility (MOF)

MetaObject Facility (MOF) to specyfikacja definiująca zasady opisu języka modelowania (tzw. metamodel) dla wszystkich specyfikacji tworzonych przez Object Management Group (OMG). MOF sprawia, że wywodzące się z niej specyfikacje są kompatybilne ze sobą. Definiuje również standard przechowywania metamodeli oraz modeli.

Poniższy diagram ukazuje relacje między modelem, metamodelem, a językiem [za 2]:

Metamodel, model a język


MOF umożliwia budowanie własnych języków modelowania specyficznych dla wybranej kategorii
zastosowań lub definiowanie rozszerzeń do istniejących języków modelowania. Ponieważ zarówno
same rozszerzenia, jak i ewentualne nowe języki są zgodne ze specyfikacją MOF, dlatego też stają się
automatycznie dostępne do dalszego wykorzystania w systemach współpracujących z repozytorium modeli MOF. [ 3 ]

Czterowarstwowa architektura metadanych

Specyfikacja MOF została zaprojektowana jako najwyższa warstwa w hierarchii metamodeli OMG. Hierarchia ta posiada 4 warstwy:

  • M3 - warstwa meta-metamodelu,
  • M2 - warstwa metamodelu,
  • M1 - warstwa modelu,
  • M0 - warstwa informacyjna.

Każda warstwa reprezentuje różne poziomy danych lub meta danych.

Warstwa w hierarchii: Co zawiera warstwa: Przykłady: [za 3]
M3 specyfikacja języka modelowania (metamodelu) Meta-Object Facility (MOF)
M2 model metadanych (specyfikacja języka) specyfikacja SQL, specyfikacja UML, specyfikacja XML
M1 metadane, czyli opis formatu i znaczenia danych schemat bazy danych, model klas, definicja dokumentu XML (DTD)
M0 rzeczywiste dane, które chcemy opisać dane w bazie danych, instancje obiektów, dokument XML

Przykład hierarchii dla książki [stworzony na podstawie przykładu z niemieckiej wikipedii: 4]:

Przykład hierarchii warstw dla obiektu książki


Najwyższą warstwą, znajdującą się na najwyższym poziomie abstrakcji tej architektury, jest model specyfikacji języka modelowania MOF, czyli meta-metamodel.

Na tym poziomie można stworzyć repozytorium opisu języków modelowania.
Repozytorium to umożliwia systemom wzajemne poznanie struktur i semantyk w celu nawiązania
współpracy. Jeśli podczas modelowania systemu, wykorzystano język modelowania, którego opis
umieszczono w repozytorium, wówczas inny system może poznać sposób opisu tego modelu, a co za
tym idzie odczytać sam model w celu rozpoczęcia współdziałania.

Celem istnienia repozytorium MOF jest zapewnienie systemom możliwości odkrycia i manipulowania
metadanymi. Poprzez możliwość wymiany meta informacji uzyskuje się semantyczną wymianę danych,
co prowadzi do łatwiejszej integracji systemów. Powstają już rozwiązania pozwalające na realizację
dostępu, składowania i specyfikowania meta informacji. Jednym z nich jest Java API for Metadata (JMI). [ 3 ]

Specyfikacja MOF posługuje się także dodatkowymi technikami specyfikowania. Gdyby chcieć je umieścić na diagramie hierarchii, należałoby dodać nową (wirtualną) warstwę, zawierającą dodatkowe techniki specyfikacji. Poniższy rysunek [za: 2] pokazuje zależności między MOF, a dodatkowymi technikami specyfikowania:

Zależności między MOF, a dodatkowymi technikami specyfikowania

OMG zdefiniowało 2 warianty MOF:

  • podstawowy - Essential MOF (EMOF),
  • pełny - Complete MOF (CMOF).


MOF jest ogólnoświatowym standardem zdefiniowanym normą:
ISO/IEC 19502:2005 Information technology -- Meta Object Facility (MOF).

Źródła

pl/miw/miw08_umlandardxtt/notatki.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0