使用NetKerne实现REST风格的ESB

背景

新英格兰大学启动了一个为期多年的基础建设现代化项目,这个项目的目的在于逐步取代已经过时的系统,并在尽量实现所有IT投资的回报最大化的同时提供尽可能多的IT功能项。这个项目牵涉到硬件升级、购买新软件、开发培训和操作团队的培训等等。这个现代化的战略性项目的中心在于实现一个面向服务架构(Service Oriented Architecture-SOA)。

SOA是着重于分布式应用设计的总体平台架构方式,而非注重于特定技术。SOA的关键的在于软件服务的定义和实现,不管服务的位置如何、所有权归谁,这些服务都直接映射到一个系统或若干业务过程服务,包括在运行时管理它们的接口和策略。SOA的优点包括:相互影响的系统和平台之间的松散耦合、无处不在的基于企业标准的集成机制、支持按需(on-demand)创建复合服务、以及在提高操作效率的同时充分利用已有资产的能力。


图1 面向服务架构

从传统应用的开发部署到基于服务方法的转变是巨大的,不可能在一夜之间就能完成。新英格兰大学的IT部门与凯捷咨询公司通力合作,描绘出了增量采用SOA 的路线图。增量方式的一个优点是能够立马看到投资的回报,并且可以有目的地选择转换的顺序来最好地适应学校的短期和长期目标。本文将在下面的章节中向大家描述这个为期6个月的项目是如何利用1060 Research公司的NetKernel通过实现面向资源的企业服务总线(Resource Oriented Enterprise Service Bus)来启动SOA的采用过程的。

问题领域

高等教育机构不断承受着来自学生、员工以及校友的压力,他们要求高校提供各种各样的在线服务来适应这些用户人群逐渐养成的生活习惯,比如通过直观的用户接口和自动处理流程来提供实时的7*24小时的信息访问。同时,来自管理部门、督导委员会(steering committees)和控制开销的理事会的压力也越来越大。因此,像大学这样的高等教育机构的IT部门在对新功能进行投资时就必须更加机敏、更加注重实效。

大学IT部门支持的应用内容非常广泛,有PeopleSoft这样的非定制商业化(Commercial off the Shelf——COTS)产品、有创建于客户信息控制系统(Customer Information Control System——CICS)之上的大型主机遗留系统、以及使用Oracle应用服务器Portal构建的现代J2EE Web应用。另外,这些应用软件中有很多都与第三方应用服务供应商(ASP)交互,以此向数据仓库(DW)提供历史数据。在这个项目中,所有这些应用都必须与新的SOA方法进行集成和协调。

该大学之前曾经通过使用IBM MQ和FTP来集成业务系统。这些传统方式导致的结果是大量的点对点(P2P)集成,所有这些P2P集成在维护时需要付出很大的代价,并且导致客户和供应商紧密耦合。然而,现有环境已经使用了轻量级的消息交换状态传输( message exchange state transfer——MEST)的方式,这给以后的进一步革新留出了空间。企业服务总线(ESB)是消息总线构架的一个子类型,它提供更解耦的环境,但在它的前期部署费用相对较高,ESB的价值按时间呈指数增长,而扩展系统所需的花销却保持线性增长并且是可以预期的1。

该大学的IT部门有一个由专门的架构师和软件工程师组成的开发小组,他们中很多人都通过自己的职务成为了在高等教育领域专家。由于这个开发小组比较小,每个成员常常不得不在开发的过程中扮演多个角色,包括对软件的支持和管理。基于这个缘由,IT部门急切需要一个可以实现以下要点的解决方案:

通过利用可复用服务和复合应用来满足日益增长的客户需求

减少或避免P2P集成

充分利用现有资源和技术来提高操作效率

解决方案1. 总览

SOA可以通过很多不同的模式和技术来实现。传统方式是选择WS-*规范中所列出的模式,而且可以从Apache ServiceMix这样的开源解决方案或Cape Clear 和Sonic Software商业套件等广泛的技术产品中任意选择一种。不幸的是, WS-*规范仍处于不停的修改中,并且开发人员不得不消化1300页的文档来得到技术细节,这足以让许多人望而却步。比如说,如果完全坚持遵循所有规范的话,实现一个SOAP服务需要以下这些步骤:

使用业务流程建模符号(BPMN)来对流程进行建模。

使用WSDL来定义服务接口,使用UDDI(Universal Description,Discovery and Integration——统一的描述、发现和集成)库来注册服务。

使用从服务注册访问服务的BPMN来生成业务流程执行语言(BPEL)。

使用WS-Policy来定义访问服务的管理策略。

市场上的商业ESB套件都已经获得各方的评估,由于这个IT团队相对较小,最终团队决定寻找这样一个解决方案:这个解决方案最终在各系统间引起的矛盾或冲突要小;它所需要的创新要在这个较小的IT团队人力资源所能承受的范围之内;它不应该迫使团队使用依赖于唯一供应商的中央服务集权式模型。大学的领域是极具流动性的,拥有多变的流程、多变的应用、以及多变的集成,因而,它所需要的是能反映大学正真的自然特性的一个总体构架和策略。

由于消息请求在之前已作为跨大学的中心传输机制,团队决定选择REST类型或面向资源(Resource-Oriented)的方式来实现SOA。 REST基于一组较小的被广泛接受的标准,比如HTTP和XML,这些标准不需要很多开发步骤、不需要很多工具箱和执行引擎。采用REST类型的方式来实现SOA的有三个最主要的优点:较低的开销、投入市场较快、灵活的架构。面向资源的方式在REST风格方式的基础上提供了更广泛的扩展和独立通信基础。 REST设计模式提倡使用HTTP,而面向资源的架构则支持将服务连接到HTTP以及诸如JMS或SMTP这样的通信协议上。

尽管有一些像Codehaus Mule那样的ESB实现支持REST,但只有1060 NetKernel是建立在在面向资源的计算平台 2 (Resource-Oriented Computing Platform,“ROC”)之上的。面向资源计算的核心是将信息(资源)的逻辑请求从发送请求的物理机制(代码)中分离出来。使用ROC建立的服务被证实是小巧、简单、灵活的,并且和传统方式相比较需要实现的代码更少。这些优点决定了它是创建技术平台理想的技术选择。

2. 技术平台

NetKernel是面向资源的中间件,它提供企业服务总线(ESB)核心功能:寻址、路由和数据转换,而且能够像服务注册编制(orchestration)引擎那样工作。NetKernel能够提供很多特性,它能提供一些诸如XML转化、缓存管理、多线程处理和包括HTTP和 JMS在内的多种传输协议等高级功能,而SOAP引擎使它能够提供传统的web服务。NetKernel是异质企业集成的坚实基础。

从概念上来说,NetKernel提供访问的资源是按统一资源标识符(URI)地址进行识别的。所有URI地址在一个逻辑地址空间中统一管理。基于 REST的微核负责处理所有的资源请求,从地址空间中解析URI地址,并且返回该资源的表示。向微核发送的请求也可以被用来创建新的资源、更新或删除现存资源。

从物理上来说,NetKernel系统是由模块组成的,这些模块通过URI地址暴露出公共服务接口和资源。和Java EAR类似,每个模块都包含源代码和资源配置。模块可以从逻辑上引入另一个模块的公共服务和资源,将它们包含到地址空间中。由于引入需要指出模块的逻辑名字并能够辨别出版本号,因此多个版本能够在同一个系统中运行和更新。服务请求通过传输器注入到NetKernel中,这些传输器是位于系统边缘的事件侦测器。服务的客户可以通过任何可支持的传输器,比如HTTP或JMS来发送请求。


图2 技术平台

时间: 2016-12-11

使用NetKerne实现REST风格的ESB的相关文章

PhotoShop制作lomo-SumperSampler风格照片

photoshop教程 现今,四格lomo受到很多年轻人的欢迎, 今天小编要教大家用PS制作SumperSampler风格, 如果不喜欢lomo风格的可绕道而行 首先Lomo相机机型众多,拍出的照片也各具鲜明特点. SuperSampler就是可拍4格并排的连续动感照片,照片上的四格里的画面都会有暗角.四组一列的超感光精密的日本全景镜头,会拍出有古旧感的照片,有时还有比较明显的颗粒感,这和目前数码相机所追求的清晰细腻的画面背道而驰. 通过分析了SuperSampler的照片特点,总结出以下几点需

Openstack API 类型 & REST 风格

目录 目录 Openstack 提供了三种操作方式 Web界面 CIL 指令行 RESTful API REST 风格 RESTFul风格的API设计 基于HTTP协议的RESTful API OpenStack中的RESTful API开发框架 Openstack 提供了三种操作方式 Web界面 也就是通过Dashboard(儀表板)来使用Openstack雲計算平台上的功能.通过Web界面使用 OpenStack Services 这种方式是通过 OpenStack Horizon Proj

Photoshop CS5绘制丛林花妖油画风格插画教程

这次的PS教程为大家带来的是邹明明编写的<花与叶>Photoshop教程.根据作者的介绍,<花与叶>采取的是作者经常表现的花妖主题,表现风格是偏向 油画质感,非商业类的一张插图,希望感兴趣的朋友可以从中得到一些启发.这幅画的灵感是延续作者的<花妖>系列插画,背景还是树叶为主,花妖的手部 动态造型有参考一张手部素材. 三联推荐:photoshop7.0迷你版免费下载    |  Photoshop CS5 中文免费下载  |  photoshop免费下载   查看更多PS

WPS Office 2012,界面风格任我选!

经过漫长的期待,今天中午WPS官网终于放出WPS2012抢鲜版的下载链接.与以往版本相比,WPS2012最大的变化之一就是用更时尚的Ribbon界面(如图1)取代了传统的菜单式用户界面. 图1 不过在让用户体验更加时尚的Ribbon界面的同时,WPS也没有忘记那些老用户的需求--他们长期面对传统的菜单式用户界面,对于相关命令的位置.常用的操作方式已经到了熟极而流的地步,因此,对于传统的菜单式用户界面也充满了感情--因此,WPS在默认使用Ribbon界面的同时,也提供了两种界面风格的自由切换,为用

SOA、ESB、NServiceBus、云计算 总结

SOA SOA 是通过功能组件化.服务化,来实现系统集成.解决信息孤岛,这是其主要目标.而更进一步则是实现更快响应业务的变化.更快推出新的应用系统.与此同时,SOA 还实现了整合资源,资源复用. SOA 服务的设计标准是粗粒度.高重用.灵活.标准.性能则并非首要考虑因素. SOA 的两大功能是集成.服务编排(BPEL.BPM).WF 在 SOA 架构中,实现服务编排的功能. 参考架构: 相关资源: SOA 的基本概念及设计原则浅议 SOA 有哪些基本原则 SOA 设计十大原则 SOA 服务设计原

优秀Java程序员的编程风格

今天突发奇想,对编码习惯和编程风格很感兴趣,于是乎,找了一下关于编程风格(Java篇)的资料,希望对爱好编码或者开始学习编码的同学有帮助! 来自<The Elements of Java Style>-<Java编程风格>一书,值得一读的书籍,会让你在细节上节省很多时间,合作之间更加愉快! 好处不多说了,但是有几个原则如下: 1.保持原有风格 2.坚持最小惊奇原则 3.第一次就做对 4.记录所有非规范行为 格式规范: 1.缩进嵌套的代码:在每个代码块和嵌套中加入缩进,缩进代码,加强

Photoshop将照片转换成素描图 再通过笔刷替换 添加手绘风格

  信许多人都有一个画家梦,但是画画这件事,不是一天两天就可以学得成的,需要"冬练三九夏练三伏".对于大多数人来说,我们很难有时间再系统学习.其实"它山之石可以攻玉",借助别人开发出的资源,我们可以分分钟变"画家".下面的方法主要有两大步骤,首先是通过Photoshop技巧将照片转换成素描图,再通过笔刷替换的方法,进一步为素描图添加手绘风格. 方法/步骤 1.易上手的照片变素描 网上虽有不少方法教我们如何通过某个滤镜,一键将照片变成素描,但效果都

Photoshop制作美女人像照片油画风格

教程主要使用Photoshop制作美女人像照片油画风格,由于我手上刚好有这张麻豆倚着画框的照片,所以我想要创造一种框内是画.框外是写实照片的超现实风格. 先看看效果图 photoshop教程原图 Step1.第一步先把框内部分先选取起来,使用多边形套索工具这个功能,还记得国中的时候学的多边形的定义吗?顾名思义,多边形套索工具就是可以选取起以直线构成的选取范围边界,在框的边缘点四下就选取好了! Step2.将选取的部分复制独立成一个图层,方便待会作业. Step3.我想要把画面作出小笔画油画的感觉

Photoshop制作复古风格的水印排版

  文字与摄影图片的排版最近很流行,在各大微博.社区博客都有,有的做成小清新.有的做成可爱的等等.今天将为大家分享一个实现复古风格的图文照片效果的Photoshop教程,希望大家喜欢. 先看看效果图: 下面一起看看这个教程制作方法: 第1步: 在Photoshop新建一个画布,我这里是2880x1800px大小,打开你的图形素材(透明PNG格式或是矢量图形),用鼠标拖到新建的文件里. 第2步: 双击图形素材设置为白色(图层样式 > 颜色叠加),新建一个图层并填充为黑色,并将图形素材与黑色图层合并