新聞中心
你有沒(méi)有遇到過(guò),同一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù),每次做一個(gè)產(chǎn)品都要重新實(shí)現(xiàn)一遍同樣的功能,每一個(gè)產(chǎn)品都要單獨(dú)寫(xiě)一相同的功能模塊(比如登錄,獲取產(chǎn)品列表等),很多以前寫(xiě)的功能模塊到現(xiàn)在都不能復(fù)用了,工作幾年下來(lái),公司里沒(méi)有沉淀出可以復(fù)用的東西……
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、臺(tái)安ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的臺(tái)安網(wǎng)站制作公司
如果你遇到過(guò)相似的情況,也許你應(yīng)該關(guān)注一下SOA(Service-Oriented Architecture)——面向服務(wù)的體系結(jié)構(gòu),這不是一中具體的技術(shù),只是一個(gè)設(shè)計(jì)思想,他的主要思想就是把服務(wù)從項(xiàng)目中分離出來(lái),做成接口的形式供其他項(xiàng)目調(diào)用,這樣的好處很明顯,第一、只要約定好接口形式,任何語(yǔ)言都可以相互調(diào)用;第二、最大化的復(fù)用功能模塊;第三、可以橫向和縱向擴(kuò)展,等等。這時(shí)大家可能想起來(lái)Web Service來(lái)了,它主要機(jī)遇基于SOAP通過(guò)HTTP協(xié)議進(jìn)行調(diào)用,這種形式有很多弊病,比如開(kāi)發(fā)麻煩,要生成一個(gè)非常大的WSDL文件,生成的數(shù)據(jù)格式很復(fù)雜,有沒(méi)有一種既簡(jiǎn)單又安全的方式呢,當(dāng)然有了,那就是RESTful(Representational State Transfer)描述了一個(gè)架構(gòu)樣式的網(wǎng)絡(luò)系統(tǒng),很多公司的API都是通過(guò)該形式開(kāi)發(fā),比如微博API,QQ開(kāi)放平臺(tái),淘寶開(kāi)發(fā)平臺(tái)等等,那它有什么好處呢,首先它基于HTTP協(xié)議,通過(guò)即 POST、GET、HEAD、PUT 、DELETE、OPTIONS、TRACE等請(qǐng)求方式處理資源,然后返回通用數(shù)據(jù)格式,例如XML/JSON等,這樣不管是B/S,C/S架構(gòu)都能很好的支持。下面講解一下RESTful架構(gòu)設(shè)計(jì)。
首先架構(gòu)圖如下:
需要為每個(gè)程序分配一個(gè)appKey和一個(gè)appSecret, 然后通過(guò)URL訪問(wèn)服務(wù),最后服務(wù)返回?cái)?shù)據(jù)(JSON / XML格式)。
可能遇到的問(wèn)題:
1、安全性
當(dāng)請(qǐng)求端發(fā)送請(qǐng)求的時(shí)候,服務(wù)端要驗(yàn)證合法性,那該如何驗(yàn)證呢,大多數(shù)方案都是遵循OAuth(現(xiàn)在普遍都升級(jí)的到了OAuth3.0)。下面是我設(shè)計(jì)一種簡(jiǎn)單方式,在小應(yīng)用上可以采用。
2、請(qǐng)求控制
接口不能無(wú)限制的調(diào)用,不然服務(wù)會(huì)被跑慢,所以需要限制請(qǐng)求,方法很多,可以采用Nginx的limit模塊,限制用戶的調(diào)用頻率和最大連接數(shù)等。
3、服務(wù)擴(kuò)展
首先對(duì)于以后服務(wù)的升級(jí),需要對(duì)接口進(jìn)行非常好的設(shè)計(jì),避免后續(xù)改變URL,這里建議多應(yīng)用設(shè)計(jì)模式來(lái)進(jìn)行程序設(shè)計(jì),而隨著服務(wù)的訪問(wèn)量不斷增加,需要對(duì)服務(wù)進(jìn)行框架升級(jí),這個(gè)可以參考我的《項(xiàng)目成長(zhǎng)記》專(zhuān)題文章。
SOA架構(gòu)目前已經(jīng)很成熟,大家可以多進(jìn)行研究討論。
網(wǎng)站題目:PHP成長(zhǎng)記(二)——SOA&RESTful軟件架構(gòu)
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/pogjop.html