科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道构件技术与中间件

构件技术与中间件

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

网络计算带领软件产业进入了一个新的时代,商机无限,但同时挑战也无限。以电子商务为代表的技术潮流正将大到企业计算、小到个人数字代理的各种应用,在世界范围......

来源:希赛网 2008年4月21日

关键字: SOA 架构 构件 中间件

  • 评论
  • 分享微博
  • 分享邮件
  面向需求的构件应用 

  基于构架的构件化软件开发应当是面向需求的,即设计者集中精力于业务逻辑本身,而不必为分布式应用中的通信、效率、互操作、可靠性、容错性、完整性等大量与业务无直接关系但又非常重要的问题,而耗费大量的精力,理想的构架在这些方面应当为构件软件提供良好的运行环境。事实上,这些正是中间件所要解决的问题,因此,基于中间件开发的应用真正是面向需求的,从本质上符合构件化设计的思想。 

  使业务逻辑容易划分 

  服务器构件要求有很好的业务自包容性,应用开发者可以按照不同的业务进行功能的划分,体现为不同的接口或交互模式。针对每种业务的设计和开发是可以独立进行的。 

  构架和中间件有同样的目标:提供业务的分隔和包容性。例如:消息中间件规定了消息是有属性的,其中部分属性则与业务的划分有关,某种服务构件只进行相应类型的消息交互。至于如何保证业务的分类运行与管理,则是中间件的事情。 

  因此可以说,中间件和构架都实现了构件向应用的集成。 

  构件的封装、设计与实现隔离 

  构件对外发生作用或构件间的交互,都是通过规范定义的接口进行,构件使用者只需要知道构件的接口,而不关心其内部实现,这是设计与实现分开的关键。构架就应当提供构件交互的规则,并基于这些规则实现类似容器的标准环境。 

  中间件在分布交互模式上都规定了接口(或类似)机制,如IDL就是描述接口的语言规范,从早期的DCE到现在的CORBA、DCOM、Java RMI等都使用IDL描述接口,所不同的只是语言规范。客户访问服务(或对象方法)均通过接口进行,至于服务采用怎样的内部实现、基于怎样的语言、甚至怎样的操作系统、数据库,开发者都不用关心。类似地,消息队列也可作为分布交互的手段,消息的语法和语义定义保证了使用与实现的分离,使用消息队列的客户或服务是不依赖于对方的。既然中间件能隔离设计与实现,能在分布的环境中封装实现的细节,那么,基于中间件的构件开发也就是可能的。 

  隔离应用构件与复杂系统资源 

  构架很重要的一个功能就是将系统资源与应用构件隔离,这是保证构件可重用甚至"即插即用"的基础,与中间件的意图同样是一致的。中间件最大的优势之一就是屏蔽多样的系统资源,保证良好的互操作性。应用构件开发者只需要按照中间件规定的模式进行设计开发,不必考虑下层的系统平台。因此可以说,中间件真正提供了与环境隔离的构件开发模式。 

  符合标准的交互模型 

  构架不是什么具体软件,而是抽象的模型,但模型中应当定义一些可操作的成分,如标准的协议。标准的中间件则实现了构架的模型,实现了标准的协议,如基于CORBA的对象中间件使用的是CORBA规范作为构架模型,具体则实现了可互操作的GIOP协议,映射到TCP/IP为IIOP协议,定义了CDR数据表示语法、数据包格式、消息语义等内容。因此,基于中间件的构件是符合标准模型的。 

  软件重用 

  软件重用是构件化软件生产的根本目标之一,中间件提供了构件封装、构件交互规则、构件与环境的隔离及构架设施等机制,这些都为软件重用提供了方便的解决方案。 

  另外,通过类似应用桥的机制,中间件可以建立访问过去应用的通道;或者在新的中间件体系中建立特殊的运行容器,封装以往的应用,从而最终做到对应用遗产的继承性重用。 

  提供对应用构件的管理 

  基于中间件的构件软件可以方便地进行管理,因为构件总可以通过方便的标识机制进行划分,还可以使用构件库机制配合一些管理规则。例如,微软的COM就利用Windows系统注册表配合几种唯一标识构件的方式,实现构件的登记、注销、定位。CORBA规范中有接口池、实现池等规范定义,配合应用登记管理的机制,也能对应用构件实施管理。 

  总之不难得出结论,基于中间件开发的应用是构件化的,中间件提供了构件的体系结构,大大提高了应用构件生产的效率和质量。 

  构件思想对中间件的作用 

  中间件本身作为软件产品,正处于方兴未艾之际,因此本身也可以借鉴构件思想,构件化的软件开发对中间件同样适用。 

  首先,中间件作为分布式计算平台,涉及资源多样,包括各种操作系统、数据库、网络协议甚至语言,其目标是在分布的环境中统一使用这些资源。因此,可以建立针对这些资源的构件库,以动态、灵活的方式进行构件的装配,如针对不同的面向连接的网络协议,可使用统一语义的网络驱动器构件,最灵活的情况是根据配置动态绑定。 

  其次,中间件的一个重要的设计目标是互操作,而互操作的关键是有清晰而与实现无关的接口。因此在互操作的边界上,必须将构件的思想融入设计中。 

  再次,中间件的应用范围越来越广,但应用有不同的需要,不同的业务特点,如果仅仅依靠固定的模式去套用,显然不合适。例如,多数MIS应用并不需要交易管理;有些分布应用也没有OLTP的特点;金融应用中安全就显得十分关键;拓展到Web的应用则特别要求精干、安全和适应性强。因此,中间件必须设计成可伸缩的体系,由一些可替换的构件组成,如某些重于可靠,某些强调实时,某些则需要小巧。产品只有这种定位,才能在变化迅速的市场上总是适应需求,立于不败之地。 

  第四,中间件不是最终的应用,需要服务于应用开发,但可以面向典型业务的模型,以方便应用的开发,这些模型可以以构件的形式作为产品提供。例如,CORBA服务和设施就是一些典型应用的抽象体现,使用这些服务的构件,应用可以大大减少开发规模,并获得良好的效果。以构架化技术术语讲,就是领域建模。 

  第五,成功的商业软件都是非常便于管理的,同样中间件也有可配置性的需要,管理整个系统是个复杂的行为,但如果转化为若干简单行为的统一,对开发就很简单而明确。事实上,标准的网络管理协议正是蕴涵了这种思想。基于构件化开发的中间件也一样,各个构件自身是独立配置的单元,只需进行集成就可达到系统的管理目标。 

  因此,构件化的软件设计思想在中间件发展中起到了重要的作用,可以预见,构件化的中间件在今后市场上是有强大生命力的。 

  结束语 

  构件是一种前沿的软件设计思想,对整个软件行业的发展有着至关重要的推动作用。而中间件作为应用软件系统集成的关键技术,保证了构件化思想的实施,并为构件提供了真正的运行空间。中间件领域工业化标准的制定、统一及实现,使基于构件的应用开发成为可能。反过来,构件对新一代中间件产品中也起到促进作用。 

  回顾经典的工业化革命,不难得出一些有益的启示:功能再复杂的产品都是由大量标准的零件(尽管零件可能只在本领域内有用)组成,零件在生产线上装配成一个成品,所有零件在成品中共同发挥作用。分工越细致、专业生产的程度越高,总体生产效率就越高。而构件技术所扮演的角色就是把零件、生产线和装配运行的概念运用在在软件工业中,可以预见,软构件技术是软件产业化革命的必然发展趋势。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章