JSDAI Runtime Platform

JSDAI Runtime, an Application Programming Interface (API) to work on STEP data, is the center of JSDAI. Together with the results of the JSDAI Express Compiler it is able to deal with application data of every EXPRESS schema.

The JSDAI Runtime Environment implements the SDAI_dictionary_schema, the SDAI_ session_schema, and the SDAI operations as defined in ISO 10303-22 together with various extensions for part21 files, network access, mapping operations, event support and others.

Application schemas "xxx" are converted by the JSDAI Express Compiler into:

  • a population of the dictionary schema for late binding access. This allows working with arbitrary EXPRESS schemas at the runtime of an JSDAI application. It is a universal solution, but should only be used if this flexibly is really needed; e.g. in SdaiTerm example program.
  • a Java package jsdai.SXxx with Java interfaces and classes for early binding access. For this the express schema must be known at compile time. It allows more efficient application programming and is EXPRESS type safe because of more extensive checking during compilation. This is the default programming style for application programs.

Every EXPRESS schema is located in its own Java package:

Java package EXPRESS schema
jsdai.lang SDAI_session_schema
jsdai.dictionary SDAI_dictionary_schema
jsdai.Mapping SDAI_mapping_schema
jsdai.SXxx Application schema "Xxx" (AIM)
jsdai.MXxx Application schema "Xxx" (ARM)

Package jsdai.lang

The main purpose of this package it to manage populations of STEP data. Late and early binding entity and attribute access is simultaneously supported.

SdaiSession:

  • Initializing and terminating any SDAI activity
  • Transaction handling. start read-only, start read-write, commit, abort
  • Dynamic SdaiRepository handling
    • Creating new repositories
    • Finding and linking remote repositories on a network

SdaiRepository:

  • Physical container of SchemaInstance, SdaiModels and application instances
  • Persistent data storage on disk
  • Import of and Export to part21 file (Clear text Encoding of the exchange structure) according to ISO 10303-21 + Technical corrigendum + Amendment

SchemaInstance:

  • Is a logical collection of SdaiModels for a native Express schema_definition
  • Defining the domain of a valid population of an Express schema
  • Defining the domain for validation operations
  • Optionally covering SdaiModels of different underlying Express schemas as long as they are "domain equivalent", because they are interfaced in the main schema (short form)
  • Defining the domain where to search for inverse entity references

SdaiModel:

  • Grouping of entity instances, which belong to the same Express schema. Every entity instance belongs to exactly one SdaiModel.
  • Synchronizing of access rights (read-only, read-write), important for multiple user access

Package jsdai.dictionary

This package contains the meta information of EXPRESS schemas. This information is always present but only needed for late binding applications. On early binding applications this information only in rare cases. The main dictionary entities are:

  • schema_definition: Instances of this entity represent an EXPRESS schema
  • entity_definition: Instances of this entity represent an EXPRESS entity
  • attribute: Instance of this entity represent entity attributes. There are subtypes for explicit, derived and inverse attributes with detailed type information.

Other entities not shown in this diagram are defined_type, where_rule, global_rule, etc..

The structure of the dictionary schema follows very strictly the definition of the SDAI_dictionary_schema, with some additional extensions and modifications to support:

  • explicit EXPRESS short forms with USED FROM and REFERENCED FROM constructs
  • Support for Express Edition 2
    • extensible selects
    • extensible enumerations
    • sub-supertype constraints
    • generic datatype support
  • Express-X
    • View
    • Map

From JSDAI Version 3.0 on information about EXPRESS functions, expressions and constants is covered by the SDAI_dictionary_schema as well.