成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

PHP除了做網(wǎng)站服務(wù)器還能做其他應(yīng)用服務(wù)器嗎?

網(wǎng)友解答: PHP做web服務(wù)器端開發(fā)是其重要的應(yīng)用,能不能做其它應(yīng)用的服務(wù)端呢?為了描述這個(gè)問題,首先要知道服務(wù)端都有哪些任務(wù),需要提供哪些服務(wù),以及現(xiàn)在的服務(wù)端概念發(fā)生了哪些變化?服

網(wǎng)友解答:

PHP做web服務(wù)器端開發(fā)是其重要的應(yīng)用,能不能做其它應(yīng)用的服務(wù)端呢?為了描述這個(gè)問題,首先要知道服務(wù)端都有哪些任務(wù),需要提供哪些服務(wù),以及現(xiàn)在的服務(wù)端概念發(fā)生了哪些變化?

服務(wù)端簡單的說就是業(yè)務(wù)邏輯的處理中心,在任務(wù)上簡單的說就是處理客戶的請求并生成回應(yīng)。從客戶的角度上來描述一個(gè)客戶端的請求處理過程大概需要以下幾個(gè)步驟:

用戶提交請求,請求中通常攜帶著數(shù)據(jù),這些數(shù)據(jù)有機(jī)構(gòu)化的也有非結(jié)構(gòu)化的(比如多媒體數(shù)據(jù))。

服務(wù)端接收用戶請求,提取客戶端提交的數(shù)據(jù),接著驗(yàn)證數(shù)據(jù)。

調(diào)用業(yè)務(wù)組件處理用戶的請求并生成回應(yīng)。

客戶端接收到回應(yīng)數(shù)據(jù)并呈現(xiàn)給客戶。

這里面的客戶不一定指的就是人,也有可能是其它參與到業(yè)務(wù)流程中的角色(業(yè)務(wù)模塊、打印機(jī)等等)。

從服務(wù)器的角度上來描述一個(gè)客戶端的請求處理過程大概需要以下幾個(gè)步驟:

1.當(dāng)客戶到達(dá)服務(wù)端,服務(wù)端要為其分配一個(gè)會(huì)話對象來表示此請求,會(huì)話對象封裝了客戶的所有信息,這個(gè)會(huì)話就代表了這個(gè)客戶請求,每個(gè)會(huì)話會(huì)分配一個(gè)唯一的ID。

2.服務(wù)端根據(jù)客戶的請求任務(wù)來觸發(fā)對應(yīng)的業(yè)務(wù)組件調(diào)用,服務(wù)端要到業(yè)務(wù)模塊目錄服務(wù)器中查找對應(yīng)的服務(wù)并返回此業(yè)務(wù)模塊對象,此步驟涉及到分布式調(diào)用過程。

3.如果業(yè)務(wù)組件服務(wù)器本身是分布式集群方式來部署,則服務(wù)端需要進(jìn)行一個(gè)負(fù)載判斷,以此來覺得調(diào)用哪個(gè)服務(wù)模塊來為本次請求進(jìn)行服務(wù)。

4.返回業(yè)務(wù)模塊對象后,調(diào)用其業(yè)務(wù)方法。此時(shí)業(yè)務(wù)模塊可能需要訪問分布式數(shù)據(jù)庫系統(tǒng),步驟與訪問業(yè)務(wù)模塊組件類似,通常采用映射層來通明化處理。

5.返回處理數(shù)據(jù),服務(wù)端把數(shù)據(jù)封裝到比客戶對應(yīng)的會(huì)話中。此步驟還會(huì)涉及到多服務(wù)器之間的會(huì)話管理。

服務(wù)端的處理過程是比較復(fù)雜的處理過程,其中涉及到分布式處理,集群處理,池化容器管理,分布式數(shù)據(jù)庫、事務(wù)管理、組件同步等等。不同服務(wù)對應(yīng)的協(xié)議也不盡相同,比如RMI使用IIOP,還有SOAP等對應(yīng)協(xié)議的使用。

根據(jù)以上服務(wù)內(nèi)容的分析我們可以看出,無論是PHP還是Python和Java,這些服務(wù)都可以完成,所以不管是web服務(wù)還是其它服務(wù),PHP都可以作為服務(wù)端編寫語言。至于選擇什么語言,需要考慮語言本身的性能、團(tuán)隊(duì)實(shí)際掌握情況以及開發(fā)周期要求等等。

目前在java作為服務(wù)端速度上有較大的優(yōu)勢,目前我的團(tuán)隊(duì)在開發(fā)周期允許的情況下(java開發(fā)周期較長)會(huì)盡量使用java做業(yè)務(wù)處理后臺(tái)的開發(fā)語言,如果開發(fā)周期端,且任務(wù)量小的情況下會(huì)使用PHP或者Python,Python比PHP還有慢一點(diǎn),但是Python開發(fā)速度最快。當(dāng)然還有其它語言也可以作為服務(wù)端開發(fā)語言,這里就不一一列舉了,當(dāng)然如果部署服務(wù)器有多平臺(tái)要求的情況下,就不要使用C#開發(fā)了。

目前服務(wù)器端的任務(wù)越來越重,分布式服務(wù)越發(fā)普遍,采用云計(jì)算服務(wù)來部署服務(wù)端已經(jīng)是大勢所趨,云計(jì)算也能為服務(wù)端提供可擴(kuò)展的性能要求,所以服務(wù)器的云端進(jìn)程會(huì)在大部分領(lǐng)域逐步實(shí)現(xiàn)。

我在后續(xù)的文章中會(huì)陸續(xù)分析服務(wù)端的云端框架結(jié)構(gòu),以及如何進(jìn)行服務(wù)端編程,請大家持續(xù)關(guān)注,謝謝!

時(shí)間倉促,難免有所遺漏,IT人劉俊明懇請大家多多指正!

網(wǎng)友解答:

當(dāng)然可以!

你所說的app后臺(tái)服務(wù)器,其實(shí)也是網(wǎng)站的一種形式,只不過只返回?cái)?shù)據(jù),不用管頁面布局罷了。它還是走h(yuǎn)ttp協(xié)議的,所以,這個(gè)沒難度。

對于第二點(diǎn),做桌面應(yīng)用,就比較困難,但不是做不了。方法有兩種:第一種就是做一個(gè)本地網(wǎng)站,前面做一個(gè)exe,但其實(shí)是個(gè)瀏覽器,看起來是普通桌面應(yīng)用,微信qq就是這種方法,只不過沒用php罷了。第二種方式是直接使用gui庫,就像寫普通的程序一樣,這種方式使用的少,而且要使用第三方庫,難度比較大。

對于編程語言來說,沒有什么做不成的,只是用這個(gè)語言可能會(huì)很麻煩而已。

標(biāo)簽: