小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

幾種流行Webservice框架性能對(duì)比

 liang1234_ 2018-09-06

開發(fā)webservice應(yīng)用程序中離不開框架的支持,當(dāng)open-open網(wǎng)站列舉的就有很多種,這對(duì)于開發(fā)者如何選擇帶來一定的疑惑。性能Webservice的關(guān)鍵要素,不同的框架性能上存在較大差異,而當(dāng)前在官方網(wǎng)站、網(wǎng)絡(luò)資料中可以方便的找到各自框架的介紹,但是很少有針對(duì)不同框架性能測(cè)試數(shù)據(jù)。本文選擇了比較流行幾個(gè)框架:

Apache Axis1、Apache Axis2、Codehaus XFire、Apache CXF、Apache Wink、Jboss  RESTEasy、sun JAX-WS(最簡(jiǎn)單、方便)、阿里巴巴  Dubbo(除外)等,采用Java作為測(cè)試用例,通過本機(jī)和遠(yuǎn)程兩種進(jìn)行測(cè)試方式,對(duì)這幾種框架進(jìn)行了性能測(cè)試,并對(duì)測(cè)試結(jié)果分析和性能比較,最后并對(duì)性能優(yōu)異的框架進(jìn)行了推薦。

目前三種主流的web服務(wù)實(shí)現(xiàn)方法: 

REST(新型):表象化狀態(tài)轉(zhuǎn)變 (軟件架構(gòu)風(fēng)格)RESTEasy、Wink、CXF、Axis2…….

SOAP(比較成熟):簡(jiǎn)單對(duì)象訪問協(xié)議  Xfire、Axis2、CXF、Axis1

XML-RPC(淘汰):遠(yuǎn)程過程調(diào)用協(xié)議(慢慢被soap 所取代)

REST 簡(jiǎn)單易用,效率高,貌似未來有很大的發(fā)展空間,也有宣稱rest性能個(gè)方便比soap強(qiáng)大的,已經(jīng)有很多框架宣稱對(duì)rest進(jìn)行支持比如spring 3.0、struts…….. (百度觀點(diǎn))

SOAP 成熟度較高,安全性較好

關(guān)鍵詞:Axis1、Axis2、XFire、CXF、Spring、SOAP、StAX、WSDL

2      框架介紹

2.1      Apache Axis1

Axis本質(zhì)上就是一個(gè)SOAP引擎(Apache Axis is an implementation of the SOAP),提供創(chuàng)建服務(wù)器端、客戶端和網(wǎng)關(guān)SOAP操作的基本框架。但Axis并不完全是一個(gè)SOAP引擎,它還包括:

l  是一個(gè)獨(dú)立的SOAP服務(wù)器。

l  是一個(gè)嵌入Servlet引擎(例如Tomcat)的服務(wù)器。

l  支持WSDL。

l  提供轉(zhuǎn)化WSDL為Java類的工具。

l  提供例子程序。

l  提供TCP/IP數(shù)據(jù)包監(jiān)視工具。

2.2      Apache Axis2

Apache Axis2相比Apache Axis1更加有效、更加模塊化、更加面向xml,支持容易插件模塊擴(kuò)展新功能和特性,例如安全和可靠。Apache Axis2是基于Apache AXIOM,它是一個(gè)高性能、pull-based XML對(duì)象模型。Apache Axis2的關(guān)鍵特性:

l  解析xml更快。采用自己的對(duì)象模型和StAX (Streaming API for XML)。

l  更低的內(nèi)存占用。

l  支持熱部署。新服務(wù)加入到系統(tǒng),無需重啟服務(wù)。

l  支持異步webservice、

l  MEP支持,靈活支持在WSDL 2.0定義的Message Exchange Patterns (MEPs)

l  更加靈活。引擎給開發(fā)人員提供了充足的自由度可擴(kuò)展客戶頭信息處理、系統(tǒng)管理、

l  更加穩(wěn)定性。

l  傳輸框架不依賴于具體協(xié)議。為集成和傳輸協(xié)議(SMTP, FTP, message-oriented middleware, etc)有一個(gè)簡(jiǎn)單和抽象,引擎核心是完全獨(dú)立于具體的傳輸協(xié)議。

l  支持WSDL。支持WSDL1.1、WSDL2.0。

l  方便集成其他組件(Add-ons)。幾個(gè)web services已經(jīng)被集成,包括:WSS4J for security (Apache Rampart), Sandesha for reliable messaging, Kandula which is an encapsulation of WS-Coordination, WS-AtomicTransaction and WS-BusinessActivity.

l  良好的擴(kuò)展性。

2.3      Codehaus  XFire

XFire核心是一個(gè)輕量的基于STAX消息處理模型,用來與SOAP消息交互,它支持不同類型的綁定機(jī)制、容器和傳輸協(xié)議。

支持webservice標(biāo)準(zhǔn)- SOAP, WSDL, WS-I Basic Profile, WS-Addressing, WS-Security, etc.

l  高性能SOAP STACK

l  可插拔綁定POJOs, XMLBeans, JAXB 1.1, JAXB 2.0, and Castor support

l  通過Java1.5 和1.4(Commons attributes JSR 181 syntax)使用JSR 181 API配置服務(wù)

l  支持多中傳輸協(xié)議- HTTP, JMS, XMPP, In-JVM, etc.

l  可嵌入的和直觀的API

l  支持Spring, Pico, Plexus, and Loom

l  支持JBI

l  客戶端和服務(wù)端stub代碼生成

l  支持JAX-WS early access

2.4      Apache CXF

Apache CXF是一個(gè)開源服務(wù)框架。Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,現(xiàn)在已經(jīng)正式更名為 Apache CXF 了,以下簡(jiǎn)稱為 CXF。CXF 繼承了Celtix和XFire兩大開源項(xiàng)目的精華,比如:JAX-WS and JAX-RS,主要特性包括:

l  支持Web services標(biāo)準(zhǔn)。包括:SOAP、the WSI Basic Profile、WSDL、WS-Addressing、WS-Policy、WS-ReliableMessaging、WS-Security、WS-SecureConversation和WS-SecurityPolicy.

l  支持不同類型前端開發(fā)模型。CXF實(shí)現(xiàn)了JAX-WS APIs,支持JAX-RS開發(fā)。

l  容易使用。CXF設(shè)計(jì)的簡(jiǎn)潔和直觀,具有簡(jiǎn)潔APIs迅速的構(gòu)建基于代碼的服務(wù),Maven插件使得工具集成更加容易、JAX-WS API支持、Spring 2.x XML使得配置更加容易。

l  支持二進(jìn)制和遺留協(xié)議。CXF被設(shè)計(jì)為可插拔的架構(gòu),在不同的傳輸協(xié)議結(jié)合下,不僅支持XML,也支持非XML類型綁定,例如:JSON和CORBA。

2.5 RESTEasy(百度觀點(diǎn)較好)

 

RESTEasy是JBoss的一個(gè)開源項(xiàng)目,提供各種框架幫助你構(gòu)建RESTful Web Services和RESTful Java應(yīng)用程序。它是JAX-RS規(guī)范的一個(gè)完整實(shí)現(xiàn)并通過JCP認(rèn)證。作為一個(gè)JBOSS的項(xiàng)目,它當(dāng)然能和JBOSS應(yīng)用服務(wù)器很好地集成在一起。但是,它也能在任何運(yùn)行JDK5或以上版本的Servlet容器中運(yùn)行。RESTEasy還提供一個(gè)RESTEasy JAX-RS客戶端調(diào)用框架。能夠很方便與EJB、Seam、Guice、Spring和Spring MVC集成使用。支持在客戶端與服務(wù)器端自動(dòng)實(shí)現(xiàn)GZIP解壓縮。 (資料少無法比較)

 

有較專業(yè)的人士對(duì)CXF、Restlet、RESTEasy、Jersey框架測(cè)試數(shù)據(jù)】,他說從性能上看RESTEasy是最好的,Jersey其次(但Jersey連可查閱的英文文檔都比較少故個(gè)人不推薦使用),cxf和Restlet最差,

 

2.6  Dubbo (個(gè)人觀點(diǎn)----無理由)

Dubbo是阿里巴巴公司開源的一個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的 RPC 實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和 Spring框架無縫集成。(資料少無法比較)

2.7 java6JAX-WS

JAX-WS2.0 (JSR 224)是Sun新的web services協(xié)議棧

JAVA中有三種WebService規(guī)范,分別是JAX-WS(JAX-RPC)、JAX-RS、JAXM&SAAJ。

JAX-WS(Java API For XML-WebService),JDK1.6 自帶的版本為JAX-WS2.1,其底層支持為JAXB。早期的JAVA Web服務(wù)規(guī)范JAX-RPC(Java API ForXML-Remote Procedure Call)目前已經(jīng)被JAX-WS 規(guī)范取代,JAX-WS 是JAX-RPC 的演進(jìn)版本,但JAX-WS 并不完全向后兼容JAX-RPC。()

 

2.8  Apache Wink

 

REST(Representational State Transfer)  based Web Service【http://baike.soso.com/v812054.htm】是相對(duì)于傳統(tǒng)的Web Service(SOAP+WSDL+UDDI)而提出的。傳統(tǒng)的Web Service可以很好的解決異構(gòu)系統(tǒng)之間的通信問題,但是需要首先定義好XML格式的合同(WSDL),client和server都必須嚴(yán)格遵守協(xié)議,不容易升級(jí)以及集群伸縮。REST Web Service不需要事先定義格式,傳輸?shù)膬?nèi)容也可以依據(jù)不同的client變化(json,xml,html等),最重要的是使用源URL來唯一定位資源,對(duì)資源的增刪改查映射為HTTP的四個(gè)方法,無狀態(tài)傳輸,具有非常好的伸縮性。

 

Apache Wink就是一個(gè)純Java的REST框架。它完整的實(shí)現(xiàn)了JSR 311并擴(kuò)展了部分功能,此外還提供了良好的擴(kuò)展性,難能可貴的是還可以與流行的Java框架Spring無縫集成。目前該項(xiàng)目還在開發(fā)中。所謂框架無非就是定義好格式,提供一些工具和鉤子,讓開發(fā)人員可以專注于業(yè)務(wù)邏輯的開發(fā)。

 

 

 

3      測(cè)試準(zhǔn)備

表格1測(cè)試基本元素

測(cè)試條件

描述

主機(jī)環(huán)境

A測(cè)試機(jī):CPU:1.60GHz;內(nèi)存:1.37G

B測(cè)試機(jī):CPU:1.83GHz;內(nèi)存:1G

Web服務(wù)
框架

axis1 1.3

axis2 1.2

xfire 1.2.6

應(yīng)用環(huán)境

jdk 1.4、spring 2.x

客戶端代碼

public void testgetVersion() throws java.lang.Exception {
  String url = "http://localhost:8081/boss/services/Calculate";
  // 客戶端初時(shí)化時(shí)間
  long startTime = System.currentTimeMillis();
  // 客戶端stub代碼分別是axis1/axis2/xfire/cxf框架 wsdl2java生成
CalculateCalculateHttpportStub stub = new CalculateCalculateHttpportStub(url);
  long endTime = System.currentTimeMillis();
System.out.println("client init time is: " + (endTime - startTime));

  // 連續(xù)調(diào)用10次
  for (int i = 0; i < 10; i++) {
   long startTime1 = System.currentTimeMillis();
   String ret = stub.getVersion().get_return();
   long endTime1 = System.currentTimeMillis();

System.out.println("[" + i + "] elapsed time is: " + (endTime1 - startTime1) + " ms");
System.out.println("stub.getVersion() is: " + ret);
  }
 }

服務(wù)端代碼

public String getVersion() 
注:接口無任何業(yè)務(wù)邏輯,只返回一個(gè)字符串:"Hello";

測(cè)試方法

本機(jī)接口測(cè)試,客戶端和服務(wù)端都在A測(cè)試機(jī)上進(jìn)行;

遠(yuǎn)程接口測(cè)試,A測(cè)試機(jī)作為客戶端,B測(cè)試機(jī)作為服務(wù)器。本次測(cè)試是在局域網(wǎng)內(nèi)完成。

結(jié)果精度

數(shù)字精確到小數(shù)點(diǎn)后兩位

名詞解釋

服務(wù)器端:部署到服務(wù)器的程序。

客戶端:發(fā)起請(qǐng)求調(diào)用服務(wù)器上webservcie的程序。

客戶端初時(shí)化時(shí)間:發(fā)起接口調(diào)用時(shí),初始化客戶端java對(duì)象所需時(shí)間。
例如:CalculateCalculateHttpportStub stub = new CalculateCalculateHttpportStub(url); // 由框架 wsdl2java生成客戶端stub

 

 

表格2在端對(duì)端性能上,一個(gè)客戶端驅(qū)動(dòng)程序使用了一個(gè)胖客戶端Web服務(wù)堆棧來發(fā)送和接受SOAP請(qǐng)求

Webservice服務(wù)端

 

Webservice客戶端

Webservice stack

 

SOAP over HTTP

4      性能測(cè)試

4.1      測(cè)試方法

本次假定在相同網(wǎng)絡(luò)、主機(jī)環(huán)境條件下進(jìn)行測(cè)試,因此性能的差別主要是由不同框架實(shí)現(xiàn)機(jī)制的所決定。

l  采用兩種方式測(cè)試:本機(jī)測(cè)試、遠(yuǎn)程測(cè)試。

l  服務(wù)器端分別采用:axis1、axis2、xfire、CXF,對(duì)于選定的服務(wù)器端,用不同框架對(duì)應(yīng)的工具包wsdl生成客戶端stub代碼進(jìn)行測(cè)試。

l  服務(wù)端接口內(nèi)部沒有復(fù)雜業(yè)務(wù)邏輯,客戶端調(diào)用時(shí),僅僅返回一個(gè)字符串。

l  每次運(yùn)行,采用java循環(huán)方式調(diào)用10次服務(wù)端接口,并記錄下從發(fā)起到返回結(jié)果的時(shí)間。

4.2      測(cè)試結(jié)果

限于篇幅,本文僅提供了:以CXF框架為服務(wù)端的詳細(xì)測(cè)試結(jié)果,及其各個(gè)框架的綜合后測(cè)試結(jié)果。

 

表格3以CXF作為服務(wù)端測(cè)試詳細(xì)結(jié)果

本機(jī)測(cè)試結(jié)果(單位:ms)

服務(wù)器端

cxf

客戶端

cxf

axis1

客戶端初始化

第1組

第2組

第3組

第4組

第5組

第1組

第2組

第3組

第4組

第5組

2547

2594

2563

2578

2563

2569

422

422

407

406

421

415.6

連續(xù)10次調(diào)用接口測(cè)試

第1組

第2組

第3組

第4組

第5組

第1組

第2組

第3組

第4組

第5組

1

297

281

281

282

266

281.4

234

219

219

234

219

225

2

0

0

0

15

15

0

16

0

0

16

3

0

16

16

0

0

16

15

16

16

0

4

0

0

0

0

0

0

0

0

0

15

5

16

0

0

0

0

15

16

15

0

0

6

0

15

15

0

16

0

0

0

16

0

7

0

0

0

0

0

16

16

16

0

16

8

15

0

0

0

0

0

0

0

15

0

9

0

0

0

0

15

16

15

16

0

16

10

0

16

16

15

0

0

0

0

16

0

10次平均值

32.8

32.8

32.8

31.2

31.2

32.16

29.7

29.7

28.2

29.7

28.2

29.61

后9次平均值

3.444

5.222

5.222

3.333

5.111

4.467

7

8.667

7

7

7

7.333

遠(yuǎn)程測(cè)試結(jié)果(單位:ms)

服務(wù)器端

cxf

客戶端

cxf

axis1

客戶端初始化

第1組

第2組

第3組

第4組

第5組

第1組

第2組

第3組

第4組

第5組

2703

2547

2578

2563

2531

2584

406

406

422

407

422

412.6

連續(xù)10次調(diào)用接口測(cè)試

第1組

第2組

第3組

第4組

第5組

第1組

第2組

第3組

第4組

第5組

1

344

281

281

281

297

296.8

219

234

235

234

687

321.8

2

0

0

16

16

16

16

0

15

16

16

3

0

16

0

0

0

62

16

0

0

0

4

16

0

16

15

0

47

16

16

15

16

5

0

15

0

0

15

16

15

15

16

0

6

0

0

15

16

0

31

0

0

0

15

7

0

16

0

0

16

16

16

16

15

0

8

15

0

0

0

0

31

0

16

16

16

9

0

16

16

15

0

31

15

0

0

0

10

0

0

0

0

15

31

16

15

16

15

10次平均值

37.5

34.4

34.4

34.3

35.9

35.3

50

32.8

32.8

32.8

76.5

43.37

后9次平均值

3.444

7

7

6.889

6.889

6.244

31.22

10.44

10.33

10.44

8.667

14.22

 

 

表格4不同框架本機(jī)和遠(yuǎn)程測(cè)試結(jié)果

本機(jī)測(cè)試結(jié)果(單位:ms)

服務(wù)器端

axis2

axis1

xfire

cxf

客戶端

axis2

axis1

axis1

axis2

xfire+spring

axis1

cxf

axis1

客戶端初始化

656.4

1138

1325

762.2

0

1340.6

2569

451.6

10次中的初次調(diào)用值

546.4

568.8

484.2

434.8

1022

987.4

281.4

225

10次平均值

62.48

66.7

73.44

57.22

119.2

120.9

32.16

29.61

后9次平均值

8.71

11.84

27.8

15.27

18.84

25

4.467

7.333

遠(yuǎn)程測(cè)試結(jié)果(單位:ms)

客戶端初始化

672.8

1040

axis1

772

0

2994

2584

421.6

10次中的初次調(diào)用值

645.8

606

684.4

427.8

1010

1190

296.8

321.8

10次平均值

71.58

70.36

97.82

60.28

117.2

139.1

35.3

43.37

后9次平均值

7.78

10.58

32.64

19.44

18.04

27.13

6.244

14.22

 

4.3      結(jié)果分析

從數(shù)據(jù)可以看出,有下面幾個(gè)特點(diǎn):

l  客戶端初次調(diào)用,初始化客戶端stub對(duì)象時(shí),大約在:600ms~2500ms。由于需要建立網(wǎng)絡(luò)連接,初始化java相關(guān)對(duì)象,因此耗時(shí)較長(zhǎng)。

l  客戶端初始化stub后,接口初次調(diào)用,大約在:400ms~1000ms。相比后續(xù)的接口調(diào)用時(shí)間最長(zhǎng)。

l  在第一次調(diào)用完畢后,隨后的調(diào)用中,性能都明顯提升。大約在:7ms~30ms。

l  本機(jī)測(cè)試與遠(yuǎn)程測(cè)試,性能上差距很微小,在高速的局域網(wǎng)內(nèi),性能差別幾乎可以忽略。

l  在相同的服務(wù)端下,采用不同框架生成的stub代碼調(diào)用時(shí),時(shí)間上也存在一定的差異。

 

實(shí)際應(yīng)用中,接口的調(diào)用都是在網(wǎng)絡(luò)的不同的機(jī)器之間進(jìn)行,本文也重點(diǎn)關(guān)注遠(yuǎn)程調(diào)用測(cè)試結(jié)果,在測(cè)試結(jié)果比較上,可以看出:

l  最優(yōu)組合是最差組合性能的5倍多。

n  最優(yōu)的組合為:cxf客戶端+ cxf服務(wù)端,6ms左右。

n  最差的組合為:axis1客戶端+ axis1服務(wù)端,32ms左右。

l  CXF作為服務(wù)端,對(duì)于不同的客戶端調(diào)用時(shí),性能最佳。

從以上的結(jié)果進(jìn)行分析得出用Axis2與CXF作為服務(wù)器端效率是比兩外兩者(Axis1與xfire)要高,所以下面就對(duì)CXF與Axis2進(jìn)行對(duì)比

5      選擇框架的方法

1. 選擇能夠?qū)ξ覀兊拈_發(fā)過程提供更多、更好幫助的Web開發(fā)框架

(CXF與Axis2都是apache的開源框架,也是目前比較流行的webservice框架,)(百度加個(gè)人觀點(diǎn))

2. 開發(fā)框架的學(xué)習(xí)一定要簡(jiǎn)單,上手一定要快,沒有什么比使用能得到更深的體會(huì)。那些動(dòng)不動(dòng)就需要半個(gè)月或者一個(gè)月學(xué)習(xí)周期的框架,實(shí)在是有些恐怖。(cxf學(xué)習(xí)成本比axis2低)【Axis2允許自己作為獨(dú)立的應(yīng)用來發(fā)布Web Service,并提供了大量的功能和一個(gè)很好的模型,這個(gè)模型可以通過它本身的架構(gòu)(modular architecture)不斷添加新的功能。有些開發(fā)人員認(rèn)為這種方式對(duì)于他們的需求太過于繁瑣。這些開發(fā)人員會(huì)更喜歡CXF。 】【CXF更注重開發(fā)人員的工效(ergonomics)和嵌入能力(embeddability)。大多數(shù)配置都可以API來完成,替代了比較繁瑣的XML配置文件, Spring的集成性經(jīng)常的被提及,CXF支持Spring2.0和CXF's API和Spring的配置文件可以非常好的對(duì)應(yīng)。CXF強(qiáng)調(diào)代碼優(yōu)先的設(shè)計(jì)方式(code-first design),使用了簡(jiǎn)單的API使得從現(xiàn)有的應(yīng)用開發(fā)服務(wù)變得方便。】{百度觀點(diǎn)}

 

3. 一定要能得到很好的技術(shù)支持,在應(yīng)用的過程中,或多或少都會(huì)出現(xiàn)這樣或者那樣的問題,如果不能很快很好的解決,會(huì)對(duì)整個(gè)項(xiàng)目開發(fā)帶來影響。一定要考慮綜合成本,其實(shí)這是目前應(yīng)用開源軟件最大的問題,碰到問題除了死肯文檔就是查閱源代碼,或者是網(wǎng)上搜尋解決的辦法,通常一個(gè)問題就會(huì)導(dǎo)致1-2天的開發(fā)停頓,嚴(yán)重的甚至需要一個(gè)星期或者更長(zhǎng),一個(gè)項(xiàng)目有上這么幾次,項(xiàng)目整體的開發(fā)成本嗖嗖的就上去了。(所以個(gè)人感覺應(yīng)該選擇比較流行的框架,起碼碰到問題還能上網(wǎng)搜索)

4. 開發(fā)框架結(jié)合其他技術(shù)的能力一定要強(qiáng)(個(gè)人感覺和下同)

5. 開發(fā)框架的擴(kuò)展能力一定要強(qiáng)。在好的框架都有力所不及的地方,這就要求能很容易的擴(kuò)展開發(fā)框架的功能,以滿足新的業(yè)務(wù)需要。同時(shí)要注意擴(kuò)展的簡(jiǎn)單性,如果擴(kuò)展框架的功能代價(jià)非常大,還不如不用呢。(axis2與cxf 都支持很多優(yōu)秀的框架(上已提到),但axis2擴(kuò)展性比cxf要好,axis2不僅支持java對(duì)c/C++提供支持)(個(gè)人觀點(diǎn))【RESTEasy也能支持許多比較優(yōu)秀的框架】(百度加個(gè)人觀點(diǎn))

6. 開發(fā)框架最好能提供可視化的開發(fā)和配置,可視化開發(fā)對(duì)開發(fā)效率的提高,已經(jīng)得到業(yè)界公認(rèn)。(暫時(shí)無法提供觀點(diǎn))

7. 開發(fā)框架的設(shè)計(jì)結(jié)構(gòu)一定要合理,應(yīng)用程序會(huì)基于這個(gè)框架,框架設(shè)計(jì)的不合理會(huì)大大影響到整個(gè)應(yīng)用的可擴(kuò)展性。(暫時(shí)無法提供觀點(diǎn))

8. 開發(fā)框架一定要是運(yùn)行穩(wěn)定的,運(yùn)行效率高的??蚣艿姆€(wěn)定性和運(yùn)行效率直接影響到整個(gè)系統(tǒng)的穩(wěn)定性和效率。(從上面的測(cè)試來看,cxf的效率要高于axis2,不知道在大并發(fā)量的時(shí)候系統(tǒng)的穩(wěn)定性和安全性)

9. 開發(fā)框架一定要能很好的結(jié)合目前公司的積累。在多年的開發(fā)中已有了很多積累,不能因?yàn)槭褂瞄_發(fā)框架就不能再使用了,那未免有些得不償失。(暫時(shí)無法提供觀點(diǎn))

10. 選擇開發(fā)框架另外要注意的一點(diǎn)就是:任何開發(fā)框架都不可能是十全十美的,也不可能是適應(yīng)所有的應(yīng)用場(chǎng)景的,也就是說任何開發(fā)框架都有它適用的范圍。所以選擇的時(shí)候要注意判斷應(yīng)用的場(chǎng)景和開發(fā)框架的適用性。(暫時(shí)無法提供觀點(diǎn))

 

 

6 結(jié)束語

Apache CXF是CodehausXFire的第二代產(chǎn)品,目前在不同框架中性能最佳,應(yīng)該是開發(fā)者不錯(cuò)的選擇,這與它本身的架構(gòu)設(shè)計(jì)不無關(guān)系。相比其他框架,CXF具有幾個(gè)突出的特性:支持JAX-WS、Spring集成、Aegi數(shù)據(jù)綁定、支持RESTful services、支持WS-*、Apache協(xié)議、代碼實(shí)現(xiàn)簡(jiǎn)潔。

Apache Axis2是Apache Axis1的第二代產(chǎn)品,架構(gòu)上也非常不錯(cuò),關(guān)鍵特性:支持多語言(C/C++)、支持各種規(guī)范、可插拔模塊化設(shè)計(jì)、支持熱部署等。與CXF相比性能也非常優(yōu)異。

RESTEasy也許也是個(gè)不錯(cuò)的框架?。▊€(gè)人觀點(diǎn))

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多