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