在与人做技术交流时,发现有很多人把Service与Business混在一起来谈论,有很多人甚至认为他们是一个东西。在我看来,他们虽然有时代表一样的概念,但这是在很小的应用中的情况,也就是说那是并没有所谓business的概念,业务层都推在service中,因为很多人都停留在这层,所以会对此无感。
在我看来,business是业务层,他是常常变化的,所不定业务场景每天都在变,或者说他随时会被在平台系统中个摘下来,不再用了。而servicec层是一个并不常常变化的业务层面,他是一个稳定的板块,核心的,是无法摘掉的。这样来比如:service就像一棵大树的主树干,business就像大树的叶子、树枝,他是可以被摘掉或重新生长的,而service是大树的主树干,他也会发展,但确实稳扎稳打的向内部发展,让自身更加稳定、根子更加磐实,不可撼动,不可代替的。
在软件工程的项目设计中,最理想的状态时把business做到一种可以插拔式的业务形态,而service就像一个主电源线。这也许是如今讨论的如火如荼的soa应用的初衷。
soa要把业务给拆分,主要是为了做到一下几点:
1)程序写着写着,发现项目每次发布项目上线、启动项目太慢了,以前是小程序的时候,上线和启动的时间2分钟,当程序变大了,就需要1-2个小时甚至更久。上线发布就成为了一个问题,这不得不到了给程序瘦身的地步(这是soa实现最明显的一点);
2)知道要拆分系统,让他上线发