分享
 
 
 

建置XML构架的WebServices之比较

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

I. 序

在本文中,我们将深入的比较两种可用来建置商业XML Web Services的平台,分别是Sun Microsystems 所提供的Java 2 Enterprise Edition (J2EE)以及Microsoft所提供的 .NET平台。

虽然J2EE代表的是一个公开的标准,而 .NET是单独一家厂商的标准 (虽然.NET试图取得ECMA的标准,但是却只有在最基础的部分被ECMA采纳变成标准,请参考http://msdn.microsoft.com/net/ecma/,在企业的应用上却没有标准化),反观Java平台,确是所有除了Microsoft以外的各大厂商都遵循着JCP的标准制定所有规格 (请参考http://www.jcp.org ,您会发现所有的Java技术都是协调各大公司而来)。

尽管在标准化上Java遥遥领先,但我们仍然将只针对服务器端的Web Services架构做探讨。例如:我们的讨论将不涉及 JINI 或是Office XP,我们也不会讨论Java跨足Solaris、Linux、Mac OS X、以及Windows平台,而.NET只跨Windows 98/ME/2000/XP等Windows平台的事实。我们更不会讨论 "跨语言" 这个Java早已试图达成,Microsoft又拿来当成.NET的重大特点,却根本不是这回事的功能。(请参阅http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html,大家可以发现Java早就达到所谓跨语言的功能,Smalltalk、Eiffel、Lisp、Prolog、BASIC等语言都可以顺利转换成Java bytecode,不像.NET号称跨语言,却出现COBOL.NET这种怪物,原本的语言要削足适履来配合.NET,所以才产生VB.NET、COBOL.NET这一大串产品)。号称跨语言喊了半天,原来连自己的VB 6.0都跨不过去。在读完本文之后,您将会更加了解这两种架构的彼此优缺点,而且在制定贵公司下一代Web Services决策时将有更明确的考虑。

II. 前言

下一代的分布式运算时代已经来临了。在过去几年中,XML 被广泛的运用于计算机运算环境中,以达到在全球信息网上共享信息的远大目标。如今,它可以更进一步地提供运算能力上的分享。从技术的观点来看,Web Services的出现并不能算是分布式计算机运算的新革命。它可以结构化的呈现信息,甚至是程序内部的讯息,因而很自然地比XML应用程序更加引人注目。

III. 工业标准与企业标准

透过Web Services,任何应用程序可以在网络上顺利地整合在一起。Web Services的基本原理是利用标准的网络协议(例如:HTTP)来传送XML讯息。这是一种非常轻便的沟通机制,因此可以让任何程序语言、中间层组件或平台很轻易地整合进来。一般工业上或企业内部会接受成熟且广为厂商采用的业界标准,更尤其是已经受过市场考验行之有年的标准。有了Web Services,您就可以快速且低成本的整合两个企业、部门或甚至是两个程序。

要建置Web Services必须得采用业界通用的Web Services技术。现在让我们来看看Web Services究竟是什么。首先您必须先知道如何建置以及使用Web Services。其实Web Services是种很简单的XML接口,适用于商业、应用程序以及系统服务。说穿了也就是将既有的技术旧衣新穿而已。Web Services其实是一种新一代的分布式服务,在这之前,有CORBA、DCOM、COM+、RMI,都是用来实作分布式架构的技术,而且也被证明运作的非常顺利;而新一代的分布式服务,采用的是XML技术,如XML-RPC和SOAP就是最佳的例子,新一代的分布式技术可以用寄有的通讯协议做基础(如SMTP、FTP等),但是目前最受欢迎的方式仍然是将XML基植于HTTP这个广受欢迎,但是效能并非最佳的通讯协议上。即使如此,这些新一代的技术尚未通过时间的考验,或许他们有可能运作得很成功,也可能有些许的风险存在。

面对这么多的分布式技术,J2EE平台与.NET平台的支持程度如下表:

对旧有分布式技术的支持:

J2EE .NET

CORBA 支持 不支持

RMI/IIOP 不支持

COM+ 不支持 支持

对新一代Web Services的支持:

J2EE .NET

XML-RPC 支持 不支持

SOAP 支持 支持

从上述两个图表之中我们可以得知,对于姿态保守的公司而言,J2EE支持了较为广泛应用于现有企业系统的分布式运算服务,而.NET平台仍然只支持延伸自COM与DCOM的COM+,其技术前身MTS COM+比Enterprise JavaBeans技术早了三年,不消说,我们可以推断J2EE提供的分布式服务比.NET的技术领先三年。此外,目前企业内部使用之大型主机所使用的皆为CORBA技术,J2EE对旧有技术的支持当然是最佳的,因为COM+只能在Windows平台上运行。

如果是态度前卫的公司,使用J2EE者可以选用XML-RPC(http://java.sun.com/xml/jaxrpc/index.html)或是SOAP(http://java.sun.com/xml/jaxm/index.html)技术,Sun Microsystems更提供了 Java Web Service Developer Pack (http://java.sun.com/webservices/webservicespack.html) 供开发者开发Web Services。反观.NET技术,只提供对于SOAP的支持。在对于既有分布式技术支持不足的情况下,对新一代分布式技术的支持又无法提供弹性的选择,风险之大,是可以预估的。

就算新一代的Web Services非常稳定好了,他的稳定度常常会被底层操作系统的稳定度所影响,如果你选用.NET,就会被绑死在公认最不稳定的Windows平台上,更糟糕的是,.NET还只能在Microsoft官方的网页服务器上运作,相信之前使用IIS的朋友,在遭受过Nimda等不断出现的病毒恶梦之后,会不会对其安全性与稳定性产生质疑? 但是,如果您选用的是J2EE技术,那么在诸多遵循标准的厂商所提供的应用程序服务器中,您可以选择最符合您需要,成本最低,而且又认为最佳的平台。

您可以到http://www.soapware.org/directory/4/implementations查询既有的SOAP实作品,看看有多少是针对Java所设计的实作品。

总而言之,我们就平台的稳定性,服务器的稳定性,以及产品的多样性这三方面来考虑,J2EE彻底击败.NET技术。

下列的技术都是已为业界所采用,而且也是通往Web Services的最佳途径:

- 提供Web Services的人员使用自己的程序语言、组件与平台来开发、连接与布署Web Services。

- 提供Web Services的人员以WSDL (Web Services Description Language)定义Web Services。WSDL文件可以让其它人知道Web Services的功用。

- 提供Web Services的人员以UDDI (Universal Description, Discovery, and Integration6)将Web Services注册。 UDDI让程序开发人员可以布署Web

- 使用者透过UDDI登录来找寻Web Services。

- 使用者的程序会结合Web Services,并透过SOAP (Simple Object Access Protoco) 或XML-RPC来呼叫Web Services。XML-RPC或SOAP 在HTTP协议上提供一 份XML格式的讯息传递。这是所有Web Services共同的沟通协议。

请注意,上述的机制是建置Web Services并让它运作的一种途径。虽然有其它方法可以做到,但我们认为这些技术是最重要且将广为业界采用的一种。

由此可知,实际上我们尚未有一致的方式来建置Web Services,建构上仍然有许多的困难需要克服。以SOAP、ebXML以及服务串流的规格来说,众家厂商意见各异了。而且SOAP最常被宣传的: 与程序语言无关,与特定平台无关这两项特点,会在您尝试着使用Apache SOAP与Microsoft SOAP Toolkit产生的Web Services进行沟通时,彻底地粉碎(译注:这是因为xsi:type属性在实作上有分歧的关系)。除了是对于实作上细节的理解有差异之外,更重要的原因是因为有人刻意地破坏标准。

即使如此,对于Web Services来说,仍然有不少好消息:

- 很难得的,所有的厂商,包括Sun Microsystems与Microsoft等大厂,均同意SOAP、 WSDL以及UDDI 是有潜力的好产品,因此他们将在未来的产品中进

- 所有意见不一的厂商都团结在一起,共同为建立Web Services的标准并广植 Web Services的应用而努力。

IV. 使用J2EE 以及Microsoft.NET来开发Web Services

如果您想开发一个有用的网络服系统。所面临的挑战并非表面上所看如此简单。您的Web Services必须可靠、普及、不容易出错、有弹性而且必须让大家愿意接受。这些严格的要求并不亚于任何企业等级的商业应用程序。

J2EE 以及 .NET 是现有用来开发服务器端企业级应用程序的技术延伸。这些技术的早期版本并非专门用来开发Web Services用。如今Web Services已经成为趋势,于是两大阵营也随之调整各自平台的解决方案,因此您现在已经可以使用这些技术来开发Web Services了。J2EE 以及 .NET的共通愿景就是希望能达成开发Web Services的基础工程,例如:跨平台的XML沟通、负载平衡以及交易。与其自己重新撰写这些基础工程,倒不如在可提供这些服务的平台上撰写应用程序。

但是,当开发到一定规模的应用程序时,会产生一定的复杂度,这个时候就必须有开发工具的辅助,如果您选用了其中一种平台,那么您可以选用的工具如下表所示:

开发新一代Web Services的开发工具:

J2EE平台的工具有 :

• JBuilder (Borland)

• Forte for Java (Sun)

• WebLogic Workshop (BEA)

• JDeveloper (Oracle)

• VisualAge for Java (IBM)

• Visual Cafe (WebGain)

.NET平台

只有Visual Stdio.NET

从这里可以看出,您可以在您既有的企业解决方案提供厂商那边,取得最佳的工具和解决方案,而且从免费的基本版本到付费的专业版本都有,各人可以根据不同的需求来做最佳的选择,而不是只能寻求单一厂商所提供的工具和解决方案。

V. J2EE

Java 2 Platform, Enterprise Edition (J2EE) 被设计成专门用

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有