У деяких технічних областях існують жорсткі вимоги до сумісності різних систем. Наприклад, в світі поширені три телевізійні системи - PAL, SECAM і NTSC, і для їх узгодження розроблені спеціальні пристрої - декодери. Але найбільш жорсткі вимоги до сумісності існують в комп'ютерній області. Це якість комп'ютерів допомагає перенести вимоги сумісності на економічні програми.
Концепція програмної сумісності вперше в широких масштабах була застосована розробниками системи IBM / 360. Основне завдання при проектуванні всього ряду моделей цієї системи полягала в створенні такої архітектури, яка була б однаковою з точки зору користувача для всіх моделей системи незалежно від ціни і продуктивності кожної з них. Величезні переваги такого підходу, що дозволяє зберігати існуючий заділ програмного забезпечення під час переходу на нові (як правило, більш продуктивні) моделі, були швидко оцінені як виробниками комп'ютерів, так і користувачами і, починаючи з цього часу, практично всі фірми-постачальники комп'ютерного устаткування взяли на озброєння ці принципи, поставляючи серії сумісних комп'ютерів. Слід зауважити, однак, що з часом навіть сама передова архітектура неминуче застаріває і виникає потреба внесення радикальних змін в архітектуру і способи організації обчислювальних систем.
Несумісність - бич сучасної індустрії програмування. Нелегко інтегрувати модулі, написані на різних мовах програмування. Програми, що виконуються на різних машинах, для взаємообміну даними повинні подолати величезні труднощі. Додатки для різних ОС написані із застосуванням несумісних API, що ускладнює перенесення. І в міру того, як інтереси розробників зміщуються від ізольованих програм і клієнт-серверних додатків до Web-додатків, виникають нові типи несумісності: несумісність між програмними моделями, які пройшли перевірку часом, і моделями, що виникли спонтанно для задоволення нових потреб. Замість компільованих мов ми маємо справу з мовами сценаріїв. Замість насичених графічних користувальницьких інтерфейсів - HTML. А замість об'єктно-орієнтованого програмування - додатки масштабу підприємства, що представляють собою суміш процедурного коду, HTML, DHTML, XML, COM та інших не пов'язаних один з одним технологій,
Сумісність - підтримка виконання прикладних програм, написаних для інших операційних систем, а також взаємодія між різними ОС, що функціонують в корпоративному середовищі.
Як вирішуються питання забезпечення сумісності програмного забезпечення? Розглянемо кілька підходів.
перший # 9472; використання мови програмування Java, розробленого фірмою Sun. Одне з основних переваг мови Java- незалежність від платформи, на якій виконуються програми: один і той же код можна запускати під управлінням операційних систем Windows, Solaris, Linux, Machintosh і ін. Це дійсно необхідно, коли програми завантажуються через Інтернет для подальшого виконання під управлінням різних операційних систем. Надзвичайна здатність Java виконувати свій код на будь-який з підтримуваних платформ досягається тим, що її програми транслюються в якесь проміжне уявлення, зване байт-кодом (bytecode). Байт-код, в свою чергу, може інтерпретуватися в будь-якій системі, в якій є середовище часу виконання Java. Більшість ранніх систем, в яких намагалися забезпечити незалежність від платформи, володіло величезним недоліком - втратою продуктивності (Basic, Perl). Незважаючи на те, що в Java використовується інтерпретатор, байт-код легко перекладається безпосередньо в "рідні" машинні коди (Just In Time compilers) "на льоту". При цьому досягається дуже висока продуктивність.
другий # 9472; технологія .Net (дот немає) від фірми Microsoft.
У Microsoft є бачення майбутнього, в якому вирішені ці та багато інших проблем. Втіленням цього бачення є ініціатива Microsoft .NET. Microsoft .NET, або просто .NET, являє собою новий спосіб розробки та розгортання ПЗ, який за допомогою таких стандартів як HTTP і XML робить реальністю мрію про легко взаємодіючих програмах, а Інтернет дозволяє забезпечити доступ до програмних сервісів в небачених раніше масштабах. Важливою частиною ініціативи є .NET Framework - платформа для розробки і виконання додатків .NET. Її використання не є обов'язковою умовою для створення додатків .NET, але вона набагато спрощує і прискорює розробку. Серед її численних достоїнств # 9472; об'єктно-орієнтоване програмування для Web; усунення багатьох типів найбільш поширених і небезпечних програмних помилок, загальний API (інтерфейс прикладного програмування) для всіх мов, т. е. для написання різних частин програми можна використовувати різні мови програмування.
третій # 9472; використання мови SQL.
Сумісність з SQL-системами грає велику роль, коли передбачається проведення роботи з корпоративними даними. СУБД, добре підготовлені до роботи в якості засобів первинної обробки інформації для SQL-систем, можуть відкрити двері в системи з архітектурою клієнт-сервер.
СУБД мають доступ до даних SQL в наступних випадках:
бази даних сумісні з ODBC (Open Database Connectivity - відкритий з'єднання баз даних);
реалізована природна підтримка SQL-баз даних;
можлива реалізація SQL-запитів локальних даних.
Багато СУБД можуть "прозоро" підключатися до вхідних SQL-підсистем за допомогою ODBC або драйверів, які є їх частиною, тому існує можливість створення прикладних програм для них. Деякі програмні продукти сумісні також з SQL при обробці інтерактивних запитів на отримання даних, що знаходяться на сервері або на робочому місці.