我了解到服务层位于业务逻辑层之上,我们从表示层调用服务层。 但是在项目中我们是否在同一个应用程序中调用Web或WCF服务?如果我们在服务层中公开了所有逻辑并调用服务而不是业务逻辑层中的方法,那么它应该牺牲性能。我怀疑我们是否在项目中这样做。但是,如果我们调用在其他应用程序中定义的Web或WCF服务,我认为我们也可以从我们的数据访问层或业务逻辑层调用它们。我对此非常困惑,有人能给我一些线索吗?
我期待着你的回复。非常感谢!
答案 0 :(得分:4)
我会对许多问题回答“是”,并警告你们这些路径。你错过了关于SOA的基本问题。首先,在进行任何Web服务开发之前,您需要了解Service Inventory的含义。
服务库存可以包含三种基本服务类型:
实体服务 - 此类服务可以使用 数据相关问题 - CRUD。是的,查询数据库。
公用事业服务 - 这种执行基础设施的工作原理如下 发送电子邮件,“记录”等。
任务服务 - 这可以协调其他服务(实体,任务和服务) 实用程序)并实际执行业务规则。
例如,UI应用程序可以调用任务服务,后者又调用其他两个实体服务,执行业务逻辑,通过邮件通知用户,调用另一个也可以调用其他服务类型的任务服务。
但你需要注意这一点。耦合服务意味着耦合基础设施。在书中查看SoaPrinciples.com,然后转到SoaSchool.com。在编写质量服务之前需要了解很多。
我正在使用WCF完全基于这些概念实现一个生态系统。部分已经投入生产,我对性能没有任何问题。相反,用户真的很开心。但这并不容易,我不会继续标准的编程风格。编程风格出现了转变,我不得不掌握并发问题和并行编程。我做过的最棒的事!我仍然无法使用我的多核服务器的真正潜力。
祝你好运!答案 1 :(得分:0)
以下是如何使用WCF构建SOA的一些实际示例。
我建议您阅读Thomas Erl和Roger Sessions撰写的文章,这将使您能够掌握SOA的全部内容。