微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 大型企业跨行业集中管理的软件方案分析与探讨

大型企业跨行业集中管理的软件方案分析与探讨

2012-12-05 16:05
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2012-12-05 16:05 CNET科技资讯网

用友软件股份有限公司史周军

作者简介:

史周军,长期致力于大、中型企业管理软件研发工作,积累了丰富的架构设计和平台规划经验。在企业架构(EA)、模型驱动开发、应用集成、ERPforIT、软件平台技术等领域有较深入研究。历任用友公司NC首席设计师、NC产品线总设计师、UAP平台产品总监等。

背景

跨行业大型企业面临如何实现集中管控、如何管理庞杂的各种数据、如何实时掌握企业的经营情况、如何实现精准决策并快速响应、以及企业如何根据自身的发展需要实现快速转型升级等问题。这些问题使得企业必然对其信息化技术与管理提出越来越高的要求,只有借助信息化技术,大型企业才能实现打造实时企业、满足企业全球化竞争的需要。

软件实现大型企业上述需求具有技术挑战性,主要体现在以下几方面:首先,企业数据量大、种类繁杂。人、财、物、产、供、销业务活动产生各种企业经营数据,包括结构化数据、非结构化数据以及历史数据,数据量巨大。如何使这些数据协作起来成为可用的支持业务决策的信息,并融入到日常经营活动中,都具有很大的技术挑战;其次,行业管理差异大。企业各子集团通常属于不同的行业,各行业的管理与经营具有自己的特点,经营模型、管理模式、业务流程等差别很大,使用一套软件实现跨行业信息化集中管理对软件架构具有很大的挑战;再次,企业集团需要对人力、财务、资金、资产等领域实现多级集团管理与实时监控,软件需要支持不同的管控模式,以满足企业战略管理的需要;最后,随需应变,实时管理。软件按需要具备动态适应企业管理变化的能力,并且支持用户可以随时随地对企业的经营状况进行查询、分析、决策等各项管理。

尽管存在各种挑战,随着近年信息化技术的迅猛发展,特别是在硬件技术、云计算、大数据、内存计算、BI技术、移动技术、互联网技术、企业架构等领域的发展,在构建实时企业及跨行业复杂软件系统等方面提供了很多技术支撑。在这些技术基础上,本文结合软件架构设计对构建大型企业跨行业集中管理软件方案的一些主要问题进行分析和探讨。

实现大型企业跨行业集中管理软件方案需要考虑的因素较多,本文从软件平台、分层体系、软件设计、数据模型、应用模型、部署模型等几个方面进行分析,如图-1所示。

图-1:软件方案关键组成部分

该方案主要由以下几部分组成:

1)软件需以平台为支撑。即软件系统必须建立在一个强大的平台之上。该平台需要融合当前的硬件技术、软件技术,包括云计算、内存技术、并行技术等。通过平台工具来实现软件的开发、运行、集成、实施、运营、服务支持等软件的全生命周期管理;

2)需要有一个合理的分层架构。包括核心产品层、行业层、本地化层、伙伴层、客户层。通过分层使软件具备灵活性和扩展能力以及应用的融合能力;

3)软件设计策略。领域应用、行业应用等均可根据需要进行组装,这就要求软件设计需要实现松耦合、服务化的设计,实现动态建模、应用组装、动态构造、动态部署等;

4)建立跨行业数据模型。实现跨行业集中管理,必须解决多行业数据模型问题、系统数据及基础数据的跨行业管理问题;

5)应用模型构建。解决不同行业的经营模型、管理模式、业务流程、业务规则等问题,以及行业数据的使用问题;

6)软件系统部署。帮助企业设计、选择如何部署跨行业集中管理的软件系统。

软件平台:

平台需要提供:

1)基础技术设施。平台需要提供云计算、内存计算、并行计算、大数据、BI、移动、物联网等基础技术设施,提供各种开发服务及运行服务;

2)可视化开发环境。支持核心产品开发、行业产品开发、本地化产品开发、伙伴开发及客户开发等,提供覆盖软件生态系统开发支撑。提供模型驱动的设计、开发、测试、构造、组装、发布等研发全过程的可视化集成开发环境;

3)应用集成平台。支持企业应用集成,在企业服务总线(ESB)、消息中间件等基础上,支持如Portal集成、数据集成、消息集成、流程集成等集成类型,提供应用集成设计工具、应用适配器、应用集成监控工具等,支持软件系统与客户的自有系统、第三方产品的应用整合;

4)云资源管理与企业应用管理。提供对企业中的物理机、虚机、网络、服务器、存储设备等基于云计算技术的资源管理,以及软件应用的全生命周期管理,包括软件系统的客户化定制、软件部署、自动测试、个性化配置、运行监控、应用资产管理、补丁管理等各种系统应用管理工具。为系统的安全、稳定运行,为软件适应企业管理快速变化提供重要基础服务。

一个典型的平台主要包括以下内容,如图-2所示:

图-2:软件平台

分层模型:

本文设计了一个分层模型,如图-3所示。通过分层解决核心领域应用、行业应用、本地化应用、伙伴扩展以及客户化应用的扩展能力和灵活配置能力,并实现重用以及多层次应用组装。软件系统往往需要在各个层次进行扩展或定制开发,用于增强或修改业务逻辑。分层结构隔离了系统中各层开发所作的修改,各个层次修改的对象均被标识并被放在各自的系统目录结构中,将相互之间的影响降到最低。因此,分层模型使得软件在系统修复BUG、软件升级后,伙伴、客户等开发的功能仍可以使用,从而能够有效减少客户的总拥有成本(TCO)。

图-3:分层结构

基于分层模型,可以扩展到整个软件生态系统。支持行业解决方案开发、本地化应用开发、客户化开发,以及应用咨询、实施、支持等服务。通过软件生态系统可以为企业提供更全面、更及时的服务。支持分层开发与应用融合的服务通常由软件平台来提供。

软件设计:

大型企业跨行业集中管理的软件系统比较复杂,业务模型、管理模式、组织、流程、业务规则、主数据等在各个行业之间可能有较大差别,且每个行业的业务也会根据经营的需求进行变化,因此软件快速适应变化的能力尤为关键。在考虑软件的模块设计、组件设计、服务设计,以及软件部署时应充分考虑系统的松耦合及扩展能力,隔离彼此之间的影响。可以考虑使用OSGi、SOA架构、业务模型组件化(CBM)、动态企业建模(DEM)等技术来实现业务组件化、组件服务化、应用组装化、按特性发布及动态部署,以满足企业管理随需应变的需要。

图-4软件设计

软件设计直接影响软件自身的质量与能力,因此软件设计策略的选择对于大型复杂软件系统来说至关重要。

数据模型:

大型企业跨行业集中管理中的数据模型需要同时支持多个行业的应用。本文设计的数据模型基于元数据技术对软件系统的业务实体进行建摸,并在实体模型和数据模型中需加入行业维与分层信息。如下图-5所示:

图-5:数据模型

分层信息和所属行业信息共同形成一个标签(Tag),用于标识各层研发组织所开发的成果。标签用于标识业务模型的实体、属性、服务接口和实现类代码中的名称等,通过ORMapping技术这些Tag可以标识数据库中的表和字段,以及标识各层开发者编写的代码名称空间。为使用基于Tag的数据模型,软件平台需要提供一个业务实体框架来对数据模型的存储、访问、扩展等提供支持服务。

通过Tag机制还可以将软件系统数据和基础数据根据分层模型进行管理。可以按照分层信息和行业信息来区分存在软件系统的系统数据,如UI模板、查询模板、报表定义、流程定义等。不同行业有自己的基础数据和主数据,可以基于分配模式或管控模式使用和管理这些数据。以管控模式为例,可以根据管控要求将数据分为全局级数据、集团级数据和组织级数据,并根据管理的范围区分可管理范围与可使用范围。在集团的信息模型中需要定义行业属性,这样通过运行时上下文中的集团所属行业信息就可以实现具体应用中行业数据的管理和使用。

应用模型:

从应用模型方面来看,支持跨行业应用集中管理的软件系统的设计可以采用不同的方法。例如,可以使用SwitchFramework方法来开发应用模型,基于该方法,每个应用均需要按行业分支开发各自的流程、功能、业务规则等。在运行时,服务器需要根据客户端会话的上下文信息(包含行业信息),动态地将请求通过行业分支找到对应的行业流程、功能、规则及数据并执行。这种方案的优点是应用模型比较灵活、易于提取跨行业的公共服务;缺点是将多个行业的应用模型耦合在一起,导致了行业应用在开发、扩展时复杂度较高,由于运行时耦合了很多判断逻辑也会对性能产生一定的影响。

应用模型开发还可以采用按行业进行服务器分组的方法。通过与部署模型相结合进行设计(参见图:部署模型),将行业的应用服务器按行业进行分组,一个服务器组中只部署一种行业的应用。由于一个服务器只支持一个行业的应用,这样就可以直接访问服务器的程序而不需进行复杂的行业插件或规则的分支判断,行业应用模型可以只考虑本领域的业务模型而不需要考虑其他行业的影响,因此,跨行业开发的复杂度及难度都较低。该方法的缺点是由于按行业对服务器进行了分组,导致软件系统的集群管理及运维工作比较复杂,另外由于各行业的应用分别设计和开发,不利于跨行业通用功能与规则的抽取和共享。

部署模型:

采用SwitchFramework方法的软件系统部署比较常见,本文不再讨论。采用按行业进行服务器分组的部署方案可以如图-6所示,每个行业可以根据本行业的负载及并发访问需求对本组服务器进行弹性部署。另外,MasterServer需要根据客户请求的上下文信息透明地将请求分发至对应的行业服务器组中。

图-6:部署模型

数据库服务可以通过使用类似Oracle的RAC技术实现数据库集群,从而在数据库层能够实现横向伸缩,实现对企业数据的存储与访问支持。

结论:

支持大型企业跨行业集中管理的软件方案相对比较复杂,本文在几个方面进行了探讨:采用适合的软件设计方法与策略,对软件建立一个分层体系,通过平台提供的基础技术服务,结合数据模型、部署模型的设计,选择适合的应用模型设计方法,为实现一个能够支持大型企业跨行业集中管理的软件方案提供服务。

本文针对大型企业跨行业集中管理软件方案的一些关键部分进行了分析和探讨,其它一些技术问题暂未涉及,例如跨行业集中管理的数据隔离与一致性问题、业务对象锁机制问题、跨行业的动态企业建模问题等。这些技术在软件设计时需要考虑,但基本服务可以由软件平台来提供。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-