设计软交换时应考虑硬件、操作系统、中间件、协议和商业应用这几个设计元素。