一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

軟件系統開(kāi)發(fā)的數據交換協(xié)議

時(shí)間:2024-10-16 00:13:45 J2EE培訓 我要投稿
  • 相關(guān)推薦

軟件系統開(kāi)發(fā)的數據交換協(xié)議

  當兩個(gè)人交流的時(shí)候,我們需要一種共同的語(yǔ)言才能明白對方的意思,同樣的,兩個(gè)系統要交換數據,也需要定義一種雙方都明白的協(xié)議,我們稱(chēng)為“數據交換協(xié)議”。小編下面為你整理了關(guān)于軟件系統開(kāi)發(fā)的數據交換協(xié)議,希望對你有所幫助。

軟件系統開(kāi)發(fā)的數據交換協(xié)議

  數據交換協(xié)議

  數據交換協(xié)議的目的是讓兩個(gè)系統進(jìn)行正確的數據交互。所以幾乎各種開(kāi)發(fā)語(yǔ)言都提供了方便使用的數據交換功能。比如說(shuō)使用JAVA語(yǔ)言的開(kāi)發(fā)的系統使用 MySQL數據庫存儲數據,就是通過(guò)MySQL數據交換協(xié)議跟MySQL做數據交換;通過(guò)JAVA的RMI可以方便的做跨機器的分布式數據交換,RMI也就是一種數據交換協(xié)議。

  一般我們在不同的系統、不同的語(yǔ)言之間交換數據的時(shí)候,我們會(huì )選擇一種通用的交換協(xié)議或者自己定義一種容易使用的交換協(xié)議。 WebService曾經(jīng)非常流行, 在Web 2.0時(shí)代,輕量級的REST協(xié)議又開(kāi)始受到追捧。那么究竟在我們的系統中應該選擇什么樣的協(xié)議呢?

  如何選擇數據交換協(xié)議

  選擇什么樣的協(xié)議跟我們的應用場(chǎng)景有很大的關(guān)系。我們需要考慮我們開(kāi)發(fā)是否方便、接口是否容易發(fā)布、是否需要考慮帶寬占用成本、序列化和反序列化的性能、接口協(xié)議的擴展性等等。下面我們看下幾個(gè)比較常用的交換協(xié)議實(shí)現。

  上面表格列出了一些常用數據交換協(xié)議的一些特性的比較。這里并沒(méi)有比較好壞,只是想說(shuō)明不同數據交換協(xié)議是有區別的,所以我們需要在我們的應用場(chǎng)景中進(jìn)行選擇。

  開(kāi)放式

  像微博,SNS這種開(kāi)放平臺、對靜態(tài)html頁(yè)面提供javascript接口調用的系統都屬于這種類(lèi)型 。這種類(lèi)型的特點(diǎn)是:

  1、調用方不完全可控,而且是針對公網(wǎng)的,你可能不知道是誰(shuí)、是什么語(yǔ)言、是什么方式在調用你提供的數據接口;

  2、接口訪(fǎng)問(wèn)量一般都非常大,要求具有很高的性能和吞吐量;

  3、需要考慮安全問(wèn)題,外部提交的數據可能不是合法的。

  所以在這種情況下,需要考慮數據傳輸的帶寬消耗和數據交換協(xié)議的易用性,以及多語(yǔ)言支持程度。以前對于html頁(yè)面使用的javascript接口調用一般都使用XML格式,最近幾年幾乎都轉成了json格式了,因為json傳輸量更小,比XML更加容易使用。

  而對于開(kāi)放平臺,由于使用的場(chǎng)景很多,所以需要提供多種交換協(xié)議格式;旧隙紩(huì )提供XML和json。為了提高平臺本身的性能和客戶(hù)端的性能,也可以提供protobuf這種二進(jìn)制交換協(xié)議并且增加壓縮支持,以節省帶寬傳輸和解析的性能消耗。

  內部服務(wù)

  對于一個(gè)大型系統來(lái)說(shuō),內部服務(wù)的數據交換無(wú)處不在。從最基本和常見(jiàn)的數據庫數據交換、memcached緩存數據交換、消息隊列的數據交換到系統之間使用的RPC服務(wù)框架等等,都可以算作內部服務(wù)的數據交換。內部服務(wù)的特點(diǎn)是不用考慮防火墻,不對外開(kāi)放,速度快(基本無(wú)帶寬成本)。

  內部服務(wù)的數據交換協(xié)議的選擇空間非常大,一般需要考慮:

  1、數據交換協(xié)議的性能

  2、是否需要跨語(yǔ)言支持

  3、數據交換協(xié)議的消息體大小

  持久化存儲

  對于持久化存儲來(lái)說(shuō),每一種數據交換協(xié)議其實(shí)都可以實(shí)現。一般需要根據應用場(chǎng)景考慮:

  1、是否人工可閱讀

  2、存儲的空間消耗

  3、序列化和反序列化的性能

  4、是否經(jīng)過(guò)壓縮

  跨語(yǔ)言

  假設我們的網(wǎng)站前端頁(yè)面展示層使用PHP語(yǔ)言開(kāi)發(fā),中間業(yè)務(wù)邏輯使用JAVA語(yǔ)言開(kāi)發(fā),那么就涉及到跨語(yǔ)言數據交換的問(wèn)題。只要系統不是單純的使用一種語(yǔ)言,那么就必須考慮這個(gè)問(wèn)題。事實(shí)上,考慮未來(lái)的擴展和需求變化問(wèn)題,也最好考慮跨語(yǔ)言的數據交互協(xié)議。

  數據交換協(xié)議可升級

  在選擇數據交換協(xié)議的時(shí)候,我們同樣需要考慮類(lèi)似于數據庫表的?schema設計時(shí)的擴展問(wèn)題。比如一個(gè)提供用戶(hù)信息的數據交換協(xié)議接口,現在包含用戶(hù)名、性別、住址的信息,在升級過(guò)程中,增加了一個(gè)最后登錄的IP信息。如果不考慮數據交換協(xié)議升級帶來(lái)的影響,很可能會(huì )導致以前的客戶(hù)端出現異;蛘吲f的數據無(wú)法正確解析的問(wèn)題。

  兼容協(xié)議的巧用

  兼容協(xié)議的巧用非常有用,新產(chǎn)品兼容提供現有成熟的數據交換協(xié)議,可以降低使用門(mén)檻和產(chǎn)品的開(kāi)發(fā)速度。比如新浪開(kāi)源的memcacheQ就使用了memcached協(xié)議。

  數據交換協(xié)議的各種通用開(kāi)源實(shí)現非常多,數據交換協(xié)議只是一個(gè)非常寬泛的說(shuō)法,其實(shí)只要實(shí)現了數據的序列化和反序列化 ,那么就可以說(shuō)是一個(gè)可以交換數據的協(xié)議。數據交換協(xié)議的性能其實(shí)就是序列化和反序列化的性能,如果加上RPC,那么跟RPC實(shí)現本身的性能也有非常大的關(guān)系。

【軟件系統開(kāi)發(fā)的數據交換協(xié)議】相關(guān)文章:

復雜軟件系統開(kāi)發(fā)的技術(shù)05-26

OA軟件系統開(kāi)發(fā)設計的原則有哪些09-28

軟件系統開(kāi)發(fā)常見(jiàn)的十大瓶頸10-26

關(guān)于XML技術(shù)在數據交換中的應用09-28

內部審計師考試:電子數據交換07-11

嵌入式系統開(kāi)發(fā)特點(diǎn)08-09

嵌入式系統開(kāi)發(fā)流程07-04

嵌入式系統開(kāi)發(fā)簡(jiǎn)介07-22

oa辦公系統開(kāi)發(fā)的幾個(gè)誤區10-25

嵌入式系統開(kāi)發(fā)核心技術(shù)06-25

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看