我和一位同事试图集思广益,列出应用程序开发人员可以编写一个程序的不同方式,使一台计算机上的用户能够在另一台计算机上远程运行,同时在他们自己的计算机上显示。她建议,所有的可能性只能分为三类:
我想我理解应用程序开发人员如何使用第一个模型来处理这个问题(例如,编写一个通过协议在服务器上使用服务的应用程序)。我不确定第二种模式与第一种有何不同,我也不明白在这种情况下“设备”一词意味着什么。
我想知道的是,在为新应用程序设计策略时,应用程序开发人员应该如何比较这些备选方案--该策略将被远程使用?
发布于 2013-10-10 21:25:17
我不确定这是否属于上述类别之一,但一种网络模型是可能的。假设您有两个功能相同的客户端。虽然它们共享一个数据源,但可以同时驻留在两个客户端上,也可以完全分离。
在这两种情况下,您都需要考虑数据源在被另一个客户端(带有更早的时间戳)的请求击中时遇到的冲突,但可以轻松地实现类似于microsoft office产品的独占写入。或者走谷歌的路线,看似同步写作。
这只是个想法。Web应用程序似乎是远程访问资源的良好解决方案。
发布于 2013-10-10 20:15:57
要理解你的同事的意思,最好的方法是问她,而不是假设这些名字指的是其他人共享的标准概念。问她。
如果我尝试破译这些术语,我会说第一个是使用终端服务/远程桌面(在Windows上),其中一个瘦客户端应用程序(远程Deskto客户机)充当在服务器上运行的进程的窗口,在服务器上实际的进程正在执行。类似的概念是Unix机器上的X窗口系统,其中应用程序在一个进程或服务器( renders )中运行,它向只呈现UI的X客户端进程发送命令(如Open Window、Show UI等)。
我想,第二个选项是您为#1所建议的。您编写的应用程序在您的机器上本地运行,但在逻辑上相对较薄--它访问一个远程服务,在那里执行业务逻辑和繁重工作,获取结果,并在本地显示它们。在这个场景中,本地完成的工作更多,而不仅仅是服务器手中的UI傀儡,客户端负责询问数据并显示数据。尽管如此,操作的大脑仍然在远程机器上。
至于#2,术语“either”主要用于指您购买的第三方软件(例如邮件服务器或数据库),它不必安装在计算机上,而是已经在自己的计算机(物理服务器或虚拟机)上预先配置。我不知道这和你的问题有什么关系。
https://softwareengineering.stackexchange.com/questions/214088
复制相似问题