互換性
(上位互換性から転送)
互換性の種類
編集
互換性はその性質により、以下のような種類がある。
相互互換性︵英語: Interchangeability︶
機能・性能などが類似しており、相互に置き換えが可能なこと。交換可能性、可換性とも呼ばれる。
前方互換性︵英語: Forward compatibility︶
新しいシステム向けのデータなどが古いシステムでも破綻なく使用できること[1]。
後方互換性︵英語: Backward compatibility︶
古いシステム向けのデータなどが新しいシステムでも全て使用できること[2]。
上位互換性︵英語: Upper compatibility, Superset︶
機能・性能・グレードが上位の製品が、下位の製品の全ての機能を有すること。
下位互換性︵英語: Lower compatibility, Subset︶
機能・性能・グレードが下位の製品が、上位の製品の一部の機能を有すること。
後発の製品はそれ以前に発売されているものよりも機能や性能が優れていることが多く、後発の製品は後方互換性と上位互換性を有することがよくある。後発の製品が以前に発売された製品の廉価版であるときなどにこれは成り立たない。逆に先発の製品が、前方互換性・下位互換性を持つこともある。
上位互換という表現は英語から輸入されたものであるが、英語圏においてはUpper compatible/Lower compatibleという言い方は一般に使われず、Forward compatibilityなどが通常である。
2000 年代中頃までは、下位互換=後方互換性の意味で任天堂やソニー、MSなどによって使用されており、今とは意味が逆であった︵下位互換がより新しい製品︶[3]。
またソフトウェアにおいては、異なる規格間で仕様に互換がある場合、上位集合的互換性を持つものを﹁スーパーセット﹂と呼び、部分集合的互換を持つものを﹁サブセット﹂とも呼ぶことがある。例えば、データ形式の1つであるYAMLはJSONのスーパーセットであり、JSONはYAMLのサブセットであったり、画像形式の1つであるMNGはPNGのスーパセットであるなど。なお、制約の集合と、﹁その制約を満たす何か﹂の集合では、サブセットとスーパーセットの対応が逆になるため、この集合ベースの考え方もまた混乱の原因になりやすい。敢えて単純化した例を示すと﹁0以上の整数﹂と﹁0以上の整数で、かつ、3の倍数﹂を比較すると、前者のほうが制限の数は少なく︵サブセットであり︶、一方でそれが意味している整数自体は、後者のほうがサブセットになっている。
またソフトウェアにおいては、異なる規格間で仕様に互換がある場合、上位集合的互換性を持つものを﹁スーパーセット﹂と呼び、部分集合的互換を持つものを﹁サブセット﹂とも呼ぶことがある。例えば、データ形式の1つであるYAMLはJSONのスーパーセットであり、JSONはYAMLのサブセットであったり、画像形式の1つであるMNGはPNGのスーパセットであるなど。なお、制約の集合と、﹁その制約を満たす何か﹂の集合では、サブセットとスーパーセットの対応が逆になるため、この集合ベースの考え方もまた混乱の原因になりやすい。敢えて単純化した例を示すと﹁0以上の整数﹂と﹁0以上の整数で、かつ、3の倍数﹂を比較すると、前者のほうが制限の数は少なく︵サブセットであり︶、一方でそれが意味している整数自体は、後者のほうがサブセットになっている。
互換性の実現
編集
相互に互換性を有する部品やコンポーネント︵構成要素︶は、なんらかの標準化された規格にしたがっていることが多い。これは、なんらかの機関、団体によって規定されたデジュリスタンダードと、市場で大きなシェアをもつものに倣ったデファクトスタンダードの2通りがあり、いずれもその規格の範囲内で互いに交換することが可能である。
また、市場のシェアや普及率が大きいことなどを理由としてのちの製品に前方・後方互換を持たせることも多い。例えばビジネスで多くの文書が作成・運用されているMicrosoft Officeは、過去のバージョン製品とファイルをやりとりできるように新しいバージョンの製品にファイル形式の前方互換および後方互換を持たせている。Office 2007以降で採用されたOffice Open XML形式ファイルは、Office 2007以降の製品間で相互にやりとりできるものの、Office 2003以前では︵互換機能パックを使わない限り︶利用することはできないが、Office 2007以降でも旧製品で利用可能な旧形式︵Office 97 - 2003︶で読み書きすることは可能である。そのほか、すでに広く普及していたUSB 2.0規格の後継となるUSB 3.0ポートでも、USB 2.0までしか対応していない既存の古い周辺機器︵USBメモリなど︶が接続できるよう、後方互換を持たせたりといった例がある。また、ユーザーの慣れやユーザビリティも互換性を確保するための大きな理由となりうる。
利点・欠点
編集大まかに言えば既存のデータやシステム、知識などが無駄にならないことがユーザー側の視点に立ったときの利点である。
対して、より効率のいい手段・方法があるにもかかわらず古い方式(レガシーシステム)に拘束されてしまうため、互換性を確保しつづけるためのコストがかかってしまうことがメーカー側の視点に立ったときの欠点となる。PC/AT互換機のBIOSのようにレガシーシステムのサポートが肥大化した結果、規格の拡張に支障を生じてしまうケースもある。
脚注
編集関連項目
編集- ライセンスの互換性 - ソフトウェアライセンスにおける互換性
- 互換モード
- 相性
- インタフェース (情報技術)
- アプリケーションプログラミングインタフェース(API)
- アプリケーションバイナリインタフェース(ABI)