可扩展,安全且易于使用的Web服务的特征是什么?

时间:2010-02-15 20:04:54

标签: java web-services api

我们的应用程序目前公开了使用WSDL 1.1和SOAP 1.1构建的Web服务,遵循以下w3c标准:

  

http://schemas.xmlsoap.org/soap/http   是SOAP的WSDL 1.1绑定   1.1 HTTP绑定。

我们希望将我们的网络服务改进为可伸缩,安全且易于使用

易于使用指的是此时Web服务未在该层上包含任何业务逻辑的事实。基本上,我们当前的Web服务可以被视为外部/第三方开发人员的导入/导出服务。

这项努力让我想到了这个问题:

  

我对改造有什么期望?   我们的网络服务   可扩展,安全且易于使用?


我们的网络服务的当前问题

  • 您必须登录(第一次交易)才能接收令牌(将会话保留在内存中)才能使用它们。
  • 不可扩展,因为任何开发人员都可以打开20K会话并使Web服务服务器崩溃。
  • 不安全,因为来自网站管理员的相同用户可以使用网络服务。
  • 这不容易使用,因为Web服务不包含任何业务逻辑。

我们的客户喜欢我们的Web服务接口的原因是,他们在Web应用程序中添加的任何数据元素都会立即在Web服务(wsdl)定义中公开。


再补充一点信息:

我希望确认我的理论,即如果我们以RESTful方式实现我们的Web服务,上述所有问题都可以解决。由于每个事务不会导致内存累积,并且每个事务都将包含公钥或类似的安全设置。

无论哪种方式,JRO都是对的,也许如果我将问题分成一系列,我会得到更好的结果。我会在这里保留这个问题,直到一天结束,如果我没有得到更好的结果,我会接受JRO的建议。

3 个答案:

答案 0 :(得分:2)

你问的三个不同的问题可能是相互关联的,但又是如此之大,以至于“它取决于”的总答案是你唯一得到的答案。如果这是项目的范围,则进一步细分,即更细化。尝试一次解决这个问题。

让我们从您确定的Web服务问题中解决这个问题(围绕您的问题的概念对于这个空间来说太大了):

  • 您必须登录(第一次交易)才能收到令牌:不确定为什么在没有某些上下文的情况下将其视为“问题”。生成/检查令牌是否有问题?用户的实现是一个问题吗?您需要澄清这是一个问题的原因。

  • 不可扩展,因为任何开发人员都可以打开20K会话并使Web服务服务器崩溃。 HTTP连接问题最好由Web服务器和负载均衡器处理,而不是程序化管理。如果您需要限制单个端点的连接,请从硬件层开始。

  • 不安全,因为来自网站管理员的相同用户可以使用网络服务。这意味着服务的安全实施,以及如何处理凭证的逻辑内部。不知道除了解决这个问题之外还要说些什么 - 这是你的逻辑,一旦掌握了凭证,你就可以控制做什么。如果问题是安全控制模型,那就是另一个主题。找出问题的真正症结所在,不要将您的实施与经过验证的模型混淆。

  • 它不容易使用,因为Web服务不包含任何业务逻辑。如果没有这个含义的细节,那就意味着很少;没有足够的背景。但是,这类问题倾向于Web服务方法/功能设计。为此,您的方法中的粗粒度是首选 - 使它们更具包容性,而不是更少。

我的建议:咬掉一个单独的部分,例如安全实现,并先使用它。试图同时拍摄其他作品只会让你更加困惑。

答案 1 :(得分:1)

  

可伸缩,安全且易于使用的Web服务有哪些特征?

可扩展性,安全性和易用性。除此之外,它将取决于你想要做的事情。您几乎没有提供有关您的网络服务的功能,问题所在以及您希望它做什么的信息。

答案 2 :(得分:0)

关于安全性,我建议您下载Microsoft Web Service Security Guide的免费副本。

  
    

本指南将帮助您在Web服务要求的上下文中快速做出最合适的安全决策,同时提供每个选项的基本原理和教育。提供了一种场景驱动的方法来演示不同安全模式成功的情况。该指南还结合了一系列决策矩阵,以帮助您应用自己的标准来使用Web服务安全模式来满足您的环境要求

  

它在任何开发环境中都非常有用 读得好!