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: [[pl:miw:miw08_umlandardxtt:notatki#zrodla|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. [ [[pl:miw:miw08_umlandardxtt:notatki#zrodla|2]] ]
===== Uproszczony przykład reprezentacji klasy =====
Uproszczony przykład reprezentacji klasy zapisanej przy pomocy XMLa: [schemat za: [[pl:miw:miw08_umlandardxtt:notatki#zrodla|3]]]
{{http://student.agh.edu.pl/~kkluza/xmi/przyklad1.png|Klasa w XMI}}
Reprezentacja powyższej klasy w XMI wygenerowana przy użyciu StarUML:
===== Przykład dwóch klas powiązanych asocjacją =====
{{http://student.agh.edu.pl/~kkluza/xmi/przyklad2_asocjacja.png|2klasyZAsocjacja}}
Przykład dokumentu XMI dla dwóch klas powiązanych asocjacją z zaznaczonymi rolami i licznością
(dokument wygenerowany przy użyciu StarUML):
XMI jest ogólnoświatowym standardem zdefiniowanym normą: \\
[[http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=32622|ISO/IEC 19503:2005 Information technology -- XML Metadata Interchange (XMI)]].
=== Źródła ===
1. http://www.omg.org/docs/formal/03-05-02.pdf \\
2. http://www.zsk.ict.pwr.wroc.pl/zsk/repository/dydaktyka/wzsr/mda.pdf \\
3. http://www.openmdx.org/documents/introduction/htmlsingle/openMDX_Introduction.html#F-OMG-MDA-2 \\
====== 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 [[pl:miw:miw08_umlandardxtt:notatki#zrodla1|2]]]:
{{http://student.agh.edu.pl/~kkluza/xmi/metamodel_model_jezyk.png|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. [ [[pl:miw:miw08_umlandardxtt:notatki#zrodla1|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 [[pl:miw:miw08_umlandardxtt:notatki#zrodla1|3]]] ^
| {{http://student.agh.edu.pl/~kkluza/xmi/m3.png|M3}} | specyfikacja języka modelowania (metamodelu) | Meta-Object Facility (MOF) |
| {{http://student.agh.edu.pl/~kkluza/xmi/m2.png|M2}} | model metadanych (specyfikacja języka) | specyfikacja SQL, specyfikacja UML, specyfikacja XML |
| {{http://student.agh.edu.pl/~kkluza/xmi/m1.png|M1}} | metadane, czyli opis formatu i znaczenia danych | schemat bazy danych, model klas, definicja dokumentu XML (DTD) |
| {{http://student.agh.edu.pl/~kkluza/xmi/m0.png|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: [[pl:miw:miw08_umlandardxtt:notatki#zrodla1|4]]]:
{{http://student.agh.edu.pl/~kkluza/xmi/example4layer.png|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). [ [[pl:miw:miw08_umlandardxtt:notatki#zrodla1|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: [[pl:miw:miw08_umlandardxtt:notatki#zrodla|2]]] pokazuje zależności między MOF, a dodatkowymi technikami specyfikowania:
{{http://student.agh.edu.pl/~kkluza/xmi/MOFandOtherTechSpec.jpg|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ą: \\
[[http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=32621|ISO/IEC 19502:2005 Information technology -- Meta Object Facility (MOF)]].
=== Źródła ===
1. http://www.omg.org/mof/ \\
2. http://essay.utwente.nl/57286/1/scriptie_Overbeek.pdf \\
3. http://adlejman.w.interia.pl/mda.pdf \\
4. http://de.wikipedia.org/wiki/Meta_Object_Facility \\