Введение
Стандарт ISO 10303-22 является частью методов реализации STEP с официальным названием Стандартный интерфейс доступа к данным, или просто SDAI. SDAI определяет абстрактный интерфейс программирования приложений (API) для работы с данными приложений в соответствии с моделями данных, определенными в EXPRESS. Сам SDAI определяется независимо от конкретного языка программирования. Существуют языковые привязки для:
Части 23 – Языковая привязка C++ для стандартного интерфейса доступа к данным.
Части 24 – Языковая привязка C для стандартного интерфейса доступа к данным.
Части 27 – Языковая привязка Java для стандартного интерфейса доступа к данным с расширениями для Интернета/Интранета.
Разработка языковых привязок для FORTRAN и языка определения интерфейсов (IDL) CORBA была прекращена. Первоначальной целью SDAI и его привязок к языкам программирования была обеспечение переносимости программных приложений между различными реализациями. Однако от этой идеи вскоре отказались, поскольку существовало лишь несколько коммерческих реализаций, которые значительно различались по своим детальным API. Сегодня термин SDAI иногда используется для обозначения различных типов API, поддерживающих STEP, даже если они лишь частично соответствуют строгой функциональности, определенной в ISO 10303-22 и его методах реализации, или не соответствуют ей вовсе. Часть 35 STEP (Абстрактные методы тестирования реализаций SDAI) предоставляет формальный способ подтверждения соответствия реализации SDAI. Основные компоненты SDAI:
Схема словаря SDAI – метауровневая схема EXPRESS для описания схем EXPRESS.
Управление объектами.
SDAI-сеанс – для управления всей средой SDAI для одного пользователя/потока, включая необязательный контроль транзакций.
SDAI-репозиторий – физический (как правило) контейнер для хранения моделей SDAI и экземпляров схем, например, базы данных.
SDAI-модель – подразделение SDAI-репозитория, содержащее экземпляры сущностей в соответствии с конкретной схемой EXPRESS.
Экземпляр схемы – логическая группировка одной или нескольких SDAI-моделей, формирующая допустимый набор данных в соответствии с конкретной схемой EXPRESS.
Операции:
для работы с управляющими объектами;
для создания, удаления и изменения данных приложений (экземпляров сущностей, значений атрибутов, агрегатов и их членов);
для проверки данных приложений на соответствие всем ограничениям и правилам, указанным в EXPRESS.
ISO 10303 22 is a part of the implementation methods of STEP with the official title Standard data access interface or simply SDAI. SDAI defines an abstract Application Programming Interface (API) to work on application data according to a given data models defined in EXPRESS. SDAI itself is defined independent of a particular programming language. Language bindings exist for
Part 23 C++ language binding of the standard data access interface
Part 24 C binding of the standard data access interface
Part 27 Java binding to the standard data access interface with Internet/Intranet extensions
The development of language bindings for FORTRAN and the interface definition language (IDL) of CORBA were canceled. The original intent of SDAI and its bindings to programming languages was to achieve portability of software applications from one implementation to another. This was soon abandoned because there were only a few commercial implementations and they differed significantly in their detailed APIs. Today the term SDAI is sometimes used for many types of APIs supporting STEP, even if they only partially follow the strict functionality as defined in ISO 10303 22 and its implementation methods, or not at all. Part 35 of STEP (Abstract test methods for SDAI implementations) provides a formal way how to prove the conformance of an implementation with SDAI. The main components of SDAI are:
SDAI dictionary schema, a meta level EXPRESS schema to describe EXPRESS schemas
Managing objects
SDAI session to control the whole SDAI environment for a single user/thread including optional transaction control
SDAI repository the physical (typically) container to store SDAI models and Schema instances, e. g. a database
SDAI model a subdivision of an SDAI repository, containing entity instance according to a particular EXPRESS schema
Schema instance a logical grouping of one or several SDAI models, making up a valid population according to a particular EXPRESS schema
Operations
to deal with the managing objects
to create, delete and modify application data (entity instance, attribute values, aggregates and their members)
to validate application data according to all the constraints and rules specified in EXPRESS
Реализации SDAI с открытым исходным кодом
Библиотека классов NIST STEP является реализацией в общественном достоянии стандартов ISO 10303-21 (файлы обмена данными в формате ASCII), ISO 10303-22 (SDAI) и ISO 10303-23 (C++ привязка SDAI) с использованием ISO 10303-11:1994. Разработка библиотеки классов NIST STEP была прекращена в конце 1990-х годов. STEPcode (ранее известная как STEP Class Library) была улучшена разработчиками BRL CAD на github под лицензией BSD. STEPcode также имеет экспериментальную привязку Python. JSDAI является полной реализацией стандартов ISO 10303-22 (SDAI) и ISO 10303-27 (Java привязка SDAI) под лицензией AGPL с открытым исходным кодом.