Перейти до вмісту

Meta-Object Facility

Матеріал з Вікіпедії — вільної енциклопедії.
Чотири шари Meta-Object Facility, від метаметамоделі M3 до конкретних об’єктів M0

Meta-Object Facility (MOF) — стандарт Object Management Group для керованої моделями інженерії. Він задає систему типів для сутностей архітектури CORBA і набір інтерфейсів, якими ці типи створюють і змінюють. MOF застосовують і в предметно-орієнтованому проєктуванні, і в об’єктно-орієнтованому моделюванні[1].

Стандарт не слід плутати з Managed Object Format, який Distributed Management Task Force описує в розділі 6 специфікації інфраструктури Common Information Model версії 2.5.0. Скорочення в обох випадках збігається, але це різні документи[2].

Чотири шари

[ред. | ред. код]

MOF з’явився як система типів для CORBA: набір схем, що фіксують будову, сенс і поведінку об’єктів, і набір інтерфейсів CORBA, через які ці схеми створюють, зберігають і змінюють. Відповідний запит OMG датовано 2 травня 1996 року[3].

Архітектура має чотири шари. Верхній шар M3 — метаметамодель, тобто мова, якою MOF будує метамоделі шару M2. Найвідоміший приклад моделі M2 — метамодель UML, опис самої UML. Моделі M2 задають елементи шару M1: це вже конкретні моделі, написані, наприклад, мовою UML. Шар M0, або шар даних, описує об’єкти предметної області.

Окрім самої метаметамоделі, MOF визначає операції створення й зміни моделей через інтерфейси CORBA. Через подібність M3 до структурних моделей UML метамоделі MOF зазвичай креслять як діаграми класів UML. Класи MOF (MOF::Classes) не тотожні класам UML (UML::Classes): перші слугують, щоб оголосити поняття на меташарі. Ними описують і об’єктно-орієнтовані метамоделі, як-от UML, і необ’єктні, наприклад мережу Петрі або метамодель вебслужби.

Замкнена метамодель

[ред. | ред. код]

MOF є замкненою архітектурою метамоделювання: модель M3 відповідає сама собі, тож MOF можна описати мовою MOF. Водночас архітектура сувора: кожен елемент моделі на кожному шарі має відповідний елемент шару вище. Стандарт фіксує лише структуру, тобто абстрактний синтаксис мови або даних. Для метамоделей він відіграє ту саму роль, що розширена нотація Бекуса — Наура для граматик мов програмування, і сам є предметно-орієнтованою мовою визначення метамоделей.

Специфікація ядра версії 2.4.1 розрізняє два рівні відповідності: EMOF (Essential MOF) і CMOF (Complete MOF)[1].

Обмін і супутні специфікації

[ред. | ред. код]

Перетворення моделей MOF шарів M3, M2 і M1 на XML і XML Schema задає XMI (ISO/IEC 19503), обмінний формат на основі XML[1]. Для Java відображення метаданих описує Java Metadata Interface (JMI), прийнятий через Java Community Process[1]. Окремо специфікація полегшує автоматичну генерацію інтерфейсів CORBA IDL[1].

Споріднені тексти OMG не входять до ядра MOF, але спираються на нього. Object Constraint Language — формальна мова обмежень моделей у термінах логіки предикатів. QVT задає засоби запиту, перегляду й перетворення моделей на основі MOF[4]. Модель Ecore у Eclipse Modeling Framework орієнтована на EMOF. Розширення Kermeta додає до метамоделей EMOF виконувані дії, щоб разом зі структурою предметно-орієнтованої мови описати її операційну семантику й отримати інтерпретатор.

JMI також визначає програмний інтерфейс Java для роботи з моделями MOF.

Міжнародні стандарти

[ред. | ред. код]

Ядро MOF видане і як міжнародний стандарт:

  • MOF 2.4.2 — ISO/IEC 19508:2014, Information technology — Object Management Group Meta Object Facility (MOF) Core;
  • MOF 1.4 — ISO/IEC 19502:2005, Information technology — Meta Object Facility (MOF).

Примітки

[ред. | ред. код]
  1. 1 2 3 4 5 OMG Meta Object Facility (MOF) Core Specification, Version 2.4.1. Object Management Group (англ.). Процитовано 16 жовтня 2026.
  2. ↑ Common Information Model (CIM) Infrastructure, version 2.5.0 (PDF). DMTF (англ.). Процитовано 16 жовтня 2026.
  3. ↑ Common Facilities RFP-5: Meta-Object Facility (PDF) (англ.). Object Management Group. 2 травня 1996. Процитовано 16 жовтня 2026.
  4. ↑ OMG's MetaObject Facility. Object Management Group (англ.). Процитовано 16 жовтня 2026.