99久久99久久精品免费看蜜桃,亚洲国产成人精品青青草原,少妇被粗大的猛烈进出va视频,精品国产不卡一区二区三区,人人人妻人人澡人人爽欧美一区

首頁 > 文章中心 > soa技術(shù)

soa技術(shù)

前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇soa技術(shù)范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

soa技術(shù)

soa技術(shù)范文第1篇

李安渝博士

IBM中國軟件開發(fā)中心高級工程師、IBM院士 王云

OASIS國際組織總裁兼首席執(zhí)行官Patrick Gannon

主持人:

《中國計算機報》常務(wù)副社長兼總編 盧山博士

對話嘉賓:

OASIS國際組織總裁兼首席執(zhí)行官 Patrick Gannon

IBM中國軟件開發(fā)中心高級工程師、IBM院士 王云

BEA中國有限公司企業(yè)解決方案部門經(jīng)理 劉松

神州數(shù)碼研究院院長 李安渝博士

soa今天談?wù)撏聿煌?/p>

SOA概念是十年以前,也就是1996年由Gartner公司提出來的。一眨眼十年過去了,現(xiàn)在談?wù)揝OA晚不晚?

Patrick Gannon:我認為不晚,因為軟件工程是在最近這幾年才逐步朝構(gòu)建和模塊化的方向發(fā)展,慢慢地大家理解到軟件可以有不同的模塊或者是應(yīng)用來把它集成起來。在五年前,Web服務(wù)這個標(biāo)準(zhǔn)才逐步成熟。Web服務(wù)這些標(biāo)準(zhǔn)體系逐步成熟以后才能對SOA全面的采用提供一個保障。

王云:我們做很多技術(shù),即便是同一個領(lǐng)域、同一個觀念,它在本質(zhì)上也有相當(dāng)大的不同點的。所以我們現(xiàn)在談到SOA的體系架構(gòu)跟十年前有相當(dāng)大的差異性,所以完全不晚。

SOA革了誰的命?

不管是BEA還是IBM,往往都會提一個觀點,即中間件時代已經(jīng)結(jié)束了,現(xiàn)在是SOA的時代。但他們曾經(jīng)都是中間件的倡導(dǎo)者,而且是主流供應(yīng)商。那么,SOA革了誰的命?

王云:從IT從業(yè)人員角度來看,SOA是我們的自救。SOA是一種架構(gòu)、一種思維方法,但是把這個架構(gòu)形態(tài)要付諸于實施時不僅是軟件或者是中間件這個層次,而且應(yīng)該包括應(yīng)用到中間件,甚至包括到系統(tǒng)全程。

李安渝:應(yīng)該從三個層面來看SOA的革命。從最高層面看,SOA就是服務(wù)廠商革技術(shù)廠商的命;在架構(gòu)師層面上,SOA是從商業(yè)的業(yè)務(wù)需求往下做系統(tǒng)分析的一種思考方法;而在實施工程師層面,SOA實際上就是標(biāo)準(zhǔn)化。

面對SOA的機會

SOA的黎明還沒有真正到來,一旦這個黎明普照中國大地,中國什么樣的企業(yè)有可能部署SOA?

李安渝:中國有可能在SOA的變革中成為一個比較快的跟隨者。如果一個信息化比較成熟、部署的已經(jīng)比較完備的國家來說,已經(jīng)設(shè)計好了,再重新裝修你的房子就比較難一點。中國相對來說比較空白,所以在推出一個解決方案時還有很多空間可以重新思考和設(shè)計。我們現(xiàn)在看SOA在中國最有可能成功的領(lǐng)域就是電子政務(wù)。除了政府之外,在金融和電信領(lǐng)域也可能會早期實施SOA。

當(dāng)然,中國企業(yè)要成功部署SOA還面臨一些挑戰(zhàn)。首先,SOA有一個很重要的理念是服務(wù)之間要協(xié)同,要能夠?qū)?shù)據(jù)進行標(biāo)準(zhǔn)的交換。對于電子政務(wù)來講,政府和部門之間的數(shù)據(jù)交換,除了技術(shù)之外還有很多行政的原因。而第二個挑戰(zhàn)則是實施單位的設(shè)計理念。因為過去大家都被技術(shù)廠商灌輸設(shè)計方法,BEA灌輸BEA的設(shè)計方法,微軟灌輸微軟的設(shè)計方法,這樣使他在考慮設(shè)計時會從技術(shù)來考慮,這時要調(diào)整他的思路,先從客戶需求來考慮整個系統(tǒng),然后再選擇哪個技術(shù)方案、哪個技術(shù)架構(gòu)最適合客戶系統(tǒng)的實施。

SOA的未來是EDA?

很多人提出――OOP代表著過去,SOA代表著現(xiàn)在,EDA代表著未來?

Patrick Gannon:SOA實際上是把對象技術(shù)往下推動的延續(xù),并不是說對象沒有了,或者是完全否定了OOP的思想,只是提到另外一個高度。一旦我們有了模塊化、構(gòu)件化的軟件以后,就可以按照標(biāo)準(zhǔn)進行組裝、進行排序,來滿足不同的商業(yè)需求。最終用戶可以用業(yè)務(wù)流程、管理工具把這些構(gòu)件、模塊組裝起來,在里面設(shè)計一些關(guān)鍵事件,用關(guān)鍵事件來推動整個流程的運行,這個我們就叫它SOA?!?/p>

李安渝:我的理解,EDA實際上是SOA再往下走的自然延伸,它是在架構(gòu)設(shè)計師這一層很重要的理念,而EDA就是業(yè)務(wù)人員――客戶怎么用SOA這個系統(tǒng),或者說他怎么提出SOA這個系統(tǒng)需求時考慮的問題,就是用關(guān)鍵事件來推動整個業(yè)務(wù)流程。

SOA與開放標(biāo)準(zhǔn)

SOA很重要的特性是能夠讓你對軟件的投資有長期的保值性,能夠避免重復(fù)投資,可以讓你的軟件模塊可以重復(fù)地使用。

soa技術(shù)范文第2篇

論文摘要:本文主要針對吉林移動現(xiàn)有系統(tǒng)存在的某些弊端展開分析討論,同時結(jié)合SOA技術(shù)對目前存在的問題提出解決建議。

1前言

SOA,面向服務(wù)的體系結(jié)構(gòu)。簡單的說,SOA是服務(wù)的集成模式,它將不同的業(yè)務(wù)作為鏈接服務(wù)或可重復(fù)業(yè)務(wù)任務(wù)進行集成,可在需要時通過網(wǎng)絡(luò)訪問這些服務(wù)和任務(wù)。這個網(wǎng)絡(luò)可能完全包含在您的公司總部內(nèi),也可能分散于各地且采用不同的技術(shù),通過對來自部門的服務(wù)進行組合,可讓最終用戶感覺似乎這些服務(wù)就安裝在本地桌面上一樣。需要時,這些服務(wù)可以將自己組裝為按需應(yīng)用程序——即相互連接的服務(wù)提供者和使用者集合,彼此結(jié)合以完成特定業(yè)務(wù)任務(wù),使您的業(yè)務(wù)能夠適應(yīng)不斷變化的情況和需求(在有些情況下,甚至不需要人工干預(yù))。

2吉林移動應(yīng)用系統(tǒng)現(xiàn)狀

目前,中國移動所開發(fā)應(yīng)用的系統(tǒng)有很多,除了辦公系統(tǒng)以外生產(chǎn)系統(tǒng)主要分為三類:第一類是BasicSystem(基礎(chǔ)系統(tǒng)),這類系統(tǒng)主要是監(jiān)控設(shè)備是否正常運行的。而這些系統(tǒng)都是設(shè)備廠家自己開發(fā)的,是因廠家的不同而不同,鑲嵌在設(shè)備本身的,沒有辦法控制。第二類系統(tǒng)是ApplicationSystem(應(yīng)用系統(tǒng)),主要是采集由各個廠家設(shè)備的基礎(chǔ)系統(tǒng)所提供的一些諸如告警,設(shè)備配置等信息,而后經(jīng)過分析形成一些指標(biāo)。通過各種指標(biāo)我們可以了解所有設(shè)備的運行情況,解決和處理問題。最后一類系統(tǒng)是PresentationSystem(呈現(xiàn)系統(tǒng)),此類系統(tǒng)是對各種應(yīng)用系統(tǒng)的呈現(xiàn),向管理層提供各種報表數(shù)據(jù)等,管理層通過這些數(shù)據(jù)報表進行分析,從而進行有針對性并且行之有效地決策。

目前,這三類系統(tǒng)除基礎(chǔ)系統(tǒng)以外所有的系統(tǒng)都是中國移動與不同的軟件公司合作開發(fā)的。由于開發(fā)商,開發(fā)時間,開發(fā)的水平的不同,導(dǎo)致系統(tǒng)有很大的獨立性。各個系統(tǒng)都有其獨特的運行平臺,運行環(huán)境,維護起來也不方便。部分系統(tǒng)向上層呈現(xiàn)時出現(xiàn)數(shù)據(jù)格式不一致等等問題。并且,隨著時間的流逝,客戶的不斷增加,設(shè)備的不斷擴容,系統(tǒng)的需求不斷增多,導(dǎo)致現(xiàn)有的系統(tǒng)已經(jīng)不能滿足繼續(xù)擴展的需要,要重新開發(fā)新的系統(tǒng)所花費的代價是可想而知的,原有系統(tǒng)的丟棄也是資源的一種浪費。

此外,應(yīng)用這三類系統(tǒng)的人也不同,不同的人根據(jù)工作需要,所要關(guān)注的內(nèi)容不同,有很多時候一個人要關(guān)注四套以上的系統(tǒng)。這樣首先要熟悉四套系統(tǒng),每天關(guān)注的時候也要同時打開四套系統(tǒng)過濾出需要的信息既費時、費力不說,有時候還會導(dǎo)致一些疏忽。怎么才能解決諸如此類的問題呢?SOA。

3應(yīng)用SOA技術(shù)的解決方法

前面提到了SOA是面向服務(wù)的體系結(jié)構(gòu),是將所有的功能都作為簡單的web服務(wù)(也叫原子服務(wù))。一個復(fù)雜的功能可能有很多的原子服務(wù)組成。這些被組合在一起的復(fù)合服務(wù)可以作為更高一級的復(fù)合服務(wù)中的一個原子服務(wù)。

在SOA理念中,所有的服務(wù)是自包含的,具有定義良好的接口,允許這些服務(wù)的用戶了解如何與其進行交互。從技術(shù)角度而言,SOA帶來了“松散耦合”的應(yīng)用程序組件。正是得益于這個松散耦合特性,才使得能夠?qū)⒎?wù)組合為各種應(yīng)用程序。這樣還大幅度提高了代碼重用率,可以在增加功能的同時減少工作量。

不難看出,一旦擁有了SOA,不同部門,不同人都可以按照自己的需要定制自己所需要的服務(wù),對于不需要的服務(wù)可以過濾下去。

這樣可以提高工作效率,并且不易疏漏一些細節(jié)問題,因為我需要關(guān)注的東西都在系統(tǒng)所提供的一個web頁面上。此外SOA還具有一定的靈活性,比如一旦工作調(diào)動我可以在我的定制服務(wù)中刪除并增加一些服務(wù),這樣不會因為部門的調(diào)動,再重新熟悉一些沒有接觸過的系統(tǒng)。

正如圖二所示,web服務(wù)組合系統(tǒng)就像一個插排一樣,提供各種標(biāo)準(zhǔn)接口,下層的服務(wù)像插頭一樣,可以合適的鑲嵌在其中。由于WEB服務(wù)組合與底層系統(tǒng)是通過接口相互交互的,故其工作方式是跨平臺的透明模式。當(dāng)然在web服務(wù)組合系統(tǒng)中存在很多模塊如安全控制模塊,用戶人登陸模塊,用戶定制模塊,服務(wù)注冊中心,傳輸協(xié)議等等。通過這些模塊的定義可以有效的控制整個網(wǎng)絡(luò)。轉(zhuǎn)

從業(yè)務(wù)的角度來說,面向服務(wù)的體系結(jié)構(gòu)的重點在于開發(fā)能幫助您完成業(yè)務(wù)任務(wù)的技術(shù),而不是通過技術(shù)約束來規(guī)定您的行動。例如,一個集團下發(fā)的故障工單的處理過程(包括集團電子運維,省端電子運維,呈現(xiàn)系統(tǒng),應(yīng)用系統(tǒng),基礎(chǔ)系統(tǒng)核查等等)可能會涉及數(shù)十個步驟和若干不同的數(shù)據(jù)庫和計算機系統(tǒng)。但就其實質(zhì)而言,此過程包含一系列人工活動,例如:

接口人員受理故障工單,轉(zhuǎn)派相應(yīng)責(zé)任人;

相應(yīng)責(zé)任人查找呈現(xiàn)系統(tǒng)、查找應(yīng)用系統(tǒng)、查找基礎(chǔ)系統(tǒng),最終確定故障原因

回復(fù)工單至接口人;

回復(fù)工單至集團側(cè);

這只是一個簡單的工單處理過程,在企業(yè)中還有很多諸如文件審批,財務(wù)報表等等一些業(yè)務(wù)。總之各個部門之間存在著千絲萬縷的聯(lián)系。面向服務(wù)的體系結(jié)構(gòu)基于這些實際活動或業(yè)務(wù)服務(wù)進行組織,而不是形成公司所維護的不同的信息豎井(Silo)。通過實現(xiàn)SOA,可以帶來大量好處,包括以下各個方面:

更高的業(yè)務(wù)和IT一致性

基于組件的系統(tǒng)

松散耦合的組件和系統(tǒng)

基于網(wǎng)絡(luò)的基礎(chǔ)設(shè)施,允許分散于各地且采用不同技術(shù)的資源協(xié)同工作

動態(tài)構(gòu)建的按需應(yīng)用程序

更高的代碼重用率

更好地標(biāo)準(zhǔn)化整個企業(yè)內(nèi)的流程

更易于集中企業(yè)控制

soa技術(shù)范文第3篇

關(guān)鍵詞:SOA人事管理服務(wù)

一、高校人事管理現(xiàn)狀

近年來,我國人事制度改革飛速地推進了高等院校的發(fā)展,隨之而來的便是人力資源的日益龐大、人員結(jié)構(gòu)的復(fù)雜程度逐漸增強。傳統(tǒng)的人事管理方法不僅繁冗復(fù)雜,而且低效。一般都只包括人員和機構(gòu)檔案的管理、簡單的考勤管理和工資管理,缺少作為人事管理軟件所必需的人員招聘與任用、培訓(xùn)與開發(fā)、績效考核、員工職業(yè)生涯規(guī)劃、分析和決策支持等功能。并且一旦企業(yè)內(nèi)部發(fā)生人事調(diào)動,工資變化時,用傳統(tǒng)的人事管理方法來處理這些事物的話,將會變得十分復(fù)雜和繁瑣。

在高校管理工作中,人事管理工作的重要性便日益顯現(xiàn)出來。因此,針對目前高校人事管理信息化的需求和面臨的復(fù)雜情況,可以采用基于面向服務(wù)架構(gòu)SOA(Service-Oriented Architecture)來設(shè)計系統(tǒng)結(jié)構(gòu),科學(xué)合理地管理高校的人事信息及擴充的人力資源信息。

二、SOA概念和實現(xiàn)方法

1. 概念

近兩年,出現(xiàn)了一種技術(shù)架構(gòu)被譽為下一代Web服務(wù)的基礎(chǔ)架構(gòu),它就是SOA(Service- Oriented Architecture,面向服務(wù)的體系結(jié)構(gòu))。是由 Gartner公司在1990年提出的,它根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進行分布式部署、組合和使用,是目前最流行的一種架構(gòu)模型。

所謂的SOA就是一個組件模型,由不同的功能單元(稱為服務(wù))組裝而成,服務(wù)之間靠定義良好的接口和契約聯(lián)系起來,這使得構(gòu)建在這樣的系統(tǒng)中的各種服務(wù)以統(tǒng)一和通用的方式進行交互?接口采用多方兼容的方式進行定義,獨立于應(yīng)用系統(tǒng)的硬件平臺、操作系統(tǒng)和編程語言。SOA的起源和核心都在于Web服務(wù),Web服務(wù)就是使用封裝的XML消息在兩個通話方之間進行交流的一種方式,而SOA使用了大量的通用協(xié)議來完成所謂面向服務(wù)架構(gòu)的工作,是一個很好的應(yīng)用集成解決方案。

2. 實現(xiàn)技術(shù)

具體實現(xiàn)SOA的技術(shù)有很多,包括Web Services、Session Bean、JINI等。但隨著Web Services技術(shù)越來越被重視,其已經(jīng)成為實現(xiàn)SOA的主要構(gòu)架技術(shù)。它是建立在開放標(biāo)準(zhǔn)和獨立于平臺協(xié)議基礎(chǔ)之上的分布計算單元。Web Services用XML進行數(shù)據(jù)的描述和交換,使用SOAP協(xié)議在服務(wù)提供者與服務(wù)消費者之間進行通信,通過WSDL協(xié)議定義服務(wù)接口,使用UDDI協(xié)議進行Web Services注冊和查找。這些特性使得Web Services成為目前實現(xiàn)SOA的最好方式,而Web Services以分散的形式存在于不同的系統(tǒng)中。

目前Web Services技術(shù)是實現(xiàn)SOA最主要的方法,是基于網(wǎng)絡(luò)的、分布式的模塊化組件,它執(zhí)行特定的任務(wù),遵守具體的技術(shù)規(guī)范,這些規(guī)范使得Web Service能與其他兼容的組件進行互操作。實現(xiàn)Web Services的主流開發(fā)平臺有J2EE平臺和Microsoft. net平臺,J2EE平臺開發(fā)的系統(tǒng)因具有平臺無關(guān)性、安全性、可伸縮性、不同供應(yīng)商實現(xiàn)方案之間的可移植性等若干優(yōu)點而得到了廣泛的應(yīng)用。

Web Service是一種新的Web應(yīng)用程序分支,它們是自包含、自描述、模塊化的應(yīng)用,可以在網(wǎng)絡(luò)中被描述、、查找以及通過Web來調(diào)用。它定義了應(yīng)用程序如何在Web上實現(xiàn)互操作性,它可以使用標(biāo)準(zhǔn)的互聯(lián)網(wǎng)協(xié)議,像超文本傳輸協(xié)議HTTP和XML,將功能體現(xiàn)在互聯(lián)網(wǎng)和企業(yè)內(nèi)部網(wǎng)上。

任何平臺都有它的數(shù)據(jù)表示方法和類型系統(tǒng),而要實現(xiàn)互操作性,則Web Service平臺必須提供一套標(biāo)準(zhǔn)的類型系統(tǒng),用于溝通不同平臺、編程語言和組件模型中的不同類型系統(tǒng)。Web Service平臺主要通過一些協(xié)議來實現(xiàn)分布式應(yīng)用程序的創(chuàng)建,主要有以下這些協(xié)議:

1. XML

可擴展的標(biāo)記語言XML是Web Service平臺中表示數(shù)據(jù)的基本格式。是一種流行的、獨立于中間件的格式,可以在不同應(yīng)用程序之間進行數(shù)據(jù)和文檔的交換。除了易于建立和分析外,XML主要的優(yōu)點在于它既與平臺無關(guān),又與廠商無關(guān)。

2.SOAP

SOAP (Simple Object Access Protocol,簡單對象訪問協(xié)議)是Web Service 的標(biāo)準(zhǔn)通信協(xié)議,采用標(biāo)準(zhǔn)化XML 格式傳輸消息?它是用于交換XML編碼信息的輕量級協(xié)議。它有三個主要方面:XML-envelope為描述信息內(nèi)容和如何處理內(nèi)容定義了框架,將程序?qū)ο缶幋a成為XML對象的規(guī)則,執(zhí)行遠程過程調(diào)用(RPC)的約定。Web Service希望實現(xiàn)不同的系統(tǒng)之間能夠用“軟件-軟件對話”的方式相互調(diào)用來打破軟件應(yīng)用、網(wǎng)站和各種設(shè)備之間的格格不入的狀態(tài),實現(xiàn)“基于Web無縫集成”的目標(biāo)。Web Services標(biāo)準(zhǔn)的成熟和應(yīng)用的普及為廣泛地實現(xiàn)SOA 架構(gòu)提供了基礎(chǔ),Web Service技術(shù)實現(xiàn)了服務(wù)接口的傳輸和調(diào)用的標(biāo)準(zhǔn)化,服務(wù)接口和服務(wù)實現(xiàn)的分離,以及Web 服務(wù)組件的可重用性?

3.WSDL

WSDL(Web Service Description Language,Web Service描述語言)就是用機器能閱讀的方式提供的一個正式描述文檔,WSDL就是這樣一個基于XML的語言,用于描述Web服務(wù)的所有相關(guān)內(nèi)容,如所提供的服務(wù)的傳輸方式、服務(wù)方法接口、接口參數(shù)、服務(wù)路徑等,生成相應(yīng)的完全文檔,給使用者,從而使第三方可以很容易的調(diào)用該服務(wù)。因為是基于XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的。

4.UDDI

UDDI(Universal Description,Discovery and Integeration,通用描述、發(fā)現(xiàn)與集成服務(wù))是一個分布式的互聯(lián)網(wǎng)服務(wù)注冊機制,它集描述(Universal Description)、檢索(Discovery)與集成(Integration)為一體,其核心是注冊機制。它是一套基于Web的、分布式的、為Web Service提供的、信息注冊中心的實現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時也包含一組使企業(yè)能將自身提供的Web Service注冊,以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標(biāo)準(zhǔn)。

UDDI 基于現(xiàn)成的標(biāo)準(zhǔn),如可擴展標(biāo)記語言(Extensible Markup Language,XML)和簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)。UDDI同時也是Web服務(wù)集成的一個體系框架,它包含了服務(wù)描述與發(fā)現(xiàn)的標(biāo)準(zhǔn)規(guī)范。UDDI規(guī)范利用了W3C和Internet工程任務(wù)組織(IETF)的很多標(biāo)準(zhǔn)作為其實現(xiàn)基礎(chǔ),比如擴展標(biāo)注語言(XML),HTTP和域名服務(wù)(DNS)這些協(xié)議。

三、應(yīng)用SOA構(gòu)建人事管理系統(tǒng)

SOA的一個中心思想就是使得企業(yè)應(yīng)用擺脫面向技術(shù)的解決方案的束縛,輕松應(yīng)對企業(yè)商業(yè)服務(wù)變化、發(fā)展的需要。它是對企業(yè)各種異構(gòu)的信息孤島進行整合的最有效方法,可以實現(xiàn)企業(yè)和組織的信息共享,提升人員協(xié)同能力以及業(yè)務(wù)的優(yōu)化和整合程度,實現(xiàn)有效的業(yè)務(wù)轉(zhuǎn)型和創(chuàng)新,幫助企業(yè)適應(yīng)外部變化,提高運營效率和反應(yīng)速度,同時中間件和平臺技術(shù)的成熟也給SOA在應(yīng)用層面上的實踐提供了有利的保障。

傳統(tǒng)的應(yīng)用集成方法(點對點集成、企業(yè)消息總線或中間件的集成(EAI)、基于業(yè)務(wù)流程的集成)都很復(fù)雜、昂貴,并且不靈活。這些集成方法難于快速適應(yīng)基于企業(yè)現(xiàn)代業(yè)務(wù)變化不斷產(chǎn)生的需求?;诿嫦蚍?wù)架構(gòu) (SOA) 的應(yīng)用開發(fā)和集成可以很好的解決其中的許多問題。在SOA中,圍繞服務(wù)的所有模式都是以基于標(biāo)準(zhǔn)的技術(shù)實現(xiàn)的。大部分的通信中間件系統(tǒng),如 RPC、CORBA、DCOM、EJB 和 RMI,也同樣如此??墒撬鼈兊膶崿F(xiàn)都不是很完美的,在權(quán)衡交互性以及標(biāo)準(zhǔn)定制的可接受性方面總是存在問題。SOA的服務(wù)既可以定義為功能,又可同時對外定義為對象、應(yīng)用等等。任何業(yè)務(wù)功能都被作為提供的一個服務(wù)使用,應(yīng)用程序的不同功能(服務(wù))通過這些服務(wù)之間定義的結(jié)構(gòu)和合約聯(lián)系,應(yīng)用系統(tǒng)可以看作是一系列服務(wù)的集成,這使得SOA可適應(yīng)于任何現(xiàn)有系統(tǒng),并使得系統(tǒng)在集成時不必刻意遵循任何特殊定制。

SOA 幫助企業(yè)信息系統(tǒng)遷移到"leave-and-layer"架構(gòu)之上,這意味著在不用對現(xiàn)有的企業(yè)系統(tǒng)做修改的前提下,系統(tǒng)可對外提供 Web 服務(wù)接口,這是因為它們已經(jīng)被可以提供 Web 服務(wù)接口的應(yīng)用層做了一層封裝,所以在不用修改現(xiàn)有系統(tǒng)架構(gòu)的情況下,SOA 可以將系統(tǒng)和應(yīng)用迅速轉(zhuǎn)換為服務(wù)。

SOA 不僅覆蓋來自于打包應(yīng)用、定制應(yīng)用和遺留系統(tǒng)中的信息,而且還覆蓋來自于如安全、內(nèi)容管理、搜索等 IT 架構(gòu)中的功能和數(shù)據(jù)。因為基于 SOA 的應(yīng)用能很容易地從這些基礎(chǔ)服務(wù)架構(gòu)中添加功能,所以基于SOA的應(yīng)用能更快地應(yīng)對市場變化,為使企業(yè)業(yè)務(wù)部門設(shè)計開發(fā)出新的功能應(yīng)用。

SOA構(gòu)建方法位于高校教學(xué)資源系統(tǒng)整合業(yè)務(wù)需求和底層技術(shù)之間的抽象層次中,獨立地對每一個服務(wù)功能模塊進行定義,而每一個獨立部署的教育資源服務(wù)模塊不依賴具體的開發(fā)平臺和系統(tǒng),各個系統(tǒng)的功能需求通過服務(wù)的流程化組織得到實現(xiàn),從而實現(xiàn)各種異構(gòu)系統(tǒng)及資源的集成和軟件復(fù)用。

SOA在高校人事管理應(yīng)用中的優(yōu)勢:

1.低成本

SOA是實現(xiàn)高校信息系統(tǒng)之間數(shù)據(jù)和業(yè)務(wù)無縫銜接的理想方案,結(jié)合高?,F(xiàn)有的服務(wù),將有用的資源進行改造,開發(fā)出功能更強大的服務(wù),簡化了系統(tǒng)集成,可以快捷、容易地對業(yè)務(wù)需求的變化做出反應(yīng)。使得軟件的開發(fā)周期大大的縮短,降低了開發(fā)成本?另外,面向服務(wù)架構(gòu)是平臺和語言無關(guān)的,因此不必考慮實施環(huán)境是何種平臺系統(tǒng)和設(shè)備,與其它的系統(tǒng)集成技術(shù)相比,面向服務(wù)的集成構(gòu)架是解決高校信息系統(tǒng)集成的理想選擇。

2.靈活多變

SOA具有靈活而功能強大的服務(wù)層,利用服務(wù)層中粗粒度的、可被動態(tài)發(fā)現(xiàn)和綁定的服務(wù),能夠在保持原有系統(tǒng)正常使用的前提下,從現(xiàn)有的服務(wù)中重新組合成新的服務(wù),縮短軟件系統(tǒng)分析?設(shè)計?開發(fā)等所需的時間,快速地構(gòu)建松散耦合的、具有跨平臺處理信息能力的應(yīng)用系統(tǒng)。

四、國內(nèi)SOA的應(yīng)用現(xiàn)狀

中國企業(yè)在實現(xiàn)SOA架構(gòu)時,往往需要面對原有系統(tǒng)改造優(yōu)化或新建系統(tǒng)這兩個層面。金融、電信等IT建設(shè)領(lǐng)先的企業(yè)是“以系統(tǒng)改造優(yōu)化為主,同時也在大量新建系統(tǒng)”的代表企業(yè)。在IDC的調(diào)查中,對于如何將已有系統(tǒng)進行分割并形成SOA服務(wù)的考慮,超過67%的中國大中型企業(yè)更多是希望把原有系統(tǒng)切割并包裝成為SOA服務(wù)。這一方面涉及大部分承載著核心業(yè)務(wù)的已有系統(tǒng),任何更改都會對企業(yè)運營帶來很大的不可控風(fēng)險;另一方面,企業(yè)出于利舊的考慮,也不愿意輕易將原有系統(tǒng)推倒重來或新建系統(tǒng)替代。因此,在對待已有系統(tǒng)的處理上,這些企業(yè)往往會出于某種考慮而采取這樣一些方法:

1.如果功能容易切分,可以采用對已有系統(tǒng)進行切割和封裝的方法。

2.如果功能不容易切分,則把整個系統(tǒng)包裝成一個服務(wù)提供,或者推倒重來,用新方法構(gòu)造服務(wù)。

五、結(jié)束語

鑒于SOA的應(yīng)用所能帶來的價值,我們可以看到SOA應(yīng)用是一股不可阻擋的潮流,通過SOA的分布式、大規(guī)模、異構(gòu)環(huán)境下的整合能力,提高業(yè)務(wù)的敏捷性,能夠解決在異構(gòu)環(huán)境下,企業(yè)各IT系統(tǒng)的應(yīng)用集成,即不同應(yīng)用系統(tǒng)之間的互通互聯(lián),使得企業(yè)的IT和業(yè)務(wù)可以更好地結(jié)合在一起。

當(dāng)SOA的理念、方法靜下來時才是它的具體應(yīng)用和實踐開始走向深入的時候。當(dāng)未來,企業(yè)的信息化項目都是SOA的架構(gòu)風(fēng)格之時,人們就不需要一遍一遍地去強調(diào)SOA的概念了,伴隨著SOA應(yīng)用的普及,SOA也將不再神秘。期待更多的軟件廠商不斷推進SOA 架構(gòu)標(biāo)準(zhǔn)化,進一步完善和細化基于SOA 架構(gòu)的相關(guān)產(chǎn)品,加快企業(yè)信息化建設(shè)的步伐。

參考文獻:

[1]馬文龍,余文利,廖建平.一種基于SOA 的高校信息系統(tǒng)集成模型設(shè)計與實現(xiàn)[J].計算機時代,2010,(2)

[2]顧云鋒.基于SOA和Web服務(wù)的高校信息系統(tǒng)集成研究[J].計算機與現(xiàn)代化, 2009,(10)

soa技術(shù)范文第4篇

關(guān)鍵詞:總線通道技術(shù);SOA技術(shù);架構(gòu)

中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2012)31-7478-03

企業(yè)面臨的商業(yè)環(huán)境變化越來越快,競爭越來越激烈,如何快速整合企業(yè)現(xiàn)有業(yè)務(wù),開發(fā)新業(yè)務(wù),適應(yīng)需求變化是企業(yè)急需要解決的問題。目前企業(yè)的現(xiàn)狀是計算機系統(tǒng)相互隔離,不能協(xié)調(diào)工作,操作計算機系統(tǒng)的業(yè)務(wù)人員完成各自的業(yè)務(wù),整體上處于一種混亂狀態(tài),很難達成業(yè)務(wù)的敏捷性。

業(yè)務(wù)敏捷性取決于企業(yè)信息的自由流動、服務(wù)和業(yè)務(wù)流程,而這些都要求信息系統(tǒng)能夠滿足業(yè)務(wù)的變更,同時,不能因為業(yè)務(wù)變更造成企業(yè)原有業(yè)務(wù)系統(tǒng)的重新編寫和構(gòu)建。企業(yè)信息系統(tǒng)一般是多平臺和多技術(shù)構(gòu)成的,而且業(yè)務(wù)會涉及到企業(yè)內(nèi)部、外部環(huán)境、供應(yīng)商和客戶等,因此就需要更好的互聯(lián)技術(shù)來滿足異構(gòu)系統(tǒng)之間的信息交互[1]。

總線通道技術(shù)和SOA(Service Oriented Architecture)技術(shù)相結(jié)合在企業(yè)業(yè)務(wù)移植、業(yè)務(wù)有效控制和業(yè)務(wù)流程編排等方面有優(yōu)勢,能夠滿足企業(yè)業(yè)務(wù)敏捷性要求。文章將結(jié)合總線通道技術(shù)和SOA架構(gòu)技術(shù),分析一種基于總線通道技術(shù)的SOA架構(gòu)設(shè)計方案,以滿足企業(yè)業(yè)務(wù)敏捷性需求。

1 基于總線通道技術(shù)的SOA設(shè)計方案

SOA本質(zhì)上是一種面向服務(wù)對象的軟件架構(gòu)模型,該模型將應(yīng)用程序的不同功能單元,即服務(wù)(service),通過服務(wù)間定義的接口和契約(contract)聯(lián)系起來。接口采用中立的方式定義,獨立于具體實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,使得構(gòu)建在這樣的系統(tǒng)中的服務(wù)可以使用統(tǒng)一和標(biāo)準(zhǔn)的方式進行通信[2]。

總線通道技術(shù)是SOA的基礎(chǔ),它將傳統(tǒng)的中間件技術(shù)、XML和Web服務(wù)集成,消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運作,實現(xiàn)不同服務(wù)之間的通信與整合。總線通道技術(shù)集成異構(gòu)平臺的不同應(yīng)用,為SOA服務(wù)提供交互通信和協(xié)作處理[3]。

SOA要解決的根本問題是如何保護企業(yè)的現(xiàn)有資產(chǎn),推動業(yè)務(wù)敏捷,把企業(yè)已經(jīng)有的應(yīng)用系統(tǒng),用標(biāo)準(zhǔn)的、高效的和便利的方式集成起來,使企業(yè)更好的應(yīng)對市場的變化,對業(yè)務(wù)需求的變化做出快速的反應(yīng)。使用總線通道技術(shù)構(gòu)建Web應(yīng)用服務(wù)滿足企業(yè)需求,構(gòu)建方案如圖1所示。

從設(shè)計開發(fā)的角度來說,數(shù)據(jù)交換接口、傳輸協(xié)議、應(yīng)用協(xié)議等構(gòu)建在總線通道上,總線通道業(yè)務(wù)系統(tǒng)借助于WebService實現(xiàn)對系統(tǒng)構(gòu)架開發(fā)處理,并借助于不同的通道實現(xiàn)對各類服務(wù)數(shù)據(jù)的傳輸作業(yè),在SOA思想的引導(dǎo)作用之下,借助于ESB模式實現(xiàn)對整個多通道系統(tǒng)的整合處理。構(gòu)建于總線通道技術(shù)基礎(chǔ)上的SOA架構(gòu)能夠統(tǒng)一描述各種業(yè)務(wù)、業(yè)務(wù)對象與業(yè)務(wù)模型。在總線通道技術(shù)的作用之下,借助于模塊化結(jié)構(gòu)設(shè)計方式的實現(xiàn),應(yīng)用系統(tǒng)的結(jié)構(gòu)框架簡潔、清晰。通過對總線通道技術(shù)的有效應(yīng)用,應(yīng)用系統(tǒng)能夠具有高效的擴充性能。

2 設(shè)計方案分析

基于總線通道技術(shù)的SOA架構(gòu)方案設(shè)計包含四個方面的內(nèi)容:總線通道軟件配置,多種傳輸協(xié)議的實現(xiàn),基于依賴關(guān)系的松耦合,傳輸通道定義規(guī)則。下面從這四個方面進行分析。

1)總線通道軟件配置分析

采用總線通道技術(shù)SOA架構(gòu)系統(tǒng)的項目在硬件及軟件配置設(shè)計過程當(dāng)中涉及到三立運行服務(wù)器,分別發(fā)揮網(wǎng)站服務(wù)、數(shù)據(jù)服務(wù)以及中間服務(wù)功能。網(wǎng)站服務(wù)器的作用在于實現(xiàn)整個總線通道應(yīng)用系統(tǒng)的數(shù)據(jù)信息共享處理;數(shù)據(jù)服務(wù)器的作用在于實現(xiàn)整個軟件運行狀態(tài)下的運行數(shù)據(jù)處理;而中間服務(wù)器的作用在于實現(xiàn)總線通道系統(tǒng)與終端應(yīng)用對象之間的信息數(shù)據(jù)同步處理。

2)多種傳輸協(xié)議實現(xiàn)方式分析

在傳統(tǒng)意義上的應(yīng)用系統(tǒng)當(dāng)中,數(shù)據(jù)傳輸?shù)姆绞蕉嘟柚趩我恍詡鬏攨f(xié)議的方式實現(xiàn),并針對傳輸協(xié)議以及應(yīng)用業(yè)務(wù)進行了高度有效的緊耦合綁定處理。這種數(shù)據(jù)傳輸方式不利于系統(tǒng)功能的擴展,影響應(yīng)用服務(wù)的集成,對于整個應(yīng)用系統(tǒng)綜合功能的發(fā)揮而言是極為不利的。從這一角度來說,在針對整個應(yīng)用系統(tǒng)進行設(shè)計的過程中,應(yīng)當(dāng)考慮改進傳輸協(xié)議方式??紤]綜合應(yīng)用需要,架構(gòu)方案采用多種傳輸協(xié)議兼容不同數(shù)據(jù)格式,實現(xiàn)多種類型的協(xié)議傳輸接口。

多種傳輸協(xié)議實現(xiàn)比較復(fù)雜,涉及到協(xié)議封裝、協(xié)議格式、協(xié)議版本以及異構(gòu)平臺消息轉(zhuǎn)化等,可以采用裝飾模式(Fa?ade模式)對協(xié)議封裝,在應(yīng)用系統(tǒng)總線通道接口位置設(shè)置Fa?ade模式,發(fā)揮其針對子系統(tǒng)細節(jié)的有效屏蔽性能,一方面能夠方便客戶針對子系統(tǒng)功能的有效訪問,另一方面也可以有效消除整個系統(tǒng)在編碼過程中所涉及到的冗長的復(fù)雜代碼。裝飾模式的設(shè)計方案借助子類實現(xiàn)各種具體的協(xié)議,依據(jù)不同的應(yīng)用需求使用不同的協(xié)議對象進行配置,有效降低應(yīng)用實現(xiàn)對協(xié)議依賴耦合度,將多種傳輸協(xié)問題涉及面控制在最低限度。此種設(shè)計方式一方面能夠?qū)崿F(xiàn)Fa?ade配置過程當(dāng)中各種不同協(xié)議對象的綜合應(yīng)用,另一方面也能夠方便針對其他協(xié)議類型的替換與擴展處理。

3)基于依賴關(guān)系的松耦合分析

系統(tǒng)設(shè)計人員進行系統(tǒng)設(shè)計的過程中不得不面對持續(xù)變化的業(yè)務(wù)需求。在業(yè)務(wù)及與之相對應(yīng)的業(yè)務(wù)需求出現(xiàn)變化的情況下,需要針對IT架構(gòu)進行一定程度上的修改。從這一角度來說,應(yīng)用系統(tǒng)設(shè)計過程當(dāng)中需要考慮如何能夠更為有效的將業(yè)務(wù)流程的變化趨勢映射至整個應(yīng)用系統(tǒng)當(dāng)中,方便適應(yīng)變化。簡單來說,整個應(yīng)用系統(tǒng)所用參數(shù)均是借助于同一個抽象類所繼承而來的業(yè)務(wù)數(shù)據(jù)對象,在此基礎(chǔ)之上借助于重載函數(shù)方式實現(xiàn)業(yè)務(wù)編碼。此規(guī)律同樣適用于認證服務(wù),即在一個獨立的認證服務(wù)基類當(dāng)中往往存在多個類型的擴展方式。在整個應(yīng)用系統(tǒng)的處理過程當(dāng)中,數(shù)據(jù)信息首先會經(jīng)過認證服務(wù),認證服務(wù)能夠從這部分數(shù)據(jù)信息當(dāng)中獲取有價值的鑒定信息通過用戶認證操作。在用戶認證通過的情況下借助于關(guān)鍵字方式實現(xiàn)與核心服務(wù)處理的有效映射;在認證無法通過的情況下這部分數(shù)據(jù)信息將直接返回為認證失敗。借助于該方式能夠確保整個SOA架構(gòu)運行安全與穩(wěn)定。

4)傳輸通道定義規(guī)則分析

在中間件技術(shù)發(fā)展不斷完善的背景下,用戶對于數(shù)據(jù)傳輸?shù)目煽啃浴踩砸约皩崟r性要求日趨嚴格與具體,如何將中間件技術(shù)與系統(tǒng)高效融合在一起是整個系統(tǒng)設(shè)計的關(guān)鍵所在。結(jié)合上文有關(guān)多種協(xié)議傳輸方式以及松耦合分析來看,開發(fā)設(shè)計過程當(dāng)中需要結(jié)合以上兩個方面的問題以及SOA架構(gòu)自身特性展開工作。具體實現(xiàn)過程,如圖2所示,在進行內(nèi)部定義的過程中均會對應(yīng)兩個標(biāo)示符(通道協(xié)議符和通道標(biāo)示符),借助于通道協(xié)議符以及通道標(biāo)示符的合理匹配能夠完成有關(guān)數(shù)據(jù)傳輸通道的定位處理。在此基礎(chǔ)之上,總線通道內(nèi)部消息轉(zhuǎn)化適配器裝置能夠針對不同協(xié)議類型下的數(shù)據(jù)進行對象轉(zhuǎn)化,進而借助于安全認證方式的應(yīng)用,實現(xiàn)傳輸通道與應(yīng)用服務(wù)之間的綁定關(guān)系,通過這樣的傳輸通道定義規(guī)則,整個傳輸通道能夠安全且有效的進行數(shù)據(jù)通信作業(yè)處理。

3 結(jié)束語

在軟件產(chǎn)業(yè)建設(shè)持續(xù)發(fā)展的背景作用之下,企業(yè)對于計算機技術(shù)及互聯(lián)網(wǎng)網(wǎng)絡(luò)的依賴程度明顯加大。軟件自傳統(tǒng)意義上單機屬性的軟件工具逐步發(fā)展成為多種復(fù)雜有效融為一體的軟件系統(tǒng)。信息化背景下,企業(yè)面臨激烈的競爭,業(yè)務(wù)變更頻繁,構(gòu)建于總線通道技術(shù)上的SOA架構(gòu)設(shè)計方案能夠有效的應(yīng)對企業(yè)的這一需求。基于總線通道技術(shù)實現(xiàn)SOA架構(gòu)優(yōu)勢及效果顯著,值得關(guān)注??偠灾?,文章針對有關(guān)總線通信技術(shù)支持下的SOA架構(gòu)設(shè)計方案分析,希望能夠為今后相關(guān)研究與實踐工作的開展提供一定的參考與幫助。

參考文獻:

[1] 王洪偉,劉勰,丁佼佼,等.基于SOA的面向業(yè)務(wù)敏捷性流程集成模型[J].計算機工程,2010,20(36):277-280.

soa技術(shù)范文第5篇

【關(guān)鍵詞】I/O NIO BIO SOCKET通信 Java 多線程

1 引言

傳統(tǒng)BIO技術(shù)在Socket通信中,系統(tǒng)需要為每一個鏈接建立一個線程去處理其請求,隨著客戶端的并發(fā)量不斷增加后,會導(dǎo)致線程數(shù)量的增加嚴重影響系統(tǒng)的性能。由于并發(fā)量的增加有可能導(dǎo)致服務(wù)器宕機,嚴重影響到用戶在使用過程中的良好體驗。為解決傳統(tǒng)BIO的不足,Java 中提供了新的API----NIO和NIO2來解決由于BIO技術(shù)帶來的系統(tǒng)瓶頸問題。在NIO中系統(tǒng)不再為每一個用戶請求注冊一個線程,而是通過通道將每一個鏈接都注冊到多路復(fù)用器上,通過多路復(fù)用器對注冊在其上的鏈接進行輪詢檢查,發(fā)現(xiàn)有鏈接請求才會開啟線程對其進行處理。NIO只在有連接請求時selector才會不斷輪詢檢查通道IO操作是否完成,與NIO技術(shù)不同的是AIO技術(shù)是異非步阻塞的。AIO中不再需要多路復(fù)用器,而是由異步非阻塞通道直接操作read和write方法。在客戶端讀寫請求發(fā)出后不再等待服務(wù)器的響應(yīng),而是處理完成后由操作系統(tǒng)來通知應(yīng)用程序。AIO與NIO這兩種技術(shù)都極大地改變了傳統(tǒng)I/O流的不足。

2 Socket基本通信原理介紹

Socket是網(wǎng)絡(luò)通信中的其中一方,用來接收網(wǎng)絡(luò)通信中雙方其中一方的請求,方便的對雙方的數(shù)據(jù)進行傳輸。Socket通信分有連接的和無連接,面向連接的Socket通信與面向非連接的Socket通信相比有更高的可靠性和更有效的數(shù)據(jù)傳輸。本文基于有連接的套接字傳輸。

3 BIO、NIO、AIO技術(shù)比較

3.1 BIO技術(shù)簡介

BIO技術(shù)同步并且阻塞,在這種情況下,服務(wù)器需要為每一個連接開啟一個線程,只要有客戶端有請求服務(wù)器就需要開啟線程去進行處理。從客戶端傳來的每個請求,服務(wù)器都需要為其創(chuàng)建相應(yīng)的線程去處理其請求。在BIO中,由于其線程的開銷很大,適合于運用在并發(fā)量小的場景下。其基本模型如圖1所示。

BIO網(wǎng)絡(luò)通信基本步驟:

3.1.1 服務(wù)低端

(1)創(chuàng)建ServerSocket并綁定監(jiān)聽端口;

(2)創(chuàng)建Socket用來接收客戶端請求;

(3)創(chuàng)建輸入輸出流用來接收客戶端輸入或向客戶端輸出數(shù)據(jù);

(4)關(guān)閉輸入輸出流等系統(tǒng)資源。

3.1.2 客戶端

(1)創(chuàng)建Socket綁定IP地址及端口;

(2)創(chuàng)建輸入輸出流用來接收服務(wù)器端相應(yīng)或向服務(wù)器端發(fā)送數(shù)據(jù);

(3)關(guān)閉輸入輸出流等系統(tǒng)資源。

3.2 NIO技術(shù)簡介

NIO技術(shù)即New IO技術(shù),NIO技術(shù)由很多類和組件構(gòu)成,其最重要的由channel、Buffer、和Selectors三個核心部分組成。

Channel:Java NIO中的通道類似于流,但又不完全相同。既可以從通道中讀取數(shù)據(jù)到Buffer也可以將數(shù)據(jù)從Buffer寫入通道中。其中SocketChannel和ServerSocketChannel是NIO中提供的用來解決Socket通信中的服務(wù)器性能問題的。SocketChannel通過TCP協(xié)議來讀取網(wǎng)絡(luò)中的數(shù)據(jù),ServerSocketChannel用來接收鏈接來的請求以供服務(wù)器相應(yīng)。

Buffer:Buffer是用來為數(shù)據(jù)提供緩沖區(qū)的。在NIO技術(shù)中,所有的數(shù)據(jù)都必須經(jīng)過緩沖區(qū)。緩沖區(qū)本質(zhì)上為一塊可讀可寫的內(nèi)存塊,NIO中提供了不同數(shù)據(jù)類型的緩沖區(qū)來處理不同的數(shù)據(jù)請求,和一些基本的方法來操作緩沖區(qū)中的數(shù)據(jù)。

Selector:Selector是單線程來處理多個鏈接請求的關(guān)鍵。在Socket通信中,如果將多個鏈接請求注冊到多路復(fù)用器上,就可以用一個線程來處理多個鏈接請求,這樣就提高了Socket通信的效率。NIO通信中的網(wǎng)絡(luò)模型

如圖2所示。

NIO通信基本步驟:

3.2.1 服務(wù)器端

(1)創(chuàng)建多路復(fù)用器Selector 用來選擇通道;

(2)創(chuàng)建服務(wù)器端通道ServerSocketChannel;

(3)為多路復(fù)用器上注冊ServerSocketChannel用來將數(shù)據(jù)通過通道讀寫;

(4)申請Buffer存儲數(shù)據(jù);

(5)多路選擇器通過其key值輪詢檢查通道讀寫B(tài)uffer中的數(shù)據(jù)完成其通信過程。

3.2.2 客舳

(1)創(chuàng)建IP地址和端口號對應(yīng)的SocketChannel ;

(2)將SocketChannel設(shè)置為非阻塞模式;

(3)創(chuàng)建多路復(fù)用器Selector注冊SocketChannel到多路選擇器;

(4)多路選擇器輪詢檢查通道從Buffer中讀寫數(shù)據(jù)。

在NIO網(wǎng)絡(luò)通信模型中,客戶端向服務(wù)器端發(fā)起鏈接請求,客戶端將數(shù)據(jù)寫入服務(wù)器端Buffer中,然后通過channel來從Buffer讀取數(shù)據(jù)或向Buffer寫入數(shù)據(jù),對于通道中的數(shù)據(jù)必須經(jīng)過選擇器來向服務(wù)器端的線程發(fā)起請求。而每一個多路選擇器對應(yīng)一個線程模型,這樣一來,只有當(dāng)鏈接請求有效時服務(wù)器才為客戶端開啟線程處理數(shù)據(jù)。對于同步阻塞的NIO模型中客戶端在向服務(wù)器端發(fā)送完數(shù)據(jù)后會不斷詢問I/O操作是否就緒才能進行下一步的操作。此模型中由于不需要為每一個鏈接請求創(chuàng)建一個線程,大大減少了線程之間的切換帶來的巨大開銷。提高了I/O的效率,使得在socket網(wǎng)絡(luò)通信更加高效。但由于NIO在鏈接請求中會不斷詢問I/O操作是否完成,其適合運用在短鏈接且并發(fā)量大的場合下。

3.3 AIO技術(shù)簡介

AIO即為異步非阻塞IO,與NIO不同的是,在這種模式下,客戶端發(fā)起一個鏈接請求后不在詢問服務(wù)器端的I/O操作是否完成便立即返回。在使用過程中只需直接調(diào)用異步的read和write方法來讀寫數(shù)據(jù),在讀寫過程完畢后由操作系統(tǒng)主動通知應(yīng)用程序讀寫操作是否完成。由AIO的讀寫過程可以看出,因為在讀寫完成后客戶端不需要再詢問服務(wù)器端是完成了I/O操作,所以AIO非常適合于運用在那些并發(fā)量大且長連接的請求。AIO模型如圖3所示。

AIO中有幾個比較重要的類:

AsynchronousServerSocket:用來創(chuàng)建服務(wù)器端的ServerSocket并綁定地址監(jiān)聽端口。

AsynchronousSocketChannel:Socket在異步非阻塞通信中的應(yīng)用,用來表示一個連接請求,并用來在通信過程中傳遞數(shù)據(jù)。

AsynchronousChannelGroup:異步通道的分組管理,目的是問了資源共享。創(chuàng)建AsynchronousChannelGroup時需要為其綁定一個線程執(zhí)行器對象,這個線程池主要完成兩個任務(wù):處理I/O事件和派發(fā)CompletionHandler。在創(chuàng)建AsynchronousServerSocket時需要為其綁定一個AsynchronousChannelGroup。通過AsynchronousServerSocket創(chuàng)建的AsynchronousChannelGroup將屬于同一組,共享其中資源。

CompletionHandler:用于定義在異步IO操作完成后的回調(diào)接口。

3.3.1 服務(wù)器端

(1)創(chuàng)建AsynchronousChannelGroup;

(2)創(chuàng)建AsynchronousServerSocketChannel并將它綁定在AsynchronousChannelGroup上;

(3)為AsynchronousServerSocketChannel對象綁定端口號;

(4)調(diào)用accept()接收客戶端請求實現(xiàn)CompletionHandler接口調(diào)用讀寫方法進行讀寫數(shù)據(jù)。

3.3.2 客戶端

(1)創(chuàng)建AsynchronousSocketChannel;

(2)綁定IP地址和端口號鏈接服務(wù)低端實現(xiàn)CompletionHandler接口中方法直接進行讀寫數(shù)據(jù)。

3.4 各種I/O技g比較分析

BIO:同步阻塞I/O,使用難度簡單,可靠性低,適用于鏈接并發(fā)量小的架構(gòu)且對服務(wù)器資源依賴更高。

NIO:同步非阻塞I/O,使用難度復(fù)雜,可靠性高,適用于并發(fā)量大且鏈接較短的場景。

AIO:異步非阻塞I/O,使用難度一般,可靠性高,適用于并發(fā)量大且鏈接長的場景。

4 結(jié)語

傳統(tǒng)網(wǎng)絡(luò)在IO處理方面存在著性能不足的問題,NIO與AIO包的引入解決了傳統(tǒng)IO性能瓶頸問題,使的Java在網(wǎng)絡(luò)通信中有了更搞得效率。對于不同的IO來說,它們各自有有不同的應(yīng)用領(lǐng)域。對于那些并發(fā)量小,數(shù)據(jù)傳輸量小的場景來說,傳統(tǒng)的BIO完全可以勝任其工作。相反對于那些對性能要求比較高,并發(fā)量大且對IO的要求比較搞得場合來說應(yīng)該選擇NIO或者BIO技術(shù)。如果客戶端與服務(wù)器在長連接的情況下選擇AIO相比NIO會更加高效一些。相反,如果是短連接的應(yīng)用領(lǐng)域,則推薦使用NIO。

參考文獻

[1]范寶德,馬建生.Java非阻塞通訊研究[J].微計算機信息,2006,22(12-3):116-119.

[2]劉邦桂,李正凡.用Java實現(xiàn)流式Socket通訊[J].華東交通大學(xué)學(xué)報,2007,24(05):110-112.

[3]封瑋,周世平.基于Java NIO的非阻塞通信的研究與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,2004(09):32-35.

[5]任小強,陳金鷹,李文彬,胡波.網(wǎng)絡(luò)通信之Java Socket多線程通信[J].信息通信,2015(06):206-207.

作者簡介

王少輝(1992-),男,山西省平順縣人。碩士學(xué)位?,F(xiàn)為山東大學(xué)(威海)機電與信息工程學(xué)院學(xué)生。主要研究方向為電路與系統(tǒng)。

陳曉鵬(1992-),男,天津市人。碩士學(xué)位?,F(xiàn)為山東大學(xué)(威海)機電與信息工程學(xué)院學(xué)生。主要研究方向為電路與系統(tǒng)。

相關(guān)期刊更多

生態(tài)毒理學(xué)報

北大期刊 審核時間1-3個月

中國科學(xué)院

氣候與環(huán)境研究

北大期刊 審核時間1-3個月

中國科學(xué)院

時間頻率公報

部級期刊 審核時間1個月內(nèi)

中國科學(xué)院