首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SOA中的报表(业务智能和面向服务的体系结构)

SOA中的报表(业务智能和面向服务的体系结构)
EN

Stack Overflow用户
提问于 2012-03-02 18:47:11
回答 3查看 1.8K关注 0票数 1

我有一个员工服务和一个旅行服务的SOA。旅行服务将为旅行数据库中的travelID创建一个employeeId条目。该员工将使用“TravelUI”网站(该网站调用旅行社以DB存储详细信息)来请求旅行。有一个“ManagerUI”网站,经理将使用它来批准旅行申请。“ManagerUI”网站使用旅游服务和员工服务来获取详细信息。当经理批准旅行时,旅行记录(在旅行数据库中)通过旅行服务中的操作得到批准。

注意:员工详细信息存储在员工数据库中,员工服务使用此数据。

现在,我们需要用TravelID、旅行请求日期、EmployeeID、EmployeeName、EmployeePhone生成一个报告。前三个信息来自旅游数据库,而回复信息来自员工数据库。报告将使用SSRS生成。

这里的问题不在于通过组合两个数据库来生成报告的可能性,而是由于SOA的引入而成为一个复杂的问题。

  1. 我们如何解决问题
  2. 在我的设计中有哪些错误使问题变得复杂?
  3. 您对处理这样一个问题的好文章有什么建议吗?

注意: SOA是在这里使用WCF规划的。

编辑:虽然标题提到了商业智能,但我正在寻找一个主要不涉及datamart/datawarehouse的答案。datawarehouse的回答也是受欢迎的--但主要目标是没有Datawarehouse。

阅读:

面向

  1. Service-Oriented业务智能http://msdn.microsoft.com/en-us/library/bb245659.aspx
  2. A服务的商业智能http://www.hpl.hp.com/personal/Claudio_Bartolini/download/soca07.pdf
  3. Service-Oriented体系结构和企业服务总线(ESB) http://msdn.microsoft.com/en-us/library/aa475433(v=bts.10).aspx
  4. https://stackoverflow.com/questions/41353/net-esbs-out-there

上的商业智能http://www.servicetechmag.com/I53/0811-2

  • Microsoft
EN

回答 3

Stack Overflow用户

发布于 2012-03-02 19:20:19

我不认为你的设计错了。除了事务处理之外,您的体系结构似乎缺少一个数据集市或仓库,或者某种支持商业智能的方法。

SOA中的BI是一个复杂的主题,如果不了解体系结构的一些细节,就不可能给出建议。但这里有一些文章可以让你开始:

  • http://www.infoq.com/articles/BI-and-SOA
  • http://blogs.informatica.com/perspectives/index.php/2008/09/30/how-soa-enhances-data-warehousing-and-business-intelligence/

您考虑过用于SOA的ESB吗?它可以使数据集市更容易集成到SOA中。参见本文:http://www.b-eye-network.com/view/3018

是ESB的潜在用户之一,它是一个数据集成服务。事实上,一些供应商已经修改了他们的数据集成和ETL (提取、转换和加载)工具,使它们能够使用来自ESB的事件消息。这些事件可以携带有关源数据更改的信息,数据集成服务可以使用这些信息逐步更新操作数据存储(ODS)或数据仓库。这种方法对于需要日内数据的业务BI应用程序尤其有用。

票数 1
EN

Stack Overflow用户

发布于 2012-03-02 21:50:00

这是一个很好的例子,说明当你不清楚你的设计优先级时可能会产生的混乱。特别是,就我的口味而言,对技术问题的关注太多,对用户需求的关注不够。

首先,我将与利益相关者合作,构建一组足以确定项目范围的良好用户故事,并列出用于第一阶段验收测试的功能。您成功项目的机会,以及降低以后重新设计的可能性的机会,是商定一个完整的可交付产品的描述,一旦第一阶段完成,该描述将立即有用并提供明显的价值。

它应该完全从用户的角度出发,甚至不使用“数据库”、"SOA“、"web服务”、"API“等词。

你要建立的是你和客户之间的一种对他们有价值的服务的合同协议;一旦达成协议,它就不应该改变,除非用他/她的话来增加它对客户的价值。因此,你最好的选择是尽量推迟对“如何”问题的考虑,直到你牢牢把握住“什么”。

然后,您可以自由地考虑各种技术选项,这些选项可能用于设计相同的结果。通常有一个阶段-一个设计,它只提供足够的使其工作;并且您希望保持学习和调整后端的灵活性,以任何您认为合适的方式,只要概念契约/逻辑设计不变。

在我的经验中,如果你把你的第一个注意力放在能够对用户的期望做出反应上(当每个人都从过程中学习),而不是预先优化技术,那么每个人都会更快乐。Microsoft为您提供了多种方法来混合、匹配和发展企业设计。如果您对敏捷感兴趣,请记住从最不成功的开发开始,然后像mad一样迭代。

票数 1
EN

Stack Overflow用户

发布于 2012-03-06 10:37:00

从设计中我看不出旅行社不需要以某种方式、形状或形式访问员工服务。如果它们是在虚拟隔离条件下操作的,那么您就会遇到一个主数据管理问题,只需等待处理。

最近,我设计了一个T&E系统的体系结构,其中包含企业基础结构中的人力资源数据,以及托管为SaaS的T&E前端。

在这种情况下,T&E系统需要一个基本的人力资源数据级别,主要是为了确保对员工进行验证。它还被要求允许系统正确处理旅行预订,而不要求员工重新输入关键数据。

这是通过将基本员工数据传递到旅行系统来实现的,首先是作为大容量装载,然后是在员工数据更改时进行更新。在传输一些PII数据时,这确实需要仔细的设计,但是安全的传输协议和源与目的地之间的良好加密可以缓解这种情况。

因此,关于旅行预订和活动的报告完全在旅行系统内。它们需要处于半仓库状态,以确保基本员工记录的更改不会污染历史旅行记录。这些都是“事务”,需要以这样的方式存储。

考虑到这一点,虽然你的设计不是完全错误的,但它并不是完全正确的。您很快就会遇到需要重新考虑设计才能解决的问题。我最重要的建议是遵循@le dorfier的建议,回到起点。设计以满足所有的用户需求,确保它们是真正的需求,而不仅仅是“想要”(也就是很好地拥有)。然后,自然设计将不仅包括外部托管前端的需求,还包括满足后端所需的报告。

实际上,我们今天设计的一切都必须考虑到互操作性,我们使用提供松散耦合的组件和模式构建模块化软件。这种灵活性为我们以后节省了数不清的精力,尽管设计需要更长的时间,但这是非常值得的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9538710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档