Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Date: June 18, 2010
Time: 09:00 - 10:00 am
Venue: Skype Conference Call
Topic: Extendable version of OpenMI 2

Participants:

Rob Knapen, Alterra, Wageningen UR (Rob.Knapen@wur.nl)
Standa Vanecek, DHI (s.vanecek@dhi.cz)
Adrian Harper, Wallingford Software (adrian.harper@wallingfordsoftware.com)
Stef Hummel, Deltares (stef.hummel@deltares.nl)
~don, Deltares (gennadii.donchyts@deltares.nl)
~jgr@dhigroup.com, DHI (jgr@dhigroup.com)

...

This is a discussion page on making the OpenMI 2 Standard more extendable, which was discussed during the Skype conference call. Decisions made during the meeting are marked as (thumbs up) or (thumbs down), with additional comments in italics where needed. You can find these (mostly) in the discussion section at the end of the page.

The general idea is to include a few base interfaces and separate the core OpenMI aspects from the time and space dimensional aspects. In OpenMI 1 both are combined in the interfaces making it difficult to create extensions that allow use of OpenMI in domains that have other dimensionality requirements. Another goal is to allow postponing of some of the more difficult and time consuming functionality (to define, build and test) like support for parallel computing and OGC compliant element sets, to OATC approved extensions to the basic OpenMI 2 Standard.

...

  • Rename TimeSpace versions, leaving out the TimeSpace part of the name (thumbs down).
  • Adding emtpy interfaces (thumbs down).

Adding empty interfaces would be:

...

And ILinkableComponent would be an empty interface provided for backward compatibility with OpenMI 1 and for ease of development. We have to decide if the advantages outweigh adding a number of empty interfaces. Maybe we can add them but put them in a "openmi1" extension (perhaps even marked as deprecated). (thumbs down)

Adding empty interfaces has some unwanted side-effects:

...

(Jesper) I would recommend to keep the TimeSpace name there (thumbs up), not adding any empty interfaces. I would also prefer to remove the Base part of the name from the base interfaces, i.e. IBaseLinkableComponent to just ILinkableComponent (thumbs down).

Meeting Decision: It was decided to go with the IBase... and ITimeSpace... interfaces names, and not have for example an empty ILinkableComponent interface. Although this requires more work on updating the documentation. Wether to use inheritance hierarchy or multi inheritance for defining the extension interfaces is still under discussion.

Add property to indicate Add property to indicate lengths of the dimensions to IValueSet

...

(Rob) I have added the following methods to the IBaseValueSet (Java) (thumbs up):

Code Block
    /**
     * Returns the number of possible indexes (dimensions) for the value set.
     *
     * @return number of indexes, zero based
     */
    public int getNumberOfIndexes();


    /**
     * Returns the length (max index count) of the dimension specified by the
     * given indexes.
     *
     * @param indexes of the dimension to get the length of
     * @return length of the specified dimension
     */
    public int getIndexCount(int[] indexes);

Meeting Decision: All agreed to adding this to the IValueSet. C# code will be updated following what was already added to the Java code.

Add ValueType to IValueSet

...