对于用户而言,最有前途的中间件之一就是互联网的平台――j2ee应用服务器。在j2ee应用服务器领域,ibm、bea、东方通、apusic都在积极推动市场的发展。那么,j2ee到底有哪些好处呢?
j2ee的全称是java 2 platform enterprise edition,它是由sun公司领导、各厂商共同制定并得到广泛认可的工业标准。业界各大中间件厂商如bea、ibm、oracle都积极地促进了它的“诞生”、“长大”。
从一开始,j2ee走的就是开放路线――众多厂商共同制定规范,使得j2ee吸收了这些厂商多年来在系统设计、系统集成方面的经验、教训。同时,这些厂商对新技术发展的预测以及各自独到的观点,也会在j2ee的规范中体现。所以,j2ee产品可以满足当前不断变化、日趋复杂的商业需求,很快就成为企业构建新系统的首选产品。由此带来的巨大商业利润又使得各厂商更加努力地完善j2ee,从而造就了j2ee强大的生命力。
保护企业的投资
对于很多企业而言,在多年的发展过程中,它会有自己的技术人员设计开发的系统,也会有从专业软件公司那里买来的系统。这些系统可能是由同一种编程语言写的,也可能是由不同的编程语言写的;可能运行在相同的操作系统上,也可能需要运行在不同的操作系统上。
为了保护已有投资,企业在构建新系统的时候,会尽量利用已有的系统以节约人力物力并加快系统开发的速度。参加j2ee规范制定的各厂商都在自己的产品中实现了和老系统的接口,如bea的weblogic可以直接调用tuxedo中的服务,ibm的websphere也可以调用cics的服务。java本身的跨平台性,使得j2ee产品几乎可以在任何操作系统上运行。因此,选择j2ee,企业可以充分利用已有硬件和操作系统。
对于系统将来的扩展,j2ee规范也考虑得很周全。j2ee规范强制开发者把业务逻辑封装成可重用的组件模式。在系统扩展的时候,原来的组件可以直接使用。另外,即使企业重新购买了别的j2ee产品,由于所有的j2ee产品都遵循一个统一的规范,原来的组件只要经过极少的改动就可以在新的j2ee产品上使用。这样,也避免了企业被一家厂商绑死。
缩短企业进入市场的时间
当今的市场竞争十分激烈,需求变化日趋复杂、瞬息万变。面对这样的环境,企业的反应必须及时。哪怕是延迟一点点,也要花很多的时间才能弥补回来。j2ee设计的初衷就是加快开发的速度,减少从投入到产出之间的时间周期。基于组件的开发,可以使开发者专注于业务逻辑的实现,而其余复杂的功能(如分布式事务处理、自动容错等)则由厂商负责实现,降低了对开发者编程水平的要求,也减轻了他们的负担。
具有稳定的可用性
许多系统都必须24小时不停运转,一旦宕机将造成不可接受的损失。通常的解决方案是采用集群技术。通过把用户数据备份在不同的物理机器上,j2ee产品能够有效防止数据丢失。在不同机器上的用户数据和它的备份会实时地保持同步,如果某台机器因故障宕机了,用户的请求会被转发到备份数据所在的机器上。这样,用户的请求仍会被正常处理。从用户的角度看来,他根本感觉不到系统出了故障。
使用j2ee产品作集群没有对硬件和操作系统的要求,而一般采用硬件的集群则要求集群中的所有硬件必须是一家厂商的,因为不同厂商的硬件无法作集群。这就可能要求企业购买新的硬件,无法使用原有的资源。所以,使用j2ee产品也能节约企业的支出。
背景知识:
j2ee的多层应用通常被称为三层应用,因为整个系统分布在三个地方:客户端机器、j2ee服务器和后端的数据库。图1描述了j2ee的多层结构(eis是enterprise information system的简称,意为企业信息系统)。大多数j2ee的系统都分成三层或四层,复杂的系统层次会更多一些。这样的划分,使系统结构十分清晰,每个层次都各尽其责。
]图1 j2ee的多层结构
j2ee应用是由一个个的组件构成的。组件是一种具有独立功能的软件单元,它可以在j2ee服务器中执行,也可以调用别的组件的功能。j2ee说明书中定义了以下的j2ee组件:
◆客户端应用程序和applet是客户层组件;
◆java servlet和java server page(jsp)是web层组件;
◆enterprise javabean(ejb)是业务层组件。
一个j2ee的客户端可以是web clients、applets或客户端应用程序。web client包括两部分:动态的网页和浏览器。web client简单方便,但不能做复杂的操作。applet是一个小的客户端程序,它需要浏览器的jvm来执行,可以把一部分的业务逻辑用applet来实现。客户端应用程序提供了更加友好的图形界面的功能,它可以直接调用业务逻辑层中的ejb,当然,也可以打开一个http联接,与web层的servlet通讯。
web层和业务逻辑层都在j2ee服务器上。web层的组件可以是servlets或是jsps。servlets和jsps都用来生成动态网页,它们的主要作用是接受并检验用户输入的数据,把数据传给后端的业务逻辑层,并把业务逻辑层处理的结果返回给用户。业务层代码的逻辑用来满足银行、零售、金融等特殊商务领域的需要,由运行在业务层上的ejb来实现。
企业信息系统层包括erp、crm、大型机事务处理、数据库系统以及其它的遗留信息系统等。通常企业信息系统层仅仅是数据库,但随着商业逻辑的复杂化,越来越多的系统需要和erp、crm互连。j2ee1.3规范颁布了jca(java connector adapter)规范,对如何与erp、crm等企业信息系统层互连作了统一的规定。
看了上面的层次划分,你会知道构建一个以j2ee为平台的系统的主要时间都花在web层和业务逻辑层的开发上。上面提到j2ee可以使开发者专注于业务逻辑的实现,而不必考虑分布式事务处理、自动容错等其它关键功能的实现,从而加快开发速度。
名词解释:
tuxedo:这是bea公司的交易中间件产品,1984年由贝尔实验室开发成功,1992年易主novell公司,1996年bea公司收购到旗下。经过十多年的不断更新和完善,tuxedo已经成为交易中间件领域的代表产品之一。
cics:customer information control system(客户信息控制系统)的缩写。
闽公网安备 35060202000074号