У середині 60-років у самий розпал холодної війни міністерство оборони США планувало створити мережу для управління, яка б допомогла вижити в умовах ядерної війни. Стандартні телефонні мережі вважалися недостатньо надійними, оскільки вихід з ладу одного з центральних комутаторів може паралізувати цілий регіон (телефонна мережа має деревоподібну топологію).
Для вирішення завдання було залучено агентство ARPA (Advanced Research Project Agency). Це агентство було створено у відповідь на запуск у СРСР у 1957 році штучного супутника землі. Агентство не мало своїх лабораторій і вчених, і його бюджет був незначним (за масштабами Пентагону). ARPA вирішувало проблеми, видаючи гранти університетам і компаніям, чиї пропозиції виявлялися перспективними. Ними була досліджена можливість побудови мереж на основі перемикання пакетів. Потім була побудована така мережа, що складається з субсетей і окремих ЕОМ. Субсеті складалися з IMP (Interface Message Processor), побудованих на міні-ЕОМ, з'єднаних каналами передачі даних.
Вже на цьому рівні передбачалася динамічна маршрутизація пакетів - і вихід з ладу окремого сайту або каналу призводив до того, що пакети починали рухатися в обхід пошкодженої ділянки. Кожен вузол складався з IMP і ЕОМ, з'єднаних коротким кабелем. ЕОМ могла послати IMP повідомлення довжиною 8063 біта. IMP поділяв це повідомлення на кадри довжиною 1008 біт і пересилав їх адресату. Мережа працювала за схемою "запам'ятати і переслати", при якій пакет спочатку записується цілком у буфер і тільки потім передається далі.
У 1968 році був організований тендер на створення експериментальної мережі. Тендер виграла компанія BBN. Мережа була побудована на базі міні-ЕОМ DDP-316 з пам'яттю 12K 16-бітових слів. Машини були з'єднані за допомогою виділених ліній з пропускною здатністю 56 Кбіт / с. Програмне забезпечення було створено в 1969 році силами студентів-випускників місцевого університету. Програми базувалися на технології сокетів 4.2BSD. Саме тоді остаточно сформувалася ідеологія TCP / IP.
До 1983 року мережа ARPANET містила вже більше 200 вузлів, а стек протоколів TCP / IP набув офіційного статусу. Тоді ж були введені в лад перша DNS (Domain Name System) сервери.
У 1991 році конгрес США прийняв закон про створення мережі NREN (National Research and Education Network - національна мережа для науки і освіти) з каналами, розрахованими на швидкість передачі в діапазоні гігабіт / с. Таким чином, можна вважати, що Інтернету більше 30 років, а першого офіційного документу Інтернет (RFC) - більше 35.
На щастя, ядерної війни не відбулося і, мабуть, Інтернет став одним з небагатьох позитивних результатів холодної війни. Історія розробки базових принципів та алгоритмів Інтернет показує, як при обмежених засобах можна вирішити глобальну проблему.
Перший документ RFC (Request for Comments) регламентує стек протоколів TCP / IP, побачив світ у квітні 1969 року. За перший рік було підготовлено лише 27 RFC. Далі активність у цій сфері почала зростати. Складалося ядро протоколів. До кінця 1982 були створені крім IP, базові поштові протоколи RFC-82122, ARP і TCP. У 1983 році оформився протокол DNS (Domain Name Service), який потрібен для перетворення імені мережевого об'єкта в IP-адресу. З цього моменту відкрилася можливість створювати мережні додатки типу telnet (віддалений доступ) і FTP (File Transfer Protocol). Темп підготовки документів RFC по роках відображений на рис. 1.1.
Технологія конструювання ПЗ – це система інженерних принципів для створення економного ПЗ, яке надійно і ефективно працює на реальних комп’ютерах. Розрізняють методи, засоби і процеси технології конструювання ПЗ.
Методи дозволяють відповісти на питання, як створити програмний виріб, і охоплюють круг задач, пов’язаних з плануванням розробки, оцінкою термінів і витрат, з аналізом вимог, проектуванням, кодуванням і тестуванням програм, з супроводом програмного виробу. Метод програмної інженерії – це структурний підхід до створення ПЗ, націлений на створення ефективного продукту найбільш прибутковим (рентабельним) шляхом. Практично всі методи побудовані на ідеї створення графічних моделей системи з подальшим їх використанням в якості специфікації, або архітектури системи. Методи повинні включати в себе наступні компоненти:
Опис моделей системи і їх нотацій;
Правила, які накладають обмеження на використання моделей в системі;
Рекомендації, які характеризують хороші прийоми проектування в даному методі;
Керівництво до дії – опис дій, яким можна слідувати під час створення моделей і подальшого їх використання.
Немає ідеальних методів, усі вони застосовуються лише у тих чи інших випадках. Наприклад, об’єктно-орієнтовані методи добре підходять для інтерактивних систем, але не для систем реального часу.