软件产品线的十二个重要知识点如软件重用、EJB 企业级 Java 构件等

一、软件重用可以分为垂直式重用和水平式重用,标准函数库是一种典型的水平式重用。

分析:软件重用分垂直式重用与水平式重用,垂直式重用是指局限于某一垂直领域的重用,如只在电力系统中用到的构件;而水平式重用是指通用领域的重用,如标准函数库,任何软件都能用,所以是水平式重用。

二、EJB 是企业级 Java 构件,用于开发和部署多层结构的、分布式的、面向对象的 Java 应用系统。其中,会话型构件负责完成服务端与客户端的交互;实体型构件用于数据持久化来简化数据库开发工作;消息驱动构件主要用来处理并发和异步访问操作。

分析:EJB 分为会话 Bean、实体 Bean 和消息驱动 Bean。

1、会话 Bean:用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个会话 Bean 来为客户端服务。会话 Bean 可以直接访问数据库,但更多时候,它会通过实体 Bean 实现数据访问。

2、实体 Bean:用于实现 O/R 映射,负责将数据库中的表记录映射为内存中的实体对象,事实上,创建一个实体 Bean 对象相当于新建一条记录,删除一个实体 Bean 会同时从数据库中删除对应记录,修改一个实体Bean 时,容器会自动将实体 Bean 的状态和数据库同步。

3、消息驱动 Bean 是 EJB3.0 中引入的新的企业 Bean,它基于 JMS 消息,只能接收客户端发送的 JMS 消息然后处理。MDB 实际上是一个异步的无状态会话 Bean,客户端调用 MDB 后无需等待,立刻返回,MDB 将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。

三、构件组装成软件系统的过程可以分为三个不同的层次:定制、集成和扩展

分析:系统构件组装分为三个不同的层次:定制(Customization)、集成(Integration)、扩展(Extension)。这三个层次对应于构件组装过程中的不同任务。

四、CORBA 服务端构件模型中:

伺服对象(Servant):CORBA 对象的真正实现,负责完成客户端请求。

对象适配器(Object Adapter):用于屏蔽 ORB 内核的实现细节,为服务器对象的实现者提供抽象接口,以便他们使用 ORB 内部的某些功能。

对象请求代理(Object Request Broker):解释调用并负责查找实现该请求的对象,将参数传给找到的对象,并调用方法返回结果。客户方不需要了解服务对象的位置、通信方式、实现、激活或存储机制。

五、J2EE 应用系统支持五种不同类型的构件模型,包括Applet、Servlet、JSP、EJB、Application Client

J2EE 核心组成:

容器:Applet Container、Application Container、Web Container、EJB Container

组件:Applet、Application、JSP/Servlet、EJB

服务:

HTTP(Hypertext Transfer Protocol)超文本传输协议

RMI-IIOP(Remote Method Invocation ober the Internet Inter-ORB Protocol):远程方法调用,融合了 Java RMI 和 CORBA(Common Object Rrquest Broker Architecture 公共对象请求代理体系结构) 在使用 Application或 Web 端访问 EJB 端组件是使用

Java IDL(Java Interface Definition Language):Java 接口定义语言,主要用于访问外部的 CORBA 服务

JTA(Java Transaction API):用于进行事务处理操作的 API

JDBC(Java Database Connectivity):为数据库操作提供的一组 API

JMS(Java Massage Service):用于发送点对点消息的服务

JavaMail: 用于发送邮件

JAF(Java Activation Framework):用于封装传递的邮件数据

JAXP(Java API for XML Parsing ):专门用于 XML 解析操作的 API

JCA(J2EE Connector Architecture ):Java 连接器构架

六、软件构件是一个独立可部署的软件单元,与程序设计中的对象不同,构件可以利用容器管理自身对外的可见状态

构件的特性是:(1)独立部署单元;(2)作为第三方的组装单元;(3)没有(外部的)可见状态。一个构件可以包含多个类元素,但是一个类元素只能属于一个构件。将一个类拆分进行部署通常没什么意义。

对象的特性是:(1)一个实例单元,具有唯一的标志。(2)可能具有状态,此状态外部可见。(3)封装了自己的状态和行为。

七、为了使一个接口的规范和实现该接口的构件得到广泛应用,需要实现接口的标准化。接口标准化是对接口中消息模式、格式和协议的标准化。

接口标准化是对接口中消息的格式、模式和协议的标准化。它不是要将接口格式化为参数化操作的集合,而是关注输入输出的消息的标准化,它强调当机器在网络中互连时,标准的消息模式、格式、协议的重要性

这也是因特网(IP, UDP,TCP,SNMP, 等等)和 Web(HTTP, HTML, 等等)标准的主要做法。为了获得更广泛的语义,有必要在一个单一通用的消息格式语境中标准化消息模式。这就是 XML 的思想。XML 提供了一种统一的数据格式。

八、OMG 接口定义语言 IDL 文件包含了六种不同的元素,接口描述是一个 IDL 文件最核心的内容,模块定义将映射为Java 语言中的包(Package)或 C++语言中的命名空间(Namespace)。

IDL 是一种接口定义语言,具体的定义会涉及到接口以及相关部分。文件包含的主要元素有:接口描述、模块定义、类型定义、常量定义、异常值类型接口描述是 IDL 文件中最核心的内容。

由于 IDL 只是一种接口定义语言,最终还是要落地与语言对接的,所以 IDL 的数据类型要与实现语言进行映射。以 Java 为例,IDL 接口映射为 Java 类,而该接口的操作映射为相应的成员函数。模块定义映射为 Java语言中的包(Package)或 C++的 namespaces。

九、面向构件的编程(Component Oriented Programming,COP)关注于如何支持建立面向构件的解决方案。面向构件的编程所需要的基本支持包括多态性、模块封装性、后期绑定装载安全性。

面向构件的编程(COP)关注于如何支持建立面向构件的解决方案。一个基于一般 OOP 风格的 COP 定义如下(Szyperski,1995):“面向构件的编程需要下列基本的支持:

——多态性(可替代性);

——模块封装性(高层次信息的隐藏);

——后期的绑定和装载(部署独立性);

——安全性(类型和模块安全性)。”

十、CORBA 构件模型中,可移植对象适配器 POA的作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,伺服对象 Servant是最终完成客户请求的服务对象实现。

POA 是对象实现与 ORB 其它组件之间的中介,它将客户请求传送到伺服对象,按需创建子 POA,提供管理伺服对象的策略。

CORBA 对象可看作是一个具有对象标识、对象接口及对象实现的抽象实体。之所以称为抽象的,是因为并没有硬性规定 CORBA 对象的实现机制。由于独立于程序设计语言和特定ORB 产品,一个 CORBA 对象的引用又称可互操作的对象引用(Interoperable Object Reference)。从客户程序的角度看,IOR 中包含了对象的标识、接口类型及其他信息以查找对象实现。

伺服对象(servant)是指具体程序设计语言的对象或实体,通常存在于一个服务程序进程之中。

客户程序通过对象引用发出的请求经过 ORB 担当中介角色,转换为对特定的伺服对象的调用。在一个CORBA 对象的生命期中,它可能与多个伺服对象相关联,因而对该对象的请求可能被发送到不同的伺服对象。

对象标识(Object ID)是一个用于在 POA 中标识一个 CORBA 对象的字符串。它既可由程序员指派,也可由对象适配器自动分配,这两种方式都要求对象标识在创建它的对象适配器中必须具有唯一性。

十一、构件是一组通常需要同时部署的原子构件。 构件和原子构件之间的区别在于,大多数原子构件永远都不会被单独部署,尽管它们可以被单独部署。相反,大多数原子构件都属于一个构件家族,一次部署往往涉及整个家族。

一个原子构件是一个模块和一组资源。

原子构件部署、版本控制和替换基本单位。原子构件通常成组地部署,但是它也能够被单独部署。一个模块是不带单独资源的原子构件(在这个严格定义下,Java 包不是模块——在 Java 中部署的原子单元是类文件。一个单独的包被编译成多个单独的类文件——每个公共类都有一个)。

模块是一组类和可能的非面向对象的结构体,比如过程或者函数。

十二、以下关于软件中间件的叙述

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

软件中间件的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户开发和集成应用软件。

它不仅仅要实现互连,还要实现应用之间的互操作。

中间件通过标准接口实现与应用程序的关联,提供特定功能的服务。

使用中间件可以提高应用软件可移植性。

使用中间件有助于提高开发效率。

来源:正能量日常杂记

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月9日
下一篇 2021年7月9日

相关推荐