我们有一个有3个站点的分布式系统。每个站点都有自己的封装逻辑的服务,data.All服务使用mysql数据库作为持久化系统和SOAP服务。但我们在数据库报告方面遇到了麻烦,因为维护服务封装会阻止直接访问数据库。那么如何在不破坏web服务提供的封装性的同时又保持效率的前提下,从web服务中获取报表呢?
发布于 2013-06-23 19:13:40
共享服务和客户端已知的公共数据结构。
我将实现一个非常简单的可序列化数据结构,并在客户机和服务器之间交换这些实体。当然,所有的服务都会输出相同的数据结构。
如果您已经有一个持久层(如果没有,则构建一个),并使用DAO/DAL实体,让它们负责查询数据并执行原始数据到这些新的通用数据结构之间的转换。帮助器类将自动执行此操作。
我认为它可能是这种数据结构,是一个基于一组行和列(对象实例数组)的实体,加上一个列标识符的数组,客户端和服务器都知道,这样您的模型就知道哪些是客户端请求的列。
通过这种方式,您可以让一个客户端请求3列报告,而另一个客户端可能正在请求同一报告的许多其他列。
此外,我当然不会在数据中包含任何HTML,只包含原始数据,您的客户将负责如何呈现这些数据。
上面的内容有点抽象..但希望这对你有帮助。
https://stackoverflow.com/questions/17259552
复制相似问题