1.4 可重用的优势
SOA达人迷
在SOA应用中,最重要的一条原则是不需要丢弃任何软件。您可以利用每天使用的资源(软件资源),当然,这些应该是最实用的资源,将这些软件资源进行打包,并加以利用,并可反复重用。
很长时间以来,很多大型企业都有一个共同的问题:他们有很多类似的程序(软件应用),代表着常用的业务流程。当一个部门的业务流程发生了某些变化时,这个部门就会自行开发适合自己部门的软件,因此,在一个企业中,很多软件处理的业务流程几乎是相同的(当然,可能会有细微的差别)。很多IT公司都制定了相应的政策,在软件开发过程中尽量避免这类事情的发生。但是,在软件开发过程中,如果最后期限迫在眉睫,而且预算又非常紧张的话,IT公司宁可根据需求分析重新开发软件,也不会跟其他部门合作开发,因为前者更简单,也更快速。当企业并购其他企业,发现有相似(但不完全相同)的软件用于处理相同的业务流程时,这种重复就成了一个噩梦。
软件之间的这些细微差别使系统变得很复杂,一个业务规则的变化会影响到很多的应用程序,这样就会导致需要高额的维护成本,因此,在每个需要更改的应用程序中,试图找出每个实例是很困难的。对这类应用程序的变更管理的测试工作占用了大量的时间,阻碍了部门创新产品的开发,延误了企业新产品上市的进程。
利用SOA,可以将这些业务流程(例如开具发票、计算利率、安全预定等)定义为业务服务。简而言之,业务服务就是一个软件代码的密闭容器,用于描述特定的业务流程,并且业务流程之间可以相互连接(在第5章,我们会介绍更多的相关内容)。对于企业内到处使用的一个给定功能,我们最终都得到一个业务服务。利用SOA,如果企业需要更改某个业务策略,只需要在一个地方更改相应的业务服务即可,因为所有的部门使用的是相同的业务服务,这样就可以保证企业业务服务的一致性。
例如,如果企业想成立一个新部门,并不需要为之创建财务部、人力资源部、法律部、保洁部、培训部和旅游部。即使需要增加工作人员,也可以利用现在的财务部、人力资源部、法律部、保洁部、培训部和旅游部为这个部门提供服务。
但是,久而久之,问题就会出现了,IT人员最终会在每个程序都嵌入冗余功能。这种冗余,就像要为每个部门设立单独的财务部、人力资源部、法律部、保洁部、培训部和旅游部一样,SOA可从根本上消除它。冗余的消除为企业带来了明显的效益,使得企业的应用程序具有可扩展性、一致性和可维护性。
利用SOA,企业的管理者和IT人员共同定义业务服务,并确定策略和最佳实践。这些策略和最佳实践成为可编码的业务服务,代表成熟的企业业务流程。例如,在汇率转换的应用程序中,不需要设置30种变量,也不需要IT人员花费大量时间维护每个部门的变量,只需要使用一个业务服务即可完成该功能。因此,利用SOA可以实现新的程序应用模式。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。