中间件的历史与发展
- 格式:doc
- 大小:753.00 KB
- 文档页数:12
金蝶中间件公司拥有全国六大区域中心,四十多家直属机构,覆盖了全国所有的大中型城市.是全球技术领先的基础架构软件企业。
它专注于提供标准、安全、高效、集成的企业级中间件产品和专业服务。
2007年被Gartner评为在全世界范围内有能力提供下一代SOA服务的19家主要厂商之一。
2007年,金蝶中间件的金蝶Apusic J2EE应用服务器是全球第四家通过最新Java国际标准Java EE5.0认证的产品。
简介深圳金蝶中间件有限公司是金蝶国际软件集团(股票代码268.HK)旗下的子公司,是全球技术领先的基础架构软件企业。
它专注于提供标准、安全、高效、集成的企业级中间件产品和专业服务。
2007年被Gartner评为在全世界范围内有能力提供下一代SOA服务的19家主要厂商之一。
2007年,金蝶中间件的金蝶Apusic J2EE应用服务器是全球第四家通过最新Java国际标准Java EE5.0认证的产品。
金蝶中间件金蝶中间件总部位于深圳市,成立于2000年7月。
金蝶中间件的营销、服务及伙伴网络在中国大陆分为南方、华北、东北、华东、西南、西北六大区域,在国内拥有39家分支机构。
金蝶中间件的客户遍及中国大陆、香港和台湾地区的政府、金融、电信、制造、能源、交通等行业,包括中国人民银行、国家发改委、国家质检总局、国家民政部、国家监察部、广东工商局等政府客户,以及万科集团、华为、海尔集团、招商局、中国移动、香港亨达集团、台湾程曦等2000多家大型企业客户,并拥有中软、中科软、东软、珠海远光、深圳太极、深圳拜特、浙大网新、广东中望、珠海同望等200多家合作伙伴。
金蝶中间件还创造了中国中间件领域众多的“第一”:第一个开发出国产纯Java中间件并通过J2EE标准;第一个代表中国加入JCP组织、制订世界Java技术标准;国内第一个且唯一一个获得下一代规范Java EE 5.0认证授权。
金蝶中间件目前拥有Apusic J2EE应用服务器、Apusic 消息中间件、Apusic ESB、Operamasks Studio、OperaMasks SDK、Apusic Portal Suite等产品,能够帮助客户摆脱底层困扰、快速构建、安全管理、灵活重用、有效降低系统开发复杂性与开发成本,并最大限度保护现有资源,推动企业快速实现他们的商业价值。
全国移动商务知识赛练习卷(A)一、单项选择题(每题0.5分,共40题,共20分)1.从出现的先后顺序来划分,出现了第五媒体的说法,指的是()。
A.电视 B.移动网络 C.互联网 D.报纸2.下列说法不正确的是:中国已经成为()A.全球人数最多 B.规模最大C.资源最丰富的移动通信市场 D.移动通信技术最先进的国家。
3.移动商务在发展中和电子商务发展中的一个重要不同点是:()A.发展快 B.规模大C.商务模式多样化D.起步阶段就拥有一批具有自主知识产权的专利技术和专利产品4.移动商务在人类历史上第一次使用现代网络技术和()最大范围超出高深,为大众所掌握。
A.局域网技术B.现代通信技术C.卫星通信技术D.互联网技术5.移动通信是指通信的双方,至少有一方是在()中进行信息的传输和交换。
A.静止B.移动C.通话D.利用手机6.我国第一部移动电话是从()售出的。
A.北京B.上海C.广州D.深圳7.二维条码在()存储信息的条码。
A.圆形图形中B.方形图形中C.长方形图形中D.水平和垂直方向的二维空间8.目前中国移动二维条形码的业务操作模式是由()来负责品牌和业务推广,银河传媒则主要负责提供技术支持和业务招商,双方按一定的比例分成。
A.中国移动B.中国联通C.国家信息产业部D.银河传媒9.()系统是唯一可以实现在两极通话的卫星通信系统。
A.北斗星卫星定位系统B.俄罗斯全球导航卫星系统C.欧洲卫星导航系统D.“铱星”系统10.GSM数字移动通信息通源于()。
A.亚洲B.美洲C.欧洲D.非洲11.我们所熟知的GPRS(通用分组无线业务)是第几代移动通信技术()A.2.5G B.3G C.2G D.4G12.下列不属于价值链上的价值活动的是()。
A.供应商B.采购商C.分销商D.消费者13.移动商务模式构建中的主导要素是:()A.内容提供商B.电信资源提供商C.服务提供商D.支付方式提供商14.下列()是以扫描收费为主的移动商务。
浅谈CGI技术:从概念到实践CGI(Common Gateway Interface)是一种用于在Web服务器和外部应用程序之间传递数据的标准协议。
CGI程序能够处理从Web浏览器发送到服务器的HTTP请求,并根据请求生成动态网页内容。
CGI程序可以使用任何编程语言编写,可以在不同的操作系统和平台上运行。
CGI程序作为独立的进程运行,接收客户端请求,执行相应的操作,最终生成HTML页面,并将其发送回客户端。
CGI程序通常需要使用一些外部程序或库来完成特定的操作,例如数据库访问、文件上传等。
CGI作为Web应用程序开发的标准接口,具有独立性、可扩展性、可移植性等优点,但也存在性能问题、安全问题、可维护性问题等缺点。
一、定义CGI是一种标准的接口,它定义了Web服务器和外部应用程序之间传递数据的方式。
简单来说,CGI程序就是一种能够接收HTTP请求并返回HTML页面的程序。
CGI的全称为“通用网关接口”(Common Gateway Interface),意味着它是一种公共的、通用的、网关式的接口。
公共(Common):无须考虑客户机和服务器所运行的操作系统平台,只要二者的网关程序遵循同一数据传输协议,即可进行数据交互。
通用(Generic):可以使用任何编程语言编写CGI程序,可以在不同的操作系统和平台上运行。
网关(Gateway):CGI可以被用来作为Web服务器与其他第三方应用程序之间的“连接件”或“中件(Middle Ware)”。
通过CGI,Web服务器可以将根据请求不同启动不同的外部程序,并将请求内容转发给该程序,在程序执行结束后,将执行结果作为回应返回给客户端。
接口(Interface):CGI使用标准通讯机制,为其他应用程序与Web服务器提供数据传输接口。
CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。
二、历史CGI的历史可以追溯到1993年,当时NCSA发布了HTTPd服务器,其中包含了CGI的实现。
消息中间件的概念
消息中间件(Message Oriented Middleware,MOM)是一种在分布式系统中用于传递消息的软件中间件。
它提供了一个可靠的、异步的消息传递机制,用于在不同的应用程序、系统或服务之间进行通信和数据交换。
消息中间件的主要功能包括:
1. 消息传递:它允许应用程序通过发送和接收消息来进行通信,而不是直接调用对方的函数或方法。
消息可以是文本、数据对象或其他形式的信息。
2. 解耦:消息中间件将发送方和接收方解耦,使它们不需要知道对方的具体实现细节、位置或运行状态。
发送方只需将消息发送到中间件,而接收方可以在需要时从中间件获取消息。
3. 可靠性:消息中间件通常提供可靠的消息传递机制,确保消息不会丢失或重复传递。
它可以处理消息的确认、重试和容错等问题。
4. 异步性:消息中间件支持异步通信,发送方发送消息后可以立即继续执行其他操作,而无需等待接收方的响应。
这有助于提高系统的并发性和性能。
5. 可扩展性:消息中间件通常支持分布式部署和横向扩展,以便处理大规模的消息流量和高并发的应用场景。
软件工程的发展The Development of Software Engineering一、软件工程发展的历史⒈软件工程的出现⑴现代计算机软件的出现20世纪50年代,软件伴随着第一台电子计算机的问世诞生了。
以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。
1960年代美国大学里开始出现授予计算机专业的学位,教人们写软件。
在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。
早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。
大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。
早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。
而且,除了源代码往往没有软件说明书等文档。
⑵软件危机到了20世纪60年代 ,计算机的应用范围得到较大扩展 ,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。
这就是所谓的“软件危机”。
为解决这个问题,1968年NATO会议上首次提出“软件工程”( Soft ware Engineering)的概念 ,提出把软件开发从“艺术”和“个体行为”向“工程”和“群体协同工作”转化。
其基本思想是应用计算机科学理论和技术以及工程管理原则和方法 ,按照预算和进度 ,实现满用户要求的软件产品的定义、开发、发布和维护的工程。
从此也诞生了一门新的学科——软件工程。
二、软件工程的发展过程随着软件技术的发展,软件工程的研究范围和内容也在不断变化和发展。
其发展经历了如下3个阶段:第一阶段,即传统软件工程阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件开发工程化的思想,希望使软件开发走上正规化的道路,并努力克服软件危机。
形成了软件工程的概念、框架、方法和手段。
第二阶段,即过程软件工程阶段:80年代末逐步发展起来的面向对象的分析与设计方法,形成了完整的面向对象技术体系,使系统的生存周期更长,适应更大规模、更广泛的应用。
Google Android平台简介1.Android发展历史2007年11月5日,Google发布基于Linux平台的开源移动手机平台:Android。
该平台由操作系统、中间件、用户界面和、应用软件等组成,号称是首个为移动终端打造的真正开放的移动开发平台。
目的:随时随地为每个人提供信息,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,并且让移动通信不依赖于设备甚至平台。
2.Android平台研发队伍包括手机制造商、电信运营商、半导体公司、软件公司等群体内的48家公司(2009年5月18日)3.Android的未来展望:●强大的界面与搜索功能,融入全部Web应用的开放平台。
●对第三方软件完全开放的平台,开发者拥有了更大的自由度。
●Google向开发人员免费提供Android系统。
●Android项目获得了手机运营商、手机厂商、开发者和消费者的大力支持。
Android平台所提供的功能1.应用程序架构2.Dalvik虚拟机3.Android浏览器4.Android绘图能力5.SQLite数据库6.多媒体支持7.GSM驱动模块8.Bluetooth、EDGE、3G及wifi9.Camera、GPS、电子指南针(compass)、加速感应器(accelerometer)10.Android开发环境android框架简介android框架共由5部分组成1.Applications(应用程序层)2.Applications Framework(应用程序框架)3.Android Runtime(Android执行环境)4.Libraries(函数库)5.Linux Kernel(Linux内核)1.Android应用程序层Android同一系列核心作用程序包一起发布的应用程序,例如E-mail客户端、SMS 短消息程序、日历、地图、浏览器及联系人管理程序等。
2.Android应用框架完全访问Android核心应用程序所使用的API框架。
SIS简介注:这是两年前写的一篇文章SIS简介1.什么是SISSIS是英文“Supervisory Information System in Plant Level”的简称,其中文名称是:厂级监控信息系统。
SIS不是一个外来名词,它诞生于中国,最早于1997年由时任中国电力规划设计总院专家委员会委员的侯子良教授提出。
按照侯子良的定义,SIS系统“主要为全厂实时生产过程综合优化服务的生产过程实时管理和监控的信息系统”,是介于底层控制系统(DCS)和管理信息系统(MIS)之间的“中间件”。
2.SIS的发展历史1997年,时任中国电力规划设计总院专家委员会委员的侯子良教授在文章《2000年电厂自动化设计新思路》中首次提出SIS的概念。
自SIS提出以来,它的发展经历了三个阶段:•第一阶段争论的阶段;•第二阶段试点阶段,在少数引进机组或示范电厂中批准立项;•第三阶段普遍立项,推广应用。
2000年国家经贸委颁发的《火力发电厂设计技术规范》(DL5000-2000)明确规定:“当电厂规划容量为1200MW及以上、单机容量为300MW及以上时,可设置厂级监控信息系统” ,正式肯定了SIS的作用,确立了SIS的地位,成为SIS发展的转折年。
2005年国家发展和改革委员会批准发布了《DL/T 924-2005 火力发电厂厂级监控信息系统技术条件》,该标准于2005年6月1日正式生效(还有10多天),以规范SIS系统的推广和发展。
到目前为止,全国总共有将近300个电厂建成了SIS系统,一批2000年示范电厂的SIS工程也已取得成功应用,大唐盘山电厂的SIS 率先于2004年6月通过了鉴定。
经过7年的发展,已初步形成了一支SIS开发和应用队伍,全国总共有100多家SIS研发厂家,这为进一步发展SIS的应用打下了良好基础。
3.SIS的定位电厂一般有机、炉、电、控、辅机几个生产环节,每个专业承担不同的生产分工,采用不同的生产过程,每个过程都有一些相关控制系统,一般称之为底层系统。
SOA、BPEL、ESB的前生后世这篇文章涉及到SOA、SCA、SDO、工作流、BPEL、ESB、消息中间件、WebService、EAI、分析设计方法、面向对象、面向组件众多技术,不仔细看,你仍然会混淆SOA=WebService=EAI。
BPEL=工作流。
ESB=消息中间件。
但这些混淆全是错误的,你需要在以下的阅读中体会他们的差异。
如果你没有耐心去理解这些技术的差异和来龙去脉,那么你可以直接阅读最后一段,那里是总结。
你可以无需了解过程,直接了解正确的结果。
但可能会造成你只知道什么是正确的,但不明白为什么它是正确的。
如果你正好想要这种结果,那么正合你的心意。
SOA很难,是因为领导SOA影响力和市场产品的公司把许多东西都装进了SOA,以希望获得一揽子解决方案。
这个解决方案从SOA项目的方案规划咨询方法到项目管理方法(如RUP,项目岗位角色职责流程评估)到业务描述方法(如UML)到中间件到业界标准(如WebService、SOAP、SCA、SDO)到系统整合诊断到系统整合接口设计(如如何设计面向服务的接口)到系统整合的业务流程整合(如BPEL),而业务流程整合往往被业界的工作流和业务基础平台牵扯。
而国外项目一牵扯到系统整合,就牵扯到遗留系统,什么Corba、COBOL、PL、SAP、JAVA,更是让国内的程序员茫然失措。
不仅仅是众多领域的名词、技术标准、产品名称让国内程序员心慌,而且国内的IT技术发展时间短,根本没多少遗留系统,而且国内的程序员也大多年轻,对过去的技术发展和遗留系统的产生和应用历史,也不太清楚。
所以把各种因素都综合在一起,让程序员望而却步。
而企业的CIO们,一看这么复杂,而且还搞不清楚有什么用,而且一定很贵,而且一定实施周期长风险大,就听说业界鼓吹SOA有利于系统整合、SOA可以使你的IT和业务能灵活的随需应变,但业界也始终没有拿出让人易懂和信服的案例说明怎么就能灵活的随需应变和系统整合。
中间件中间件(middleware)是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。
顾名思义,中间件处于操作系统软件与用户的应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。
这些与用户的业务没有直接关系,但又必须解决,耗费了大量有限的时间和精力。
于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。
这一技术思想最终构成了中间件这类的软件。
为解决分布异构问题,人们提出了中间件(middleware)的概念。
中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。
针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
图1 中间件也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点:满足大量应用的需要运行于多种硬件和OS平台支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互支持标准的协议支持标准的接口由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。
对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
中间件的历史与发展1. 由来中间件在实际的应用过程中,是对应用软件起到支撑作用,最终用户并不直接使用中间件,中间件不是大众消费类软件产品。
因此,除非是一个行业专业人士,一般不大可能与中间件打交道,不太了解什么是中间件。
因此,在系统软件之中,操作系统、数据库、中间件的三驾马车,中间件是最神秘的。
因为,好歹大家通过Windows基本上会了解操作系统是个什么东西,尽管不会很全面,很专业,毕竟是有感觉的。
数据库,虽然没有直接见过,但基本上明白数据是要一个仓库来储存的,因此,也大致知道数据库管理系统是干什么的。
长期以来,中间件是一个专业化非常强的细分产业。
因为中间件的技术门槛比较高,玩家也不多,无论是国外还是国内都是如此。
因此,行业内对什么是中间件并不特别在意。
而公司名称直接叫中间件的就更少了,另一方面,因为中间件软件还处于发展阶段,还没有完全成熟,因此对中间件的定义也就没有深究,或者权威的说法。
但现在情况有点变化,其中一个原因在于2008年底,国家启动了核高基重大科技专项,在基础软件领域明确提出重点支持操作系统、数据库、中间件、文字处理等基础软件产业的自主创新,几乎一夜之间大大小小的软件公司都宣称是做中间件的了,只要不是做最终应用软件的,他们的产品都叫中间件了,一时间,中间件变得蓬勃发展起来了。
作为中间件行业内的专业化和领先企业来说,大家都重视起中间件来了,这是好事,说明社会上重视了。
对行业的发展和繁荣固然重要,但这也隐含了重大的风险。
中间件名字被滥用,无论是对用户,对这个产业,对政府和投资人来说,都会有负面的影响。
鱼目混珠,泥沙俱下的局面,对中间件产业的正常发展未必就是好事情了,也可能对真正的中间件自主创新带来许多困扰,模糊了中间件的本质,可能会弱化中间件核心技术的创新和发展。
因此,在这种情况下,无论是对行业内,还是行业外,突然什么是中间件的问题变成了一个大问题了。
本文试图就中间件的来龙去脉,外延内涵和前世今生,来一个全面的阐释。
一家之言,权作业界参考,希望带动大家做一些深入的思考。
2. 中间件的起源2.1 中间件发展的历史事情从1946年说起,世界上第一台电子计算机埃尼阿克诞生,人类进入信息时代。
1955年,约翰巴克斯发明了最早的程序语言Fortran,现代意义上的软件就诞生了。
1964年,IBM发布OS/360操作系统,软件与硬件分离,同时,软件成为一个独立的产业正式登上产业界的舞台。
中间件就是软件产业不断发展过程中自然产生的。
90年代,文顿·瑟夫这位互联网之父的发明成为改变IT业的重大革命性创新。
互联网促使分布式系统和网络应用的诞生,中间件就是伴随网络技术的产生、发展而兴起的,可以说没有网络就没有现代意义上的中间件。
因为,网络环境需要解决异构分布网络环境下软件系统的通信、互操作、协同、事务、安全等共性问题,提高异构分布网络环境下软件系统的互操作性、可移植性、适应性、可靠性等问题。
1968年IBM发布CICS交易事务控制系统,使得应用软件与系统服务分离,这是中间件技术萌芽的标志,因为CICS还不是分布式环境的产物,因此我们往往还不将CICS作为正式的中间件系统。
一般来说,我们将1990年诞生于ATT公司的BELL实验室的Tuxedo系统(后来被NOVELL从ATT公司随着UNIX系统一起买走,后来又卖给了BEA公司,现在归于ORACLE公司旗下了)作为中间件的诞生标志。
Tuxedo解决了分布式交易事务控制问题,中间件开始成为网络应用的基础设施,中间件正式成型,这是最早的交易中间件。
1994年IBM发布消息队列服务MQ系列产品,解决分布式系统异步、可靠、传输的通讯服务问题,消息中间件诞生。
1995年,JAVA之父James Gosling发明JAVA语言,JAVA提供了跨平台的通用的网络应用服务,成为今天中间件的核心技术。
JAVA是第一个天生的网络应用平台,特别是 J2EE发布以来,JAVA从一个编程语言,演变为网络应用架构,成为应用服务平台的事实标准。
应用服务器中间件,成为中间件技术的集大成者,也成为事实上的中间件的核心。
2001年,微软发布.NET,中间件演变为.NET和JAVA两大技术阵营。
但由于.NET还不是一个完全开放的技术体系,只有一个玩家,因此,虽然.NET也是一种中间件,但由于IBM/ORACLE/SUN/SAP等巨头都无一例外成了JAVA阵营的支持者,因此,我们习惯上提到中间件时,往往不包括.NET中间件体系。
以上谈的是历史,但透过历史事实背后,为什么会出现中间件,这其中的本质因素是什么?2.2 中间件发展的驱动力中间件出现的驱动力主要来自软件研发过程碰到的种种问题。
从软件出现最早是用于科学计算,然后是计算机辅助设计、辅助制造等等工业应用。
在企业管理领域大规模应用后,业务需求不断的变化、系统不断增加、流程更复杂、系统越来越不堪重负,出现了需求交付方面的重大挑战,以至于人们用软件危机来描述软件工业所面临的困境。
总结起来,软件工业面临的主要问题是四个方面:质量问题、效率问题、互操作问题、灵活应变问题。
这些问题今天依然困扰着这个行业。
造成这个局面的原因是异构性和标准规范的滞后。
•屏蔽异构性异构性表现在计算机的软硬件之间的异构性,包括硬件(CPU和指令集、硬件结构、驱动程序等),操作系统(不同操作系统的API和开发环境)、数据库(不同的存储和访问格式)等等。
长期以来,高级语言依赖于特定的编译器和操作系统API来编程,而他们是不兼容的,因此软件必须依赖于开发和运行的环境。
造成异构的原因源自市场竞争、技术升级以及保护投资等因素。
希望屏蔽异构平台的差异性问题是促成中间件发展的驱动力之一。
•实现互操作因为异构性,产生的结果是软件依赖于计算环境,使得各种不同软件之间在不同平台之间不能移植,或者移植非常困难。
而且,因为网络协议和通信机制的不同,这些系统之间还不能有效地相互集成。
造成互操作性不好的原因,主要是标准的滞后。
解决软件之间的互操作性问题也是促成中间件发展的驱动力之一。
•共性凝练和复用软件应用领域越来越多,相同领域的应用系统之间许多基础功能和结构是有相似性的,每次开发系统都从零开始绝对不是一种好的方法,也是对质量和效率的很大的伤害。
尽可能多地凝练共性并复用以提高软件开发效率和质量,通过中间件通过提供简单、一致、集成的开发和运行环境,简化分布式系统的设计、编程和管理,这也是中间件发展的重要驱动力。
在长期的探索过程中,解决软件的四个问题的办法总结起来两个方面:工程方法、平台与技术。
工程方法就是用工业工程、系统工程的理论、方法和体系来解决软件研发过程中的管理问题,包括团队管理、项目管理、质量控制等等,这就是软件工程。
除了软件工程方法之外,我们发明了更多的架构规划、设计和实施的方法,不断累积领域的知识与经验等等。
更好的技术手段,包括更好的程序设计语言、更好的平台和软件开发技术,如面向对象、组件开发、面向服务等等。
而这方面,在技术上逐渐发展的成果大部分都凝聚在今天的中间件平台之中。
而这些更好的技术手段,从本质上是通过复用、松耦合、互操作(标准)等机制来提高软件质量、加快软件研发效率、使研发出来的产品能够相互集成并灵活适应变化。
这些因素逐渐促成了中间件软件的形成和发展。
3. 中间件的概念讲了这么多,究竟什么是中间件,也就是中间件的定义是什么?针对这个问题,应该说还没有一个标准的定义,或者说还没有完全取得学术界和产业界的共识。
顾名思义,中间件就是处于中间的软件。
但这种不是从功能,或者特性来定义的概念,而是用位置来定义的名字,就容易被不同的人从不同角度赋予其不同的含义。
IDC曾经给中间件下的定义是中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
我国学术界一般认可的定义是中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性(北京大学梅宏)。
中科院软件所研究员仲萃豪形象地把中间件定义为平台+通信。
这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。
中间件处于操作系统软件与用户的应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
形象地说就是上下之间的中间。
此外,中间件主要为网络分布式计算环境提供通信服务、交换服务、语义互操作服务等系统之间的协同集成服务,解决系统之间的互连互通问题。
形象地说就是所谓左右之间的中间。
要深入理解什么是中间件,形式化的定义固然重要,我们还得从概念本身去深入理解其核心特征才是最重要的。
要理解一个概念,从内涵和外延两个方面去描述是哲学上非常重要的一套方法体系。
3.1 中间件的特征(内涵)总结分析,中间件有几个非常重要的特征是必须具备的:•平台化所谓平台就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。
显然,不是所有的系统或者应用都可以称之为平台的。
中间件是一个平台,因此中间件是必须独立存在,是运行时刻的系统软件,它为上层的网络应用系统提供一个运行环境,并通过标准的接口和API来隔离其支撑的系统,实现其独立性,也就是平台性。
因此,目前许多的开发语言、组件库和各种报表设计之类的软件,很难满足平台性,将这类软件叫中间件,是很不合适的。
例如,JAVA是一种语言,这种语言的开发工具和开发框架,如Eclipse、JBuilder、Struts,Hibernate等等就不能称为中间件,充其量叫中间件开发工具,而不能叫中间件本身,就如同各种建筑工程设备和机械,如吊臂、搅拌机等不能叫建筑,而只能成为建筑工具一样。
而J2EE应用服务器提供JAVA应用的运行环境,就是经典的中间件。
•应用支撑中间件的最终目的是解决上层应用系统的问题,而且也是软件技术发展到今天对应用软件提供最完善彻底的解决方案。
高级程序设计语言的发明,使得软件开发变成一个独立的科学和技术体系,而操作系统平台的出现,使得应用软件通过标准的API接口,实现了软件与硬件的分离。
现代面向服务的中间件在软件的模型、结构、互操作以及开发方法等四个方面提供了更强的应用支撑能力:模型:构件模型弹性粒度化,即通过抽象层度更高的构件模型,实现具备更高结构独立性、内容自包含性和业务完整性的可复用构件,即服务。
并且在细粒度服务基础上,提供了更粗粒度的服务封装方式,即业务层面的封装,形成业务组件,就可以实现从组件模型到业务模型的全生命周期企业建模的能力。