第一个应用程序(基于网络)将位于site1,一旦信息被处理,它将被发送到位于site2的第二个应用程序(基于web)。Application2需要能够与application1做同样的事情。因此,必须有一种方法来共享数据库,使数据保持同步。我想为这两种应用程序建立网络,但问题出现了,如果互联网瘫痪了怎么办?如果application1因停电或网络丢失而瘫痪,application2应该仍然能够做它需要做的事情。我以为数据库/服务器将在亚马逊的EC2上。
即使我为site1和site2提供了一个独立的应用程序,它仍然需要某种互联网连接才能与共享数据库/服务器对话,对吗?因此,我不明白为什么它不应该仅仅是一个基于网络的应用程序。这就是我和我的团队之间的分歧。
我想知道做这两个应用程序的利弊,要么是独立的,要么是基于网络的。
发布于 2013-03-08 19:20:32
在上网或独立之前,先弄清楚你的业务领域。
可以有一个庞大的列表,但这里只有几点是独立的:
优点:
缺点:
发布于 2013-03-07 22:16:12
听起来应该是一个基于功能的多个模块的web应用程序。用户将在不同的域下输入,并根据角色和权限访问某些数据。如果创建单独的代码库,那么在创建冗余代码时可能会浪费大量的时间和精力(因此也会浪费金钱)。
发布于 2013-03-09 05:13:37
除非你运行的是某种可能会失败的代理服务器,否则互联网崩溃就意味着一个网络分区。由于HTTP是通过TCP的,所以"internet关机“可能意味着您无法在这两个节点之间建立TCP连接。我倾向于基于web的,因为端口80和443通常是通过防火墙打开的,而在某些环境中,奇怪的端口可能是一个问题。
无论哪种方式,您都可能需要通过计算如何表示更改来处理分区(也就是说,每条消息都是要在目标节点上执行的序列化方法调用)。当您检测到一个分区(因为您无法建立网络连接)时,您将消息排队。棘手的部分是检测分区已被治愈,现在您可以将积压的消息刷新到目的地。
然而,这就是CAP的发展方向,一旦您有了一个网络分区,您就必须在可用性和一致性之间做出选择。http://en.wikipedia.org/wiki/CAP_定理。这是一个比运输层更大、更棘手的问题。
https://softwareengineering.stackexchange.com/questions/189662
复制相似问题