通过人与人的交互,反思软件系统与软件系统之间的集成交互问题
我们假设一个国际化的大公司里,有来自多个国家的员工,这些员工又工作在不同的部门里,负责不同的任务。
首先:
1. 这些人可能是白人,也可能是黑人,也可能是黄皮肤的我们,这就像我们软件开发里的语言一样,
有的是.NET体系,有的是JAVA体系的。所以不太可能要求一个公司里的人必须全部是黄皮肤的,或者是某
个民族的,那就是歧视种族的问题了,通过这个例子我想说一下,没必要非是.NET或者是JAVA必
须是你死我活,我以前在这个问题上犯过严重错误,现在终于想通了。
【.NET、JAVA并不是非要你死我活】
首先:
1. 这些人可能是白人,也可能是黑人,也可能是黄皮肤的我们,这就像我们软件开发里的语言一样,
有的是.NET体系,有的是JAVA体系的。所以不太可能要求一个公司里的人必须全部是黄皮肤的,或者是某
个民族的,那就是歧视种族的问题了,通过这个例子我想说一下,没必要非是.NET或者是JAVA必
须是你死我活,我以前在这个问题上犯过严重错误,现在终于想通了。
【.NET、JAVA并不是非要你死我活】
2. 对于一个规范的公司来讲,每个人的分工是很明确的,例如财务就是干啥的,人力资源有是干啥的,他们
分工很明确,不可能是一个人啥事情都干了,很容易干不好,或者干不专业。对我们开发人员来讲,就是意味
着我们的某个系统,应该有个明确的功能定位,应该有个明确的分工,不太可能某个系统是万能的,也就不存
在多个系统之间的集成问题所在了。
【分工就乱,集成就更乱了,甚至是不可能集成了】
分工很明确,不可能是一个人啥事情都干了,很容易干不好,或者干不专业。对我们开发人员来讲,就是意味
着我们的某个系统,应该有个明确的功能定位,应该有个明确的分工,不太可能某个系统是万能的,也就不存
在多个系统之间的集成问题所在了。
【分工就乱,集成就更乱了,甚至是不可能集成了】
3. 规范的公司,都应该有些制度,不应该是财务管招聘,人事是管财务报表,应该是哪个部门做什么事情,
对什么事情负责,那个部门是哪些数据的权威来源,例如,我们登录系统的帐号,应该是人事部门管理,我们
的公司的财务报表应该是从财务部门获取,不应该是每个部门都有独立全套的数据,应该是负责他该负责的部分,
说白了,还是跟上面的2有些类似,分工明确,责任明确。
【重复的数据,以哪个来源为标准依据】
对什么事情负责,那个部门是哪些数据的权威来源,例如,我们登录系统的帐号,应该是人事部门管理,我们
的公司的财务报表应该是从财务部门获取,不应该是每个部门都有独立全套的数据,应该是负责他该负责的部分,
说白了,还是跟上面的2有些类似,分工明确,责任明确。
【重复的数据,以哪个来源为标准依据】
4.部门与部门的沟通,员工与员工的沟通的,我们国家政府部门之间沟通,都用标准的公文形式,这也是个沟通方式,
沟通可以是书面的,也可以口头的,这个类似于我们到底用 WebServeric、Remoting、WCF等一样,
沟通还可以用英文、中文或日文,只要这两个互相沟通的员工能说清楚就可以了,互相能读懂就可以了,事情能办理好了。
【标准接口,有输入输出,例如公文能发出去另一方还需要能接收公文】
沟通可以是书面的,也可以口头的,这个类似于我们到底用 WebServeric、Remoting、WCF等一样,
沟通还可以用英文、中文或日文,只要这两个互相沟通的员工能说清楚就可以了,互相能读懂就可以了,事情能办理好了。
【标准接口,有输入输出,例如公文能发出去另一方还需要能接收公文】
其次:
对现实中的软件系统之间的交互集成的理解,先不谈Biztalk、EAI等,那不是我的思想,那需要花费巨资才能购买。
对现实中的软件系统之间的交互集成的理解,先不谈Biztalk、EAI等,那不是我的思想,那需要花费巨资才能购买。
整理的基本思想看下图

1. 我们经常能实现的系统之间的交互,通过分析底层的数据库结构,然后适当的进行添加触发器等机制,
可以完成系统之间的数据交互,这个虽然不是好方法,但是也是迫不得已的方法,不用修改程序代码。
2. 我们可以直接利用应用系统的页面,将数据进行导入导出操作,直接导入到另外一个系统,最理想的
状态是,这2个系统最起码都有导入导出功能,这样避免了同样的数据在2个系统中重复录入的罪孽。
所以,现在开发的系统,都应该有批量导入导出功能,否则,不算是一个开放的系统。但是这个有个不好
的地方是,也是严重的缺陷是,都是要人工进行干预,需要在两个系统之间奔波,也是很辛苦的事情。
3. 最理想的状态是,在应用程序之间能互相调用,用户只在一个系统里录入,另一个系统将在被后台
自动调用。这时就是需要2个系统都有规范的接口定义,可调用的公开方法及手段。现在大部分公司都
忽视这部分的要求,以后应该是越来越重视这部分的工作。应该成为软件验收的重要功能指标之一了,
现在很多公司里,同样的数据需要重复录入的问题很严重,甚至是电子化没有解放我们,而是越电子化,
我们越变成了电脑软件的奴隶,需要将同样的数据,在不同的软件里录入,悲哀啊,最可怜的是那那些
最底层的员工,让他们录入数据,他们必须得录入,虽然很反感,没办法啊,领导的命令下来了。
大家开发的系统都应该有可编程接口,可进行数据录入、调用核心业务处理流程,这样我们的政府、企业
信息化会更顺利,大家也不会排斥上多个IT系统了,现在推IT系统也很难,人家就怕重复录入数据,不是
怕花钱。
1. 我们经常能实现的系统之间的交互,通过分析底层的数据库结构,然后适当的进行添加触发器等机制,
可以完成系统之间的数据交互,这个虽然不是好方法,但是也是迫不得已的方法,不用修改程序代码。
2. 我们可以直接利用应用系统的页面,将数据进行导入导出操作,直接导入到另外一个系统,最理想的
状态是,这2个系统最起码都有导入导出功能,这样避免了同样的数据在2个系统中重复录入的罪孽。
所以,现在开发的系统,都应该有批量导入导出功能,否则,不算是一个开放的系统。但是这个有个不好
的地方是,也是严重的缺陷是,都是要人工进行干预,需要在两个系统之间奔波,也是很辛苦的事情。
3. 最理想的状态是,在应用程序之间能互相调用,用户只在一个系统里录入,另一个系统将在被后台
自动调用。这时就是需要2个系统都有规范的接口定义,可调用的公开方法及手段。现在大部分公司都
忽视这部分的要求,以后应该是越来越重视这部分的工作。应该成为软件验收的重要功能指标之一了,
现在很多公司里,同样的数据需要重复录入的问题很严重,甚至是电子化没有解放我们,而是越电子化,
我们越变成了电脑软件的奴隶,需要将同样的数据,在不同的软件里录入,悲哀啊,最可怜的是那那些
最底层的员工,让他们录入数据,他们必须得录入,虽然很反感,没办法啊,领导的命令下来了。
大家开发的系统都应该有可编程接口,可进行数据录入、调用核心业务处理流程,这样我们的政府、企业
信息化会更顺利,大家也不会排斥上多个IT系统了,现在推IT系统也很难,人家就怕重复录入数据,不是
怕花钱。
最近在杭州临安做项目,看到银行的电子转账程序,可以将需要转账的数据,类似Excel一样,批量的复制粘贴,
若是一个个人必须通过页面输入,那这个软件真的难用得要命了,人家有一个功能,可以批量导入或者批量
复制粘贴,可以从另一个系统导入数据或者从另一个系统批量复制数据,然后直接粘贴到这个类似Excel的
页面里就可以,用户不会觉得很繁琐,复制粘贴一下就可以,甚至不用导入导出了,感觉很好用的,我们开
发的系统也应该多多借鉴。
若是一个个人必须通过页面输入,那这个软件真的难用得要命了,人家有一个功能,可以批量导入或者批量
复制粘贴,可以从另一个系统导入数据或者从另一个系统批量复制数据,然后直接粘贴到这个类似Excel的
页面里就可以,用户不会觉得很繁琐,复制粘贴一下就可以,甚至不用导入导出了,感觉很好用的,我们开
发的系统也应该多多借鉴。
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/451625,如需转载请自行联系原作者