对于Tier,我们用其表示系统中物理上的硬件和软件,由执行同样功能的一台或多台服务器定义。相反地,Layer用来表示系统中完成指定任务的逻辑部分。
因此多个Layer可以同存在同一台物理Tier中,某个Layer也应该可以轻易移动到另一个Tier上。
良好的可重用性加上正确地对功能进行拆分将大大降低系统的维护成本。总而言之,逻辑分层可以很大程度上缩短开发周期,并允许不同团队并行开发。
物理层中一个重要的概念是,一个层就表示一个需要穿越的边界,这个边界可能是进程边界或计算机边界。穿过边界是代价很高的操作,若需要到达远程计算机,那么代价比到达同一台计算机中不同进程高。一个估计比例是穿越边界比进程内部调用慢100倍左右。若需要通过网络访问,还要慢一些。
通常来说 ,系统中多个物理层并不算是一个好的特性。物理层会降低整体性能,并增加整体的复杂性,这两个方面会影响到整个系统的创建和维护。因此虽然有些分层不可避免大,但是这并不是好的做法,然而又不得不这样。