Menu

#2 Implementation of Meta Model

open
Open Topic (1)
5
2004-01-20
2004-01-20
Mike Pagel
No

To realize pluggable backend support (plug ecu architect
into your company's PDM system), the meta model
needs to be built as abstraction layer between the
application and the backend data.

One idea is to use virtual base classes for meta classes
that are then implemented for each backend system.
Basically, these base classes provide interfaces to set
and query attributes of meta classes.

Important: handling of containter objects. Like: a
structured class has many parts. How are those
returned to the querying user, how are they managed in
memory.

Suggestion: use wxWindows' container classes, namely
arrays and lists. Also use wxWindows reference counting
mechanisms to ensure minimal memory consumption.

Discussion

  • Mike Pagel

    Mike Pagel - 2004-02-01

    Logged In: YES
    user_id=880606

    Refinement on contrainer classes: to allow fast lookup by
    class name, we will use wxHashMap, an STL-like hashtable,
    with wxString as keytype (type name, needs to be unique
    within given scope) and the particular meta class as value
    type. wxHashMap provides an iterator to simply traverse the
    list.

     
  • Mike Pagel

    Mike Pagel - 2004-02-01

    Logged In: YES
    user_id=880606

    Refinement on database access: we need to support online
    and offline databases. This requires to model the API between
    application and DB as online, which can then always mapped
    to offline by an extra layer for full model serialization.

    What does online mean here?

    The object model of the application is simply a tree of handles
    to database objects. Retrieving information is implemented as
    direct queries on the database.

    ECUArchitect will define that handle (or "interface" for that
    matter) -based API, which can in turn be implemented for the
    various DB backends and file formats.

     

Log in to post a comment.

MongoDB Logo MongoDB