ERP即企业资源计划(EntERPrise Resources Planning),是由美国加特纳公司(Gartner Group Inc.)最早于90 年代初提出的一种管理理念。它是建立不断发展的信息技术基础之上,利用现代企业的先进管理思想,全面地集成了企业的所有资源信息,并为企业提供决策、计划、控制与经营业绩评估的全方位和系统化的管理平台。传统ERP 主要有财务管理、生产管理、供应链等在企业内部使用的系统;软件主要在局域网中以客户机服务器(CS:Client-Server)方式运行,也有少数公司的产品能在Internet 上以浏览器服务器(BS:Browser-server)方式运行。随着企业规模不断扩大、竞争更加激烈、管理更加科学,现代ERP包括更多的内容,如CRM(Customer Relationship Management)、电子商务(E-COMMERCE)、办公自动化等。同时要求ERP 系统不仅能在局域网上运行,也要能在Internet 上运行,以便解决企业与企业、企业与客户之间的协作及远程办公等需要。.net 平台是一个功能强大、高效、可扩展的新型的编程环境,提供了生成应用系统所需要的先进技术和支持未来计算的高效开发工具,带来了全新的、快速而敏捷的企业计算能力。利用.net 平台,许多过去极端复杂、费时费力、甚至让人望而生畏的开发任务现已经变得非常容易。
文章下面结合笔者的研究成果及实践经验,提出一个基于.net 系统平台的先进的新一代ERP 技术架构。此架构充分结合了CS 结构开发容易、使用方便、效率高等优点,和BS 结构易于安装部署维护、在Internet 上运行等优点,满足了企业要求ERP 系统安全、高效、易用、能在Internet 上运行等需要,以及开发商要求系统便于开发的优点。
1 技术架构
图1 展示了该文提出的基于.net 的多模ERP 技术架构。此架构主要采用了先进的三层分布式结构、易于部署和开发的智能客户端技术、以及可根据企业需要进行选择的多模运行技术。
图1 基于.net 的多模ERP 技术架构
1.1 三层结构
在三层系统结构中,第一层是表示层,主要完成应用系统与用户的交互, 负载轻。它通过统一的界面对象(Interface Object)访问应用服务器中的业务对象。第二层是业务层,应用系统的业务逻辑主要在此实现,它承受整个系统大多数负载。业务层采用组件对象技术进行开发,使用应用服务器(Application Server)进行管理。业务层中业务组件通过数据库引擎(这里是ADO.nET)访问关系数据库。第三层是数据层,完成数据的存储和管理。
三层结构把整个系统的表示逻辑、业务逻辑、数据库系统分开管理,使得每个层次的任务明确、结构清晰。应用服务器的使用使得大量客户端的情况下改善了性能。由于运行业务逻辑的应用服务器和数据库服务器是集中存放集中管理的,提高整个系统的可靠性、安全性。三层系统中功能逻辑的合理划分使得组件更容易复用,系统更易于集成。此外三层系统中服务器集中进行业务处理,便于系统部署及维护,负载平衡技术保障了随着企业规模扩大系统具有很强的可扩展性、保护了企业投资。
业务层是整个系统最复杂的部分,限于篇幅这里作了许多简化。实体(Entity)指业务活动中所涉及到的物或人的计算机描述,如单据、凭证等,通常表现为数据。从开发角度上讲,实体一般是值对象(Value Object),可在需要时进行串行化(Serialize)及反串行化操作,以便在网络中传输以及由数据恢复对象。业务活动及其行为可以改变实体的状态,如审核单据等。把这些改变实体状态的业务活动进行抽象化,称其为服务(Service)。服务一般表现为计算和行为,从开发角度上看是数据处理。另外在程序设计中,也把那些为其它模块完成某些功能提供支持的对象,称为这些模块的服务。业务层中业务组件一般表现为服务。界面对象是服务的一种,直接为客户端界面(这里是基于Windows Form 的智能客户端)提供服务,是客户端通过服务器处理业务的门户。起到隔离客户端与服务器、减少客户端与服务器的交互次数以提高性能、简化体系结构的作用。界面对象代替传统的控制类,但它职责更明确、更容易创建和使用。
1.2 智能客户端
传统ERP 系统计算模型主要有两种,以CS 为代表的胖(Rich)客户端模型和以BS 为代表的瘦(Thin)客户端模型。前者一般在局域网中运行,效率高、易于开发和使用但不易于部署和维护;后者通常在Internet 上运行,效率低、易于部署维护但不易于开发和使用。智能客户端(Smart Client)是一种新型的客户端模型,它结合胖客户端和瘦客户端的优点,克服了它们的缺点成为新一代ERP 系统更好的选择。
基于.net 的智能客户端模型充分满足了开发人员、维护人员和用户三方需求,结合胖客户端开发用户界面的强大功能与弹性以及瘦客户端的容易部署与维护。智能客户端基于Windows窗体(Forms)技术开发,借助于Visual Studio.net 等先进的集成可视化开发环境,开发人员能够非常方便、高效地开发出灵活易用的图形用户界面。它比传统的B / S 架构用HTML及脚本写的Web 界面更易于用户使用、开发成本也要低的多。系统安装时只要将一个主程序文件下载到本地,直接运行即可,甚至可以直接通过Web 访问直接运行。其他应用组件将在需要的时候由主程序自动发现服务器上最新版本的程序集和应用组件,自动下载和更新。解决了CS 结构中的部署问题,这也是基于BS 架构的ERP 的主要优点之一。
在此架构中,客户端主程序文件指应用程序浏览器(Application Browser),它是一个负责运行、配置及管理应用组件的容器。与应用服务器不同的是,应用程序浏览器负责管理应用组件与用户交互的客户端界面,而应用服务器负责管理应用组件中业务处理部分,即业务组件。当用户完成业务时候,应用程序浏览器根据需要自动从服务器下载最新用户界面(Form 或User Control)组件,用户与界面通过交互完成任务。表1 描述了三种客户端模型的特性比较。
表1 三种客户端的比较
1.3 多种运行模式
使用基于此架构的ERP 系统,企业可以根据自身需要有选择地进行部署。可以采用便于单个局域网上使用的本地(Local)模式,或者大型企业内部使用的Intranet 模式,及具有完全Web 能力的Internet 模式,也可以根据需要采用三种模式的混合模式。
本地模式逻辑上属于三层结构,而部署类似于传统的CS结构。它适合于企业内部的应用系统,客户端界面和业务组件在同一个进程中运行,对象之间直接引用而不需要远程访问或在网络上传输。优点是速度快、安全性高、对硬件要求低。缺点是所有用户被限制在同一个局域网区域,部署时需要在每一台客户端机器上安装,比较麻烦。如果设置一台部署服务器,则可解决此问题。本地模式适合许多中小企业或大企业某些部门使用。
在Intranet 模式中,智能客户端通过TCP / IP 通道访问位于应用服务器中的业务组件,远程调用及数据实体(Entity)以二进制形式在通道中传输。基于TCP / IP 协议的特性使其能在跨越局域网时还能很好运行,理论上也可以在Internet 上运行,但企业的防火墙常常会阻止直接TCP / IP 通信。总之Intranet模式对于需要跨越多个局域网的企业内部系统是一个比较好的选择,速度也比较快。
在Internet 模式中。智能客户端通过HTTP 通道访问位于应用服务器的业务组件,远程调用及数据实体(Entity)以XML文本形式在通道中传输。客户端与服务器通讯用SOAP(Simple Object Access Protocol)协议,它是基于XML 和HTTP(理论上也可以是其它协议)的远程对象访问协议,其开放的国际标准及纯文本特性非常适合Internet 上使用。
本地模式是逻辑上的三层结构,代码实际运行在一个进程中。Intranet 模式和Internet 模式是真正的三层结构,两者底层传输协议不同、实体(值对象)串行化方式不同,适用于不同的场合。选择哪种模式是企业自身的需要,部署时做简单的配置就可完成,且三种模式开发人员只需编写一套代码,节省开发成本。表2 是三种模式各种特性的比较。
表2 三种运行模式特性的比较
2 实现技术
智能客户端的实现如图2 所示。主要原理是在装入应用组件的程序集(Assembly)时,如果本地不存在对应的程序集,或者本地存在的程序集比服务器上的程序集旧,则从服务器上下载最新的程序集。下载可以在实际需要时自动进行(网络运行方式),也可以使用更新组件一次性下载最新组件(本地运行方式),详细实现参照相关Net资料。
图2 智能客户端实现原理
多模技术的实现原理如图3 所示,笔者采用变形的抽象工厂(Abstract Factory)[4]模式。抽象工厂模式中,要对每一个需要根据配置创建的对象编写一个工厂实现方法(如Create ProductA)。考虑ERP 系统的规模以及对灵活性扩充性的要求高,对抽象工厂做适当变形,把要创建的对象类型作为参数传入工厂的创建方法(Create 方法),同时可选择地传入要创建对象的构造函数参数。这里把Intranet 模式和Internet 模式的工厂合并为一个Remote Servie Factory 实现,由系统配置区分;本地模式的服务对象工厂为Local Servie Factory。
图3 多模技术的实现模式
系统使用的服务工厂根据系统配置创建,客户端使用服务工厂创建服务对象,由服务工厂决定创建的是远程服务的代理还是本地服务对象的直接引用,客户端通过同服务对象的接口访问服务而不需区分是服务本身还是代理。远程服务与其代理符合代理模式(Proxy Pattern),使用.net 中远程(Remoting)技术很容易实现。
3 部署
基于此技术架构实现的系统有多种部署方式,图4 是常见典型的混合模式部署。系统的业务组件放在企业防火墙后面的应用服务器上。使用智能客户端的各种用户在企业内部通过Intranet 访问系统、在企业外部通过Internet 访问系统。基于此技术架构的系统,总体上实现了部署维护简单、用户使用方便、开发低成本、运行高效率的优点。
图4 典型的系统部署
4 小结
文章阐述了一个基于.net 的新一代ERP 技术架构,重点讨论新架构的三层结构、智能客户端、多种运行模式几个特性。需要一提的是,图1所描述的架构是一个经过抽象简化了的技术架构,有些内容如组件技术及面向服务(service-oriented)都没有介绍。而对于开发一个大型的先进的ERP 系统来讲,涉及到技术及方法、工具及过程等众多因素,需要支持企业的业务流程重组、协同工作、系统集成等特性,这里也都不再描述了。另外,此技术架构不仅适用于ERP 系统,它先进的特性,极低的开发成本对于许多信息系统来讲都是一个很好的选择。此架构提到的一些技术也不仅是在.net 下才能实现,有些技术在一些系统中早已存在,只是.net 平台从系统和语言级别对这些技术提供了支持,使得基于此架构开发应用系统变得更为简单、有效、便捷。在实践方面,得到国家支持,由国内外众多专家设计的新一代用友U8.net ERP 系统正在紧锣密鼓地进行,此技术架构在U8.net 产品中得到充分的应用,获得了很好的效果。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于.net 的多模ERP 技术架构
本文网址:http://www.toberp.com/html/consultation/1082007955.html