单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,2016.06.30,WSO2-ESB,技术交流,厦门国贸集团,IT,部,2016.06.30WSO2-ESB技术交流厦门国贸集团IT,目录,2,一:,SOA,、,ESB,、,ESB,开源产品介绍,二:,WSO2,封装,OA WEB SERVICE,实践,三:,WSO2,二次开发实践,四:总结,目录2一:SOA、ESB、ESB开源产品介绍二:WSO2封装,什么是,SOA,?,面向服务的体系结构(,Service-Oriented Architecture,,,SOA,)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。,实现,SOA,架构的常用技术有,Web Services,,,JMS,和,BPEL,等。,3,什么是SOA?面向服务的体系结构(Servic,实现,SOA,常用技术,ESB,技术,。企业服务总线(,Enterprise ServiceBus,,,ESB,)是构建基于,SOA,解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持,SOA,的一组基础架构功能。主流的,ESB,产品,如,IBM,的,WebSphere ESB,、,BEA,的,AqusLogic Service Bus,等。除此之外,也出现了众多的开源,ESB,产品,如,Mule,、,ServiceMix,和,Apache Synapse,等。,web Services,技术,。,Web Services,主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。该接口隐藏了服务实现的细节,允许通过独立于服务实现、独 立于硬件或软件平台、独立于编写服务所使用的编程语言的方式使用该服务。,Web Services,可以通过,HTTP,、,SOAP,(,XML,)、,SMTP,等协议的组合被访问,利用标准网络协议和,XML,数据进行通信,具有良好的普适性和灵活性,Web Services,技术的主要目标是在各种异构平台的基础之上构建一个同样的、与平台与语言无关的技术层,各种应用都可以靠这个技术层来实施彼此的连接和集 成。,JMS,技术,。,Java,消息服务(,Java Message Ser,vice,,,JMS,)是访问企业消息系统的标准,API,,是,Sun,公司提出的,Java,消息服务规范,是用于访问消息系统的不依赖于某个具体厂商的,API,,它提供给应用程序创建、发送、接受和渎取消息的接口,具体实现可以不同。,JMS,技术采用异步通信模式,发送消息者将需要变更的数据消息提交到消息 平台后,就完成了自己的任务,就可以进行其他的操作。不需要等待服务器端的消息处理结果。这时即使网络出现故障甚至服务器崩溃也不会造成数据的丢失或不一 致,消息会保存在消息队列中直到被最终接收。,4,实现SOA常用技术ESB技术。企业服务总线(Enterpri,什么是,ESB,企业服务总线(,Enterprise Service Bus,,,ESB,)的概念是从面向服务体系架构,(Service Oriented Architecture,,,SOA),发展而来的。,SOA,描述了一种,IT,基础设施的应用集成模型;其中的软构件集是以一种定义清晰的层次化结构相互耦合。一个,ESB,是一个预先组装的,SOA,实现,它包含了实现,SOA,分层目标所必需的基础功能部件。,在企业计算领域,企业服务总线是指由中间件基础设施产品技术实现的、通过事件驱动和基于,XML,消息引擎,为更复杂的面向服务的架构提供的软件架构的构造物。企业服务总线通常在企业消息系统上提供一个抽象层,使得集成架构师能够不用编码而是利用消息的价值完成集成工作。,企业服务总线提供可靠消息传输,服务接入,协议转换,数据格式转换,基于内容的路由等功能,屏蔽了服务的物理位置,协议和数据格式。,5,什么是ESB 企业服务总线(Enterprise,ESB,解决的问题,6,使用,ESB,中介和代理之后:,未使用,ESB,的应用架构,:,ESB解决的问题6使用ESB中介和代理之后:未使用ESB的应,业界流行的开源,ESB,项目、,SOA,架构,JBoss ESB,(,JBoss,),在,GA,版本中有着成熟的组件,没有厂商绑定之类的特征。,Apache ServiceMix,(,Apache,),Apache ServiceMix 4,基于,OSGi,,提供了一个与,XML,标准集成的选项。,Dubbo,(阿里巴巴),DUBBO,是淘宝公司的一个分布式服务框架,致力于提供高性能和透明化的,RPC,远程服务调用方案,MuleESB,(,MuleSoft,),Mule,是当下使用最多的开源集成平台。价格低廉,配置、扩展简单,灵活性强,非常流行。,WSO2 ESB,(,WSO2,),相比其他使用了,JBI,规范的重量级,ESB,,,WSO2,带来了一个轻量级的,ESB,。,WSO2 ESB,以,Web,服务标准作为集成的焦点。,7,业界流行的开源ESB项目、SOA架构 JBoss ESB(J,什么是,WSO2-ESB,?,WSO2,横跨了整个,SOA,广度,,WSO2,产品建立在一个公共的基础之上,-,基于,WSO2 Carbon,、模块化、可重构、松耦合、,OSGI,的架构。将构建一个强大的企业应用,集成遗留和现有的应用程序。,WSO2-ESB,(企业服务总线)是一个快速,轻巧,,100,开源的和用户友好的开源,ESB,,分布按照,Apache,软件许可证,2.0,版。,WSO2 ESB,允许系统管理员和开发消息路由,调解,改造,记录,任务调度,故障切换路由,负载均衡和更方便地配置。它还支持传输交换,事件,以规则为基础的调解 和基于优先级的先进的集成要求调解。,ESB,运行时的设计是完全异步,非阻塞上,Apache Synapse,的调解的引擎和基于流的。,8,什么是WSO2-ESB?WSO2横跨了整个SO,WSO2,产品线,9,WSO2产品线 9,WSO2,产品线,10,WSO2产品线 10,目录,11,一:,SOA,、,ESB,、,ESB,开源产品介绍,二:,WSO2,封装,OA WEB SERVICE,实践,三:,WSO2,二次开发实践,四:总结,目录11一:SOA、ESB、ESB开源产品介绍二:WSO2封,WSO2,实践:封装,OA WEB SERVICE,官网下载:,http:/ JDK 1.7,以上版本,配置启动,WSO2,:,官网,下载文件后,解压缩:,启动,WSO2,:,BIN,目录下找到,wso2server.bat,双击运行。,12,启动,WSO2,:,BIN,目录下找到,wso2server.bat,双击运行。,登陆,WSO2,:,https:/localhost:9443/carbon/,【,用户名、密码初始都是:,admin】,WSO2实践:封装OA WEB SERVICE官网下载:ht,2.1,:创建,proxy,,载入,wsdl,文件,13,2.1:创建 proxy,载入 wsdl 文件,2.2,:,创建,endpoint,14,2.2:创建endpoint14,2.3,:,创建,sequence,15,2.3:创建sequence15,2.4,:,查看配置好的,EndPoint,地址,查看配置好的,EndPoint,地址,16,2.4:查看配置好的EndPoint 地址查看配置好的End,2.5,:,外部调用,WSO2,实现触发,OA,系统,17,2.5:外部调用WSO2实现触发OA系统 17,2.5,:,外部调用,WSO2,实现触发,OA,系统,18,2.5:外部调用WSO2实现触发OA系统 18,目录,19,一:,SOA,、,ESB,、,ESB,开源产品介绍,二:,WSO2,封装,OA WEB SERVICE,实践,三:,WSO2,二次开发实践,四:总结,目录19一:SOA、ESB、ESB开源产品介绍二:WSO2封,配置,eclipse,下的,WSO2 STUDIO,环境,推荐访问,eclipse,官方网站,并快捷拖动图标方式,进行安装:,http:/marketplace.eclipse.org/content/wso2-developer-studio,20,安装好之后,可以看到菜单多了:,Developer Studio,配置eclipse下的WSO2 STUDIO环境推荐访问ec,3.1,:,创建一个,Mediator Project,项目,备注:,mediator,是,ESB,中的一个中介处理单元,通常使用,XML,进行配置,在,ESB,运行时,消息会被注入到中介,然后,mediator,作为中介可以进行增强开发处理。,21,3.1:创建一个Mediator Project项目备注:m,3.2,:,编写调用前后序列的,Java,文件,备注:,sequence,是,ESB,中的序列。在序列中可以制定一系列的操作,包括日志处理、,mediator,中介处理等组合。,22,3.2:编写调用前后序列的Java文件备注:sequence,3.3,:,将,CLASS,封装为,JAR,文件,并部署,WSO2,服务器,这个目录是启动,WSO2,时会加载,JAR,的地方。,23,3.3:将CLASS封装为JAR文件,并部署WSO2服务器,3.4,:,配置对应的,XML,文件,并在注册表,注册,备注,:WSO2,中,所有的服务组件配置、传输配置都默认存储在注册表中。可以理解为一个结构化式存储资源的库。,先编写,XML,文件,然后我们保存在本地,命名为:,itgInsequence.xml,。一会会选择到它。,24,3.4:配置对应的XML文件,并在注册表注册备注:WSO2中,3.5,:,修,改,Sequence,配置,补充,Spring,备注:,mediators,中介中可以使用包括,JAVA,scripting,和,spring,的各种技术。,我们还是修改上次已经配置好的:,ITG_OA_workflow_service,我们演示调度前进行配置(调度后的配置是一样的,后续就不赘述了),25,3.5:修改Sequence配置,补充Spring备注:me,3.5,:,修,改,Sequence,配置,补充,Spring,这个时候在界面上补充一个,Srping,,并在下方的,mediator,进行相关配置。,注意到这里的,Design sequence,中是图形化的,鼠标点在,ROOT,上时候会浮动出窗口,让你选择加入的模块,比如我们加了,LOG,sequence,SPRING,。,注意这个,Spring,,在里面我们可以补充,mediaor,的绑定。,26,3.5:修改Sequence配置,补充Spring这个时候在,3.6:,进行简单调用前测试,备注:调用方法为调用对应的,ENDPOINT,。,Endpoint,在,ESB,中表示封装好的服务。,我们利用,.NET,调用进行了测试,在系统日志中,可以看到对应效果。,27,3.6:进行简单调用前测试备注:调用方法为调用对应的ENDP,3.7:,进行简单调用,后,测试,我们在,ITGoutsequenceClass,文件中,编写了对应,MYSQL,的操作,当触发调度时,同时向,MYSQL,写入日志数据。,可以看到在调用,WEB SERVICE,的前后,我们,JAVA,文件编写的,iinsequence,和,outsequence,都生效了。,28,3.7:进行简单调用后测试我们在ITGoutsequence,WSO2,二次开发实践,29,一:,SOA,、,ESB,、,ESB