Difference between revisions of "Ecosystem Approach Community of Practice: VME iMarine"
(→Report, Delta and KeyValue) |
(→Webservice) |
||
Line 50: | Line 50: | ||
==Webservice== | ==Webservice== | ||
[[File:Webservice.jpg]] | [[File:Webservice.jpg]] | ||
+ | |||
+ | |||
+ | =Id management= | ||
+ | When creating a new object on the side of iMarine, a reference or id for this object is needed. The responsibility of Id generation is primarily on the target side(VME-DB). What can be done is to generate an ID according this convention ID = LOCAL_{localID}. Example of such an id would be: VmeId = LOCAL_452. A delta can define a number of new objects. Within the delta, the localId has a meaning. When the ingestion webservice will create the new object in the target, a new object will be created and the localId will be replaced with the new ID. | ||
+ | |||
+ | |||
+ | |||
+ | =Open Issues= | ||
+ | *How to handle reference data, lookup tables | ||
+ | *How to handle validation rules | ||
+ | *The names of this iMarine function is confusing: Reports. This function is all about editing content, to be send to another entity. Better names could be UniversalEditor, InfiniteEditor, ContentCreator, etc. |
Revision as of 08:18, 21 August 2013
Introduction
The VME project has started to investigate how the iMarine infrastructure could work in combination with the VME-DB on FAO side. This page tries to make all assumptions explicit and therefore will probably be heavily used for discussion!
You can find the object graph for the VME-DB here, in order to have an idea of the VME domain model (ask Erik or Anton for the name/password).
The big picture
Stateful or Stateless?
The above picture assumes that the iMarine infrastructure will not hold state regarding the VME-DB. Content will flow from the VME-DB into iMarine, will be subject to manipulation and a stream of deltas will flow from iMarine into the VME-DB trough the webservice.
UML
TemplateEditor
The VME-DB is an object graph. Every object in the VME-DB is represented in iMarine through a KeyType. Of course an object has attributes, therefore also a KeyType has attributes.
- Template: Holds a collection of KeyTypes. A Template defines the form in order to manipulate the objects in the VME-DB.
- KeyType: This is the name of the object in the VME-DB
- Attribute: is the name of the attribute of a certain object
- TODO: Engineer and explain better the concept of Parent and Child.
Report, Delta and KeyValue
This diagram describes conceptually the model of a Report and the the format of a Delta message.
A Report is a collection of KeyValue(s). The Delta is a collection of KeyValue(s), representing a change of content.
KeyValue has the following attributes:
- KeyType: see above TemplateEditor
- id: is the id of the object in the in the VME-DB of a certain type(keyType).
- attribute: see above TemplateEditor
- value: the value for that attribute
Target
The target (VME-DB) is from a iMarine point of view a collection of KeyValue(s)
Webservice
Id management
When creating a new object on the side of iMarine, a reference or id for this object is needed. The responsibility of Id generation is primarily on the target side(VME-DB). What can be done is to generate an ID according this convention ID = LOCAL_{localID}. Example of such an id would be: VmeId = LOCAL_452. A delta can define a number of new objects. Within the delta, the localId has a meaning. When the ingestion webservice will create the new object in the target, a new object will be created and the localId will be replaced with the new ID.
Open Issues
- How to handle reference data, lookup tables
- How to handle validation rules
- The names of this iMarine function is confusing: Reports. This function is all about editing content, to be send to another entity. Better names could be UniversalEditor, InfiniteEditor, ContentCreator, etc.