制造业在很久以前,就学会了组装产品生产的好处:把预先造好的产品组装起来,而不用从头开始一一制作部件。PC产业成功背后的一个原因,就是它拥有了现成的、能够轻松插在一起的组件,廉价地生产桌面计算机的能力。
可以用任何技术制作组件,有助于找到更多低成本、高质量的产品。使用预先制作、测试好的组件,还有助于减少产品面市的时间。这个概念同样适用于软件。基于组件的软件开发提供了许多好处,它使应用程序的开发更具有生产率:
虽然软件业界做过多次尝试,但是,直到最近,用预先编制好的组件组装商业应用程序的承诺,仍然没有实现。面向对象的编程语言承诺了许多重用性,但是却在实现上失败了,因为它无法保证组件在二进制级上的互操作性。但是,开发人员能用预先制作好的组件组装应用程序的希望,重新燃了起来。组件技术,例如JavaBean、CORBA和微软的COM,提供了新的基础架构,让开发人员能够把不同开发商开发的组件组装成应用程序。
在过去的几年里,我们已经目睹了客户端组件的迅速增长。JavaBean和COM组件已经被广泛地用于组装基于GUI的应用程序。许多厂商为开发人员提供了工具,使用Bean或ActiveX控件,帮助开发人员迅速地组装客户端应用程序。但是,仍然缺少健壮的、大规模的服务器端组件模型。
服务器组件封装了能够布署在不同服务器的商业逻辑。组件提供服务,例如事务、安全、以及管理组件所需的消息传递。服务器组件很容易适应不断变化的商业规则,为了取得高可用性和规模性,跨越多种服务器进行布署。与客户端组件不同,服务器端组件使开发人员能够迅速地、用预先造好的组件组装起企业应用程序。这些组件典型地是事务性的,它们需要在某种服务器环境中运行,这种服务器环境能够扩大规模,满足今天关键任务应用程序提出的富有挑战性的需求。
有三种用于服务器端组件的模型正在迅速流行起来:
这三种组件模型都依赖于基于多层、分布式对象的应用程序的开发和布署。在这份白皮书里,我们将介绍,如何在Oracle8i 数据库服务器里开发和布署EJB。