资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ERP 系统架构设计方案2021 年 5 月版本控制版本注释作者时间1.0ERP系统架构设计方案初稿麦仲博2021-05-28一、前言二、架构设计2.1 架构分析2.2 架构定义2.3 架构说明2.4 软件逻辑结构三、具体功能简述3.1 自定义工作流解决方案3.2 多语言解决方案3.3 消息发布/订阅系统方案3.4 报表&打印方案四、系统平台&支撑组件五、系统网络结构六、开发管理层面一、前言 一个企业级的商业软件能够满足用户需要、正常运行、易于维护、易于扩展,必须拥有 一个良好的软件架构支撑。本文主要是分析和构建一个企业级商业软件架构。二、架构设计2.1 架构分析 企业级的商业软件架构在技术层面的要求主要体系在高性能、健壮性和低本钱。 高性能 对于企业级商业软件来说,软件架构需要尽可能地使软件具有最高的性能,支持最大的并发性。 健壮性 企业级的商业软件要求软件是可靠的和无缺陷的。现在的架构一般是,效劳器模式的。软件的可靠和健壮主要依赖与效劳器。效劳器的稳定通过良好的代码和完备的测试能够解决这 个问题。 低本钱 企业级商业软件还有一个很重要的要求:低本钱。软件架构要求简单、易掌握,复杂度低,易于维护和扩展,易于测试。2.2 架构定义本架构以 XML 为整个系统的交互接口,包括系统架构内部和外部。整个系统分为界面 展示层,流程控制层和数据存储层。2.3 架构说明系统架构图Erp 架构中各核心效劳之间满足松散耦合特性,具有定义良好的接口,可通过拆分与组合,可以有针对性地构建满足不同应用场景需求的Erp应用系统。适配器在集成环境中需要复用已有的应用系统和数据资源,通过适配器可以将已有应用系统和 数据资源接入到ERP应用系统中。通过适配器可以实现已有资源与ERP系统中其它效劳实现双向通讯和互相调用。首先 通过适配器可以实现对已有资源的效劳化封装,将已有资源封装为一个效劳提供者,可以为 ERP 应用系统中的效劳消费者提供业务和数据效劳,其次通过适配器,也可以使已有资源 可以消费ERP应用系统中的其它效劳。资源仓库资源仓库主要功能是提供效劳描述信息的存储、分类和查询功能。对于广义的资源仓库 而言,除了提供效劳类型的资源管理外,还需要提供对其它各种资源的管理能力,可管理对 象包括:人员和权限信息、流程定义和描述、资源封装效劳、效劳实现代码、效劳部署和打 包内容、以及环境定义和描述信息。资源仓库首先需要提供效劳描述能力,需要能够描述效劳的各种属性特征,包括:效劳 的接口描述、效劳的业务特性、效劳的质量特征(如:平安、可靠和事务等)以及效劳运行的 QoS 属性。连通效劳连通效劳是ERP根底技术平台中的一个重要核心效劳,典型的连通效劳就是企业效劳 总线(Enterprise Service Bus, ESB),它是效劳之间互相通信和交互的骨干。连通效劳的主要 功能是通信代理,如效劳消费的双向交互、代理之间的通信、代理之间的通信质量保障以及 效劳运行管理功能等。连通效劳还需要保证传输效率和传输质量。连通效劳一般应用于连接一个自治域内部的 各个效劳,在自治域内部效劳都是相对可控的,所以连通效劳更多应该考虑效率问题。2.3.4 流程效劳流程效劳是为业务流程的运行提供支撑的一组标准效劳。业务流程是一组效劳的集合, 可以按照特定的顺序并使用一组特定的规那么进行调用。业务流程可以由不同粒度的效劳组 成,其本身可视为效劳。流程效劳是业务流程的运行环境,提供流程驱动,效劳调用,事务管理等功能。流程效 劳需要支持机器自动处理的流程,也需要支持人工干预的任务操作,它支持的业务流程主要 适用于对运行处理时间要求不高的,多方合作操作的业务过程。2.3.5 交互效劳交互效劳实现人与效劳之间的交互功能。交互效劳就是需要提供一组完整的功能,以实 现人与效劳的便捷交互,既能支持多种交互渠道(如浏览器方式,富客户端方式和移动接入 方式等),也能支持多种交互能力(如单点登录、个性化、支持各种资源的统一内容管理等)。2.3.6 协作效劳协作效劳用来解决自治域之间及自治域内部的交互通信。协作效劳强调标准的采用,强 调平等协作。具体实现技术时将更多的考虑采用WCF相关技术,以实现流程协同,效劳交 互,和各种质量属性管理(如事务管理、可靠传输和平安管理等)。2.3.7 平安效劳像 ERP 这样强调松散耦合的分布式集成系统,平安性显得尤为重要。平安有时被称为 一种“事关全局的考虑,是全方位的问题,它跨越ERP参考架构模型的各个局部。平安效劳向ERP参考架构模型中其他效劳提供根本的平安效劳功能,包括:身份验证、 访问控制、数据加密、数据完整性和抗抵赖性,以及平安信任、身份联邦、平安会话、平安 策略等。2.3.8 信息效劳信息效劳特指为利用上述各种根本的核心效劳提供信息管理和使用的效劳。具体包括提 供元数据管理功能,以一种统一的方式描述ERP系统中所需要使用的各种信息数据。它也 提供对各种类型数据(包括结构化数据和非结构化数据),以及分布在不同地方的数据进行统 一的访问管理。信息效劳其目标是使应用系统能够统一、透明、高效地访问和操纵位于网络环境中的各 种分布、异构的数据资源,为实现全局数据访问、加快应用开发、增强网络应用和方便系统 管理提供支持。2.3.9 运行管理工具运行管理工具提供界面友好的图形化方式的监控和管理工具,提供对各种资源和效 劳对象的运行管理功能。监控管理工具需要管理核心效劳,也需要管理应用效劳。可以查看 各个效劳的运行状态和历史信息,也能对效劳进行启动、停止、暂停、恢复、版本升级等管 理控制操作,同时需要提供分析和统计功能,可以根据效劳运行信息实现对系统的调整和优 化操作。2.4 软件逻辑结构软件架构二二=二二=二丄3平面文本数据数据库_二二二二二二=.框架从层次结构上分主要分为:表示层、效劳层、业务层、数据层表示层表示层由UIUser Interface和UI控制逻辑组成。 c/s选用wpf+智能客户端,b/s选用asp.net mvcWPF 的出现解决了三个问题: 更快速的去开发更丰富的用户体验:使用WPF,可以在更加快速的时间内开发出来更加丰 富的界面,满足用户的需求。 WPF 借助 XAML 来利用标记而不是编程语言如 C# 来构造精美逼真的用户界面(UI),只要稍微具备一些HTML根底知识,就可以快速地掌握 XAML 中的大局部内容。 消除用户界面差异:wpf可以以IE为宿主的。或Silverlight(3) 软件开发团队的协作问题: 在软件团队中,我们比拟熟悉 Developer、DBA、Tester、IT Pro、Architect等。Designer可能往往被我们无视,但实际上,Designer的工作成果才是与客户距 离最近的。而且Designer与Developer如何配合工作,是很多团队所头疼的,而WPF正可 以解决此问题。智能客户端的优势1) 充分利用终端设备的优势2) 能够调用 wcf3) 支持在线和离线两种状态4) 能够如同Web应用程序一般简单方便的部署asp.net mvc 内置 AJAX 支持。本身含的MVC模型-视图-控制器)和本系统MVVM(Model-View-ViewMode 1就是双胞胎,在 demo 里已经有很好的集成*注:因xaml和html是标记语言,此层大局部可用代码生成器生成。效劳层采用微软的 WCF,Windows Communication Foundation (WCF) 是 Microsoft 为构建面向 效劳的应用提供的分布式通信编程框架平台,是NET Framework 3.5的重要组成局部。使用 该框架,开发人员可以构建跨平台、平安、可靠和支持事务处理的企业级互联应用解决方案。 WCF 从一开始就是工程化的,能够简化应用程序的开发与部署,降低开发本钱。用于构建 面向效劳的应用程序,不管这些程序是独立的桌面应用程序,还是Web应用程序和效劳, 还是高端的企业应用程序。逻辑、业务层业务层封装了实际业务逻辑,包含数据验证,事物处理,权限处理等业务相关操作, 是整个应用系统的核心。因此设计一个能够真实反映实际需要的业务层是非常必要的,我们 将实际业务具体分为业务数据与业务操作两局部。业务数据Domain Model那么是根据实际业务按照现实方式用OO思想建模,这样很适合业务复杂的 系统。通常采用自定义数据实体Custom Data Entity方式表达。自定义数据实体,有着良 好的性能,编译时的类型检查,数据表现方式非常直观符合实际业务的操作方式等优点,但 需要自己定义维护类,在分布式环境下需要自己编写序列化方法。此阶段负责数据交换(传输)的业务实体被称之为DTOData Transfer Object。DTO 要能够支持:数据绑定、数据验证、历史记录、级联触发、合并集合、序列化与反序列化,要实现一个大的递归,从其中的任何一个对象开始,能够找出整个传递的所有 数据。(1)、数据的绑定支持。 要实现 IEditableObject 接口, 对于状态的变化要实现INotifyPropertyChanged 接口,这样才能够实现数据的触发,这样就要实现一个对象能够找到 其所有的集合,一个集合要能够其所有的对象,这样一样,就必须实现从对象、集合、对象 的递归,再深入一点,就实现了数据的级联触发,实现了双向数据触发、绑定。数据源的每 个属性变更,要能够在界面上反映出来,绑定界面的改变,能够记录到后台的数据源,并且 要能够支持回滚。对于容纳这些数据的ObservableCollection集合也支持绑定处理。(2) 、数据验证。实现 IDataErrorInfo 接口(3) 对于历史记录。当实现 IEditableObject 这个接口,那么必然实现了历史记录。能够 找到集合的所有更改的记录,包括删除的记录。对于单个对象而言是能够得到历史记录和当 前数据,对于集合而言,那么能够找出差异集,同时,集合也要具备集合回滚的功能。(4) 级联触发,那么是在实现数据绑定的根底上的,对于常见的主从结构,当从对象的 一个属性改变了,要能够自动通知其所在的集合、集合再通知所在的对象数据改变了,如果 是多层结构,那么能够自动的从最底层开始一路通知到顶层。(5) 合并集合、集合的处理。集合的处理与数据绑定是直接相当的。数据源找出差异集 之后,要对差异集进行处理,处理完之后,要对原始集合进行更进一步的处理,要把两个集 合进行合并处理,主要是为了同步引用。(6) 同时,另外要实现的就是Data与SDO之间的转换以及其他格式的数据与SDO、Data 数据之间的数据转换,比方Binary/Xml/Text/Key文件/等,最根本的是SDO与Data之间的 转换,这些转换根据需要,有时候是单向的,有时候是双向的,根据业务需求而定。(7) 序列化与反序列化,主要是涉及到Binary 和 XML序列化。业务操作业务操作负责对业务数据进行各种业务相关的处理,例如验证,流向,整合,事物, 权限等,但它不负责有关对数据源的操作。采用整合业务数据与业务方式来操作,将业务数据与相关的业务操作封装在一起称 为业务实体,业务实体作为统一的业务层为表示层提供效劳,同时也负责作为DTO在各个 层次间传输,这样完整的Domain Model设计方式,每个业务实体都可以做为一个单独组件 形式存在,对于组件化复用有着莫大的好处。.数
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号