
SOA方法学贯穿于IT生命周期的各个阶段和各个方面:IT系统项目的规划,系统分析和设计,系统的实施,系统的部署和维护,以及整个过程中的监控和管理等……
作者:newhappy2008
下图勾勒了ERP及相关技术、新功能所处的发展阶段,以及各自到达成熟期所需的时间。
正处于上升阶段的技术包括ERP移动商务、基于Linux平台的ERP、开源ERP、业务流程融合、面向服务的架构(SOA)、集成PLM功能(产品生命周期管理)、业务流程管理、企业的应用技术堆栈管理等。其中,SOA技术已经获得主流厂商的普遍接纳,预计两年内即可在ERP产品中获得成熟地应用。而业务流程融合、PLM功能目前还多以独立的解决方案提供,而且有着良好的市场应用前景,预计短期内不会被ERP厂商集成到产品中。
目前国内的软件方面的人才开始大量的关注软件工程这门学科,大有80年代末90年代初国人追捧汉字系统的劲头,但是实事求是的理解国内的开发过程,我认为软件工程固然是一个方面(甚至可能是非常重要的一面),但隐藏在表象后的问题也是不容忽视的, 我认为目前开发环节中存在着一些问题或理解的偏差,其中典型的表现在:
企业架构(EnterpriseArchitecture:EA)是从企业全局的角度审视与信息化相关的业务、信息、技术和应用间的相互作用关系以及这种关系对企业业务流程和功能的影响。
建立企业架构的作用:做好企业信息化顶层设计
企业架构是建设企业信息化的蓝图
企业信息化是一个系统工程,与建筑或制造工程不同的是,企业信息化的对象是“企业”,而不是一个建筑物或是一个产品。在建筑工程或是制造工程中,我们都会有一张建筑物或产品的设计图纸,它是搭起高楼大厦或是生产出形形色色的产品的基础。同样,在企业信息化这样的大工程中,也需要一张描绘企业在“信息化时代”运行的设计图纸,这就是企业架构。企业架构能为企业各级领导和员工描绘出一个未来企业信息化中业务、信息、应用和技术互动的蓝图。
企业架构是沟通业务与信息技术间的桥梁
简单性和清晰性是第一位的、最重要的。因为几乎所有其他东西都只能跟着它们而来。做那种最简单的能解决问题的东西,选择那些应该是足够快的最简单的算法、能够满足需要的最简单的数据结构;用整齐清楚的代码把它们组合起来。除非性能测试的结果说明需要做更多的事,我们绝不要把事情复杂化。接口应该是整齐和简单的,至少是在发现无可辩驳的证据、说明把它弄得复杂一些有极大优越性之前。
普遍性常与简单性同在。它使我们可能一次就完全解决了问题,而不是对各种情况一个个地重复去做。普遍性常常也是达到可移植的正确途径:找一个一般性的,能够在所有系统上工作的解,而不是去扩大不同系统之间的差异。
不断进化。想第一次就构造出一个绝好的程序通常是不可能的。发现正确解决方法的必要洞察力只能来自思考和经验的结合;纯粹的内省不可能造就出好系统,纯粹靠玩命干也不行。由用户得来的反馈在这个地方非常重要。通过循环的方式:原型、试验、用户反馈和进一步精化,常常是最有效的。我们自己构建的程序常常进化的不够;从别人那里买来的大程序变得太快,根本没经过必要的改进。
减少耦合。接口是程序设计战斗中的一个大战场,接口问题出现在许多不同的地方。程序库是最明显的例子,还有不同程序之间的、程序与用户之间的接口问题。对简单性和普遍性的需求在接口设计方面表现得特别强烈。我们应该使接口具有一致性,容易学习和使用,应该一丝不苟地追求这些东西。应该把实现细节都隐蔽在边界后面,这永远是最安全的方法。
符号标记。一直被忽视,实际上它远不仅仅是程序员告诉计算机去做什么时采用的方式。符号标记提供了一种组织框架,在实现应用领域非常广泛的各种工具方面,对指导人们去构造那种写程序的程序方面都很有价值。我们对大型的通用程序设计语言都很习惯了,它们为我们的大量程序设计工作服务。但有时也会发现面前的工作变得非常集中,已经理解得很清楚,写这种程序几乎完全是机械性的。这可能就预示着一个时机,说明应该建立一种能自然地表达有关工作的符号标记和一个实现它的语言。正则表达式是我们最喜爱的例子,实际中存在着无数的这种机会,在那里我们可以为对付特殊工作建立一个小语言。当然,这种语言绝不应该复杂到抵消掉其收益的程度。
作为程序员,我们很容易沉醉于新的工具和技术,但是,从长远的观点看,真正起作用的还是看我们在使用一些基础技术和规则的情况下工作的怎么样。通过应用本文中的某些思想,你将能够发现你的代码更容易用了,你的排错过程也不再那么痛苦了,你对自己的程序设计更加有自信心了。希望你在自己的程序员生涯中获得更多的成果和回报。
最近有看了一些关于模型驱动体系架构的一些介绍性的材料,对于软件体系设计方面颇有启发,IBM网站 http://www-128.ibm.com/developerworks/cn/rational/r-mda/的一篇介绍MDA的文章就非常好,重点体现了软件体系设计过程中,模型以及建模的重要性。在此推荐,并对其中一些自认为重要的信息摘录如下:
Powered by Haiwit