架构师考点大纲3 构件中间件

架构师考点大纲 构件中间件

要点汇总:

软件构件

特点

构件有几个基本属性:
  1、构件是可独立配置的单元,因此构件必须自包容。
  2、构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界没机会或没必要知道构件内部的实现细节。
  3、构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规范,可以与环境交互。
  4、构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应当与自身副本区别,在任何环境中,最多仅有特定构件的一份副本。

构件沿袭了对象的封装特性,但同时并不局限在一个对象,其内部可以封装一个或多个类、原型对象甚至过程,结构是灵活的。构件突出了自包容和被包容的特性,这就是作为软件生产线上作为零件的必要特征。

分类

2大类?3大类?

EJB - JCP Java Community Process

EJB规范由sun公司制定,有三种类型的EJB,
(1)会话EJB
(2)实体EJB
(3)消息驱动EJB

特点:可移植性。平台独立性。简化了分布式对象的开发、部署和访问。

COM/DCOM/COM+ - Microsoft

微软公司制定,DCOM是COM进行一步扩展,DCOM具有位置独立性,DCOM具有语言无关性,COM+并不是COM新版本,是COM新发展。

特点:语言无关性。可重用性。

CORBA(公共对象请求代理) - OMG

是由对象管理组织OMG制定的一个工业标准。

特点:
实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置。
应用程序间的统一接口。
采用面向对象的软件实现方法开发应用系统,实现对象内部细节的完整封装,保留对象方法的对外接口定义。
分层的设计原则和实现方式。

组成:
(1)伺服对象(Servant):CORBA对象的真正实现,负责完成客户端请求。
(2)对象适配器(0bject Adapter):用于屏蔽ORB内核的实现细节,为服务器对象的实现者提供抽象接口,以便它们使用ORB内部的某些功能。
(3)对象请求代理(Object Request Broker):解释调用并负责查找实现该请求的对象,将参数传给找到的对象,并调用方法返回结果。客户方不需要了解服务对象的位置、通信方式、实现、激活或存储机制。

构件管理

包括四部分:

1.构件描述

构件模型是对构件本质的抽象描述,主要是为构件的制作与构件的重用提供依据;从管理角度出发,也需要对构件进行描述,例如:实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息,它们与构件模型共同组成了对构件的完整描述。

2.构件分类与构件库组织

构件分类方法包括三类:
关键字分类法:基本思想是根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构,每个概念用一个描述性的关键字表示,不可分解的原子级关键字包含隶属于它的某些构件。
刻面分类法:主要思想来源于图书馆学。定义若干用于刻画构件特征的‘面’(Facet),每个面又通过若干概念表述构件在面上的特征。如描述构件执行的功能、被操作的数据、应用的语境或任意其它特征。
超文本组织法:基本思想是所有构件必须辅以详尽的功能或行为说明文档;说明中出现的重要概念或构件以网状链接方式相互链接;

3.商业化构件分类

如果把软件系统看成是构件的集合,从构件的外部形态看,构成一个系统的构件可分为:
独立而成熟的构件﹔有限制的构件﹔适应性构件﹔装配的构件;可修改的构件;

如果把软件系统看成构件的集合,那么从构件的外部形态来看,构成一个系统的构件可分为5类:
(1)独立而成熟的构件。独立而成熟的构件得到了实际运行环境的多次检验,该类构件隐藏了所有接口,用户只需用规定好的命令进行使用。例如,数据库管理系统和操作系统等。
(2)有限制的构件。有限制的构件提供了接口,指出了使用的条件和前提,这种构件在装配时,会产生资源冲突、覆盖等影响,在使用时需要加以测试。例如,各种面向对象程序设计语言中的基础类库等。
(3)适应性构件。适应性构件进行了包装或使用了接口技术,处理了不兼容性、资源冲突等,可以直接使用。这种构件可以不加修改地使用在各种环境中,例如ActiveX等。
(4)装配的构件。装配的构件在安装时,已经装配在操作系统、数据库管理系统或信息系统不同层次上,使用胶水代码(glue code)就可以进行连接使用。目前一些软件商提供的大多数软件产品都属这一类。
(5)可修改的构件。可修改的构件可以进行版本替换。如果对原构件修改错误、增加新功能,可以利用重新“包装”或写接口来实现构件的替换。这种构件在应用系统开发中使用得比较多。

4.人员及权限管理

构件库系统是一个开放的公共构件共享机制,任何使用者都可以通过网络访问构件库。一般来讲,构件库系统可包括五类用户,即注册用户、公共用户、构件提交者、一般系统管理员和超级系统管理员。

构件开发的目的是重用,为了让构件在新的软件项目中发挥作用,库的使用者必须完成以下工作:检索与提取构件、理解与评价构件、修改构件、构件组装。

中间件

中间件:构件存在的基础。

构件技术在最初时更多是作为一种思想存在,进而才在一些关键的环节上发展出解决问题的技术分支。构件的存在某种程度上极大地依赖了构架技术,或环境、基础设施、计算平台,只有在适当的构架中,软件才有可能被抽象和隔离,最终成为构件。因此,单独讨论构件是抽象而空洞的。构架不是操作系统、数据库或网络协议,也不完全是应用,而是在某种特定意义上的构件运行容器,层次上界于应用和基础设施之间。

中间件,从本质上是对分布式应用的抽象,因而抛开了与应用相关的业务逻辑的细节,保留了典型的分布交互模式的关键特征。经过抽象,将纷繁复杂的分布式系统经过提炼和必要的隔离后,以统一的层面形式呈现给应用。应用在中间件提供的环境中可以更好地集中于业务逻辑上,并以构件化的形式存在,最终自然而然地在异构环境中实现良好的协同工作。

中间件与构架实际是从两种不同的角度看待软件的中间层次,可以这样说:中间件就是构架,或构件模型的具体实现,是构件软件存在的基础,中间件促进了构件化软件。

中间件定义

在一个分布式系统环境中处于操作系统和应用程序之间的软件。
中间件是一种独立的系统软件或者服务程序,分布式应用软件借助这种软件在不同技术之间共享资源,中间件位于客户机服务器的操作系统之上。
中间是基于分布式处理的软件,最突出的特点是其网络通信功能。

中间件分类

(1)集成型中间件:WorkFlow、EAI、BEA WebLogic、IBM Websphere
(2)通用型中间件:CORBA、J2EE、MOM、IONA Orbix、BEA WebLogic、IBM MQservies
(3)底层型中间件:SUN JVM、Microsoft CLR、ACE、JDBC、ODBC

消息中间件(MOM:Message-Oriented Middleware)

数据中间件(Database Middleware)

远程过程调用中间件(RPC:Remote Process Call)

对象请求代理中间件(ORB:Object Request Broker)

事务处理中间件(TP Monitor:Transaction Process Monitor)

J2EE中间件

J2EE

J2EE核心组成如下。
(1) 容器:Applet Container、Application Container、Web Conminer、EJB Container。
(2)组件:Applet、Application、JSP/Servlet、EJB。
(3)服务:HTTP(Hypertext Transfer Protocol,超文本传输协议)。
(4)RMI—IIOP(Remote Method Invocmion over the Intemet Inter-ORB Protocol):远程方法调用,融合了Java RMI和CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)在使用Application或Web端访问EJB端组件时使用。
(5)Java IDL(Java Interface Definition Language):Java接口定义语言,主要用于访问外部的CORBA服务。
(6)JTA(Java Transaction API):用于进行事务处理操作的API。
(7)JDBC(Java Database Connectivity):为数据库操作提供的一组API。
(8)JMS(Java Massage Service):用于发送点对点消息的服务。
(9)Java Mail:用于发送邮件。
(10)JAF(JavaActivation Framework):用于封装传递的邮件数据。
(11)JNDI(Java Naming and Directory Interface):命名目录服务。
(12)JAXP(JavaAPI for XML Parsing):专门用于XML解析操作的API。
(13)JCA(J2EE Connector Architecture):Java连接器构架。
(14)JAAS(Java Authentication and Authorization Service):认证和授权服务。
(15)JSF(Java ServerFaces):一种用于构建Java Web应用程序的标准框架。
(16)JSTL(JSP Standard Tag Library):JSP标准标签库。
(17)SAAJ(SOAP with Attachments API for JAVA):在松散耦合软件系统中利用SOAP协议实现的基于XML消息传递的API规范。
(18)JAXR(JavaAPI for XML Registries):提供了多种类型注册服务进行交互的API。

中间件技术在集成中的应用

为了完成不同层次的集成,可以采用不同的技术产品:
(1) 为了完成系统底层传输层的集成,可以采用CORBA技术。
(2) 为了完成不同系统的信息传递,可以采用消息中间件产品
(3) 为了完成不同硬件和操作系统的集成,可以采用J2EE中间件产品。

参考:https://docs.oracle.com/cd/E19148-01/820-0533/aeraq/index.html

https://blog.csdn.net/holandstone/article/details/20994353