⚡ We need to define a data schema for messages exchanged between applications, services, and databases that make up OROps.
We have to discuss the following points to answer the question.
- Where OMMX is used?
- Why schema is required?
- Text-based or Binary-based?
- Why Protocol Buffers?
Note that this is a better selection, not the best selection. We have to keep considering these points and change the selection if necessary.
Mathematical programming has been a subject of study in academic fields for a considerable period of time, and numerous software tools have been developed to improve the solving capability. However, these tools are basically designed for use in a research process. When we attempt to use these invaluable tools in a real-world business process, we refer to it as "OROps" (OR = operations research), like "MLOps" in machine-learning field, we have to face many problems. The most significant problem is the lack of interoperability between tools. We have to convert data between tools, and it is a time-consuming and error-prone process. OMMX is designed to solve this problem.
Different from research process where few researchers use and create few tools, in OROps, many developers use and create many tools. The interoperability between tools becomes significant issue due to this point. It is possible for human to manage input and output data stored in general purpose data format like JSON or HDF5 for few tools, but it is hard for many tools. Thus, we have to introduce machine-readable schema.
TBW
TBW
- OMMX defines a protocol buffers schema with version like
v1
,v2
, etc.v1
schema has a namesapceommx.v1
. - Schemas in
ommx.v1
will be compatible after ommx.v1 schema release. Note that the schema can be changed incompatible way until this release. v2
schema with namespaceommx.v2
will start developing if we need to change the schema in incompatible way afterommx.v1
release. Compatible changes will be made inv1
schema also after its release. We never create namespaces likeommx.v1_1
.