存储过程与服务输出xml / json

时间:2013-05-03 16:27:33

标签: web-services stored-procedures

我们公司推荐一切服务。

因此,在需求实现会议期间,我被问到为什么会向现有存储过程推荐服务。

他们希望直接使用存储过程,并且不希望调用内部调用相同存储过程的服务。

他们的论点是Web请求如何处理大量数据和存储过程比服务更快。

我唯一的论点是服务可以暴露给任何人,也可以在外部使用。

我告诉他们我们可以使用分页技术来分解期望大量数据作为对多个请求的响应的请求。他们不相信。

你还有其他理由吗?

2 个答案:

答案 0 :(得分:2)

这取决于软件质量。

良好的软件质量应该涵盖以下几点:

  1. 可读性
  2. 可维护性
  3. Efficeiency
  4. 安全性,异常和错误处理
  5. 可测
  6. 我认为您会发现存储过程无法涵盖所有​​这些点以及具有良好源代码控制的托管代码。当对db进行一次大的长计算调用时,服务特别有利。

    在我看来,单步使用调试器总是非常有价值。

    然而 - 如果不担心这些软件质量点,那么在性能方面在数据旁边运行计算是有好处的,特别是如果有很多调用db(连接开销较少)。此外,解决方案可以更简单,无需编译和服务设置。

答案 1 :(得分:2)

可能有很多原因,但问题域的适用性会有所不同。如果用户熟悉存储过程,并且如果没有客户端应用程序,没有用户界面,不需要多个数据视图等,则没有足够的参数可以直接使用存储过程进行投票。

一般而言,服务提供以下好处。您需要判断它们是否适用于您的要求:

  1. 支持多个客户端,视图。
  2. 定义交易边界。
  3. 将数据从db中存储的格式映射到域对象的位置,考虑服务层的DAO / ORM部分,而不是存储过程。
  4. 捆绑业务逻辑/规则。
  5. 潜在的数据源更改不会影响使用者/观看次数。
  6. 更好的伐木。
  7. 过滤/代理选项。
  8. 负载均衡,缓存等层。
  9. 还有更多。