Czy możemy założyć, że wszyscy użytkownicy mają dziś dostęp do Internetu?


18

Ponieważ Internet jest niemal wszechobecny, czy jako programiści możemy założyć, że wszyscy użytkownicy mają dostęp do Internetu? Teraz nie mam na myśli, że kod jest napisany w taki sposób, że jeśli nie ma połączenia, cały program ulega awarii z powodu braku kodu błędu. Mam na myśli to, czy programy można dziś opracowywać przy założeniu, że ich użytkownicy zawsze będą mieli dostęp do Internetu?

Możesz zapytać „Co zyskujemy, zakładając, że?” Powodem, dla którego pytam, jest to, że w uni korzystamy z wielu programów, które wymagają dostępu do Internetu ze względu na sposób sprawdzania licencji (sprawdza twój adres IP - jeśli nie jest to adres w kampusie, to jesteś nie wolno go używać). Pamiętaj, że sam program powinien działać dobrze bez dostępu do Internetu; jest to po prostu potrzebne do sprawdzania licencji.

EDYCJA: Mówię tutaj o aplikacjach komputerowych.

EDYCJA 2: Z niektórych odpowiedzi mam wrażenie, że jestem oskarżany o wykorzystywanie użytkowników w nieetyczny sposób. Ja nie popierając tego, co już opisano w tej kwestii - Pytam o to, ponieważ twórcy niektórych programów, których używamy w uni tego zrobić. Osobiście uważam, że robienie tego jest po prostu głupie i złe.


4
Najlepiej byłoby, gdyby sprawdzanie licencji nawet nie stanowiło problemu.
alternatywny

1
aplikacja komputerowa? Aplikacja mobilna?
Marcie

@Marcie: Ah. Miałem na myśli aplikacje komputerowe. Pytanie zaktualizowane.
gablin

7
Mogę mieć dostęp do Internetu, ale zapora sieciowa mojej firmy może nie lubić mojego komputera rozmawiającego z twoim komputerem :)
Tim Post

Należy pamiętać, że dostęp do Internetu nie jest dostępem do Internetu.
MSalters

Odpowiedzi:


45

Zły pomysł z trzech powodów. Po pierwsze, mimo że obecnie każdy ma dostęp do Internetu, co w zasadzie jest prawdą, nie zawsze jest on dostępny przez cały czas. Moją podstawową maszyną jest laptop i jest podłączony przez większość czasu, ale nie na przykład, gdy jestem w autobusie.

Drugi i, w pewnym sensie, związany z pierwszym, to metoda sprawdzania. Co się stanie, jeśli student otrzyma uzasadnioną kopię programu, umieści ją na swoim laptopie, a następnie pójdzie na studia z przyjacielem, który mieszka poza kampusem? Właśnie wprowadziłeś do swojego testu licencji fałszywie pozytywny warunek.

Po trzecie, istnieje etyczny problem ze sprawdzaniem licencji. Jeśli dana osoba zdecyduje się umieścić program na swoim komputerze, nie masz prawa powodować, że jego komputer traktuje go jako nieważny. W każdym innym kontekście, który nazywa się hackowaniem i może wylądować w gorącej wodzie, a tylko dlatego, że właściciele praw autorskich zostali porwani przez właścicieli praw autorskich w celu specjalnego wyłączenia prawnego dla tego scenariusza, co nie jest właściwe .

Egzekwowanie prawa jest zadaniem organów ścigania, a osoby prywatne są bardzo zniechęcane do wzięcia egzekwowania prawa we własne ręce (czujność), ponieważ zwykle robią to wszystko źle. (Wystarczy spojrzeć na rootkit Sony!)

Najlepszym rozwiązaniem byłoby założenie, że użytkownik ma połączenie internetowe dostępne dla funkcji, które go faktycznie wymagają, ale nie wymaga go dla funkcji, które mogą się bez niego obejść, a na pewno nie wymaga go tylko do przekonania programu, że to nie jest nielegalna kopia!


2
uwaga do siebie: głosuj, gdy licznik głosów resetuje się
Inaimathi,

Nie sądzę, aby gablin był zainteresowany zaprojektowaniem takiego systemu, po prostu używa go jako przykładu (co mój uniwersytet również zrobił z usługami internetowymi takimi jak JSTOR). Zgadzam się jednak ze wszystkim, co sugerujesz. Dostęp do Internetu rzeczywiście nie jest wszechobecny…
msanford,

2
Jak właśnie powiedział msanford, absolutnie nie jestem zainteresowany zaprojektowaniem takiego systemu. I całkowicie zgadzam się z twoją odpowiedzią - konieczność połączenia VPN do kampusu z domu tylko po to, aby móc pracować zdalnie w laboratorium, jest uciążliwa! Nie rozumiem, co myśleli przy projektowaniu takiego systemu sprawdzania poprawności, i pomyślałem: „Może zakładali, że wszyscy mają dostęp do Internetu”. Stąd to pytanie. Znowu dobra odpowiedź. +1
gablin

26
  • Nie wszyscy użytkownicy mają dostęp do Internetu. Na przykład poza małymi i średnimi miastami (i ich przedmieściami) oraz miasteczkami uniwersyteckimi USA prawie nie mają infrastruktury szerokopasmowej. Użytkownicy z małych miasteczek i na wsi korzystają zwykle z satelity lub połączenia telefonicznego (a ich linie telefoniczne nie zawsze są najlepsze, więc połączenie telefoniczne jest często poniżej 50 k / s).

  • Użytkownicy z dobrym dostępem do Internetu w domu / biurze często działają w innych miejscach: parkach, samolotach, kawiarniach, salach konferencyjnych itp., Które zwykle nie mają niezawodnego dostępu do Internetu.

  • Wielu użytkowników inwestuje w zasilanie rezerwowe z jakiegoś powodu: aby nie mieli przestojów w czasie awarii. Jeśli okaleczysz swoją aplikację, gdy Internet przestanie działać, po prostu okradłeś ją z tej inwestycji.

  • Połączenia internetowe zawodzą, dostawcy usług internetowych (lub miejsca pracy lub uniwersytety) blokują ruch według własnego uznania, użytkownicy domowi źle konfigurują swoje NAT ... po prostu głupie jest tworzenie sztucznego (tzn. Nie technicznego skutku zbudowania rzeczy) punktu awarii w twoim oprogramowaniu.

Same powyższe powody są więcej niż wystarczające, aby nie używać modelu DRM „zadzwoń do domu”; ale nawet jeśli żadne z nich nie byłoby prawdą, nadal odradzam to, ponieważ, jak już wcześniej zauważył Mason, etycznie niewłaściwe jest wykorzystywanie użytkowników w ten sposób.

Nie możesz ujawniać informacji o swoich użytkownikach tylko dla własnego spokoju. Nie masz prawa monitorować, kiedy i skąd korzystają z twojego oprogramowania. Takie postępowanie narusza zaufanie użytkowników.


7
+1 za „utworzenie sztucznego punktu awarii”. To bardzo dobry sposób na opisanie tego.
Mason Wheeler,

16

Nie!

Wszystkie programy powinny uznać dostęp do Internetu za najlepszy scenariusz z trybem awaryjnym, gdy komputer może nie być podłączony.

Przy tak dużej liczbie laptopów oraz z uwagi na fakt, że większość publicznych sieci bezprzewodowych nadal jest płatnych, większość użytkowników laptopów będzie regularnie doświadczać warunków, w których będą musieli korzystać z komputera i programów bez połączenia z Internetem .

Jak również opublikowano inne odpowiedzi, można bezpiecznie założyć, że komputer zostanie podłączony w pewnym momencie w przyszłości. Wiele aplikacji typu synchronizacja, które mają tryb offline, działa w ten sposób. Jednak ze względu na uprzejmość użytkowników nie należy obsługiwać w ten sposób, chyba że jest to usługa dla użytkownika . Nie sądzę, że sprawdzanie licencji należy do tej kategorii.


15

Nie

nie można założyć, że wszyscy użytkownicy mają dostęp do Internetu. Aby wyświetlić podstawowe statystyki, kliknij tutaj

Wyłączając aplikacje internetowe, aplikacja komputerowa nie powinna w mojej opinii zakładać, że ma dostęp do Internetu.


1
Podoba mi się fakt, że w odpowiedzi umieściłeś statystyki. Sposób na przedstawienie namacalnych dowodów.
lazyPower

1
chyba że jest to przeglądarka (chociaż to się zmienia wraz z HTML5).
dan_waterworth,

2
Tak, ale nawet przeglądarki można używać w trybie offline :) Istnieje wiele uzasadnionych sytuacji, w których można z niej korzystać. Na przykład w .NET formant „przeglądarki internetowej” może być osadzony w formularzach. Dzięki temu aplikacja komputerowa może tworzyć HTML (np. Raporty) i wyświetlać je w postaci osadzonej, plik HTML jest albo przekazywany do pamięci (ładowany z ciągu), albo odczytywany z dysku twardego.
Darknight

Nawet aplikacje internetowe mogą być oparte wyłącznie na intranecie, a użytkownicy prawdopodobnie nie mają dostępu do Internetu.
MartW

6

Krótka wersja brzmi NIE, nie można zakładać, że wszyscy użytkownicy mają dostęp do Internetu. Jak wspomnieli inni, duża liczba osób ma ograniczony dostęp do Internetu w domu lub nie ma go wcale.

Twój system licencjonowania powinien być w stanie poradzić sobie z sytuacją, w której komputer, na którym uruchomione będzie oprogramowanie, nigdy nie będzie miał dostępu do Internetu. Nie jest niczym niezwykłym, że korporacje mają sieci odizolowane od Internetu (szczególnie w przypadku problemów związanych z bezpieczeństwem). Jest to szczególnie ważne, jeśli kiedykolwiek będziesz chciał móc sprzedawać swoje oprogramowanie agencji rządowej. Drugą stroną jest to, jak poradzisz sobie z aktualizacjami? Jeśli będziesz chciał sprzedawać korporacjom / rządom, będziesz musiał wspierać wdrażanie aktualizacji przez Enterprise.


4

Tak, w tym sensie, że większość osób pracujących z komputerami ma dostęp do połączenia internetowego (więc prawdopodobnie rozpowszechnianie poprawek błędów za pomocą menedżera pakietów lub FTP lub podobnego).

Nie w tym sensie, że większość ludzi niekoniecznie ma stały, niezawodny, wydajny dostęp do Internetu przez cały dzień (więc założenie, że każdy z twoich użytkowników może konsekwentnie obniżać prędkość 20 Mb / s, jest prawdopodobnie złym pomysłem. Ludzie również okresowo korzystają z autobusów i samoloty, w których prawie nie ma łączności).


2

Myślę, że rozsądnie jest założyć, że wszyscy użytkownicy będą mieli dostęp do Internetu przez większość czasu , a przynajmniej w czasie instalacji. Jeśli jednak zabiorę laptopa ze sobą w samolocie, do kabiny w lesie lub na łodzi na morzu, oczekiwałbym wszystkiego, co oczywiście nie wymaga dostępu do Internetu, aby dobrze działać.


3
W rzeczywistości dostęp do sieci w czasie instalacji jest złym założeniem. Nie zawsze jest możliwe lub dozwolone podłączenie komputera, na którym oprogramowanie musi być uruchomione, do Internetu, dlatego ważne jest, aby umożliwić komuś pobranie niezbędnych plików z innego komputera, a następnie ręczne przesłanie ich na komputer, na którym mają zostać zainstalowane.
Chris Stratton,

1

Odpowiedź jest oczywiście zależna. Jeśli budujesz oprogramowanie dla fabryki, istnieje duża szansa, że ​​nie będą oni mieli dostępu do Internetu. W przypadku aplikacji konsumenckich najprawdopodobniej będą.


1

Połączenie z Internetem może nie być pożądane, tak jak w przypadku użytkowników korzystających z mojego systemu zarządzania lombardem (aplikacja komputerowa oparta na RDBMS). Po prostu nie ufają, że Internet jest podłączony do tego samego komputera, na którym przechowywane są wszystkie dane osobowe klientów i transakcje lombardowe. Jeśli chcą uzyskać dostęp do sieci, używają osobnego komputera, na którym nie ma żadnych danych osobowych!


0

Pływający serwer licencyjny to podobna koncepcja. Użyłem kompilatora w systemie AIX IBM, który stale sprawdzał serwer licencyjny. To było wolne i w końcu przenieśliśmy kod do gcc.

Jest delikatny i denerwujący. Myślę, że ma to sens tylko w przypadku bardzo drogiego oprogramowania prawie monopolistycznych firm.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.