您好,欢迎访问三七文档
中间件课程学什么?•思想–分析问题的方法–解决问题的思路–实现方案的选择►技术经典的中间件技术(RPC,DCOM,EJB,CORBA)新一代的中间件技术(WebService,Mobileagent,etc)教学模式•本课程的特点:多、杂、难•需要大家在课后多花时间看书、读文章,必要的时候补充部分基础知识•如果是为工程需要而学习,则必须读写代码•讲授+讨论+课后阅读•课程内容与教材不完全一样•希望大家都能有所收获!IT体系结构和中间件概述•IT体系结构概述•中间件定义•中间件的组成和特点•中间件的作用体验欧洲的三大建筑风格•欧洲的教堂大致分为三种建筑风格:–罗马风格–哥特风格–巴洛克风格罗马style•11世纪前后建造的教堂受意大利影响,几乎全为罗马风格(Romanik)•其特征为圆形拱顶,从教堂的门或者窗户可以大致区别出来。圆形的拱顶表现了当时人们对宇宙的认识:宇宙是圆形的。哥特style•哥特风格(Gotik)最初出现在法国。12世纪后逐渐流传于欧洲并风靡一时。其特征为瘦高型,外表有许多像竹笋一样瘦长型的装饰物,象征着摆脱了束缚,奔向天国。拱顶也随之有了橄榄型的小尖。随着玻璃的应用,窗户被装饰得色彩斑斓。往往一个窗户就画了一个圣经故事。*著名的德国诗人海涅在他的诗《德国,一个冬天的童话》中曾经对科隆教堂的双塔作过这样的描述:“看啊,那个庞大的家伙,在那儿显现在月光里!那是科隆的大教堂,阴森森地高高耸起。”巴洛克style•17、18世纪后的教堂多为巴洛克(Barock)风格的建筑。其特点是不注重外表,但内部华丽,有的用了大理石砖和大理石柱,配有彩画和雕塑。室内一改老式教堂的黑暗、凝重和神秘,采用浅色涂料,加上彩色装饰,让人感到轻松,似有一种清香味。对建筑物各组成部分结构关系的描述和对结构特征的刻画现代IT系统的基本特征•分布任务已不只是在单机上运行,而是由网络中多台计算机上的相关应用共同协作完成,需考虑网络传输、数据安全、数据一致性、同步等诸多问题;•异构计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁多,需考虑数据表示、调用接口、处理方式等诸多问题;•动态协作参与协作的应用允许位置透明性、迁移透明性、负载平衡性等需求。IT体系结构的定义一个指导方针一个模式一个正式模型(如:七层模型,EJB模型等)多个项目中强制使用的一般原则和模式软件体系结构•软件体系结构是对软件系统整体结构的刻画•Thearchitectureofasoftwaresystemdefinesthatsystemintermsofcomputationalcomponentsandinteractionsamongthosecomponents•软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。也就是说,能否在不同的软件系统中,使用同一体系结构。管道/过滤器风格•在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。•这个过程通常通过对输入流的变换及增量计算来完成。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。(传统编译器)•这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。OO风格层次系统风格•层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。传统应用现状-简仓应用筒仓为何存在?-部门的权力-独立项目易于控制-开发方法学是基于筒仓的-大型的集成系统常常失败-改变现有系统是困难的简仓应用是否有利?•存在问题:–管理复杂–无法适应业务的变化–业务集成•如何解决?覆盖体系结构表示层逻辑层数据库表示层逻辑层数据库表示层逻辑层数据库表示层逻辑层数据库融合统一的数据视图HUb复合、融合规则路由,重新格式化规则引擎表示层设备软件包•简仓应用存在的问题在软件包应用中同样存在•WHY?集成的应用体系结构---筒仓替代品之一集成应用体系结构--关键特点•对同样的基本函数有多个用户接口•任何接口可以使用事务处理服务器和业务智能逻辑•在“框”内,有许多组件•事务处理服务器可以共享数据库•贯穿始终都有一个定义明确,文档齐全的接口集成应用体系结构--如何处理IT管理问题•对业务变更的快速反应•提供准确的、可访问的信息•对新型接口开放应用集成应用体系结构—结果•设计结果:新的开发不再是构建另一个简仓,而是增加和修改组件•技术结果:需要中间件。如何实现目标?软件开发的不变的真理:不管当初软件设计得多好,一阵子之后,总是需要成长与改变怎么做?--重写–重写法:重写已存在的应用•重写频率?•重写工作变得bigger&bigger&bigger…•业务流程、人员使用(重要)•重写什么时候是好的?–技术变化–业务变化怎么做?--进化–进化法-唯一实际的方法•Why?–需求会变化–预期结果不能一撅而就–传统软件工程的瀑布开发模型”明确需求”成功或失败?–为进化而做的设计得技术特征–在应用逻辑上用中介体例程来隐藏中间件、操作系统或数据库接口–确保有明确定义的接口-在接口的遮蔽下实现组件进化–确保设计是用非技术词汇表达怎么做?--进化•为进化而做设计的应用方面的特征•为进化而做设计的项目管理方面的特征•建议:将技术人员和建模人员聚在一起开放系统•开放系统的概念–八十年代即提出,但并未完整描述,我们的解释为:•大型计算机系统的实现并非是将单机系统简单地堆砌而成,它们(大量单机系统)必须遵循一定的理念、原则、约束和技巧而集成,这些理念、原则、约束和技巧就是开放系统技术。•我们将其特征概括为–1.可移植性(Portability);–2.可互操作性(Interoperability);–3.可伸缩性(Scalability);–4.易获得性(Availability);可移植性•应用可移植性•使用者可移植性–最终用户可移植性–软件开发者可移植性–系统管理员可移植性互操作层次功能Inter-work:Application-Collaboration提供应用语义的兼容。这一合作的程度是最难实现的,不仅仅是在物理上将分离的实体连在一起,更重要的是这些分离的实体之间能相互理解对方意图而实现合作。Inter-operability:Transparency能提供诸如迁移透明性、复制透明性等更多的透明性和诸如安全、服务质量的保证。Inter-communication:RPC根据对话结构,提供一种在信息上相互沟通的方式。例如:RPC提供了访问透明性。Inter-Connection:Comms实现基本数据传输。互操作性可伸缩性和易获得性•容易扩缩系统规模;•容易得到相应系统(off-the-shelf);建立IT系统的5项任务•业务流程定义及变更的定义•应用功能的设计•实现设计•实现•部署业务流程定义及变更的定义•系统功能需求的确定•系统非功能需求的确定•建立业务流程模型应用功能的设计•对象模型视图•用户接口设计•所有任务的功能描述实现设计需完成的工作•实现设计是关于高层IT设计的决策–如何把功能分解为组件和程序,即:业务和对象、组件之间的映射–数据分布设计、数据库设计–组件接口设计–技术选择、–开发工具、–编程准则–etc.做好“实现设计”需了解什么?•应用功能设计•实现和部署“实现设计”中需要考虑的问题•确保设计与整个企业内的IT系统的高层设计一致,以解决诸如共享用户接口和共享数据等问题;•确保重用IT基础结构代码;•确保重用设计模式;•优化技巧和资源。实现和部署•编码•测试•部署软件测试•软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。•软件测试是为了发现错误而执行程序的过程。软件测试方法1-1•静态测试–不实际运行软件,主要对软件的编程格式、结构等方面进行评估–代码检查–结构分析,用图的方式表现程序的内部结构–代码质量度量,(ISO/IEC9126中定义的六个方面:功能性、可靠性、易用性、效率、可维护性和可移植性进行评估)软件测试方法1-2•动态测试–真正运行被测程序,对其运行情况进行对比分析–功能确认和接口测试–性能分析–内存分析–等软件测试2•黑盒测试–将被测试程序当作一个黑盒,不考虑程序内部结构和内部特征,只对比输入和输出的关系•白盒测试–针对特定条件和循环设计测试用例,对程序的逻辑路径进行测试软件测试过程•单元测试–确保每个模块能正常工作•集成测试–对已测试过的模块进行组装测试•确认测试–对开发工作初期制定的确认准则进行检验,检验是否满足所有功能性和非功能性需求•系统测试–检验是否与系统的其他部分(硬件、操作人员等)协调工作•验收(用户)测试IT设计师必须明白•技术选择•在技术方面开发人员的能力•技术原理•“功能”需求•“非功能”需求•通过设计实现业务流程的改变•使应用能够灵活、容易修改•需要修改的现有系统普通两层应用系统的结构应用1应用2应用3服务器1服务器3服务器2数据库ClientClientClient数据库服务器服务器(数据)层客户层客户向服务器请求数据库服务两层应用的缺陷•2层结构存在很多缺陷:–客户端的负担仍比较重•仍然需要客户端进行较复杂的数据处理–客户端的可移植性不好•处理复杂必然牵涉更多的移植性问题•每个客户端上都要安装数据库驱动程序–系统的可维护性不好•客户端包含过多的商业逻辑•商业逻辑与人机交互界面交织在一起–数据的安全性•需求:需要更合理的工作分配——3层或多层结构典型的3层结构(1)数据库ClientClientClient数据库服务器服务器(数据)层中间层中间层服务器向数据库服务器请求中间层应用程序中间层客户层客户向中间层服务器请求典型的三层结构(2)应用1应用2应用3服务器1服务器2服务器3中间件三层结构的优点•除了更合理的分配任务外,3层结构还具有如下优点:–将数据的维护,企业的逻辑,与用户的交互分离,模块化,各个模块相对独立,可以灵活方便的拼凑在一起,各部分的改动不会牵一发而动全身–将业务逻辑放置在中间层可以提高系统的性能,使中间层的业务逻辑处理与数据层的业务数据紧密结合在一起,而无需考虑客户的具体位置。–添加新的中间层服务器能够满足新增客户机的需求,可以大大提高3层系统的可伸缩性。–将业务逻辑从客户端移到中间层,在客户层的应用程序与数据层的数据库之间增加了一层,这样客户端的应用程序可以独立于数据层的数据库。–将业务逻辑至于中间层,从而使业务逻辑集中到一处。而在2层方式下,业务逻辑被分散到所有的客户机上(除非使用存储过程)。这样做是不可取的,因为业务规则是动态变化的,而对于这些业务而言,规范又是强制性的,所以,将业务逻辑分散到整个客户层的客户机上会使实施过程变得非常困难。–大量的中间层中间件平台提供丰富的系统级服务,使得开发人员可以以更少的工作量开发出更复杂、可靠、高效的软件系统。Middlewaredefinition•Middleware,isalayerofsoftwarebetweenthenetworkandtheapplications.Thissoftwareprovidesservicessuchasidentification,authentication,authorization,directories,andsecurity.Intoday'sInternet,applicationsusuallyhavetoprovidetheseservice
本文标题:中间件技术
链接地址:https://www.777doc.com/doc-1722109 .html