JAVAEE轻量级解决方案_第1页
JAVAEE轻量级解决方案_第2页
JAVAEE轻量级解决方案_第3页
JAVAEE轻量级解决方案_第4页
JAVAEE轻量级解决方案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

篇一:ESB解决方案ESB解决方案问题描述在商业激烈竞争的今天,很多企业,特别是大型企业都应用了IT技术来提高企业竞争力,提高公司的运作效率与资源利用率等,而技术的更迭,业务变化等等造成了企业内部多种异构应用软件、平台、系统共存的局面。这些系统、平台可能使用不同的通信协议,或者是不同格式的数据,互相之间交换数据、通信显然十分困难。如果企业还需要与外部其他系统交互,则还面临着需要调查其他系统的结构,通信协议等等问题。这些都是企业系统集成所面临的问题与困境。近年来,也出现了一些解决集成问题的技术,例如EAIArchitecture)以及WebService,这些解决方案能够解决一些问题,但是往往有以下诟病:或者有专利保护,需要支付昂贵费用,实现起来耗时费力,或者是一次性定制的,花费成本高,后期难以维护,系统扩展不灵活。什么是ESBESB全称为EnterpriseServiceBus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,能够提供比传统中间件产品更为廉价的解决方案,同时它还能够消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件Adaptor等。3)通信:服务发布、订阅,响应请求,同步异步消息,路方案WebSphereEnterpriseServiceBus(IBM的基于WebSphere业产品);ApacheServiceMixJavaBusinessIntegrationJ在几年前,它就已经成为了Apache的顶级项目,开源);JBI规范的实现。0penESB可运行在Glassfish应用服务考虑到有稳定社区维护的开源产品,如ServiceMix,具有高可靠性与低成本代价两个较大优势,以及在市场上的应用率以及呼声较高,最终将选择对象锁定到ServiceMix与Mule两个产品。在开源产品中,两者在网络上呼声最高,将两者作者谈开源ESB》一文中的TijsRademakersInfoQ:您认为,对于MuleESB和ServiceMix,它们缺点是什么?在使用时有何建议?JD:二者都有优缺点。我喜欢ServiceMix的模型,它让热部署新的集成流程变得容易,并且事实上它是基于标准的。即使JBI标准没有获得太多的青睐,但它是一个相当不错的规范,当你JBI它会让你对ServiceMix很容易上手。我很喜欢有可热插拔的集成组件,特别是它们是能够热部署的。包含Camel也是ServiceMix的一个亮点。我真的喜欢能够用DSL去开发集成实引入了另一个困难级别,对XML的注重并不见得总是适合并有很多可选的开箱即用的连通性、路由和转换。使用Mule,使你能够在数分钟内让相当复杂的集成流程启动并运人而言,它的一个最大的缺点就是没法热部署新的集成流程。如果Mule集成OSGi或者其他方法,就能很容易的更新3.2.x/3.3.x和ServiceMix4。我们书中使用ServiceMix3.2.x(基于JBI),但我们对ServiceMix4(基于0SGi,支MuleESB实现了基于Java的定制模型。但是这些ESB间还有很多共同点(支持Spring,通过CXF支持Web服务,XML配置)。但是,让我们着重谈谈不同点。MuleESB是一个以Java为中心的ESB,这让Java开发者能很容易地上手。它拥有强大的XML模式集合,它们创建了一个真正清洁可读的XML配置并提供了代码补全支持。当你想实现一项转换逻辑或者路由逻辑时,你能够很轻易地开发出一个简单的Java类/Springbean/脚本文件,把它引入到XML配置中。如果必须要指出Mule的一个不足之处,那就是缺乏ServiceMix是一个以JBI为中心的ESB,它提供了大量的JBIPEtALS和我们书中介绍的OpenESB。ServiceMix为每个JBI组件都提供了一个简易的XML配置语言,为部署你的集成解JBI的学习曲线。所以,问题实际就是:在Mule和之间,你更愿意选择哪一个?。ServiceMix提供了JBI支Java为中心的模型,支持jBPM,支持消息无关,没有热部署JD:选择使用哪一个,其实取决于你的需求。当你面临的是两个ESB都是不错的开源集成解决方案,对于大多数集成问其他选择?对ApacheSynapse或者Spring集成(Spring是面向Web服务的ESB的典范,它是基于ApacheAxis2的。框架,能够跟ApacheCamel相媲美。它们都对Hohpe和failover.usestoprovideremotingclusoftheGeronimoproject.deploymentofJBIponentsponentshot-InadditionServiceMixprovidWSNotification.芯范mediatedmessageexchangeofthemessageexchange.]Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Action类(这个会在后面详细讨论),开发者通过其实现商业发过程是基于由struts-config.xml文件描述的配置信息套JSP定制标签库构成,利用她们我们能够快速建立应用系3、控制器(Controller),本质上是一个Servlet,将客户端请求转发到相对应的Action类。述如何自动产生一些JavaBean的属性的,此外Struts还利用XML来描述在国际化应用中的用户提示信息的(这样一来就Spring是轻量级的J2EE应用程序框架。现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此能够独立,也能够使用其它的整合方案。0/Rmapping产品(如Hibernate)。志输出,或CommonsDBCP用来作数据连接池),或由你的应用程序服务器提供。因为同样的的原因,我们没有提供0/Rmapping层,对此,已有有好的解决办法如Hibernate和我们没有底层事务协调处理,但我们提供了一个抽象层覆盖Spring没有直接和其他的开源项目竞争,除非我们感到我们能提供新的一些东西。例如,象很多开发人员,我们从来有为Struts高兴过,并且感到在MVCwebframework中还有改进的余地。在某些领域,例如轻量级的IoC容器和AOP框One-on-OneJ2EE设计与开发的那些。Spring在应用服务器之间是可移植的。Spring的核心即是个IoC/DI的容器,它能够帮程序设计人员完成组件之间的依赖关系注入,使得组件之间的依赖达到最Spring最为人重视的另一方面是支持AOP(Aspect-OrientedProgramming),不过AOP框架仅仅Spring支持的一个子框架,说Spring框架是AOP框架并不是一件适当的描述,人们对于新奇的AOP注重映射至Spring上,使得人们对于Spring的注重集中在它的AOP框架上,虽然有所误解,但也突显了Spring的另一个令人注重的特色。Spring也提供MVCWeb框架的解决方案,但您也能够将自己所熟悉的MVCWeb框架与Spring解合,像是Struts、Webwork等等,都能够与Spring整合而成为进用于自己的解Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使得Java程序员能够使用对J2EE架构中取代CMP,完成数据持久化。它还能够应用在任何使用JDBC的场合,既能够在Java的客户端程序实用,也能够在Servlet/JSP的Web应用中使用Hibernate不会对您造成妨碍,也不会强迫您修改对象的行为方式。它们不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就能够要求它以对象的形式因为本文仅仅一篇介绍性的文章,所以不会引入子)。此外,在网上和Hibernate的在线文档中,还能够找到一些不错的例子,请参见下面的“其他信息”部分。它实际上相当直观。应用程序对象中的属性以一种简单而自然的方以便管理数据库与Java之间的转换。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉HibernateHibernateAPI学习起来很简单,而且它与程序流的交互相当多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还能够获得另一个好处,即代码不用关心要使用的数据库种类(否则的话甚至必须知道)。我所在的公司就成巨大的灾难,但是借助于Hibernate,只需要简单地修改Hibernate配置文件即可。这里的讨论假定您已经通过创建Hibernate映射文档,建立了一个关系数据库,并且拥有要映射的Java类。有一个能够为您创建(或更新)必需的数据库表。或者,仅仅从映射设计您的数据库和类,从而拟定映射文档。还有一些用于Eclipse的alpha插件,它们能够在IDE中提供智能的编辑使用Hibernate的场合既然Hibernate看起来如此灵活好用,为什么还要使用其他的工具呢?下面有一些场景,能够帮助您做出判断(或许通过提供一些比较和上下文,能够有助于鉴别非常适用Hibernate如果应用对于数据存储的需要十分简单——例如,您只想管理一组用户优先选择——您根本不需要数据库,更不用说一个优秀的对象-关系映射系统了(即使它也如Hibernate这般易于使用)!从Java1.4开始,有一个标准的JavaPreferencesAPI能够很好地发挥这个作用。对于熟悉使用关系数据库和了解如何执行完美的SQL查询与就像带有动力和自动排挡的快艇车会使注重性能的赛车驾驶拥有一个强大的DBA,或者有一些存储过程要处理,您可能想研究一下iBATIS。Hibernate很有兴趣,因为我们曾为一个电子商务站点开发了一个类似的系统(其功能更为强大),而且从那时到现在,我们已经在其他环境中使用过它,即使在发现Hibernate之后,在新项中心的解决方案(比如iBATIS)是“反向的”对象/关系映射工具,而Hibernate是一个更为传统的ORM。在一个企业环境中,必须使用成熟的EJB架构(或者其他的一些非普通对象映射系统)。能够为提供自己的数据存储工具的能是像XMLDTD这样的存储规范,而它根本不涉及关系数据但是,如果您使用的是富对象模型,而且想要灵活、轻松且库,只要这是一个选择——而且存在可用的优秀免费数据库,比如MySQL,或可嵌入Java的HSQLDB,它就应该始终是一个选择),那么Hibernate很可能就是您理想的选择。您可能会惊讶于节省的时间之多,以及您将会多么地喜欢使用用的GUI,使其在所有的平台上都能够正常的显示。但是比较遗憾的是AWT产生的是在各系统看来都同样欠佳的图形用筑在AWT上层的一组GUI组件的集合,为了保证可移植也增强了AWT中组件的功能。正是因为Swing具备了如此多的优势所以我们以后在开发中都使用Swing。JComponent类是Swing组件的基类,而JComponent继承工234Connection对象生成Statement对象闭Con

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论