Можем ли мы предположить, что все пользователи сегодня имеют доступ к Интернету?

18

Поскольку Интернет в значительной степени повсеместен, можем ли мы, как разработчики, предполагать, что все пользователи имеют доступ к Интернету? Теперь я не имею в виду, что код написан таким образом, что при отсутствии соединения вся программа падает из-за отсутствия кода ошибки. Я имею в виду, могут ли программы сегодня разрабатываться в предположении, что их пользователи всегда будут иметь доступ к Интернету?

Вы можете спросить: «Что мы получим, если предположим, что?» Причина, по которой я спрашиваю, состоит в том, что в универе мы используем довольно много программ, которым требуется доступ к Интернету из-за того, как он проверяет лицензии (он проверяет ваш IP-адрес - если это не адрес в кампусе, то вы не разрешается использовать его). Обратите внимание, что сама программа должна нормально работать без доступа к Интернету; это просто необходимо для проверки лицензии.

РЕДАКТИРОВАТЬ: я говорю о настольных приложений здесь.

РЕДАКТИРОВАТЬ 2: Из некоторых ответов я чувствую, что меня обвиняют в неэтичной эксплуатации пользователей. Я не одобряю то, что я описал в этом вопросе - я просто спрашиваю об этом, потому что разработчики некоторых программ, которые мы используем в универе, сделали это. Лично я думаю, что делать это просто глупо и неправильно.

gablin
источник
4
В идеале проверка лицензии даже не будет проблемой.
альтернатива
1
настольное приложение? мобильное приложение?
Марси
@Marcie: Ах. Я имел ввиду настольные приложения. Вопрос обновлен.
Габлин
7
У меня может быть доступ в Интернет, но брандмауэру моей компании может не понравиться мой компьютер, разговаривающий с вашим компьютером :)
Тим Пост
Обратите внимание, что веб-доступ не является доступом к Интернету.
MSalters

Ответы:

45

Плохая идея по трем причинам. Во-первых, несмотря на то, что у всех есть доступ к Интернету в наши дни, что в принципе верно, они не всегда имеют его в наличии всегда. Моя основная машина - это ноутбук, и он большую часть времени подключен, но, к примеру, не в автобусе.

Во-вторых, и вроде как связано с первым, это ваш метод проверки. Что если студент получит законную копию программы, поместит ее на свой портативный компьютер и отправится учиться к другу, который живет за пределами кампуса? Вы только что добавили ложное срабатывание при проверке лицензии.

В-третьих, есть этическая проблема с проверкой лицензии в первую очередь. Если человек решает разместить программу на своем компьютере, вы не имеете права заставлять его компьютер считать его недействительным. В любом другом контексте, называемом хакерством, и это может привести к тому, что вы попадете во все виды горячей воды, и только потому, что наши авторские права были угнаны владельцами авторских прав, чтобы сделать юридическое исключение для этого случая в особом случае, это не делает его правильным ,

Обеспечение соблюдения закона - это работа правоохранительных органов, и частным лицам крайне не рекомендуется брать правоохранительные органы в свои руки (бдительность), потому что они склонны все делать неправильно. (Просто посмотрите на руткит Sony!)

Ваш лучший способ действий - предположить, что у пользователя есть доступ к Интернету для функций, которые на самом деле требуют его, но не требуют его для функций, которые могут обойтись без него, и, конечно, не требуют его просто для убеждения программы в том, что это не незаконная копия!

Мейсон Уилер
источник
2
примечание к себе: голосование после
сброса
Я не думаю, что Габлин на самом деле заинтересован в разработке такой системы, он просто использует это в качестве примера (что мой университет также сделал с веб-сервисами, такими как JSTOR). Я согласен со всем, что вы предлагаете, хотя. Доступ в Интернет действительно не вездесущий ...
MSANFORD
2
Как только что сказал мсанфорд, я абсолютно не заинтересован в разработке такой системы. И я полностью согласен с вашим ответом - необходимость заходить в кампус из дома, чтобы иметь возможность удаленно работать в лаборатории, - боль в заднице! Я не могу понять, о чем они думали, когда разрабатывали такую ​​систему проверки, и я подумал: «Возможно, они предполагали, что у всех есть доступ к Интернету». Отсюда и этот вопрос. Опять же, хороший ответ. +1
Габлин
26
  • Не у всех пользователей есть доступ к интернету. Например, за пределами малых и средних городов (и их пригородов) и университетских городов в США почти нет широкополосной инфраструктуры. Небольшие городские и сельские пользователи, как правило, пользуются спутниковой или коммутируемой связью (и их телефонные линии не всегда являются лучшими, поэтому скорость соединения обычно ниже 50 к / с).

  • Пользователи с хорошим доступом в Интернет дома / в офисе часто работают в других местах: в парках, самолетах, кафе, конференц-залах и т. Д., Которым обычно не хватает надежного доступа в Интернет.

  • Многие пользователи инвестируют в резервное питание по определенной причине: поэтому они не испытывают простоев во время отключений. Если вы наносите вред своему приложению, когда интернет отключается, вы просто лишаете их этих инвестиций.

  • Сбой подключения к Интернету, интернет-провайдеры (или рабочие места, или университеты) блокируют трафик по собственному желанию, домашние пользователи неправильно конфигурируют свои NAT ... просто глупо создавать искусственную (то есть не техническую следствие создания вещи) точку отказа в вашем программном обеспечении.

Одних вышеперечисленных причин более чем достаточно, чтобы не использовать модель DRM «позвони домой»; но даже если бы ни один из них не был правдой, я бы все же советовал против этого, потому что, как Мейсон уже пытался указать, этически неправильно эксплуатировать ваших пользователей таким образом.

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

HedgeMage
источник
7
+1 за «создание искусственной точки отказа». Это очень хороший способ описать это.
Мейсон Уилер
16

Нет!

Все программы должны рассматривать доступ к Интернету в качестве наилучшего сценария с резервным режимом, когда компьютер может быть не подключен.

С таким количеством ноутбуков и с тем, что большинство общественных беспроводных сетей по-прежнему остаются платными, большинство пользователей ноутбуков будут регулярно сталкиваться с условиями, когда им нужно использовать свой компьютер и свои программы без подключения к Интернету. ,

Как и другие ответы, также можно предположить, что компьютер будет подключен в будущем. Многие приложения типа синхронизации, имеющие автономный режим, работают таким образом. Но, из вежливости по отношению к пользователям, не работайте таким образом, если это не услуга для пользователя . Я не думаю, что проверка лицензии попадает в эту категорию.

Николь
источник
15

нет

Вы не можете предполагать, что все пользователи имеют доступ к Интернету. Для базовой статистики нажмите здесь

Исключая веб-приложения, настольное приложение не должно думать, что оно имеет доступ к Интернету.

Темная ночь
источник
1
Мне нравится тот факт, что вы включили статистику в свой ответ. Способ дать материальные доказательства.
LazyPower
1
если это не браузер (хотя даже это меняется с HTML5).
dan_waterworth
2
Да, но даже браузер можно использовать в автономном режиме :) Есть много законных ситуаций, где это можно использовать. Например, в .NET элемент управления «веб-браузер» может быть встроен в формы. Это позволяет настольному приложению создавать HTML (например, отчеты) и отображать их во встроенной форме, файл HTML либо передается в память (загружается из строки), либо читается с жесткого диска.
Темная ночь
Даже веб-приложения могут быть основаны исключительно на интрасети, и пользователи могут вообще не иметь доступа к Интернету.
MartW
6

Короткая версия НЕТ, вы не можете предполагать, что все пользователи имеют доступ к Интернету. Как уже упоминалось, есть большое количество людей с ограниченным доступом к Интернету или вообще без него.

Ваша схема лицензирования должна быть в состоянии справиться со случаем, когда компьютер, на котором будет работать программное обеспечение, никогда не будет иметь доступа к Интернету. Для корпораций не так уж необычно иметь сети, которые изолированы от Интернета (особенно когда речь идет о проблемах безопасности). Это особенно верно, если вы когда-нибудь захотите иметь возможность продавать программное обеспечение государственному органу. Другая сторона, как вы будете обрабатывать обновления? Если вы захотите продать корпорации / правительству, вам придется поддержать развертывание обновлений на предприятии.

Кен Хендерсон
источник
4

Да, в том смысле, что большинство людей, работающих с компьютерами, могут получить доступ к интернет-соединению (так что, вероятно, нормально распространять исправления ошибок через менеджер пакетов или FTP или подобное).

Нет, в том смысле, что большинству людей не обязательно иметь постоянный, надежный и эффективный доступ к Интернету в течение всего дня (поэтому допущение, что каждый из ваших пользователей может постоянно снижать скорость до 20 Мбит / с, вероятно, является плохой идеей. Люди также периодически используют шины и самолеты, где вам почти гарантировано отсутствие связи).

Inaimathi
источник
2

Я думаю, что разумно предположить, что все пользователи будут иметь доступ в Интернет большую часть времени или, по крайней мере, во время установки. Однако, если я возьму свой ноутбук с собой в самолет, в каюту в лесу или на лодку в море, я ожидаю, что все, что явно не требует доступа в Интернет, будет работать нормально.

Брант Бобби
источник
3
На самом деле, сетевой доступ во время установки является плохим предположением. Не всегда возможно или допустимо подключить компьютер, на котором необходимо запустить программное обеспечение, к Интернету, поэтому важно разрешить кому-либо загружать необходимые файлы с другого компьютера, а затем вручную передавать их на компьютер, на котором они должны быть установлены.
Крис Страттон
1

Ответ, конечно, зависит. Если вы создаете программное обеспечение для заводского цеха, есть большая вероятность, что у них не будет доступа в Интернет. Для потребительских приложений они, скорее всего, будут.

Craig
источник
1

Может быть нежелательно иметь подключение к Интернету, как в случае пользователей, которые используют мою систему управления Pawnshop (настольное приложение на основе RDBMS). Они просто не верят в то, что Интернет подключен к одному и тому же компьютеру, на котором хранится личная информация всех клиентов и транзакции в ломбардах. Если они хотят получить доступ к Интернету, они используют отдельный компьютер, на котором нет личной информации!

Фрэнк Р.
источник
0

Плавающий сервер лицензирования является аналогичной концепцией. Я использовал компилятор в IBM AIX, который постоянно проверялся на сервере лицензирования. Таким образом, это было медленно, и мы наконец перенесли код в gcc.

Это хрупко и раздражает. Я думаю, что это имеет смысл только для очень дорогого программного обеспечения почти монополистическими компаниями.

LennyProgrammers
источник