用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

小蜜锋    -  云代码空间

—— 技术宅拯救世界!

中间件技术考试复习 概念整理笔记

2013-05-29|2209阅||

摘要:中间件 中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。 IDL (Interface Definition Language)

中间件

中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。

IDL (Interface Definition Language) 接 口 描 述 语 言

中间件作用

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算资源和网络通讯。

中间件在分布式的客户和服务之间扮演着承上启下的角色,如事务管理、负载均衡以及基于Web的计算等。

中间件有助于减轻应用软件开发者的负担,利用现有的硬件设备、操作系统、网络、数据库管理系统以及对象模型创建分布式应用软件时更加得心应手。

由于中间件能够保护企业的投资,保证应用软件的相对稳定,实现应用软件的功能扩展;同时中间件产品在很大程度上简化了一个由不同硬件构成的分布式处理环境的复杂性,所以它的出现正日益引起用户的关注。

中间件特点 (优点)

满足大量应用的需要 ;

运行于多种硬件和OS平台 ;

支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能 ;

支持标准的协议 ;

支持标准的接口。

中间件屏蔽了低层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。

中间件带给应用系统的不只是开发的简单、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。The Standish Group的调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以减少50%左右。在网络经济大发展、电子商务大发展的今天,从中间件获得利益的不只是IT厂商,IT用户同样是赢家,并且是更有把握的赢家。

中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。中间件的这一作用,在技术不断发展之后,使以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。

中间件的十大优越性

应用开发:The Standish Group 分析了100个关键应用系统中的业务逻辑程序、应用逻辑程序及基础程序所占的比例;业务逻辑程序和应用逻辑程序仅占总程序量的30%,而基础程序占了70%,使用传统意义上的中间件一项就可以节省25%~60%的应用开发费用。如是以新一代的中间件系列产品来组合应用,同时配合以可复用的商务对象构件,则应用开发费用可节省至80%

系统运行:没有使用中间件的应用系统,其初期的资金及运行费用的投入要比同规模的使用中间件的应用系统多一倍。

开发周期:基础软件的开发是一件耗时的工作,若使用标准商业中间件则可缩短开发周期50%~75%

减少项目开发风险:研究表明,没有使用标准商业中间件的关键应用系统开发项目的失败率高于90%。企业自己开发内置的基础(中间件)软件是得不偿失的,项目总的开支至少要翻一倍,甚至会十几倍。

合理运用资金:借助标准的商业中间件,企业可以很容易地在现有或遗留系统之上或之外增加新的功能模块,并将它们与原有统无缝集合。依靠标准的中间件,可以将老的系统改头换面成新潮的Internet/Intranet 应用系统。

应用集合:依靠标准的中间件可以将现有的应用、新的应用和购买的商务构件融合在一起进行应用集合。

系统维护:需要一提的是,基础(中间件)软件的自我开发是要付出很高代价的,此外,每年维护自我开发的基础(中间件)软件的开支则需要当初开发费用的15%~25%,每年应用程序的维护开支也还需要当初项目总费用的10%~20%左右。而在一般情况下,购买标准商业中间件每年只需付出产品价格的15%~20%的维护费,当然,中间件产品的具体价格要依据产品购买数量及哪一家厂商而定。

质量:基于企业自我建造的基础(中间件)软件平台上的应用系统,每增加一个新的模块,就要相应地在基础(中间件)软件之上进行改动。而标准的中间件在接口方面都是清晰和规范的。标准中间件的规范化模块可以有效地保证应用系统质量及减少新旧系统维护开支。

技术革新:企业对自我建造的基础(中间件)软件平台的频繁革新是极不容易实现的(不实际的)。而购买标准的商业中间件,则对技术的发展与变化可以放心,中间件厂商会责无旁贷地把握技术方向和进行技术革新。

增加产品吸引力:不同的商业中间件提供不同的功能模型,合理使用,可以让你的应用更容易增添新的表现形式与新的服务项目。从另一个角度看,可靠的商业中间件也使得企业的应用系统更完善,更出众。

中间件的应用领域

数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的数据库实现联接或文件系统实现联接的中间件;

远程过程调用中间件:通过这种远程过程调用机制,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程;

消息中间件:用来屏蔽掉各种平台及协议之间的特性,进行相互通信,实现应用程序之间的协同;

交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台;

对象中间件:在分布、异构的网络计算环境中,可以将各种分布对象有机地结合在一起,完成系统的快速集成,实现对象重用。

CORBA

CORBACommon Object Request Broker Architecture的缩写,简称公共对象请求代理结构。其目的是在分布和异构计算机环境下为应用软件的开发提供一个公共框架,使开发出来的软件即面向对象又具有可重用性、可移植性以及可操作性等特点。

当前支持服务器端中间件技术的平台

主要有OMGCORBASunJ2EEMicrosoft DNA 2000

CORBA事件服务是将事件从事件提供者对象传送给事件消费者对象这样一种机制。

CCM拓展了CORBA对象模型,是面向服务器端的组件模型:

CCM支持CORBA组件的定义,代码生成,封装,组合,配置,可构建及配置CORBA应用;

CCM提供了服务器的公共服务;

CCM提供了CORBA容器用以实现与EJB的互操作;

互斥锁

线程是指在某个进程的上下文中执行的代码序列.

互斥锁用于保护多线程并行访问的共享资源的完整性;

读写锁

与互斥锁类似;允许对一个被保护的共享资源并发的读和独占的写。

计数信号量

用来跟踪共享程序的状态变换.

条件变量

提供了与互斥锁,读写锁和计数信号量不同特点的锁机制.

事件数据传送模型

Push

    在推模型中,事件的提供者起带头作用,发起事件的传送;

Pull

在拉模型中,事件的消费者起带头作用,向提供者请求事件数据。

事件信道

事件信道(event channel)是一个既是事件提供者又是事件消费者的插入对象,它允许多个事件提供者和多个事件消费者异步地通信而不需要相互了解。事件信道又是一个标准的CORBA对象,驻留在对象请求中介上,断开提供者和消费者的通信。

负载均衡

负载均衡的应用程序可以有效地提高系统的性能、可靠性和可用性。

改善可伸缩性:通过结合复制和分区把应用程序的负载分布到多个可执行程序和多个主机上;

克服资源限制:修改CPU数量、内存、TCP连接、线程限制等设计;

限制故障所引起的危害:应用分布、组件分布及组件复制来限制单个服务器上的故障可能引起的危害。

平坦事务:

所有的操作都包含在一对开始和结束事务的语句中间,这些操作属于同一级别,被认为是一个整体;

链式事务:事务的开始不要求AP显示调用tx_begin(),当前事务的结束隐含了新事务的开始,事务与事务像链条一样彼此相连;

嵌套事务:事务有不同级别,可以包含多个子事务,形成树状的事务结构,树的叶子是平坦事务,树根称为顶层事务.

全局事务

    涉及多个RM的协调工作;这些RM可以是分布的;全局事务最终映射到多个本地事务上去执行;

本地事务

   每个RM自己负责的分支;一个事务分支可以使用XID唯一的标明;XID由GTRID和BQUAL组成,分别表示全局事务标识符和分支限定符;

移动中间件

传统中间件在移动网络中所面临的挑战

移动环境下TCP/IP需要解决的问题

无线信道的突发性错误

较大的延时变化

移动主机越区切换造成的TCP拥塞和丢包

移动环境下移动透明性问题

移动主机的地址变化要求消息必须发送到新的地址

客户端意识不到服务端的移动

移动代理系统结构:

服务设施提供移动代理的基本服务:

生命周期服务:实现代理的创建,移动,持久化存储和执行环境分配;

事件服务:包括代理传输协议和代理通信协议,实现代理间的事件传递;

目录服务:提供定位代理的信息,形成路由选择;

安全服务:提供安全的代理执行环境;

应用服务:任务相关的服务,提供面向特定任务的服务接口.

顶 4踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: 小蜜锋
    • 等级: 高级设计师
    • 积分: 7088
    • 代码: 757 个
    • 文章: 360 篇
    • 随想: 211 条
    • 访问: 1261 次
    • 关注

    标签

    设计模式(4)java(9)命名规范(2)广告创意(1)愤怒的小鸟(1)游戏(5)jsp(1)配置(1)Surface(1)windows(1)javabean(1)设计方法(1)开发工具(2)web(4)大数据(2)GPU(1)硬盘(1)内部结构(1)黑客(1)窃取(1)编码(1)解决方法(1)php(28)mysql(9)数据库备份(1)数据库还原(1)命令(2)数据库(1)安装(1)2012(2)世界末日(3)仙剑5前传(1)默哀(1)电源(1)女生(1)装饰器模式(2)古剑奇谭(1)电脑桌(1)史上最牛(1)编程语言(2)小米(3)电视机顶盒(1)营销策略(1)Android(8)手势(1)诺亚方舟(1)Eclipse(1)汽车(1)操作系统(1)软件(1)互联网(5)大事记(1)设计师(2)壁纸(1)古剑奇谭2(1)古剑奇谭网络版(1)云计算(2)服务器(1)框架(2)Socket(1)jquery(1)构造函数执行顺序(1)火车票(1)3D(1)数据中心(2)正则表达式(2)Web前端(1)开发框架(1)系统瘫痪(1)12306(2)cpu(1)javascript(2)开发日记(15)体育馆管理系统(15)网页设计(1)CSS3(3)腾讯(3)小游戏(1)interface(1)平板(2)面试(2)设计(5)摄影(2)数据挖掘(1)钢琴谱(1)情人节(1)陈欧体(1)程序员(3)漫画(1)UserAgent(1)iPhone(2)NoSQL(1)ui(9)越狱(1)指南(1)abstract(1)css(3)git(2)八核(2)三星(1)linux(11)数据类型(1)html5(2)UML(2)perftools(1)创意(1)logo(1)色谱(1)响应式(5)Metro(2)虚拟机(1)jvm(1)垃圾回收(1)left(1)join(1)连接查询(1)溯源系统(1)Override(1)SAE(2)WordPress(1)指针(1)链表(1)系统分析师(1)中间件(1)corba(1)static(1)无线(1)监控(1)iPad(1)Apache(2)比特币(2)命名规则(1)手机支付(1)curl(3)笔记(1)导航(1)thinkphp(1)异常导致本地路径泄漏(1)web设计(1)网络安全(1)诗句(1)4K对齐(1)代码库(1)色彩(1)动画片(1)struts2(3)漏洞(5)确认框(1)心情驿站(1)ArscEditor(1)resources.(1)apktool(1)AppKey(1)新浪微博(1)app(5)广告(3)赚钱(1)响应式布局(1)html(1)淘宝(2)微信(1)重构(5)缓存(1)破解(1)后门(1)七夕(1)SEO(2)概念设计(1)面向对象(1)bootstrap(1)性能(2)优化(1)iis(1)爬虫(1)采集(1)算法(2)文本相似度(2)cto(1)js(1)fsockopen(1)扁平化设计(2)网页(1)心情(7)小米电视(1)开箱(1)励志(2)招聘(3)命名(1)notepad++(1)python(1)配色(3)扁平化(4)ps(2)搞笑(2)创业(3)渲染(1)电影(1)模板(1)微博(1)企业家(1)公司(1)总结(1)前端(1)运营(1)变形(1)svn(4)教程(3)搜狗(1)泄密(1)双11(1)天猫(1)UC(1)启动界面(1)光棍节(1)双十一(2)物流(1)备份(1)更新(1)插入(1)插件(2)jsTree(1)(1)海量数据(1)分辨率(1)草图(1)手绘(1)速度(1)文本处理(1)实习(1)感想(1)文件(1)简历(1)65.49.2.17(1)yum(1)解决办法(1)阿里云(2)推广(1)来往(1)春运(1)LBS(1)gb2312(1)utf-8(1)log4j(1)详解(1)收购(1)私服(1)TortoiseGi(1)post(1)异常(2)flappyBird(1)应用创新大赛(1)宙斯杯(1)学习方法(1)xp(1)退役(1)安全(1)技术贴(1)flash(1)刷机(1)京东(1)电商(1)Tomcat(1)JDK(1)免费(1)长投影(1)图标(1)Photoshop(1)云端集成开发环境(1)软件开发(1)可视化(1)工具(2)OpenSSL(1)Heartbleed(1)vsftp(1)中国知网(1)学术论文(1)免费下载(1)开发(1)手册(1)速查表(1)追随战略(1)sdk(1)文章(1)发布(1)文件管理(1)沙画(1)动效(2)原型(1)感悟人生(1)哲理(1)Bash(1)类图(1)知识管理(1)Console(1)调试命令(1)rpm(1)报错(1)挂载(1)数据盘(1)云主机(1)产品经理(1)原型设计(1)mql4(1)mt4(1)ea(1)程序化交易(1)CURLOPT_PO(1)阿里云​(1)CentOS6(2)OpenSSH(1)漏洞修复(2)升级(1)安骑士(1)链克(1)

    站长推荐