我们有一个包含3个站点的分布式系统。每个站点都有自己的服务,它们封装了逻辑和数据。所有服务都使用mysql数据库作为持久性系统和SOAP服务。但是我们遇到了数据库报告的问题,因为维护服务封装会阻止直接访问数据库。那么如何在不破坏Web服务提供的封装的情况下从Web服务获取报告,同时保持效率。
答案 0 :(得分:0)
共享服务和客户已知的通用数据结构。
我实现了一个非常简单的可序列化数据结构,并让这些实体互换,在客户端和服务器之间是已知的。当然,所有服务都会输出相同的数据结构。
如果您已经拥有持久层(如果没有,构建一个),使用DAO / DAL(s)实体,让它们负责查询数据并执行原始数据与这些新公共数据之间的转换 - 结构。辅助类会自动执行此操作。
我认为这可能是这个数据结构,是一个基于一组行和列(对象实例数组)的实体,还有一个列标识符数组,客户端和服务器都知道,所以您的模型知道客户端请求的列是哪个。
通过这种方式,您可以让客户端请求报告的3列,而另一个客户端可能正在请求同一报告中的许多其他报告。
此外,我当然不会在数据中包含任何HTML,只包括原始数据,以及您的客户负责如何呈现数据。
以上内容有点抽象......但希望它无论如何都能帮到你。