杨玉斌:各位来宾大家下午好!刚才主持人已经给我把这个饼图给大家介绍了,下面的嘉宾已经回答了。嘉宾回答的是对了75%,还有25%不正确。
第一,规划与设计,在规划与设计完成SOA的策略与愿景,业务蓝图的规划。
第二,愿景规划完成以后,我们需要将服务构造出来,然后用流程的方式把这些服务编排。
第三,构造出来服务以后,我们就需要来进行管理。
第四,刚刚嘉宾漏了一点,就是对服务进行监控和治理。服务运行效率怎样、性能怎样,我的流程它的整体的响应时间是不是满足我规划中设定的目标。
今天我主要给大家分享两个部分,第一是服务规划与设计。
服务规划与设计主要讲的内容就是方法论,我们用什么样的方法来规划SOA中的业务蓝图,怎样梳理流程进行服务筛选等等。如何来规划SOA企业的业务蓝图呢?我们提供的一种方式,首先是将企业涉及的业务领域预构件的方式体现出来,比如这是一个钢铁行业的规划,分成几层,比如L4、L5层,通过业务领域的方式规划出来,并且通过一些构件建模的方式,把业务领域拆分成一个一个业务构件,这个就是拆分方法,首先将业务横向的维度是业务领域划分,纵向决策是决策控制执行,然后综合评估企业的业务蓝图。这种评估方法也是参考了业界成功的模式,也是横向的维度和纵向维度来划分。通过一些价值链的分析手段,确定企业差异化业务和一般性业务,来确定我企业的一些核心竞争力。
在具体实施SOA的时候,需要找到企业中差异化的业务,优先投资差异化的业务。比如将这些差异化的业务作为一个SOA试点项目来进行。规划完业务蓝图以后,我们需要将这个企业的业务流程进行梳理,也就是刚刚我们副总裁刘尔洪也讲到,企业业务流程核心几个元素有组织、人工活动、KPI等等,一个流程会跨到企业多个业务部门,涉及到很多人工环节、自动环节。在规划设计这些流程的时候,还要关注流程的KPI,就是它的服务水平的承诺,比如服务响应时间多久,有多久能够完成这个服务,这个服务客户满意度怎样,我需要把这些信息定义好,这个是业务员需要做的工作。
通过流程梳理,我们将一个企业级业务梳理成一个一个子流程,落实到不同业务域中,这个在企业体系中可能是不同的系统,比如有的落到ERP系统,每一个字流程又划分为人工活动和自动活动。我们找出这些服务,可能是良莠不齐,不一定是满足我们需求的,但是我们还是需要用一些方法和原则来过滤这些服务。
服务筛选方法,可以采用自顶向上的方法或者自底向上的方式。自顶向上的方式,相对考虑的简单一些,我们设计服务的时候,还要考虑到其他系统,有些应用已经提供了一些服务,而且这些服务是满足需求的,但是有些服务是需要通过服务组合的方式才能满足这个流程需要。服务的组合,我们就可以采用SCA技术和标准,来将我们企业已有的服务或者已有的业务路线组装成新的服务,如果分析到我们有些服务是没有的,我就需要在这个服务开发过程中具体开发。
服务还是必须符合一系列筛选原则,主要满足业务需求和技术需求,业务需求必须要可以重用的,这些服务必须要有具体业务语意的,比如短信平台上大家看到嘉宾的问题,这些算不算服务,但是从SOA整体来看,这些并不算服务,做一个服务必须有业务语意的,必须是跨边界,可以重用的,这里不一一展开这些筛选原则。
当通过筛选以后,需要用一种方法把服务定义出来。定义的方式主要是关注服务的功能性需求和非功能性需求,功能性需求,这个服务参数是什么,刚刚有嘉宾问到参数具体到什么类型,业务人员关注的肯定不是具体技术性的,这里定义的肯定是某一种业务质体,比如订单对象,或者输入是订单向,或者查询一个订单的列表,返回到订单列表,在功能定义的时候,不会关注到具体的技术。
另外服务,刚刚讲到服务和服务之间依赖的数据,SOA这种应用里面,我觉得服务是跨整个企业的,可能会涉及到多个业务系统,比如有的是CRM系统,HR系统,ERP系统,同一个数据存在不同系统中,这个数据必须要有统一体现,比如建立统一数据系统,规范统一这些数据,有可能采用一些工具进行管理。
刚刚讲到服务功能性的定义,我们还需要定义一些,从业务角度定义非功能性的特性,比如吞吐量,比如我的服务是每秒钟享受几万条交易,比如300条按照一般处理方式就可以了,对于一万条,可能设计上,数据库表格的设计等等都需要做特殊的处理,才能满足这样的时间。
刚刚讲到服务的定义,拿到服务定义以后,怎么样让服务用具体技术实现呢?需要将服务分配到特定构件中,比如将已有服务组装成新服务,定义服务的访问协议,其实SOA这个体系,服务并不仅仅只是从技术上,它是对外,有可能是一个WEB 服务或者EMS。如果系统和系统之间能够认识这样的协议就OK了。在SOA提供了绑定模型,可以讲一个服务包括到任意一个协议,你只要配置一下,就可以把服务绑定成WEB服务或者其他的,这样客户端可以灵活的选用自己要调用怎样的协议。
当我这个服务运行一段时间以后,我可能需求发生改变,或者我的流程满足不了我的SLA这个定义,需要重构这些服务,这样就需要一系列的原则。比如一些服务已经在企业中得到了大规模的应用,我有很多流程使用了这个服务,如果我要重构这个服务,改造这个服务,就意味着大部分的流程不能用了。这个是很严重的问题。所以流程重组的时候,对于已有的服务,一般要分析这个服务是不是还被重用,如果被重用不能随意更改,只能包装分装出新的服务,尤其设计服务的时候,要考虑到服务力度不要太大,如果太大,出现这种情况,我看到一个客户,同一个服务有三十多种版本,我觉得这个就是业务规范上的问题了,把服务规范力度小一些,可能重用度好一些,这样维护成本少一些。
今天简单给大家介绍每个环节采用的方法手段,其实是非常简单的。在具体实现的时候,我们需要有一整套非常成体系的方法和过程以及模板来保证。比如流程梳理,业务流程定义侯选服务,服务筛选原则服务列表,服务设计的时候,我怎么样将服务落实到构件中,应该遵从什么设计方法,有哪些原则需要遵守。这是我讲的第一部分内容,给大家简单介绍服务规划和设计的一些方法。
接下来介绍服务的构造,结合我们的产品做一下演示。
我们提供了一套完整的服务构造,服务运行和服务监控的开发和运行监管平台,我们的服务构造提供业务构件设计,数据模型设计,服务设计、服务开发、服务审计。每个业务域产生很多个业务构件,需要规划处企业的数据模型。服务运行,服务运行容器,构件运行环境,基础构件库,一个服务上线了,但是还是有BUG,能不能让系统很容易的升级,不要将系统停掉,结合我们的产品,给大家演示一下具体过程。
这是一个迷你的CIM系统,是企业中的一个业务域,我们将CIM拆成一系列的小的业务构件,比如客户管理、订单管理、产品管理等等,除了业务构件以外,还要设置重用的业务构件,比如公共的业务构件中,定义数据模型,比如设计到公共模块,公共信息的定义,包括这些数据模型,但是数据模型中,建出来的形式要符合SDO规范的,SDO规范中如何描述这个数据模型,当然不是泛意义上的规范,还有一系列的规则和限制。我们在数据模型定义中,是完全符合SDO数据规范标准的。比如支持实体定义,属性定义,支持实体和实体间的定义。这个就是我们的数据模型。
当我们建完数据模型以后,我们需要进行服务设计,刚刚我们在服务流程梳理的时候,我们发现从自顶向下的方法和自底向上的服务,我们产品都支持这两种服务模式,你可以完全新开发一个服务构件,根据这个服务构件生成实现,我们也可以自底向上的方式,比如将JAVA构件自动拖入进来,形成SCA构件,这是一个构件系统,我们这些构件是从底层的逻辑流构件装配起来的,我们希望将订单服务构件提供服务暴露出来,我们这里只要将订单服务构件给改一下,只要添加一下,就不需要修改任何银行代码,就可以支持这个WEB服务了。这个就是我们的SOA提供的规范服务能力。
我们看一下用图形化的方式,来装配这个路线,来装配这个逻辑。我们从这么小的粒度的运算构件,装配出大粒度的具有运算反应粒度的构件。这些构件经过我们严格测试,而且这些构件在我们大多数客户中得到应用,它的质量、可扩展性和管理性都是非常好的,这样我们在构造这些业务模型的时候,就不需要重新再来,只需要依靠这些老的服务构件重新用就好了。
接下来看一下服务质量,我们构件完服务以后,这些服务都是一系列的小粒度的构件构成的,我怎么知道我一个项目中,这个我构件多少服务,这些服务质量怎样,有没有完成的文档。我们可以给整个项目导出生成项目的开发文档,比如项目统计报告,项目的开发文档中,构件中会把数据模型,还有构件装配,还有具体构件实现都导出来。然后又支持导入各种格式,导出统计报告的,会导出具体服务,每个服务我们可以看得到这些服务质量统计怎样的。我们可以看到完整的系统,它服务哪些业务构件,我们看这个模块,可以看到刚刚建的数据模型,我们通过这个文档,可以提高项目的管理性,所有这些开发出来的构件,都是完整的项目文档,从它的业务构件设计,到数据模型的设计,到它的具体的构件的实现,我们可以看到它的输入输出是什么,在这个文档中都有详细描述。
另外我对质量的一些统计,就是我这个项目质量,一共用了多少服务,多少逻辑流,这些逻辑流它的注释怎样,它的性能检查,它的折射代码是什么,形成完整报告。我们再看这个EXCEL报告中,我们看到整个项目一共生成分子员数多少个,业务逻辑、业务流程一共有多少,而且每个人写了多少,我们有详细统计。另外可以看到整个项目,比如构件库,自定义构件的复用率,和构件库里的复用率多少,都可以从导出来的报告看得到。还可以看到展现逻辑,比如分子个数,通过这些质量的检查报告,我们可以非常容易找到,我的性能是不是有问题,我实现的是不是不好,我的注释够不够,这样非常有益于我的项目的管理和维护。
我们这个产品演示,大家可以看出来有一体化的过程,从业务构件设计,到数据模型设计,到构件具体开发,到构件服务部署,刚刚因为时间关系没有讲,我们是一体化的环境。另外我们支持业务标准,比如SCA1.0,SDO2.1规范,所有的实现都是用图形化的方式,就可以将简单的应用搭建起来,这些就是我今天演讲的内容,谢谢大家!
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
名师讲堂之Kent Beck——响应式设计,现接受报名
软件开发方法学的泰斗,极限编程XP的创始人,敏捷宣言的创始人之一Kent Beck首次来到中国,分享其35年来在架构设计方面的最新总结。
-
解析SOA中服务分解的应用
服务分解方式提供一种技术,可以在服务首次部署之后把这个服务分解为两个或者更多的详细的服务……
-
SOA,测试人员的噩梦?
对于IT人员来说,SOA已经不仅仅是一种技术,它代表了一种新的,更加宏观的设计和实施IT系统的方法论。那么对于整个IT系统的实施过程来说,每一个步骤都按照SOA的角度来……
-
设计和构建企业架构
构建卓越的IT架构需要花时间并进行规划。通过评估已经拥有的基础,然后可视化其应该具有的状态,您可以让卓越的企业架构成为现实……