43-1U8cloud技术白皮书V1.02017年8月用友网络科技股份有限公司版权2017用友网络科技股份有限公司。43-2未经用友网络科技股份有限公司的书面许可,本白皮书任何整体或部分的内容不得被复制、复印、翻译或缩减以用于任何目的。本白皮书的内容在未经通知的情形下可能会发生改变,敬请留意。请注意:本白皮书的内容并不代表用友网络所做的承诺。其他所有公司的产品和名称可能为第三方所有。43-3目录1.概述..41.1.传统ERP面临挑战..41.2.U8cloud的功能和特性.72.U8cloud的总体介绍..82.1.体系结构..82.2.标准化的U8cloud.133.U8cloud技术平台..133.1.企业服务架构..133.2.元数据驱动和UI工厂..173.3.安全..193.4.U8cloud应用服务器.214.U8cloud应用平台..214.1.界面模板化..214.2.工作流平台..234.3.预警服务..294.4.查询引擎与分析报表..294.5.动态会计平台..334.6.消息中心..345.U8cloud集成平台..355.1.数据复制与传输..355.2.OpenAPI..365.3.SOA与流程集成.376.U8cloud开发平台..377.U8cloud环境部署..397.1.单机模式..397.2.集群模式..407.3.双机热备..417.4.客户端..418.总结..41术语表.4243-41.概述1.1.传统ERP面临挑战1.1.1.企业管理的多样性与持续改进随着中国经济的高速发展,中国企业也处于新旧经济体制交替、竞争全球化和日益复杂多变的环境中,面临前所未有的挑战和新的机遇。企业管理的个性化和持续完善已经成为现代企业竞争的基本战略。在此背景下,企业的业务系统必须能够快速定制,灵活调整,自由扩展,自行维护,让企业迅速应对市场、技术、资源、业务、客户、服务和管理等各方面的不断变化和发展。不同类型的企业,同类型的不同企业,管理模式(组织结构、业务流程、业务功能、业务范围)不同,差异有大有小;同一个企业有不同业务,跨行业、地区、国际经营普遍存在;同一个企业,不同的发展阶段,随着业务的发展,管理模式在不断地变化;产业技术的进步,引发管理演进的需要;云技术、大数据和人工智能技术的引入,促进了产业变革;由于上述原因,我们需要明确的一个基本认识是:必须提供基于企业模型体系的设计和自动化工具,才有可能满足企业管理个性化的要求。1.1.2.信息孤岛随着计算机在企业管理应用的逐步深入,企业先后开发、购买了各种各样的应用系统。这些系统来自不同的厂商,产自不同的时期,使用了不同的技术平台。各系统之间很难进行数据交换,无法将它们集成一起,形成了一个个的信息孤岛。企业之间更是如此。这些孤岛系统,相互之间是孤立封闭的。孤岛系统存在如下根本性的缺陷:难以实现信息共享和关联;难以实现团队协作;难以实现流程连接;难于实现综合分析;不同应用各自为阵,基础资源不共享,造成投资浪费;各类应用的维护模式和工具不一致,整体维护成本高昂;升级和改造困难。因此需要应用集成平台来支持人和组织的集成、信息集成和业务流程集成;不仅43-5支持企业内部不同应用的集成,还需支持企业之间应用的集成。1.1.3.信息技术的发展导致商业模式的改变以知识与创新为核心,以信息化、网络化、全球化为特征的新经济,冲击着我国传统的思维方式和商业模式。在新的技术条件下,企业竞争的游戏规则发生了改变:从产品竞争到服务竞争;从传统人财物竞争到知识、信息竞争;从以产品中心到以客户中心;从业务处理到商业智能;从大规模制造到大规模定制;从企业内部到产业链;从本地化到全国、全球化。企业在市场化、全球化、信息化的今天,商业活动和信息技术日新月异。竞争的赢家一定是那些反应快、效率高、灵活性强、核心竞争力突出的企业,他们能成功的收集、分析、理解和使用信息。信息技术不再是一种减轻工作量、提升效率的管理工具,已经上升为企业的核心竞争要素,成为企业不可或缺的经营管理平台。对于越来越多的企业来说,信息技术已经成为其产品或服务的必要组成部分。1.1.4.集中管理、协同商务当企业规模有限时,管理者很容易进行集中化的管理;随着企业规模不断扩大,由于受管理手段的制约,企业不得不采取“分散化”管理;而当今随着IT技术的飞速发展,地理上的空间距离正在消失,人们可以借助IT手段突破管理能力的约束,对跨地域经营的企业实现“集中化”管理,使管理表现出从集中到分散再到集中的管理模式转变。从职能的角度讲,集团管理面临着整合化的选择。企业在规模化发展过程中,由于管理活动的复杂而形成了众多的纵横交错的职能部门,使得管理成本剧增而出现管理效率下降。借助IT作为管理手段,企业可以通过整合管理实现对管理成本的有效控制,突破能力束缚,实现整合式协同管理。集团企业实行财务集中统一管理的主要目的是为了增强集团对下属单位的财务监控力度,建立财务“决策层管理控制层核算操作层”自上而下的全透明管理和监控信息网络,消除会计信息失真,完善企业内部控制体系,以财务管理进步促进企业管理进步,进而提高企业的核心竞争力。43-6协同商务协同商务是指企业与供应商、客户、合作伙伴以及雇员在信息共享的基础上协同工作。在企业内部存在各部门之间的业务计划、流程、资源的协同。企业间协同包括供应链计划协同和计划执行监控。通过整个供应链资源和计划的协调,形成整体供应链协同计划。依托于供应链协同计划,驱动从下游企业到制造企业再到上游企业的物流的顺畅和反向资金流,以实现供应链的协同运作,实现整个供应链的价值增值和产业互联。集中管理集中管理不仅仅是数据管理的集中,而且是在数据集中的基础上实现资源和业务的集中管理和监控,例如集中财务核算与资金管理、集中库存管理、集中采购管理、网络分销等。今天,企业局部的、分散的系统到处存在,维护成本居高不下,业务流程难以协调一致,管理数据支离破碎。企业急需构建一个集中管理、协同商务平台。1.1.5.ERP实施风险由于传统ERP(EnterpriseResourcePlanning,企业资源计划)缺乏弹性,当不能满足企业个性化需求时,只能要求将企业的需求向产品靠拢,因此提出了商业创新平台(BusinessInnovationPlatform,BIP),利用新一代数字化和智能化技术,实现企业产品与业务创新、组织与管理变革。我们需要承认企业当前模式的合理性,并将其置于优先地位,通过渐进式改良使目标可预见,明确并控制阶段性需求,同时降低双方风险及成本。实际上,身处残酷市场竞争中的企业,对管理、对技术(包括信息技术)不仅有着高度的敏感性和责任感,而且更有着非常实事求是的态度。企业级管理软件提供商不应该也不能够告诉企业客户如何管理,而是帮助客户实现更有效的管理。1.1.6.提高开发效率、降低开发成本传统的ERP系统存在着系统开发和实施成本居高不下的“IT黑洞”问题,这是由于在软件系统架构上的严重缺陷而引发的。传统ERP系统的架构模式,是在底层的技术平台上直接构建管理系统,并且也只能采用面向技术、业务无关的“原始”编程工具来开发管理系统。这一架构模式使信息系统的开发、维护和扩展困难重重,问题主要体现在:不能满足管理个性化要求;不能对管理需要做出快速反应;不能满足业务的变化和发展;43-7开发过程漫长,难以控制;维护和调整困难;不能适应基础技术的更新换代。因此需要建立模型化的快速应用开发平台,采用基于业务相关但技术无关的模型来开发ERP系统。1.2.U8cloud的功能和特性U8cloud是用友新一代企业云ERP管理软件。U8cloud的目标客户主要为集团企业和企业集团。U8cloud的产品理念是“敏经营轻管理简IT”,这是中国集团企业和企业集团在以互联网和物联网为核心的数智时代,坚持国际化发展所获得的最佳管理与业务实践,也代表着当今世界最先进的管理模式和未来发展趋势。U8cloud是一个遵循J2EE技术规范,以企业业务信息管理和企业资源管理为基础,以业务过程控制管理为核心,支持Web服务,支持工作流管理和业务流程重组,支持多数据库系统的跨操作系统的企业应用运行平台;是基于模式化和提供可视化建模工具的开发平台;是开放的、基于SOA、支持多种集成方式的系统集成平台;是统一的支持JMX的系统管理平台。U8cloud可根据具体需求定制,满足企业持续改进的管理需求。软件开发商、系统实施服务商还可以借助U8cloud进行增值开发和服务。U8cloud作为新一代云ERP,具有如下特性:满足企业级大规模管理应用的复杂性和全面性要求;满足互联网和物联网高速发展的背景下,供应链中各相关企业间(核心企业与上下游企业、不同的上下游企业间)及同一企业内部不同的部门和组织间,通过网络化实现协同商务、协同计划、协同制造和协同采购的要求;满足管理模式、组织模式、业务流程、生产模式和功能需求不断完善和发展的要求;满足不同层次管理中的规范性和灵活性的要求;满足对系统易用性(适应我国的文化传统、管理风格、使用习惯、人员素质等)的要求;满足快速构建或重构企业各类业务模型并快速实施的要求;满足与其他应用系统(如CAD、CAPP、PDM、DCS、OA等)的集成要求;满足软硬件技术的兼容和跨平台迁移(适应多种操作系统、多种数据库系统)的要求;满足信创环境(服务器,操作系统,中间件,数据库)部署方案满足系统不同的安全等级和不同的环境部署方式的应用要求。本白皮书以下部分共分六节介绍U8cloud。首先在第二节讲述了U8cloud的总体体系结构及所遵循的业界标准;第三节介绍了U8cloud所提供的技术平台以屏蔽43-8具体技术对应用的影响;第四节将描述U8cloud应用平台;第五节及第六节注重于U8cloud所提供的集成平台及开发平台;第七节介绍了U8cloud在企业中的部署;最后总结了U8cloud所提供的主要功能及价值。2.U8cloud的总体介绍U8cloud基于多组织架构的企业应用运行平台、基于模式化的开发平台、开放的系统集成平台及统一的系统管理平台,是建立在Java语言所提供的强大功能的基础上开发的。Java是一种简单的、面向对象的、分布式的、结构中立的、安全的、可移植的、性能优异的、多线程的、动态的开发语言,适合构建基于网络计算的企业应用。由于Java的平台无关性,使得U8cloud可以运行在不同硬件平台、不同操作系统平台上。基于U8cloud所开发的应用软件采用Browser/Server(浏览器/服务器)的方式来运行。B/S的运行方式最大限度地方便了用户部署和维护大型软件系统,保证了瘦客户机运行,从而大大降低了用户目标系统的总体拥有成本(TCO)。2.1.体系结构图2-1U8cloud体系框架图U8cloud从体系结构上可分为三层,从下往上分别为系统框架层(SystemFramework)、技术框架层(TechnologyFramework)及应用框架层(Application43-9Framework),如图2-1U8cloud体系框架图所示。U8cloud还提供开发和管理工具集(Workshop)。2.1.1.系统框架层系统框架层主要指基础软件,如操作系统、数据库及J2EE应用服务器。U8cloud支持多种操作系统(Solaris、AIX、Linux、Windows、KylinOS、UOS等),可运行于符合J2EE规范的多种应用服务器(IBMWebSphere、BEAWebLogic、YonYouApplicationServer、TongWeb等)和K8S,支持多种数据库DBMS(DB2、Oracle、SQLServer、GaussDB、Kingbase,达梦等)。2.1.2.技术框架层技术框架层是在系统框架层(操作系统、数据库及应用服务器)和应用系统之间建立的一层技术封装层和系统资源监控和管理层。技术框架层屏蔽不同具体技术实现的细节,减少直接使用系统资源带来的复杂性、异构性、不安全性及不稳定性;技术框架层监控和管理系统资源,保证系统资源的可用性及其合理使用;技术框架层提供最佳编程模式,加快在不同技术平台上开发和部署应用的速度,保证应用的健壮性。技术框架层所屏蔽技术实现细节包括界面风格、远程接入、EJB实现/访问、多数据库适配、事务处理、并发处理、缓存处理、安全管理等等。企业服务架构(EnterpriseServiceArchitecture,ESA)企业服务架构是一个服务集成总线,支持异构环境的服务、消息及基于事件的交互。通过ESA,可以使用与实现无关的接口来定义服务,可发现和调用所需的服务,可解决服务之间的相互依赖。连接框架(ConnectFramework)连接框架连接客户端与服务器,使不同客户端(浏览器小应用程序、Java应用程序、浏览器JSP)可通过不同访问协议(HTTP/HTTPS,RMI)使用服务器提供的服务。同步(Synchronization)同步服务实现客户端与服务器代码和数据的同步,及集群环境下服务器之间的资源同步。SQL翻译器(SQLTranslator)SQL翻译器将SQL翻译成适合目标数据库的SQL语句,以适配不同数据库厂43-10商提供的产品;优化SQL,充分发挥不同数据库的最大性能。元数据管理(MetadataManagement)元数据是描述系统数据(包括界面定义、规则定义、流程定义等)的数据。通过元数据管理,对系统数据统一进行维护以支持用户自定义,如改变字段的可编辑属性、字段的取值范围等。工作流引擎(Workflow)工作流引擎根据工作过程的描述,通过执行一系列已定义的工作项,完成此工作过程。U8cloud的工作流引擎支持多种工作流模式,如分支、合并、并行、选择、循环、回退等;支持工作项的抢占与会签;支持可配置的动作执行脚本,等等。规则引擎(RuleEngine)规则引擎用来定义和执行各种规则,包括界面规则、关联关系、计算规则、条件跳转规则等。使用规则可以让应用更加富有柔性。规则需要通用的行业化语言精确表达且浅显易懂。规则引擎需要满足一定的计算速度,支持规则的批量处理及理解外部数据。持久化框架(PersistenceFramework)封装不同持久化技术(如JDBC、普通文件、XML、Excel)。持久化框架可解决对象与关系之间的“阻抗失配”问题。基础算法(BasicAlgorithms)提供统一的基本算法,如排序,XML文档操作,方便开发与编程,统一代码规范。登录和安全(Login/CASecurity)统一管理系统登录时的身份认证。支持多种身份认证策略,如静态密码认证、基于USBKey的CA身份认证等。支持对业务敏感数据使用证书进行签名和验证以防止数据篡改和提供抗抵赖性。调度引擎(Scheduler)调度引擎对服务和线程进行统一管理,以屏蔽不同应用服务器的异构性。调度引擎调度各种服务、常驻系统服务、客户端的请求服务、以及一些服务的组合。异常(Exception)43-11统一解释与封装异常消息,如不同厂商的数据库异常的不一致。缓存(Cache)提供在服务器端与客户端的临时内存中进行缓存的机制,包括对象的创建、共享访问、假脱机(Spooling)、失效等,加快对用户操作的响应。日志(Log)日志机制提供对系统运行时的监控及支持对系统异常的追踪与定位。日志机制可控制日志输出的格式、日志信息的级别、日志信息输出的目的地(文件、控制台、SocketServer等)。通过配置文件进行灵活的设置,用户可以细致地控制日志的生成过程,而不需修改程序代码。2.1.3.应用框架层应用框架层是基于企业建模理论的、以业务导向和驱动的、可快速构建应用软件的软件平台。应用框架层的出现是一种技术创新,它使软件平台多了一个具有革命性意义的战略层次,为降低大型复杂软件系统的实现难度提供了新的途径。将应用软件的业务逻辑和开发技术相对分开,使得应用软件的开发者可以仅关注应用的业务逻辑,而不必关注其繁琐的技术实现。这使管理层与业务人员参与应用软件的开发成为可能。U8cloud应用框架层基于业务和管理层面,以业务建模(组织、流程、功能、资源、信息)为基本手段,从而构造、开发和维护业务应用系统。使用U8cloud提供的应用框架层,可大大缩短研发周期,提高研发效率,加快应用开发的速度;减少企业信息系统开发的风险;降低开发成本;实现最终用户的个性化的需求;支持用户在发展过程中各种各样的需求变化;提供应用的高价值。国际化(I18N)实现界面的多语化及数据和展示的本地化。界面的多语化是指根据用户登录时指定的语种显示相应的语言界面。企业用户可以修改相应的语言信息及(显示的图片)。数据和展示的本地化指日期、时间、数字、货币、汇率等可根据企业用户本地的习惯进行展示。消息管理(MessageManagement)消息管理集中显示通过ESA所传送的消息,如应用系统所产生的预警消息,通知消息,业务流程相关的消息,及企业公告和用户对发消息等。移动管理(MobileManagement)支持通过移动设备进行消息的交互及操作业务数据等。对移动设备的广泛支43-12持,U8cloud带来的是企业管理的无处不在和服务的无限拓展,同时也为企业决策人员提供了高端、迅捷的管理机制。组织管理(OrganizationManagement)提供从不同维度管理企业,如公司、部门、主体账簿等。数据传输(DataTransfer)数据传输负责传输符合规则定义的数据集以支持数据层的应用集成。数据交换(DataExchange)我们有强大的OpenAPI与第三方系统进行数据交换,提供灵活的数据映射及数据绑定,支持根据业务规则的转换,同时结合工作流平台整合业务流程。动态会计平台(FinancialAccountPlatform)通过定义会计科目类别和凭证模板,使用凭证生成器,根据业务数据生成实时凭证。在保持业务数据与财务数据相对独立的基础上保证数据的一致性和及时性。预警平台(PreAlert)在预警平台上可定义多种方式的预警条件以进行形式多样的预警,如时间条件、库存大小、生日等。预警还可配置在用户登录时触发。预警消息可以用HTML网页的形式发布,可以通过邮件发布,还可使用短消息发送。业务流程和审批流程的编排(BusinessProcessandApprovalFlowOrchestration)用来定义业务流程和审批流中数据的流向,数据间的关系以及人员的关系。访问控制(AccessControl)使用基于用户角色和对象权限的权限分配方式。每一角色都包含公有权限和属于某一具体公司的私有权限。角色还提供信任功能。应用模式(ApplicationPatterns)U8cloud根据经验积累与用户实施,总结出一套与应用界面相关的模式(表单、报表和打印),更好地提供满足用户需求的界面展现,更快地满足用户个性化的需求。43-132.1.4.开发和管理工具集U8cloud在为复杂企业应用软件系统的开发提供一个基本框架(技术框架层和应用框架层)的同时,提供了与之相应的、方便易用的开发、实施、维护和管理工具集。这个工具集预置了大量的基本功能件、核心功能件和应用组件,支持企业模型的仿真、分析、诊断、优化和调整。通过技术框架和应用框架提供的开发与管理工具集:用友U8cloud和二次增值开发商能很方便地满足用户个性化的需求及用户在企业发展过程中各种各样变化的需求;降低开发难度,提高开发效率;支持基于企业参考模型的快速实施;提供全新的应用软件开发模式。2.2.标准化的U8cloudU8cloud是标准化的企业应用平台,支持如下标准:应用服务器:J2EESpecification,SpringBoot工作流:WfMCReferenceModel安全:SSLandJSSE,Certificate,andDigitalSignature消息:GB/T28168-2011管理:JMX数据库访问:JDBC远程访问与连接:HTTP/HTTPS,RMI/IIOP前端:H5,AirbnbJavaScriptStyleGuide,CodeGuide,AirbnbReact/JSXStyleGuide3.U8cloud技术平台U8cloud作为企业应用软件的开发与运行环境,采用了一系列先进的技术,以适应当前技术的变迁。3.1.企业服务架构企业服务架构(EnterpriseServiceArchitecture,ESA),负责提供企业级的服务。如图3-1企业服务框架所示:43-14图3-1企业服务框架IoC容器(IoCContainer):管理细粒度的业务对象,解析业务对象之间的依赖关系;模块部署(ModuleDeployment):负责统一部署产品模块,如总账、应收应付、采购等,到运行环境中,解析模块间的依赖关系;版本管理(VersionManagement):模块的版本及代码的版本的管理,补丁的发布、安装与更新;集群服务(ClusterService):在集群环境下提供单点服务(SingletonService),提供集群成员内同步的机制,如同步代码,同步配置,同步缓存等;JMX服务(JMXService):对企业应用架构中的服务通过统一的管理接口MBeans(即ManagementBeans)进行监视与操纵;数据访问服务(DataAccessService):提供数据查找、更新、删除的统一机制,以屏蔽不同种类的数据源,如数据库,文件等;JNDI:负责EJB组件和IoC容器中组件的注册与查找;组件管理(ComponentService):负责组装普通Java对象POJO(PlainOldJavaObject),包装业务服务作为EJB组件发布;缓存管理(CacheManagement):服务器端对应用数据的缓存,以减少对数据源的访问,减少响应延迟;线程管理(ThreadManagement):提供统一线程调度接口,以适配不同应用服务器;业务服务定位器(BusinessServiceLocator):对客户端提供统一查找业务服务和EJB组件的API;43-15动态代理(DynamicProxy):通过业务服务定位器查找到的业务服务其实是业务服务的一个动态代理,避免预先生成大量的访问代码。3.1.1.EJBEnterpriseJavaBeans(EJB)是基于Java的服务器端组件架构技术。使用EJB,借助于应用服务器提供的中间件平台基础服务(事务、对象池、安全等),可以加快开发企业级的分布式组件应用。EJB引入了一个清晰的定义良好的业务逻辑层,可在服务器执行复杂的企业计算,完成高吞吐量的业务事务处理。因为企业应用几乎总是事务性的,并且需要复杂的事务管理功能,所以通过使用由应用服务器提供的声明性的、而非编程性的事务管理,应用代码可大大简化,应用开发人员只需专注问题领域和业务逻辑,而不需显示调用JTA(JavaTransactionAPI)编写事务逻辑。应用服务器还提供高可用性、容错、集群等能力。但是,EJB在带来上述好处的同时,也带来了很多不便之处:EJB适合于粗粒度的远程接口,以便减少网络往返调用次数,改善分布式应用的性能;EJB是一种复杂的技术,使用EJB增加了开发和部署的难度;直接使用EJB会难以测试,因为业务逻辑通常编写在EJB的实现类中,而这些类通常依赖于EJB容器。所以EJB只是一个部分的解决方案。如果将业务逻辑从EJB中重构出来,放进EJB门面(Facade)后的POJO(PlainOldJavaObject)里,尽可能地减少业务逻辑对EJB容器的依赖,这样即提高了代码的复用性,也大大增强了可测试性。这些大量的细粒度的POJO也需要由容器作为一个整体应用框架进行统一的管理,以便于在应用中清晰地区分出一个服务层,于是U8cloud引入了IoC容器。3.1.2.IoC容器和DependencyInjectionIoC(InversionofControl,控制反转)容器管理细粒度的业务对象,为业务对象提供注册服务。使用IoC容器,可以强化“针对接口编程、而非针对类编程”的原则。仅仅通过接口访问业务对象,这样就可以更换具体的业务对象实现类,而不用影响调用这些对象的代码。使用IoC容器,业务对象无需依赖容器API。于是细粒度的业务对象即可作为POJO实现。使用IoC容器,意味着由容器(而不是应用代码)负责在运行时解析对象之间的依赖关系及组装对象。组装对象的一种方式就是DependeyInjection43-16(依赖注入):业务对象提供普通的方法,容器通过业务对象的属性或构造函数传递依赖对象的引用。使用IoC容器,实现的POJO很容易在应用服务器之外进行单元测试,不需要预先部署代码到应用服务器的步骤,缩短了编码测试周期。再者,使用依赖注入,很容易插入模拟的测试伪对象,同时也可以在应用服务器之外做一些集成测试。在实现IoC容器时,还可通过面向切面的编程(Aspect-OrientedProgramming,AOP)提供的拦截机制处理企业应用中的横切关注点(crosscutting)以提供各种企业级服务,从而实现服务的模块化。3.1.3.SOA面向服务的架构(Service-OrientedArchitecture,SOA)是为了解决在Internet环境下不同商业应用之间的业务集成问题,通过连接松散耦合的粗粒度的服务而完成特定功能的一种软件系统架构。SOA的松散耦合性要求不同服务之间应该保持一种相对独立的关系,使系统可以灵活适应不断变化的业务应用,以求企业保持竞争力,快速地适应内部因素(如兼并重组)或外部因素(如顾客需求)。SOA服务之间通过中立的定义良好的接口联系起来,这使得在各种各样系统中的服务可以以一种统一和通用的方式进行交互。不同种类的操作系统、系统软件、应用软件相互并存是企业的现状,而且当前的企业业务流程需要使用现存的应用程序,因此从头开始构建一个全新的系统是不现实的。通过SOA提供的抽象层,企业可以按模块化的松耦合的方式来添加新服务或将原有功能包装成为新服务,轻松地使用和组合服务,以解决新的业务需要。再者,从现有的服务中组合新的服务的能力为需要灵活地响应苛刻的商业要求的企业提供了独特的优势。通过利用现有的组件和服务,从粗粒度完善可重用性,同样可以减少完成软件开发生命周期(包括收集需求、进行设计、开发和测试)所需的时间。U8cloud的SOA架构,它是以ESA为中心通过消息发送负责连接服务的消费者和提供者。通过ESA进行消息路由,避免服务消费者和提供者直接通信,从而提高可扩展性。实施人员可以通过工作流编排界面定义审批流和业务流;用户通过U8cloud访问及使用业务流程;工作流引擎驱动业务流程在应用系统中流转和执行;业务流程将调用部署IoC容器中的组件或部署在应用服务器中的EJB完成指定任务。跨企业的业务流程可通过交换引擎与第三方业务进行衔接及交换数据。用户可使用查询引擎通过持久化框架完成复合报表的查询与制作。U8cloud统一在ESA中进行消息传递的管理与监控,收集业务度量(metrics)信息。43-173.2.元数据驱动和UI工厂U8cloud作为元数据驱动的企业应用平台,由元数据引擎和元数据资源库组成。使用U8cloud开发的应用系统将包含大量的元数据包括UI定义元数据、业务服务部署描述符、数据交换格式文件、及查询模型定义等。这些元数据由元数据引擎统一管理,集中存放在元数据库资源库中。图3-3元数据驱动与UI工厂结合UI工厂举例说明了UI元数据在U8cloud中的使用过程。在总结大量业务应用界面共性的基础上,U8cloud提供了UI工厂(UIFactory)以快速开发与显示用户界面,允许用户界面自定义,及提供用户界面二次开发的功能。开发人员通过U8cloud提供的开发工具集在开发过程中只需要描述界面中所需要的组件,平台将界面定义的元数据存放在元数据资源库中。当用户访问应用系统需显示特定界面时,元数据引擎将从资源库中提取相应的界面定义,UI工厂解析此界面定义,然后根据解析结果显示用户界面。除了显示用户主界面外,UI工厂还负责创建界面按钮,提供按钮状态机,根据按钮之间的关系统一管理界面按钮的状态及按钮的联动。UI工厂使用UI缓冲(UIBuffer)管理与界面相关的业务数据,提供MVC的功能及加快界面响应速度。UI工厂也可根据业务规则从前台数据缓存中取得所需的数据。UI工厂对服务的调用将通过业务服务委托类(Delegate)来完成,以解除界面与服务的依赖性。业务服务委托类使用业务服务定位器查找服务,通过接入框架调用服务及返回结果。43-18图3-3元数据驱动与UI工厂图3-4元数据使用场景在U8cloud中对元数据有三种使用场景,如图3-4元数据使用场景所示:应用开发人员使用U8cloud提供的元数据定义工具创建与设计元数据;43-19实施部署人员使用元数据客户化工具修改应用开发人员定义的元数据,以满足不同用户的特定需求,方便快速地响应用户;用户可使用元数据分配及应用操作使用元数据。基于元数据驱动的U8cloud,能更好的支持企业的个性化需要,随时更改得到企业所需的功能而不需要应用开发人员的介入。3.3.安全U8cloud的安全方案分为四个部分:身份认证和数字签名、网络数据流、访问控制及代码安全。3.3.1.身份认证和数字签名目前U8cloud默认提供三种身份认证方式:静态密码:使用在用户管理中用户所输入的密码进行身份认证。提供密码的有效期限制。在密码有效期过后可强制用户更改密码。如果用户登录时连续输错密码将锁定此用户。在若干失败尝试后也可进行IP拒绝。CA身份认证:为每个用户制作一个令牌(USBKey或智能卡)用于存放用户标识,用户证书及用户私钥。访问令牌中的私钥需要提供口令以防止令牌被人盗用。服务器端部署KDC和CA服务器。CA服务器存放所有用户的证书。用户登录时,服务器传给客户端一个随机数(挑战),用户用自己证书中的密钥对这个随机数签名后返回密文(应答),应用服务器通过CA服务器的参与,认证用户的有效性。由于随机数的分布、证书和PKI体系的标准和规范性,极大程度保障了挑战-应答(Challenge-Response)身份认证模式的安全性要求。动态验证码认证:在登入UClient可以使用动态验证码来登入,登入后单点U8cloud。由于静态密码和CA身份认证方式是以插件的方式运行在U8cloud中的,所以除了上述两种身份认证方式外,如果用户还需其他的认证方式,用户随时可进行动态扩展。除了身份认证,U8cloud还具有数字签名功能以提供防篡改及抗抵赖功能。业务中某些特定字段,如发生金额,转账金额等,可使用U8cloud提供的数字签名功能进行用户签名。明文与相应的数字签名都将日志到第三方可信任库中以防止用户否认曾发送过对某项数据的签名,提供法律依据。在进行签名时将检测当前登录用户是否与令牌中的用户.