分享
 
 
 

透视应用服务器

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

由于Internet的发展,企业信息系统所扮演的角色发生了根本变化。在Internet 上开放企业系统,可以将其中的信息提供给直接消费者和贸易伙伴。这是过去无法想象的、崭新的环境。这个变革来自于应用服务器,这个环境的继续发展有赖于应用服务器的进展。

沿

应用服务器(Application Server)是适应业务需求、将高级应用作为Web功能的产品。但是,现在市场上销售的应用服务器产品,从内容和功能上相差甚远。各路厂商迎合市场需求,结合自家特色技术,推出了各色应用服务器产品,虽然都冠以“应用服务器”,却难识庐山真面目。为了准确认识、正确选择应用服务器,在此我们透过其沿革,分析探讨各色应用服务器的长短优劣。

第一代:基于CGI

基于CGI(Common Gateway Interface)的应用服务器以微软的IIS(Internet Information Server)为代表。IIS原本是用来发布静态HTML的Web服务器产品,后来通过CGI、ISAPI(Internet Server Application Programming Interface)等应用接口和服务器端的脚本等扩充技术,演化成应用服务器。现在,Internet上的中小规模Web应用,基本上都是这种形态。特别是服务器端脚本,只要将脚本语言嵌入HTML中,就能很简单地实现Web应用。所以如果系统功能单纯,初学者也能很容易地构筑系统,这是基于CGI的应用服务器的优点。可惜用这种应用服务器,难以构筑嵌入复杂业务逻辑的系统,另外在应对来自多个用户的处理要求的可伸缩性方面也存在问题。

第二代:基于Java

近年来出现的应用服务器多数是这种类型的产品,在服务器端运行Java应用,在客户端经由Web服务器来利用其功能。这种情况下,有2种方式:一是客户端也是Java Applet;另一种客户端是HTML页面。

之所以要特意选择用Java来构筑服务器端的应用功能,最主要的理由是,因为近年来在应用服务器上构筑业务逻辑的需求日益高涨。90年代,是主机系统的统治地位开始动摇、2层C/S系统崛起、系统结构发生巨大变革的时代。特别是C/S系统构筑技术,可说是日新月异,就连主力开发语言,也从C到4GL,而后变成VB,象走马灯一样换代升级。结果,一时间倍受推崇的C/S系统,很多情况下在企业内已经成了包袱。因

此,要凡独自构筑关键业务系统的场合,以基于Java的Web应用来构筑的逐日增加。采用Java的服务器端应用,不管是NT、UNIX还是主机系统都能运行,而且还能利用Internet、中间件和分布对象等新功能。另外,通过将Java应用配置在多个节点,可实现负载平衡,这样就能构筑可与主机系统相匹敌的大型系统。所以,这种系统是作为先进的金融系统构筑手段,被越来越广泛的采用,很有生命力。

但是,在至今的基于Java的Web应用中,对于数据库和中间件的访问,是用直接使用API的专有方式实现的,在复用性和应对未来技术变革的能力上,仍有尚待解决的课题。

第三代:适应Java组件技术

适应Java组件的应用服务器技术,可能对系统开发产生划时代的影响。许多应用服务器产品,都在开足马力加速朝第3代进军。这里所说的Java组件,是以EJB(Enterprise JavaBeans)为中心的服务器端的软件组件技术。EJB是目前以Java语言为前提的组件技术规范,由OMG(Object Management Group)制定的CORBA组件,就是参考EJB的多种语言版的组件模型。在不久的将来,这些组件模型可望具有互操作 性和统一的技术规范。

选择应用服务器应从对应用服务器的要求及实现这些要求的“相应技术”着手,来说明应用服务器的选择要领。

开发效率

在飞速发展的电子商务市场竞争中,要求用Web系统在短期内能构筑先进的商业模式,开放适应新商业模式的Web应用功能,以博得广大用户的支持。这点至关重要。要想在竞争中立于不败之地,必须“以快取胜”,必须选择开发效率高的Web应用产品。

用Java构筑应用服务器已经成为潮流。因此最重要的是,要有用Java能够进行高效开发的综合环境(Integrate Development Environment)。IBM和Inprise的Java开发环境,捆绑在自家的软件包中;而BEA和Oracle则利用其它公司的Java开发软件包作为Java开发环境。目前存在的问题是,在这些环境中应用服务器与Java开发环境的集成性还很不完善。通常在Java开发环境中,能提供详细测试用的查错功能,如分步执行、断点设定等;但是能对应用服务器实施综合查错的工具很少。因此,在客户端的本地环境下完成详细查错之后,要将构筑的模块移到应用服务器,实施执行水平的测试。这样的测试环境,对于习惯于开放系统中的查错环境的开发者来说,不能说是完善的。人们渴望有在应用服务器中能进行详细查错的、综合性分散型查错工具。

在开发应用服务器时,客户端用户接口构筑的生产性也是问题。客户端界面的制作方法,有用Applet的,还有使用Servlet或HTML制作的。其中,用Applet制作界面时,在Java开发环境中能提供编辑、制作界面的RAD(Rapid Application Development,快速应用开发)功能,所以可以高效地进行开发。但在实际应用服务器开发中,用HTML制作界面的占多数。这种情况下,在应用服务器开发环境下,能够直接编辑HTML界面接口的产品较少。为了解决这个问题,由JSP(JavaServerPage, 利用Java动态生成Web页的服务器端内容脚本)来记述基于HTML的界面图象的方法将逐渐成为标准,可望能提供使用JSP的RAD开发功能。

复用性

要再利用原来的业务逻辑,同时还要添加新的组件,才能提升系统水平和业务处理能力。在考虑技术实现时,既要压缩开发成本,又要构筑能迅速应变的系统,这对于提高企业的竞争能力至关重要。正由于此,人们渴望系统既能复用在应用服务器中构筑的业务逻辑,又要能充分适应、跟踪新的业务需求。

在Web应用开发中,充分、有效、活用EJB,是提高复用性的技术关键。所谓EJB,就是以将服务器端的业务逻辑部件化为目标的Java组件技术,包括EJB服务器(EJB执行环境)以及EJB组件(组件管理环境)。EJB包括Entity Beans和Session Beans。Entity Beans是持久性对象,就是将数据库的数据可以作为对象部件来使用。若用Entity Beans,就可以读取数据库上的数据、生成对象部件,并能将更新结果反映到数据库上。这样的Entity Beans,目前都是由应用服务器端来提供的,但据说Oracle等数据库厂商,计划要让Entity Beans在数据库端运行。Session Beans是非持久性对象,临时生成的对象部件,用来将操作Entity Beans的业务逻辑部件化。譬如,在不变更数据结构只修改业务规则的时候,只变更Session Beans即可。另外,Session Beans也被用在与MQ和CICS这类中间件连接的场合。就是说,可以将经由中间件、能访问主机系统等历史遗留业务的功能,进行部件化。这样,通过充分有效的活用EJB,就可以将业务逻辑和对历史遗留系统的访问功能部件化,以实现复用。

可伸缩性和可靠性

过去的企业系统基本上是以本企业的用户为主,用户数也不是太多。但用应用服务器构筑的系统,不仅是企业内部,通过Internet,可以对全世界的顾客和商业伙伴开放。因此,在可伸缩性和可靠性方面,对于应用服务器就提出了更高的要求。而且,由Internet所形成的电子商务市场在急速增长,交易额和用户数也直线增长,而且这些用户是一天24小时不停的访问。因此,如果应用服务器不能应对日益增大的处理量,就会贻误商机。

负载平衡

要有把处理适当地分配给多个服务器,以求获得负荷分散的功能。由于有负荷均衡功能,所以可以实现系统的大型化。

分散事务处理

在用多个服务器处理关键业务时,数据更新中的一致性是个问题。为了解决这个问题,要有相应的分散事务控制功能。

DB Session Pulling(会话引入)

在应用服务器中,多个程序即使是同时访问数据库,也必须确保事先定好的会话个数,以便能更有效的利用数据库。

故障切换

为了提高系统的正常运行率,要准备待机(热备份)服务器,以便在发生故障时,可以将处理转移到待机系统。

按照选择应用服务器的3个要素,给主要的应用服务器产品一个大致的定位。

生产性和复用性

第一代产品的代表是Microsoft IIS,最近可以用Interdev、ASP(Active Server Pages)和MTS(Microsoft Transaction Server)进行开发,但与第二代、第三代产品相比,在内容上仍屈居下风。特别是要用IIS来构筑具有可伸缩性的系统时,需要使用C++编码,生产性和复用性明显低下。相反,SilverStream,却有应用服务器能用RAD制作界面和功能的特点,尤其是在新开发时生产性特别高,所以非常适合想在短期内构筑系统、开始营业的场合。从3.0版本以后,SilverStream也适应EJB。

其它的第三代产品,生产性虽然不如SilverStream高,但有效利用EJB组件技术的复用性可望得到提升。但必须要注意的是,EJB的设计难,一旦有误往往会造成系统性能很低。

可伸缩性和可靠性

第一代产品的可伸缩性和可靠性都较差。相反,SilverStream尽管是RAD开发环境,但要达到中等规模、中等可靠性水平,技术上还是充分的。今后,SilverStream计划要适应大规模系统,与其它第三代产品的差距会逐渐缩小。不过,第三代产品,不管哪种结构都有满足大规模、高可靠性系统所要求的技术条件。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有