天天看点

企业级系统架构和工具类软件架构的区别 - ohmyjava

企业级系统架构和工具类软件架构的区别

今天同事问起在系统中使用Web Service有什么用处,和一般的直接写在客户端有什么区别,有什么好处?

回答这个问题,确实有点意思。因为既然问了这个问题,就说明有一些前提的没有达成一致,直接解释技术本身,是很容易事倍功半的。

因此首先搞清楚,推荐使用SOA架构的背景,是我们在做企业内部的信息化工作。在这个大背景下,我们再来探讨SOA是不是好的问题。否则,SOA不一定是最好的方式。

那么我们尝试系统地去分析在企业信息化的背景下,和一般的工具类软件架构到底有什么不一样的地方。

第一、用户群体不一样。工具类软件往往是独立用户使用。而企业级的系统,往往用户涉及不同的岗位和个人,最经常涉及的就是需要协同工作的岗位和需要审批的经理。如一个项目新建的过程,在工具类产品中,只是一个新建界面,而在企业级系统中,往往会出现经理审批是否允许新建项目的功能。

第二、企业环境中往往存在多个系统。系统之间的整合的需求非常旺盛。企业用户对于易用性的要求很高,但却往往只能忍气吞声地埋没下来,往往是一边叫苦,一边工作。他们也希望能改进,但总是不知道为什么得到的回答的是NO.一旦可以整合,往往可以解决很多日常工作复杂度的问题。

第三、数据访问并发要求不一样。企业级的信息化系统,往往要求多人同时操作数据,并且数据可以多人共享。而工具类软件不是这样的,往往独立访问,独立保护就可以了。

第四、部署方式不一样。企业级的信息化系统,核心部分往往要部署到一台独立服务器上,并且要求这台服务器24小时提供服务。而工具类软件往往安装在本地,且随时打开,随时关闭。

第五、历史数据要求不一样。企业级信息化系统,往往对于历史数据要求很高,需要积累各个时候的数据。这样升级系统的时候,必须要求兼容就的数据,这就是迁移。而工具类软件往往不是这样。虽然很多好的软件都可以做到兼容旧版本的数据,但这不是强求。

针对上面的不一样,必然要求我们在进行企业级信息化的系统的架构的时候,需要考虑这些不同点。而SOA正是满足这些条件的一种架构方式。针对上面的不同点,总结成技术点,可以有下面几点要求:

第一、系统之间需要考虑整合问题

第二、系统部署完了之后,尽量考虑复用

第三、需要考虑并发效率

第四、需要提供数据共享

下面就来看看SOA是如何满足上面的要求的。

需求 SOA 相似架构技术
整合 跨语言平台特性 SOA,REST,DB
复用 复用性 SOA,REST
并发 横向扩展性 SOA
共享 封装性 SOA,DB,REST
安全 颗粒度低 SOA,REST

大部分能力,是因为我们采用的Web Service是基于xml技术,且架构在http协议之上直接获取的,比如兼容性和并发性。

其实说了这一圈回来,倒也回答了一开始的问题了。是不是罗嗦了?因为最近要和的敬爱交流一个企业级信息化的课题,所以想多了,大家不要见怪了,呵呵。