新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式的開發(fā)云和后端技術(shù)的討論研究

基于嵌入式的開發(fā)云和后端技術(shù)的討論研究

作者: 時(shí)間:2018-07-25 來源:網(wǎng)絡(luò) 收藏

本文從大的宏觀網(wǎng)絡(luò)架構(gòu)一步一步深入到微觀的微信后臺(tái)接入,業(yè)務(wù)引擎是應(yīng)用系統(tǒng)的核心,M是模型,是對(duì)數(shù)據(jù)庫(kù)應(yīng)用接口的封裝,根據(jù)數(shù)據(jù)處理的結(jié)果而整合的頁(yè)面,實(shí)現(xiàn)引擎業(yè)務(wù)。

本文引用地址:http://butianyuan.cn/article/201807/383795.htm

云與后端相關(guān)的技術(shù)似乎并不屬于和物聯(lián)智能硬件開發(fā)工程師的范疇,但是開發(fā)工程師有必要認(rèn)識(shí)成熟的網(wǎng)絡(luò)架構(gòu)和相關(guān)的云技術(shù),以拓展自己在系統(tǒng)架構(gòu)方面的視野。大數(shù)據(jù)分析是物聯(lián)網(wǎng)背后的核心價(jià)值,物聯(lián)智能硬件是物聯(lián)大系統(tǒng)的終端,開發(fā)工程師不僅要深入精通物聯(lián)技術(shù),也應(yīng)該去理解大系統(tǒng),甚至整個(gè)生態(tài)領(lǐng)域的相關(guān)技術(shù)。

作為開發(fā)工程師,也許并不需要熟悉云和后端的技術(shù)開發(fā),但至少要對(duì)其中用到的技術(shù)和接口有一定的認(rèn)識(shí)。

一、網(wǎng)絡(luò)架構(gòu)

常見的網(wǎng)絡(luò)架構(gòu)分為C/S和B/S兩種模式。

1. C/S是客戶端/服務(wù)器模式,典型應(yīng)用如QQ客戶端、百度云管家等;B/S則是瀏覽器/服務(wù)器模式,典型的應(yīng)用就是門戶網(wǎng)站、銀行業(yè)務(wù)系統(tǒng)等。兩種模式的優(yōu)點(diǎn)和缺點(diǎn)都顯而易見。

2. C/S交互性強(qiáng)、網(wǎng)絡(luò)通信量低、響應(yīng)速度快,很多處理都集中在本地客戶端完成,是胖客戶端/瘦服務(wù)器。但是其是針對(duì)性開發(fā),不利于變更和擴(kuò)展。C/S通信編程基于TCP/IP層的socket編程,或者基于對(duì)socket的封裝類。

3. B/S方式分布性強(qiáng)、升級(jí)維護(hù)方便、開發(fā)簡(jiǎn)單、總體成本低,本地只需要安裝一個(gè)通用的瀏覽器即可,是瘦客戶端/胖服務(wù)器。但其有數(shù)據(jù)安全性問題、對(duì)服務(wù)器要求過高、數(shù)據(jù)傳輸速度慢。B/S的通信是基于HTTP協(xié)議。隨著網(wǎng)頁(yè)腳本技術(shù)的提高,B/S也逐漸增強(qiáng)本地瀏覽器端的處理能力,以減輕服務(wù)器的負(fù)荷。

4.以上分析都是基于對(duì)PC端網(wǎng)絡(luò)架構(gòu)的思考,但是在移動(dòng)互聯(lián)網(wǎng)上卻有截然不同的體驗(yàn)。以門戶新聞網(wǎng)站而言,在PC領(lǐng)域是以B/S方式來呈現(xiàn)的,但是如果將其直接移植到手機(jī)和平板端,會(huì)因?yàn)槠聊怀叽绲牟町愂沟糜脩趔w驗(yàn)變差,盡管在服務(wù)器端可以通過獲取終端的個(gè)性化參數(shù)來進(jìn)行適配,但總體體驗(yàn)是遠(yuǎn)不上APP客戶端來展現(xiàn)的,所以我們?cè)谑謾C(jī)看到的是新浪新聞、網(wǎng)易新聞等等客戶端。在移動(dòng)互聯(lián)網(wǎng)領(lǐng)域,應(yīng)該考慮的是更多的垂直服務(wù),而不是大而全的產(chǎn)品。

二、服務(wù)器架構(gòu)

接下來以B/S架構(gòu)為例來分析服務(wù)器端的架構(gòu)。示意圖如下:


1.用戶瀏覽器來訪問業(yè)務(wù)系統(tǒng),如銀行業(yè)務(wù),瀏覽器是直接跟WEB頁(yè)面服務(wù)器交互的。WEB服務(wù)器一般會(huì)部署apache(或者tomcat),而業(yè)務(wù)系統(tǒng)的網(wǎng)頁(yè)(如html,php)則通過apache服務(wù)轉(zhuǎn)為HTTP協(xié)議通信給用戶。

2.業(yè)務(wù)系統(tǒng)不同的業(yè)務(wù)頁(yè)面由業(yè)務(wù)引擎來進(jìn)行控制和處理,業(yè)務(wù)引擎還會(huì)訪問數(shù)據(jù)庫(kù),另外還需要將處理結(jié)果的頁(yè)面視圖通過WEB向用戶展示。

3.如果數(shù)據(jù)訪問量不大,我們一般可以認(rèn)為WEB是一臺(tái)服務(wù)器,業(yè)務(wù)引擎是一臺(tái)服務(wù)器,數(shù)據(jù)庫(kù)和服務(wù)是一臺(tái)服務(wù)器。如果數(shù)據(jù)量大,那WEB前面可能還有負(fù)載均衡服務(wù)器,業(yè)務(wù)引擎和數(shù)據(jù)庫(kù)可能是服務(wù)器集群。如果是超大型數(shù)據(jù),如大數(shù)據(jù),那傳統(tǒng)的oracle根本就不管用,要用到分布式文件系統(tǒng),如Hadoop里面的HDFS。當(dāng)然,如果數(shù)據(jù)量很小,一臺(tái)服務(wù)器裝下三者也可以。

三、后端軟件架構(gòu)

以上分析是基于部署視圖對(duì)整個(gè)系統(tǒng)的理解。在一般的軟件業(yè)務(wù)系統(tǒng)中,web服務(wù)使用apache(開源),數(shù)據(jù)庫(kù)服務(wù)用Mysql(開源)等,都是成熟的軟件產(chǎn)品,或者我們可以認(rèn)為它們是一種軟件工具。在實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)中,我們能做的是去高效利用apache和mysql,而業(yè)務(wù)實(shí)現(xiàn)的核心是業(yè)務(wù)引擎的實(shí)現(xiàn)。

業(yè)務(wù)引擎是應(yīng)用系統(tǒng)的核心,應(yīng)用系統(tǒng)上成熟的模型是MVC模型。M是模型,是對(duì)數(shù)據(jù)庫(kù)應(yīng)用接口的封裝,業(yè)務(wù)引擎即通過M模型的接口來訪問數(shù)據(jù)庫(kù)的業(yè)務(wù)數(shù)據(jù);V是視圖,是應(yīng)用根據(jù)數(shù)據(jù)處理的結(jié)果而整合的頁(yè)面,最終會(huì)通過WEB推向用戶的瀏覽器;而C則是控制,即業(yè)務(wù)引擎的核心,其根據(jù)用戶的交互來進(jìn)行有針對(duì)的數(shù)據(jù)處理。

用戶的交互最終都會(huì)通過HTTP協(xié)議來傳送,而HTTP有兩種方式,類似編程中的函數(shù)的參數(shù)傳遞,一種是GET的方式,即在網(wǎng)頁(yè)的訪問地址后面加上參數(shù)來傳遞;另一種是POST方式,不出現(xiàn)在訪問地址后面,而是出現(xiàn)在消息體中。MVC的控制器會(huì)根據(jù)參數(shù)的不同來區(qū)分不同的子業(yè)務(wù)請(qǐng)求,并將它們交給對(duì)應(yīng)的數(shù)據(jù)處理引擎來處理。

業(yè)務(wù)引擎的開發(fā)一般都是用解釋性語(yǔ)言來開發(fā),如php,JSP,asp等等。中小型系統(tǒng)常用apache+php+Mysql這種組合,另外就是tomcat+jsp+mysql.

四、云平臺(tái)

云平臺(tái)并不是什么神秘的技術(shù),對(duì)于應(yīng)用者而言,云技術(shù)能給我們帶來極大的便利和成本優(yōu)勢(shì)。我們來想象一下,一個(gè)公司如果只在廣州辦公,它開發(fā)的產(chǎn)品系統(tǒng)是服務(wù)全國(guó),如果它只是在自己的公司架設(shè)服務(wù)器,但全國(guó)各地用戶訪問的IP包都要在網(wǎng)絡(luò)上跋山涉水來到廣州,北方的用戶的體驗(yàn)肯定很差。假設(shè)淘寶的服務(wù)器都在杭州,那11.11的搶購(gòu),我們?cè)趶V州怎么搶得過杭州的。因?yàn)樽赓U云平臺(tái)來假設(shè)分布式的服務(wù)平臺(tái)是大型系統(tǒng)的不二選擇,有人可能會(huì)想,這些公司可以在全國(guó)各地租機(jī)房買服務(wù)器放著啊,成本呢?而且用戶的訪問也有峰值和周期性,360的搶票雖然牛掰,但如果不是過年,也沒多少人用吧。平時(shí)買那么多服務(wù)器就為了過年搶一搶多浪費(fèi),肯定比不上過年有針對(duì)性地租用云資源來得便宜。

簡(jiǎn)單地說,對(duì)于一般用戶來說,云平臺(tái)就是提供在看不見的地方提供虛擬服務(wù)器主機(jī)(CPU、內(nèi)存、硬盤)和數(shù)據(jù)庫(kù)、WEB服務(wù)(apache)等資源。對(duì)于云平臺(tái)的提供商,那才是虛擬集群技術(shù)人才的聚居地,咱們不去討論了。

目前,國(guó)內(nèi)有阿里云、新浪云和百度云等知名云平臺(tái)。新浪云對(duì)于體驗(yàn)用戶是免費(fèi)的(php免費(fèi),java是收費(fèi)的)。對(duì)于初學(xué)者,可以考慮申請(qǐng)新浪云來進(jìn)行技術(shù)開發(fā)。

各種云的申請(qǐng)和創(chuàng)建云應(yīng)用的過程都比較簡(jiǎn)單。以新浪云為例簡(jiǎn)單說明一下,詳細(xì)的例程可以百度得到。

1.注冊(cè)新浪微博賬號(hào),兩者是綁定的。

2.以新浪賬號(hào)登陸新浪云計(jì)算中心。

3.在新浪SAE上創(chuàng)建新應(yīng)用,如圖:



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉