Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Interoperability
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==== Software ==== {{Main|Language interoperability|Semantic interoperability}} [[Image:Interoperable software.png|250px|thumb|Interoperability: playing the two role network game, when one of the player clients (top left) runs under [[Sun Microsystems]] and another under [[GNU Classpath]] with [[JamVM]]. The applications execute the same [[bytecode]] and interoperate using the standard [[RMI-IIOP]] messages for communication.]] With respect to [[software]], the term ''interoperability'' is used to describe the capability of different programs to exchange data via a common set of exchange formats, to read and write the same [[file format]]s, and to use the same [[communication protocol]]s.{{efn|The ability to execute the same [[executable|binary code]] on different [[Central processing unit|processor]] platforms is ''not'' contemplated by the definition of interoperability.}} The lack of interoperability can be a consequence of a lack of attention to [[standardization]] during the design of a program. Indeed, interoperability is not taken for granted in the non-standards-based portion of the computing world.<ref>{{Cite book|title=The Official Guide to the SSCP Book|last=Gordon and Hernandez|publisher=SYBEX|isbn=978-1119278634|date=2016-05-16}}</ref> According to ISO/IEC 2382-01, ''Information Technology Vocabulary, Fundamental Terms'', interoperability is defined as follows: "The capability to communicate, execute programs, or transfer data among various functional units in a manner that requires the user to have little or no knowledge of the unique characteristics of those units".<ref>{{cite web|url=http://jtc1sc36.org/doc/36N0646.pdf|title=Proposed Draft Technical Report for: ISO/IEC xxxxx, Information technology -- Learning, education, and training -- Management and delivery -- Specification and use of extensions and profiles|author=SC36 Secretariat|date=2003-11-13|publisher=ISO/IEC JTC1 SC36|archive-url=https://web.archive.org/web/20071129034634/http://old.jtc1sc36.org/doc/36N0646.pdf|archive-date=2007-11-29|url-status=dead|access-date=12 August 2016}}</ref>{{efn|The definition is somewhat ambiguous because the ''user'' of a program can be another program and, if the latter is a portion of the set of programs that is required to be interoperable, it might well be that it does need to have knowledge of the characteristics of other units.}} [[Standards-developing organization]]s provide open public software specifications to facilitate interoperability; examples include the [[Oasis-Open]] organization and [[buildingSMART]] (formerly the International Alliance for Interoperability). Another example of a neutral party is the [[Request for Comments|RFC]] documents from the [[Internet Engineering Task Force]] (IETF). The Open Service for Lifecycle Collaboration<ref>{{cite web|url=http://open-services.net/|title=Open Services for Lifecycle Collaboration|access-date=12 August 2016}}</ref> community is working on finding a common standard in order that software tools can share and exchange data e.g. bugs, tasks, requirements etc. The final goal is to agree on an open standard for interoperability of open source [[application lifecycle management]] tools.<ref>{{cite web|url=http://www.slideshare.net/olberger/presentation-icssea2011|title=OSLC (Open Services for Lifecycle Collaboration): open standard for iβ¦|date=30 November 2011|access-date=12 August 2016}}</ref> Java is an example of an interoperable programming language that allows for programs to be [[Write once, run anywhere|written once and run anywhere]] with a [[Java virtual machine]]. A program in Java, so long as it does not use system-specific functionality, will maintain interoperability with all systems that have a Java virtual machine available. Applications will maintain compatibility because, while the implementation is different, the underlying language interfaces are the same.<ref>{{Cite book|url=https://www.safaribooksonline.com/library/view/clojure-programming/9781449310387/ch09.html|title=9. Java and JVM Interoperability [Book]|language=en}}</ref> ===== Achieving software ===== Software interoperability is achieved through five interrelated ways:{{cn|date=June 2023}} # Product testing #: Products produced to a common standard, or to a sub-profile thereof, depend on the clarity of the standards, but there may be discrepancies in their implementations that system or unit testing may not uncover. This requires that systems formally be tested in a production scenario β as they will be finally implemented β to ensure they actually will intercommunicate as advertised, i.e. they are interoperable. Interoperable product testing is different from conformance-based product testing as conformance to a standard does not necessarily engender interoperability with another product which is also tested for conformance. # Product engineering #: Implements the common standard, or a sub-profile thereof, as defined by the industry and community partnerships with the specific intention of achieving interoperability with other software implementations also following the same standard or sub-profile thereof. # Industry and community partnership #: Industry and community partnerships, either domestic or international, sponsor standard workgroups with the purpose of defining a common standard that may be used to allow software systems to intercommunicate for a defined purpose. At times an industry or community will sub-profile an existing standard produced by another organization to reduce options and thus make interoperability more achievable for implementations. # Common technology and intellectual property #: The use of a common technology or [[intellectual property]] may speed up and reduce the complexity of interoperability by reducing variability between components from different sets of separately developed software products and thus allowing them to intercommunicate more readily. This technique has some of the same technical results as using a common vendor product to produce interoperability. The common technology can come through third-party libraries or open-source developments. # Standard implementation #: Software interoperability requires a common agreement that is normally arrived at via an industrial, national or international [[standardisation|standard]]. Each of these has an important role in reducing variability in intercommunication software and enhancing a common understanding of the end goal to be achieved.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)