导读:架构是关于复杂系统整体规划和关键细节的,复杂的事物都需要进行架构设计。公司与国家的组织管理架构、产品的生态体系架构、建筑工程的功能与非功能性架构、人生的目标规划与关键抉择架构……架构无处不在,架构之美也无处不在。
来源:华章计算机(hzbook_jsj)
一个极简又极精妙的航天系统架构
移动互联网的崛起有一项功能起了至关重要的作用,就是LBS,即基于地理位置的服务,这是传统的PC互联网没有的。移动App根据用户当前位置提供个性化服务,是移动应用的一项重要特性,而这个特性的背后主要使用的是GPS技术。
手机通过GPS模块可以提供米级精度的定位服务,那么手机怎么知道自己在哪里呢?全球各地的手机有几十亿部,GPS服务为何可以涵盖这么广的范围?
手机能够知道自己的位置是通过接受GPS卫星信号计算出来的。GPS看似是一个定位服务,其实背后是一个航天系统,基本原理如图C-1所示。
手机接收卫星的广播电文,知道卫星的空间坐标,带入欧氏空间距离公式,就可以得到一个方程组
其中,P1代表手机到卫星1的距离,这个距离可以通过手机收到卫星电文的时间减去卫星发送电文的时间(这个时间包含在电文中),再乘以光速计算得到,即P1=c(t–t1),其中t是手机收到卫星信号的时间,t1是卫星发送信号的时间,c是光速。计算得到距离以后,计算这个方程组就可以得到手机的坐标{x, y, z}。
但是,这里有一个问题,卫星的时间使用原子钟,并通过地面站精确校时,时间精度极高,而手机上的时间偏差就比较大,再乘以光速,误差可能会偏离地球。所以需要对手机时间进行校正,假设手机和标准时间的偏差t,那么上面的方程组就多出一个未知量,所以需要再增加一个方程,即
也就是说,需要再增加接收一颗卫星的信号,计算由四个方程购成的方程组的解,就可以得到手机当前所在位置的坐标,同时还知道了精确的时间。所以GPS也是一个极其精确的时钟系统,某些分布式系统需要在较远距离部署的服务器之间传输数据,同时保证数据的一致性,这时候需要使用精确的、全局统一的时间戳,这个时间戳也可以通过GPS来获取。
为了保证全球主要地区在任何时候都能至少接收到四颗卫星的信号,GPS常年维持30颗左右的卫星。卫星定位系统是一个极其庞大复杂的工程,全球只有极少数国家(联盟)才能实现。但是其核心架构原理却是非常简单又非常精妙的,架构之美尽在其中。
历经两千多年时间考验的水利工程架构
四川被称为天府之国,历史上一直都是中国的战略大后方。守住四川就有机会收复全中国,这样的事例在历史上多次重现。这主要是由于四川具有得天独厚的地理条件,一方面是易守难攻的军事地理条件,另一方面是成都平原优渥的农业种植条件,以及由此支撑起的庞大军事和农业生产人口。
但是成都平原并不是一开始就是沃野千里的良田,要成为良田一方面需要良好的土地,另一方面还需要良好的灌溉,使这片土地得到良好灌溉的是两千多年前的一项水利工程—都江堰。
修建都江堰水利工程的目的是引岷江水进入成都平原,灌溉那里