1、所谓服务器软件,就是通过协议解析等等手段,把远在internet网络上的现实参与者,映射为系统内核里的抽象参与者,继而而加以处理。这里是“参与者”的概念,相当于系 统首先把外在的用户个体,一步一步拉近,抽象,最终变成系统内部的一个操作接口集合。另外,因为内部参与者是外部用户的在系统内的一个映射,需要维护好这一层关系。
2、如果系统服务多个参与者,而参与者之间本身就存在交互的话。是让参与者直接交互还是通过间接的“桥”来交互。也就是说,系统内的参与者需要对系统了解吗?是需要了解多个接口还是一个接口?还是把系统当作一个黑盒来使用还是一个白盒来使用?后者耦合降低。但是作为“桥”的那个东西,复杂性也不言而喻,需要多多考虑一下;
3、系统内的数据应该属于业务逻辑层还是数据层?关键的一点就是看这个数据对象是否需要持久性,是不是只是运行时存在。举个例子来说,数据库属于数据层,但是从数据库内取出数据缓存在系统内,用作判断就属于业务逻辑层内的东西。业务逻辑层的东西可以灵活构造,但是数据层的数据就相对稳定,也只要支持少量的接口,比如增、 删、修等。不能在数据层加入业务逻辑判断的代码,否则导致数据层和业务层耦合。业务逻辑如果需要判断数据层内部的一些东西,应该把这些数据缓存到业务层的零时对象内。