软件构件、中间件、面向对象

为什么80%的码农都做不了架构师?>>>   hot3.png

一、软件构件

    1、构件定义:组(构)件是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能)并提供了一组接口的实现方法。可以认为组件是一个封装的代码模块或大粒度的运行的模块,也可将组件理解为具有一定功能、能够独立工作或同其它组件组合起来协同工作的对象。

    2、软件复用是指将已有的软件及其有效成分用于构造新的软件或系统。构件技术是软件复用实现的关键。

    3、为了使构件系统更切合实际、更有效的被复用,构件应当具备可变性,以提高其通用性。

    4、可复用的构件有较高的质量保证的原因是“可复用的构件在不断复用过程中,其中的错误和缺陷会被陆续发现,并得到及时排除”。

二、常用构件标准

    1、COM/DCOM/COM+、CORBA、EJB

    2、EJB(Enterprise Java Bean)规范由Sun公司制定,有三种类型的EJB,分别是会话Bean(Session Bean)、实体Bean(Entity Bean)和消息驱动Bean(Message-driven Bean)。

    3、EJB:实现应用中关键的业务逻辑,创建基于构件的企业级应用程序。EJB在应用服务器的EJB容器内运行,由容器提供所有基本的中间层服务,如事务管理、安全、远程客户连接、生命周期管理和数据库连接缓冲等。

    4、COM是微软公司的。DCOM是COM的进一步扩展,具有位置独立性和语言无关性。COM+并不是COM的新版本,是COM的新发展或是更高层次的应用。COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有内容,COM+综合了COM、DCOM和MTS这些技术要素,它把COM组件软件提升到应用层而不再是底层的软件结构,它通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统,因此COM+与操作系统的结合更加紧密。

    5、CORBA(接口定义语言、接口池、动态调用接口、对象适配器)。

    CORBA标准主要分为三个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线”;在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。其核心部分是对象请求代理ORB(Object Request Broker),对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。

三、中间件

1、中间件定义

    中间件:在一个分布式系统环境中处于操作系统和应用程序之间的软件,可以在不同的技术之间共享资源,将不同的操作系统、数据库、异构的网络环境以及若干应用结合成一个有机的协同工作整体。它是一类软件,要实现应用之间的互操作,还具有网络通信功能。

    中间件位于客户机服务器的操作系统之上,管理计算机资源和网络通信。

    (1)中间件是一类软件,而非一种软件;

    (2)中间件不仅仅实现互联,还要实现应用之间的互操作;

    (3)中间件是基于分布式处理的软件,最突出的特点是其网络通信功能;

2、中间件的任务是使应用程序开发变得更容易,通过提供统一的程序抽象,隐藏异构系统和分布式系统下低级别编程的复杂度。

    (1)数据库访问中间件

    数据库访问中间件通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。典型的技术如Windows平台的ODBC和Java平台的JDBC等。

    (2)远程过程调用

    远程过程调用(Remote Procedure Call,RPC)是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:服务器可客户机。服务器提供一个或多个远程过程;客户机向服务器发出远程调用。服务器和客户机可以位于同一台计算机,也可以位于不同的计算机,甚至可以运行在不同的操作系统之上。客户机和服务器之间的网络通讯和数据转换通过代理程序(stub与skeleton)完成,从而屏蔽了不同的操作系统和网络协议。RPC为客户机/服务器的分布计算提供了有力的支持。但是,RPC所提供的是基于过程的服务服务访问,客户机与服务器进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。

    (3)面向消息中间件

    面向消息中间件(Message-Oriented Middleware,MOM)利用高效可靠的消息传递机制进行平台无关的数据交流,并可基于数据通信进行分布系统的集成。通过提供消息传递和消息排队模型,可在分布环境下扩展进程间的通信,并支持多种通讯协议、语言、应用程序、硬件和软件平台。典型的产品如IBM的MQSeries。

    通过使用MOM,通信双方的程序(称其为消息客户程序),可以在不同的时间运行,程序不在网络上直接通话,而是间接的将消息放入MOM服务器的消息机制中。因为程序间没有直接的联系,所以它们不必同时运行:消息放入适当的队列时,目标程序不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。

    消息客户程序之间通过将消息放入消息队列或从消息队列中取出消息来进行通讯。客户程序不直接与其它程序通信,避免了网络通讯的复杂性。消息队列和网络通信的维护工作由MOM完成。

    (4)分布式对象中间件

    随着对象技术与分布式计算技术的发展,两者相互结合形成了分布式对象技术,并发展成为当今软件技术的主流方向。典型的产品如OMG的CORBA、Sun的RMI/EJB、Microsoft的DCOM等。

    (5)事务中间件

        也称事务处理控制器(Transaction Processing Monitor,TPM)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理也提出了需求。事务处理监控程序位于客户和服务器之间,完成事务管理与协调、负载均衡、失效恢复等任务,提高系统的整体性能。

    我们由底向上从中间件的层次上来划分又可分为底层型中间件、通用型中间件和集成型中间件三个大的层次。

    (1)底层型中间件的主流技术有JVM,CLR,ACE,JDBC和ODBC等,代表产品主要有SUN JVM和Microsoft CLR等。

    (2)通用型中间件的主流技术有CORBA,J2EE,MOM和COM等,代表产品主要IONA Orbix、BEA Weblogic和IBM MQSeries等。

    (3)集成型中间件的主流技术有WorkFlow和EAI等,代表产品主要有BEA Weblogic和IBM Websphere等。

四、面向对象

1、面向对象=对象(Objects)+类(Classes)+继承(Inheritance)+消息通信(Communication with messages)

2、对象:是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位。三个要素:对象标志(供系统内部唯一的的识别对象);属性(状态、数据、用来描述对象的静态特征);服务(操作、行为或方法,用来描述对象的动态特征)。

3、封装是对象的一个重要原则。有2各含义:对象是全部属性和全部服务紧密结合而形成的一个不可分隔的整体;对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码都被封装在黑盒子里面。

4、抽象是通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。一个对象是现实世界中一个实体的抽象,一个类是一组对象的抽象,抽象是一种单一化的描述,它强调给出与应用相关的特性,抛弃不相关的特性。

5、类和类库:类是对象的抽象定义,是一组具有相同数据结构和相同操作的对象的集合。类与对象是抽象描述与具体实例的关系,一个具体的对象被称为类的一个实例(Instance)。

6、继承:使用已存在的定义作为基础建立新定义的技术。

7、多态性:可以分为四类:过载多态(重载多态),强制多态,包含多态,参数多态。前两种统称为专用多态(特定多态),后两种称为通用多态。多态性是一种方法,这种方法使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态性使得一个属性或变量在不同的时期可以表示不同类的对象。

8、消息:指向对象发出的信息请求,它应该含有下述消息:提供服务的对象标志、消息名、输入信息和回答信息。消息通信:封装使对象成为一些各司其职、互不干扰的独立单位;消息通信为它们提供了唯一的合法的动态联系途径,使它们的行为能够相互配合,构成一个有机的系统。

9、接口:对操作规范的说明。

10、类是一组具有相同属性,表现相同行为的的对象的抽象。

11、类之间的关系:

    (1)依赖关系:如果元素A的变化会引起元素B的变化,则B依赖于A。

    (2)泛化关系:就是继承的反义词。

    (3)关联关系:聚合关系、组合关系表示两个类的实例之间存在的某种语义上的联系。

    (4)实现关系:用来规定接口和实现接口的类或组件之间的关系,接口是操作的集合,这些操作用于规定类或组件的服务。

12、统一建模语言UML:是一种语言,是一种可视化语言;是一种可用于详细描述的语言;是一种构造语言;是一种文档化语言。不是过程,也不是方法,但允许任何一种过程和方法使用它。简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改。

UML对系统架构的定义是:系统的组织结构,包括系统分解的组成部分、它们的关联性、交互机制和指导原则,这些提供系统设计的信息。具体来说,是指五个系统视图。

    (1)逻辑视图:以问题域的语汇组成的类和对象集合。

    (2)进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例。

    (3)实现视图:对组成基于系统的物理代码的文件和组件进行建模。

    (4)部署视图:把组件物理的部署到一组物理的、可计算节点上。

    (5)用例视图:最基本的需求分析模型。

UML2.0支持13种图,它们可以分成两大类:结构图和行为图。结构图包括类图、组合结构图、构件图、部署图、对象图和包图;行为图包括活动图、交互图用例图和状态图,其中交互图是顺序图、通信图、交互概览图和时序图的统称。

软件构件、中间件、面向对象_第1张图片

转载于:https://my.oschina.net/pmos/blog/860169

你可能感兴趣的:(操作系统,数据库,java)