版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SpringCloud-微服务系统设计方案(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)
微服务系统设计方案基于SpringCloud-微服务系统设计方案(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)微服务本质 微服务架构从本质上说其实就是分布式架构,与其说是一种新架构,不如说是一种微服务架构风格。ﻩ简单来说,微服务架构风格是要开发一种由多个小服务组成的应用。每个服务运行于独立的进程,并且采用轻量级交互.多数情况下是一个HTTP的资源API.这些服务具备独立业务能力并可以通过自动化部署方式独立部署。这种风格使最小化集中管理,从而可以使用多种不同的编程语言和数据存储技术。ﻩ对于微服务架构系统,由于其服务粒度小,模块化清晰,因此首先要做的是对系统整体进行功能、服务规划,优先考虑如何在交付过程中,从工程实践出发,组织好代码结构、配置、测试、部署、运维、监控的整个过程,从而有效体现微服务的独立性与可部署性。 本文将从微服务系统的设计阶段、开发阶段、测试阶段、部署阶段进行综合阐述。ﻩ理解微服务架构和理念是核心。系统环境名称版本说明JDK1。8SpringBootSpringFrameworkRibbonkafkaRabbitMQ微服务架构的挑战可靠性:由于采用远程调用的方式,任何一个节点、网络出现问题,都将使得服务调用失败,随着微服务数量的增多,潜在故障点也将增多。也就是没有充分的保障机制,则单点故障会大量增加.运维要求高: ﻩ系统监控、高可用性、自动化技术分布式复杂性:ﻩﻩ网络延迟、系统容错、分布式事务部署依赖性强:ﻩ 服务依赖、多版本问题性能(服务间通讯成本高):ﻩ 无状态性、进程间调用、跨网络调用ﻩ数据一致性:ﻩ 分布式事务管理需要跨越多个节点来保证数据的瞬时一致性,因此比起传统的单体架构的事务,成本要高得多。另外,在分布式系统中,通常会考虑通过数据的最终一致性来解决数据瞬时一致带来的系统不可用。重复开发: ﻩ微服务理念崇尚每个微服务作为一个产品看待,有自己的团队开发,甚至可以有自己完全不同的技术、框架,那么与其他微服务团队的技术共享就产生了矛盾,重复开发的工作即产生了。ﻩ没有最好的,只有最适合自己的。架构设计思维设计ﻩ微服务架构设计的根本目的是实现价值交付,微服务架构只有遵循DevOps理念方可进行的更顺畅,思维方式的转变是最重要的。实现微服务技术架构,现有产品需要进行技术上的改进以及相关配套服务的实现,采用分阶段实施、以及试点产品优先实施的策略,主要包括如下:ﻩ一、技术上的改进:ﻩ1、前后端分离,web前端通过Http/Https协议调用微服务的API网关,由API网关再经过路由服务调用相应的微服务ﻩ2、不同微服务之间通过REST方式互相调用ﻩ3、微服务之间通过消息中间件实现消息交互机制ﻩ二、配套服务与功能实现: 1、需要进行相应的自动化服务实现,包括自动化构建、自动化安装部署、自动化测试、自动化平台发布(Docker实现)ﻩ2、管理服务,对于微服务架构,必须配套相应的监控与管理服务、日志管理服务等ﻩ3、协作服务,运用DevOps思想提升开发、测试、运维的高效沟通与协作,实现开发与运维的一体化微服务架构设计ﻩ
1、我们把整个系统根据业务拆分成若干个子系统或微服务.
2、每个子系统可以部署多个应用,多个应用之间使用负载均衡。
3、需要一个服务注册中心Eureka,所有的服务都在注册中心注册,负载均衡也是通过在注册中心注册的服务来使用一定策略来实现。ﻩ Eureka可部署多个,进行高可用保证。
4、所有的客户端都通过同一个网关地址访问后台的服务,通过路由配置ZUUL网关来判断一个URL请求由哪个服务处理.请求转发到服务上的时候使用负载均衡Ribbon。
5、服务之间采用feign进行调用.
6、使用断路器hystrix,及时处理服务调用时的超时和错误,防止由于其中一个服务的问题而导致整体系统的瘫痪。
7、还需要一个监控功能,监控每个服务调用花费的时间等.8、使用SpringCloudConfig进行统一的配置管理,需要考虑与公司的配置管理平台如何配合使用。ﻩ9、Hystrix,监控和断路器.我们只需要在服务接口上添加Hystrix标签,就可以实现对这个接口的监控和断路器功能。
10、HystrixDashboard,监控面板,他提供了一个界面,可以监控各个服务上的服务调用所消耗的时间等。
11、Turbine,监控聚合,使用Hystrix监控,我们需要打开每一个服务实例的监控信息来查看。而Turbine可以帮助我们把所有的服务实例的监控信息聚合到一个地方统一查看。这样就不需要挨个打开一个个的页面一个个查看。架构的可靠性保证:ﻩ在关键节点做主备、集群部署,防止单点故障.待后续确认问题: 1、AccessControl:Zuul网关提供了相关控制功能,与我司CAS如何结合使用ﻩ2、ConfigServer:SpringCloud提供了远程配置中心,与我司的配置管理平台如何结合使用设计阶段总体设计 1、功能规划:对产品功能进行拆分,拆分为若干个微服务;一个功能可以创建多个微服务并部署在多个服务器节点上,以便进行负载均衡。 2、设计原子服务层,梳理和抽取核心应用、公共应用,作为独立的服务下沉到核心和公共能力层,逐渐形成稳定的服务中心,使应用能更快速的响应多变的客户需求。ﻩ3、为每个服务设计API接口(REST方式)ﻩ4、为不同的服务进行分类,不同类型的服务需要的资源不同,可以配置不同的资源,包括CPU、内存、存储等。服务拆分原则ﻩ1、粒度微小: ﻩ根据业务功能划分服务粒度,总的原则是服务内部高内聚,服务之间低耦合。ﻩ2、责任单一: 每个服务只做一件事,即单一职责原则。 3、隔离性原则: ﻩ每个服务相互隔离,且不互相影响ﻩ4、业务无关优先原则: ﻩ基础服务,是一些基础组件,与具体的业务无关。比如:短信服务、邮件服务.这里的服务最容易划分出来做微服务,也是我们第一优先级分离出来的服务。服务规划 为实现负载均衡,允许相同的服务在多个节点注册相同的服务名,不同的端口.如果没有前期的规划,不同的服务提供者可能会注册相同的服务名,导致消费者调用服务时产生调用混乱。ﻩ因此,需进行服务名的统一规划: 1、规划期统一制定每个服务提供者的服务名或者模块标示。ﻩ2、服务名的命名规则:ModuleName_ServiceName,且所有字符小写,不同单词之间以下划线分隔。如用户管理模块提供了获取用户信息的服务,则命名为:user_get_info。ﻩ3、新增服务名时,需要提出申请,审批通过后方可使用,为减少审批复杂度,可只审批ModuleName,即在模块内部可以自由增加服务名,不需要进行审批。开发策略ﻩ总体原则:不同的微服务需进行物理隔离。ﻩ1、SVN策略:SVN上创建独立的分支,不同微服务的代码提交不受相互影响; —-—由配置管理员统一控制。 问题:开发分支与集成分支,都将增加很多,维护工作量增加. 2、编译策略:代码编译时,各个微服务独立编译、打包,杜绝直接的依赖;ﻩ3、工程构建:代码开发时,各微服务创建独立的工程,工程之间不能产生直接依赖 4、持续集成:每个微服务独立执行持续集成. 5、版本集成:由统一的集成工具,实现自动化的版本集成,将所有微服务集成到统一的版本发布包中。版本策略ﻩ每个微服务可以独立制作版本,伴随着服务的增多,SVN分支增多,版本也将增多,版本管理的复杂度将成指数级增加。在服务之间依赖较多时,每个服务的升级或降级都将影响其他服务的正常运行。 因此需执行如下策略: 1、所有服务的版本制作交由专业的版本管理员执行. 2、采用自动化的版本制作策略,最大程度的减少人工操作.ﻩ3、每个服务的版本必须有详细的版本计划、版本说明,对于版本说明要制定模板,明确需要提交的内容、版本号、SVN标签等。ﻩ4、对项目经理的要求提升,需对整体的版本计划有严格的制定,尤其是版本之间的依赖关系要非常明确,版本升级、降级的风险评估需完全充分. 5、接口管理:严格执行接口管理制度,任何接口的变更必须进行审批、发公告等流程。数据库挑战与策略 每个微服务都有自己独立的数据库,那么后台管理的联合查询怎么处理?这应该是大家会普遍遇到的一个问题,有三种处理方案。ﻩ1)严格按照微服务的划分来做,微服务相互独立,各微服务数据库也独立,后台需要展示数据时,调用各微服务的接口来获取对应的数据,再进行数据处理后展示出来,这是标准的用法,也是最麻烦的用法。ﻩ2)将业务高度相关的表放到一个库中,将业务关系不是很紧密的表严格按照微服务模式来拆分,这样既可以使用微服务,也避免了数据库分散导致后台系统统计功能难以实现,是一个折中的方案。ﻩ3)数据库严格按照微服务的要求来切分,以满足业务高并发,实时或者准实时将各微服务数据库数据同步到NoSQL数据库中,在同步的过程中进行数据清洗,用来满足后台业务系统的使用,推荐使用MongoDB、HBase等。 第一种方案适合业务较为简单的小公司;第二种方案,适合在原有系统之上,慢慢演化为微服务架构的公司;第三种适合大型高并发的互联网公司。ﻩ建议,我们当前采用第二种方案。负载均衡 不再采用一般的增加负载均衡服务器的方式进行负载均衡,如F5、Nginx、LVS等,而是把负载均衡的功能以库的方式集成到服务消费方的进程内,这种方案称为软负载均衡(SoftLoadBalancing)或者客户端负载均衡.在SpringCloud中配合Eureka的服务注册功能,Ribbon子项目则为REST客户端实现了负载均衡。ﻩ使用Ribbon进行负载均衡,其工作原理可以概括为下面四个步骤:Ribbon首先根据其所在Zone优先选择一个负载较少的EurekaServer;定期从EurekaServer更新并过滤服务实例列表;根据指定的负载均衡策略,从可用的服务器列表中选择一个服务实例的地址;然后通过RestClient进行服务调用。Ribbon本身提供了下面几种负载均衡策略:RoundRobinRule:
轮询策略,Ribbon以轮询的方式选择服务器,这个是默认值.所以示例中所启动的两个服务会被循环访问;RandomRule:
随机选择,也就是说Ribbon会随机从服务器列表中选择一个进行访问;BestAvailableRule:
最大可用策略,即先过滤出故障服务器后,选择一个当前并发请求数最小的;WeightedResponseTimeRule:
带有加权的轮询策略,对各个服务器响应时间进行加权处理,然后在采用轮询的方式来获取相应的服务器;AvailabilityFilteringRule:
可用过滤策略,先过滤出故障的或并发请求大于阈值一部分服务实例,然后再以线性轮询的方式从过滤后的实例清单中选出一个;ZoneAvoidanceRule:
区域感知策略,先使用主过滤条件(区域负载器,选择最优区域)对所有实例过滤并返回过滤后的实例清单,依次使用次过滤条件列表中的过滤条件对主过滤条件的结果进行过滤,判断最小过滤数(默认1)和最小过滤百分比(默认0),最后对满足条件的服务器则使用RoundRobinRule(轮询方式)选择一个服务器实例。性能策略 1、网络优化:优化组网结构,提升网络间通讯性能; 2、配置优化:优化SpringCloud组件集以及其他组件的配置信息,使得性能最大化.技术管理策略ﻩ微服务的架构理念中指出各微服务可以独立建设,可以使用不同的技术、语言、框架等,以便能更快速的使用新技术、新框架等响应特定客户需求,解决单体应用架构更新技术、更新框架时面临的困难或阻碍。ﻩ但这也同时带来了诸多问题,如下: 1、各服务是否可以任意使用自己的技术、自己的组件、框架呢?如果这样,势必带来更大的管理困难、维护困难、技术共享困难。 2、公共的方法如何实现共享?如格式化时间的一个简单方法需要共享,也需要封装为一个服务接口吗?ﻩ管理策略: 1、总体原则:仍然需要进行统筹考虑,所有组件统一管理,组件放置在产品仓库中,每个产品或服务需要共享组件时,从产品仓库获取。ﻩ2、特殊情况:特殊服务需要使用特殊的组件、框架,需提出申请,统筹规划后进行决策。开发阶段服务的调用AIP网关调用所有服务通过Zuul网关进行调用,不允许直接调用微服务提供者。Zuul可能会成为系统瓶颈,在项目复杂时可考虑为Zuul进行主备或负载均衡处理。同步调用ﻩ采用HTTPREST方式进行调用,针对业务需求可以进行负载均衡,负载均衡的调用方式有两种:ﻩ1、FeignClient 2、RestTemplateﻩ建议使用FeignClient方式进行服务调用。ﻩ不管是什么方式,他都是通过REST接口调用服务的http接口,参数和结果默认都是通过Jackson序列化和反序列化。因为SpringMVC的RestController定义的接口,返回的数据都是通过Jackson序列化成JSON数据。异步调用ﻩrabbitMq、kafka、SpringCloudStream均是可以选择的方案.SpringCloudStream,基于Redis、Rabbit、Kafka实现的消息微服务,简单声明模型用以在SpringCloud应用中收发消息。服务间调用的权限验证一般我们的API接口都需要某种授权才能访问,登陆成功以后,然后通过token或者cookie等方式才能调用接口。使用SpringCloudNetfix框架的话,登录的时候,把登录请求转发到相应的用户服务上,登陆成功后,会设置cookie或headertoken等。然后客户端接下来的请求就会带着这些验证信息,从Zuul网关传到相应的服务上进行验证。Zuul网关在把请求转发到后台的服务的时候,会默认把一些header传到服务端,如:Cookie、Set-Cookie、Authorization.这样,客户端请求的相关headers就可以传递到服务端,服务端设置的cookie也可以传到客户端。但是,如果你想禁止某些header透传到服务端,可以在Zuul网关的application.yml配置里通过下面的方式禁用:zuul:ﻫroutes:ﻫusers:
path:/users/**
sensitiveHeaders:Cookie,Set—Cookie,Authorization
serviceId:user刚才说了我们的某个服务有时候需要调用另一个服务,这时候,这个请求不是客户端发起,他的请求的header里面也不会有任何验证信息。这时候,要么,通过防火墙等设置,保证服务间调用的接口,只能某几个地址访问;要么,就通过某种方式设置header。同时,如果你想在某个服务里面获得这个请求的真是IP,(因为请求的通过网关转发而来,你直接通过request获得ip得到的是网关的IP),就可以从headerX-Forwarded—Host获得.如果想禁用这个header,也可以:zuul.addProxyHeaders=false如果你使用RestTemplate的方式调用,可以在请求里面添加一个有header的Options。也可以通过如下的拦截器的方式设置,它对RestTemplate方式和FeignClient的方式都可以起作用:@BeanﻫpublicRequestInterceptorrequestInterceptor(){ﻫreturnnewRequestInterceptor(){ﻫ@Overrideﻫpublicvoidapply(RequestTemplatetemplate){ﻫStringauthToken=getToken();ﻫtemplate.header(AUTH_TOKEN_HEADER,authToken);ﻫ}
};
}服务编排ﻩ主要的作用是减少项目中的相互依赖。比如现在有项目a调用项目b,项目b调用项目c...一直到h,是一个调用链,那么项目上线的时候需要先更新最底层的h再更新g.。。更新c更新b最后是更新项目a。这只是这一个调用链,在复杂的业务中有非常多的调用,如果要记住每一个调用链对开发运维人员来说就是灾难.有这样一个好办法可以尽量的减少项目的相互依赖,就是服务编排,一个核心的业务处理项目,负责和各个微服务打交道。比如之前是a调用b,b掉用c,c调用d,现在统一在一个核心项目W中来处理,W服务使用a的时候去调用b,使用b的时候W去调用c。 其实可以理解为面向对象的设计,减少方法之间的一层层嵌套调用,而采取一个方法进行业务流程的串联,如方法W实现一个完整的业务处理,则采取下面方式:ﻩfunctionw() { ﻩ1、调用方法a; 2、调用方法b;ﻩ3、调用方法c;ﻩ}服务的熔断处理ﻩ在服务之间进行调用时,由于各种原因会导致远程服务不可用或压力过载等异常导致的故障蔓延,此时需要有一种机制进行保护处理。SpringCloud通过Netflix的Hystrix组件实现熔断和降级处理解决此问题。断路器(CricuitBreaker)是一种能够在远程服务不可用时自动熔断(打开开关),并在远程服务恢复时自动恢复(闭合开关)的设施,SpringCloud通过Netflix的Hystrix组件提供断路器、资源隔离与自我修复功能。SpringcloudHystrix熔断器
ﻫ统一日志管理ﻩ不同微服务部署在不同节点上,登录每个节点查看日志是比较麻烦的,同时对于需要关联多个微服务日志联合查看分析的情况将更加麻烦.伴随节点数量的增加,如果没有合适的管理机制与工具,定位问题、发现问题的复杂性将越来越大,将成指数级增长,因此需要进行统一日志管理。 1、建立统一的日志管理规范; 2、开发并使用统一的日志组件,为所有微服务提供统一的日志服务,由log4j或Blitz4j封装;ﻩ3、在每个服务节点上部署日志采集Agent组件,由此Agent进行日志的采集与转发;ﻩ4、建立统一的日志中心,所有日志写入日志中心.ﻩ说明:上述日志的实现由公司的“日志管理平台”进行实现,采用的是ELK集合框架.ﻩ统一监控管理 使用Hystrix组件进行服务的监控,使用Nagios进行服务器等资源的监控。 1、Hystrix,监控和断路器。我们只需要在服务接口上添加Hystrix标签,就可以实现对这个接口的监控和断路器功能.
2、HystrixDashboard,监控面板,他提供了一个界面,可以监控各个服务上的服务调用所消耗的时间等。
3、Turbine,监控聚合,使用Hystrix监控,我们需要打开每一个服务实例的监控信息来查看。而Turbine可以帮助我们把所有的服务实例的监控信息聚合到一个地方统一查看。这样就不需要挨个打开一个个的页面一个个查看。统一配置管理ﻩ实现各微服务的统一参数配置以及版本管理,可采用公司的配置管理平台或者SpringCloudConfig配置中心。SpringCloudConfig配置中心
ﻫ SpringCloudConfig就是我们通常意义上的配置中心.SpringCloudConfig—把应用原本放在本地文件的配置抽取出来放在中心服务器,本质是配置信息从本地迁移到云端。从而能够提供更好的管理、发布能力。
SpringCloudConfig分服务端和客户端,服务端负责将git(svn)中存储的配置文件发布成REST接口,客户端可以从服务端REST接口获取配置。但客户端并不能主动感知到配置的变化,从而主动去获取新的配置,这需要每个客户端通过POST方法触发各自的/refresh。 为解决配置信息能及时通知到各服务,同时减少每个微服务处理配置信息更新的复杂度,为此我们通过消息总线来解决此问题,方案如下:Git仓库、ConfigServer、以及微服务“ServiceA"、“ServiceB"的实例中都引入了SpringCloudBus,所以他们都连接到了RabbitMQ的消息总线上。从Git仓库中配置的修改到发起/bus/refresh的POST请求这一步可以通过Git仓库的WebHook来自动触发。/bus/refresh请求不再发送到具体服务实例上,而是发送给ConfigServer,并通过destination参数来指定需要更新配置的服务或实例。由于所有连接到消息总线上的应用都会接受到更新请求,所以在WebHook中就不需要维护所有节点内容来进行更新,从而解决了通过WebHook来逐个进行刷新的问题。分布式sessionﻩ采用Redis作为缓存组件以及session的共享组件。 REST资源响应结构 制定规范和解析方法.API调用链追踪ﻩ微服务架构上通过业务来划分服务的,通过REST调用,对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。SpringCloudSleuth主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了zipkin,你只需要在pom文件中引入相应的依赖即可。单元测试 做微服务架构,进行系统测试的复杂度较大,为保证产品质量与开发、测试效率,单元测试是必不可少的.ﻩ可采用Mock方式进行测试模拟,由持续集成进行自动化单元测试的执行以及结果输出。代码调试 对于单体架构系统,可直接本地化调试,但对于微服务架构,接口间的调用需采用远程通讯的方式,也就是说被调用的服务必须启动后方可被调用,因此当微服务增多时,你可能需要启动大量的微服务或者web服务器,这给本地化调用与调试带来了困难。ﻩ解决方案待研究.测试自动化测试单元测试:ﻩﻩ由开发人员实现。ﻩ 采用Mock方式进行测试模拟,由持续集成进行自动化单元测试的执行以及结果输出.业务测试:ﻩ 开发进行实现,测试也需考虑如何实现。 ﻩ将多个服务或业务单元进行串联,测试一个完整的业务,甚至是不同业务之间组成的系统测试,需要采用相关的自动化测试框架执行,如RobotFramework自动化测试框架。依赖测试ﻩ也可以称为接口测试或者契约测试,在微服务逐渐增多的情况下,如何有效保证服务之间能够按照接口的约定正常工作,即符合契约,成为微服务实施过程中,测试面临的主要挑战。 一、开发自动化的接口测试工具,ﻩ1、检测接口是否满足约定 2、检测接口是否发生变化ﻩ3、检测接口是否可以正常被调用。 二、测试方法: 采取基于消费者驱动的契约测试,测试架构如下: 其优势如下:从价值实现的角度定义契约从消费者使用契约的角度出发,首先保证消费者基于此契约是可以实现价值的,有了这个前提,再使用契约来验证提供者,如果提供者提供的契约同定义的契约一致,则证明提供者提供的契约是能够实现服务消费者的。通过这种方式,使得更聚焦于如何从价值实现出发.隔离消费者和提供者的测试对于契约的消费者和提供者可以分开独立测试,有效解决传统集成测试服务架构的弊端,将微服务的接口测试成本降到最低。 三、测试工具:ﻩPact、Janus、Pacto等。系统测试熔断测试 1、通过停止微服务的方式测试服务路由的正确性ﻩ2、通过压力测试,将某个微服务产生过载等异常,测试服务熔断或降级ﻩ3、通过压力测试,测试负载均衡策略的正确性性能测试ﻩ原有本地化的api调用将会变成REST的远程调用,调用速度势必受到影响,因此需要对系统性能进行考虑以及性能测试,主要影响因素如下:1、网络:远程调用时受到网络通讯速度的影响,这涉及到网络速度、网络部署以及系统架构,有相互依赖的服务应采取就近部署原则。2、服务器:受到远程服务所在服务器性能的影响。3、数据量:数据量这里指的是数据大小以及数据传输的次数以及频率,此时REST调用方式会产生瓶颈,当然,最好的方式是避免此种情况发生,此种场景采取消息中间件的方式异步通讯。持续集成ﻩ1、持续集成:每个微服务独立执行持续集成。 2、版本集成:由统一的集成工具,实现自动化的版本集成,将所有微服务集成到统一的版本发布包中。ﻩ3、持续集成可制作多种场景的版本,包括测试环境、开发环境、生产环境。 4、统计测试覆盖率等指标数据. 5、工具:Jenkins、Sonar等。持续部署ﻩ1、通过持续集成自动制作发布版本的Docker镜像;ﻩ2、将docker镜像自动上传到docker容器中。ﻩ运维阶段远程升级ﻩ微服务不断增加后,意味着部署容器也在同步增加,对于后续升级维护的工作量将会逐渐增加,开发统一管理中心,支持远程维护与升级将可减少运维的复杂度.统一配置中心ﻩ使用SpringCloudConfig或者配置管理平台进行统一的配置管理。统一日志中心ﻩ使用日志管理平台进行统一的日志采集、日志分析。目录1前言 41.1企业ERP系统的需求描述 41.2ERP技术及应用的发展趋势 51.2.1B/S架构的ERP已经盛行 51.2.2SOA架构的引入,使ERP全面升级 5平台化——ERP的柔性大大增强 5与其它信息系统的集成 6整合业务流程的监测与评估 72传统ERP产品技术架构 82.1传统C/S架构的ERP系统 82.2B/S架构的ERP系统 82.3C/S架构和B/S架构的优缺点分析 92.3.1C/S系统优缺点 92.3.2B/S系统优缺点 9结论 103国内外最新ERP产品技术架构 103.1主流ERP产品简要介绍 103.1.1OracleEBusinessSuite 103.1.2SAPNetWeaver 12用友U9 123.2ERP系统架构设计的共同特点 13基于互联网的三层体系架构 14面向服务架构(SOA) 14模块化和组件化的体系架构 144基于SOA架构的ERP系统 154.1SOA技术简介 154.1.1SOA概念及简介 15基于SOA技术的体系结构 164.1.3SOA的实现方式-WebService 194.2基于SOA的ERP系统架构设计 224.2.1SOA架构基础技术 224.2.2SOA架构设计方案 254.2.3SOA架构实现 264.2.4SOA架构的服务管理组件:ESB 274.3ERP系统架构技术的时间线 305系统实现的关键技术 325.1关键技术框架及工具 32三层分布式架构 32基于WEB的B/S架构开发技术 34统一认证技术 34构件开发技术 36工作流系统 40权限管理系统 45表单生成技术 49插件化开发框架 515.2系统性能优化技术 52分布式技术应用 525.2.2AJAX局部更新 54预加载技术 55数据库查询优化 55数据库读写分离 565.3系统运营部署设计 56服务器集群技术 56虚拟化数据中心技术 576应用云计算技术的ERP系统 616.1云计算技术简介 616.1.1IaaS基础设施即服务 626.1.2PaaS平台及服务 656.1.3SaaS软件即服务 65云计算产生背景分析 696.2应用云计算技术的ERP系统 706.2.1SaaS模式的ERP与传统ERP的比较 706.2.2SaaS模式的ERP系统架构设计 706.2.3SaaS模式的ERP系统的应用前景 726.3云计算安全设计 73云端数据存储加密 73网络数据传输加密 74数据安全管理规范 74云端加密的利与弊 766.4应用物联网技术的ERP系统 76物联网技术 76物联网应用案例—服装行业 796.4.3RFID,无线移动数据的收集技术 806.5应用移动技术的ERP系统 81移动ERP系统介绍 81移动ERP系统结构图 827总结 848参考文献 85前言企业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系统结构图ERP技术及应用的发展趋势B/S架构的ERP已经盛行
B/S模式是一种全新的软件系统构造技术。随着Windows98/Windows2000将浏览器技术捆绑植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。
网络应用系统的发展正在改变着ERP系统的开发及其实施方法,传统ERP体系结构逐渐被由客户、应用服务器、数据库服务器组成的三层B/S结构所替代,并有了统一的通讯协议TCP/IP和统一的基于Web浏览器的用户界面.B/SERP把传统的依赖于邮件、电话、人盯人的管理方式变革为目标导向、流程驱动、智能的电子商务流程。并且该B/S架构的ERP可以把企业内部流程与企业外部流程连接起来,与客户、合作伙伴、供应商协同完成供应链业务操作[52].SOA架构的引入,使ERP全面升级SOA(Service-OrientedArchitecture面向服务架构)的概念是由Gartner公司给出的,Gartner对SOA的定义为“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。其核心是:
1)SOA是一种软件架构思想,并不是一种产品。
2)SOA的重点是面向服务,此服务包括企业的内部与外部的每一个业务细节,比如企业中财务应收发票的处理就是一个服务。SOA的思想是把这些服务从复杂的环境中独立出来—-组件化封装,然后通过标准的接口使不同的服务之间相互调用。
3)SOA是一种软件架构思想,通过使企业中一个个细化的服务标准化,来达到企业的IT系统跟随企业的动态变化的目的。平台化-—ERP的柔性大大增强
在ERP应用实施的过程中,用户的满意度一直不高。主要原因是产品更新周期加快、市场响应要求提高,对ERP的个性化要求越来越高,这是导致ERP实施成功率不高的重要原因之一.
经过多年的积累,人们已经总结出了ERP系统中业务的核心,其架构、业务模型、标准化高的业务处理均是可封装的,如果我们把这部分封装起来,再开发出辅助这个平台的客户化工具,就可以形成业务化平台。同样如此,如果对ERP进行分析、研究,将ERP的相关部分封装起来,再加上工具包,就可以形成平台化的ERP。
平台级企业信息解决方案提供了一个软件平台,内置多种管理软件组件和快捷的二次开发工具,其组件可以通过多种语言来开发,开发出一个个的小模块,然后把每一个小模块独立起来建成一个组件,最后把这些组件组装起来形成最终的成品。那么对这些组件进行调用,管理和删减、添加及修改,甚至重新构架都可以,而这样对某一部分的改动根本不会影响到其它功能。这就是平台带来的灵活性,易操作性,使它在进行小的改动时可以直接通过系统上的某些功能来实现,而不必要通过改源代码的方式来处理,可以降低企业信息化软件的开发难度,提高开发效率,提高系统的柔性和可扩展性。一方面管理信息化厂商通过平台提供的组件能很方便地满足用户个性化的需求,以及用户在发展过程中各种各样变化的需求.另一方面将应用软件的业务逻辑和开发技术相对分开,使得应用软件的开发者可以仅关注应用的业务任务,而不必关注其技术的实现。这使管理与业务人员参与应用软件的开发成为可能。
平台化软件的基本特性如下:
1)软件架构灵活;
2)核心业务标准化;
3)接口标准化,具有很好的兼容性;
4)提供客户化工具包。与其它信息系统的集成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系统的集成,使得企业内任何员工都可以实时地与工作团队中的其他成员取得联系、寻找到能够提供帮助的专家或者快速连接到相关的知识,它的建立和使用可以大大提高企业范围内的知识共享,并由此提高企业员工的工作效率。
整合业务流程的监测与评估“用于测量成功的业务应用解决方案是连续改进的关键:财务表现的共享,SC效力,知识资本的价值以及顾客的满意度都是新的评测方法。"――Gartner.
传统ERP产品技术架构传统C/S架构的ERP系统
信息系统架构示意图:
1)一层架构:客户端、应用服务器和数据库服务器都在同一台机器上部署;
2)两层架构:数据库服务和应用服务在同一台服务器上部署,客户端访问服务器上的资源或数据;
3)
三层架构:应用服务和数据库服务分离,分别部署在不同的服务器上,应用服务采取集群部署,达到性能上的需求.图2.1不同分级层次的系统架构图
从企业信息系统架构设计看,三层分布式架构是一种典型应用;甚至可以过渡到多层分布式架构,如扩展出缓存服务、负载均衡服务等;这些都是用户对系统快速响应和系统可靠性的需求。B/S架构的ERP系统B/S架构的ERP系统的出现使得传统的ERP系统成为互联网应用,用户借助网络的方便快捷,可以随时随地办公,处理业务数据。现代企业普通存在多区域分支机构,或者业务人员需要差旅或在家办公,传统的C/S架构日益不能满足移动办公的需要,B/S架构的ERP系统刚好可以解决这一需要.图2。2B/S架构的ERP系统部署图C/S架构和B/S架构的优缺点分析C/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开发人员的成本低了许多)。B/S系统优缺点B/S结构的优点:1)是互联网应用,具有分布性特点,可以随时随地进行查询、浏览等业务处理。2)业务扩展简单方便,通过增加网页即可增加服务器功能。3)维护简单方便,只需要改变网页,即可实现所有用户的同步更新.4)开发简单,共享性强。
B/S结构的缺点:1)操作是以鼠标为最基本的操作方式,无法满足快速操作的要求,尤其是在大量数据录入操作、复杂交互的情况下,需要提升交互设计能力。2)页面加载刷新时,响应速度受网络连接的稳定性影响。结论
目前,从架构设计来看,ERP系统采用B/S架构和C/S架构是并存存在的,B/S的架构的系统更有发展前景,从长远来看,由于互联网发展,网络带宽提升,HTML5技术出现的等因素,B/S的架构的系统是将来的发展趋势。国内外最新ERP产品技术架构主流ERP产品简要介绍OracleEBusinessSuiteOracleEBS产品介绍
OracleEBS是OracleE-BusinessSuite的缩写,是Oracle公司的ERP产品,全球销量仅次于SAP(另一款ERP产品).OracleEBS是一整套企业级应用软件,包括:采购管理、库存管理、销售管理、车间管理、物料清单及工艺管理、生产计划、成本管理、应付账款管理、应收账款管理、现金管理、总帐管理、项目会计、项目制造、客户关系管理、供应商门户等模块。纯互联网技术架构Oracle电子商务套件采用标准的100%基于互联网的三层体系架构;无论是数据库层、应用层以及最前端的最终用户操作界面都100%支持基于JAVA的先进互联网技术[37]。
Oracle电子商务套件的技术架构特点,提供了软件系统基于数据中心运行的集中管理基础。使所有关于软件系统的推广、升级和日常维护工作可以基于数据中心进行,从而达到最大限度地降低客户端软硬件和维护成本,降低服务器端的软件维护工作内容。图3.1Oracle应用软件技术架构模块化开放架构Oracle电子商务套件应用产品采用模块化和组件化的先进软件技术体系架构,应用软件产品可以细化成为许多细粒度的模块,不同的客户应用可以选择不同的组件或模块组合形成适合于企业需求的软件平台方案;基于同一共享数据库和统一数据模型的数据层面的高度集成架构,保证各应用模块之间的紧密无缝集成和平滑的业务流转[37].图3。2Oracle电子商务套件的模块化开放架构SAPNetWeaverSAPNetWeaver产品介绍
SAPNetWeaver是SAP的集成技术平台和自从SAPBusinessSuite以来的所有SAP应用的技术基础。SAPNetWeaver是一个面向服务的应用和集成平台。SAPNetWeaver为SAP的应用提供开发和运行环境,也可以用来和其它应用和系统进行自定义的开发和集成。SAPNetWeaver是使用开放标准和事实上的工业标准进行开发的,可以用icrosoft?NET,Sun燡avaEE,和IBM燱ebSphere等这些技术平台进行扩展和互操作[44]。SAPNetWeaver技术架构
SAP企业系统架构是以SOA架构技术作为基础框架进行开发的。ERP,CRM,SCM,SAPBusinessSuite,SRM,PLM系统都是独立的子系统,这些系统之间的交互都是通过SOA服务进行.图3.3SAP企业系统架构用友U9用友U9产品介绍
用友U9完全基于SOA架构的世界级企业管理软件,用友U9面向快速发展与成长的中大型制造企业复杂应用,以“实时企业、全球商务”为核心理念,完全适应多组织供应链协同、多工厂制造协同、产业链协同、产品事业部和业务中心的管理模式,更能支持多生产模式的混合生产与规划、多经营模式的混合管理、精益生产、全面成本、跨国财务等深度应用,具有高度灵活的产品架构,帮助企业快速响应变化,支持经营、业务与管理模式的创新.用友U9技术架构
UFIDAU9完全采用面向服务架构(SOA),实现了全程模型驱动开发(MDD)模式,达到降低集成和开发成本的目的。UAP使企业管理软件具有多项新技术应用特点:企业信息资源变得可重用、透明化,并且系统具有高可扩展性,让业务处理更加高效、简洁、安全。UAP还提供了统一的集成开发环境(IDE),用户可以使用包括企业建模、领域建模、服务设计、UI设计、报表设计、规则设计、数据库设计等全方位的设计器,并通过可视化的界面和友好的交互操作,自动生成用户所需要的各种服务部件.UAP完全支持企业级的集成与应用协同,如Office集成、移动商务、企业搜索、智能客户端等多项领域[35]。图3.4用友U9技术架构ERP系统架构设计的共同特点
通过国内外最新ERP产品的功能及技术架构比较,得出:基于SOA架构的技术框架是共同采用的,而且更加强调了多设备的支持,完全基于互联网模式的系统。产品名称是否B/S是否SOA架构是否模块化构建是否支持移动设备是否分布式部署OracleEBusinessSuite是是是支持是SAPNetWeaver是是是支持是用友U9是是是支持是金蝶EAS是是是支持是OpenERP(开源)是下一版本支持完全模块化支持是表3。1各主流ERP产品系统架构比较基于互联网的三层体系架构
采用标准的100%基于互联网的三层体系架构,无论是数据库层、应用层以及最前端的最终用户操作界面都100%支持WEB的互联网技术,特别是应用层,直接采用互联网先进技术,不需要任何中间转换过程,在体现先进互联网技术的同时,最大限度的减少了中间环节,保证了系统处理的高性能和高稳定性。面向服务架构(SOA)
完全采用面向服务架构(SOA),实现了全程模型驱动开发(MDD)模式,达到降低更加强调系统的基础,采用松耦合,降低系统的耦合度。SOA的实现方式都是采用了基于Http协议的WebService的技术,数据交换格式采用XML,SOAP。模块化和组件化的体系架构模块化和组件化的先进软件技术体系架构,应用软件产品可以细化成为许多细粒度的模块,不同的客户应用可以选择不同的组件或模块组合形成适合于企业需求的软件平台方案;基于同一共享数据库和统一数据模型的数据层面的高度集成架构,保证各应用模块之间的紧密无缝集成和平滑的业务流转。ﻬ基于SOA架构的ERP系统SOA技术简介SOA概念及简介SOA的基本概念
面向服务的体系结构(Service-OrientedArchitecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互[26]。简介SOA(Service-OrientedArchitecture),面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML/WebService技术之后的自然延伸。SOA技术的优势
通过SOA思想的引入,使得ERP软件可以做到[50]:
1)支持异构集成
所谓异构环境,包括四个层次,硬件平台、操作系统、数据库、应用软件。如果一套硬件、一套操作系统、一套数据库、一套应用软件能够面面俱到的解决集团企业的所有管理问题,那是再好不过了.但现实中是不可能的,更普遍的是,不同的应用往往选择不同的平台和应用系统,以便充分发挥各个厂商的特长。支持SOA的ERP系统为集团企业的信息化提供了伸缩空间,企业可以根据需要选择最合适的解决方案.
2)降低企业的IT成本
以往多数企业在建设企业的ERP系统时是从项目的角度出发的,比如ERP项目、CRM项目等,事后当企业的IT系统越来越多的时候,才会考虑系统的集成问题,但这时候往往集成的难度就很大了.而SOA要求企业在建设IT系统之初就要考虑这些问题,也就是要考虑服务之间的接口问题。这样就会使企业的IT成本大大降低。
同时,SOA将改变以往的软件购买模式。目前,多数企业在购买软件时往往是成熟性软件,需一个模块或一个系统的购买,企业在购买时往往无法将那些企业不需要的功能剔除出去,这样,企业就不得不为此多付出资金、培训成本等许多不必要的成本。而支持SOA的集团财务软件则可以帮助企业实现真正的按需购买,企业需要什么功能就购买相应的服务,帮助企业避免不必要的支出。
3)实现企业的动态变革
支持SOA的集团财务系统使企业的IT人员不必太多的关心企业IT系统的底层技术,而更多的去考虑集团财务的业务处理以及财务业务与IT的接合。同时,以往企业在开发集团财务系统时,在重复功能上浪费了大量的人力与财力,同时系统在开发完成后,如果企业业务变化,系统将很难更改或者更改的成本很高.而SOA面对的是一个个独立的服务,服务之间可以通过标准接口来相互调用,这样企业在重复功能上就可以直接通过接口调用,而不必去重新开发.企业的业务发生变化时,只需要修改相对应的服务即可,降低了修改的难度与复杂度,保证了企业的IT系统的动态变化。基于SOA技术的体系结构SOA是松耦合的系统
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点:
1)是它的灵活性,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在.
2)而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质.我们称能够灵活地适应环境变化的业务为按需(Ondemand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改.SOA系统原型的一个典型例子是通用对象请求代理体系结构(CommonObjectRequestBrokerArchitecture,CORBA),它已经出现很长时间了,其定义的概念与SOA相似。然而,现在的SOA已经有所不同了,通过使用基于XML的语言(称为Web服务描述语言(WebServicesDefinitionLanguage,WSDL))来描述接口,服务已经转到更加动态且更灵活的接口系统中,非以前CORBA中的接口描述语言(InterfaceDefinitionLanguage,IDL)可比了.SOA体系结构作用
传统企业(数据库)应用软件产品,如MRP、ERP、OA系统等,在设计或架构上都是紧偶合、封闭式、自成体系,属于一次性投入一次性完结的产品。这样的产品很难适应或快速响应市场或客户灵活多变的需求,以及后续的扩展.在这样的市场、及客户需求下,从而催生了软件产品一种新的设计或架构的理念:面向服务架构(SOA架构)。
对SOA的需要来源于需要使业务IT系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。
SOA是一场革命。一个应用程序的业务逻辑(businesslogic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用.NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。让SOA系统适应改变的能力是最重要的部分,对于开发人员来说,这样的改变无论是在他们工作的范围之内还是在他们工作的范围之外都有可能发生,这取决于是否有改变需要知道接口是如何定义的以及它们相互之间如何进行交互.与开发人员不同的是,架构师的作用就是引起对SOA模型大的改变.这种分工,就是让开发人员集中精力于创建作为服务定义的功能单元,而让架构师和建模人员集中精力于如何将这些单元适当地组织在一起,它已经有十多年的历史了,通常用统一建模语言(UniversalModelingLanguage,UML),并且描述成模型驱动的体系结构(Model-DrivenArchitecture,MDA)。SOA架构的定义或特性
SOA架构,是一种粗粒度、开放式、松耦合的服务结构,要求软件产品在开发过程中,按照相关的标准或协议,进行分层开发.通过这种分层设计或架构体系可以使软件产品变得更加弹性和灵活,且尽可能的与第三方软件产品互补兼容,以达到快速扩展,满足或响应市场或客户需求的多样化、多变性。一个典型的SOA架构示意如下:图4。1SOA架构的系统图示基于SOA技术架构的价值未来企业的应变之道
持续增长的客户需求、瞬息万变的市场和日趋激烈的全球化竞争,使得企业必须不断提升自身IT及企业管理系统的敏捷性和适应性.现在,每个企业都需要把握业务流程发展的变革,预测业务环境的变化,以便对竞争者做出快速响应,确保企业的生存、发展和快速成长[27].
面向服务架构技术(Service—OrientedArchitecture,SOA)的出现,标志着设计、开发、部署新的企业应用系统,并将其与原有应用系统、业务流程进行集成的方式出现了根本性变化。
采用SOA架构,可以带来显著的商业和技术利益:
1)提升商业决策能力,通过将商业服务和信息进行聚合成为一系列动态的、组合的商业应用,企业决策者可以更便捷地获得更准确、更全面、更深入的信息,可以更敏捷地对各种变化做出反应.
2)获得更高的员工生产率,SOA可以改进商业流程,使得员工更加关注关键性、增值业务流程,基于服务更好地进行协作,通过各种方式访问和操作业务数据和信息,大大提升生产率。
3)建立与供应商和顾客的更强的联系,SOA增强了端到端的应用模式,跨越企业组织边界,更好地集成现有的信息系统,通过服务的编排和聚合,使其更好地融合在业务流程里。
4)可以更快、更节省地搭建IT和业务应用系统,基于SOA和标准化服务组件,可以根据业务流程需要,更快地搭建业务系统;同时,也可以更好地利用原有的IT和业务系统的投资,并保证其符合业务流程的需要。
5)可以增强IT和业务系统的可管理性和安全性,通过安全服务的部署和SOA治理,可以实现更强的安全性管理和监控,确保了整个架构置于统筹和管理之下.完全SOA架构所带来的价值
1)确保总体架构的合理规划,全面整合信息,彻底消除应用孤岛,全面实现过程、人员和信息的实质集成、高度协调,实现更高的互操作性与协同、更敏捷的业务流程、更全面的信息可见性;
2)企业的IT及应用系统架构将更具伸缩性,IT价值将得到充分的发挥,全面提升未来企业的竞争优势;
3)降低集成成本和风险,降低维护成本:随着企业业务的发展,非SOA应用在IT和应用系统中相互集成的成本和风险日益增大,系统运行将变得繁冗和低效;相应地,为维护应用孤岛及更多的流程接口,甚至是重复、重叠的业务功能系统,企业IT及应用系统维护成本将不可避免地日益增大。
4)基于SOA架构的IT及应用系统可以增量部署到位,但毫无疑问,选择完全SOA架构是正确、长远和明智的决策。SOA的实现方式-WebServiceWebService的概念
WebSe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年传染病防控专员培训题库(含答案)
- 2026年农产品出村进城工程政策考试题及答案
- 高炉上料工岗前岗位操作考核试卷含答案
- 电子设备装接工安全意识能力考核试卷含答案
- 自轮运转设备检修工安全演练测试考核试卷含答案
- 十二碳二元酸装置操作工安全生产规范考核试卷含答案
- 轧管工保密意识考核试卷含答案
- 陶瓷电容器制造工岗前理论水平考核试卷含答案
- 压延玻璃成型工岗前岗位水平考核试卷含答案
- 天然砂石骨料生产工岗前技术传承考核试卷含答案
- 2026年海关专业试题(附答案)
- GA/T 1999.3-2025道路交通事故车辆速度鉴定方法第3部分:基于视频图像
- 2025年铁路桥隧工(技师)重点考试题库及答案
- 不负韶华 新学期(2026年秋)小学四年级班主任工作计划
- 小学主题班会课件:互助关爱与邻里和睦
- 修订一单一库质量手册和程序文件参考文件
- 2026年联通考试试题及答案
- 云梯车安全专项施工方案
- 雨课堂学堂在线学堂云人工智能技术与应用(江南大学)单元测试考核答案
- (一模)鄂尔多斯市2026年高三第一次模拟考试物理试卷(含答案)
- 2026中国电信校招笔试题及答案
评论
0/150
提交评论