Web服务 – Web服务与共享库

从我发现的这个问题已经被问了几次,

When should a web service not be used?
Web Service or DLL?

答案有帮助,但他们都有一点特定的情况.我想得到一个更普遍的想法.

何时应该通过共享库(DLL)考虑Web服务,反之亦然?

解决方法

我的想法:

Web服务专为机器互操作而设计,并且可以接触到观众
通过使用HTTP作为传输手段.

一个很重要的一点是,通过发布服务你也开放使用
服务于潜在的广泛的观众(在网络上或至少在整个的
整个公司)和/或大部分在您的控制/影响/沟通渠道之外
你不介意或这是需要的.客户端使用该服务容易得多
只需要有互联网连接并消费服务.不像一个图书馆
可能不是很容易做(但可以做到).该服务的使用大部分是开放的.你正在使用它,任何人觉得他们可以使用它,然而他们觉得使用它.

然而,Web服务通常较慢,并且取决于互联网连接.
通常比代码库更难测试.
维护可能比较难其中大部分取决于您的维护和编码实践.

如果需要上述几个功能,或者至少其中一个功能,我将考虑使用Web服务
被认为是最重要的,缺点是可接受的或必要的邪恶.

共享图书馆怎么样?

如果你更多地在“控制”你的环境或想成为什么?你知道谁将使用代码
(界面不是维护的问题),你不必担心互操作.你处于一种情况
您可以轻松实现共享,无需大量工作/跳跃即可跳过.

我在想什么时候使用的例子:

您的控制中有许多应用程序都托管在同一个服务器上,或两个将使用该库的应用程序.

不是很好的例子,你有很多应用程序,但都是托管在十几个服务器上. Web服务可能是一个更好的选择.

你不知道你的代码可以使用或者如何使用,但是知道它对许多代码是有价值的.网络服务.

您正在写一些仅由有限的应用程序使用的东西,也许是一些帮助功能.图书馆.

你正在写一些高度专业化的东西,不适合许多人消费.如您的业务线的API
没有人会使用的应用程序.图书馆.

如果所有的事情都相同,那么从共享库开始并将其转换为Web服务将变得更加容易,反之亦然.

还有更多,但这些是我的一些想法…

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在'',则表示换行,用''切割。
代码实现 option = { backgroundColor: '#080b30', tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...