服务器和中间件在技术架构中扮演什么角色,它们之间有何本质区别?