2013年10月29日 星期二

Web Services 觀念


Web Services的起源
Web應用的巨大成功和不斷發展,使其滲透到商業領域和個人生活的各個方面。人們只要使用瀏覽器,就可以享受到各種各樣的Web服務,例如網上購物,網上交易,網 ​​絡遊戲,預定車票,網上聊天和交友等等。與此同時,由於Web技術所帶來的優勢(統一的客戶端和較好的維護性),使一些傳統的應用紛紛轉型到BS結構上。
然而,在發展中,逐步暴露了一些問題。所有這些Web頁面都是為人準備的,是讓人去閱讀,去輸入,去判斷。因此各 ​​種反映視覺效果的內容佔用了大量的網絡帶寬,例如各種圖片,字體信息,文字排版樣式等。而真正含有高價值的一些信息,被深深埋在這些顯示信息中,很難被其他應用和程序所使用。更重要的是,各種web服務之間缺少交互和通訊的機制。
程序之間的互相通訊很重要嗎?簡單舉一個例子。
假設你經常去國外出差,在你回國以後,第一件事就是費用報銷了。而你們公司有這樣的財務規定,所有的報銷款,都按報銷當天的外匯比價進行結算。因此在你填寫報銷單的時候必須先填寫每一筆在各個國家的花消,然後上網查出當天的外匯比價,填寫到報銷單上。剩下的事情也許不用你做了,你的報銷單填寫工具會自動進行換算和統計。
覺得有什麼不妥嗎?作為IT公司的員工,也許都有一個特點,計算機能做的事情,盡量要計算機去做。外匯比價的查詢可以讓計算機自動去做嘛!然而,讓你的程序自動去網頁上查找指定的外匯比價可不是一件容易的事。因為這些網頁是給人閱讀的, ​​人眼和大腦的反應速度有多快,它們可以從一整頁信息中快速定位到你所要的內容,而且無論網頁怎樣變化和改版都不會帶來太大的影響。而應用程序想要做同樣的事就差得太遠了。因此,現在需要的是專門為應用程序制定的Web服務。
隨著應用程序之間通訊的需求越來越大,這就需要製定統一的標準和協議。HP公司是最先提出這個觀點的公司,他們制定了有關 e-Speak”的標準來保證應用程序之間的交互,並聲稱將成為下一代Internet信息交互的標準。而隨後,MicroSoft意識到此計劃的美好前景,便推出了.Net戰略;IBM很快就發布了Web Services Toolkit(WSTK),和Web Services Development Environment(WSDE),申明對Web Services的全力支持。與此同時,Oracle也開發出自己的Dynamic Services,並和Oracle 8i Release 2集成在一起。在這以後,W3C統一制定了Web Services的各種標準。而SUN公司在宣布了自己的Web Services的框架以後,將Web Services的標準溶入J2EE的環境,使Web Services有了廣泛支持的基礎和平台。

Web Services的基本原理
Web Services是通過一系列標準和協議來保證程序之間的動態連接。其中最基本的協議包括:SOAP, WSDL, UDDI
·         SOAP: Simple Object Access Protocol”的縮寫,SOAP是消息傳遞的協議,它規定了Web Services之間是怎樣傳遞信息的。簡單的說,SOAP規定了:
1.
傳遞信息的格式為XML。這就使Web Services能夠在任何平台上,用任何語言進行實現。
2.
遠程物件方法調用的格式。規定了怎樣表示被調用對像以及調用的方法名稱和參數類型等。
3.
參數類型和XML格式之間的映射。這是因為,被調用的方法有時候需要傳遞一個複雜的參數,例如,一個Person物件。怎樣用XML來表示一個物件參數,也是SOAP所定義的範圍。
4.
異常處理以及其他的相關信息.
·         WSDL: Web Services Description Language”的縮寫.意如其名,WSDLWeb Services的定義語言。當你實現了某種服務的時候(,股票查詢服務),為了讓別的程序調用,你必須告訴大家你的服務的接口.例如,服務名稱,服務所在的機器名稱,監聽端口號,傳遞參數的類型,個數和順序,返回結果的類型等等.這樣別的應用程序才能調用你的服務。WSDL協議就是規定了有關Web Services描述的標準。
·         UDDI:Universal Description, Discovery, and Integration的縮寫。簡單說,UDDI用於集中存放和查找WSDL描述文件,起著目錄服務器的作用。

2013年10月18日 星期五

一些名詞簡易解釋


SDK(Software Develop Kit,軟件開發工具包):用於幫助開發人員的提高工作效率。各種不同類型的軟件開發,都可以有自己的 SDK。Windows 有 Windows SDK,DirectX 有 DirectX 9 SDK,.NET開發也有 Microsoft .NET Framework SDK。JAVA 開發也不含糊,也有自己的 Java SDK。

Java SDK(JDK):最早叫 Java Software Develop Kit,後來改名為 JDK,即 Java Develop Kit。JDK 作為 Java 開發工具包,主要用於構建在 Java 平台上運行的應用程序、Applet 和組件等。

JRE(Java Runtime Environment,Java 運行環境):也就是 Java 平台。所有的 Java 程序都要在 JRE 下才能運行。JDK 的工具也是 Java 程序,也需要 JRE 才能運行。為了保持 JDK 的獨立性和完整性,在 JDK 的安裝過程中,JRE 也是安裝的一部分。所以,在 JDK 的安裝目錄下有一個名為 jre 的目錄,用於存放 JRE 文件。

JVM(Java Virtual Machine,Java 虛擬機):是 JRE 的一部分。它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。JVM 有自己完善的硬件架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。Java 語言最重要的特點就是跨平台運行。使用 JVM 就是為了支援與操作系統無關,實現跨平台。

另外還有幾個名詞需要解釋一下:
J2EE – Java 2 Enterprise Edition(企業版)
J2SE – Java 2 Standard Edition(Java2標準版)
J2ME – Java 2 Micro Edition(微型版)

J2EE、J2SE、J2ME 的概念區別
J2EE:Java 2 Enterprise Edition,是 Java 的一種企業版,用於企業級的應用服務開發。
J2SE:Java 2 Etandard Edition,是 Java 的標準版,用於標準的應用開發。
J2ME:Java 2 Micro Edition,是 Java 的微型版,常用於手機上的開發。

J2SE、J2EE、J2ME 是 java 針對不同的的使用來提供不同的服務,也就是提供不同類型的類庫。針對企業網應用的 J2EE(Java 2 Enterprise Edition)、針對普通 PC 應用的 J2SE(Java 2 Standard Edition)和針對嵌入式設備及消費類電器的 J2ME(Java 2 Micro Edition)三個版本,對於初學者,都是從 J2SE 入手的。

2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名以取消其中的數字「2」:J2EE更名為Java EE, J2SE更名為Java SE,J2ME更名為Java ME。