目前的Web开发工具主要划分为两大类:企业级Web开发工具和其他Web开发工具。在企业级Web开发工具阵营里,主要有Microsoft ASP.NET和JAVA,而其他Web开发工具则包括了PHP、Perl,还有最近的Ruby on Rails等等。
当然,实际Web开发中,其他Web开发工具也经常用于企业Web开发领域,两类Web工具的界限并不明晰。如果说他们之间有区别,那么企业级Web和其他Web应用环境的最大区别之处在于,企业级Web技术的特点在于商业逻辑和组件化,并且这些Web技术都是在正规公司的研发环境下成长起来的,而其他Web工具则是为了满足一些Web开发任务中的某些特定需求,被一些Web工程师和Web爱好者们开发出来。
而我们今天讨论的IBMWebSphere 正是基于Java的应用环境。WebSphere应用服务器WebSphere Application Server(WAS)是WebSphere产品线的核心,除了WebSphere,IBM也开发出了一系列中间件(Middleware),这些中间件也都集成到了WebSphere的品牌下。WebSphere服务器和中间件以稳定的表现,占领了大量企业级应用环境市场。
Servlet的诞生
在90年代,Web服务器所做的工作仅仅是取出静态文档,并且将文档传输到浏览器。很快,技术的发展使得原本清闲的Web服务器可以处理数据,并且传输这些动态结果给用户。最开始,Web开发者以现存的语言,比如Perl、C语言来编写动态代码,然后用一个架桥技术,比如CGI,将这些代码连接到Web服务器。
在1997年, SUN公司发布了第一个JAVA Servlets规范,JAVA Servlets规范被设计成服务器端的程序语言。其中,为了使得Web服务器的处理机制更加强健,Servlets将State模式引入了基于Web的应用,使用Cookies和Session变量,允许Web应用通过多个交互页面获取信息。这样,Servlets就将Web从原始的文档传输系统,转变成了应用环境。
在Web服务器中,最早支持Java Servlets的是IBM 1998年推出的WebSphere,当时被称作“Servlet Express”。由于Java语言是在SUN的资助下发展起来的,Java很快就变得复杂和精细,特别是模块架构元素,比如说frameworks和classes。JavaBeans规范也允许Java开发者将对象封装进class文件,以便得到更好的移动便携性。
这种组件基础的架构,特别吸引企业级Web开发者,因为这些企业级Web开发者很重视跨平台环境下,设计应用架构的能力,企业级Web开发者经常将Web程序部署在大量的、跨平台环境的服务器上。
由于IBM WAS的强势发行,WAS对于Java语言的演进起到了极大的推进作用,WAS实际上也成为了基于Java的Web应用服务器里的重要领袖。
WebSphere发展
在2000年WAS3.5发行时,IBM 进一步扩展了WAS在一些领域的应用。WAS3.5支持了当时最新的Java2企业版平台、也称作Java 2 Platform,Enterprise Edition 即J2EE1.0,WAS也支持分布式高可用模块在企业服务器间的大规模部署。IBM也扩展了WebSphere到更多的广泛通用平台,包括Linux、OS/400,和z/OS。
这些都使得WebSphere对企业而言,有了更大的吸引力。同时,IBM也开始将WebSphere Application Server分为不同的版本。这些版本的划分在后来的WAS4.0中更加明确,其中,在WAS4.0的高级版本里分为:无群集支持版、群集支持、和单机服务器开发版。除了应用服务器,IBM还提供了编程工具,以支持WebSphere下的应用开发。这些工具最早的原型——WebSphere Studio,开始仅仅支持HTML开发,但是不久这些开发工具功能就都被集成到了WebSphere Studio Application Developer WSAD之中。WASD是一个集成的Java开发和测试环境。
WebSphere的问题
尽管WAS很快就有了广泛的企业用户基础,但是开发者们还是对WebSphere有些发怵,特别是在第5版之前。开发者们最大的不满,是因为运行WebSphere太过占用资源,所以必须使用昂贵的高端服务器硬件才能满足WebSphere的资源需求。而其他的不满则是服务器的管理工具功能太弱,和对Java规范不够稳定的扩展支持。
所以,对于不满WAS的Web开发者们而言,最通常的替代品是开源产品包括Tomcat和JBoss。就像早期的WebSphere,Tomcat是一个Java Servlet引擎,缺少Enterprise JavaBeans支持,虽然功能有限,但是这个开源产品却是非常好的轻量级Java服务器,所以也深得一些用户喜爱。而JBoss,则跟WebSphere更具可比性。JBoss也是一个J2EE服务器,JBoss建立在Tomcat的基础上。喜欢JBoss的人可能偏好它的开源特性和免费的价格,还有和Tomcat一样的低资源占用率。
但是,开源方案无论如何也不可能取代功能强大的WebSphere,因为开源解决方案毕竟开源方案,这些方案缺少管理和开发工具,而WebSphere品牌下,拥有大量的集成中间件,这些都是开源方案是难以望其项背的。
WebSphere的成长
作为对于早期Web应用服务器使用者抱怨的回应,IBM推出了Version5。Version5彻底改写了许多底层代码,在这个版本之中,蓝色巨人统一了WebSphere下面各个产品平台的代码,大幅度减少了在不同WAS产品部署下的架构差异。另外,V5还支持J2EE1.3规范。
IBM也重新定义了WebSphere V5的不同版本。基础版的目标在于那些需要J2EE核心功能性(functionality)的中小机构,这些机构需要J2EE环境,却并不需要大规模部署的功能性。而IBM WebSphere的网络部署版本(Network Deployment Edition)则允许WebSphere以拥有负载平衡和路由能力的代理Proxy跨群集运行。而当Version6在2004年发布的时候,IBM认识到了其竞争对手实际上是来自于开源社区,为此,IBM发布了一个新的社区版本(Community Edition)。不像自有代码的WAS 之前版本,这个社区版IBM WAS Community Edition是基于开源的Apache Geronimo。Geronimo,就像WebSphere6一样,支持JEE5.0。JEE5.0也即J2EE1.4的接任者(SUN在命名时不再沿用J2EE,而是改用JEE,可能是强调了JEE的全新更新)。另外,新的WAS Community Edition是基于开源项目,最终用户可以方便的对其进行修改。
尽管WAS Community Edition的免费用户可以从Apache直接得到各个组件,用户还是可以购买IBM出售的WebSphere的服务支持。
JEE和WebSphere的未来
目前,WebSphere架构与其核心JEE技术联系得非常紧密,但是也有一些人质疑Java技术在Web服务器之中是否还会持续其重要地位。事实上,很多开发人员,特别是没有企业级开发背景的开发人员比较排斥使用JAVA。随着Servlets的不断发展,许多其他架构语言也都纷纷涌现并且逐渐成熟,包括PHP、Ruby on Rails等,这些语言在感知上更加容易被接受,比起Java也更加简单。
富有经验的Java开发者时常会嘲笑那些轻量级的替代品,他们认为这些替代品还是缺乏企业级Java的可靠性。不过随着Java变得日趋复杂,Java的反对者们认为很多应用都被Java过分设计,这种过分设计也导致了Java开发的应用总是需要更多的资源和开发时间。
比如曾经有一个Java开发者有这样的疑问:Facebook,一个在全球都广泛普及的Internet站点,迅速的发展出了各种应用功能,但是却并没有选择建立在JAVA平台上。虽然J2EE曾经声称JavaEE5.0将会更加简单,但Java EE5.0 却通常被认为比以前更加复杂,以至于有一个IT分析员称JEE5.0发布为“终结的开始”。
不过,Java服务器不会就这么消失。那些依赖Java开发的企业可能只是减少负载过大的Web应用,或者减少应用数量以减轻负担。而新的轻量级技术毕竟缺乏大量的中间件,目前还是不可能完全替代Java。
WebSphere的未来会怎么样呢?还依旧跟随着Java的脚步么?IBM Community Edition的发布似乎已经表明了一点:IBM十分希望WebSphere采用一种更灵活的策略,比如IBM已经允许WebSpere变成一个开源产品,尽管IBM还是拥有其非开源版的所有权。是否这种灵活的策略会扩展出其核心Java技术之外呢。目前还没有定论。
IBM已经扩展了其WebSphere品牌至和WAS集成的各种产品,包括Web服务器,通信和商业应用。这些被集成到WAS的产品,使得WebSphere品牌下有了更加健硕的产品线。而这种健硕的产品线在很长时间里,都可以保证不论Java的走向如何,WebSphere在很长时间里都会富有竞争力。
网友评论