• 5.96 MB
  • 2022-04-22 11:24:33 发布

基于SOA架构与云计算技术的ERP系统设计方案

  • 81页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'基于SOA架构与云计算技术的ERP系统设计方案1前言1.1企业ERP系统的需求描述   ERP实施的主体――企业的需求永远是ERP技术发展的主动力,由于全球一体化进程的加剧,使得企业所面临的竞争环境发生了巨大的变化,对ERP提出了新的需求,具体表现在[50]:   1)全球化市场的发展与产业链之间合作经营生产方式的出现,使得ERP能支持异地企业运营、异种语言操作和异种货币交易;   2)企业过程重组及协作方式的变化使得ERP能支持基于全球范围的可重构过程的供应链及供应网络结构;   3)企业需要应对新生产与经营方式的灵活性与敏捷性使得ERP也越来越灵活的适应多种生产制造方式的管理模式;   4)由于行业特性越来越明显,因此ERP的行业化发展趋势越来越明显;   5)企业的快速发展使得ERP的柔性越来越高以适应企业的动态变化;   6)企业的低成本策略使得ERP可以按需配置、大大缩短实施周期。  IT技术的发展是推动ERP发展的另一驱动力,毕竟ERP应用是以“技术导向”为推动的应用技术,具体表现在,计算机新技术的不断出现将会为ERP提供越来越灵活与强大功能的软硬件平台,多层分布式结构、面向对象技术、中间件技术与Internet的发展会使ERP的功能与性能迅速提高。 图1.1企业ERP系统结构图1.1ERP技术及应用的发展趋势1.1.1B/S架构的ERP已经盛行   B/S模式是一种全新的软件系统构造技术。随着Windows98/Windows2000将浏览器技术捆绑植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。   网络应用系统的发展正在改变着ERP系统的开发及其实施方法,传统ERP体系结构逐渐被由客户、应用服务器、数据库服务器组成的三层B/S结构所替代,并有了统一的通讯协议TCP/IP和统一的基于Web浏览器的用户界面。  B/SERP把传统的依赖于邮件、电话、人盯人的管理方式变革为目标导向、流程驱动、智能的电子商务流程。并且该B/S架构的ERP可以把企业内部流程与企业外部流程连接起来,与客户、合作伙伴、供应商协同完成供应链业务操作[52]。1.1.2SOA架构的引入,使ERP全面升级SOA(Service-OrientedArchitecture面向服务架构)的概念是由Gartner公司给出的,Gartner对SOA的定义为“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。其核心是: 1)SOA是一种软件架构思想,并不是一种产品。 2)SOA的重点是面向服务,此服务包括企业的内部与外部的每一个业务细节,比如企业中 财务应收发票的处理就是一个服务。SOA的思想是把这些服务从复杂的环境中独立出来——组件化封装,然后通过标准的接口使不同的服务之间相互调用。 3)SOA是一种软件架构思想,通过使企业中一个个细化的服务标准化,来达到企业的IT系统跟随企业的动态变化的目的。1.1.1平台化——ERP的柔性大大增强   在ERP应用实施的过程中,用户的满意度一直不高。主要原因是产品更新周期加快、市场响应要求提高,对ERP的个性化要求越来越高,这是导致ERP实施成功率不高的重要原因之一。     经过多年的积累,人们已经总结出了ERP系统中业务的核心,其架构、业务模型、标准化高的业务处理均是可封装的,如果我们把这部分封装起来,再开发出辅助这个平台的客户化工具,就可以形成业务化平台。同样如此,如果对ERP进行分析、研究,将ERP的相关部分封装起来,再加上工具包,就可以形成平台化的ERP。   平台级企业信息解决方案提供了一个软件平台,内置多种管理软件组件和快捷的二次开发工具,其组件可以通过多种语言来开发,开发出一个个的小模块,然后把每一个小模块独立起来建成一个组件,最后把这些组件组装起来形成最终的成品。那么对这些组件进行调用,管理和删减、添加及修改,甚至重新构架都可以,而这样对某一部分的改动根本不会影响到其它功能。这就是平台带来的灵活性,易操作性,使它在进行小的改动时可以直接通过系统上的某些功能来实现,而不必要通过改源代码的方式来处理,可以降低企业信息化软件的开发难度,提高开发效率,提高系统的柔性和可扩展性。一方面管理信息化厂商通过平台提供的组件能很方便地满足用户个性化的需求,以及用户在发展过程中各种各样变化的需求。另一方面将应用软件的业务逻辑和开发技术相对分开,使得应用软件的开发者可以仅关注应用的业务任务,而不必关注其技术的实现。这使管理与业务人员参与应用软件的开发成为可能。   平台化软件的基本特性如下:   1)软件架构灵活;   2)核心业务标准化;   3)接口标准化,具有很好的兼容性;   4)提供客户化工具包。1.1.2与其它信息系统的集成1)ERP与客户关系管理的进一步整合  ERP将更加面向市场和面向顾客,通过基于知识的市场预测、订单处理与生产调度、基于约束调度功能等进一步提高企业在全球化市场环境下更强的优化能力;并进一步与客户关系管理CRM结合,实现市场、销售、服务的一体化,使CRM的前台客户服务与ERP后台处理过程集成,提供客户个性化服务,使企业具有更好的顾客满意度。2)ERP与电子商务、供应链SCM、协同商务的进一步整合 ERP将面向协同商务(CollaborativeCommerce),支持企业与贸易共同体的业务伙伴、客户之间的协作,支持数字化的业务交互过程;ERP供应链管理功能将进一步加强,并通过电子商 务进行企业供需协作,如汽车行业要求ERP的销售和采购模块支持用电子商务或EDI实现客户或供应商之间的电子订货和销售开单过程;ERP将支持企业面向全球化市场环境,建立供应商、制造商与分销商间基于价值链共享的新伙伴关系,并使企业在协同商务中做到过程优化、计划准确、管理协调。3)ERP与产品数据管理的整合 产品数据管理PDM(ProductDataManagement)将企业中的产品设计和制造全过程的各种信息、产品不同设计阶段的数据和文档组织在统一的环境中。近年来ERP软件商纷纷在ERP系统中纳入了产品数据管理PDM功能或实现与PDM系统的集成,增加了对设计数据、过程、文档的应用和管理,减少了ERP庞大的数据管理和数据准备工作量,并进一步加强了企业管理系统与CAD、CAM系统的集成,进一步提高了企业的系统集成度和整体效率。4)ERP与制造执行系统的整合 为了加强ERP对于生产过程的控制能力,改变ERP"重计划,轻控制"的弱点,将进一步加强"事前计划、事中控制、事后审核"的功能,ERP将与制造执行系统MES(ManufacturingexecutiveSystem)、车间层操作控制系统SFC更紧密的结合,形成实时化的ERP/MES/SFC系统。该趋势在流程工业企业的管控一体化系统中体现得最为明显。5)ERP与工作流管理系统的进一步整合 全面的工作流规则保证与时间相关的业务信息能够自动地在正确时间传送到指定的地点。ERP的工作流管理功能将进一步增强,通过工作流实现企业的人员、财务、制造与分销间的集成,并能支持企业经营过程的重组,也使ERP的功能可以扩展到办公自动化和业务流程控制方面。6)ERP与企业知识门户进一步整合 企业知识门户(EnterpriseKnowledgePortal,EKP)所关注的是企业内部员工和信息内容,它的核心是知识管理(KM),通过与ERP系统的集成,使得企业内任何员工都可以实时地与工作团队中的其他成员取得联系、寻找到能够提供帮助的专家或者快速连接到相关的知识,它的建立和使用可以大大提高企业范围内的知识共享,并由此提高企业员工的工作效率。 1.1.1整合业务流程的监测与评估“用于测量成功的业务应用解决方案是连续改进的关键:财务表现的共享,SC效力,知识资本的价值以及顾客的满意度都是新的评测方法。”――Gartner。 1传统ERP产品技术架构1.1传统C/S架构的ERP系统   信息系统架构示意图:   1)一层架构:客户端、应用服务器和数据库服务器都在同一台机器上部署;   2)两层架构:数据库服务和应用服务在同一台服务器上部署,客户端访问服务器上的资源或数据;   3) 三层架构:应用服务和数据库服务分离,分别部署在不同的服务器上,应用服务采取集群部署,达到性能上的需求。图2.1不同分级层次的系统架构图   从企业信息系统架构设计看,三层分布式架构是一种典型应用;甚至可以过渡到多层分布式架构,如扩展出缓存服务、负载均衡服务等;这些都是用户对系统快速响应和系统可靠性的需求。1.2B/S架构的ERP系统B/S架构的ERP系统的出现使得传统的ERP系统成为互联网应用,用户借助网络的方便快捷,可以随时随地办公,处理业务数据。现代企业普通存在多区域分支机构,或者业务人员需要差旅或在家办公,传统的C/S架构日益不能满足移动办公的需要,B/S架构的ERP系统刚好可以解决这一需要。 图2.2B/S架构的ERP系统部署图1.1C/S架构和B/S架构的优缺点分析1.1.1C/S系统优缺点  C/S模式的优点[1]:  1)由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。  (当数据少时,C/S在局域网内响应快;当数据超过十万时,C/S软件变慢,B/S软件能维持稳定速度)  2)操作界面交互性强、控件组件形式多样,可以充分满足客户快速操作的要求。  3)C/S结构的管理信息系统能实现的复杂的数据处理操作,不用过多考虑网络的不稳定性。  C/S模式的缺点:  1)需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。  2)兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序,跨平台难度大,无法轻易实现Windows、Linux、iOS系统的同时开发和部署。  3)开发成本较高,需要具有一定专业水准的技术人员才能完成。  (就开发小型企业管理软件,针对内部使用的系统而言,C/S开发人员比B/S开发人员的成本低了许多)。1.1.2B/S系统优缺点  B/S结构的优点:   1)是互联网应用,具有分布性特点,可以随时随地进行查询、浏览等业务处理。  2)业务扩展简单方便,通过增加网页即可增加服务器功能。  3)维护简单方便,只需要改变网页,即可实现所有用户的同步更新。  4)开发简单,共享性强。      B/S结构的缺点:  1)操作是以鼠标为最基本的操作方式,无法满足快速操作的要求,尤其是在大量数据录入操作、复杂交互的情况下,需要提升交互设计能力。  2)页面加载刷新时,响应速度受网络连接的稳定性影响。1.1.1结论   目前,从架构设计来看,ERP系统采用B/S架构和C/S架构是并存存在的,B/S的架构的系统更有发展前景,从长远来看,由于互联网发展,网络带宽提升,HTML5技术出现的等因素,B/S的架构的系统是将来的发展趋势。2国内外最新ERP产品技术架构2.1主流ERP产品简要介绍2.1.1OracleEBusinessSuite2.1.1.1OracleEBS产品介绍    OracleEBS是OracleE-BusinessSuite的缩写,是Oracle公司的ERP产品,全球销量仅次于SAP(另一款ERP产品)。OracleEBS是一整套企业级应用软件,包括:采购管理、库存管理、销售管理、车间管理、物料清单及工艺管理、生产计划、成本管理、应付账款管理、应收账款管理、现金管理、总帐管理、项目会计、项目制造、客户关系管理、供应商门户等模块。2.1.1.2纯互联网技术架构Oracle电子商务套件采用标准的100%基于互联网的三层体系架构;无论是数据库层、应用层以及最前端的最终用户操作界面都100%支持基于JAVA的先进互联网技术[37]。  Oracle电子商务套件的技术架构特点,提供了软件系统基于数据中心运行的集中管理基础。使所有关于软件系统的推广、升级和日常维护工作可以基于数据中心进行,从而达到最大限度地降低客户端软硬件和维护成本,降低服务器端的软件维护工作内容。 图3.1Oracle应用软件技术架构1.1.1.1模块化开放架构Oracle电子商务套件应用产品采用模块化和组件化的先进软件技术体系架构,应用软件产品可以细化成为许多细粒度的模块,不同的客户应用可以选择不同的组件或模块组合形成适合于企业需求的软件平台方案;基于同一共享数据库和统一数据模型的数据层面的高度集成架构,保证各应用模块之间的紧密无缝集成和平滑的业务流转[37]。图3.2Oracle电子商务套件的模块化开放架构 1.1.1SAPNetWeaver1.1.1.1SAPNetWeaver产品介绍   SAPNetWeaver是SAP的集成技术平台和自从SAPBusinessSuite以来的所有SAP应用的技术基础。SAPNetWeaver是一个面向服务的应用和集成平台。SAPNetWeaver为SAP的应用提供开发和运行环境,也可以用来和其它应用和系统进行自定义的开发和集成。SAPNetWeaver是使用开放标准和事实上的工业标准进行开发的,可以用icrosoft?NET,Sun燡avaEE,和IBM燱ebSphere等这些技术平台进行扩展和互操作[44]。1.1.1.2SAPNetWeaver技术架构   SAP企业系统架构是以SOA架构技术作为基础框架进行开发的。ERP,CRM,SCM,SAPBusinessSuite,SRM,PLM系统都是独立的子系统,这些系统之间的交互都是通过SOA服务进行。图3.3SAP企业系统架构1.1.2用友U91.1.2.1用友U9产品介绍   用友U9完全基于SOA架构的世界级企业管理软件,用友U9面向快速发展与成长的中大型制造企业复杂应用,以“实时企业、全球商务”为核心理念,完全适应多组织供应链协同、多工 厂制造协同、产业链协同、产品事业部和业务中心的管理模式,更能支持多生产模式的混合生产与规划、多经营模式的混合管理、精益生产、全面成本、跨国财务等深度应用,具有高度灵活的产品架构,帮助企业快速响应变化,支持经营、业务与管理模式的创新。1.1.1.1用友U9技术架构    UFIDAU9完全采用面向服务架构(SOA),实现了全程模型驱动开发(MDD)模式,达到降低集成和开发成本的目的。UAP使企业管理软件具有多项新技术应用特点:企业信息资源变得可重用、透明化,并且系统具有高可扩展性,让业务处理更加高效、简洁、安全。UAP还提供了统一的集成开发环境(IDE),用户可以使用包括企业建模、领域建模、服务设计、UI设计、报表设计、规则设计、数据库设计等全方位的设计器,并通过可视化的界面和友好的交互操作,自动生成用户所需要的各种服务部件。UAP完全支持企业级的集成与应用协同,如Office集成、移动商务、企业搜索、智能客户端等多项领域[35]。图3.4用友U9技术架构1.2ERP系统架构设计的共同特点   通过国内外最新ERP产品的功能及技术架构比较,得出:基于SOA架构的技术框架是共同采用的,而且更加强调了多设备的支持,完全基于互联网模式的系统。产品名称是否B/S是否SOA架构是否模块化构建是否支持移动设备是否分布式部署OracleEBusinessSuite是是是支持是SAPNetWeaver是是是支持是用友U9是是是支持是金蝶EAS是是是支持是OpenERP(开源)是下一版本支完全模块化支持是 持表3.1各主流ERP产品系统架构比较1.1.1基于互联网的三层体系架构   采用标准的100%基于互联网的三层体系架构,无论是数据库层、应用层以及最前端的最终用户操作界面都100%支持WEB的互联网技术,特别是应用层,直接采用互联网先进技术,不需要任何中间转换过程,在体现先进互联网技术的同时,最大限度的减少了中间环节,保证了系统处理的高性能和高稳定性。1.1.2面向服务架构(SOA)   完全采用面向服务架构(SOA),实现了全程模型驱动开发(MDD)模式,达到降低更加强调系统的基础,采用松耦合,降低系统的耦合度。SOA的实现方式都是采用了基于Http协议的WebService的技术,数据交换格式采用XML,SOAP。1.1.3模块化和组件化的体系架构模块化和组件化的先进软件技术体系架构,应用软件产品可以细化成为许多细粒度的模块,不同的客户应用可以选择不同的组件或模块组合形成适合于企业需求的软件平台方案;基于同一共享数据库和统一数据模型的数据层面的高度集成架构,保证各应用模块之间的紧密无缝集成和平滑的业务流转。 1基于SOA架构的ERP系统1.1SOA技术简介1.1.1SOA概念及简介1.1.1.1SOA的基本概念     面向服务的体系结构(Service-OrientedArchitecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互[26]。简介  SOA(Service-OrientedArchitecture),面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。  SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML/WebService技术之后的自然延伸。1.1.1.2SOA技术的优势   通过SOA思想的引入,使得ERP软件可以做到[50]:   1)支持异构集成   所谓异构环境,包括四个层次,硬件平台、操作系统、数据库、应用软件。如果一套硬件、一套操作系统、一套数据库、一套应用软件能够面面俱到的解决集团企业的所有管理问题,那是再好不过了。但现实中是不可能的,更普遍的是,不同的应用往往选择不同的平台和应用系统,以便充分发挥各个厂商的特长。支持SOA的ERP系统为集团企业的信息化提供了伸缩空间,企业可以根据需要选择最合适的解决方案。    2)降低企业的IT成本    以往多数企业在建设企业的ERP系统时是从项目的角度出发的,比如ERP项目、CRM项目等,事后当企业的IT系统越来越多的时候,才会考虑系统的集成问题,但这时候往往集成的难度就很大了。而SOA要求企业在建设IT系统之初就要考虑这些问题,也就是要考虑服务之间的接口问题。这样就会使企业的IT成本大大降低。   同时,SOA将改变以往的软件购买模式。目前,多数企业在购买软件时往往是成熟性软件,需一个模块或一个系统的购买,企业在购买时往往无法将那些企业不需要的功能剔除出去,这 样,企业就不得不为此多付出资金、培训成本等许多不必要的成本。而支持SOA的集团财务软件则可以帮助企业实现真正的按需购买,企业需要什么功能就购买相应的服务,帮助企业避免不必要的支出。   3)实现企业的动态变革   支持SOA的集团财务系统使企业的IT人员不必太多的关心企业IT系统的底层技术,而更多的去考虑集团财务的业务处理以及财务业务与IT的接合。同时,以往企业在开发集团财务系统时,在重复功能上浪费了大量的人力与财力,同时系统在开发完成后,如果企业业务变化,系统将很难更改或者更改的成本很高。而SOA面对的是一个个独立的服务,服务之间可以通过标准接口来相互调用,这样企业在重复功能上就可以直接通过接口调用,而不必去重新开发。企业的业务发生变化时,只需要修改相对应的服务即可,降低了修改的难度与复杂度,保证了企业的IT系统的动态变化。1.1.1基于SOA技术的体系结构1.1.1.1SOA是松耦合的系统   这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点:   1)是它的灵活性,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。   2)而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。  对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(Ondemand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。  SOA系统原型的一个典型例子是通用对象请求代理体系结构(CommonObjectRequestBrokerArchitecture,CORBA),它已经出现很长时间了,其定义的概念与SOA相似。然而,现在的SOA已经有所不同了,通过使用基于XML的语言(称为Web服务描述语言(WebServicesDefinitionLanguage,WSDL))来描述接口,服务已经转到更加动态且更灵活的接口系统中,非以前CORBA中的接口描述语言(InterfaceDefinitionLanguage,IDL)可比了。1.1.1.2SOA体系结构作用   传统企业(数据库)应用软件产品,如MRP、ERP、OA系统等,在设计或架构上都是紧偶合、封闭式、自成体系,属于一次性投入一次性完结的产品。这样的产品很难适应或快速响应市场或客户灵活多变的需求,以及后续的扩展。在这样的市场、及客户需求下,从而催生了软件产品一种新的设计或架构的理念:面向服务架构(SOA架构)。      对SOA的需要来源于需要使业务IT系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。   SOA是一场革命。一个应用程序的业务逻辑(businesslogic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用.NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。  让SOA系统适应改变的能力是最重要的部分,对于开发人员来说,这样的改变无论是在他们工作的范围之内还是在他们工作的范围之外都有可能发生,这取决于是否有改变需要知道接口是如何定义的以及它们相互之间如何进行交互。与开发人员不同的是,架构师的作用就是引起对SOA模型大的改变。这种分工,就是让开发人员集中精力于创建作为服务定义的功能单元,而让架构师和建模人员集中精力于如何将这些单元适当地组织在一起,它已经有十多年的历史了,通常用统一建模语言(UniversalModelingLanguage,UML),并且描述成模型驱动的体系结构(Model-DrivenArchitecture,MDA)。  1.1.1.1SOA架构的定义或特性   SOA架构,是一种粗粒度、开放式、松耦合的服务结构,要求软件产品在开发过程中,按照相关的标准或协议,进行分层开发。通过这种分层设计或架构体系可以使软件产品变得更加弹性和灵活,且尽可能的与第三方软件产品互补兼容,以达到快速扩展,满足或响应市场或客户需求的多样化、多变性。一个典型的SOA架构示意如下:图4.1SOA架构的系统图示 1.1.1.1基于SOA技术架构的价值1.1.1.1.1未来企业的应变之道   持续增长的客户需求、瞬息万变的市场和日趋激烈的全球化竞争,使得企业必须不断提升自身IT及企业管理系统的敏捷性和适应性。现在,每个企业都需要把握业务流程发展的变革,预测业务环境的变化,以便对竞争者做出快速响应,确保企业的生存、发展和快速成长[27]。   面向服务架构技术(Service-OrientedArchitecture,SOA)的出现,标志着设计、开发、部署新的企业应用系统,并将其与原有应用系统、业务流程进行集成的方式出现了根本性变化。   采用SOA架构,可以带来显著的商业和技术利益:   1)提升商业决策能力,通过将商业服务和信息进行聚合成为一系列动态的、组合的商业应用,企业决策者可以更便捷地获得更准确、更全面、更深入的信息,可以更敏捷地对各种变化做出反应。   2)获得更高的员工生产率,SOA可以改进商业流程,使得员工更加关注关键性、增值业务流程,基于服务更好地进行协作,通过各种方式访问和操作业务数据和信息,大大提升生产率。    3)建立与供应商和顾客的更强的联系,SOA增强了端到端的应用模式,跨越企业组织边界,更好地集成现有的信息系统,通过服务的编排和聚合,使其更好地融合在业务流程里。    4)可以更快、更节省地搭建IT和业务应用系统,基于SOA和标准化服务组件,可以根据业务流程需要,更快地搭建业务系统;同时,也可以更好地利用原有的IT和业务系统的投资,并保证其符合业务流程的需要。    5)可以增强IT和业务系统的可管理性和安全性,通过安全服务的部署和SOA治理,可以实现更强的安全性管理和监控,确保了整个架构置于统筹和管理之下。1.1.1.1.2完全SOA架构所带来的价值   1)确保总体架构的合理规划,全面整合信息,彻底消除应用孤岛,全面实现过程、人员和信息的实质集成、高度协调,实现更高的互操作性与协同、更敏捷的业务流程、更全面的信息可见性;   2)企业的IT及应用系统架构将更具伸缩性,IT价值将得到充分的发挥,全面提升未来企业的竞争优势;   3)降低集成成本和风险,降低维护成本:随着企业业务的发展,非SOA应用在IT和应用系统中相互集成的成本和风险日益增大,系统运行将变得繁冗和低效;相应地,为维护应用孤岛及更多的流程接口,甚至是重复、重叠的业务功能系统,企业IT及应用系统维护成本将不可避免地日益增大。   4)基于SOA架构的IT及应用系统可以增量部署到位,但毫无疑问,选择完全SOA架构是正确、长远和明智的决策。 1.1.1SOA的实现方式-WebService1.1.1.1WebService的概念   WebService是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。WebService是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问WebService,通过WebService内部执行得到所需结果.WebService可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务[28]。1.1.1.2WebService的关键技术和规则1.1.1.2.1技术和规则   在构建和使用WebService时,主要用到以下几个关键的技术和规则:  1)XML:描述数据的标准方法.  2)SOAP:简单对象访问协议.  3)WSDL:Web服务描述语言.  4)UDDI(UniversalDescription,DiscoveryandIntegration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。1.1.1.2.2相关  实际上,WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。由此可以看出,在以下三种情况下,使用WebService会带来极大的好处。具体如下:1)跨防火墙的通信  如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。2)应用程序集成  企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行在IBM 主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。3)B2B的集成  用WebService集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。  WebService是B2B集成成功的关键。通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个新的概念,EDI(电子文档交换)早就是这样了。但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。  用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受EDI的中小企业也能实现B2B集成。4)软件和数据重用  软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,另一种形式是二进制形式的组件重用。  WebService在允许重用代码的同时,可以重用代码背后的数据。使用WebService,再也不必像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件;只需要直接调用远端的WebService就可以了。举个例子,要在应用程序中确认用户输入的地址,只需把这个地址直接发送给相应的WebService,这个WebService就会帮你查阅街道地址、城市、省区和邮政编码等信息,确认这个地址是否在相应的邮政编码区域。WebService的提供商可以按时间或使用次数来对这项服务进行收费。这样的服务要通过组件重用来实现是不可能的,那样的话你必须下载并安装好包含街道地址、城市、省区和邮政编码等信息的数据库,而且这个数据库还是不能实时更新的。  另一种软件重用的情况是,把好几个应用程序的功能集成起来。例如,要建立一个局域网上的门户站点应用,让用户既可以查询联邦快递包裹,查看股市行情,又可以管理自己的日程安排,还可以在线购买电影票。现在Web上有很多应用程序供应商,都在其应用中实现了这些功能。一旦他们把这些功能都通过WebService“暴露”出来,就可以非常容易地把所有这些功能都集成到你的门户站点中,为用户提供一个统一的、友好的界面。  将来,许多应用程序都会利用WebService,把当前基于组件的应用程序结构扩展为组件/WebService的混合结构,可以在应用程序中使用第三方的WebService提供的功能,也可以把自己的应用程序功能通过WebService提供给别人。两种情况下,都可以重用代码和代码背后的数据。 1.1.1.1SOA的WebService实现   SOA是一种软件架构,而不是局限于某个技术的组合,它超越了技术范围。SOA的关键是“服务”。W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常是使用者的状态发生变化,但也可能是提供者的状态改变,或者双方都产生变化”。服务是网络中可用的软件资源。服务提供者通过标准机制提供服务,使用者通过网络有计划地使用服务。服务储备库发布服务所在位置,并在使用者请求服务时定位服务。服务使用者和提供者的角色不是惟一的,服务提供者也可以是使用者,反之亦然。SOA具体的实现有很多,包括WebService,Ses-sionBean,JINI等,但随着WebService技术被越来越重视,其己经成为构建SOA的主要技术。图4.2标准WebService技术和SOA架构系统对比   从上图比较得出,SOA自治的WebService实现架构中,增加了对服务的管理,包括:业务对象管理、业务流程管理,服务策略,服务安全等的考虑。1.1.1.2基于SOA的Application为什么选择SOA?  不同种类的操作系统,应用软件,系统软件和应用基础结构(applicationinfrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(businessprocesses),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(applicationinfrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organicbusiness)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务, 并可以把企业现有的或已有的应用作为服务,从而保护了现有的IT基础建设投资。图4.3采用SOA架构的应用示例1.1基于SOA的ERP系统架构设计1.1.1SOA架构基础技术1.1.1.1SOA服务架构  为了实现SOA,企业需要一个服务架构,服务消费者(serviceconsumer)可以通过发送消息来调用服务。这些消息由一个服务总线(servicebus)转换后发送给适当的服务实现。这种服务架构可以提供一个业务规则引擎(businessrulesengine),该引擎容许业务规则被合并在一个服务里或多个服务里。这种架构也提供了一个服务管理基础(servicemanagementinfrastructure),用来管理服务,类似审核,列表(billing),日志等功能。此外,该架构给企业提供了灵活的业务流程,更好地处理控制请求(regulatoryrequirement),例如SarbanesOxley(SOX),并且可以在不影响其他服务的情况下更改某项服务[29]。 图4.4SOA服务架构1.1.1.1SOA基础结构  要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器[29]。图4.5SOA基础架构  SOAP,WSDL,UDDI  WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。   WS-IBasicProfile  WS-IBasicProfile,由Web服务互用性组织(WebServicesInteroperabilityOrganization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用BasicProfile测试程序来测试服务在不同平台和技术上的互用性。  J2EE和.Net  尽管J2EE和。NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如JAXB(JavaAPIforXMLBinding),用于将XML文档定位到Java类;JAXR(JavaAPIforXMLRegistry)用来规范对UDDI注册表(registry)的操作;XML-RPC(JavaAPIforXML-basedRemoteProcedureCall)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如。NET)的服务互用。  服务品质  在企业中,关键任务系统(mission-criticalsystem,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性,可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,qualityofservices)。与QoS相关的众多规范已经由一些标准化组织(standardsbodies)提出,像W3C(WorldWideWebConsortium)和OASIS(theOrganizationfortheAdvancementofStructuredInformationStandards)。下面的部分将会讨论一些QoS服务和相关标准。  安全  Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换,消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(asSecurityAssertionMarkupLanguage)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。  可靠  在典型的SOA环境中,服务消费者和服务提供者之间会有几种不同的文档在进行交换。具有诸如“仅且仅仅传送一次”(once-and-only-oncedelivery),“最多传送一次”(at-most-oncedelivery),“重复消息过滤”(duplicatemessageelimination),“保证消息传送”(guaranteedmessagedelivery)等特性消息的发送和确认,在关键任务系统(mission-criticalsystems)中变得十分重要。WS-Reliability和WS-ReliableMessaging是两个用来解决此类问题的标准。这些标准现在都由OASIS负责。  策略  服务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要求被定义为策略断言(policyassertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。  控制  当企业着手于服务架构时,服务可以用来整合数据仓库(silosofdata),应用程序,以及 组件。整合应用意味着例如异步通信,并行处理,数据转换,以及校正等进程请求必须被标准化。在SOA中,进程是使用一组离散的服务创建的。BPEL4WS或者WSBPEL(WebServiceBusinessProcessExecutionLanguage)是用来控制这些服务的语言。WSBPEL目前也由OASIS负责。  管理  随着企业服务的增长,所使用的服务和业务进程的数量也随之增加,一个用来让系统管理员管理所有运行在多相环境下的服务的管理系统就显得尤为重要。WSDM(WebServicesforDistributedManagement)规定了任何根据WSDM实现的服务都可以由一个WSDM适应(WSDM-compliant)的管理方案来管理。  其它的qos特性,比如合作方之間的溝通和通訊,多個服務之間的事務處理,都在WS-Coordination和WS-Transaction標準中描述,這些都是OASIS的工作。1.1.1SOA架构设计方案   系统采用面向服务架构来设计其体系结构,每一层的具体功能如下:图4.6基于SOA架构的ERP系统架构设计    1)应用表示层采用Portal技术建立企业信息门户,通过标准接口与服务提供方和服务注册中心通讯,达到查询和绑定服务的目的。功能设计中将利用服务层和业务流程编排层提供的服务和业务应用流程,以及引入的其他外部WebService,利用了最新的Web2.0技术,包括Ajax、RSS、WebGIS等等来增强用户体验。   2)业务流程编排层集成了各种业务规则和逻辑规则,将服务层提供的服务编排成业务应用流程,满足了灵活重组企业内部流程的要求。   3)服务层由各种粒度的服务组成,主要分为粗粒度服务和细粒度服务,并按功能的不同将它们分成四类提供给不同的用户使用。这四类包括:技术功能、业务功能、业务事务和业务流程。其中技术功能主要是由运行基础提供的各种服务,业务功能则是由组件层发布上来的细粒度服务。业务事务则是粒度稍大的服务。粒度最大的是业务流程服务。在该层通过业务服务总线(BSB)完成细粒度服务到粗粒度服务的整合,从而实现ERP系统的整体功能。本层的主要功能在于分类组织组件层发布上来的各种服务、SOA运行基础提供的功能服务以及从外部引入的各种服务。   4)组件层主要向上提供涉及到各种企业应用的接入组件,以实现系统中不同的功能模块,并通过WebService接口被包装成WebService发布到在组件层之上的服务层,同时组件层预留其他类型接口供系统调用。   5)系统层,主要是提供满足ERP系统的基础架构,如企业ERP系统中通常需要集成的各个应用系统和数据库管理系统。通常各个应用系统之间是相互独立的,他们将通过系统架构中的组件层接入整个SOA企业信息系统中并受BusinessIntelligence控制。在系统层,通过面向对象技术完成组件层与数据库的交互。1.1.1SOA架构实现 为了实现构建大型,分布的多层企业应用技术,使系统具有语言无关、再开发、可移植性和高性能等优点,我们选择.NET平台作为基于SOA的Web服务开发实现平台。结合WebServices,采用xfire发布框架完成SOA架构的实现。   1)应用表示层的技术实现 通过Asp.netMVC3.0框架对web服务的良好的支持完成Web层的开发,以达到体现给用户一个直观而且简单易于使用的用户界面。在表示层中同时采用与AJAX技术相结合,让系统页面在性能上具有比一般Web页面更快的响应速度。   2)业务流程编排层的技术实现 由于系统的业务流程比较灵活,本文采用基于标准的可扩展的WSDL和BPEL(Web服务业务流程执行语言)来定义和描述流程。在BPEL中通过使用结构化活动来定义这些活动之间的相互关系从而创建出复杂的流程,这有利于系统的开放性和通用性。在此基础上采用Web服务完成流程到前台应用系统的接口,Web服务向内通过各种控件完成流程的操作与管理,向外为前台的开发提供了一个结构松散、异步操作和具有分布式支撑能力的统一接口。   3)Webservice发布框架 WebService(Web服务)技术则是一种主要的实现方法。Webservice发布主要由xfire实现,xfire是一个免费的开源SOAP框架,在它的代码中有一个轻量级的信息处理模块通过STAX来与SOAP信息相结合。它不仅可以极大方便地实现这样一个环境,并且可以提供许多Web Services规范中高级特征,这些特征在多数的商业或者开源工具都没有提供。1.1.1SOA架构的服务管理组件:ESB1.1.1.1企业服务总线ESB简介1.企业服务总线介绍  ESB全称为EnterpriseServiceBus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信和整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口[30]。2.企业服务总线功能  1)总线基础服务框架:提供系统一致性、安全性、可靠性,以及性能何扩展能力保障的基础技术手段。  2)集成服务:提供基础的集成服务与用户定制的应用服务;支持多种集成服务模式;支持服务的封装、重用、服务组合、服务调度。  3)公用服务:提供内置的各种公用服务。例如,渠道认证服务,日志服务等公用服务。  4)服务管理和服务标准:提供服务配置管理的前台工具集合,并提供行业的服务规约标准。  5)系统监控:提供多角度的系统实时监控与交易报表,提供用户定制的告警。  6)安全体系:提供多种安全机制并支持和第三方安全系统的有效集成,提供有效的安全监控机制。1.1.1.2传统的EAI解决方案     企业应用集成经历了从最初的点到点连接到基于消息的中间件再到基于SOA和ESB的发展历程[31]。  EAI点对点集成结构存在着严重的隐患,即随着应用系统个数的增加。接口的数目将快速增长,其总数为n(n-1)个接口(n为应用系统个数)。应用系统之间存在着高度的耦合性。这为系统的维护带来巨大的复杂性,任何一个系统的升级和改动都将影响到其他与之相关的应用系统的修改。随着控制技术和信息技术的发展,企业信息化涉及到的子系统越来越多,点对点的集成方式已无法满足需求。 图4.7点对点的EAI技术   传统的EAI技术试图通过Hub-Spoke结构解决企业内部的整合问题。在SOA架构中的各服务之间设置一个类似Hub的中间件,由它充当整个SOA架构的中央管理器的作用。这样,服务的请求者和提供者之间有了一个智能的中转站,服务的请求者不再需要了解服务提供者的细节。图4.8Hub-Spoke结构的EAI技术   SOA的应用场景是复杂的企业级架构,如果采用Hub的模式来构建SOA基础架构,从纯粹逻辑的角度,可能会出现以下问题:首先,如果每个服务的请求都经过中央Hub的中转,那么Hub的负担会很重。速度会随着参与者的增多而愈来愈慢;其次,这样的系统会很脆弱,一旦Hub出错,整个SOA架构都会瘫痪;最后,这样的架构会破坏SOA的开放性原则,参与者运行在一个相对封闭的环境中,扩展起来十分麻烦。 1.1.1.1企业服务总线解决方案1.概念  ESB的概念是从SOA发展而来的。SOA描述了一种IT基础设施的应用集成模型,其中的软构件集是以一种定义清晰的层次化结构相互耦合,其中,一个ESB是一个预先封装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。ESB是一种是松散耦合的服务和应用之间标准的集成方式,它可以作用于[31]:  1)面向服务的架构:分布式的应用由可重用的服务组成。  2)面向消息的架构:应用之间通过ESB发送和接受消息。  3)事件驱动的架构:应用之间异步的产生和接收消息。图4.9ESB企业服务总线   如上图所示,ESB比EAI结构灵活的多:首先,它比单一Hub的形式更开放,总线结构有无限扩展的可能;其次,真正体现了SOA的理念,一切皆为服务,服务在总线中处于平等的地位。即使我们需要一些Hub,那么它们也是以某种服务的形式部署在总线上。因此,ESB可作为SOA架构中实现服务间智能化集成与管理的中介。2.优势  ESB是一个完全面向企业级的中间件解决方案,可以架构在企业现有的网络框架、软硬件系统之上,构筑出一个企业级的信息系统解决方案。在ESB中,服务器犹如一个个汽车站,可以自由地连接和脱离ESB中间件,所有的信息系统都可以通过其发送或接受任务、指令,它适用于所有的现有的或未来的信息应用平台。  对企业而言,采用ESB中间件系统作为企业级信息系统融合方案中的中枢技术,几乎可以无须添加任何软硬件设备,就可把过去、现有和未来的IT系统整合在企业级的信息应用框架下,并且能为企业提供实时、大容量的信息通信和实时控制、管理和分配消息传递的能力。它能大大提高整个网络和信息系统的使用效率,还能为企业节省可观的整合费用。 1.1.1.1ESB在SOA系统中的实施阶段   尽管ESB作为SOA架构系统中的关键组件,但是并不是作为基础组件,在开始阶段就去开发。   Accenture首席技术官DonRippert认为激活SOA的全部潜力需要通过四个阶段,而ESB则处于第三个阶段。他同时指出当前大多数的企业还只是处于第一个阶段,因此ESB实际上对于他们来说并不是迫切需要的[32]。  而他所说的四个阶段如下所示:  1)使用XML,以更标准的方式使用应用程序接口。  2)捕获一些业务过程,并将它们转化成为Web服务。  3)引入并全面使用企业服务总线。  4)产生业务过程执行语言(BusinessProcessExecutionLanguage,BPEL),它可由业务过程建模工具完成。BPEL可以改变应用程序的行为,而无需修改软件。  另外,在IBM定义的实施SOA的五个切入点中——人员、流程、信息、连接性、重用,只有连接性和ESB相关。  Bobby在他的文章中也说道,仅仅建造一个总线的工程是不可取的。IT部门认为只要建造了一个总线,人们就会围绕着总线来构造SOA的应用了。但是问题在于,当人们开始构造SOA应用时,他们会发现那些已经建造好的ESB已经不能满足当前的需求了。1.2ERP系统架构技术的时间线通过ERP系统架构演变发展的资料分析,特意绘制了架构技术的时间线,如下图所示:图4.10架构技术的演化时间线基于SOA架构的ERP系统是分解掉传统ERP的紧耦合特性,将ERP系统的内部功能以服 务的方式呈现出来,通过API调用的方式和其它系统交互;借助互联网B/S架构的先进性,可以在线随时访问ERP系统,免安装和部署,为企业能够节省IT运营成本,提升ERP系统在企业内部的重要性。 1系统实现的关键技术1.1关键技术框架及工具1.1.1三层分布式架构1.1.1.1三层架构介绍三层架构是[23]: 1)界面层  界面层提供给用户一个视觉上的界面,通过界面层,用户输入数据、获取数据。界面层同时也提供一定的安全性,确保用户不用看到不必要的机密信息。 2)逻辑层  逻辑层是界面层和数据层的桥梁,它响应界面层的用户请求,执行任务并从数据层抓取数据,并将必要的数据传送给界面层。 3)数据层  数据层定义、维护数据的完整性、安全性,它响应逻辑层的请求,访问数据。这一层通常由大型的数据库服务器实现,如Oracle、Sybase、MSSQlServer等。 从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度工降低了开发的难度。 三层架构属于瘦客户的模式,用户端只需一个较小的硬盘、较小的内存、较慢的CPU就可以获得不错的性能。相比之下,单层或胖客户对面器的要求太高。 三层架构的另一个优点在于可以更好的支持分布式计算环境。逻辑层的应用程序可以有多个机器上运行,充分利用网络的计算功能。分布式计算的潜力巨大,远比升级CPU有效。 三层架构的最大优点是它的安全性。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。 另外三层架构还可以支持如下功能: 1)RemoteAccess(远程访问资料),例如可透过Internet存取远程数据库; 2)HighPerformance(提升运算效率)解决集中式运算(Centralize)及主从式架构(Client-Server)中,数据库主机的运算负担,降低数据库主机的ConnectionLoad,并可藉由增加AppServer处理众多的数据处理要求; 3)Client端发出Request(工作要求)后,便可离线,交由AppServer和DataBaseServer共同把工作完成,减少Client端的等待时间。  分布式系统是充分利用服务器资源,性能优势将系统的表现层、逻辑层和数据层部署到不同的服务器上,这样做的好处是获取系统的可靠性和健壮性。一个典型的三层分布式的系统架构如下图所示:图5.1典型三层分布式系统架构1.1.1.1分布式系统介绍 分布式系统有如下特点[24]: 1) 协作与互联分布式系统的重要作用之一就是能够整合大量地理上分散于各地的信息和服务,如地图、电子商务网站、多媒体、大百科全书等。互联网上即时通讯系统和聊天室的流行凸显了分布式系统的另一个重要作用:与家庭、朋友、同事乃至客户保持联系。 2)经济性包括PDA、笔记本、台式机和服务器在内的计算机网络通常比集中式的大型机具有更高的性价比。例如,它们支持非集中式的、模块化的应用,这使得共享像大容量的文件服务器、高清晰度的打印机等昂贵的外设成为可能。相应地,我们可以将选定的应用组件和服务分配到具有特殊处理属性的计算机节点上执行,如具有高性能磁盘控制器、大容量内存或增强的浮点运算能力的节点,而那些简易的程序就可以运行在相对廉价的硬件上。 3)性能与可伸缩性成功的软件通常会随着时间推移而拥有更多的用户和需求,因此分布式系统的性能能否扩展以 处理不断增加的负荷至关重要。可以将已联网计算节点的处理能力组合起来以获得性能的极大提升,此外,至少理论上来说,多处理器和网络更容易扩展。例如,多个计算和通信处理任务可以并行运行在数据中心的不同节点上,或运行在同一服务器的不同虚拟机上。 4)容错性分布式系统的关键目标之一是允许系统发生部分故障。例如,尽管网络中的所有节点都运转正常,但网络本身可能会出现故障。类似地,网络中的某个终端系统,或多处理器系统中的某个中央处理器可能崩溃。这些故障应当能被很好地处理而不影响其他不相关的部分或整个系统。一种常见的容错实现方式是在多个节点或网络上提供重复的服务。冗余性有助于将单节点失败的影响控制在最小范围内,它可以显著提高系统在出现部分故障时的可靠性。 5)内在的分布性某些应用天生就是分布式的,如电信管理网络(TMN)系统、跨区域部门的企业级业务系统、对等网络(P2P)的内容共享系统、企业之间(B2B)的供应链管理系统等。分布式在这些系统中已经不再是一个可选项,而是满足客户需求至关重要的部分。1.1.1基于WEB的B/S架构开发技术   完全采用100%WEB,也就是B/S架构的应用软件才能以云计算模式给客户提供服务。因为因为这种模式才能做到跨平台,兼容各种设备;其架构应该是基于互联网的架构,核心的业务逻辑是在后台服务器上部署实现,客户端始终完成数据展现和交互操作。早期的那些基于单机、局域网的C/S结构软件是无法支持云计算的,虽然有某些软件公司为了急于搭上云计算这趟车,试图利用SOA、虚拟化等技术将20甚至30年前的C/S软件改造成为支持云计算模式,实践证明这是徒劳的。也是对客户不负责的。这绝对不是云计算,实际上是一种Multi-Tenant模式,这种模式无法解决高性能、个性化、跨平台等关键问题[2]。1.1.2统一认证技术1.1.2.1SSO简介   SSO英文全称SingleSignOn,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一[34]。1.1.2.2SSO技术实现机制   当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了[34]。   要实现SSO,需要以下主要的功能:   1)所有应用系统共享一个身份认证系统  统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行校验,判断其有效性。   2)所有应用系统能够识别和提取ticket信息  要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。  另外:  1)单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,事实上,只要统一认证系统,统一ticket的产生和校验,无论用户信息存储在什么地方,都能实现单点登录。  2)统一的认证系统并不是说只有单个的认证服务器  认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。如:当用户在访问应用系统1时,由第一个认证服务器进行认证后,得到由此服务器产生的ticket。当他访问应用系统2的时候,认证服务器2能够识别此ticket是由第一个服务器产生的,通过认证服务器之间标准的通讯协议(例如SAML)来交换认证信息,仍然能够完成SSO的功能。图5.2SSO系统架构示意图WEB-SSO的实现  用户在访问页面1的时候进行了登录,但是客户端的每个请求都是单独的连接,当客户再次访问页面2的时候,如何才能告诉Web服务器,客户刚才已经登录过了呢?浏览器和服务器之间有约定:通过使用cookie技术来维护应用的状态。Cookie是可以被Web服务器设置的 字符串,并且可以保存在浏览器中。当浏览器访问了页面1时,web服务器设置了一个cookie,并将这个cookie和页面1一起返回给浏览器,浏览器接到cookie之后,就会保存起来,在它访问页面2的时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态。Web-SSO完全可以利用Cookie技术来完成用户登录信息的保存,将浏览器中的Cookie和上文中的Ticket结合起来,完成SSO的功能。  为了完成一个简单的SSO的功能,需要两个部分的合作:  1)统一的身份认证服务。  2)修改Web应用,使得每个应用都通过这个统一的认证服务来进行身份校验。1.1.1构件开发技术早在2000年,GartnerGroup①就预测到2003年至少70%的新应用将主要建立在软件构件之上。随着WebServices等技术的发展,将会进一步地推动构件技术的发展,而基于构件的软件开发方式也成为软件开发的主流技术[15]。什么是软件构件?  工业化革命的伟大创新在于,功能再复杂的产品也可以由大量标准的零部件组装而成,分工越细、专业生产程度越高,总体生产效率就越高。构件技术就是一种类似于“零部件组装”的集成组装式软件生产方式,它把零件、生产线和装配运行的概念运用在软件产业中,彻底打破了手工作坊式的软件开发模式。  构件是软件的构成元素,具有一定的功能和结构,并符合一定的标准,可以完成一个或多个特定的服务。构件隐藏了具体的实现,通过接口对外提供服务。一般而言,构件是软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语境有明显依赖关系、可独立部署、可组装的软件实体。广义上讲,构件可以是数据,也可以是被封装的对象类、软件构架、文档、测试用例等。软件生产方式的变革  构件技术的出现是对传统软件开发过程的一次变革。构筑在“构件组装”模式之上的构件技术,使软件技术人员摆脱了“一行行写代码”的低效编程方式,直接进入“集成组装构件”的更高阶段。 图5.3软件构件开发技术  基于构件的软件开发,不仅使软件产品在客户需求吻合度、上市时间、软件质量上领先于同类产品,提高了项目的成功率,而且对软件的开发和维护变得简单易行,用户可以随时随地应应对商业环境变化和IT技术变化,实现“敏捷定制”。  从最终用户的角度来看,采用基于构件技术开发的系统,在遇到业务流程变化或系统升级等问题时,不再需要对系统进行大规模改造或推倒重来,只要通过增加新的构件或改造原来的构件来实现。  据已采用构件技术进行软件开发的我国某著名软件企业的相关统计显示,构件技术可以使软件的投放市场时间减少为原来的1/2到1/5,使软件的缺陷密度降低为原来的1/5到1/10,使软件的维护成本降低为原来的1/5到1/10,使整体软件的开发成本降低大约15%,长期项目可降低高达75%的成本。1.1.1.1构件化开发基本概念构件化,是指软件体系结构可重组以及软件组件可重用的系统开发方法。这种方法的基本内涵是:应用需求领域化,软件结构框架化,软件元素构件化,应用原型实例化。构件,是具有一定的功能和结构,并符合一定的标准,可以完成一个或多个特定的服务的软件实体,可独立部署也可以组装。采用构件技术的软件生产方式就是一种类似于“零部件组装”的集成组装式软件生产方式,它把零件、生产线和装配运行的概念运用在软件产业中,打破了手工作坊式的软件开发模式,实现“搭积木”的组建方式[14]。 图5.4积木式搭建软件系统  基于构件的软件开发方法有以下几方面的优势:   1)提高复用性:      即全面考虑构件在多个应用系统中的复用潜力;   2)提高可定制性和适应性:      即可以让使用者按需配置构件;   3)提高可维护性:      即在系统中可以方便地添加、删除和修改构件。   基于构件的开发方法与面向对象的开发方法相类似,它们都采用自顶向下和自底向上相结合的方法,而后者支持类的重用,但前者的底是可重用的构件,顶是可重用的应用系统原型、应用框架,这样它的复用广度和粒度都大大高于面向对象的开发方法,从根本上解决了应用软件开发中存在的开发质量和开发效率问题。  构件化开发技术的好处:  作为一种新的软件开发方法,构件化开发具有不少优点,给软件应用企业带来了诸多便利和好处。  首先,软件应用企业的IT维护人员可以使用软件厂商提供的构件化平台建模工具而不必学习新的语言和工具,这样就允许企业可以利用现有的人员和技术,不必为了新的系统应用单独培训和招聘相关技术人员,降低企业IT人员投入成本。  其次,当企业出现新的应用需求,软件商或企业的开发人员使用原有平台来创建或是使用测试的构件时,开发人员在组装过程中可以集中精力关注业务问题而不用担心技术以及外部设施等其他问题,由此减少了系统完成时间,从而大大降低了系统的实施周期。  然后,软件厂商提供的构件大多经过市场的检验而变得比较成熟,相对单独编写代码设计的情况而言,这些构件的使用可以使系统更可靠、设计更合理。由于系统的开发基于组装过程, 构件能更容易地替换,有更多附加值。这样使得系统的灵活性更好,系统可以随着软件厂商的技术升级及时更新,满足企业业务发展的需要。  最后,构件化开发可以有效降低软件厂商的开发费用及系统实施费用,软件厂商的开发成本和实施成本降低后,软件应用企业付出的费用也随之相应降低。另外,当企业选择一套构件化的软件应用平台后,后期的业务扩展应用都可以在此平台上进一步实现,相对企业应用多个业务系统的情况而言,总体成本大大降低,另外也大幅降低企业的IT投入及后期的维护成本。1.1.1.1构件化开发与SOA的区别   构件是一种软件开发技术,它的基本理念是将软件开发过程中会重复用到的部分封装起来,等到有新的同样的需求时调用。确切地说,SOA则是一种开发思想,通过服务对企业的应用需求进行展现[13]。   构件与服务确实是既有区别,又有相同之处。从实施角度来看,构件与服务全都强调复用,通过这两种实现方法,也都可以降低用户的软件系统实施成本。而从开发角度来看,二者也都遵循软件设计最经典的思想“高内聚低耦合”,同时技术和手段也没有限制。   而另一方面,二者也确实存在着太多的不同。   首先,从使用周期来看,当企业的业务发生调整时,服务自然而然地也就中止了。而构件则不同,构件可以应用在多个软件系统中。从这点可以看出,构件与服务并不在一个应用层次上。   其次,二者在用户的系统中使用条件也不一样。构件只是一个代码包,所以必须配合系统中其他代码才能使用。而服务只要符合WebService标准,经过部署就可以直接运行。   再次,二者的针对的对象是不同的。服务存在于业务架构之中,而构件则是针对业务架构,它的出发点首先要考虑的是需要实现的功能。虽然构件也被划分成“通用构件”和“领域构件”,但领域构件也只是限于实现某个领域的技术需求。   最后,二者的服务对象不尽相同。构件起源于软件产业内部,它的服务对象是软件厂商,而服务则源起于软件用户的需求,它最终会服务于企业。   构件到现在还缺少标准的定义和规范,我们甚至还不能够严格地说出到底什么是构件。与构件的情况相反,SOA和服务则从定义到实施均有相关的规范标准。这样一来,尽管构件被越来越广泛的应用,但用户对构件的理解往往局限于它是SOA的实现手段。但这却可能只是用户的一种误解。用户普遍认为SOA是一种思想,而构件是一个个的代码包,但采用构件化开发软件,到了现在也可以上升为一种软件工程的思想。所以,我们可以说,构件确实是SOA的实现手段,但当构件化成为一种软件开发思想以后,SOA不能够全部包括构件。   到目前为止,构件仍然是应用开发层面的概念,适用于企业应用的开发。SOA则适用于集成企业现有的应用系统。尽管如此,二者目前正在走向融合。SOA概念之外,有人提出了构件化的SOA。而企业应用在开发时也越来越强调要符合SOA标准。1.1.1.2构件化技术储备   随着构件化软件产品的出现,原来的应用系统不断地被构件化打破,企业逐渐走上“ 一个应用”的台阶。企业渐渐不再有固定的应用系统,取而代之的是处于各个层面的模块构件来实现某个层面的相应功能。细分如下:   1)底层技术构件:企业通过底层的技术构件来作为实现应用的基础,技术构件的适用性非常广泛,在各种应用中都会被高度复用。   2)业务构件:而再上一层的则是企业根据业务总体模型设计出来或是在不断的应用项目实践中不断提炼归纳出来的某个业务或是管理域的业务构件,这些业务构件往往是企业最为重要的资产和竞争能力。企业可以根据要实现的业务和管理流程,使用这些业务构件来实现具体的应用,满足业务需求。   3)标准化构件:由业务模块形成的标准化构件实现被赋予的业务功能,并通过SOA服务实现一个典型场景下的业务应用。这样构件化的SOA应用,业务分工明确,组织协同关系清晰,可管理性、业务复用度和组织级灵活性等方面都有所提高。图5.5组件分层技术1.1.1工作流系统1.1.1.1工作流技术介绍1.什麼是工作流技術  工作流技術是當今一項飛速發展的技術,它最基本的特性就是它能夠結合人工和機器的行為,特別是能夠與應用程式和工具進行交互,從而完成業務過程的自動化處理。工作流技術從出現到現在,已逐漸發揮越來越重要的作用。工作流能夠為企業應用提供業務流程建模、管理和控制功能,可以應用於電子政務中的一站式辦公、電子商務中的流程集成和金融信貸業務等領域,成為近期增長較快的領域[45]。   現在,國內外著名廠商都紛紛推出了自己的工作流產品,如IBM MQWorkflow、BEAWebLogicIntegration等。國內的產品主要有中創軟體商用中間件公司的InforFlow、西安協同軟體的SynchroFLOW、信雅達的Sunflow等。1.工作流技術的起源與發展  八十年代初期,紙張是各行各業進行日常業務活動所不可替代的載體,包括表單、信函、文件、技術資料等各類與企業密切相關的文檔都是以紙張為載體在各部門進行傳遞的。這種古老的載體在信息的處理、存儲、傳遞、檢索方面是低效的,使得人們花費很大的精力在資料的管理、檢查上。因此人們希望出現一種無紙化的、電腦使能的環境,利用電腦技術來實現人們對信息日益提高的具體要求。  八十年代中期,FileNet和ViewStar等公司率先開拓了辦公自動化產品市場,成為最早的一批工作流產品供應商。他們把圖象掃描、複合文檔、結構化路由、實例跟蹤、關鍵字索引等功能結合在一起,形成了一種全過程支持某些業務流程的集成化的軟體,這是早期的工作流管理系統。比較典型的是FileNet在1984年推出的WorkflowBusinessSystem,ViewStar在1988年推出ViewStar。很顯然,這兩種增值性質的集成化軟體系統為企業簡化和重組自己的關鍵業務流程提供了一種非常合適的方案;而且,由此可以看出,工作流技術自從其誕生之日起就是一種面向對象的系統集成技術出現的,只是由於當時的技術水平,才使得系統實現的功能比較簡單。  進入九十年代,隨著電腦的普及以及面向技術的發展,機關和企業的信息逐漸出現一種分佈、異構的趨勢,因此對於辦公軟體提出了新的要求,並使得人們在更深的層次上對辦公自動化進行更深的研究。1993年,國際工作流管理聯盟(WorkflowManagementCoalition,WMC)在歐洲成立,它標志著工作流技術開始進入相對成熟的階段。為了實現不同工作流產品之間的互操作,WfMC在工作流管理系統的相關術語、體繫結構及應用編程介面等方面制定了一系列標準。工作流聯盟給出的工作流定義是:工作流是指整個或部分經營過程在電腦支持下的全自動或半自動化。工作流管理系統(WorkflowManagementSystem,WMS)指運行在一個或多個工作流引擎上用於定義、實現和管理工作流運行的一套軟體系統,它與工作流執行者交互,推進工作流實例的執行,並監控工作流的運行狀態。2.工作流技術的應用  工作流技術已成為企業信息化建設方案中必不可少的內容之一。從簡單的辦公自動化系統的開發,到企業ERP系統的實施,再到為提高企業運營效率而出現的BPR及BPM系統,工作流技術都發揮了相當重要的甚至是關鍵的作用。隨著EAI的興起,EAI所涉及的各種支撐技術也在快速的發展,工作流技術為實現應用層而的集成提供了有力的支撐。  工作流在流程管理中的應用分為三個階段:流程建模、流程模擬和流程改進或優化。流程建模是用清晰和形式化的方法表示流程的不同抽象層次,可靠的模型是流程分析的基礎,流程模擬是為了發現流程存在的問題以便為流程的改進提供指導。這三個階段是不斷演進的過程。它們的無縫連接是影響工作流模型性能的關鍵因素,也是傳統流程建模和流程模擬集成存在的主要問題。  工作流技術在流程建模中基本上還採用流程圖一類的描述工具,工作流描述語言也是對流程形式化的簡單描述,並未包含企業流程系統存在的不確定處理機制。其次,工作流模型的模擬和優化也是一個比較薄弱的環節,國內外在這方面的研究進展不大。傳統的工作流模型在運行前需要實例化,工作流管理工具也沒有為流程模型的模擬及模擬數據的統計和分析提供手段。為了實現流程變化管理各階段的有效集成,需要結合有效的流程建模、模擬和工作流技術。 1.1.1.1工作流系统组成和结构设计工作流管理系统主要划分为以下几个模块:工作流建模工具,工作流引擎服务,工作流管理工具,表单定制工具,工作流WebService接口,工作流客户端。图5.6工作流系统架构设计1.1.1.1.1工作流参考模型   在众多的工作流管理系统产品中,虽然有着不同的实现方法,但所有的系统都是为了相近的目的而有着某些共同的特性、功能、结构。为此,WfMc从各种角度考虑工作流管理系统,提出了工作流管理系统的一个公共模型一一工作流参考模型,并且为不同系统之间相互操作提供公共的接口,以达到不同产品的集成和协同工作的目的[46]。    工作流参考模型详细描述了工作流管理系统的有关概念,并在此基础上给出了工作流管理系统的各个主要组成部分、各部分的功能及相互之间的接口;进一步规范了各种工作流管理系统的结构,支持各种工作流产品在各个级别上的互操作,使系统能有效集成起来。工作流参考模型如下图所示,这里包括了工作流管理系统的核心部分工作流引擎,以及通过五个标准定义的接口与工作流引擎交互的几个主要模块。图5.7Wfmc工作流参考模型1.1.1.1.1工作流图形设计器建模工具选型   工作流建模工具的实现:ActiveX技术,WFDesigner和SliverLight技术。这几个工具的选型主要考虑是,建模时候的图形处理能力,以及用户使用的友好性。   在目前实际的应用中,选用HTML5作为开发工具进行开发。在实现基于Web的工作流图形化定义方面,由于可以提供的richweb交互技术,使得图形化定义工作流变得更加方便。   一个图形化建模定义流程的UI如下图所示: 图5.8工作流图形化建模1.1.1.1.1工作流引擎   所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。  什么是工作流引擎(WorkflowEngine)  例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性(模块化和结构化)和弹性(容易根据实际业务逻辑的变化作出程序上的变动,例如决策权的改变、组织结构的变动和由于业务方向的变化产生的全新业务逻辑等等)。Workflow引擎解决的就是这个问题:如果应用程序缺乏强大的逻辑层,势必变得容易出错(信息的路由错误、死循环等等)。   工作流引擎是驱动流程流动的主要部件,它负责解释工作流流程定义,创建并初始化流程实例,控制流程流动的路径,记录流程运行状态,挂起或唤醒流程,终止正在运行的流程,与其他引擎之间通讯等等工作。WfMC没有针对引擎的实现提供具体的标准,因为对引擎做过多的约束并没有多大的现实意义。 一个工作流管理系统可以包含一个或多个引擎,并通过API向外部提供五个方面的功能服务,这些功能分别为:   1)接口1-流程定义的导入导出   2)接口2-同客户端应用程序和工作列表处理程序之间的交互   3)接口3-软件工具和应用程序的调用   4)接口4-不同工作流管理系统之间的协同工作   5)接口5-管理和监视功能 1.1.1.1.1工作流系统的意义   由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,WFMS的出现是必然的。它可以带来以下收益:  1)改进和优化业务流程,提高业务工作效率;  2)实现更好的业务过程控制,提高顾客服务质量;  3)提高业务流程的柔性等。1.1.2权限管理系统1.1.2.1权限系统功能需求   权限系统是企业信息系统不可缺少的一个部分,权限管理是对用户可以访问的信息和操作进行控制,从而保证数据的安全,避免信息的不合理使用。   现代企业集成环境中存在大量分布的、异构的应用系统,这些应用所基于的设计和技术都可能不同,其内部信息资源类型多、粒度细,对资源的操作往往具有业务内涵且操作的范围相当广泛。因此,如何解决对企业应用内部带有语义信息操作的访问控制以及跨应用安全策略的设置,已经成为一个越来越复杂和困难的挑战,成为每个企业都必须关注的问题。   同时,随着企业信息化的实施,大量应用被部署,权限管理的模型和实际操作本身也日趋变得复杂。而且应用系统的功能快速改变和实际业务的变化,权限管理系统也需要做出相应调整。所以说,权限管理系统的实现,有着其复杂性,从另外一方面考虑,它又是必须要实现的。    权限管理的需求主要首先是功能操作的权限需求:即用户对业务功能的操作,受限于系统的访问设置,并不是任何时候都可以执行的。功能操作的权限限定,是为了特定功能的操作只能被特定身份的用户所操作。例如:在公文审批环节中,只有具备审批权限的用户才可以执行审批的操作,而不是参与的用户都具有该权限。1.1.2.2通用权限模型分类通用权限模型分类1)主体-客体访问控制模型(SOAC)   主体-客体权限控制模型,出现在早期的应用中,主体相当于系统的访问者,客体相当于系统的资源。主体对于客体是否能够访问一般通过一个矩阵实现。 图5.8主体-客体权限控制模型图   优点:授权关系明确,直截了当,存取都很容易   缺点:不能适应变化。2)基于角色的访问控制模型(RBAC)   美国国家标准与技术研究院(thenationalinstituteofstandardsandtechnology,NIST)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(coreRBAC)、角色分级模型RBAC1(hierarchalRBAC)、角色限制模型RBAC2(constraintRBAC)和统一模型RBAC3(combinesRBAC)。图5.9基于角色的访问控制模型3)基于任务的访问控制模型(TBAC)   任务是工作流程中的一个逻辑单元,一个流程一般包含一到多个任务。基于任务的权限模型,是指主体在不同任务中被许可的权限也可以不同,即使在同一任务中,权限也会随着任务生命周期的不同而有所不同。   由于权限随着任务和任务状态的不同而不同,基于任务的权限模型是一种动态的权限控制模型。   优点:适合与上下文环境   缺点:只适应于某些应用系统,绝大多数系统更为需要的是静态权限控制模型。4)基于属性和访问规则的权限模型(ARBAC)    ARBAC模型可以根据系统的多种访问呢控制策略,综合分析同一资源属性的不同用户属性,提出复合属性表达式和复合权限的概念,制定一系列角色分配规则,定义多组合角色分配给用户,使用户得到资源的复合权限。图5.10基于属性和访问规则的权限模型5)基于本体的访问控制模型   本体是共享概念模型的明确的形式化规范说明,它具有良好的概念层次结构和领域知识的共享性以及对逻辑推理的支持,因而我们考虑在权限管理模型中引入本体的概念,即使用本体这种工具为企业应用领域与操作相关的信息进行概念建模,借此反映操作的一些语义信息。当具体操作实现时,再将操作转化为对技术层面上带参数的服务的访问,并利用应用领域中的语义信息来进行访问控制。图5.11基于本体的访问控制模型6)综合权限控制模型   建立角色和资源之间的关系,用户需要访问什么类型的资源,取决于所对应的角色是否能够对某个资源访问。以群组为扩展,授权到该群组,即该群组包含的用户也具有该类型的权限。   优点:授权方便,灵活。   缺点:权限控制较难,计算复杂,运算效率低。 1.1.1.1权限管理系统模块组成   从权限管理模型上看,目前实际应用中比较常见的的模型还是基于角色的权限管理模型,其基本思想是根据企业中的职能岗位划分出不同角色,将系统资源的访问权限附加到角色上,并未用户分配相应的角色,从而实现对用户访问资源的控制。图5.12基于角色的访问控制模型   基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:   1)减小授权管理的复杂性,降低管理开销;   2)灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。   工作流权限模型在需求分析上也主要考虑RBAC模型的框架实现,对其包含的一些功能描述如下:   从权限管理的对象来看,通常包括功能权限设置、类权限设置、规则权限设置和属性权限设置。其中:l 功能权限设置:用于对系统功能进行控制;l 类权限设置:用于控制用户对业务数据的访问;l 规则权限设置:用于建立用户与类及其属性的约束关系,使得用户在访问系统数据时受到所设规则的限制;l 属性权限设置:用于控制对实体类的具体属性的访问。从权限管理系统所提供的功能来看,主要包括授权和访问控制两不主要模块。它们具体实现的功能是:l 授权模块:实现权限的授予,授权模块主要用于对角色、用户和用户组进行管理,包括基本信息的维护,角色、用户和用户组之间关系的维护,以及分别为角色、用户和用户组授予各种类型的权限。 l 访问控制模块:实现对权限的验证,访问控制模块实现对登录用户的身份认证,并在用户进行系统执行操作时,验证用户的操作权限。1.1.1表单生成技术1.1.1.1HTMLTemplateHTML模板方案图5.13HTML模版技术  概述:采用HTML模板方式。对于每一种样式的表单定义HTML模板;在模板中定义Web页面的HTML界面代码,在需要读到数据库数据的地方用特殊字符代替;当用户访问页面时,先从数据库中取得所有相关数据,然后根据指定的模板路径读入HTML文档内容,通过“模板标记解析器”用取得的数据替换掉模板中的特殊标记,然后将整个HTML文档显示出来[16]。1.1.1.2XML+XSLTXML+XSLT方案 图5.14XML模版技术   概述:采用XML描述数据,XSLT定义XML数据显示格式。通过XSLT来控制数据的显示;查询数据库返回XML格式数据,将XML保存到临时文件,通过XSLT来解析XML数据文件生成HTML代码,最终将HTML代码显示到前台页面中。1.1.1.1W3CXForm什么是XForm[17]  XForms是W3C组织所推荐的下一代在线Forms(早在2003年10月14日就被W3C推荐),它吸取了W3C标准诸如:XMLSchema,XPath和基于XML的事件,XForms试图突破当前HTMLforms模型的一些限制。  XForms的最大特色是包含了客户端验证的功能,我们知道,在HTML中,许多关于forms验证的功能需要写大量的JavaScript脚本,由于验证的Javascript脚本库依赖于forms中的各个元素,当它们发生变化时,不得不重新更新或维护Javascript验证脚本。XForms结合了许多关于验证方面的功能,对form验证只需要使用简单的XML标记完成,其它亮点还有:XForms将数据从表现中分离,更健壮的数据类型表示,能够递交XML数据到服务端-替代我们通常使用name/value递交的做法(看起来这个还不错;)),XForms可以在不同的设备上正常显示。在学习XForms之前,推荐先阅读一下WebForms2.0,关于XForms的教程和文档可在W3C站点找到。  被称为“下一代Web表单”的XForms最初起源于HTML工作组的工作。W3C组织力图将XForms制定成为HTML表单的替代标准,用于包括桌面电脑、手持设备、信息家电等领域在内的各种平台之上。传统的HTMLWeb表单没有将表单的设计目的和表现形式分离开来,表单设计的灵活性很低,同时客户端计算能力也无法充分利用。  为了克服以上缺点,XForms对表单进行了抽象定义,将表单区分为数据,逻辑和表现三方面。规范中没有规定实现细节,因此XForms处理器的实现形式是多样的。既可以基于浏览器嵌入HTML页面中,利用HTML和JavaScript进行表现;也可以用JavaSwing应用程序等形式表现。另外XForms还为应用提供了事件驱动模型,这使得用户可以像开发普通的GUI应用程序一样对鼠标、键盘等事件进行相应的编程。   XForms标准的成功之处就是将表单的作用和表现方式分离,由相互独立的部分分别负责描述。这使得XForms的表现方式更灵活。1.1.1插件化开发框架1.1.1.1插件式架构设计概述   插件式架构设计近年来非常流行,其中Eclipse,Firefox起了推波助澜的作用,基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。公开插件接口,让第三方有机会扩展应用程序的功能;另外,还可以让开源与闭源共存于一套软件,你的插件是开源还是闭源,完全由你自己决定。基于插件设计并不神秘,相反它比起一团泥的设计更简单,更容易理解。各种基于插件设计的架构都有自己的特色,但从总体架构上看,其模型都大同小异[25]。图5.15插件化软件开发   插件式架构设计中主要包括:插件框架、插件契约(服务)以及插件组件三部分组成。  1)插件框架:组织和管理系统插件的下载、装载、组合、实例化以及销毁,并提供整套完整的与后台服务通信的操作接口等。  2)插件契约(服务):插件契约以服务接口的形式存在,系统的所有插件全部通过实现系统框架统一的接口规范,偏于有效的组织、管理插件对象。  3)插件组件:插件组件既为具体的插件程序,实现了插件契约服务的一个独立的程序。  对于插件式应用框架的开发,关键是要识别出框架中的通用点和扩展点。基于这个原则,对于开发插件式应用框架的方法和步骤主要分以下三点:  1)分析并提取出框架中的通用点  2)分析并提取出框架中的扩展点   3)在应用框架的扩展点处根据系统配置信息动态加载实际需要的程序集(应用插件),动态创建实例对象并调用其服务。1.1.1.1插件式架构设计的优点   可以说任何形式的架构设计实践工作无非就是从负责、繁琐的的研发过程中寻找一种相对方便、灵活、稳定、高扩展性的以及更加简单的一种新型技术实现方式,从而提高项目的整体开发进度和质量,减少开发人员的工作压力,间接的提高整个项目团队的工作效率。  采用插件式架构设计的优点主要体现在以下几个方面:1)降低系统各模块之间的互依赖性  在进行插件式开发中,任何一个系统功能模块、通用用户界面以及最小的图标等都可以插件的方式进行开发,从而提高了通用功能模块的重用性;各个功能进行独立开发,相互之间不存在互依赖性,使各个独立的功能都可以单独运行,也可以通过插件框架进行托管运行,从而提高了整个系统的灵活性;对于修改功能模块也不会影响到其他插件模块的正常运行,降低了系统的维护难度,提高了系统的可扩展性。  2)系统模块独立开发、部署、维护  每个功能模块都可以按照插件契约服务接口所定义的服务接口以及相关的元数据的形式当做一个插件进行独立开发,开发完成编译后可独立运行,也可通过插件框架进行托管运行。理论上插件组件是不应该可以单独运行的,按照插件式架构原理来说,必须是通过插件管家托管才能运行。实际的开发中或许会因为各种的业务需求不同而不同,具体应该如何对插件开发进行约束,还得结合实际项目需求而定。 3)根据需求动态的组装、分离系统   每个功能模块都可以当做一个插件进行开发,通过统一的配置文件维护插件包的部署信息,插件框架可根据活动情况动态从服务器上下载相应的xap插件包或者是.dll的动态库文件到客户端进行插件初始化创建,插件到框架的组合等,插件框架能够灵活的管理各个插件实例以及插件之间的通信机制,也支持插件的卸载。1.2系统性能优化技术1.2.1分布式技术应用1.2.1.1异步消息队列1)系统可靠性的需要提交关键业务数据,或者操作复杂流程数据时时,系统的可靠性非常重要,如果采取同步消息机制,无法同时满足用户体验和可靠性的要求;在使用异步消息队列架构的系统中,允许系统先保存请求的消息,交由后台系统执行数据库事务,而前台可以进行其它操作;异步消息在事务完成后,再采取回调方式返回结果信息给前端用户。 2)系统可伸缩性的需要提高可伸缩性的关键措施是积极地采取异步策略。如果组件A同步调用组件B,那么A和B就是紧密耦合的,而紧耦合的系统其可伸缩性特征是各部分必须共同进退——要伸缩A必须同时伸缩B。同步调用的组件在可用性方面也面临着同样的问题。回到最基本的逻辑:如果A推出B,那么非B推出非A。也就是说,若B不可用,则A也不可用。如果反过来A和B的联系是异步的,不管是通过队列、多播消息、批处理还是什么其他手段,它们就可以分别地伸缩。而且,此时A和B的可用性特征是相互独立的——即使B受困或者死掉,A仍然能够继续前进。1.1.1.1分布式缓存技术   在计算机系统中,缓存就是开辟一个用来保存数据的空间,使用缓存,就不需要频繁地访问存储在内存或硬盘中的数据。当读取数据时,将结果放在缓存中,下次可以直接访问缓存,从而带来系统性能的提升[3]。   使用缓存技术的目的是为了提高数据利用率和检索效率。设想如果每次读取数据都去访问数据库,对数据库服务器的磁盘IO的压力是很大的,尤其是高并发系统,如果不借用缓存技术,系统将会无法上线运行。图5.16分布式缓存技术1.1.1.2负载均衡技术   负载均衡(LoadBalance )建立在现有网络结构之上,它提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。1.负载均衡技术应用:   目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。   负载均衡技术的应用  1)解决网络拥塞问题,就近提供服务,实现地理位置无关性;  2)为用户提供更好的访问质量;  3)提高服务器响应速度;      4)提高服务器及其他资源的利用效率。2.网络负载平衡的优点  1)网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务。网络负载平衡技术保证即使是在负载很重的情况下它们也能作出快速响应。  2)网络负载平衡对外只须提供一个IP地址(或域名)。  3)如果网络负载平衡中的一台或几台服务器不可用时,服务不会中断。网络负载平衡自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客户机通讯。此保护措施能够帮助你为关键的业务程序提供不中断的服务。可以根据网络访问量的增多来增加网络负载平衡服务器的数量。  4)网络负载平衡可在普通的计算机上实现。  网络负载平衡可以让客户端用一个逻辑Internet名称和虚拟IP地址(又称群集IP地址)访问群集,同时保留每台计算机各自的名称。图5.17负载均衡技术1.1.1AJAX局部更新   Web2.0环境下正是由于Ajax的出现才使一些功能得以实现,同时给用户的带来了全新的体验。Ajax的主要优势是异步刷新,从而减少了用户等待时间,同时局部刷新技术给Web 页面带来的变化有:页面版式更加丰富、版块化更加明显、结构更加复杂,从而使得Web页面能够承载更多的内容。Ajax和其他技术的结合能够使前端更加丰富,即所谓的富客户端,结合JS可以设计出如QQ空间之类的复杂丰富的页面,结合Comet技术可以实现微博的主动推送功能。Ajax前端设计时,也需要考虑一些因素:   1)Ajax请求的数据量不宜过大;   2)对页面的刷新面积根据实际情况设定;   3)尽量少的alert提示信息;   4)一定的容错机制使得页面在请求失败的时候不至于变形过于严重;   5)适当的数据缓存机制等。1.1.1预加载技术   WEB应用程序区别于桌面应用程序,响应速度才是最好的用户体验。如果想要速度与优雅兼得,那就必须提前获得图片尺寸,如何在图片没有加载完毕就能获取图片尺寸?   浏览器在加载图片的时候,图片会先占用一块地然后才慢慢加载完毕,并且这里大部分的图片都是没有预设width与height属性的。因为浏览器能够获取图片的头部数据,基于此,只需要使用javascript定时侦测图片的尺寸状态便可得知图片尺寸就绪的状态。1.1.2数据库查询优化   数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。举例来说,如果数据的量积累到一定的程度,比如一个银行的账户数据库表信息积累到上百万甚至上千万条记录,全表扫描一次往往需要数十分钟,甚至数小时。如果采用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟,由此可见查询优化技术的重要性[9]。   一个好的查询计划往往可以使程序性能提高数十倍。查询计划是用户所提交的SQL语句的集合,查询规划是经过优化处理之后所产生的语句集合。DBMS处理查询计划的过程是这样的:在做完查询语句的词法、语法检查之后,将语句提交给DBMS的查询优化器,优化器做完代数优化和存取路径的优化之后,由预编译模块对语句进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户。在实际的数据库产品(如Oracle、Sybase等)的高版本中都是采用基于代价的优化方法,这种优化能根据从系统字典表所得到的信息来估计不同的查询规划的代价,然后选择一个较优的规划。虽然现在的数据库产品在查询优化方面已经做得越来越好,但由用户提交的SQL语句是系统优化的基础,很难设想一个原本糟糕的查询计划经过系统的优化之后会变得高效,因此用户所写语句的优劣至关重要。 1.1.1数据库读写分离   随着一个业务系统的功能不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,可以采用读写分离的策略来改变现状。读写分离现在被大量应用于很多大型网站或者交易系统。   读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻IO压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性。1.2系统运营部署设计1.2.1服务器集群技术   服务器集群是由一些互相连接在一起的计算机构成一个并行或分布式系统。这些计算机(服务器)一起工作并运行一系列共同的应用程序,同时,为用户和应用程序提供单一的系统映射。从外部来,它们仅仅是一个系统,对外提供统一的服务。集群内的计算机物理上通过电缆连接,程序上则通过集群软件连接。通过集群,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。简单地说,服务器集群是相互连接的两个或多个服务器,通过一个应用程序公共接口,以一台服务器的形式出现,实际上就是一个虚拟服务器系统[18]。  服务器集群结构中,又分为“不对称集群”和“对称集群”两大类。“不对称集群”结构中有一些服务器专门用于当工作服务器出现故障时接替它们的工作。在“对称集群”结构中,每个服务器都承担有工作,每台服务器都相互平等,没有专门用于备用的服务器。如果一个服务器出现故障,其余服务器则会继续处理其自身所分配的应用程序组,同时处理发生故障的服务器上的应用程序,具体由哪台或哪几台服务器接管,要看集群服务配置了。图5.18 不对称服务器集群结构 图5.19 对称服务器集群结构  集群技术和双机热备份技术的本质区别体现在能否实现并行处理和节点失效后的任务平滑接管。双机或多机备份技术的原理是一台服务器作主机,其他服务器作备份机(也可以同时工作),当主机失效时,备份机接管。集群系统使用的它的高可用性而不是容错。  服务器集群技术的优势:①扩展能力强;②实现方面容易;③高可用性;④易管理性  对集群技术需求最迫切,发展也最快的领域主要有Web应用、VOD应用,科学计算、数据库应用等领域。集群服务不保证不停顿的操作,但它为大多数执行关键任务的应用程序提供了足够的可靠性。1.1.1虚拟化数据中心技术1.1.1.1虚拟化概念介绍   随着企业的发展壮大,特别像电力、烟草、金融、交通、物流等信息化建设起步较早的行业(企业),必须快速提高业务信息的处理能力,才能应对企业业务的高速运转,而常用方法之一便是大量购买服务器,以适应不同的操作环境。结果,服务器数量激增,导致企业在操作、管理和升级新服务器上浪费了大量人力、物力。而且随着时间的推移这种情况将变得越来越糟糕,所以大家都在寻求一种方法来解决这样的问题。其中虚拟化技术就是一种比较成熟且具有可操作性的解决方案[19]。 图5.20虚拟化技术   虚拟化是一种经过验证的软件技术,它正迅速改变着IT的面貌,并从根本上改变着人们的计算方式。如今,具有强大处理能力的x86计算机硬件仅仅运行了单个操作系统和单个应用程序。这使得大多数计算机远未得到充分利用。利用虚拟化,可以在一台物理机上运行多个虚拟机,因而得以在多个环境间共享这一台计算机的资源。不同的虚拟机可以在同一台物理机上运行不同的操作系统以及多个应用程序。   通过实现IT基础架构的虚拟化,可以降低IT成本,同时提高现有资产的效率、利用率和灵活性。在全世界,各种规模的公司都享受着虚拟化带来的好处。数千家组织(包括财富100强中的所有企业)都开始逐步采用数据中心虚拟化解决方案。1.1.1.1虚拟化数据中心的架构特性   虚拟数据中心架构的四大特性[19]:图5.21虚拟数据中心架构   1)分区:   分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),使您能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的“虚拟硬件”(虚拟网卡、SCSI卡,等等),以使它认为它是运行在自己的专用服务器上;   2)隔离:   虚拟机以许多方式互相隔离:   一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障,等等)不会影响同一服务器上的其它虚拟机; 一个虚拟机中的病毒、蠕虫等与其它虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样;   3)封装: 封装意味着将整个虚拟机(硬件配置、BIOS配置、内存状态、磁盘状态、I/O设备状态、CPU状态)储存在独立于物理硬件的一小组文件中。这样,您只需复制几个文件就可以随时随地根据需要复制、保存和移动虚拟机。   4)独立: 虚拟机运行于虚拟化层之上,所以它们只能看到虚拟化层提供的虚拟硬件;此虚拟硬件也同样不必考虑物理服务器的情况;这样,虚拟机就可以在任何x86服务器(IBM、Dell、HP、Xeon、Opteron,等等)上运行而无需进行任何修改。这打破了操作系统和硬件以及应用程序和操作系统/硬件之间的约束。1.1.1.1虚拟化数据中心体系架构设计虚拟化数据中心产品一般都包括以下几个方面[19]:   1)虚拟层服务—运行在物理服务器上的一个虚拟层,已通过生产验证,它将要调配的处理器、内存、存储器和网络资源抽象到多台虚拟机中;   2)虚拟机高性能文件系统—用于虚拟机的高性能群集文件系统;   3)虚拟机多处理器支持—使单台虚拟机能够同时使用多个物理处理器;   4)虚拟数据中心管理服务—配置、调配和管理虚拟机IT基础架构的中心点;   5)虚拟数据中心客户端—一个管理接口,允许管理员和用户从任何WindowsPC远程连接到虚拟数据中心服务;   6)虚拟数据中心Web访问接口—用与虚拟机管理和远程控制台访问的Web接口;   7)虚拟机迁移服务—可以使运行中的虚拟机从一台物理服务器实时迁移到另一台物理服务器上,它实现了零停机时间和连续可用的服务,并能保证完全的事务完整性;   8)高可用性服务(HA)—使运行在虚拟机中的应用程序具备易于使用、经济高效的高可用性。在服务器发生故障时,将在具有备用能力的其他生产服务器上自动重新启动受影响的虚拟机;   9)资源分配服务—在硬件资源集中动态、智能地为虚拟机分配和平衡计算能力;    10)虚拟机备份服务—为虚拟机提供易于使用、集中化的无代理备份工具。它简化了备份管理,并减轻了ESXServer的负载;   11)标准开发接口(SDK)—为虚拟数据中心产品和第三方解决方案提供访问的标准接口。图5.22虚拟化数据中心架构图   虚拟数据中心的理想部署环境是刀片服务器+SAN存储架构的方式(包括FC-SAN、IP-SAN或者NAS)来组成HA系统。   虚拟数据中心端配置要求:   1) 2~4台服务器为一组,组成HA系统,每台服务器2块HBA卡,多块网卡;   2)本地服务器的2块磁盘组成RAID1阵列,安装ESX操作系统;   3)在共享存储的LUN或Vol上,建立虚拟机高可用性文件系统,来存储虚拟机文件;   以太网交换机配置要求:   在Ethernet交换机上配置端口为802.1qtrunk,使连接虚拟层服务服务的端口可以传送带VLANtag的数据包,不破坏原有的VLAN的划分方式;   存储设备配置要求:   1)在FabricChannel交换机上划分Zone,使一组HA中的虚拟层服务都可以访问到相同的存储设备;   2)存储上划分新的LUN或者Vol空间,分别影射到一组HA的4台主机上,每台主机都可以访问到新划分的LUN_ID相同的存储空间。 1应用云计算技术的ERP系统1.1云计算技术简介云计算(cloudcomputing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通[6]。1)背景云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。  云计算(CloudComputing)是网格计算(GridComputing)、(分布式计算)(DistributedComputing)、并行计算(ParallelComputing)、效用计算(UtilityComputing)、网络存储(NetworkStorageTechnologies)、虚拟化(Virtualization)、负载均衡(LoadBalance)等传统计算机和网络技术发展融合的产物。2)特点  通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。3)模式云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。IaaS:基础设施即服务  IaaS(Infrastructure-as-a-Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。PaaS:平台即服务  PaaS(Platform-as-a-Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。SaaS:软件即服务  SaaS(Software-as-a-Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。 图6.1采用云计算技术的信息系统技术架构1.1.1IaaS基础设施即服务1.1.1.1计算即服务   云计算既然拥有近乎无限的计算、存储、数据通信能力,那么提供云计算服务的IT架构必然是集结了大规模基础资源的数据中心“超级航母”[8]。  云计算IT资源的大规模集中运营,可极大优化基础资源的分布与调度,下图所示为理想的业务模型。对于使用云计算服务的企业或个人而言,能够满足IT业务的最佳方式为计算能力按需增长、应用部署快速实现、工作负载可动态调整、投入成本规划可控;对于云计算服务供应商而言,为满足大量客户(个人或企业)的IT资源需求,其运营的IT基础架构需要有一个大规模的资源池,可基于服务客户数量的增长、客户业务负载增长的需求变化情况提供匹配的IT资源支持能力。 图6.2云计算计算即服务技术1.1.1.1存储即服务   过去几年,计算领域已然酝酿了另一场革命——云计算。云计算提供的是计算能力,无论是软件或是基础设施,皆是作为一种服务。“云”这个词指的是无处不在的服务以及它是如何普及到对最终用户的服务的。存储服务便是云计算所提供的服务之一,较之传统的独立服务器上的存储,其有着如下几个方面的优势:    ·可扩展性——云存储空间可以按需求被动态地分配和使用。  ·灾难恢复——云存储所具备的分布式的特性使得其可以对灾难恢复进行改善。  ·负载平衡——云存储可以通过动态路由减轻链接数据负载的瓶颈。  ·移动性——云存储允许任何授权的用户通过公司局域网或互联网访问数据。  ·节省成本——云存储只需要较少的IT专业人士进行维护。    对于云存储,有两种选择:公共云服务和私有云服务。在公共云中,数据存储在第三方服务器中,负责数据的安全与维护。在私有云中,数据存储在内部服务器,但用户仍享有上述的益处[4]。1.1.1.1.1公有云存储服务   云存储是云产品链中的一个服务,其目的很简单,就是存数据,而且只是存数据。云存储不会试图去理解和分析数据的内容,也不会考虑数据之间的关系和数据的组织结构。云存储仅仅存放一个数据对象。但功能上的简单并不代表系统的简单,规模决定一切。   作为面向巨大用户群的海量存储系统,云存储系统本身是一个庞大的服务器集群。一方面,云存储将大量的服务器存储资源整合在一个系统中,构成一个单一的数据存储实体。另一方面,云存储需要将每份用户数据复制多份,分散存放在不同的服务器中,以保证数据的可靠性,一般称之为“副本”。最后,面对大量用户的高强度访问压力,必须把负载分散到不同的服务器上, 以便充分发挥系统整体的效能。   这些技术特点导致云存储是非常特殊的一类分布式系统,需要专门设计和研发。相对而言,专门开发的系统更具有高可靠性和高可用性。1.1.1.1.1企业私有云存储什么是私有存储云[5]  私有存储云是针对于公有存储来说的。是指局限在一个区域、一个企业,甚至只是一个家庭内部。这样的私有存储云只对受限的用户提供相应的存储服务以及相应的服务质量(QoS)。使用存储服务的用户不需要了解“云”组成的具体细节,只要知道相应的接口,并提供相应的策略,剩下的工作交由“云”来完成。用户只需将这个存储云看作是一个黑盒资源池,具体其内部是如何实现,如何配置,采用什么样的技术,使用什么样的平台,用户都无需关心。   私有存储云的好处:  作为一种新的应用趋势,云存储必须为企业提供应用的价值回报,企业才会采用。否则在用户的面前将昙花一现,很快就会销声匿迹。总结起来私有存储云有以下四大好处:   1)统一管理  当数据量巨大或者涉及的管理面太多时,分散管理,第一是不能保证数据的一致性;二是用户自己管理自己的存储,导致所有人都做重复性工作,这样就会导致效率低下,造成人力资源的浪费;第三则是很难进行对信息的有效控制,信息泄露以及安全性将成为一个突出的问题。  而统一管理内同时解决了上面的三个问题,数据在同一个管理界面下进行维护,用户无需再自己处理数据管理的繁琐工作,降低了成本的同时、安全性问题也可以得到有效地解决。   2)易于实现集中备份及容灾  存储设备并不保证时刻都是可靠的。硬件坏了可以重新购买,但是数据丢失,特别是关键数据的丢失,是任何一个企业都是无法承受的损失。因此就需要对数据进行备份冗余保护,并且在适当的时候以可接受的成本来实现业务的容灾,保证应用与业务的可用性。与分散的存储相比,集中式地来处理数据备份与应用与业务容灾要更加易于实现与管理,并且更加高效。   3)易于扩展、升级方便  由于用户只知道存储的接口,并不知道存储的实现,这就相当于给私有存储云与用户之前加入了一个中间层。在计算机领域里有一个定理,就是加上一个中间层,计算机领域中大部份的问题就能够得到解决。此时对于如果对私有存储云的后端进行变动,则不会将影响传递给前端,不会影响用户的使用。这就使得对私有存储云空间进行扩展、维护、升级带来了灵活性,使得后端的变动的影响最小化。   4)节约成本,绿色节能  由于是集中存储,并且易于扩展与升级,因此可以结合相应存储虚拟化,对容量进行灵活配置,提高大容量,高效率的数据访问服务。同时可利用虚拟机技术对硬件设备进行虚拟化,充分利用硬件的效益。相比分散存储,这间接上就减少了设备的投资,又减少了硬件设备能源的消耗,达到绿色节能。 图6.3统一存储和虚拟化1.1.1PaaS平台及服务   平台即服务(Platform-As-A-Service,PaaS)已经成为业界探讨云计算的热点之一,采用PaaS模式构建应用运行平台是实现平台服务的重要实践[7]。   平台即服务已经成为实践云计算的重点之一,它将应用运行所需的IT资源和基础设施以服务的方式提供给用户,包括了中间件服务,信息服务,连通性服务,整合服务和消息服务等多种服务形式。为实现平台服务,业界提出了“平台即服务(PlatformasaServices,以下简称PaaS)”的交付模式。PaaS模式,基于互联网提供对应用完整生命周期(包括设计、开发、测试和部署等阶段)的支持,减少了用户在购置和管理应用生命周期内所必须的软硬件以及部署应用和IT基础设施的成本,同时简化了以上工作的复杂度。为了确保高效地交付具备较强灵活性的平台服务,在PaaS模式中,平台服务通常基于自动化的技术通过虚拟化的形式交付,在运行时,自动化,自优化等技术也将被广泛应用,以确保实时动态地满足应用生命周期内的各种功能和非功能需求。1.1.2SaaS软件即服务1.1.2.1SaaS与C/S系统比较   由于云计算技术的普及,SaaS模式的软件逐渐获得中小企业的实际购买,传统的C/S系统由于在成本,IT运营的费用,使得客户在实施项目时,耗费人力物力,而且不能持续升级或者满足个性化开发的需要。目前,SaaS软件由于部署运营在云端,客户端只要有浏览器就可以访问,而且客户可以共享新发布的功能,可以说更多地满足后续升级的需求。 表6.1SaaS和C/S架构比较1.1.1.1SaaS基本概念1.简介   “软件即服务”(SaaS)有可能改变信息技术(IT)部门与企业其他部门之间的关系,甚至可以认为IT部门的角色是企业其他部门的计算服务提供商。SaaS作为一种有效的软件交付机制,其出现为IT部门创造了机会,使他们可以将工作重心从部署和支持应用程序转移到管理这些应用程序所提供的服务上来。反过来,一个成功的以服务为中心的IT部门通过提供从内部和外部资源中获得的服务,并将其与企业目标保持一致,就可以直接为企业创造出更大的价值。2.了解SaaS   简而言之,SaaS可以定义为“将软件部署为托管服务并通过Internet进行访问”。   SaaS概念通常与二十世纪九十年代的应用程序服务提供商(ASP)有关,ASP通过Internet为企业用户提供“压缩-包装”应用程序。在授权和体系结构等方面,这些早期所尝试的通过Internet交付的软件与传统的内部部署的应用程序有许多共同之处,而与现代的SaaS应用程序的共同之处相对较少。因为这些应用程序最初是作为单租户应用程序构建的,与其他应用程序共享数据和进程的能力比较有限,所以与本地安装的应用程序相比,它们的经济效益较低。   现今,预计SaaS应用程序可以通过单实例、多租户体系结构,利用集中化优势并提供功能丰富的体验,能够与类似的内部部署的应用程序相媲美。典型的SaaS应用程序既可以直接由供应商提供,也可以由称为聚合器的中间方提供。中间方将来自不同供应商的SaaS产品绑定在一起,作为统一应用程序平台的一部分提供。   与常用于内部部署软件的一次性许可模型相比,通常使用订阅模型出售SaaS应用程序访问权限,客户需要持续付费以使用该应用程序。费率结构随应用程序变化;一些提供商收取固定费率,允许无限制地访问应用程序的一些功能或全部功能;另一些提供商收取可变费率,视使用情况而定。    在技术方面,SaaS提供商集中托管应用程序和数据,将修补程序和升级程序透明地部署到应用程序,然后使用浏览器或智能客户端应用程序通过Internet将访问权限交付给最终用户。许多供应商还提供应用程序编程接口(API),它可以将应用程序数据和功能提供给开发人员,供他们在创建复合应用程序时使用。您可以使用各种各样的安全机制,确保传输和存储过程中敏感数据的安全。应用程序提供商还可以提供一些工具,客户能够使用这些工具修改数据架构、工作流以及应用程序运行的其他方面,以满足其使用要求。1.使用SaaS的好处   当然,正因为SaaS可以加入IT基础结构本身不是SaaS加入的原因,所以必然还有其他可行的经营原因。SaaS为各种规模的组织提供了实实在在的转嫁软件购置风险的机会,并使IT部门从一个被动反应的成本中心转变为主动参与且能够为企业创造价值的部门。2.管理软件购置风险   一直以来,部署如ERP和CRM应用程序套件等大型的关键业务软件系统是一项非常重要的任务。在整个大型企业部署这些系统时,提前支付的授权成本就高达数十万美元,而且通常需要大批IT人员和顾问自定义这些系统,并将其与组织的其他系统和数据集成。这种级别的部署在时间、人力和预算方面的要求,对任何规模的组织来说都意味着巨大的风险,因而较小的组织往往无法使用这类软件,否则可从中获得大量的效益。   按需交付模型在一定程度上改变了这种状况。SaaS应用程序不要求在客户端位置部署大型基础结构,因此可消除或彻底缩减提前支付的资源承诺。因为分期付款的首付款数目不大,对于那些部署了SaaS应用程序的企业而言,如发现结果不尽如人意,则可以轻松地转而寻求其他方法,从而避免在内部部署基础结构上进行了大量的投资,最后弃之不用而造成的浪费。   另外,如果不需要自定义集成,还可以最大限度地减少规划和执行SaaS应用程序所需的工作和推广活动,从而可能成为主要IT投资中见效时间最短的项目之一。许多SaaS供应商可以提供一定的无风险(通常只是字面上的无风险)软件“试用”期,例如30天。在潜在客户购买软件之前,为他们提供一个试用软件的机会,将有助于避免许多围绕购买软件所产生的风险。   3.管理IT部门的工作重心   有了SaaS,部署应用程序和维持应用程序正常运行的日常工作,其中包括测试和安装修补程序、管理升级程序、监控性能和确保高可用性等等,都可以由提供商来完成。通过将这些“开销”活动的职责转让给第三方,IT部门可以将精力更多的集中在符合和支持企业经营目标的高价值活动上。从最初的被动反应和侧重于操作的日常工作解脱出来,首席信息官(CIO)和IT职员可以更有效率地工作,他们可以担任公司其他部门职员的技术策略专家,和业务单元员工一起工作,了解他们的需求,就如何最好的利用技术实现其目标给出建议。IT部门非但不会因为SaaS的使用而衰落,反而有机会比以前更直接地为企业的成功做出自己的贡献。4.以服务为中心的IT   我们已经使用相当专业的业务和技术术语讨论了SaaS的好处。但SaaS的最大影响可以归结为这样一个事实:SaaS可以促使IT部门采用以服务为中心的模型。   如果我们研究过去数十年来IT部门在企业中所扮演的角色的发展变化,我们会发现,信息技术的职责已经从过去的执行日常的记录维护和计算任务,逐步发展到了现今的简化工作流和通信的行业差异化功能。 图6.4以服务为中心的IT成熟度模型   上图显示了一个成熟度模型,该模型描述企业获得技术功能并从中受益的特殊习惯。在早期阶段,当企业最初考虑合并技术时,通常会将适用于某些需求的解决方案与可提供有限功能的特定应用程序相关联。例如,如果用户需要与合作伙伴交互,讨论硬件组件的设计,则可能会使用简单的电子邮件应用程序作为主要的协作和通信工具。   当企业认识到特定业务需求最好通过一类相关的应用程序(而不是仅仅一个应用程序)来满足时,就向以服务为中心的观点前进了一步,发展到采用应用程序资产组合。回到前面那个合作伙伴交互的例子,企业可能会认识到通过Web门户可以增强协作能力,其中Web门户合并了文档共享、版本支持、在线讨论、实时白板和幻灯片演示支持等功能。结果就是企业可能决定购买和部署门户解决方案,以增强目前仅有电子邮件功能的协作IT服务功能。   随着通过SaaS交付模型交付越来越多的平台和业务线应用程序,企业不仅有着越来越多的供应商可供选择,对于应用程序的交付地点和方法也有着越来越多的选择。如前所述,SaaS通过提供各种各样的许可、经营和管理模型影响了企业的资源分配。聪明的企业能够通过牺牲直接控制(针对服务实现细节)来换取更大的灵活性,从而优化核心业务的策略和执行。但是,企业可以使用SaaS的程度与其转嫁和降低风险的能力直接相关,对服务级别协议的合理运用是风险管理的关键所在。因此,如果扩展IT的服务资产组合,使其超出防火墙范围,则意味着达到了另一个业务和技术混合级别,超过了以服务为中心的IT。   在采用SaaS并将其集成到以服务为中心的IT后,企业除了降低风险外,还必须学习通过使用内部部署服务和外包服务的资产组合所提供的功能和数据,获得最大化的营业利润。确保通过完全不同的系统处理过的业务数据是简洁、一致且安全的,这通常是构建业务增强型IT的基础步骤。集成技术通过数据转换和过程编排帮助提供了这个基础。这类似于已开业餐馆中经常使用的“调配”惯例:将大蒜、药草等菜谱配料适当切碎、剁碎和绞碎,为最后由主厨掌勺 的“烹饪盛宴”做准备。类似地,一个有效的集成体系结构可以通过复合应用程序,帮助整合和组织上游用户所使用的企业中的信息资产。复合应用程序可以提供一种计算结构,能够为最终用户有效地组合或分解业务功能和信息。在与复合应用程序进行交互时,最终用户不知道(也无需知道)真实的信息源,而是将精力集中在综合和分析业务信息上面,将使用技术相关的上下文切换降到最低程度。   大体上:   1)在第一级(左上角),通过单独存储的应用程序集合来初步满足企业用户的需要。   2)在第二级(右上角),通过服务资产组合来更好地满足企业用户的需要。其中每个服务资产组合均包含若干相关的应用程序,共同提供一组更为完善的功能。   3)第三级(左下角)是关于服务资产组合优化方面的。SaaS提供商提供了更多的选择,使企业的服务资产组合得到了增强,所以企业能够进一步优化其IT策略和成本分配决策。   4)在第四级(右下角),外包服务和内部部署服务无缝集成,为符合业务目标的复合应用程序提供了平台。   本文的最后两部分详细介绍了集成体系结构和复合体系结构如何在将SaaS融入企业计算策略方面扮演决定性的角色。但在下一部分中,我们首先介绍一下SaaS在以服务为中心的企业中对IT管理和角色的影响。1.1.1云计算产生背景分析   在技术层面,云计算之所以在今天产生,是六方面原动力共同作用的结果,如下图所示[22]。图6.5云计算产生的原动力  1)芯片和硬件技术的飞速发展,使得硬件能力激增、成本大幅下降,让独立运作的公司集中可观的硬件能力实现规模效益成为可能。  2)虚拟化技术的成熟,使得这些硬件资源可以被有效地细粒度分割和管理,以服务的形式提供硬件和软件资源成为可能。  3)面向服务架构的广泛应用,使得开放式的数据模型和通信标准越来越广泛地为人们使用,为云中资源与服务的组织方式提供了可行的方案。   4)软件即服务模式的流行,云计算以服务的形式向最终用户交付应用的模式被越来越多的用户所接受。  5)互联网技术的发展,让网络的带宽和可靠性都有了质的提高,使得云计算通过互联网为用户提供服务成为可能。  6)Web2.0技术的流行和广泛接受,改变了人们使用互联网的方式,通过创新的用户体验为云计算培育了使用群。1.1应用云计算技术的ERP系统1.1.1SaaS模式的ERP与传统ERP的比较   SaaS的兴起是IT行业的一场新革命,SaaS模式将促进整个传统软件产业大的变革。SaaS模式和传统模式的软件服务主要有以下两点区别[51]:   1)SaaS是对传统软件开发模式和交互模式的变革传统管理软件的开发模式,是以软件产品为中心,通过市场推广不断寻找更多的客户购买产品来实现业务增长。传统软件一般通过光盘等磁盘介质或者以软件下载方式交互客户,然后由厂商技术人员完成服务器和客户端的安装以及一系列的配置等。在SaaS模式中,客户端可以不需要安装任何类似传统模式的客户端软件。客户端只要有设备能够连接并浏览互联网,客户就可以“随时随地”通过电脑、手机等多种互联网接入方式连接到互联网,通过互联网进行应用软件的管理和操作。   2)SaaS是改变了传统ERP系统的运营模式首先是软件付费方式的改变,传统管理软件付费模式是客户需要一次性投入整个项目高昂的项目资金,除管理软件产品本身外,还有整个系统的服务器机群、网络平台、系统软件,如数据库系统等,软件提供商主要靠销售软件产品盈利。SaaS模式通过租赁方式,定期支付租用的在线软件服务,客户大大降低了项目投资风险和资金投入压力,而SaaS提供商主要依靠为大量客户提供软件租用服务获取企业利润。SaaS运营模式以“服务”为核心,销售的内容从软件的许可证转变为服务,软件产品成为服务的载体。软件供应商与客户的关系从软件产品的买卖关系转变为服务关系,这种关系的彻底改变,也改变了人们对软件的认识。   3)SaaS模式改变了传统ERP系统的部署方式ERP软件的部署和实施比软件本身的功能、性能更为重要,万一部署失败,所有的投入几乎全部白费,这样的风险是每个企业用户都希望避免的。通常的ERP项目的部署周期至少需要一两年甚至更久的时间,而SaaS模式的软件项目部署最多也不会超过90天,而且用户无需在软件许可证和硬件方面进行投资。传统软件在使用方式上受空间和地点的限制,必须在固定的设备上使用,而SaaS模式的软件项目可以在任何可接入Internet的地方使用。相对于传统软件而言,SaaS模式在软件的升级、服务、数据安全传输等各个方面都有很大的优势。1.1.2SaaS模式的ERP系统架构设计1.SaaS模式的软件成熟度模型    根据SaaS应用是否具有可配置性、高性能、可伸缩性的特征,SaaS成熟度模型可以分为四级,如下图[51]:图6.6SaaS模式的软件四级成熟度模型   第一级软件成熟度模型下,软件服务提供商为每个客户定制一套软件。每个客户使用一个独立的数据库实例和应用服务器实例,数据库中的数据结构和应用的代码可能根据客户需求做定制化修改。SaaS应用提供商通过整合软硬件资源,在降低软硬件以及专业化的维护成本方面取得了一定的规模效应,从而在一定程度上降低用户使用软件的综合成本。   第二级成熟度模型相对于最初级的成熟度模型,增加了可配置性。希望通过不同的配置来满足不同客户的需求,而不需要去为每个库户进行特殊定制,以降低定制开发的成本。在这种模式下,软件提供商负责其软件的硬件部署、网络环境以及后续的维护。通过软件本身提供的配置功能可以满足不同客户特定的需求,而客户则仅需按年或按月支付相应的服务费即可。   在第三级软件成熟度中,实现了多租户单实例的应用架构。通过一定的策略来保证不同租户间的数据隔离,确保不同租户既能共享一个应用的运行实例,又能为用户提供独立的应用体验和数据空间。   在第四级软件成熟度模型中,SaaS服务提供商将通过运行一个负载均衡的具备限验证功能的平台来为众多的客户同时服务,每个客户的业务数据将被单独存放,同时提供使用可配置的元数据来为每一个客户提供自身需要的独特的用户体验。符合这样一个成熟的SaaS系统具备可扩展性,可易支持大规模客户的需要。用户首先通过介入客户负载均衡层,再分配到不同的实例上。通过多个实例来分担大量用户的访问,可以让应用实现近况无限的水平扩展。   虽然从应用架构的角度,同时具备可配置性、高性能和可伸缩性的第四级SaaS成熟度模型是最为理想的应用架构。但是,综合商业需求、实现成本及复杂程度等各方面的考虑,可以合 理选择SaaS成熟度模型。1.基于SaaS模式解决方案的逻辑体系结构   SaaS模式可以实现“拿来即用”,将SaaSERP软件安装和部署在软件商的服务器上,用户无需关系软件安装的问题。在SaaSERP提供商的部署中,首先需要在系统边界部署防火墙确保整个系统的安全。身份认证能够实现对客户的识别和验证,通过严格的身份认证,防止非法用户使用系统,或伪装其他用户并通过身份认证后才能根据用户的请求重定向到相应的服务器获得相应的服务。ERP系统安装在ERP应用服务器上,Web服务器对外提供服务接口,SaaSERP软件的逻辑结构如下图所示。图6.7SaaSERP逻辑结构   对于用户来说,不需要安装任何额外的软件,用户通过手机、电脑等手持上网设备通过Internet连接到软件提供商的服务平台上。首次使用客户初始化后,就可以定制需要的模块和功能。用户的注册、身份认证、付费、授权等通过身份认证服务器来实现。1.1.1SaaS模式的ERP系统的应用前景   企业需要扁平化管理,需要实时体现企业高层决策者意志,需要体现时尚化网络化适应年轻使用者用户;SaaSERP采用云计算技术,充分利用互联网优势,在企业管理中能体现抓大放 小,解决企业最关心的问题,即基础数据的实时共享管理、关键业务流程控制、财务系统实时核算、全员信息化素质提升。   云计算的特点是让中小企业得到一个性价比极高的企业信息化解决方案,只有云计算才能让过去只有大型企业拥有的企业信息化解决方案走入中小企业,才能让像ERP这样的核心应用得以在中小企业中普及。云计算ERP的特点就是成本低、性能高、功能集成、数据私有化公有化存储任意选择、安全。这些都是中小企业非常看重的。   SaaSERP系统的特点是:   1)免安装、免调试、在线即可使用;   2)B/S架构,随时随地通过浏览器访问系统,各地分支机构或办事处可通过一套系统集中管理,数据实时汇总,实时共享;   3)不限用户数,不需安装客户端,随时开通或禁止系统用户;   4)面向各种服务的功能集成,便于用户使用和管理。1.1云计算安全设计1.1.1云端数据存储加密   大规模高性能存储系统安全需求,特别是云存储应用中,可扩展和高性能的存储安全技术,是推动网络环境下的存储应用(如云存储应用)最根本的保证,已经成为当前网络存储领域的研究热点。云存储应用中的存储安全包括认证服务、数据加密存储、安全管理、安全日志和审计。 访问控制服务实现用户身份认证、授权,防止非法访问和越权访问。主要功能包括:用户只能对经管理员或文件所有者授权的许可文件进行被许可的操作;管理员只能进行必要的管理操作,如用户管理、数据备份、热点对象迁移,而不能访问用户加密了的私有数据。 加密存储是对指定的目录和文件进行加密后保存,实现敏感数据存储和传送过程中的机密性保护。安全管理主要功能是用户信息和权限的维护,如用户帐户注册和注销等,授权用户、紧急情况下对用户权限回收等。  安全日志和审计是记录用户和系统与安全相关的主要活动事件,为系统管理员监控系统和活动用户提供必要的审计信息。对用户来说,在上述4类存储安全服务中,存储加密服务尤为重要。加密存储是保证用户私有数据在共享存储平台的机密性核心技术。  随着存储系统和存储设备越来越网络化,存储系统在保证敏感数据机密性的同时,必须提供相应的加密数据共享技术。保护用户隐私性要求存储安全建立在对存储系统的信任基础之上。必须研究适用于网络存储系统的加密存储技术,提供端到端加密存储技术及密钥长期存储和共享机制,以确保用户数据的机密性和隐私性,提高密钥存储的安全性、分发的高效性及加密策略的灵活性。在海量的加密信息存储中,加密检索是实现信息共享的主要手段,是加密存储中必须解决的问题之一。 1.1.2网络数据传输加密   互联网给人们生活带来了极大的便利。然而,人们在享受网络便捷的同时,却往往容易忽 视网络暗藏着的安全隐患。信息技术的不断发展使得互联网的双刃剑效应日渐显现,数据泄密,个人信息泄露已经很常见[11]。   对于企业来说,企业的财政开支状况、项目申请及研发文档等都是非常机密的材料,一些不法的竞争者经常通过技术手段窃取机密,使受害者遭受巨大的经济损失。  SSH助力企业数据传输保密  数据传输的保密性是网络保密的一个重要内容,在企业网络信息系统中,我们可以采用SSH技术及其软件来达到这个目的。  通过使用SSH,用户可以把所有传输的数据进行加密,这样,“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP,甚至PPP提供一个安全的“通道”。  SSH协议是建立在应用层和传输层基础上的安全协议,其主要由以下三部分组成,共同实现SSH的安全保密机制:  ●传输层协议。该协议提供诸如认证、信任和完整性检验等安全措施,此外还可以提供数据压缩功能。通常情况下,这些传输层协议都建立在面向连接的TCP数据流之上。  ●用户认证协议层。用来实现服务器与客户端用户之间的身份认证,运行在传输层协议之上。  ●连接协议层。分配多个加密通道至一些逻辑通道上,它运行在用户认证层协议之上。  从客户端来看,SSH提供两种级别的安全验证:  第一种级别是基于口令的安全验证。只要用户知道自己的账号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证用户正在连接的服务器就是用户想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。  第二种级别是基于密钥的安全验证。需要依靠密钥,也就是用户必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。如果用户连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用用户的密钥进行安全验证。服务器收到请求之后,在指定目录下寻找用户的公用密钥,然后把它和用户发送过来的公用密钥进行比较。如果两个密钥一致,服务器就用公用密钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用用户的私人密钥解密再把它发送给服务器。  用这种方式,必须知道自己密钥的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别由于加密所有传送的数据,所以“中间人”这种攻击方式是不可能的(因为他没有用户的私人密钥)。1.1.1数据安全管理规范   数据安全规范用于保障平台重要业务数据信息的安全传递与处理应用,确保数据信息能够被安全、方便、透明的使用。为此,业务平台应采用加密等安全措施开展数据信息保密性工作[12]:1)应采用加密效措施实现重要业务数据信息传输保密性;2)应采用加密实现重要业务数据信息存储保密性;   加密安全措施主要分为密码安全及密钥安全。密码安全密码安全密码安全密码安全密码的使用应该遵循以下原则:1)不能将密码写下来,不能通过电子邮件传输;2)不能使用缺省设置的密码;3)不能将密码告诉别人;4)如果系统的密码泄漏了,必须立即更改;5)密码要以加密形式保存,加密算法强度要高,加密算法要不可逆;系统应该强制指定密码的策略,包括密码的最短有效期、最长有效期、最短长度、复杂性等;6)如果需要特殊用户的口令(比如说UNIX下的Oracle),要禁止通过该用户进行交互式登录;7)在要求较高的情况下可以使用强度更高的认证机制,例如:双因素认证;(要定时运行密码检查器检查口令强度,对于保存机密和绝密信息的系统应该每周检查一次口令强度;其它系统应该每月检查一次。   密钥安全密钥安全密钥安全密钥安全密钥管理对于有效使用密码技术至关重要。密钥的丢失和泄露可能会损害数据信息的保密性、重要性和完整性。因此,应采取加密技术等措施来有效保护密钥,以免密钥被非法修改和破坏;还应对生成、存储和归档保存密钥的设备采取物理保护。此外,必须使用经过业务平台部门批准的加密机制进行密钥分发,并记录密钥的分发过程,以便审计跟踪,统一对密钥、证书进行管理。密钥的管理应该基于以下流程:密钥产生:为不同的密码系统和不同的应用生成密钥;密钥证书:生成并获取密钥证书;密钥分发:向目标用户分发密钥,包括在收到密钥时如何将之激活;密钥存储:为当前或近期使用的密钥或备份密钥提供安全存储,包括授权用户如何访问密钥;密钥变更:包括密钥变更时机及变更规则,处置被泄露的密钥;密钥撤销:包括如何收回或者去激活密钥,如在密钥已被泄露或者相关运维操作员离开业务平台部门时(在这种情况下,应当归档密钥);密钥恢复:作为业务平台连续性管理的一部分,对丢失或破坏的密钥进行恢复;密钥归档:归档密钥,以用于归档或备份的数据信息;密钥销毁:密钥销毁将删除该密钥管理下数据信息客体的所有记录,将无法恢复,因此,在密钥销毁前,应确认由此密钥保护的数据信息不再需要。1.1.1云端加密的利与弊   随着云计算的普及,企业将越来越多的核心业务以及重要数据都存储在了云端,然而,企业对于存储在云端的数据的担心也越来越高。这时,更多的云加密服务供应商如雨后春笋般的出现[10]。   很多研究都显示关于谁应该承担客户数据的安全责任方面,云服务供应商及其客户之间存在很大分歧:供应商将责任交到客户手中,但客户通常不同意。根据Ponemon研究所去年的调查显示,十个云服务供应商中有七个供应商将客户数据的安全责任交给客户,只有30%的客户同意。   通过加密数据,客户可以确保他们的信息是安全的,即使发生数据泄露事故,而且还能保密于云服务供应商。例如,CipherCloud公司使用Web代理服务器在数据去往受支持的软件即服务公司(例如Salesforce)的路上加密数据,其他供应商对在平台即服务环境运行的应用程序进行加密,而其他则侧重于在加密云存储中的数据或加密基础设施即服务。   云服务正在迅速发展,旨在对云端数据进行加密的安全服务也在不断发展。随着企业从软件即服务转移到基础设施即服务,技术和解决方案变得越来越成熟,云端存储加密已经有成熟方案,而云端具体领域的应用程序加密还不太完善。   最好的解决方案是那些允许客户控制密钥或者部分密钥的解决方案,通过控制密钥,客户还可以控制对数据的访问,甚至还可以防止云服务供应商访问数据。  然而,加密云端数据也会带来一些问题:  在软件即服务中使用数据加密会限制其可用性搜索包含加密数据的字段会带来问题,因为强大的加密不会保留原始纯文本的属性。如果名字字段被加密的话,在客户数据库搜索类似名字的条目将不能实现。另一个潜在问题是:软件即服务供应商可能想要访问客户的数据,特别是员工带入工作场所的面向用户的服务,例如社交网络:加密供应商会加密社交网络的帖子,允许客户控制对数据的访问,社交媒体公司可能会将这种服务视为威胁,因为用户的帖子是他们的利益所在。1.1应用物联网技术的ERP系统1.1.1物联网技术1.1.1.1物联网概念介绍 所谓“物联网”(InternetofThings),最早由麻省理工学院(MIT)提出,指的是将各种信息传感设备,如射频识别(RFID)装置、红外感应器、全球定位系统、激光扫描器等种种装置与互联网结合起来而形成的一个巨大网络。它是新的信息技术变革,是继PC、互联网、无线通信技术之后第四次技术变革,有重大的科学意义和应用价值。物联网与互联网有密切的关系。物联网是利用无所不在的网络技术建立起来的,它把互联网技术和宽带接入传输、无线通信结合起来形成了宽带移动的互联网,再把物品结合起来形成了物联网[20]。1.1.1.2物联网基础技术1.实现物联网的环境和条件  有人说,物联网=RFID+传感器+互联网,这是形象的比喻,但不严谨。实现物联网的环境 和条件主要有:互联网是实现物联网的网络基础;无线传感器网是实现物联网的技术基础;计算机应用是实现物联网的内部条件;标准化是实现物联网的关键;立法是保障物联网顺利运行的社会环境。从技术上讲,要实现物品间的连接,传感器是不可或缺的。要通过传感器把物品标签上所存储的信息传达给另外一个物品和另外的人,再通过网络系统自动的、实时的对物体进行识别、定位、追踪、监控并触发相应事件。这一系列工作都离不开传感器,所以,又有人称物联网为“传感器网”。  像互联网技术遵循开放的原则一样,物联网技术也必须遵循开放的原则。物联网的体系结构、管理、命名、接口、公开的服务、所采用的频谱等都决定了物联网必须遵循开放的原则。如果不实行开放的原则,则不可能实现全球的链接。图6.8物联网系统业务架构图2.物联网的六大基础技术要素  物联网的六大基础技术要素包括互联网、RFID、读写器、物联网中间件、物联网名称解析系统、物联网信息服务系统。这里只对其中的几个关键技术进行阐述。  首先,名称解析服务(ONS)。名称解析服务系统,类似于互联网的DNS,要有授权,并且有一定的组成架构。类似于互联网需要域名服务器DNS一样,在物联网中要有ONS。把每一种物品的编码进行解析提供相应的内容,再通过URLs服务获得相关产品的进一步信息。这就跟在互联网上没有域名是不能找见IP地址一样。  其次,中间件技术。中间件有两大功能,一是两大平台;二是通信。首先要为上层服务提供应用,同时,要连接操作系统,保持系统正常运行状态。中间件还要支持各种标准的协议和接口,如要支持RFID以及配套设备的信息交互和管理,同时,还要屏蔽前端的复杂性。一般的中间件是屏蔽了系统软件的复杂性,而物联网的中间件主要是屏蔽了前端硬件的复杂性,特别是像RFID读写器的复杂性。中间件的特点,第一是独立于架构,第二是支持了数据流的控制和传输,同时支持了数据处理的功能。  再次,信息服务系统。国际上多采用了EPC系统,采用PML语言来标记每一个实体和物品,再通过RFID标签对实体标记进行分类,同时构建数据库,提供数据存储,开发应用系统,提供查询服务。同样,物联网也有管理,类似于互联网上的网络管理。目前,物联网大多是基 于SMNP建设的网管系统,和一般的网管系统雷同。3.其他关键技术  互联网和电子商务的发展催生了物联网,物联网的基础技术还包括电子数据的交换(EDI)、地理信息系统(GIS)、全球定位系统(GPS)、射频识别技术(RFID)等关键技术。  物联网起源于电子数据交换。在国际海运运输过程中,必须实现国际化标准的电子数据标签的交换。我国集装箱已经全部实现了海运运输的电子标签交换,但是标箱到港口转铁路、公路运输的过程,现代化管理的链条就断了。目前,上海港做得最好,上海港集装箱只有1.8%的箱可以自动接入铁道系统,其他只能手动录入。  做好物联网,还要有地理信息系统、卫星定位系统。了解地球上的物品定位,离不开地理信息。物联网中发挥了很重要的作用,包括地理位置、查询、运输路线,服务范围,物流网布局,都离不开地理信息[20]。  物联网更离不开全球定位系统。通过全球定位系统才能真正实现物联网和物流的全球现代化。目前我国主要使用的是由美国研发的全球定位系统,我国也开始开发自己的定位系统,如北斗星定位系统正在不断发展。  物联网离不开射频识别技术,射频识别技术应用经过长期的发展过程,现在和移动信息化实现了有机结合,有助于物流、资金流、信息流的三流合一,应用范围非常广泛。射频识别技术工作原理简单。射频识别技术的商用,才促进了物联网的发展。射频系统RFID系统主要包括RFID标签、RFID阅读器、RFID中间件、电子产品代码(EPC)信息系统和对象命名服务(ONS)等。  射频识别系统由标签和读写器(含天线)两部分组成。读写器在一个区域内发射射频能量形成电磁场,其作用距离和范围的大小取决于发射功率和天线。标签通过作用域时被触发,发送存储在标签中的数据,同时根据读写器的指令改写存储在标签中的数据。读写器可与标签之间可以进行通信。标签有很多种,有主动式、被动式;读写方式有只读方式和读写性标签。  现在,电子标签成本在降低,形式在多样化,应用广泛。如广东地区很多工厂的每一个工位上都有标签,每一个标签都注释了每一个工序,工作流都记在在标签上,能准确定位工位出现的问题。  形成物联网要靠商品的统一编码,没有商品统一的编码,就没有物联网。欧美提出的EPC(ElectronicProductCode)电子产品编码是支持物联网的主要支撑。EPC系统由编码体系、射频识别系统及信息网络组成,目前比较成功的EPC网络,主要是与应用物流领域。我国也成立了EPC-globalChina,研究如何使这一编码技术做到本地化兼容性、科学性、全面性、合理性,没有歧视性。  另外的技术,就是无线通信和移动互联网,物联网离不开这些内容。此外,物联网与云计算互相促进,为大数据量传输、多媒体应用、电子政务、电子商务、电子图书馆等突破了网络瓶颈,正得到快速发展。1.1.1物联网应用案例—服装行业为什么服装业也需要RFID?   RFID(即无线射频识别)技术是物联网技术的重要组成部分。专家提出,目前我国服装企业应用RFID技术的还不多,应大力推广该技术。但是,RFID技术究竟能给服装行业带来何种程 度的改变呢?   最显著的改变是RFID大大提高服装业在生产、物流、仓储、零售等一系列过程中的效率。    RFID(电子标签、射频识别)技术在服装行业应用于生产、配送、零售等各个环节,RFID标签不像其他的ID识别技术,RFID技术允许同时读取多个标签,而且每一个衣物的标签都被系统追踪,不管衣物是否装在仓库的衣物包装箱,或装在其他包装箱中,或折叠起来放在架子上。在生产及各分销与配送等流通环节,可以极大地改善商品清点和包装方面的效率和准确性。RFID技术同时排除了人为错误的因素和不需要可视化读取,使库存管理变得简单化,使在仓库中的栈板、包装箱和单一物品都可以通过该系统简单快速的定位、查找和使用[21]。   服装行业RFID应用方案能够解决关健业务环节问题及单元化产品布署方式:   1)仓储解决方案:仓储中收发货和捡货速度是整个服装供应链效率的瓶颈。采用RFID技术的远距离快速批量读写特性,可以将传统的发货速度提高数十倍,捡货速度提高几倍,准确率达到99.9999%,能够有效解决到货收不了、定货发不出,商品不能及时上架的问题。图6.9应用RFID技术的企业系统   2)分销解决方案:解决分销中有效防窜的难题。可以利用RFID的单品识别特性,记录单件货物在物流与商品流通环节的属性变化,从而实现快速收发货物和追溯货物流向的目的,实现从生产下线-总库-经销商-零售终端商品信息的实时采集;利用RFID加密式EPC编码规则,从而防止标签信息被伪造和篡改,解决传统技术不能根本解决的防伪伪窜问题,打击非法网售,防伪防窜,落实渠道监管政策。   3)订货会解决方案:解决传统订货的通病   传统订货会无法实时进行数据统计分析,掌握订货进度和目标达成状况,在现场为客户实时提供订货指导和参考数据。    大量手工录入、核对订单,耗时费力易出错。   订单统计效率低造成起材料采购、材料运输、生产安排环节时间紧张,易引发回货和产品品质问题,门店投诉和争执,导致消费者的不满破坏品牌声誉。   采用RFID无线电子订货糸统,实现了:   1)数百人上千人可同时现场在线订货,自动准确高效录入数据。   2)实时生成订货数据报表,给企业和经销商提供清晰、准确的订货分析数据。    3)远距离感应订货,省去查找、核对、翻阅订货手册和订单纸的烦恼;方便快捷,登录、订货、分析、修改、打印一键完成。    4)修改订单即时生效;无需重新核算,无需重复翻找。客户快速轻松完成订货任务。1.1.1RFID,无线移动数据的收集技术   数据采集系统能够集成条码、RFID和无线移动技术这些数据到存在的财务、ERP、CRM和业务流程系统里。而不是整个替代现有的生产系统,因为这会非常昂贵。但同时意识到现有的ERP、CRM等系统对数据采集能力比较弱,如果直接去升级这些系统,增加新功能,也会去做定制化的服务,成本比较高[48]。   由此有必要采用中间件技术,从条码扫描设备、无线终端,RFID设备里采集实时数据。该系统的架构如下。数据采集系统通过接口可以把采集到的数据传输到ERP、CRM等业务系统。图6.10利用RFID,无线技术采集数据1.2应用移动技术的ERP系统1.2.1移动ERP系统介绍   3G时代,移动已经成为个人消费的“宠儿”,但随着技术的不断进步,企业对于移动的关注性越来越高,目前,我们看到移动互联网已经成为时下最受关注的热点技术。无论是传统的IT服务商,还是企业用户都开始关注移动互联网[47]。  在管理软件市场上,管理软件服务商同样看到企业级移动互联网这块“蛋糕”,SAP重金收购Sybase,用友整合用友移动联手电信共同进军移动互联网。在企业用户层面,随着智能手机 以及平板电脑的普及,企业的老板以及员工(尤其是业务人员)需要随时随地了解信息、使用信息,以便更好的决策与管理,企业用户开始关注移动互联网。但我们发现目前的企业级移动互联网产品并不是很成熟、而且移动产品类型繁多,对于企业用户来讲没有一个明确的选择,更多的时候不清楚究竟选择哪些业务的移动化?移动的产品又如何来选择?移动化的成本是否很高?  使用移动ERP,用户可以将智能手机作为应用客户端,利用3G无线网络实现移动管理。而传统ERP使用过程中,有的工作人员不能一直坐在电脑前,有的工作地点不确定,有的需要更简单、更快捷的方式进行管理,他们的共同特性就是具有移动属性,希望在移动的情况下顺利应用ERP。他们的角色包括:销售经理、销售员,质量检验人员,工程施工人员,零售门店,需要在现场工作的人员,异地办事处,异地仓库,客户现场服务人员,企业中高层管理人员等等。移动ERP确实能给他们带来极大帮助。  如今,中国手机用户数量已位居世界第一,远超过互联网用户数。3G网络将移动互联网升级为“全程高速公路”,将ERP与手机进行有机整合应用必将具有巨大的市场空间。过去移动互联网更多是运营商在主导,而在进入3G时代后,各种软件应用将成为移动互联网应用的主导力量。  移动ERP”除了支持传统的ERP应用移动化,还可以设计包括“企业通讯录查询”、“供应商合作伙伴查询”、“薪资查询”、“企业KPI查询”、“价格策略查询与报价计算”、“客户现场服务”等完全面向手机的应用,具有快速、直接、智能、交互性和个性化的特点,为用户企业及其员工提供与4亿的手机用户进行低成本直接沟通的能力;为用户企业提高与异地员工的实时交互能力,提供解决管理集中与业务组织分散冲突问题的手段;帮助企业紧跟信息时代演变的节奏,实现随需定制与个性化应用,解决外部联系和内部交流的企业实际管理问题。图6.11移动设备接入企业业务系统1.1.1移动ERP系统结构图   随着第三代移动通讯技术(3G)进网牌照的发放,我国移动通讯技术领域又进了一个新(NGN)阶段。其中,3G技术的一个重要应用就是解决移动商务题目。3A模式(anytime,anywhere,anyways)的基本要求就是目前摆在软件开发职员眼前的困难[49]。 图6.12移动ERP系统结构图   移动商务集成架构技术需要解决的题目很多。为了保证数据在移动网和互联网中活动顺畅、安全、可靠,必须采用多门学科和技术予以解决。  其中,手机终端是通过移动网一网关一互联网访问系统的。它要求用户实现下述功能:  1)能够在手机界面选择不同业务访问企业提供的服务,呈现查询各种信息的不同方法:  2)能够在手机界面上输进各种查询关键字,并提交到网站AppServer;  3)能够对检索到的数据进行不同方式的处理;  4)能够使手机终端与AppServer建立会话;  5)能够以数据流对象的方式接收系统AppServer返回的不同类型数据。  手机终端访问系统的主要接口也采用WebService,这样即可将系统提供的服务很方便地运送得手机终端,以实现移动商务业务的数据交互。 1总结   本文通过对ERP系统架构的资料整理和分析,并结合云计算、物联网和移动互联网技术的发展,提出了基于SOA的ERP系统架构设计方案,认为是比较符合当前中小企业开发ERP系统的要求;结合ERP行业发展的趋势,认为基于SOA架构的ERP系统,能够适应企业内部业务快速发展,满足复杂业务逻辑处理需要和解决流程易变带来业务重组的需求。 '