Eclipse Modeling Framework ( EMF ) — это основанная на Eclipse платформа моделирования и средство генерации кода для создания инструментов и других приложений на основе структурированной модели данных .
Из спецификации модели, описанной в XML Metadata Interchange (XMI) , EMF предоставляет инструменты и поддержку во время выполнения для создания набора классов Java для модели, набора классов адаптеров, которые позволяют просматривать и редактировать модель на основе команд, а также базовую редактор. Модели можно указывать с помощью аннотированных документов Java , UML , XML или инструментов моделирования, а затем импортировать в EMF. Самое главное, что EMF обеспечивает основу для взаимодействия с другими инструментами и приложениями на основе EMF.
Ecore — это основная (мета)модель, лежащая в основе EMF. Он позволяет выражать другие модели, используя свои конструкции. Ecore также является собственной метамоделью (т.е. Ecore определяется в терминах самого себя).
По словам Эда Меркса, руководителя проекта EMF, «Ecore является де-факто эталонной реализацией EMOF компании OMG » (Essential Meta-Object Facility). Тем не менее, по словам Меркса, EMOF фактически был определен OMG как упрощенная версия более комплексного C'MOF, основанная на опыте успешного упрощения исходной реализации Ecore. [2]
Использование Ecore в качестве базовой метамодели позволяет разработчику модели воспользоваться преимуществами всей экосистемы и инструментов EMF, поскольку тогда становится достаточно легко сопоставить модели уровня приложения обратно в Ecore. Это не означает, что для приложений лучше всего напрямую использовать Ecore в качестве своей метамодели; скорее, они могли бы рассмотреть возможность создания своих собственных метамоделей на основе Ecore.