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

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

一、网络架构

常见的网络架构分为C/S和B/S两种模式。

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客户端来展现的,所以我们在手机看到的是新浪新闻、网易新闻等等客户端。在移动互联网领域,应该考虑的是更多的垂直服务,而不是大而全的产品。

二、服务器架构

接下来以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是视图,是应用根据数据处理的结果而整合的页面,最终会通过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是收费的)。对于初学者,可以考虑申请新浪云来进行技术开发。

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

1.注册新浪微博账号,两者是绑定的。

2.以新浪账号登陆新浪云计算中心。

3.在新浪SAE上创建新应用,如图:

这个时候可以通过二级域名来访问了,即意味着你拥有了云平台的主机资源和apache服务和php脚本解释引擎。

4.编辑或者上传代码(php语言开发)

五、微信公众平台开发接入

微信公众平台的后台管理有两种模式,一种是常规的模式,即由微信官方提供的后台菜单功能来进行管理,如用户管理、群发、交互回复等等;另一种是开发者模式,即由公众号的运营商自行开发后端,来对关注该公众号的用户提供服务,如自动回复、地理信息服务、移动支付等等。微信硬件服务也属于开发者模式,由微信硬件的厂商提供后端进行支持,详细的架构可以参考《物联网架构场景技术分析》一文。开发者模式给微信公众号注入了强大的生命力,有第三方创造力的加入,使得微信公众服务大放异彩,也可以预见基于微信的物联网会推到物联网大幅前进。

第三方后端服务假设在云前述的云平台基础上,只要按照微信提供的接口即可以接入微信公众平台。

1.先使用token来验证第三方主机方的存在。

2.第三方服务按照微信的接口来提供服务。目录微信公众号提供消息服务、对话服务、移动支付、硬件服务、地理信息、图像音频等方面的接口。详细请参考微信官方资料。

本文从大的宏观网络架构一步一步深入到所谓微观的微信后台接入,希望对你有所启发。

1、讲述C/S和B/S网络架构

2、从部署视图理解(S)服务器架构,包含web、业务引擎、数据库

3、从开发视图理解业务引擎的软件架构

4、云平台提供服务器资源(web服务、数据库服务、主机资源),申请免费云

5、云平台实现微信公众平台开发接入

作为嵌入式开发工程师,不用对未知领域有所畏惧,只要付出足够的努力,一切都能在掌握之中!

敬请关注微信公众号:嵌入式企鹅圈,获取更多嵌入式和物联网开发相关技术原创分享。

网络架构、云平台和微信公众号开发接入--基于嵌入式工程师的视觉相关推荐

  1. Java架构学习(五十一)微信公众号开发混合开发技术流程微信推送原理外网映射工具使用微信公众号接口认证代码获取微信客户端信息解决微信消息幂等问题

    一.微信公众号项目 SOA架构:面向接口开发,也就是相当于把传统的那种ssh项目的业务逻辑层抽取出来 做成接口. SSH架构与分布式架构的区别 SSH架构是整个项目的任何模块都在一个项目里面 分布式架 ...

  2. 微信公众号开发接入,利用微信公众平台申请测试号进行本地开发

    一.前言 随着微信的普遍,年轻一代逐渐从QQ转到微信的使用.界面简洁,功能强大,男女老少皆宜是微信的特点,也正是靠着这一特点,从而使得微信在国内成为了社交软件的巨头.因此在微信端里就衍生了很多的产品需 ...

  3. 微信公众号开发-接入

    一 首先实现内网穿透,公众号需要连接我们的服务器,内外无法访问,所以先实现自己的内网可以测试时连接外网,下载natapp,选择windows,顺便下载config,ini 配置文件.注册好购买免费的隧 ...

  4. PHP微信公众号开发插件,基于ThinkCMF1.5.0开发的微信公众号插件

    ThinkCMF升级到了1.5.0,引入的插件机制让我很是心动,于是乎写了这个微信公众号插件,纯属抛砖引玉,水平有限,不喜勿喷.大家可以先关注我的个人订阅号测试下各个小功能. 主要实现的功能有这么几个 ...

  5. 微信公众号开发教程(一) 验证接入

    作者:陈惠,叩丁狼教育高级讲师.原创文章,转载请注明出处. 微信公众号开发教程(一)验证接入 本篇文章主要介绍了微信公众号开发接入详细流程,希望对刚接触公众号开发的同学有所帮助,有兴趣的同学可多多关注 ...

  6. 微信公众号开发系列-13、基于RDIFramework.NET框架整合微信开发应用效果展示

    微信公众号开发系列-13.基于RDIFramework.NET框架整合微信开发应用效果展示 1.前言 通过前面一系列文章的学习,我们对微信公众号开发已经有了一个比较深入和全面的了解. 微信公众号开发为 ...

  7. 微信公众号开发系列-玩转微信开发-目录汇总

    引言 最遗憾的不是把理想丢在路上,而是理想从未上路. 每一个将想法变成现实的人,都值得称赞和学习.致正在奔跑的您! 在现在这个无处不在的互联网背景下,各种应用已不再仅仅局限于网页或桌面应用了,IOS. ...

  8. 微信公众号开发C#系列-12、微信前端开发利器:WeUI

    本文目录 1.前言 2.WeUI基本介绍 2.1 WeUI概述 2.2 为什么选择jQuery WeUI 3.jQuery WeUI基本用法 4.其他基础组件展示 4.1.switch开关 4.2.文 ...

  9. 网络架构、云平台和微信公众平台开发接入

    云与后端相关的技术似乎并不属于嵌入式和物联智能硬件开发工程师的范畴,但是嵌入式开发工程师有必要认识成熟的网络架构和相关的云技术,以拓展自己在系统架构方面的视野.大数据分析是物联网背后的核心价值,物联智 ...

最新文章

  1. javascript中apply、call和bind的区别
  2. 【新品发布】山海软件生产线pspl,包含了一个开源的混淆器
  3. (线段树)Just a Hook -- hdu -- 1689
  4. Oracle分组函数
  5. html5新变化,HTML5的新变化,分享
  6. [剑指offer]面试题第[41]题[Leetcode][第235题][JAVA][数据流中的中位数][优先队列][堆]
  7. ios 支付宝支付 回调数据_iOS逆向支付宝
  8. bme280 环境传感器开发板_半导体所在柔性湿度传感器与非接触控制方面取得进展...
  9. Spring Boot WebFlux 上手教程
  10. at for lte
  11. python判断语句 if elif else(一分钟读懂)
  12. 基于JEECG框架,前台VUE,后台java,导入导出
  13. 目标跟踪入门:使用OpenCV实现质心跟踪
  14. AtCoder Regular Contest 120 解题报告
  15. V831——PWM驱动舵机
  16. 数据中台,什么是数据中台?
  17. 腾讯云运维工程师认证(TCA)在线测试题
  18. 中山大学南方学院计算机专业分数线,中山大学南方学院历年录取分数线多少及各省最低投档线统计表...
  19. python123创意绘画_Turtle 创意绘画
  20. 树莓派人脸识别_童话树莓派|(十一)进入AI世界人脸识别(防疫检测)

热门文章

  1. 电脑电流,电脑有电流怎么办?在YY上说话总是出现吱吱 – 手机爱问
  2. 微信小程序手机订餐点餐系统(微信小程序,前台,后台)
  3. 银行从业资格证 个人理财 各种年金计算公式总结
  4. 中国媒体吐槽组装业之时,印度制造依托组装业稳步发展
  5. ISO27001认证流程是什么,去哪办理好
  6. 又一“刚需”经济崛起,“Artas们”能否成为秃头人群的心头好?
  7. 墨门云企业防泄密系统,有效阻止企业敏感信息外泄
  8. 光照 辐射度量学 - Radiant Intensity, Irradiance, Radiance 的概念
  9. 服务器内存不足应用无法登录,纸飞鸟无法打开怎么办 纸飞鸟登录不了解决方案...
  10. FLEX HSLIDER的使用