有做任务赚赏金的网站吗,网站开发不兼容ie8,WordPress批量修改用户,网站怎么做短信接口现在该开始使用NoSQL项目对SOA实体服务进行编码了#xff0c;并且正如我所承诺的#xff0c;我将从Web服务的合同开始。 看一下本系列的第1部分 。 这种从Web服务合同定义开始的技术是面向服务的体系结构实现的“合同优先”方法的核心#xff0c;并具有许多技术优势#xf… 现在该开始使用NoSQL项目对SOA实体服务进行编码了并且正如我所承诺的我将从Web服务的合同开始。 看一下本系列的第1部分 。 这种从Web服务合同定义开始的技术是面向服务的体系结构实现的“合同优先”方法的核心并具有许多技术优势包括…… 正逻辑对合同的耦合因为实现代码遵循合同。 消费者对合同的正耦合因为消费者与合同耦合。 避免合同与实施的耦合在实施影响合同的情况下。 避免合同与技术之间的耦合消费者变得依赖于实施技术。 我不想继续进行合同优先的SOA但这确实很重要。 实际上这是某些Web服务框架例如受人尊敬的Spring Web Services所允许的唯一方法。 这里将详细解释Springsource仅支持合同优先方法的原因。 我服务的商业案例。 我决定实现一个用于管理“产品”实体的Web服务我将其称为“ 产品实体服务 ”。 产品信息管理 简称PIM是一种非常常见的业务活动因此我的实体服务应具有很大的重用潜力。 我个人知道这是正确的因为我以前有零售和国防物流方面的经验但是如果我想证明这种情况我通常会分析业务流程并寻找所有有利于产品信息的地方。 如果这样做我可能会发现以下业务流程将成为产品实体服务的潜在消费者例如在传统零售环境中… 购买产品购买和入职 销售订单捕获 销售订单履行 客户服务 目录制作 业务2-业务支持 等等等 我的产品实体服务的运营。 因为我要创建的服务纯粹是管理产品实体所以我将使操作保持基本状态。 我的服务将为消费者提供创建读取更新删除和查找操作。 该服务将是具有WS-I互操作性证书的基于SOAP的Web服务以帮助确保跨平台与众多消费者的兼容性。 稍后我可能还会提供同一服务的REST版本通常称为并发合同模式。 然后我的服务使用者可能是其他服务或流程可以随心所欲地使用这些产品实体例如通过提供更多与业务相关的功能来支持产品工作流程例如“批准”或“中止”。 我的服务合同将使用Web服务描述语言 WSDL 进行描述。 我倾向于手工制作这些文件然后根据WS-I基本概要文件进行检查以确保已创建可互操作的合同。 WSDL并不是特别友好的文件但是我认为任何优秀的SOA架构师都应该能够编写一个。 产品实体的数据模型。 产品数据实体应该能够描述对企业有价值的现实生活中的产品。 每个企业对于此数据项应包含的内容都有自己的想法因此为了使其简单起见我将定义一些基本字段例如id名称描述制造商类别和大小 。 我还将添加一些内部管理字段例如版本创建/更新/删除的日期等。最好将这些数据视为“文档”因为SOA和NoSQL肯定会从以文档为中心的视图中受益。世界。 产品文档将使用XML Schema即XSD 进行描述。 我也倾向于手工完成这些工作并且在结构中使用了很多模块化来帮助支持模式集中化模式该模式促进了SOA中使用的数据模型之间的重用和互操作性。 这种技术通常称为创建“规范数据模型”该模型描述一个中央模型中的所有业务实体。 创建Java服务。 既然服务合同已经完成我准备创建我的maven项目并开始实施服务。 为此我使用最新的Netbeans IDE因为它具有用于启动Maven项目和导入WSDL进行实施的出色向导。 Maven帮助代码编译打包部署和测试以及管理依赖关系并为我的服务执行代码生成。 这两个工具都是免费的。 WSDL导入过程将创建一个Java接口该接口代表并反映服务的合同。 它还创建了一组Java对象这些对象表示服务用作消息的XML结构。 这些对象由导入例程使用JAXB批注进行批注。 JAXB提供将XML文本“编组和解组”到Java对象中的功能。 作为JAX-WS Web服务框架的一部分这种情况在后台不可见地发生。 我现在要做的就是在服务上创建方法的实现。 首先我只是添加一些基本的样板代码以使某些功能正常工作。 完成此操作后我将服务部署到服务器上并进行一些基本的集成测试以检查它们是否全部悬挂在一起以及服务端点是否按预期公开。 我为此使用的服务器是Oracle的Glassfish 3.1 它可以集成到Netbeans中并且也是免费的。 初始服务集成测试 我将SOAP UI用于我的服务测试因为它是免费的并且非常强大。 它几乎可以用作几乎所有SOAP或REST服务的测试工具并且使用这样的测试工具将使我不必构建工作的服务客户端而这可能是非常耗时的。 我应该提到可以使用SOAP-UI以完全测试驱动的方式完成服务开发但是从一开始就部署基本服务即使它不起作用也很容易只是为了从中获取它的WSDL。是使用“ http// servicewsdl”约定的端点并检查是否已正确部署和集成所有内容。 如果我不这样做那么我就可以开始使用WSDL但是端点位置将无法工作因此测试失败的原因不是逻辑不好而是因为普遍缺乏服务可用性。 现在我可以创建基本测试以在Glassfish本地托管的服务实现和SOAP-UI测试客户端之间成功地向后和向前传递产品消息即使这些消息不执行任何操作并且其中包含的产品不执行任何操作坚持下去。 下一步是开始CouchDB集成以便可以保留和从NoSQL数据库检索产品消息。 然后在服务和CouchDB DAO之间我将添加使它全部表现正常所需的任何业务逻辑。 当我启动CouchDB DAO时立即订阅以获得警报。 如果您错过了本日记系列的第1部分则可以在这里赶上 。 到目前为止的费用 软件–£0。 时间– 2到8个小时取决于经验。 继续第3部分 。 参考 使用NoSQL实施实体服务–第2部分我们的JCG合作伙伴 Ben Wilcock在SOABPMAgile和Java博客上的合同优先 。 翻译自: https://www.javacodegeeks.com/2012/09/implementing-entity-services-using_8619.html