什么是组件?

原文链接:http://www.javaeye.com/problems/2468

最近看了好些定义,总感觉对这个定义越来越想不明白,有的说组是一组可独立部署的二进制代码,可独立部署就是与容易无关。而有的说,组件就是对象,容器负责对组件的生命周期进行管理,那么到底什么是组件,组件和容器是什么样的关系?如何理解Servlet是用Java编写的与平台无关的服务器组件?另外,什么是中间件,Java算不算一个中间件呢?中间件与组件又有什么区别与联系?如果说JAVA是一个中间件,那么EJB是不是也可以算一个中间件,但EJB又是一个容器,这么说来,中间件和容器又是什么关系呢?是针对不同的对象有不同的称呼吗?还是有不同的功能而定的?
问题补充:
多谢以上几位对问题的关心,在这里特别感谢zhai puhong,你的回答给了我很多,同时也感觉其它几们兄台。
在这里,我仔细看过了几位的回答,结何这几天的学习,这里说一下现在我对这几个问题的学习结果,还请各位兄台帮我看看:
========================================

组件是能够完成某种功能并且向外提供若干个使用这种功能的接口的可重用代码集。表现形式为常见的(库/包),组件将一些类和接口组织起来,对外暴露一个或多个接口,供外界调用。如开发JDBC时所使用的JAR包,其中就包含了,JDBC的API,我们开发JDBC实际上就是使用这些JAR包里的API,也就是说,使用了JDBC组件提供的功能,这些功能,能过接口声明体现。
========================================

那么容器与组件是什么样的关系呢?

先从下面这个等式说起:容器(规范)+组件(规范)=程序。 从另外一种意义上来讲:中间件+业务逻辑=程序
容器提供了运行环境,包括事务支持,日志等,组件是提供了完成某种功能的模块。
========================================

关于中间件,在网络上查到一篇文章,写得很好,在这里引用一下:

内容如下:
…………………………………………………………
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
IDC的定义是:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
下面组出形成原因
存在必定合理
但是合什么理呢
知道为什么要存在就知道在什么进修应该使用它了


中间件的演变过程

随着计算机技术的发展,IT厂商出于商业和技术利益的考虑,各自产品之间形成了差异,技术在不断进步,但差异却并没有因此减少。计算机用户出于历史原因和降低风险的考虑,必然也无法避免多厂商产品并存的局面。 

于是,如何屏蔽不同厂商产品之间的差异,如何减少应用软件开发与工作的复杂性,就成为技术不断进步之后,人们不能不面对的现实问题。 

显然,由一个厂商去统一众多产品之间的差异是不可能的,而单独由计算机用户在自己的应用软件中去弥补其中的大片空档,由于技术深度和技术广度的要求,必然也是勉为其难。于是,中间件应运而生。中间件试图通过屏蔽各种复杂的技术细节使技术问题简单化。 

在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。这些与用户的业务没有直接关系,但又必须解决,耗费了大量有限的时间和精力。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件这类的软件。

中间件解决什么问题

世界著名的咨询机构Standish Group在一份研究报告中归纳了中间件的十大优越性: 

• 缩短应用的开发周期 

• 节约应用的开发成本 

• 减少系统初期的建设成本 

• 降低应用开发的失败率 

• 保护已有的投资 

• 简化应用集成 

• 减少维护费用 

• 提高应用的开发质量 

• 保证技术进步的连续性 

• 增强应用的生命力 

具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。 

中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。Standish的调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以减少50%左右。在网络经济大发展、电子商务大发展的今天,从中间件获得利益的不只是IT厂商,IT用户同样是赢家,并且是更有把握的赢家。 

其次,中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。中间件的这一作用,使得在技术不断发展之后,我们以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。

由于中间件的种类较多,企业在使用中间件的时候必须作出选择。选择应该从以下几方面进行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值