中间件 |
您所在的位置:网站首页 › 有关物联网应用的论文题目有哪些 › 中间件 |
下载地址:中间件复习要点(最终版).docx-专业指导文档类资源-CSDN下载
复习要点
第1部分 绪论
1.开发和部署开放系统(分布式系统)面临的挑战有哪些?具体指的是什么? 分布:任务已不只是在单机上运行,而是由网络中多台计算机上的相关应用共同协作完成; 异构:计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类不同; 动态协作:参与协作的应用允许位置透明性、迁移透明性、负载平衡性等需求。 第2部分 中间件概念(1)中间件的基本概念是什么? 中间件(Middleware)是一种软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使应用软件之间进行跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的“系统结构、操作系统、通信协议、数据库和其它应用服务”各不相同。 (2)常见五种基本类型有哪些?(3)解释每种基本类型是什么,有什么作用? 消息中间件:一类支持在应用之间发送和接收消息的基础设施。利用高效可靠的消息机制来实现不同应用间大量的数据交换。消息中间件的非直接连接,支持多种通信协议,达到多个系统之间的数据的共享和同步,最常用的一类中间件。 分布对象中间件:分布式计算技术和面向对象技术发展的结合,简称对象中间件。分布对象模型是面向对象模型在分布异构环境下的自然拓广;分布式对象中间件是为了解决分布计算和软件复用过程中存在的异构问题而提出的,所以可以解决异步问题。 远程过程调用中间件:使得应用程序可调用另一台计算机上的过程服务。可用于应用程序之间同步或异步的数据传输,本地计算机的应用程序可以通过远程过程调用中间件调用另外计算机上的服务程序。 数据访问中间件:连接应用程序和数据库的软件,允许通过单一的、定义良好的接口访问网络中来自不同厂商的数据库产品,是为了建立数据应用资源互操作的模式,对异构环境下的数据库或文件系统实现联接的中间件;是应用最广泛,技术最成熟的一种 事务处理中间件:支持分布式事务,保证一系列在分布式数据库上的操作满足事务特性。提供联机事务处理所需要的通信、并发访问控制、事务控制、资源管理、安全管理、负载平衡、故障恢复和其他必要的服务。 第3部分 远程过程调用中间件RPC(1)画出RPC服务注册架构和服务调用(核心)架构; (2)描述服务注册和发现基本流程 注册服务,服务提供者在启动的时候会在注册中心上注册服务;查找服务,服务消费者在启动的时候,会向服务注册中心订阅自己的服务;通知,由服务注册/发现中心对服务消费者的查找服务进行通知,即是否查找到了相关的服务;调用服务,服务消费者,从提供者地址列表中,基于负载均衡算法,选一个提供者进行调用,如果调用失败,再选另一个提供者调用。(3)解释存根和框架是什么,有什么作用,描述他们基本工作流程; 存根:为屏蔽客户调用远程主机上的对象,必须提供某种方式来模拟本地对象,这种本地对象称为存根。存根负责接收本地方法调用,并将它们委派给各自的具体实现对象。 客户端存根:远程应用服务对象的本地代理,是远程服务的一个虚实现,具有和远程服务一样的调用接口。可将客户端请求进行打包后转发给远程服务对象。 服务端存根:与客户端存根相对应(对等层),是远程应用服务对象的远程代理,也是远程服务的一个虚实现,接收客户端存根发送过来的参数,向上调用实际服务,把结果返回给客户端存根。 存根工作流程 客户端存根 1、初始化并与远程对象所在的虚拟机连接; 2 、调用远程引用层服务,将参数进行打包(序列化、协议编码),传递到远程虚拟机; 3 、等待返回结果; 4 、解包返回结果(协议解码、反序列化)得到返回值和异常; 5 、将返回值返回给调用者。 服务端存根 1、解包(协议解码、反序列化)客户端输入的远程方法参数; 2、调用实际的远程对象方法; 3、调用远程引用层服务,将结果打包(序列化、协议编码) ,返回给调用者。 框架:(软件)框架是项目开发过程中提取特定领域软件的共性部分形成的体系结构,是一个可供二次开发的程序实体,更偏重于技术,比较具体。 框架的作用:1.解决分布式系统中,服务之间的调用问题;2.远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。 框架的工作流程 参考(4)服务调用中的基本过程 (4)描述RPC在一次服务调用中的基本过程; 1.调用者(客户端Client)以本地调用的方式发起调用; 2.Client stub(客户端存根)收到调用后,负责将被调用的方法名,参数等打包编码成特定格式的能进行传输的消息体; 3.Client stub 将消息体通过网络发送给服务端存根; 4.Server stub(服务端存根)收到消息后,按照相应格式进行拆包、解码,获取方法名和参数; 5.Server stub 根据方法名和参数进行本地调用; 6.被调用者(server)本地调用执行后将结果返回给Server stub; 7-8.Server stub 将返回值打包编码成消息,并通过网络发送给客户端存根; 9.-10Client stub 收到消息后,进行拆包、解码,返回给Client;Client 得到本地RPC调用的最终结果。 (5)解释RPC中为何需要序列化技术; 客户端所需调用方法的形参为对象类型时,实参只是个引用(内存地址),传递给远程服务对象毫无意义;内存中的数据对象只有转换为二进制流才可以进行数据持久化和网络传输 序列化(Serialization) :将数据对象的转换为二进制流的过程称为对象的序列化;序列化可将对象的状态信息转换为可以存储或传输的。反序列化( Deserialization ) 将二进制流恢复为数据对象的过程称为反序列化 (6)IDL是什么,有何作用? IDL,接口描述语言,负责定义服务接口,与实现语言无关。 描述主要内容:服务名称;服务方法名称,形参,返回值类型;自定义类型等。 (7)RMI(远程方法调用)采用什么语言描述服务接口? JAVA (8)列举8种开源或产业界中的RPC中间件产品。 RMI:Java原生 gRPC :Google开源 HSF:阿里开源 bRPC:百度开源 Dubbo:阿里开源 JSF:京东开源 Tars:腾讯开源 spring boot/cloud: Apache开源 Thrift:Facebook开源 Finagle:Twitter开源 Montan:新浪开源 Hessian: Caucho开源 Rpcx:Apache开源 第4部分 消息队列中间件(MQ)(1)画出MQ核心架构图; (2)解释核心架构中各部分的基本作用:消息、生产者/发布者,消费者/订阅者,消息代理(服务器),队列,主题; 消息: 消息是根据不同MQ通信协议定义的固定格式进行编码的数据包,来封装业务数据; 消息实质上是一个由用户定义的数据结构,由消息头和消息体组成。(消息头:对消息结构的描述,对整条消息起控制作用,含消息的属性及相关的系统信息,如消息标识、消息类型、目的队列名、日期时间等;消息体:消息的应用数据,是应用程序通信的数据,其具体语义要由通信双方事先约定,对中间件来说是一串毫无意义的二进制字节串;消息的种类:请求消息;应答消息;通知消息) 生产者/发布者: 生产者/发布者是消息的创建工厂,用于创建消息,并负责向消息代理发送(发布)消息,本质上是应用客户端的“固定存根”,由消息中间件框架的开发者提供; 生产者/发布者区别于发送方客户端应用程序,后者由应用程序员开发,调用了前者。 消费者/订阅者: 消费者/订阅者是消息接收器(订阅器),用于接收(消费)消息,本质上也是应用客户端的“固定存根”,由消息中间件框架的开发者提供。消费者/订阅者区别于接收方客户端应用程序,后者由应用程序员开发,调用了前者。 消息代理(服务器): 消息代理,亦称消息服务器或队列服务器,本质是一个实现了某种消息中间件规范的服务器软件; 在分布式应用中,一般运行于生成者与消费者之外的第三方主机上; 主要为消息传输过程提供缓存服务,从而实现消息异步传输; 除此之外一般还提供会话服务,事务服务,消息持久化服务,集群服务,管理和配置服务等。 消息缓存容器: 消息代理中最重要的组成部分,代理缓存消息所用的数据结构,一般有两种:队列和主题容器; 这两种方式决定了消息的传递模型。 队列: 队列是一种先进先出的数据结构,消息在其中严格有序存放; 消息代理接收到生产者发来的消息时,执行入队(enqueue)操作; 消费者接收消息时,代理执行出队(dequeue)操作; 队列有唯一名称或ID; 生产者与消费者需通过唯一名称关联队列; 队列模型可支持点对点(一对一)消息传输。 主题容器: 消息存放于一个关联者某种主题的容器中; 消息代理接收到发布者以指定主题发布的消息后,将消息放入对应主题的容器中; 订阅者可向消息代理订阅指定主题的消息,当对应主题容器有新消息到来,订阅者可接收; 主题可形成层次结构,若订阅者订阅了某父主题,则可接收其子主题对应容器的消息; 主题模型可支持发布/订阅(一对多)消息传输。 (3)解释消息发送方式:同步和异步;解释消息传递模式:点对点传递模式和发布/订阅传递模式;解释消息接收方式:推和拉; 消息发送方式 消息产生者以何种方式发送到队列服务器,主要是消息发出后作何善后处理;主 要有两种方式:同步和异步 同步发送: 以同步方式发送消息,发出一条消息后当前线程进入阻塞状态,等待结果返回; 阻塞期间不能发送下一个消息或执行其它操作; 通过返回的结果,可以知道消息的发送和接收情况。 异步发送: 以异步方式发送消息,发出一条消息后线程不进入阻塞状态,不等待结果,可以继续发下一条或执行别的操作; 若发送方关心返回结果,需指定回调函数,当服务器方返回响应时,自动触发某类事件,进而自动调用回调函数。 消息传递模型 消息从发送方传输到接收方的模式; 传递模型有多种,但大体上分为两种:点到点和发布/订阅模型。 点到点模型(P2P): 一对一的消息传输: 点到点模型使用队列作为消息通信载体,即消息传输过程中消息代理使用队列作为的缓存容器; 点到点模型采用生产者与消费者模式,一条消息只能被一个消费者使用,未被消费的消息在队列中保留直到被消费或超时。 点到点模型不可重复消费,消息被消费后,消息代理将从队列中删除. 发布/订阅模型(Pub/Sub): 一对多的消息传输:发布订阅模型使用主题容器作为消息通信载体,类似于广播模式; 消息传输过程中消息代理使用主题容器缓存消息; 在发布订阅模型中,发布者(相当于生产者)发布一条消息,该消息通过主题容器传递给所有的订阅者;订阅者(相当于消费者)只有在消息发送前订阅了该主题,才收到该条消息。 发布订阅模型可重复消费,消息被消费后,消息代理依然缓存该消息 消息接收方式 消息消费者以何种方式从队列服务器中获得消息; 主要有两种方式:推(push)和拉(pull) 推方式: 服务端主动推送消息数据给客户端; 该方式服务端主动推送给客户端,及时性很高; 缺点是如果客户端消费能力远低于服务端生产能力,那么一旦服务端推送大量消息到客户端时,就会导致客户端消息堆积,处理缓慢,甚至服务崩溃; 此外服务端需要维护每次传输状态,以防消息传递失败进行重试。 拉方式: 客户端需要主动到服务端取消息数据; 该方式客户端可以依据自己的消费能力进行消费,传输失败时不需要重试; 缺点是拉取消息的间隔需要设置好,间隔太短,对服务器请求压力过大; 间隔时间过长,会造成一部分数据的延迟。 (4)解释JMS是什么,有什么作用; JMS,Java消息传递服务(Java Messaging Service),是Sun公司提出的消息中间件标准,旨在Java应用提供统一的消息操作,已成为Java EE的一部分,角色类似于JDBC。 JMS在从API角度描述一种标准,实质是定义了一套接口,应用通过这套接口进行通信;中间件提供商则实现了接口。 (5)给出JMS API结构; 一个JMS应用的基本步骤 1:创建一个JMS connection factory 2:通过connection factory来创建JMS connection 3:启动JMS connection 4:通过connection创建JMS session 5:创建JMS destination 6:创建JMS producer,或者创建JMS message,并设置destination 7:创建JMS consumer,或者是注册一个JMS message listener 8:发送或者接受JMS message(s) 9:关闭所有的JMS资源(connection, session, producer, consumer等) (6)解释两种消息模式:队列和主题有何区别? 主题模式需要消费者先订阅再启动发布者,然后消费者才会接受; 队列模式只需要消息队列有消息,消费者就可以消费。 主题模式是多个消费者都能接受所有消息的模式,而队列模式是多个消费者的多个连接平衡负载分配信息的模式。 (7)给出消息中间件4种常见的应用场景; 异步处理 应用解耦 流量削峰填谷 日志处理 消息通信 (8)列举5种开源或产业界中的消息中间件产品。 ActiveMQ: Apache开源 RabbitMQ : Rabbit科技开源 Notify/MetaQ/RocketMQ/Aliware MQ:阿里巴巴 Kafka: Apache开源 ZeroMQ:开源 MetaMQ:开源 HTTPSQS:开源 JQ:京东 MCQ :新浪微博 CKafka:腾讯 Iris:facebook IBM MQ:IBM NET MSMQ: 微软 Redis, MySql, Phsxql:存储系统,支持消息队列功能。 第5部分 数据访问中间件(1)解释什么是数据访问中间件; 连接应用程序和数据库的软件,允许通过单一的、定义良好的接口访问网络中来自不同厂商的数据库产品,是为了建立数据应用资源互操作的模式,对异构环境下的数据库或文件系统实现联接的中间件; 简而言之,数据库访问中间件指一切连接应用程序和数据库的软件。 (2)给出数据访问中间件的基本架构; (3)解释数据库客户端/驱动的概念和本质; 数据库客户端也称连接器,驱动,数据库访问客户端;给应用程序提供访问数据库的API,以及相应的运行库。运行库的底层负责和(本地或远程)数据库通信,将上层应用程序通过API请求的数据传输到数据库。 数据库客户端实质是一个RPC客户端,其中所提供的API可视作“固定存根”,底层运行库则可视作远程传输层,负责协议数据编解码、序列化和通信功能 (4)解释什么是数据访问中间件规范; 数据库访问中间件大多数由数据库厂商遵循某种规范而开发,由应用开发者使用; 规范可分为自定义规范和公共规范。 定义规范数据访问中间件 数据库厂商自定义规范和自己定义API实现中间件,专用的中间件,例如早期的Oracle Call Interface ,Microsoft Database Library 等,以及现存的C API,PHP API;这类中间件可支持数据库厂商提供的特有高级特性。 公共规范类数据访问中间件 数据库厂商遵循某类公共规范,开发客户端API和运行库; 规范来源于某些组织、机构的定义;规范大多数从API角度描述,一般针对某种语言和某种类型的数据库系统,制定标准API;任何数据库厂商的客户端只要符合API规范,应用程序就可以使用该API访问数据库; 优点:以标准接口访问不同数据库,可任意更换不同厂商的数据库,不必修改连接代码 缺点:由于标注API限制,无法使用数据库的专有的高级特征 (5)画出JDBC数据访问规范基本结构;主要定义了哪些API,分别有什么作用; JDBC Java数据库连接(Java Database Connectivity) 驱动程序:由数据库厂商提供的实现了JDBC API规范的数据库客户端,对上提供给应用程序访问数据库的API,对下完成协议数据编解码、序列化、传输至数据库服务端,是一个运行库。 驱动程序管理器:管理驱动的容器,由其发起创建数据库连接 JDBC规范主要接口 DriverManager驱动管理器,用于创建连接,主要方法:getConnection() Connection:与指定数据库实例的连接(会话),主要方法:createStatement() Statement:向数据库发送操作SQL语句的接口,主要方法有 查询:excuteQuery(SQL) 更新:excuteUpdate(SQL) ResultSet:访问查询结构集的接口,主要方法,获取当前行指定字段的值get$Tpye$(字段名) SQLException:捕获执行SQL语句产生的异常 (6)给出JDBC应用程序访问数据库的基本步骤(编程模式)。 一、下载安装驱动库 数据库客户端;部分驱动需要执行安装操作;部分驱动应用服务器自带;驱动一般可在数据库厂商官网可下载;或者在数据库安装目录下可找到针对各种开发语言的驱动 二、导入驱动库:将驱动库放入正确路径下,让应用开发项目可找到 三、加载驱动 四、创建数据库连接 五、执行数据库操作 六、关闭连接 (7)连接数据库的JDBC驱动包,例如连接MySql的mysql-connector.jar,本质上是什么,有什么作用?JDBC驱动包跟JDBC API有什么关系? JDBC驱动包本质上是一个class。 作用:提供了标准的应用程序设计接口,在Java程序与数据库之间建立了一个通信的渠道。 关系:JDBC API 提供了Java应用程序到驱动管理器DriverManager的连接; JDBC驱动程序:支持驱动管理器到数据库厂商提供的驱动程序的连接; JDBC API与驱动的关系类似接口和接口的实现类,通过驱动,Java程序可与数据库进行通信。 第6部分 事务中间件(1)事务特性哪些,具体分别是什么? 事务是指对特定共享资源的一组不可分割的操作,它具有ACID特性。 原子性(Atomicity)——指事务中的所有操作是一个不可分割的整体,正如人们以前认为原子是不可分割的一样。 一致性(Consistency)——保持在事务前后,事务所涉及的资源的数据一致性。 孤立性(Isolation)——一个事务只有在结束后才对其他事务产生影响,其中间结果对其他事务是不可见的。 持久性(Durability)——事务一旦成功完成,其影响是持久的,即使系统瘫痪,也应该能恢复到事务最近完成的状态。 (2)什么是分布式事务处理? 分布式事务处理:在分布的、异构的环境中,数据是分布的,一个事务的执行涉及对分布在多个不同结点的数据的更改。 (3)X/Open DTP规范的基本构成模块有哪些,有什么作用,模块之间有什么接口? X/Open DTP是一个用于规范在分布、异构的环境下应用程序与不同资源之间相互协调进行事务处理的标准。 分布事务处理模型X/Open DTP——组成 ⑴应用程序(AP):事务的使用者,它发出开始、提交或回滚事务的请求。它规定了一个事务的界限,并给出事务所包含的操作。 ⑵资源管理器(RM):提供对共享资源的访问。 ⑶事务管理器(TM):AP与RM之间的协调员。它给每个事务分配标识符,监视它们的进展,保证事务处理的顺利进行,并负责事务在失败情况下的恢复。 X/Open DTP模型各组成部分之间的作用关系: AP-RM之间采用RM的特有API接口,X/Open对这部分的规范较少; AP-TM之间采用TX接口,AP利用这个接口向TM发出开始和结束一个事务的请求,进行全局事务的管理。 TM-RM之间采用XA双向接口;TM利用这个接口使各个RM合作完成一个全局事务。 (4)X/Open DTP规范进行事务处理的基本流程; 分布事务处理模型X/Open DTP——事务处理过程 ①AP首先通过TX接口告诉TM要开始一个新事务; ②TM分配全局事务ID,调用XA接口通知各RM新事务开始; ③AP访问RM; ④操作完成后,AP要求TM提交事务; ⑤TM调用XA接口协调各RM进行事务提交。 (5)解释两阶段提交协议; 两阶段提交协议2PC 思路: 一、在TM向所有RM发出正式提交请求之前,先询问所有的RM是否已准备好提交; 二、仅当所有的RM都给出肯定的回答时,TM才发出提交的请求; 三、如果有一个RM给出否定的回答,TM就指示所有的RM进行回滚。 提交协议的两个阶段: 阶段一:准备阶段 TM询问所有的RM是否已经准备好提交。 如果一个RM给出否定的回答,该RM可以自动进行回滚,并“忘记”有关该事务的信息。 阶段二:提交阶段 TM检查所有RM的回答,只要有一个RM给出否定的回答,TM就指示所有的RM进行回滚。 否则,TM将指示所有的RM提交。 第7部分 分布式对象中间件(1)解释什么是分布式对象中间件? 分布式对象中间件是扩展了本地过程调用,可透明地调用远地提供的服务,无需了解底层网络协议的一种中间件。 (2)解释什么是CORBA,并画出CORBA体系结构; CORBA是分布式对象中间件的常见规范:公共对象请求代理体系结构,Common Object Request Broker Architect ,简称CORBA。由OMG提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。 (3)CORBA系统运行基本流程; 一、客户通过某种方式找到特定对象实现的对象引用; 二、如果该对象实现有相应的静态存根,则客户可以通过该静态存根向对象实现发送请求,否则,在界面仓库的协助下,客户可以使用动态调用界面DII来向对象实现发出请求; 三、当对象调用请求通过静态存根或动态调用界面DII到达ORB核心以后,ORB核心负责请求的传送,将其送给相应的对象适配器,其具体的请求传递方式由ORB的具体实现决定; 四、对象适配器接到请求后,判断一下所请求的对象实现是否有静态框架存在,如果有,则对象适配器通过静态框架调用执行对象实现中的操作,否则,对象适配器将通过动态框架界面DSI中的动态实现例程来调用对象实现中的操作; 五、对象实现的特定操作方法执行完成后,结果将按照对象请求传递和执行路径逆向返回给客户对象。 (4)解释什么是ORB,有什么作用? 对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。 功能:把客户发出的请求传递给目标对象,并把目标对象的执行结果返回给发出请求的客户。 1.客户发送请求时,利用对象引用来指明目标对象。 2.每当创建一个CORBA对象实现时,对象适配器为其生成相应的对象引用。 特征:提供客户和目标对象之间的交互透明性。 (5)ORB核心工作步骤; 第一步 ⑴ 当客户激活一个调用操作时,操作中指出的目标对象的对象引用经客户存根传递到ORB核心。 ⑵ ORB核心代表客户自动寻找对应的服务器。 ⑶ 找到服务器以后,ORB要确保该服务器做好接收请求的准备工作。 第二步 ⑴ 客户端的ORB核心接收被调用操作的参数,并将它们编码为网络可传输的格式。 ⑵ 服务器端的ORB核心将来自网络的操作参数进行解码,然后送给服务器,并启动服务器执行所调用的操作。 第三步 服务器端执行完操作后,如果返回参数,ORB核心将它编码传入网络。客户端的ORB核心对它进行解码,并将操作结果返回客户。 (6)解释IDL在CORBA中的作用; IDL界面定义语言:CORBA在客户向目标对象发送请求之前,它必须知道目标对象所能支持的服务,对象通过界面定义来说明它所能提供的服务; IDL是一种描述性语言,并且与具体的宿主机器上的编程语言无关,从而将界面与对象实现分离。 (7)解释什么是CORBA的静态调用和动态调用; 静态调用:通过存根和框架的调用被通称为静态调用,存根和框架分别充当客户应用程序和服务器应用程序与ORB之间的粘合剂; 存根为客户提供了静态调用方式; 框架为客户提供了静态实现方式; 在请求真实发生之前,存根和框架早已分别被直接连接到客户程序和对象实现中去。 动态调用:CORBA允许客户在运行时选择目标对象,然后动态地调用目标对象上的指定操作。 基本含义:构造并发送一个请求,请求中的参数说明只有在运行时才能知道。 (8)解释CORBA中静态存根和骨架的特点; 静态存根特点: 一、存根是自动生成的,不需要程序员参与。由ORB厂商提供的IDL编译器根据界面定义生成相应的客户端存根。 二、存根是静态的,一经生成便不再改变,除非修改相应的IDL并重新编译生成。 三、存根与ORB的具体实现相关。不同的ORB厂商会有不同的ORB实现方式,即使相同的IDL界面定义也可能生成不同的存根。 骨架特点: 一、骨架是自动生成的,不需要程序员手工书写。由ORB厂商提供的IDL编译器根据界面定义,生成相应的服务器端框架。每个IDL中定义的界面都会有自己的骨架。 二、骨架是静态的,一经生成便不再改变,除非修改相应的IDL并重新生成。 三、框架与ORB的具体实现相关。不同的ORB厂商会有不同的ORB实现方式,即使相同的IDL界面定义也可能生成不同的框架。 (9)对象适配器是什么,有哪些基本作用? 对象适配器(OA)是联系对象实现与ORB本身的纽带; OA提供了服务器端对象实现与ORB核心之间的适配层,为对象实现提供了大部分所需的ORB功能。 OA作用: 一、对象引用的生成与解释; 二、对象实现的注册; 三、根据对象引用找到它对应的对象实现(定位); 四、服务器进程的激活; 五、对象的激活与撤销; 六、对象向上调用。 (10)解释GIOP/IIOP是什么; GIOP——通用ORB互通协议 客户和服务器通过ORB交互,客户方的ORB和服务器方的ORB通过GIOP(General Inter-ORB Protocol)通信; GIOP是一种通信协议,它规定了两个实体:客户和服务器ORBs间的通信机制; GIOP是互操作体系结构的基础,定义了用于ORB间通信的一种标准传输语法和一组消息格式。 (11)解释IOR及其作用。 IOR (Interoperable Object Reference)可操作对象引用:包括所有客户与服务器联系所需的各种信息(如,CORBA服务器对象进程的IP地址和TCP端口等);ORB将通过IOR在网络上唯一标识被分布的对象的消息。 作用: ORB使用对象引用来确定目标对象的位置; IOR可用于在多个不同的ORB间确定对象的位置。 第8部分 中间件平台(1)中间件平台中基本服务框架有哪些? 为上层应用提供基本服务,主要类别有基本中间件框架,容器类框架,远程服务注册定位框架,其他框架。 基本中间件框架:RPC框架,MQ框架,数据库访问框架,对象框架 容器类框架:管理应用模块—组件,提供特定功能,例如: IoC容器:依赖反转,对象实例化; Servlet容器:Http协议请求/应答; EJB容器:分布式组件,是RPC,MQ和数据访问的进一步封装; MVC容器:模型-视图-控制器。 面向应用框架——应用模型:Web应用,分布式组件/服务应用,窗口应用 服务注册定位框架:例如,JNDI,redis, zookeeper (2)画出Java EE平台基本结构; (3)解释Java EE中Web框架和EJB框架适合于什么应用开发; Servlet框架/Web应用框架是一种容器框架,提供容器管理Servlet和JSP组件;常见产品有Tomcat,Jetty,Resin等。支持浏览器与应用之间以HTTP协议通信,让网页表单提交的数据可以到达应用程序,所以Web框架适用于支持动态网站、网络应用程序及网络服务的开发; EJB框架是一种容器框架,提供容器、管理分布式组件(会话、消息、实体),扩展了远程过程调用中间件、消息中间件和数据访问中间件框架,EJB是一个可以被客户端调用,但是并不让客户端知道源代码的类的对象,适用于面向服务的应用开发。 (5)servlet容器和EJB容器分别有什么作用? servlet容器作用: 一、支持servlet和外围web服务器通信和交互; 二、生命周期的管理,控制servlet实例的创建和销毁; 三、负责servlet单实例创建、多线程调用; 四、支持开发人员在配置文件中修改安全策略; 五、编译JSP为Java代码; 六、JavaMail规范。 EJB容器作用: 一、EJB容器是EJB组件的运行环境。EJB容器装载EJB,并且使得客户端程序能进行远程调用。 二、EJB容器负责将客户端程序连接到Beans,执行事务协调,提供数据存储,管理Bean的生命周期等。 三、EJB容器透明地管理分布式组件体系结构的系统开销,无论是Bean还是调用Bean的客户程序都不显式地对EJB容器的API进行编码。 四、从本质上讲,EJB容器是客户端程序和Bean之间看不见的中间人。 (5)servlet编程模型涉及的API有哪些?开发一个servlet涉及包含哪些部分? API:HttpServlet,doGet,doPost,HttpServletRequest, HttpServletResponse 开发Servlet包含内容: 一、Servlet接口实现; 二、创建和编写Servlet; 三、编译Servlet; 四、Servlet部署。 (6)解释IoC/DI的核心思想 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度;另一角度称为依赖注入(Dependency Injection,简称DI);通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。 第9部分 Web服务(1)解释什么是Web服务? Web服务是在Internet上进行分布式计算的基本构造块; Web服务是对象/组件技术在Internet中的延伸,是一种部署在Web上的对象/组件; Web服务结合了以组件为基础的开发模式以及Web的出色性能: • 一方面,Web service和组件一样,具有黑匣子的功能,可以在不关心功能如何实现的情况下重用; • 同时,与传统的组件技术不同,Web service可以把不同平台开发的不同类型的功能块集成在一起,提供相互之间的互操作。 所以,Web service被普遍认为是下一代分布式系统开发的模型。 (2)解释Web服务的三大基本模块SOAP、WSDL、UDDI分别是什么,基本作用是什么? SOAP:SOAP是Web服务的通信协议。SOAP用来定义消息的XML格式,包含在一对SOAP元素中的、结构正确的XML段就是SOAP消息。SOAP服务通信协议是传输模块在线交换的标准; WSDL:WSDL为服务说明语言。WSDL文件是一个XML文档,用于说明一组SOAP消息以及如何交换这些消息; UDDI: 通用发现、说明和集成(UDDI)是Web服务的黄页。与传统黄页相同,可以搜索提供所需服务的公司,进行阅读一边了解其所提供的服务,然后再与某人联系以获得更多的信息。 UDD目录条目是介绍所提供的业务和服务的XML文件。UDD目录条目包括三个部分:白页,绿页和黄页。白页:介绍提供服务的公司。绿页:详细介绍访问服务的接口,以便用户能编写应用程序以使用Web服务。黄页:包括基于标准分类法的行业类别;服务的定义是通过一个称为类型模型(tModel) 的UDDI文档来完成的。 考试真题 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |