SOA示例应用程序

SOA描述了一组用于创建松散耦合的,基于标准的,与业务相关的服务的模式,由于描述,实现和绑定之间的关注点分离,因此提供了新的灵活性。

近年来,至少在参与大多数信息技术活动的人们中,面向服务的体系结构术语已经普及。 这种方法建议的指导原则是在不同的可分配系统领域中成功的主要因素。
正如定义清晰易懂一样,将其实现到真实项目中也要直观,简洁,优雅。

我发布了一个应用程序,该应用程序演示了如何利用EIP(企业集成模式),IoC(控制反转)以及构建工具和脚本语言(例如Groovy)将SOA的原理应用于一个小型项目。
我分析了一个简单的业务案例 :一家娱乐提供商,希望根据客户服务的订阅向其某些客户分发奖励和奖金。
处理过程很简单:

需要提供RewardsService的实现。 该服务接受客户帐号和包含渠道订阅的投资组合作为输入。客户状态团队目前正在开发EligibilityService,该服务接受帐号作为输入。

我建立了一个基础架构来为第一个有意义的功能编写验收测试。 这就是可以定义为“行走骨架”的东西。 原型,其基本要素是可以从Github轻松下载后可以构建,部署和测试。

RewardService是由客户端调用,调用,反过来,whichhowever,在这种情况下没有实现合格的服务。 由于许多实际场景都希望使用外部服务,因此概念验证将资格服务指向黑匣子,其中仅请求/响应接口是已知的。

单元测试通过Camel测试框架模拟了模拟端点的资格服务行为。 但是,如果你想运行在本地计算机上的应用程序我设置了 ,一行代码内,一个虚假的合格服务,merelyreturns了积极的回应:

def alwaysEligible = {exchange -> if(exchange){exchange.getOut().setBody('CUSTOMER_ELIGIBLE')}} as Processor

入口点是基于Apache CXF构建的HTTP Restful接口,可以在配置中的几行之内轻松设置。 Spring通过以下方式初始化CXF:

jaxrs.'server'(id:'restService',address:'http://${http.host}:${http.port}') {jaxrs.'serviceBeans'{ ref(bean:'rewardService')} }

服务通过Apache Camel连接。 RewardService仅包含ESB上下文的引用– ProducerTemplate的实例。 这种解决方案允许在链接系统和业务服务之间完全隔离。Camel上下文表示SOA的布线,并通过DSL进行配置,如下例所示:

from('direct:rewards').to(eligibilityServiceEndpoint)

参考:来自JCG合作伙伴 Giancarlo Frison的SOA示例应用程序 , 通过复杂的博客使事情变得简单 。


翻译自: https://www.javacodegeeks.com/2012/04/soa-example-application.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 分贝_java11教程--jhsdb命令

您可以使用该jhsdb工具将Java进程或崩溃的Java虚拟机(JVM)的核心转储连接。概要jhsdb clhsdb [--pid pid | --exe executable --core coredump]jhsdb debugd [options] (pid | executable coredump) [server-id]jhsdb hsdb [--pid pid | --exe executable --core coredump]jhsd…

Oracle使用startup与startup force启动的区别

1. startup 就是正常启动数据库,没什么好说的。 2. startup force 是shutdown abort startup的组合,即强制关闭数据库 正常启动数据库,想快速重启数据库时胆子大的人用的。 startup force测试 在一个窗口执行startup force 命令 点击(此…

js点击button按钮跳转到页面代码

www.111cn.net 编辑:smoke 来源:转载在网页中button按钮不具备a标签的属性了,如果我们要给button 按钮增加跳转事件我们可以在它的确onclick事件上点击跳转js来实现,下面我来给大家介绍一些常用的方法。点击按钮怎么跳转到另外一个页面呢?我们…

Mac OS X上的Java Memcached

介绍 在本文中,我将解释如何: 在Mac OS X上安装和配置Memcached 在Java应用程序中使用Memcached 我不会过多地介绍在您的应用程序中使用分布式缓存的好处,但是至少让我们提供一些在企业门户(在我的情况下为eXo平台)…

Js实现内容向上无缝循环滚动

当前项目有一个类似公告向上滚动的需求,在网上搜索到一个比较棒的程序,现摘录如下: //document.getElementById()的最简化应用 function $(element) {if (arguments.length > 1) {for (var i 0, length arguments.length, elements [];…

Repeater 中TextBox 触发TextChanged事件

两种方法 1.TextBox 绑定TextChanged 并设置AutoPostBack "true" &#xff0c;如果不设置AutoPostBack "true"则不会触发TextChanged事件&#xff0c;然后在对应的方法里面循环Repeater查找改变项 部分代码 <ItemTemplate ><tr><td style &…

什么是Spring Integration?

随着Spring Integration项目逐渐获得越来越多的采用和兴趣&#xff0c;企业集成或企业开发领域的开发人员很可能会遇到它。 他们可能会发现它很有趣&#xff0c;但并没有完全理解它的含义&#xff0c;所要解决的问题&#xff0c;可以从中获取更多信息以及它在ESB和其他SOA基础结…

java jmap mat_java内存调优之jmap,jstack,mat

查看整个JVM内存状态jmap -heap [pid]要注意的是在使用CMS GC 情况下&#xff0c;jmap -heap的执行有可能会导致JAVA 进程挂起查看JVM堆中对象详细占用情况jmap -histo [pid]可以通过jmap -histo [pid] | head -20查看top20的实例个数以及内存占用情况导出整个JVM 中内存信息&a…

lftp

-f&#xff1a;指定lftp指令要执行的脚本文件&#xff1b; -c&#xff1a;执行指定的命令后退出&#xff1b; --help&#xff1a;显示帮助信息&#xff1b; --version&#xff1a;显示指令的版本号。下载 get当然是可以的&#xff0c;还可以&#xff1a; mget -c *.pdf #把所有…

Apache Shiro第1部分–基础

Apache Shiro &#xff08;最初称为JSecurity&#xff09;是Java安全框架。 它被接受并于2010年成为Apache顶级项目。它的目标是功能强大且易于使用。 该项目正在积极开发中&#xff0c;用户和开发人员的邮件列表均处于活动状态。 最重要的区域记录在其网页上。 但是&#xff0…

javascript 之Object内置对象

Object.defineProperty(obj, prop, descriptor)转载于:https://www.cnblogs.com/lihuali/p/5632460.html

java员工编号程序_用JAVA编写一个employee类 为员工自动产生员工号

差不多就是这个感觉..class Employee {/*** param args*/private int number;private String name;private String birthday;static int IDnumber0;public Employee(String name,String birthday){IDnumber;this.setNumber(IDnumber);this.setName(name);this.setBirthday(birt…

分解质因数-洛谷P3200 [HNOI2009]有趣的数列

https://www.luogu.org/problem/show?pid3200 首先&#xff0c;我们不能保证要求的数的逆元和模域互质&#xff1b; 所以我们要用分解质因数来抵消除法&#xff1b; 其实逆元的话即使可行也会超时&#xff1b; 那么我转载了&#xff0c;实在没什么可以说的&#xff1b; 另…

Java中的安全加密

上一次我写关于密码学的文章时 &#xff0c;我概述了Apache Shiro加密API&#xff0c;并展示了如何使用其两个对称密码。 我还写道&#xff1a;“您不需要在应用程序中对敏感数据进行加密和解密。” 我了解了更多有关密码的知识&#xff0c;发现您需要了解更多信息。 我写的内容…

真机调试问题

1.拔掉插头重新插入 2.转载于:https://www.cnblogs.com/sanvow/p/5633976.html

vsftp

它的配置文件在/etc/vsftpd/vsftpd.conf在里面加入 anonymous_enableYES &#xff03;允许匿名用户登录FTPanon_upload_enableYES &#xff03;打开匿名用户的上传权限anon_mkdir_write_enableYES &#xff03;打开匿名用户创建目录的权限anon_other_write_enableYES …

java scrollpane源码_JScrollPane用法 Java实例

时间&#xff1a;2019-10-07概述&#xff1a;JScrollPane 滚动条在Java中使用JScrollPane的例子&#xff0c;特别是滚动条的设置等&#xff0c;程序代码中将设置水平与垂直表头、设置scrollPane的边角图案、设置scrollPane的边框凹陷立体边框。适时水平滚动轴的参数设置等内容&…

ANTLR教程– Hello Word

Antlr代表另一种语言识别工具。 该工具能够为任何计算机语言生成编译器或解释器。 除了明显的用途&#xff08;例如需要解析一种真正的“大型”编程语言&#xff0c;例如Java&#xff0c;PHP或SQL&#xff09;外&#xff0c;它还可以帮助执行更小&#xff0c;更常见的任务。 每…

centOS 6.5安装python和nginx

一、安装python3.5 1、安装python3.5 2、安装pip并升级到最新 下载wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz 注意&#xff1a;wget获取https的时候要加上&#xff1a;--no-check-certificate tar zvxf 1.5.5.tar.gz #解压文件 cd pip…

rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理

rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理 转载于:https://www.cnblogs.com/gotodsp/p/6532824.html