性能
聚焦于基于网络应用的架构风格的主要原因之一,是因为组件交互对于用户感知的性能和网络效率来说是一个决定性因素。由于架构风格影响到这些交互的特性,选择合适的架构风格能够决定基于网络应用部署的成败。
基于网络应用的性能首先取决于应用的需求,然后是所选择的交互风格,接下来是实现架构,最后是每个组件的实现。换句话说,应用软件无法回避为了实现该软件的需求而付出的基本成本;例如,如果应用软件需要数据位于系统A,并由系统B来处理,那么该软件无法避免将数据从系统A移动到系统B。同样地,架构无法超越其交互风格所允许的最高效率。例如,将数据从系统A移动到系统B的多次交互的成本不可能少于单独一次从系统A到系统B的交互。最后,无论架构的质量如何,交互的速度再快,也不可能比组件生产数据加上接收者消费数据所需要的总时间更快。
网络性能
网络性能这个度量手段用来描述通信的某些属性。吞吐量是信息在组件之间移交的速率。开销可分为初始化开销和每次交互(都会产生的)开销,这种区分有助于识别出能够跨多次交互共享初始化开销的连接器。带宽是在特定网络连接上可用的最大吞吐量。可用带宽是指应用实际可用的那部分带宽。
架构风格对于网络性能的影响是通过影响每个用户动作的交互数量和数据元素的粒度来实现的。鼓励小型的、强类型的交互的架构风格,对于仅需在已知组件之间移交小型数据的应用来说会很有效率,但是会在需要移交大型数据或协商接口的应用中导致过多的开销。同样地,一种需要通过多个组件之间协作来过滤大型数据流的架构风格,在主要需要小型控制消息的应用中也会显得不合时宜。
