从IT的"黑洞"谈起
最近参加了一个IT的高层年会,在会上众多的社会学家、金融专家和IT人士都谈到了IT的黑洞问题。让人们觉得IT似乎已经成为阻碍行业发展,乃至社会进步的障碍。IT的'丑陋面'竞相暴露:
IT部门,实实在在的成本中心
IT正在从支撑业务、引导业务变为限制业务发展
80%-90%的IT预算和IT人力都花在了维护老系统上
新业务的推出都需数月,乃至年计,跟不上客户的需求和市场的反应
难道IT真的成了鸡肋?难道我们可以舍弃IT?我想原因很简单,IT与业务其实就是一对发展中的矛盾共同体,互相依存、促进与平衡:
互相依存。现在一定没有人会怀疑业务离不开IT,如果没有了IT,任何的金融、电信、政务和生产制造业务都将瘫痪;而如果没有了业务的需求,IT也将失去存在和发展的价值。
互相促进。业务的发展要求IT不断地创新,如各个行业对于异地交易(通存通兑、通保通赔)的需求带来了消息中间件的发展;而同样地IT的创新也带来了新的业务模式,互联网的发展毫无质疑地带动了诸如金融业的网上银行、网上证券、网上保险,带动了电信的网上营业厅,甚至于直接影响我们衣食住行的网上商旅、网上商城,带来了许多新的商务模式。
互相平衡。业务与IT既然是一对矛盾体,那么任何一方的滞后或是超前都会带来另一方的"不安",都会表现为矛盾的激化,都会涉及到现有平衡的打破与再建。
因此,我们看到的其实是如何发展IT的问题,而不是那些耸人听闻的需不需要IT的问题。正是有了这种矛盾的持续存在,IT才会有持续发展的土壤。
传统的开发或是集成,带来了复杂
传统来讲,IT实现业务的方式无外乎定制开发项目或是专业集成项目。也就是为了开发而开发,为了集成而集成。
当立为开发项目时,就根据需要确定集成商、开发商。然后选择相关的开发平台,如服务器、数据库、应用服务器、开发工具等。而在不同的开发项目中很有可能选择了不同的应用商,而采用了不同的开发平台。这样就带来了开发越多,未来集成越是困难。
而在专业集成项目中,由于大型企业的应用必须与一个或多个数据源进行业务数据交互,部分数据源可能就是其他的应用。换句话来说,应用在没有集成的情况下无法进行开发。应用集成会包含一定的应用开发任务,如开发和组装组件,将它们连接到后端系统,实现过程流和工作流,开发用户界面,以及进行测试和调试。而如果在集成项目中只根据现有的各种系统,选择一个集成商,采用一个专门的集成服务器,如门户集成服务器或是信息集成服务器或是应用集成服务器,这样是远远不够得,因为对于在集成过程中新的业务流程所需的再次开发就会捉襟见肘。
传统的三种最通用的应用集成方法是点到点集成、企业消息总线或中间件的集成(EAI)、基于业务流程的集成,都不十分理想,主要问题在于:
消息总线和应用之间的定制或专有集成。与对等方法相比,EAI 和基于业务流程的集成减少了集成点的数量。但是,三种方法都需要在消息总线和每项应用间进行定制化或专有集成,并且,在每个集成点都需要采用不同的专有数据格式。
消息总线和应用之间的紧密耦合。所有的应用都需要知道与其集成的其它应用的内部工作机制。系统之间的集成是粒度化的,并与消息类型存在紧密耦合关系。传统的 EAI 实现所使用的业务流程管理 (BPM) 工具是专有的。这妨碍了其他优秀标准产品的应用。
程序化而非抽象式的数据访问。大部分数据访问、集成和转换工作(企业信息集成)都留给了开发人员采用人工编码方式来完成。企业IT环境中存在多个不同的数据源,开发人员要有不同的适配器来访问这些数据源、要有转换引擎来重新定义数据格式、还需要进行数据复制以实现数据的物理整合。要实现数据源的集成,开发人员需使用以上工具将集成需求编写到应用中去。尽管以上方法是可行的,但这既没有效率也缺乏灵活性。
所以,当用孤立的眼光来看开发与集成时,矛盾重重。而其实开发与集成已是一对矛盾共同体。任何定制开发的应用都需要去访问别的应用,也需要被别的应用来访问,因此开发离不开集成;而任何集成也都是为了新的应用需要而来,当然会有新的业务流程的开发,所以集成也离不开开发。
结论很简单,如果独立地考虑应用开发和应用集成是毫无价值的。而且传统的应用开发和集成方法不够灵活,未能基于标准。因此,传统方法无法构建能够满足动态企业变化需求的、敏捷的企业IT环境。
SOA融合开发与集成,化繁为简
三种传统的应用集成方法都很复杂、昂贵,并且不灵活。这些集成方法难于快速适应基于企业现代业务变化不断产生的需求。基于面向服务架构 (SOA) 的应用开发和集成可以很好的解决其中的许多问题。
不同的行业分析家或专家对SOA有不同的定义和理解。Gartner 提出了SOA 这一术语,并定义如下: "面向服务的架构是一种客户机/服务器软件设计方法,其中应用由软件服务和软件服务使用者组成(也称为客户机或服务请求者)" 。SOA 与多数一般的客户机/服务器模型不同,它明确地强调了软件组件之间的松散耦合,以及其独立标准界面的使用。CBDI 论坛如下定义了"面向服务" (SO),重点强调了服务的提供和管理: "SO 是业务和技术服务的提供、使用和生命周期管理,这些业务和技术服务是自描述、松散耦合和以技术中立的方式来实现的。"SOA 描述了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。
最近参加了一个IT的高层年会,在会上众多的社会学家、金融专家和IT人士都谈到了IT的黑洞问题。让人们觉得IT似乎已经成为阻碍行业发展,乃至社会进步的障碍。IT的'丑陋面'竞相暴露:
IT部门,实实在在的成本中心
IT正在从支撑业务、引导业务变为限制业务发展
80%-90%的IT预算和IT人力都花在了维护老系统上
新业务的推出都需数月,乃至年计,跟不上客户的需求和市场的反应
难道IT真的成了鸡肋?难道我们可以舍弃IT?我想原因很简单,IT与业务其实就是一对发展中的矛盾共同体,互相依存、促进与平衡:
互相依存。现在一定没有人会怀疑业务离不开IT,如果没有了IT,任何的金融、电信、政务和生产制造业务都将瘫痪;而如果没有了业务的需求,IT也将失去存在和发展的价值。
互相促进。业务的发展要求IT不断地创新,如各个行业对于异地交易(通存通兑、通保通赔)的需求带来了消息中间件的发展;而同样地IT的创新也带来了新的业务模式,互联网的发展毫无质疑地带动了诸如金融业的网上银行、网上证券、网上保险,带动了电信的网上营业厅,甚至于直接影响我们衣食住行的网上商旅、网上商城,带来了许多新的商务模式。
互相平衡。业务与IT既然是一对矛盾体,那么任何一方的滞后或是超前都会带来另一方的"不安",都会表现为矛盾的激化,都会涉及到现有平衡的打破与再建。
因此,我们看到的其实是如何发展IT的问题,而不是那些耸人听闻的需不需要IT的问题。正是有了这种矛盾的持续存在,IT才会有持续发展的土壤。
传统的开发或是集成,带来了复杂
传统来讲,IT实现业务的方式无外乎定制开发项目或是专业集成项目。也就是为了开发而开发,为了集成而集成。
当立为开发项目时,就根据需要确定集成商、开发商。然后选择相关的开发平台,如服务器、数据库、应用服务器、开发工具等。而在不同的开发项目中很有可能选择了不同的应用商,而采用了不同的开发平台。这样就带来了开发越多,未来集成越是困难。
而在专业集成项目中,由于大型企业的应用必须与一个或多个数据源进行业务数据交互,部分数据源可能就是其他的应用。换句话来说,应用在没有集成的情况下无法进行开发。应用集成会包含一定的应用开发任务,如开发和组装组件,将它们连接到后端系统,实现过程流和工作流,开发用户界面,以及进行测试和调试。而如果在集成项目中只根据现有的各种系统,选择一个集成商,采用一个专门的集成服务器,如门户集成服务器或是信息集成服务器或是应用集成服务器,这样是远远不够得,因为对于在集成过程中新的业务流程所需的再次开发就会捉襟见肘。
传统的三种最通用的应用集成方法是点到点集成、企业消息总线或中间件的集成(EAI)、基于业务流程的集成,都不十分理想,主要问题在于:
消息总线和应用之间的定制或专有集成。与对等方法相比,EAI 和基于业务流程的集成减少了集成点的数量。但是,三种方法都需要在消息总线和每项应用间进行定制化或专有集成,并且,在每个集成点都需要采用不同的专有数据格式。
消息总线和应用之间的紧密耦合。所有的应用都需要知道与其集成的其它应用的内部工作机制。系统之间的集成是粒度化的,并与消息类型存在紧密耦合关系。传统的 EAI 实现所使用的业务流程管理 (BPM) 工具是专有的。这妨碍了其他优秀标准产品的应用。
程序化而非抽象式的数据访问。大部分数据访问、集成和转换工作(企业信息集成)都留给了开发人员采用人工编码方式来完成。企业IT环境中存在多个不同的数据源,开发人员要有不同的适配器来访问这些数据源、要有转换引擎来重新定义数据格式、还需要进行数据复制以实现数据的物理整合。要实现数据源的集成,开发人员需使用以上工具将集成需求编写到应用中去。尽管以上方法是可行的,但这既没有效率也缺乏灵活性。
所以,当用孤立的眼光来看开发与集成时,矛盾重重。而其实开发与集成已是一对矛盾共同体。任何定制开发的应用都需要去访问别的应用,也需要被别的应用来访问,因此开发离不开集成;而任何集成也都是为了新的应用需要而来,当然会有新的业务流程的开发,所以集成也离不开开发。
结论很简单,如果独立地考虑应用开发和应用集成是毫无价值的。而且传统的应用开发和集成方法不够灵活,未能基于标准。因此,传统方法无法构建能够满足动态企业变化需求的、敏捷的企业IT环境。
SOA融合开发与集成,化繁为简
三种传统的应用集成方法都很复杂、昂贵,并且不灵活。这些集成方法难于快速适应基于企业现代业务变化不断产生的需求。基于面向服务架构 (SOA) 的应用开发和集成可以很好的解决其中的许多问题。
不同的行业分析家或专家对SOA有不同的定义和理解。Gartner 提出了SOA 这一术语,并定义如下: "面向服务的架构是一种客户机/服务器软件设计方法,其中应用由软件服务和软件服务使用者组成(也称为客户机或服务请求者)" 。SOA 与多数一般的客户机/服务器模型不同,它明确地强调了软件组件之间的松散耦合,以及其独立标准界面的使用。CBDI 论坛如下定义了"面向服务" (SO),重点强调了服务的提供和管理: "SO 是业务和技术服务的提供、使用和生命周期管理,这些业务和技术服务是自描述、松散耦合和以技术中立的方式来实现的。"SOA 描述了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/