1、中间件定义:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 中间件特点:1.满足大量应用的需要2.运行于多种硬件、数据库及操作系统平台3.支持分布式计算,提供跨网络、底层平台的透明性应用或服务的交互功能4.支持标准协议5.支持标准的接口 中间件能为我们软件开发带来那些帮助? 中间件屏蔽了底层操作系统和数据库的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不系统软件上的移植而重复工作,大大减少技术上的负担;也减少了系
2、统的维护、运行和管理的工作量及计算机总体费用的投入。 Client/Server模式: 客户机和服务器结构,通过它可以利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通信开销。 Browser/Server模式: 在B/S体系结构中,用户通过浏览器向分布在网络上众多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。 C/S模式特点:1无论是客户端还是服务端都需要特定的软件支持。没能提供用户期望的开放环境,适用于Intranet。2服务器端运行负荷较轻。3数据的存储管理功能较为透明。4C/S体系结构的劣势是高昂的维护成本且投
3、资大B/S模式特点:1.简化了客户端的工作,瘦客户端结构。2.对数据库的访问和应用程序的执行将在Server上完成。3.把技术维护人员从繁重的维护升级工作中解脱出来 传统B/S模式的不足方面:1浏览器应用于Web应用系统时,许多功能不能实现或实现困难。 2复杂的应用构造困难。3HTTP可靠性低,采用浏览器进行系统维护不安全。4Web服务器同时要处理客户请求以及与数据库联接,负载过重。5业务逻辑和数据安全不足 多层应用体系结构特点:1安全性:中间层隔离了客户直接对数据库的访问,保护数据。2稳定性:中间层缓冲了客户端与数据库的实际连接,使数据库的连接数量远小于客户端应用数量。3易维护:业务逻
4、辑在中间服务器,当业务规则变化后,客户端基本不变。4快速响应:通过负载均衡以及缓存数据能力,客户端能够快速响应。5.系统扩展灵活:可以在中间层部署更多的应用服务 应用服务器位于Middle Tier提供哪些服务: J2EE概念: Java EE是一种利用Java 2 平台简化企业解决方案的开发、部署和管理相关复杂问题的体系结构。 J2EE中的容器:容器是一种运行在服务器上的软件实体,用于管理特定类型的组件。为开发的Java EE组件提供了执行环境,容器负责管理部署在其中的组件的生命周期,及诸如资源汇集和强制执行安全之类的工作 如:Web组件容器Apache Tomcat 企业级容
5、器:管理EJB组件 企业应用开发所面临的问题(J2EE提供了解决这些问题的方案):分布式 可移植 系统集成支持 面向WEB 可装配 满足企业计算要求 一致性 事务性 安全性。可伸缩 可扩展以维护。 JDBC概念:JDBC是Java访问数据库的应用程序接口JDBC是数据访问中间件(UDA),该接口基于SQL语言,采用同步通信 JDBC四种驱动类型:1. JDBC-ODBC桥 2. 本地API驱动 3. 网络协议驱动 4. 本地协议驱动 DAO(Data Access Object)模式实际上是两个模式的组合:Data Accessor 模式:实现了数据访问和业务逻辑的分离 A
6、ctive Domain Object 模式:实现了业务数据的对象化封装 Hibernate:是一种Java语言下的对象关系映射(ORM)解决方案,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。 消息中间件概念:消息中间件作为一个中间层软件,它为分布式系统中创建、发送、接收消息提供了一套可靠通用的方法,实现了分布式系统中可靠的、高效的、实时的跨平台数据传输。 队列概念:队列是消息安全存放地,队列存储消息直到它被应用程序处理。 消息中间件通信模式:1点对点通信:支持一对一、一对多、多对多、多对一等配置。2多点广播:能够将消息发送到多个目标站点(Destin
7、ation List)。3发布/订阅:在Broker订阅Topic,有发布相同Topic的话就接收。4群集:简化点对点通信模式中的系统配置。群集中队列管理器之间 能够进行负载均衡。 企业为什么选择消息中间件: 利用MQ message queuing实现企业间的数据交换 实现企业级大规模数据传送 部署规模庞大 网络状况复杂 数据量大 系统维护管理复杂 分布式对象技术局限性 JMS(Java Message Service): JMS 为Java程序提供了一种创建、发送、接收和读取企业消息系统中消息的通用方法 两个被管理对象ConnectionFactory和Destination
8、 ConnectionFactory: 客户端用来创建同JMS提供者之间的连接的对Destination:这个对象是客户端用来指明消息被发送的目的地以及客户端接收消息的来源 JMS开发步骤:1使用JNDI查找ConnectionFactory对象。 2.使用JNDI查找一个或者多个Destination对象。3.使用ConnectionFactory创建一个JMS连接。 4.使用连接创建一个或者多个JMS Sessions 。5.使用Session and Destinations 创建所需的 MessageProducers 和MessageConsumers6.告知Connection
9、 开始传送消息。 分布对象技术概述: 分布式系统比想象的要复杂:1. 异构环境下的应用互操作的问题2. 系统管理问题3. 系统安全的问题4. 传统的面向过程的技术在开发大型软件系统的局限性 分布对象技术的核心概念有那些1分布对象的位置对客户透明2可以被远程客户应用以方法调用的形式访问3分布对象所使用的语言要对客户透明4.分布对象运行的系统平台对客户透明5.分布对象具有移动性 对象请求代理ORB:支持客户访问异地分布对象的核心机制称为对象请求代理ORB(Object Request Broker) 。作为对象互通讯的软总线,使对象在分布环境中透明地收发请求和响应,它是分布式对象应用在不同层
10、次的异构环境下互操作的基础。 CORBA是由OMG组织制订的一种标准的面向对象应用程序体系结构(规范),为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。CORBA是为实现软件全方位集成而设计的。 分布式软件开发需解决以下五个问题:1.跨平台(硬件)2.跨操作系统3.跨语言4.跨协议5.跨版本 CORBA采用的技术 1.采用了面向对象技术 // 从软件重用角度考虑问题2.采用了分布式计算模型3.采用多层体系结构4.采用接口技术 // 从软件集成角度考虑问题 CORBA体系结构 : ORB的任务是:找出所要对象的位置,激活该对象,向对象传递此请求。 对象执行所
11、请求的服务后,把输出值返回给ORB,然后再由ORB返回给客户。 IDL ( Interface Definition Language )接口定义语言:OMG IDL接口定义语言不是作为程序设计语言体现在CORBA体系结构中的,而是用来描述产生对象调用请求的客户对象和服务对象之间的接口的语言。 RMI(Remote Method Invocation)是基于Java技术的分布式编程模型,为Java程序提供远访问服务。 JavaRMI编程规范:1. 创建远程接口及声明远程方法(HelloInterface.java)2. 实现远程接口及远程方法(继承UnicastRemoteObject
12、Hello.java)3. 启动RMI注册服务,并注册远程对象(HelloServer.java)4. 客户端查找远程对象,并调用远程方法(HelloClient)5. 执行程序:启动服务HelloServer;运行客户端HelloClient进行调用 JMS与RMI的区别:采用JMS服务,对象是在物理上异步地从网络的某个JVM上直接移动到另一个JMV上。而RMI对象是绑定在本地JVM中,只有方法参数和返回值是通过网络传送的。 RMI在J2EE中应用: CORBA 和 RMI 的差异: 1CORBA 运行在 IIOP 协议之上;RMI 使用 JRMP协议。 2 CORBA 是独立
13、于语言的;RMI 是纯粹 Java 到 Java。 3 RMI 使用 JNDI 定位远程对象;CORBA 使用 CosNaming。 联邦数据库系统:仅通过将用户查询翻译为数据源查询来进行逻辑上的数据集成。 数据仓库技术:数据仓库是一个面向主题的、集成的、相对稳定、反映历史变化的数据集合,它用于支持企业或组织的决策分析处理。 数据仓库四个特点: 面向主题、集成(Integrate)、相对稳定(Non-Volatile)、反映历史变化(Time Variant) Mediated 模式(基于WEB服务的数据集成):中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统、We
14、b资源等。中间件位于异构数据源系统(数据层)和应用程序(应用层)之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。 基于WEB服务的数据集成与联邦数据库系统区别: 1.以集成非数据库数据源2.数据源可以不支持SQL3.数据源是完全自治的,容易向系统中添加或删除数据源4.对系统中的数据源访问通常是只读的,而联邦数据库系统支持读/写访问 网格(Grid):一个集成的计算与资源环境,或者说是一个计算资源池。计算资源包括各种类型的计算机、网络通信、数据资料、仪器设备等相关资源。 网格是借鉴电力网(Electric Power Grid)的概念提出来的
15、网格的最终目的是希望用户使用网格计算能力时,如同现在使用电力一样方便。即与地理位置无关、与具体的计算设备无关的通用计算能力。 网格的基本要求: 对于网格提供的计算能力,有四个基本要求:可靠性要求、标准化要求、易访问性要求、价格低廉要求 五层沙漏结构:1应用层、2汇聚层、3资源层、4连接层、5构造层 Web Service:一个Web Service就是一个可以被URI识别的软件应用,它的接口和绑定可以被XML(eXtensible Markup Language)描述与发现,并且可以通过基于Internet的协议直接支持与它基于XML消息的软件应用的交互。 第十一章 Portal
16、技术Java Portlet 组件 门户系统是一个应用框架,它将各种应用系统、数据资源和互联网资源集成到一个信息管理平台上,并以统一的用户界面提供给用户。(广义) 是一个门户网站,是指通向某类综合性互联网信息资源并提供有关信息服务的应用系统。(狭义)如:新浪网、搜狐网等。 Portal定义:为用户提供了一种简单而且统一的访问Web Application的入口。 Portal Server 门户服务器:门户中间件指的是门户服务器,是Web应用服务器上的“应用”。Portal服务器容纳Portlet容器。Portal服务器通常提供个性化设置、单点登入、内容聚合、信息发布权限管理等功能,支
17、持各种信息数据来源,并将这些数据信息放在网页中组合而成,提供个性化的内容定制,不同权限的浏览者能够浏览不同的信息内容。 Portlet Container 是提供 Portlets 执行的环境,包含了许多 Portlets 并且管理他们的生命周期,他也会永远保存着 Portlets 的喜好设置,一个 Portlet Container 接收到来自Portal 的请求后,接着将这个请求传递给存在 Container 的 Portlet 执行。Portlet Container 没有义务去组合 Portlets 产生的信息內容,这个工作必须由 Portal 来处理。 一个 Portlet 是以
18、 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的 request 以及产生各种动态的信息内容。 Portal主要功能:1.个性化、2.单点登录、3权限控制 第十二章 企业应用集成(电子商务(E-Commerce/E-Business)是EAI) EAI技术解决企业架构的问题“信息孤岛”: 企业的业务流程会同时涉及到多个应用系统,因此要求这些系统能够协同,但接口、架构的不统一往往使得这些本应紧密集成的应用系统成为了一个个“信息孤岛”。通过EAI技术连接企业内外各种业务相关的异构系统、应用以及数据源,从而满足 E-Commerce、ERP
19、CRM、SCM、OA、数据库、数据仓库等重要系统之间无缝共享和交换数据的需要。 狭义上的EAI,即企业应用整合,仅指企业内部不同应用系统之间的互连,以期通过应用整合实现数据在多个系统之间的同步和共享。 广义上的EAI,已经被扩展到业务整合(Business Integration)的范畴,业务整合相对EAI来说是一个更宽泛的概念,它将应用整合进一步拓展到业务流程整合的级别。 EAI就是在各个应用系统的接口之间共享数据和功能。EAI的目标就是将企业和企业内部的多个应用集成到一个虚拟的、统一的应用系统。 EAI技术层次体系 :1.用户交互层、2流程整合层、3.应用整合层、4.应用接口
20、层 EAI 架构模式(Architecture Pattern): EAI架构模式是为了提高应用系统的重用性和灵活性的一种设计方案。EAI架构模式主要针对系统或者应用程序的整体结构。架构模式被定义为软件系统的基础结构化模式。 1. 集成适配器模式2. 集成消息器模式3. 集成正面模式(Facade)4. 集成媒介器模式(Mediator) Radio Frequency Identification: RFID是Radio Frequency Identification的缩写,即射频识别,俗称电子标签,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目
21、标之间建立机械或光学接触。 标签(Tag):由耦合元件及芯片组成,每个标签具有唯一的电子编码,附着在物体上标识目标对象。 RFID标签的类别 :1被动式、2主动式 射频技术与条形码Barcode技术的区别: 信息 载体 信息量 读/写 读取 方式 保密性 智能化 抗干扰 寿命 成本 条行码 Barcode 纸、塑料、金属 小 只读 CCD 激光 差 无 差 短 较低 RFID EEP- ROM 大 读/写 无线 通讯 好 有 很好 长 较高
22、RFID中间件作用:RFID中间件是用来加工和处理来自读写器的所有信息和事件流的软件,是连接读写器和企业应用的纽带,使用中间件提供一组通用的应用程序接口(API),即能连到RFID读写器,读取RFID标签数据 。它要对标签数据进行过滤、分组和计数,以减少发往信息网络系统的数据量并防止错误识读、多读信息。 CORBA IDL: 在模块module BookSystem中定义一个接口BookManager,该接口有一个只读string类型的属性name和一个返回类型为string的方法QueryBookStatus。该方法包含一个类型为long的参数bookID,参数bookID由客户端给入。 请按照上面的描述在module BookSystem中定义接口BookManager。 module BookSystem{ };






