一、组件技术
1、组件:是一种大粒度的可复用的元素,属于结果复用,运行时的组件称为组件实例,
与设计时的组件进行区分。
2、软件体系结构(架构)-从复用角度看,属于过程复用
3、组件的作用:
支持动态链接(组件最基本的性质)、
支持分布式软件开发、
OOL 中基本的封装机制”类”不足以支持复杂软件系统的构造,需要更大粒度的
软件构成成分:组件
支持一种开发的历年
二、组件对象模型
1、 COM 规范的主要目标:支持动态链接和支持向前兼容,其他目标暂不记住
2、 COM 规范的主要内容:、
规范可以理解为编程约束或建议,一个程序的程序整体结构应该是什么样子的约束
或建议,程序的结构分为接口部分和实现部分
A、接口部分:每个 COM 组件具有若干个接口,每个接口相当于当前组件对外
的某一方面的承诺或窗口,每个接口包括一组函数,这些函数共同代表了
当前组件具有的某一方面你的能力,一个接口相当于一个数组,每个元素
是一个指向函数的指针,这种形式类似于 C++实现束定时所采用的虚函数
表的结构。
B、 实现部分:实现部分需要实现接口部分的每一个接口里的每一个函数,但
是不约束如何实现的,怎么实现都可以,相当于 private。
结合 COM 组件的两方面结构上看,COM 规范只做用于接口部分,不作用于实
现部分。
3、 Com 组件中的 IUnknown 接口:参考背诵内容 3.0
三、类之间关系的实现
1、 依赖关系:------>
2、 继承关系:
3、 聚合关系:
:举例:汽车类聚合发动机类、车轮类等
4、 组合关系:
更强的聚合关系,组合的各个部分生命周期同步
5、 关联关系:
,关联关系指的是被知道或被使用,但是语义相较于聚合
和组合没有那么强烈,只有关联关系中关系的方向和多重性质分为单/双向,单/
多个。双向关联是一条不带箭头的实线,如男人和女人当存在 1..1 关系时(夫妻)
四、CORBA-公共对象请求代理体系结构
1、 CORBA 是一种规范,它是一种典型的软件体系结构。
2、 该规范下的软件结构:可以简单理解为一种开放式的总线结构
A、总线:对象请求代理(ORB)
B、 充当插件(组件)角色的组件又称为:CORBA 对象、CORBA 服务
3、 ORB 是一种中间件,他是一个软件,它是连接对象、应用程序、CORBA 服务和 CORBA
工具集的核心,它将 各个元素分开,是 CORBA 实现分不是软件集成、即插即用的
核心。
4、 插件之间不直接相连,之间的协作、互操作关系通过 ORB 完成
5、 CORBA 规范的主要目标:分布式软件系统中,可以利用面向对象方法,包括对象
之间完成远程调用,并且,从开发人员的角度,不必关心对象间远程调用的问题,
可有类似于编写单机本地程序一样,编写分布式软件的程序。
6、 代理模式中的远程代理:为位于不同进程空间的远程目标对象提供进程内的代表对
象,典型示例:客户端程序代理服务端的服务。
五、EJB-组件与中间件相结合的一种技术
1、 若干组间+中间件=软件系统(宏观背景)
A、领域相关的功能由组件负责
B、 领域无关的功能由中间件负责
它是软件系统分解、构造的一种方式
2、 一些领域无关的功能举例
远程调用
负载均衡、资源调度
数据在线备份、冗余存储
缓冲存储、资源池
透明容错
事务处理
日志和评审
消息管理
访问控制(安全性)
数据永久性存储
对象生命周期的维护
完全关机
动态重新部署
软件的动态演化
………
类似的这些功能,应该单独完成,并在不同的软件系统中重复使用。
3、 EJB 组件的种类:三种
A、实体 Bean:以对象的形式管理持久化数据,或者可以理解为:数据库中的数据
在内存中的一种表示方式
B、 会话 Bean:代表业务流程或业务功能,分为有状态和无状态。缺省情况下指的
是有状态会话 Bean
C、消息驱动 Bean:基于 JMS,支持异步消息
4、 构造一个 EJB 组件的基本流程:
a、 定义组件业务接口(EJBObject 接口)
b、 定义 home 接口
c、 定义并实现 Bean 类,实现一个接口并另外两个接口相关,涉及到的三个接口是
组件种类接口、组件业务接口、home 接口
d、 生成 EJB 部署描述文件
e、 按照一定的格式,将 bean 类、接口和部署描述文件放入 EJB-JAR 文件中,得到
的这个文件就是 EJB 组件,一个 EJB_JAR 中可能有多个 EJB 组件
5、 部署描述文件的作用
A、告诉 EJB 容器自己是什么,什么是组件业务接口、什么是 home 接口、什么是
Bean 类,功能有哪些
B、 向 EJB 容器申请所需要的服务,以及以何种形式提供服务
C、定义若干量值
6、 EJB 组件和 EJB 容器的关系,单独使用均不完整,EJB 组件对外提供服务的时候需要
EJB 容器进行补充。