RESTful風格的WebService之所以當下如此流行,是由于其相對于SOAP風格的WebService更簡潔、更輕量級,REST風格的WebService傳輸的是JSON或極其簡潔的XML,因而其效率和性能都比較理想。 RESTful風格的WebService主張重用HTTP協議,面向資源編程(ROA)。
SOA不是某個產品,也不是某個技術,而是一種軟件設計架構和方法。SOA要求開發者從服務集成的角度來設計應用軟件,它將應用程序的不同功能組件定義為“服務”通過這些服務之間定義良好的接口和契約聯系起來,亦可以理解為組件模型。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行交互。為什么要用SOA信息孤島問題現在隨著網絡技術的發展,企業在信息化建設中產生了大量為滿足產品或服務需要的軟件系統,如:ERP、CRM、OA、SCM等一系列IT軟件系統。
1.Webservice的概念什么是WebService呢?從表面上看,WebService就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用編程的方法通過Web調用來實現某個功能的應用程序。從深層次上看,WebService是一種新的Web應用程序分支,它們是自包含、自描述、模塊化的應用,可以在網絡(通常為Web)中被描述、發布、查找以及通過Web來調用。
眾所周知,當多個消息消費者(MessageConsumer)同時監聽同一個消息隊列(Queue)的時候,JMS提供者會在它們之間提供一種負載均衡機制,從而達到可以同時處理多個消息的目的。圖一是一個簡單的示意圖,當消息生產者發送多個消息時,JMS提供者會把這些消息均勻的分發到不同的消息消費者。
4、 CXF的特性 有代碼生成工具:Java to WSDL;WSDL to Java;XSD to WSDL;WSDL to XML;WSDL to SOAP;WSDL to Service; 支持 JAX-WS、 JAX-WSA、JSR-181 和 SAAJ;支持 SOAP 1.1、1.2、WS-I BasicProfile、WS-Security、WS-Addressing、WS-RM 和 WS-Policy;支持 WSDL 1.1 、2.0;支持 MTOM;、JavaScript、通過 Yoko 支持 CORBA;通過 Tuscany 支持 SCA;通過 ServiceMix 支持 JBI 內置Jetty應用服務器
Axis的簡單準備 Axis的入門實例 Axis復雜對象類型的WebService Axis的輔助工具發布、調用WebService Axis WebService會話Session的管理 Axis用控制臺Dos命令發布WebService Axis跨多個WebService管理Session Axis用Spring的JavaBean發布WebService Axis異步調用WebService Axis 的Module模塊 Axis使用SoapMonitar監視WebService的請求和響應信息
SOAP是一種XML Application,SOAP簡單的理解,就是這樣的一個開放協議SOAP=RPC+HTTP+XML:采用HTTP作為底層通訊協議;RPC作為一致性的調用途徑,XML作為數據傳送的格式,允許服務提供者和服務客戶經過防火墻在INTERNET進行通訊交互
Axis安裝 1、環境 J2SE SDK 1.5 or 1.6: 我使用 1.6 Servlet Container: 我使用的Tomcat 6.0
SOA簡介SOA(Service-oriented architecture,面向服務架構)。1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是"現代應用開發領域最重要的課題",還預計到2008年,SOA將成為占有絕對優勢的軟件工程實踐方法,主流企業現在就應該在理解和應用SOA開發技能方面進行投資。更好支持商業流程SOA并不是一個新事物,IT組織已經成功建立并實施SOA應用軟件很多年了,BEA、IBM、等廠商看到了它的價值,紛紛跟進。SOA的目標在于讓IT變得更有彈性,以更快地響應業務單位的需求,實現實時企業(Real-TimeEnterprise,這是Gartner為SOA描述的愿景目標)。
SOA是一種架構模型,它可以根據需求通過網絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。服務層是SOA的基礎,可以直接被應用調用,從而有效控制系統中與軟件代理交互的人為依賴性。 SOA的關鍵是“服務”的概念,W3C將服務定義為:“服務提供者完成一組工作,為服務使用者交付所需的最終結果。最終結果通常會使使用者的狀態發生變化,但也可能使提供者的狀態改變,或者雙方都產生變化”。
基于CXF的webservice服務端接口的書寫1.1所需的包:服務端項目的cxf配置。
這篇文章是承接之前CXF整合Spring的這個項目示例的延伸,所以有很大一部分都是一樣的。關于發布CXF WebServer和Spring整合CXF這里就不再多加贅述了。比較常用的RESTful框架就有Jersey、Spring REST、CXF RESTful,這些都可以很好的整合Spring框架,發布也相當的簡單。且簡單、易用、易上手,文檔也比較豐富。
?Axis2是一套嶄新的WebService引擎,該版本是對Axis1.x重新設計的產物。Axis2不僅支持SOAP1.1和SOAP1.2,還集成了非常流行的RESTWebService,同時還支持Spring、JSON等技術。這些都將在后面的系列教程中講解。在本文中主要介紹了如何使用Axis2開發一個不需要任何配置文件的WebService,并在客戶端使用Java和C#調用這個WebService。
GlassFish下簡單Web服務開發一、開發環境和工具1、GlassFish(我用的是V2.1.1)2、Eclipse3.6.1(JavaEE版)。
創建start.bat,編輯其內容為:簡單實例創建thrift腳本文件:執行start.bat,thrift會根據腳本生成java代碼../thrift/gen-java/com/test/rpc/TestService.java;創建javaproject;創建package:com.test.rpc,將生成的TestService.java拷入;創建接口實現類TestImpl創建RPCserver啟動線程復雜對象實例與簡單實例基本相同,只是腳本不同,參數以對象方式傳遞,自動生成的java類多一些;創建thrift腳本文件:執行start.bat,thrift會根據腳本生成java代碼../thrift/gen-java/com/test/rpc/目錄下TestService.java、User.Java;創建javaproject;
這部分是協議層和用戶提供的服務實現之間的紐帶,定義了調用服務實現的接口框架,真正實現某種服務接口是通過上一章介紹的代碼生成工具生成的代碼。本章將介紹這個框架的基本原理,然后通過生成的一個實例來具體介紹怎樣完成一次完整的服務,這個可能涉及到下面章節的一些知識,對于這些知識不詳細分析其功能,只是介紹它在其中起什么作用。選擇的實例是Facebook內部用這個框架實現的一個分布式日志收集系統scribe。
Thrift之TProtocol類體系原理及源碼詳細解析之類繼承架構分析這部分相關的類主要實現與協議相關的內容,這里說的協議是指對數據傳輸格式封裝的協議,實現不同的協議來適合不同場景下的數據傳輸,因為在不同的場景下不同協議對于數據傳輸來說效率有很大的差別。
Thrift文件與編程語言無關,用于定義數據類型和服務接口,然后生成用來構建RPC客戶和服務器所需的全部代碼。
Thrift是Facebook的核心框架之一,使不同的開發語言開發的系統可以通過該框架實現彼此的通信,類似于webservice,但是Thrift提供了近乎變態的效率和開發的方便性,是webservice所不能比擬的。給分布式開發帶來了極大的方便。但是這柄利器也有一些不完美。
Thrift是Facebook開發出的一個軟件庫和一組代碼生成工具,以加快高效率、可擴展的后端服務的開發與實現的速度。它通過對各語言最常用的部分加以抽象,把它們放進一個通用庫里,再用各個語言實現,來實現跨編程語言的高效而可靠的通信。亦即,Thrift允許開發者在一個單獨的語言無關的文件里,定義數據類型和服務接口,然后生成用來構建RPC客戶和服務器所需的全部代碼。