您当前的位置:首页 > 养生 > 内容

常见的中间件有哪些(汇总解析)

常见的中间件有哪些(汇总解析)

全球著名的信息机构Giga Group将中间件分为三大类,共计15种。另一家世界著名的信息机构IDC也指出,近年来,增长率最高的中间件将集中在数据访问中间件、消息中间件、交易中间件、对象中间件和应用服务器中间件。

数据访问中间件适用于应用程序和数据源之间的互操作模型。客户端使用面向数据库的API请求直接访问和更新基于服务器的数据源,这些数据源可以是关系型、非关系型和面向对象型的。这些中间件大多基于SQL语句,采用同步通信。这种中间件使应用开发变得简单,但如果通过广域网使用,则会带来严重的效率问题,因为在低速网络上来回交互SQL语句会使通信流量过大,而且会给数据压缩和加密带来不便。

消息中间件消息中间件适用于需要网络通信的系统。它负责建立网络通信的逻辑通道,通过消息中间件发送数据或文件。消息中间件的一个重要功能是可以实现跨平台操作。越来越多的分布式应用由消息中间件构建,应用通过消息中间件扩展到不同的操作系统和不同的网络环境中间件领域。目前最流行的技术是异步消息中间件,它比同步中间件技术有更强的容错能力,可以在系统出现故障时保证消息的正常传输,所以这两年发展很快。

交易中间件交易中间件是专门为在线交易处理系统设计的。交易中间件是一组程序模块,可以大大减少开发在线交易处理系统所需的编程量。交易中间件的主要标准是X/OPEN组织定义的分布式交易处理参考模型。交易中间件理论上比较成熟,功能和性能都有明确的定义,但基本适用于网上交易系统,如银行系统、订票系统等。事务中间件管理应用程序声明和提交的事务,通过两阶段提交协议保证分布式事务的完整性,控制并发,实现事务路由和负载均衡。

面向对象的中间件面向对象的中间件提供了一个标准的组件框架,使得不同厂商的软件能够通过不同的地址空间、网络和操作系统相互交互访问。该组件的具体实现、位置和附加的操作系统对客户是透明的。例如,我们可以通过简单地组装或扩展现有的组件来构建具有客户机/服务器结构的信息系统。面向对象中间件技术的目标是为软件用户和开发者提供一个应用级的即插即用的互操作性,就像现在使用集成块和扩展板一样。与面向对象中间件相关的标准相继问世,如OMG组织的CORBA、微软的COM、IBM的SOM等,极大地推动了面向对象中间件技术的发展。

应用服务器中间件应用服务器中间件为Internet/Intranet和其他分布式组件应用程序的服务端组件提供了一个完整的环境。类似于事务监视器,它只是面向对象的,支持组件并有一个标准的API。应用服务器将在日益火热的电子商务领域发挥重要作用。

实际上,一个复杂的分布式系统可以通过积木搭建,每个积木都是一个中间件,可以通过合适的代码绑定在一起。

TomcatTomcat是Sun的JSWDK(Java Server Web Development Kit)中的servlet运行环境(Servlet容器)。Tomcat是Apache Jakarta软件组织的子项目。Tomcat是JSP/Servlet容器,是在SUN公司的JSWDK(Java Server Web Development Kit)基础上开发的JSP和Servlet规范的标准实现。使用Tomcat可以体验JSP和Servlet的最新规范。经过多年的发展,Tomcat不仅是JSP和Servlet规范的标准实现,而且具有商业Java Servlet容器的许多特性,并已被一些企业用于商业目的。

JBossJBoss是一个运行EJB的J2EE应用服务器。它是一个开源项目,遵循最新的J2EE规范。自JBoss项目开始以来,它已经从一个EJB容器发展成为一个基于J2EE的web操作系统,体现了J2EE规范中的最新技术。

WebLogic server是企业级应用服务器,支持EJB、集群和ERP(企业资源计划)的连接。开发公司:东亚银行。

WebSphere产品系列是IBM的一套典型的电子商务应用开发工具和运行环境。

ZooKeeperZooKeeper提供基本的目录/名称服务和配置管理服务。并且在此基础上还可以提供分布式锁、领袖选举等高级功能。网上有一个有趣生动的介绍:“动物园管理员,顾名思义,就是动物园里大象(hadoop)、蜜蜂(Hive)、猪(Pig)和我的猫(MyCat)的管理员”。

客户端建议使用Apache Curator,一个二级封装的客户端,来编写客户端代码。它封装并简化了很多与业务无关的逻辑,使用简单,质量可靠。

Apache KafkaKafka是一个高通量的分布式消息传递系统,由Linkin开放,被描述为LinkIn的“中枢神经系统”。Kafka管理从各种应用程序收集到的信息流,以及处理后的数据分发位置。

Kafka是Scala开发的,Scala是动态的需要在JVM上运行,所以对于懂Java的同学来说学习起来并不困难,而且它的客户端也支持Java语言,所以很容易部署在这台机器上进行学习和研究。

脸书ThriftFacebook Thrift是最新一代高性能、跨需求的RPC通信框架,支持多种语言。

脸书节俭类似于冰,但不像冰那样完整和成熟。与脸书节俭相似的是阿帕奇Avro。

与Hadoop相比,Apache Storm、Spark Streaming和Samza是实时、高容错的分布式计算系统。Storm也可以处理批量数据,但是可以在保证高可靠性的前提下让处理更加实时,所有的信息都会被处理。Storm还具有容错和分布式计算的特性,这使得Storm可以扩展到不同的机器上进行大规模的数据处理。

Storm的主要开发语言是Java,并且包含了Lisp语言Clojure,对于Java工程师来说并不难学。和Strom类似的还有Spark Streaming和LinkIn的Samza,这两个都是最近比较热门的开源项目。

Spark Streaming是Spark中一个新的流计算框架。Spark不像Strom那样一次处理一个数据流,而是在处理之前,每隔一段时间就将它分成批处理作业。

Samza处理数据流时,会依次处理收到的每条消息。Samza的流单元既不是tuple也不是Dstream,而是一条消息。

Strom、Spark Streming、Samza都是分布式系统,具有低延迟、可伸缩、容错等诸多优点。它们的共同特点是:允许你在运行数据流代码时将任务分配给一系列具有容错能力的计算机,并且都提供了简单的API来简化底层实现的复杂度。

MyCatMyCat是基于MySQL的中间件软件,也可以说是分布式数据库。它的前身是阿里巴巴开源的Cobar。但由于阿里巴巴后期开发云平台,提供收费的RDS服务,这个开源项目最终被关闭。随后一批国内科技巨头推出了MyCat开源项目(http://www mycatorg.cn),目标是成为Apache旗下的中国顶级开源项目。

Java中的「中间件」有哪些?分别是什么意思?中间件:非底层操作系统软件和非业务应用软件,不被最终用户直接使用,不能直接给客户带来价值,统称为中间件。常见的有:服务中间件、集成中间件、数据中间件、消息中间件和安全中间件。

用Java实现的中间件统称为Java中间件。中间件可以理解为类库,介于类库和产品之间。

简单来说,就是你的程序A和程序B相互通信使用的协议。程序A和B可以用不同的语言和平台构建。但是协议可以保证他们可以互相认识,互相送东西。

简单来说,中间件有一个很大的特点,就是脱离具体的设计目标,有提供通用的独立功能需求的模块。这就使得中间件必须是可替换的。如果中间件在一个系统设计中是不可替代的,架构和框架设计没有问题,那么它就是中间件,它可能是别处的中间件,也可能是这个系统中的引擎。

对于一般的本地开发,建议使用Tomcat。

对于linux系统,建议使用Jetty或apache hpptd。

JBOSS或webloigc用于大型项目。

小项目,或者tomcat的个人开发大项目或者商业项目一般采用:weblgoic/webshere。

其他还有jboss,glasshfish等。

Jetty经常用在一些样本项目或小型项目中。

tomcat,jboss,weblogic,websphere一般项目Tomcat都会做。

标签:中间件系统标准


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 吃药能喝柠檬水吗,注意什么呢?(柠檬水)

下一篇: 华为智慧教室(华为能用在智慧教室里吗)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号