基于嵌入式的开发云和后端技术的讨论研究

 

  就要履行好职责、对得起组织。极香港最快开奖现场直播。本文从大的宏观网络架构一步一步深入到微观的微信后台接入,业务引擎是应用系统的核心,M是模型,是对数据库应用接口的封装,根据数据处理的结果而整合的页面,实现引擎业务。

  云与后端相关的技术似乎并不属于嵌入式和物联智能硬件开发工程师的范畴,但是嵌入式开发工程师有必要认识成熟的网络架构和相关的云技术,以拓展自己在系统架构方面的视野。大数据分析是物联网背后的核心价值,物联智能硬件是物联大系统的终端,开发工程师不仅要深入精通物联技术,也应该去理解大系统,甚至整个生态领域的相关技术。

  作为嵌入式开发工程师,也许并不需要熟悉云和后端的技术开发,但至少要对其中用到的技术和接口有一定的认识。

  1. C/S是客户端/服务器模式,典型应用如QQ客户端、百度云管家等;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客户端来展现的,所以我们在手机看到的是新浪新闻、网易新闻等等客户端。在移动互联网领域,应该考虑的是更多的垂直服务,而不是大而全的产品。

  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是视图,是应用根据数据处理的结果而整合的页面,最终会通过WEB推向用户的浏览器;而C则是控制,即业务引擎的核心,其根据用户的交互来进行有针对的数据处理。

  用户的交互最终都会通过HTTP协议来传送,而HTTP有两种方式,类似编程中的函数的参数传递,一种是GET的方式,即在网页的访问地址后面加上参数来传递;另一种是POST方式,不出现在访问地址后面,而是出现在消息体中。MVC的控制器会根据参数的不同来区分不同的子业务请求,并将它们交给对应的数据处理引擎来处理。

  业务引擎的开发一般都是用解释性语言来开发,如php,JSP,asp等等。中小型系统常用apache+php+Mysql这种组合,另外就是tomcat+jsp+mysql.

  云平台并不是什么神秘的技术,对于应用者而言,云技术能给我们带来极大的便利和成本优势。我们来想象一下,一个公司如果只在广州办公,它开发的产品系统是服务全国,如果它只是在自己的公司架设服务器,但全国各地用户访问的IP包都要在网络上跋山涉水来到广州,北方的用户的体验肯定很差。假设淘宝的服务器都在杭州,那11.11的抢购,我们在广州怎么抢得过杭州的。因为租赁云平台来假设分布式的服务平台是大型系统的不二选择,有人可能会想,这些公司可以在全国各地租机房买服务器放着啊,成本呢?而且用户的访问也有峰值和周期性,360的抢票虽然牛掰,但如果不是过年,也没多少人用吧。平时买那么多服务器就为了过年抢一抢多浪费,肯定比不上过年有针对性地租用云资源来得便宜。

  简单地说,对于一般用户来说,云平台就是提供在看不见的地方提供虚拟服务器主机(CPU、内存、硬盘)和数据库、WEB服务(apache)等资源。对于云平台的提供商,那才是虚拟集群技术人才的聚居地,咱们不去讨论了。

  目前,国内有阿里云、新浪云和百度云等知名云平台。新浪云对于体验用户是免费的(php免费,java是收费的)。对于初学者,可以考虑申请新浪云来进行技术开发。

  各种云的申请和创建云应用的过程都比较简单。以新浪云为例简单说明一下,详细的例程可以百度得到。

高清跑狗图| 红牡丹一点红高手论坛| 香港现场开奖报码| 王中王幽默玄机中特奖| 正版八仙过海图玄机图| 天空六合免费资料大全| 香港创富图库大全| 香港挂牌正版彩图正挂i| 平特一尾长年公式规律| 五湖四海的开奖记录|