『后台公论』卷首:何谓后台?

咱们成天说着前端,客户端,后台。到底什么才是后台?php

曾经和某网友聊天:前端

你已添加了XXX,如今能够开始聊天了。java

我:你好
XXX:你也好
我:你是作什么的呀?
XXX:我在酒吧上班,作前台的。
我:哦哦,那咱俩差很少,我作后台的。
前台后台web

前台(前端)后台,在英语中即:Front-End,Back-End。广义上的前端包括客户端(PC、Android、IOS等),后台即一般意义上的Server。没错,就是在互联网诞生之初即存在的C/S架构。服务的提供方成为Server,通常是一个偏中心化的服务集群。客户端Client为用户接入服务的控制重点。C/S架构有明显的主次之分,这与后来产生各种种子(BT、电驴)下载技术的P2P对等网络相对应。在P2P网络中不区分C或S,每一个节点既是C也是S,这即是对等(Peer)网络。编程

言归正传,后台一词描述的仍是Server这一律念,不过因为网络规模的增大,数据量的攀升,Server的后台架构也变得愈来愈复杂,分层愈来愈多,早已不是简单Server一词可以囊括的了。本专栏文章始于C++后台架构,却又不只限于此,会穿插对比各语言的通讯模型以及语言无关的各种概念。后端

这里的后台开发指的就是Linux上的C++编程。首先澄清一点,不少人(好比我之前)对后台开发的误解,一般人们说前端后台,后台就立刻联想到web后台,java、php和各类web框架横飞的既视感。因此大学的时候,当我看到腾讯招聘后台工程师,技能要求是C++也尽是狐疑。网络

白马非马架构

其实web后台属于后台,但后台却不仅有web后台。二者应该是包含与被包含的关系。提到后台,通讯是永远的主题。一般咱们谈到Python的Django,PHP的Think PHP、Yii框架所涉及到的开发知识,都是聚焦于展示和逻辑。而屏蔽了底层通讯的细节,这是框架之利。但也削弱了开发者对于后台达到一切尽在掌握的一些可能性。框架

从网络协议的角度分析,web后台聚焦的是 HTTP。web后台能够看做是一个后台架构中最靠前的东西,它解析了HTTP请求,而后层层转发给了后面整个分布式系统的许多组件,并调用他们的服务。这一层可被称之为“接入层”,C++语言进行接入层的实现,通常就是经过 CGI了,CGI这被教科书都写进历史的技术,相信不少人都不齿为用。但其实不论是 Java的Servlet,C#的 WCF,或是 Python的 WSGI,Ruby的 Rack多多少少都是受CGI影响而演化而来。行远自迩,学习了解CGI,并非浪费时间。socket

除了HTTP,企业内部主机之间绝大部分是自定义协议,而这些协议多半是在TCP 或 UDP之上实现应用层协议。这个层面上来讲C++后台关注的是socket编程,因为C++自己并无官方的Socket通讯的库,其实这里使用的通常也就是Linux C语言的网络编程。C和C++各自的拥趸们,争与不争,它们就在那里。

天下大同

编程语言很重要,一门语言一般意味着的是一个技术栈,好比C++的技术架构的后台和Java的后台,相信毫不仅仅是语言的不一样,各类组件以及编程的模式都差异很大。但其实时代发展到现在,编程语言之间的差别性却又不那么重要了。在当代规模的大型网络的架构中,毫不仅仅是经过某门语言自身的特效就能解决性能瓶颈的,对于架构的演进,逐渐趋于大同。

与前端技术的百花齐放不一样,后端技术相对落寞,甚至不乏炒冷饭的嫌疑。在Web Service逐渐式微以后,各式RPC又被炒了起来。在豪情万丈的 CORBA在新世纪因为J2EE的出现而逐渐雪藏多年以后,Facebook推出的 RPC框架 Thrift与 CORBA相比又是何其类似。固然,炒冷饭自己不是目的,无论黑猫白猫,能抓老鼠的就是好猫。旧技术在不停推陈出新后确实能焕发出新的生命力。

时光荏苒,新概念层出不穷。不论是偏向于Web层的概念 Restful API仍是相对繁重的分布式概念 SOA,都在趋向于接口的解耦和服务化,经过组合不一样服务便可快速搭建出新业务。回想起WS(Web Service),让人唏嘘。理论上讲 WS属于 SOA,但最终走向衰落。究竟是 WS生不逢时,仍是新时代服务化的概念在由于弥补了 WS的缺点才得以焕发新生?这样的问题没有答案。“是耶非耶,化为飞蝶”。惟一能够确定的是,后台技术在润物无声中不停的发展,进步。

相关文章
相关标签/搜索