Цей переклад може не відображати змін, внесених із 2018-03-31 у англійський оригінал.

Ви можете поглянути на ці зміни. Будь-ласка перегляньте файл README стосовно перекладів для того, щоб отримати інформацію про координування перекладів цієї статті.

Кого насправді обслуговує сервер?

Річард Столмен

(Перша версія була опублікована в „Бостон рев'ю“

В Інтернеті ви можете втратити свободу не тільки з допомогою невільних програм. Послуги замість програм (SaaSS)   ще один спосіб передати іншим владу над вашими обчисленнями.

Основний сенс полягає в тому, щоб у вас може бути контроль над програмою, написаною іншими (якщо вона вільна), але у вас не може бути контролю над службою, яку надають інші, тому ніколи не користуйтеся службою, якщо в принципі можна працювати з програмою.

Послуга замість програми означає послугу, реалізовану кимось іншим як заміну виконання вами своєї копії програми. Це наш термін; у статтях і в рекламі він не вживається, і там не говориться, що це послуга замість програми. Замість цього вони застосовують розпливчасте і відволікаюче слово “хмара”, яка звалює послуги замість програм в одну купу з іншими методами, деякі з яких негожі, а деякі - ні. Дотримуючись пояснень і прикладів, даних на цій сторінці, ви зможете визначити, чи є послуга справді послугою замість програми.

Огляд: як невільні програми забирають у вас свободу

Цифрова техніка може дати вам волю; вона також може вашу свободу відняти. Спершу вашому контролю над своїми обчисленнями погрожували невільні програми: програми, які користувачі не можуть контролювати, тому що їх контролює власник (така компанія, як Apple або Microsoft). Власник часто користується цією несправедливою владою, вставляючи такі шкідливі особливості, як чорні ходи, стеження і управління цифровими обмеженнями(що їх пропаганда називає “керуванням цифровими правами”).

Наше рішення цієї проблеми   розробка вільних і відмова від невільних програм. Свобода програми означає, що у вас як у користувача є чотири важливих свободи: (0) виконувати програму, як вам завгодно; (1) вивчати і змінювати вихідний код програми, щоб вона робила, що вам завгодно; (2) поширювати точні копії; і (3) поширювати змінені версії (див. визначення вільної програми).

Вільні програми дозволяють нам, користувачам, знову отримати контроль над своїми обчисленнями. Невільні програми, як і раніше існують, але ми можемо виключити їх зі свого життя, і багато хто з нас зробили це. Однак зараз ми встаємо перед новою загрозою нашому контролю над своїми обчисленнями: послугами замість програм (SaaSS). Заради своєї волі ми повинні відмовитися і від них.

Як послуги замість програм забирають вашу свободу

“Послуга замість програми” означає користування послугою як заміною виконання вами своєї копії програми. Конкретно це значить, що хтось встановлює в мережі сервер, який вирішує певні обчислювальні завдання, наприклад, змінює фотографії, перекладає текст з однієї мови на інший і т. д.   а потім запрошує користувачів виконувати обчислення за допомогою цього сервера. Користувач посилає свої дані на сервер, який проводить власні обчислення цього користувача за наданими таким чином даними, а потім надсилає тому користувачеві результати або безпосередньо виконує дії від імені користувача.

Обчислення є власними обчисленнями користувача за умови, що користувач міг би в принципі провести їх, виконуючи програму на своєму власному комп'ютері (незалежно від того, доступна для користувача зараз ця програма чи ні). Коли це припущення не виконується, це не послуга замість програми.

Ці сервери виривають контроль з рук користувачів ще більш невблаганно, ніж невільні програми. У випадку невільної програми у користувача зазвичай є виконуваний файл, але немає вихідного коду. Це сильно ускладнює вивчення програми, яка виконується, тому важко визначити, чим насправді зайнята програма, і важко змінити її.

У разі послуги замість програми у користувача немає навіть виконуваного файлу програми, яка проводить його обчислення: він знаходиться на чужому сервері, де його користувачі не бачать і не відчувають. Таким чином, для них неможливо перевірити, чим насправді зайнята програма, і неможливо змінити її.

Більш того, послуга замість програми автоматично призводить до наслідків, які еквівалентні шкідливим особливостям певних невільних програм.

Наприклад, деякі невільні програми “шпигують”: програма надсилає дані про обчислювальну діяльність користувача. Microsoft Windows посилає відомості про діяльність користувачів Microsoft. Windows Media Player доповідає, що дивиться і слухає кожен користувач. Amazon Kindle доповідає, які сторінки і яких книг заглядає користувач і коли він це робить. Angry Birds доповідає про історію переміщення користувача по земній кулі.

На відміну від невільних програм, послугам замість програм не вимагається потайних підпрограм, щоб одержувати дані користувача. Замість цього користувачі повинні посилати дані на сервер, щоб користуватися ним. Це приводить до тих же результатів, що програми-шпигуни: оператор сервера отримує дані — без додаткових зусиль, в силу самої природи послуги. Емі Уебб, не збиралася ніколи розміщувати в мережі фотографії своєї дочки, зробила помилку, користуючись послугою замість програми (Instagram), щоб редагувати її фотографії. Зрештою звідти стався витік фотографій.

Теоретично гомоморфне шифрування можливо коли-небудь підійде до точки, де майбутні послуги замість програм будуть побудовані так, що вони не спроможуть зрозуміти деякі дані, що надсилаються користувачами до них. Такі послуги можуть бути задані, щоб не підглядати за користувачами; це означає, що вони не будуть займатися стеженням.

У деяких вільних операційних системах є універсальний чорний хід, який дозволяє декому віддалено встановлювати змінені програми. Наприклад,в Windows є універсальний чорний хід, через який Microsoft може примусово змінювати будь-які програми на машині. Вони є майже у всіх мобільних телефонах. У деяких невільних програмах також є універсальний чорний хід; наприклад, клієнт Steam для Linux дозволяє розробнику віддалено встановлювати змінені версії.

У разі послуг замість програм оператор сервера може змінювати використовувані програми на сервері. Він повинен бути в змозі робити це, оскільки це його комп'ютер; але результат виявляється таким же, як при користуванні невільною прикладною програмою з універсальним чорним ходом: дехто має змогу мовчки нав'язувати зміни у те, як проводяться обчислення користувача.

Таким чином, послуга замість програми означає виконання невільної програми зі стеженням і універсальним чорним ходом. Вона дає оператору сервера несправедливу владу над користувачем, і встановленню цієї влади ми повинні чинити опір.

Послуги замість програм і програми-послуги

Спочатку ми посилалися на цю проблематичну практику як на “програми-послуги” (SaaS). Це загальновживаний вираз,що означає установку програми на сервері замість того, щоб пропонувати їїкопії користувачам, і ми думали, що вона описує саме ті випадки, вяких виникає проблема.

Згодом ми дізналися, що вираз “програма-послуга” іноді вживається для позначення послуг зв'язку    діяльності, в якій ця проблема не виникає. Крім того, вираз “програма-послуга” не пояснює, чим погана ця практика. Отож, ми придумали вираз “послуга замість програми”, який точніше визначає порочну практику і пояснює, чим вона погана.

Поділ проблем послуг замість програм і невільних програм

Послуги замість програм і невільні програми призводять до подібних шкідливих наслідків, але механізми цього різні. У разі невільних програм у вас встановлена і застосовується копія, змінювати яку важко і незаконно. Вразі послуг замість програм у вас немає копії програми, яка проводить ваші обчислення.

Ці дві проблеми часто змішують і це не випадково. Розробники програм для Інтернету користуються туманним терміном “інтернет-програма”, щоб звалити в одну купу програми сервера і програми,які виконуються на вашій машині в браузері. Деякі сайти встановлюють вам в браузер нетривіальні і навіть великі програми на мові JavaScript, не кажучи вам про це. Коли ці програми невільні, це проблема того ж ґатунку, як і будь-які інші невільні програми. Однак тут ми розглядаємо проблему програм на сервері.

Багато прихильників вільних програм вважають, що розробка вільних програм для серверів вирішить проблему послуг замість програм. Для оператора сервера краще, коли програми на сервері вільні; якщо вони невільні, то у їхніх власників є влада над сервером. Це несправедливо по відношенню до оператора сервера і нічим не допомагає користувачам. Але якщо програми на сервері вільні, то це не захищає користувачів сервера від дії послуг замість програм. Вони дають свободу оператору сервера, але не його користувачам.

Публікація вихідних кодів програм сервера для суспільства корисна: вона дозволяє досить компетентним користувачам організувати подібні сервери, можливо, із зміненими програмами. Ми рекомендуємо застосовувати GNU Affero GPL як ліцензії програм, що часто використовуються на серверах.

Але ні один з цих серверів не дасть вам контролю над обчисленнями, які ви на ньому проводите, якщо це не ваш сервер. Можливо допустимо довіряти деякі роботи серверу свого приятеля, точно так само, як ви могли б дозволити своєму приятелеві адмініструвати програми на вашому комп'ютері. Все інше є для вас послугою замість програми. Послуга замість програми завжди підпорядковує вас владі оператора сервера, і єдиний засіб від цього   не користуйтеся послугами замість програм! Не користуйтеся жодним чужим сервером для своєї власної обробки даних, наданих вами.

Ця проблема показує, наскільки глибока різниця між “відкритим” та “вільним”. Вихідний текст, який відкритий, майже завжди вільний. Однак думка про “відкритіпрограмні” послуги, тобто послуги, в яких програми сервера є вільними або програмами з відкритим вихідним текстом, не вирішує проблеми послуг замість програм.

Служби принципово відрізняються від програм, тому етичні проблеми, порушені службами, принципово відрізняються від проблем, що спричинені програмами. Щоб уникнути плутанини, ми уникаємо описувати служби як “вільні” або “невільні”.

Відмінність між послугами замість програм і іншими мережевими послугами

Відмова від програм замість послуг не означає відмову від користування будь-якими мережевими серверами, які не контролюєте ви. Для більшості серверів проблема програм замість послуг не стоїть, тому що завдання, які вони вирішують, не є власними обчисленнями користувача.

Інший яскравий приклад   застосування такої служби, як Flickr або Instagram, для зміни фотографії. Зміна фотографій — діяльність, яку люди проводили на своїх комп'ютерах десятиліттями; проведення цієї обробки на сервері замість вашого комп'ютера є послугою замість програми.

Відмова від послуг замість програм не означає відмову від користування будь-якими мережевими серверами, які не контролюєте ви. Для більшості серверів проблема послуг замість програм не стоїть, тому що завдання, які вони вирішують, не є власними обчисленнями користувача.

Спочатку ідея серверів Інтернету полягала не в тому, щоб здійснювати для вас обчислення, а в тому, щоб надавати доступ до інформації. Навіть сьогодні саме цим займається більшість сайтів, а це не призводить до проблеми послуг замість програм, тому що доступ до чиїх-небудь опублікованих відомостей не є вашим власним обчисленням. Як і публікація ваших власних матеріалів на сайті блоґів або такій службі мікроблоґів, як Twitter або StatusNet (з цими службами, звичайно, теж можуть бути інші проблеми). Те ж саме стосується іншої форми спілкування, яка не передбачає зберігати таємниці, на кшталт груп у чаті.

По суті своїй соціальні мережі представляють собою різновид зв'язку та публікацій, а не послуги замість програм. Однак у служби, головна функція якої полягає у підтримці соціальної мережі, можуть бути можливості або розширення, які є послугами замість програм.

Те, що служба не є послугою замість програми, не означає, що в ній немає нічого поганого. У служб є і інші етичні проблеми. Наприклад, Facebook поширює відео у форматі Flash, це примушує користувачів до застосування невільних програм; він вимагає виконання невільної програми на JavaScript; крім того, сайт створює у користувачів помилкове відчуття конфіденційності, спокушаючи в той же час їх оголювати своє життя перед Facebook. Це теж важливі питання, але ця стаття присвячена проблемі послуг замість програм.

Такі служби, як пошукові сервери, які збирають дані по всьому Інтернету і дозволяють вам досліджувати їх. Перегляд зібраних ними даних — не ваші власні обчислення в звичайному сенсі (ви не надаєте цих зібраних даних), тому коли такою службою користуються для пошуку в Інтернеті, це не послуга замість програми. Однак якщо ви користуєтеся чужим сервером, щоб реалізувати засіб пошуку на власному сайті, то це є послугою замість програми.

Покупки в мережі — не послуга замість програми, тому що ці обчислення ваші власні: вони проводяться спільно з вами для вас і магазину. Насправді проблема покупок по мережі полягає в тому, чи ви довіряєте іншій стороні свої гроші та інші відомості про свою особу (починаючи з вашого імені).

Такі сайти-сховища, як Savannah і SourceForge, не обов'язково є послугами замість програм, тому що їхня робота полягає в публікації переданих у них даних.

Користування спільними серверами проекту — не послуга замість програми, тому що обчислення, які ви таким чином проводите, не є вашими власними. Наприклад, якщо ви правите сторінки Вікіпедії, ви не проводите своїх власних обчислень: ви берете участь в обчисленнях Вікіпедії. Вікіпедія контролює свої власні сервери, але як організації, так і приватні особи стикаються з проблемою послуг замість програм, якщо вони проводять свої обчислення на чужому сервері.

Деякі сайти пропонують декілька послуг, і якщо одна з них не є послугою замість програми, то інша може нею бути. Наприклад, головна послуга сайту Facebook   соціальна мережа, і це не послуга замість програми; однак він підтримує програми третіх сторін, деякі з яких є послугами замість програм. Головна послуга сайту Flickr  — поширення фотографій, і це не послуга замість програми, але у нього є також можливості редагування фотографій, а це — послуга замість програми. Точно так само застосування сайту Instagram для публікації фотографії не є послугою замість програми, але застосування його для перетворення фотографії нею є.

Приклад Google Docs показує, як складно може бути оцінити одну - єдину службу. Вони запрошують людей редагувати документи, виконуючи велику невільну програму на JavaScript, що вже погано. Однак вони пропонують протокол для завантаження і вилучення документів в стандартних форматах. Вільна програма   редактор може робити це по цьому протоколу. Ця схема користування не є послугою замість програми, тому що в цьому випадку Google Docs застосовується лише як сховище. Показати всі свої дані компанії погано, але це проблема конфіденційності, а не послуг замість програм; залежність доступу до ваших даних від служби  — це погано, але це проблема ризику, а не послуг замість програм. З іншого боку, застосування служби для перетворення формату документів є послугою замість програми, тому що це щось, що ви могли б зробити, виконавши відповідну програму (вільну, ми сподіваємося) на своєму власному комп'ютері.

Звичайно, з допомогою вільного редактора службою Google Docs користуються рідко. Найчастіше нею користуються з допомогою невільною програми на JavaScript, яка так само погана, як будь-яка поневолена програма. В цю схему могла б входити і послуга замість програми; це залежить від того, яка частина редагування проводиться в програмі на JavaScript, а яка — на сервері. Ми цього не знаємо, але оскільки послуги замість програм і невільні програми подібним чином несправедливі до користувача, знати це не так важливо.

При публікації з допомогою чужого сховища питання конфіденційності не виникають, але при публікації з допомогою Google Docs виникає особлива проблема: неможливо навіть переглянути текст документа Google Docs в браузері без невільної програми на JavaScript. Таким чином, вам не слід користуватися Google Docs для публікації чого б то не було  — але причина цього не пов'язана з проблемою послуг замість програм.

Інформаційна індустрія заохочує користувачів не проводити цих відмінностей. Саме для цього вживається співзвучний вираз “хмарні обчислення”. Цей термін настільки розпливчастий, що його можна вжити майже до будь-якого застосунку в Інтернеті. Він включає послуги замість програм, а також багато інших схем застосування мережі. У будь-якому даному контексті автор, який пише “хмарні” (якщо це технічний спеціаліст), ймовірно, має на увазі щось конкретне, але зазвичай не пояснює, що в інших статтях цей прикметник приймає інші конкретні значення. Вираз змушує людей робити узагальнення про методи, які вони повинні розглядати окремо.

Якщо “хмарні обчислення” щось означають, то це не метод обчислень, а спосіб мислення про обчислення, безтурботний підхід: “Не задавай питань. Не турбуйся про те, хто контролює твої обчислення і хто тримає твої дані. Не перевіряй, чи не захований в послузі гачок, поки його не ковтнеш. Довіряй компаніям безмежно”. Іншими словами, “будь простаком”. Хмара у голові може перешкодити мислити ясно. Для чітких думок про обчислювальну техніку давайте уникати слова “хмарні”.

Оренда сервера, відмінна від послуг замість програм

Якщо ви орендуєте сервер (справжній або віртуальний), набір програм якого ви контролюєте, це не послуга замість програм. У разі послуги замість програм хтось інший вирішує, які програми працюють на сервері, і тим самим контролює обчислення, які сервер для вас проводить. У випадку,коли ви встановлюєте програми на сервері, саме ви контролюєте, які обчислення він для вас проводить. Отже, орендований сервер суті є вашим комп'ютером. У контексті цієї проблеми його можна вважати вашим.

Дані на орендованому сервері захищені гірше, ніж якби він був у вас вдома, але ця проблема не пов'язана з послугами замість програм.

Вирішення проблеми послуг замість програм

Тільки невелика частка сайтів Інтернету пропонує послуги замість програм; більшості з них ця проблема не стосується. Але що робити з тими, яких це стосується?

У найпростішому випадку, коли ви проводите власні обчислення над своїми даними, рішення просте: користуйтеся своєю власною копією вільної програми. Редагуйте свій текст у своїй копії вільного текстового редактора, такого, як GNU Emacs або вільний текстовий процесор. Редагуйте свої фотографії у своїй копії вільної програми, такої, як GIMP. А якщо немає ніякої вільної програми? Невільна програма або послуга замість програми відняла б у вас свободу, тому вам не слід ними користуватися. Ви можете вкласти свій час або гроші в розробку вільної заміни.

А як співпрацювати з іншими людьми в групі? В даний час це може бути важко без використання сервера, а у вашій групі можуть не знати, як організувати власний сервер. Якщо ви використовуєте чужий сервер, не покладайтеся хоча б на сервер, адміністрований компанією. Просто уклавши угоду як клієнт, ви не захищені, поки ви не в змозі виявити порушення і по-справжньому подати в суд, а компанія, ймовірно, формулює контракти так, щоб допускалися зловживання в широких межах. Держава може зажадати ваші дані від компанії, разом з даними всіх інших людей, як це зробив Обама з телефонними компаніями, якщо тільки компанія не надасть їх добровільно, як телефонні компанії США, які нелегально передавали розмови своїх клієнтів Бушу. Якщо вам необхідний сервер, користуйтеся сервером операторів, яким ви можете довіряти не тільки на підставі комерційних відносин.

Однак у довгостроковій перспективі ми можемо створити альтернативи серверів. Наприклад, ми можемо створити децентралізовану програму, за допомогою якої співробітники зможуть обмінюватися зашифрованими даними. Спільноті вільного програмного забезпечення слід розробити розподілені однорангові заміни найважливіших “інтернет-додатків”. Можливо, було б мудро випускати їх під GNU Affero GPL, позаяк це відповідні кандидатури для перетворення їх ким-небудь в програми, які базуються на сервері. Проект GNU шукає добровольців для роботи над такими замінами. Ми також закликаємо інші проекти по розробці вільних програм враховувати цю проблему у своїй роботі.

А поки, якщо компанія запрошує вас користуватися її сервером для ваших власних обчислювальних завдань, не поступайтеся їй; не користуйтеся послугами замість програм. Не купуйте і не встановлюйте “тонкі клієнти”, які являють собою не що інше, як комп'ютери, настільки слабкі, що ви змушені робити всю справжню роботу на сервері якщо тільки ви не збираєтеся використовувати їх з своїм сервером. Користуйтеся цим комп'ютером і зберігайте свої дані на ньому. Виконуйте свої власні обчислення з допомогою своєї копії вільної програми заради вашої власної волі.

Дивіться також:

Помилка, в якій нікому не дозволено розібратися.