云與后端相關的技術似乎并不屬于嵌入式和物聯智能硬件開發工程師的范疇,但是嵌入式開發工程師有必要認識成熟的網絡架構和相關的云技術,以拓展自己在系統架構方面的視野。大數據分析是物聯網背后的核心價值,物聯智能硬件是物聯大系統的終端,開發工程師不僅要深入精通物聯技術,也應該去理解大系統,甚至整個生態領域的相關技術。
作為嵌入式開發工程師,也許并不需要熟悉云和后端的技術開發,但至少要對其中用到的技術和接口有一定的認識。
一、網絡架構
常見的網絡架構分為C/S和B/S兩種模式。
1. C/S是客戶端/服務器模式,典型應用如客戶端、百度云管家等;B/S則是瀏覽器/服務器模式,典型的應用就是門戶、銀行業務系統等。兩種模式的優點和缺點都顯而易見。
2. C/S交互性強、網絡通信量低、響應速度快,很多處理都集中在本地客戶端完成,是胖客戶端/瘦服務器。但是其是針對性開發,不利于變更和擴展。C/S通信編程基于TCP/IP層的socket編程,或者基于對socket的封裝類。
3. B/S方式分布性強、升級維護方便、開發簡單、總體成本低,本地只需要安裝一個通用的瀏覽器即可,是瘦客戶端/胖服務器。但其有數據安全性問題、對服務器要求過高、數據傳輸速度慢。B/S的通信是基于HTTP協議。隨著網頁腳本技術的提高,B/S也逐漸增強本地瀏覽器端的處理能力,以減輕服務器的負荷。
4.以上分析都是基于對PC端網絡架構的思考,但是在移動互聯網上卻有截然不同的體驗。以門戶新聞而言,在PC領域是以B/S方式來呈現的,但是如果將其直接移植到手機和平板端,會因為屏幕尺寸的差異使得用戶體驗變差,盡管在服務器端可以通過獲取終端的個性化參數來進行適配,但總體體驗是遠不上APP客戶端來展現的,所以我們在手機看到的是新浪新聞、網易新聞等等客戶端。在移動互聯網領域,應該考慮的是更多的垂直服務,而不是大而全的產品。
二、服務器架構
接下來以B/S架構為例來分析服務器端的架構。示意圖如下:

1.用戶瀏覽器來訪問業務系統,如銀行業務,瀏覽器是直接跟WEB頁面服務器交互的。WEB服務器一般會部署apache(或者tomcat),而業務系統的網頁(如html,php)則通過apache服務轉為HTTP協議通信給用戶。
2.業務系統不同的業務頁面由業務引擎來進行控制和處理,業務引擎還會訪問數據庫,另外還需要將處理結果的頁面視圖通過WEB向用戶展示。
3.如果數據訪問量不大,我們一般可以認為WEB是一臺服務器,業務引擎是一臺服務器,數據庫和服務是一臺服務器。如果數據量大,那WEB前面可能還有負載均衡服務器,業務引擎和數據庫可能是服務器集群。如果是超大型數據,如大數據,那傳統的oracle根本就不管用,要用到分布式文件系統,如Hadoop里面的HDFS。當然,如果數據量很小,一臺服務器裝下三者也可以。
三、后端軟件架構
以上分析是基于部署視圖對整個系統的理解。在一般的軟件業務系統中,web服務使用apache(開源),數據庫服務用Mysql(開源)等,都是成熟的軟件產品,或者我們可以認為它們是一種軟件工具。在實現業務系統中,我們能做的是去利用apache和mysql,而業務實現的核心是業務引擎的實現。
業務引擎是應用系統的核心,應用系統上成熟的模型是MVC模型。M是模型,是對數據庫應用接口的封裝,業務引擎即通過M模型的接口來訪問數據庫的業務數據;V是視圖,是應用根據數據處理的結果而整合的頁面,zui終會通過WEB推向用戶的瀏覽器;而C則是控制,即業務引擎的核心,其根據用戶的交互來進行有針對的數據處理。
用戶的交互zui終都會通過HTTP協議來傳送,而HTTP有兩種方式,類似編程中的函數的參數傳遞,一種是GET的方式,即在網頁的訪問地址后面加上參數來傳遞;另一種是POST方式,不出現在訪問地址后面,而是出現在消息體中。MVC的控制器會根據參數的不同來區分不同的子業務請求,并將它們交給對應的數據處理引擎來處理。
業務引擎的開發一般都是用解釋性語言來開發,如php,JSP,asp等等。中小型系統常用apache+php+Mysql這種組合,另外就是tomcat+jsp+mysql.
四、云平臺
云平臺并不是什么神秘的技術,對于應用者而言,云技術能給我們帶來極大的便利和成本優勢。我們來想象一下,一個公司如果只在廣州辦公,它開發的產品系統是服務全國,如果它只是在自己的公司架設服務器,但全國各地用戶訪問的IP包都要在網絡上跋山涉水來到廣州,北方的用戶的體驗肯定很差。假設淘寶的服務器都在杭州,那11.11的搶購,我們在廣州怎么搶得過杭州的。因為租賃云平臺來假設分布式的服務平臺是大型系統的*,有人可能會想,這些公司可以在全國各地租機房買服務器放著啊,成本呢?而且用戶的訪問也有峰值和周期性,360的搶票雖然牛掰,但如果不是過年,也沒多少人用吧。平時買那么多服務器就為了過年搶一搶多浪費,肯定比不上過年有針對性地租用云資源來得便宜。
簡單地說,對于一般用戶來說,云平臺就是提供在看不見的地方提供虛擬服務器主機(CPU、內存、硬盤)和數據庫、WEB服務(apache)等資源。對于云平臺的提供商,那才是虛擬集群技術人才的聚居地,咱們不去討論了。
目前,國內有阿里云、新浪云和百度云等云平臺。新浪云對于體驗用戶是免費的(php免費,java是收費的)。對于初學者,可以考慮申請新浪云來進行技術開發。
各種云的申請和創建云應用的過程都比較簡單。以新浪云為例簡單說明一下,詳細的例程可以百度得到。
1.注冊新浪微博賬號,兩者是綁定的。
2.以新浪賬號登陸新浪云計算中心。
3.在新浪SAE上創建新應用,如圖:

這個時候可以通過二級域名來訪問了,即意味著你擁有了云平臺的主機資源和apache服務和php腳本解釋引擎。
4.編輯或者上傳代碼(php語言開發)

五、公眾平臺開發接入
公眾平臺的后臺管理有兩種模式,一種是常規的模式,即由提供的后臺菜單功能來進行管理,如用戶管理、群發、交互回復等等;另一種是模式,即由公眾號的運營商自行開發后端,來對關注該公眾號的用戶提供服務,如自動回復、地理信息服務、移動支付等等。硬件服務也屬于模式,由硬件的廠商提供后端進行支持,詳細的架構可以參考《物聯網架構場景技術分析》一文。模式給公眾號注入了強大的生命力,有第三方創造力的加入,使得公眾服務大放異彩,也可以預見基于的物聯網會推到物聯網大幅前進。
第三方后端服務假設在云前述的云平臺基礎上,只要按照提供的接口即可以接入公眾平臺。
1.先使用token來驗證第三方主機方的存在。
2.第三方服務按照的接口來提供服務。目錄公眾號提供消息服務、對話服務、移動支付、硬件服務、地理信息、圖像音頻等方面的接口。詳細請參考資料。
本文從大的宏觀網絡架構一步一步深入到所謂微觀的后臺接入,希望對你有所啟發。
1、講述C/S和B/S網絡架構
2、從部署視圖理解(S)服務器架構,包含web、業務引擎、數據庫
3、從開發視圖理解業務引擎的軟件架構
4、云平臺提供服務器資源(web服務、數據庫服務、主機資源),申請免費云
5、云平臺實現公眾平臺開發接入
作為嵌入式開發工程師,不用對未知領域有所畏懼,只要付出足夠的努力,一切都能在掌握之中!
上一篇:滑動軸承還是滾珠軸承
下一篇:基于公有云TB級文件保護系統
免責聲明
- 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.lfljgfsj.com。違反者本網將追究相關法律責任。
- 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
- 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
2025第十一屆中國國際機電產品交易會 暨先進制造業博覽會
展會城市:合肥市展會時間:2025-09-20