我们可以假定今天所有用户都可以访问互联网吗?


18

由于Internet几乎无处不在,我们作为开发人员是否可以假设所有用户都可以访问Internet?现在,我并不是说代码的编写方式是:如果没有连接,则由于缺少错误代码,整个程序将崩溃。我的意思是,今天的程序是否可以在假设其用户将始终可以访问Internet的情况下进行开发?

您可能会问:“假设这一点会获得什么?” 我问的原因是因为在uni我们使用了很多程序,这些程序由于检查许可证的方式而需要Internet访问(它检查您的IP地址-如果它不是校园地址,那么您就是不允许使用)。请注意,程序本身在没有Internet访问的情况下应该可以正常运行;仅用于许可证检查。

编辑: 我在这里谈论桌面应用程序。

EDIT2: 从一些答案中,我有一种被指控以不道德的方式利用用户的感觉。我同意我在这个问题中描述的内容-我只是在问这个问题,因为我们在uni上使用的某些程序的开发人员已经做到了。我个人认为这样做显然是愚蠢和错误的。


4
理想情况下,许可证检查甚至都不是问题。
替代

1
桌面应用程序?移动应用?
Marcie 2010年

@Marcie:啊。我的意思是桌面应用程序。问题已更新。
gablin

7
我可能可以访问互联网,但是我的公司防火墙可能不喜欢我的计算机与您的计算机通信:)
Tim Post

请注意,网络访问不是Internet访问。
MSalters 2011年

Answers:


45

不好的主意,有三个原因。首先,即使现在每个人都可以访问Internet,这基本上是正确的,但他们并不总是始终都可用。我的主要机器是一台笔记本电脑,它经常连接,但例如当我在公交车上时,却没有连接。

第二,与第一有关的是您的检查方法。如果学生获得了程序的合法副本,将其放在笔记本电脑上,然后与住在校外的朋友一起学习怎么办?您刚刚在许可证检查中引入了一些假阳性条件。

第三,首先,许可证检查存在道德问题。如果某人选择将程序放置在其计算机上,则您无权使他们的计算机视为无效程序。在任何其他情况下(称为黑客攻击),它都可能使您陷入各种困境,并且仅仅因为我们的版权法被版权所有者劫持,以针对这种情况做出特殊情况的法律豁免,所以这样做并不对。

执法是执法的工作,个人不愿将执法权掌握在自己的手里(警惕),因为他们倾向于做错一切。(只看索尼的rootkit!)

最好的做法是假设用户可以使用Internet来连接实际需要它的功能,而无需使用Internet连接就可以使用那些不需要它的功能,当然也不需要它只是为了说服程序这不是非法拷贝!


2
自我提醒:当投票计数器复位投了
Inaimathi

我不认为gablin实际上对设计这样的系统感兴趣,他只是以它为例(我的大学也使用JSTOR等基于Web的服务来做这件事)。不过,我同意您的建议。互联网访问确实并非无处不在……
msanford 2010年

2
正如msanford所说,我对设计这样的系统绝对不感兴趣。我完全同意您的回答-必须在家中将VPN接入校园才能远程工作,这实在是太痛苦了!我不明白他们在设计这样的验证系统时的想法,我想到“也许他们以为每个人都可以访问Internet”。因此,这个问题。同样,好的答案。+1
加布林

26
  • 并非所有用户都可以使用互联网。例如,在中小城市(及其郊区)和大学城之外,美国几乎没有宽带基础设施。小镇和农村用户通常使用卫星或拨号(他们的电话线并不总是最好的,因此拨号速度通常低于50k / s)。

  • 在家/办公室拥有良好互联网访问权限的用户通常在其他地方运营:公园,飞机,咖啡馆,会议场所等,这些地方通常缺乏可靠的互联网访问权限。

  • 许多用户投资备用电源是有原因的:因此,他们不会在停机期间经历停机时间。如果您在互联网瘫痪时瘫痪了您的应用程序,那么您只是抢了他们的这项投资。

  • 互联网连接失败,ISP(或工作场所或大学)一时兴起阻止流量,家庭用户错误配置其NAT ...造成人为的(即不是构建事物的技术性后果)失败点只是愚蠢的做法在您的软件中。

仅上述原因就足以不使用“回拨电话” DRM模型。但是即使它们都不是真的,我还是会建议这样做,因为正如梅森(Mason)曾试图指出的那样,以这种方式利用用户在道德上是错误的。

您不会只是为了自己的想法而公开有关用户的信息。您无权监视他们何时何地使用软件。这样做会破坏用户的信任。


7
+1表示“创建人为的故障点”。这是描述它的好方法。
梅森惠勒2010年

16

没有!

所有程序都应考虑最好的情况是访问Internet,并在不连接计算机时使用后备模式。

由于有如此多的笔记本电脑,而且大多数公共无线网络仍需付费使用,因此大多数笔记本电脑用户将经常遇到需要在不连接互联网的情况下使用其计算机和程序的情况。

就像其他答案一样,可以安全地假设计算机将在将来的某个时间连接。许多具有脱机模式的同步型应用程序都是以这种方式工作的。但是,出于对用户的礼貌,除非它是对用户的服务,否则请不要以这种方式操作。我认为许可证检查不属于这一类。


15

没有

您不能假设所有用户都可以访问互联网。 有关基本统计信息,请单击此处

Web应用程序外,我不认为桌面应用程序可以访问Internet。


1
我喜欢您在答案中包含统计信息的事实。提供具体证据的方式。
lazyPower 2010年

1
除非它是浏览器(尽管HTML5甚至在改变它)。
dan_waterworth 2010年

2
是的,但是即使是脱机浏览器也可以脱机使用:)在许多合法的情况下都可以使用它。例如,在.NET中,“ Web浏览器”控件可以嵌入表单中。这允许桌面应用程序创建HTML(例如报告)并在嵌入式表单中显示它们,HTML文件可以传递到内存中(从字符串中加载)或从硬盘驱动器中读取。
2010年

甚至Web应用程序也可能完全基于Intranet,并且用户可能根本无法访问Internet。
MartW 2010年

6

简短版本为“否”,您不能假设所有用户都可以访问互联网。正如其他人所提到的,有很多人在家中互联网访问有限或没有互联网。

您的许可方案应能够处理将要运行该软件的计算机永远无法访问Internet的情况。公司拥有与Internet隔离的网络(这在处理安全问题时尤其如此)并非异常。如果您永远希望能够将软件出售给政府机构,则尤其如此。另一面是您将如何处理更新?如果要出售给公司/政府,则必须支持企业推出更新。


4

是的,因为大多数使用计算机的人都可以访问Internet连接(因此可以通过程序包管理器或FTP或类似程序分发错误修复程序)。

从某种意义上说,大多数人不一定全天都具有一致,可靠,高性能的互联网访问权限(因此,假设您的每个用户都可以持续拉低20mb / s可能不是一个好主意。人们也定期使用总线)以及您几乎可以保证没有连接的飞机)。


2

我认为可以合理地假设所有用户大部分时间或至少在安装时都可以访问Internet 。但是,如果我将笔记本电脑随身携带在飞机上,树林中的小木屋中,或者在海上航行的船上,我希望所有显然不需要互联网访问即可正常工作的东西。


3
实际上,在安装时进行网络访问是一个错误的假设。将需要运行软件的计算机连接到Internet并非总是可能或不允许的,因此,重要的是允许某人使用另一台计算机下载必要的文件,然后手动将其传输到要安装它们的计算机上。
克里斯·斯特拉顿

1

答案当然取决于。如果您要为工厂车间构建软件,则他们很可能无法访问互联网。对于消费类应用,他们很可能会这样做。


1

可能不希望有Internet连接,例如使用我的Pawnshop Management System(基于RDBMS的桌面应用程序)的用户。他们只是不信任将互联网连接到拥有所有客户个人信息和当铺交易的同一台计算机。如果他们要访问网络,则使用另一台没有任何个人信息的计算机!


0

浮动许可服务器是一个类似的概念。我在IBM的AIX上使用了一个编译器,该编译器会不断检查许可服务器。因此速度很慢,我们最终将代码移植到了gcc。

脆弱而烦人。我认为这只对几乎垄断性公司的非常昂贵的软件有意义。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.