User Tools

Site Tools


dido:public:ra:1.4_req:2_nonfunc:05_interoperability

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:public:ra:1.4_req:2_nonfunc:05_interoperability [2020/11/20 21:26]
nick
dido:public:ra:1.4_req:2_nonfunc:05_interoperability [2021/08/11 13:27] (current)
murphy
Line 1: Line 1:
-====== 4.2.Interoperability ======+====== 4.3.Interoperability ======
 [[dido:​public:​ra:​1.4_req:​2_nonfunc| Return to Non-Functional Requirements]] [[dido:​public:​ra:​1.4_req:​2_nonfunc| Return to Non-Functional Requirements]]
- 
-  * **<color #​FF0000><​todo @char>​Please Review</​todo></​color>​** 
  
 ===== About ===== ===== About =====
-[[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]] 
- 
- 
 [[https://​www.isko.org/​cyclo/​interoperability#​3.1]] [[https://​www.isko.org/​cyclo/​interoperability#​3.1]]
  
-[[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​interoperability]] is a characteristic of a product or systemwhose interfaces are completely understoodto work with other products or systems, present or future, in either implementation or access, without any restrictions. ​However, there are different levels of interoperability. ​The lowest most basic level of interoperability ​is at the network level. The degree of interoperability increases in difficulty ​as one moves up the interoperability levels. The most difficult ​level is the semantic level, ​at this level two assets can communicate with little or no prep work using common detailed formal, machine readable [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​ontology | Ontologies]] including a vocabulary of terms.+[[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​interoperability]] is a characteristic of a product or system whose interfaces are completely understood to work with other products or systems, present or future, in either implementation or access, without any restrictions. ​There are different levels of interoperability. ​As one moves up the interoperability ​levels, ​the degree of interoperability increases in difficulty. The most difficult is the semantic level, ​in which two assets can communicate with little or no prep work using common detailed formal, machine readable [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​ontology | Ontologies]] including a vocabulary of terms.
  
 <figure interopLevels>​ <figure interopLevels>​
 {{  :​dido:​public:​ra:​1.4_req:​2_nonfunc:​knowledgepyramidinteroperatbility.png?​700 ​ |}} {{  :​dido:​public:​ra:​1.4_req:​2_nonfunc:​knowledgepyramidinteroperatbility.png?​700 ​ |}}
-<​caption>​The Automation Pyramid and Interoperability</​caption>​+<​caption>​The ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​autopyramid|Automation Pyramid]] and Interoperability</​caption>​
 </​figure>​ </​figure>​
  
Line 20: Line 15:
 [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]] [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]]
  
-Foundational or Technical Interoperability Level is concerned with the most fundamental and basic kind of interoperability. It provides the "​foundation" ​on which the other kinds of interoperability ​are built upon. It identifies ​the technical aspects of peer-to-peer interoperability regardless of hardware, operating system, or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​midware|middleware]] platforms. ​There are two perspectives to the Foundational or Technical Interoperability Level: Data and System. ​+The //Foundational// or //Technical Interoperability Level// is concerned with the most fundamental and basic kind of interoperability. It provides the "​foundation" ​for all the higher levels ​of interoperability. It establishes ​the technical aspects of peer-to-peer interoperability ​that prevail ​regardless of hardware, ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​os|operating system]], or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​midware|middleware]] platforms. ​The Foundational or Technical Interoperability Level is defined in terms of two perspectives: Data and System. ​
   * From the Data perspective,​ there is a clear, shared expectation for the contents, context and meaning of that data (e.g., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​bigendian]] or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​l:​littleendian]],​ or size of an integer, or character set used)   * From the Data perspective,​ there is a clear, shared expectation for the contents, context and meaning of that data (e.g., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​bigendian]] or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​l:​littleendian]],​ or size of an integer, or character set used)
-  * From the system perspective the differences in computer technology are non-existent (e.g., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​0-9:​16-bit]], [[dido:​public:​ra:​xapend:​xapend.a_glossary:​0-9:32-bit]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​0-9:64-bit]] processors. [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​risc]] versus [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​cisc]] computers, etc.). In a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​distsystem|Distributed System]], the network protocols are another part of the Foundational or Technical Level of interoperability (e.g., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​t:​tcp]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​u:​udp]] over [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​ipaddr]],​ etc.).+  * From the system perspective the differences in computer technology are non-existent (e.g., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​00-9:​16bit]], [[dido:​public:​ra:​xapend:​xapend.a_glossary:​00-9:32bit]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​00-9:64bit]] processors. [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​risc]] versus [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​cisc]] computers, etc.). In a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​distsystem|Distributed System]], the network protocols are another part of the Foundational or Technical Level of interoperability (e.g., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​t:​tcp]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​u:​udp]] over [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​ipaddr]],​ etc.).
  
 ==== Syntactic Level ==== ==== Syntactic Level ====
 [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]] [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]]
  
-[[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​syntax]] Level is concerned with the correct combination and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​sequence|sequence]] of the elements in a language and in this context, as it applies to [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​datastructure]] or in a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​programlang]]. For example, in English, we do not say ''​ball red large plastic'',​ we would say ''​large,​ red plastic ball''​. The first form is syntactically incorrect, the second form is not. Interoperability at the syntactical Level means two different systems can exchange information and structurally ​they are equivalent. The interpretation of the syntactical data can be different (i.e., big to an ant is different than big to an elephant). The difference in interpretation is a semantic difference (see Semantic Level). ​+The //[[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​syntax]] Level// is concerned with the correct combination and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​sequence|sequence]] of the elements in a language andin this context, as it applies to [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​datastructure]] or a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​programlang]]. For example, in English, we do not say ''​ball red large plastic'',​ we would say ''​large,​ red plastic ball''​. The first form is syntactically incorrect, the second form is not. Interoperability at the syntactical Level means two different systems can exchange information and be structurally equivalent. The interpretation of the syntactical data can be different (i.e., big to an ant is different than big to an elephant). The difference in interpretation is a semantic difference (see Semantic Level). ​
  
 ==== Domain or Structural Level ==== ==== Domain or Structural Level ====
 [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]] [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]]
  
-[[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​domain_knowledge | Domain]] Level is knowledge of a specific, specialized subject area, discipline or field. For example, there is specific [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​domain_knowledge|domain knowledge]] in Chemistry, Organic Chemistry, Physics, ​mathematics, or statistics. A specific example might be the use of the word ''​round''​. ​There are completely ​different meanings ​for the word in pokermathcheese, and military. This is in contrast to general knowledge, or domain-independent knowledge which in general ​would refer to the common usage of the word, sometimes referred to as dictionary usage of the word. The use of the word Domain or Domain knowledge is used within general purpose disciplines such as history, law, systems engineering or even computer science. People with knowledge in the generic area (i.e., law) might have specific domain knowledge in computers, electronics,​ computers or even specific computer architectures such [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​risc]]. ​+The //[[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​domain_knowledge | Domain]] Level// is knowledge of a specific, specialized subject area, discipline or field. For example, there is specific [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​domain_knowledge|domain knowledge]] in Chemistry, Organic Chemistry, Physics, ​Mathematics, or Statistics. A specific example might be the use of the word ''​round''​. ​''​Round''​ has different meanings in the context of PokerMathCheese, and the Military. This is in contrast to general knowledge, or domain-independent knowledge whichin general, refers ​to the common usage of word, sometimes referred to as the dictionary usage of word. The use of the word Domain or Domain knowledge is used within general purpose disciplines such as history, law, systems engineering or even computer science. People with knowledge in generic area (i.e., law) might have specific domain knowledge in computers, electronics,​ computers or even specific computer architectures such as [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​risc]]. ​
  
 ==== Semantic Level ==== ==== Semantic Level ====
 [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]] [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]]
  
-[[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​semantics | Semantic]] Level is concerned with the meaning, relationship and restrictions on data and information described in the __Domain or Structural__ and the __Syntactical__ Levels. At this level, computer systems ​unambiguously ​exchange information. The information ​that is exchanged might not be identical but there is a shared understanding between the two systems about the meaning of the information. Some examples of Semantic Interoperability are described by the ability of:((+The //[[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​semantics | Semantic]] Level// is concerned with the meaning, relationship and restrictions on data and information described in the __Domain or Structural__ and __Syntactical__ Levels. At this level, computer systems exchange information ​unambiguously. The information exchanged might not be identical but there is a shared understanding between the two systems about the meaning of the information. Some examples of Semantic Interoperability are described by the ability of:((
 Ontology Taxonomy Coordinating WG / OntacGlossary,​ Accessed 10 July 2020, [[http://​colab.cim3.net/​cgi-bin/​wiki.pl?​OntologyTaxonomyCoordinatingWG%2FOntacGlossary]] Ontology Taxonomy Coordinating WG / OntacGlossary,​ Accessed 10 July 2020, [[http://​colab.cim3.net/​cgi-bin/​wiki.pl?​OntologyTaxonomyCoordinatingWG%2FOntacGlossary]]
 )): )):
  
   * Two independent programs with reasoning capability to arrive at the same conclusions from the same data   * Two independent programs with reasoning capability to arrive at the same conclusions from the same data
-  * An information system, without additional human intervention,​ to perform the tasks for which it was designed through the exchange of relevant data with other systems((Note:​ mediated by formally specific definitions and axioms)), independently of how and for what purpose this data was originally collected, stored and managed. +  * An information system, without additional human intervention,​ to perform the tasks for which it was designed through the exchange of relevant data with other systems((Note:​ mediated by formally specific definitions and axioms)), independently of how and what purpose this data was originally collected, stored and managed. 
-  * One system to use data from an external source (without prior planning) and output useful (though not necessarily perfect) results.+  * One system to use data from an external source (without prior planning) and still able to output useful (though not necessarily perfect) results.
  
-===== DDS Specifics =====+===== DIDO Specifics =====
 [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]] [[dido:​public:​ra:​1.4_req:​2_nonfunc:​05_interoperability | return to Top]]
  
-[[dido:public:​ra:​xapend:​xapend.a_glossary:​d:​dds]] easily can help in the Interoperability starting at the Fundamental Level through to the Domain Level. It can support the use of tools and products that work at the semantic level, but the actual development of the semantic ontologies is not within the scope of DDS. +  ​<wrap hi><​color red> To be added/​expanded ​in future revisions ​of the DIDO RA </color><​/wrap>
- +
-  * **Foundational or Technical Level** DDS supports [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​publish-subscribe]] over the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​ethernet]] using [[dido:​public:​ra:​xapend:​xapend.a_glossary:​t:​tcp]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​u:​udp]] over [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​ip]] [[dido:​public:​ra:​xapend:​xapend.a_glossary:​w:​wired|wired]] or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​w:​wireless|wireless networks]]. There is vendor provided support available for other kinds of networks such as [[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​bluetooth]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​z:​zigbee]]. The data is [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​marshalling | Marshalled]] across the network using [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​rtps]],​ however, the details of how this are done are done automatically when [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dcps]] is used by the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​publisher | Publishers]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​subscriber | Subscribers]]. +
- +
-  * **Syntactic Level** DDS supports a wide variety of scalar [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​datatype]] as well as collections,​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​datastructure | Sata Structures]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​u:​union | Unions]] in a standardized formal, software language agnostic method called the [[ddsf:​private:​cookbook:​06_append:​01_family_of_standards:​01_core:​interface_definitions_language_idl | Interface Definition Language (IDL)]]. The IDL is then compiled into any number of high-level programming languages such as [[ddsf:​private:​cookbook:​06_append:​01_family_of_standards:​02_api:​c_language_for_dds | ISO/IEC C, C++]], [[ddsf:​private:​cookbook:​06_append:​01_family_of_standards:​02_api:​java_5_language_for_dds | DDS-Java]], [[ddsf:​private:​cookbook:​06_append:​01_family_of_standards:​03_ext:​ddsxml | DDS-XML]] and [[ddsf:​private:​cookbook:​06_append:​01_family_of_standards:​05_wip:​ddsjson | JSON]]). Therefore, one publisher could be using data defined in C/C++ and a subscriber could be using Java without worrying about the data compatibility at each end. There is even a formal methodology for mapping other languages to IDL.  +
-  * **Note:** IDL 4.2 is not part of CORBA and has been elevated to an [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​iso]] standard (( +
-International Standards Organization (ISO) /  International Electrotechnical Commission (IEC), [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​omg]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​infotech|Information Technology]],​ February 2020, ISO/IEC 19516:2020, [[https://​www.iso.org/​standard/​65379.html]] +
-)), however, it is backward compatible to the IDL defined as part of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​corba]] standard.  +
- +
-  * **Domain or Structural Level** DDS support for strong typing, scalar types, data structures and unions have allowed strong domain specific [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​coi]] to adopt and mandate the use of IDL and DDS. For example, ​ there are specialized domain communities that have adopted IDL and DDS. For example, the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​mod]] has mandated a General Vehicle Architecture (GVA) and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​n:​naesb]] have mandated ​ an Open Field Message Bus (OpenFMB). See Section [[ddsf:​private:​cookbook:​02_body:​02_projreq:​01_functional:​03_mandates]] +
- +
-  * **Semantic Level** DDS support for semantics is limited to filtering the data that is received by a subscriber or by the matching of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​q:​qos]] between publishers and subscribers. For example, a subscriber may apply a content filer to only receive published data within a specified geographic region or that concerns a particlar part number. Content filtering selects data defined within the data structure. There are a rich set of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​q:​qos]] allowing filtering on DDS [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​metadata]] (see [[ddsf:​private:​cookbook:​06_append:​02_quality_of_service]]). It is possible to hook up other kinds of filtering based on [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​ontology | ontologies]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​rdf]] and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​sparql]],​ but those have not been standardized yet.+
  
 /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Line 67: Line 51:
 ~~DISCUSSION:​on|Outstanding Issues~~ ~~DISCUSSION:​on|Outstanding Issues~~
 ~~DISCUSSION:​off~~ ~~DISCUSSION:​off~~
- 
- 
- 
  
dido/public/ra/1.4_req/2_nonfunc/05_interoperability.1605925562.txt.gz · Last modified: 2020/11/20 21:26 by nick