【系统分析师之路】第七章 复盘系统设计(面向服务开发方法)
复盘系统设计—面向服务开发方法
前言部分 历年真题考点分析
1)考点分析
重点重点重点。重要的事说三遍。没有什么好分析的。
2)重要知识点
01)面向服务的开发方法的概念
02)面向对象与面向服务开发方法的区分
03)面向服务的开发方法有三个主要的抽象级
04)SOA 架构的内容、特点
05)实现SOA架构的标准有哪些
06)微服务的概念特征以及其带来的挑战
07)微服务包含的内容和优势
08)企业业务架构之Zachman框架的概念
第一部分 综合知识历年真题
2008下综合知识历年真题(1分)
【2008下系分真题第25题:红色】
25.服务组件体系结构(Service Component Architecture,SCA)是基于面向服务体系结构(Service Oriented Architecture,SOA)的思想描述服务之间组合和协作的规范。以下关于SCA的叙述,不正确的是(33)。
(33)
A.SCA定义了语言中立的服务组合方式,能够进行跨语言的服务调用
B.SCA加强组件的接口与传输协议的关联,提高组件的内聚性
C.SCA实现服务组件和其传输协议的绑定,这种绑定是可扩展的
D.SCA主要是为了满足软件集成的需要而创建的架构
解答:答案选择B。二周目绿色变红色。本题考查SOA面向服务的架构。
服务组件体系结构(SCA)是面向服务体系结构(SOA)中描述服务之间组合和协作的规范。
SCA定义了语言中立的服务组合方式,能够进行跨语言的服务调用
SCA解决的主要问题是加强组件的接口与传输协议的解耦
SCA实现服务组件和其传输协议的绑定,这种绑定是可扩展的
SCA主要是为了满足软件集成的需要而创建的架构
2012上综合知识历年真题(2分)
【2012年系分真题第八题:绿色】
08.在Web服务技术体制中,(10)是实现服务组合的事实标准。服务组合过程中需要提供对Web服务多种高级特性的支持,通常采取制定规范,对SOAP消息进行扩展的方式实现。例如,规范(11)通过对SOAP消息的扩展,实现Web服务的安全性。
(10)
A. WS-CDL
B. WS-BPEL
C. WS-Choreography
D. WS-Orchestration
(11)
A.WS-Safety
B.WS-Trust
C.WS-Security
D.WS-Authorization
解答:答案选择B|C。此题考查Web服务。
- WS-BPEL是实现服务组合的事实标准。
- 服务组合过程中需要提供对Web服务多种高级特性的支持,通常采取制定规范,对SOAP消息进行扩展的方式实现。
- 例如,规范WS-Security通过对SOAP消息的扩展实现Web服务的安全性
2014上综合知识历年真题(2分)
【2014年系分真题第29题:绿色】
29.如何选择一个合适的开发方法,以保证在多变的市场环境下,在既定的预算和时间要求范围内,开发出让用户满意的信息系统,是系统分析师必须要面对的问题。(37)方法使系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流与沟通,缩短开发周期,提供系统开发的正确性和效率。(38)方法以粗粒度、松散耦合的系统功能为核心,强调系统功能的标准化和构件化,加强了系统的灵活性、可复用性和可演化性。
(37)(38)
A.结构化
B.面向对象
C.原型化
D.面向服务
解答:答案选择B|D。送分题。但是这个概念还是要记住的。
在众多的开发方法中,面向对象方法最早来源于仿真领域,其特点是系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期,提供系统开发的正确性和效率。
面向服务的方法以粗粒度、松散耦合的系统功能为核心,强调系统功能的标准化和构件化,加强了系统的灵活性、可复用性和可演化性
2015上综合知识历年真题(1分)
【2015年系分真题第25题:红色】
25.面向服务的开发方法有三个主要的抽象级别:操作、服务和业务流程。以下关于操作、服务和业务流程的叙述中,正确的是(31)。
(31)
A.位于最高层的操作代表单个逻辑单元的事物
B.服务的执行通常会导致读、写或修改一个或多个持久性数据
C.业务流程代表操作的逻辑分组
D.服务具有特定的结构化接口,并且返回结构化的响应
解答:答案选择A。二周目依然红色。但个人觉得此题答案应该为D。
面向服务的开发方法有三个主要的抽象级别:操作、服务和业务流程。
位于最底层的操作代表单个逻辑单元的事物,执行操作通常会导致读、写或修改一个或多个持久性数据。
服务的操作类似于对象的方法,它们都有特定的结构化接口,并且返回结构化的响应
位于第二层的服务代表操作的逻辑分组;
最高层的业务流程则是为了实现特定业务目标而执行的一组长期运行的动作或活动,包括依据一组业务规则按照有序序列执行的一系列操作。
其中操作的排序、选择和执行成为服务或流程的编排,典型的情况是调用已编排的服务来相应业务事件。
2016上综合知识历年真题(3分)
【2016年系分真题第18题:绿色】
18.面向服务(Service-Oriented,SO)的开发方法将(24)的定义与实现进行解耦,并将跨构件的功能调用暴露出来。该方法有三个主要的抽象级别,最低层的(25)代表单个逻辑单元的事物,包含特定的结构化接口,并且返回结构化的响应;第二层的服务代表操作的逻辑分组;最高层的(26)则是为了实现特定业务目标而执行的一组长期运行的动作或者活动。
(24)
A.接口
B.功能
C.活动
D.用例
(25)
A.类
B.对象
C.操作
D.状态
(26)
A.业务规则
B.业务流程
C.数据流
D.控制流
解答:答案选择A|C|B。二周目绿色。此题重点关注。
OO的应用构建在类和对象之上,随后发展起来的建模技术将相关对象按照业务功能进行分组,就形成了构件(Component)的概念。
对于跨构件的功能调用,则采用接口的形式暴露出来。
进一步将接口的定义与实现进行解耦,则催生了服务和面向服务(Service-Oriented,SO)的开发方法。
面向对象、基于构件、面向服务是三个递进的抽象层次。
SO方法有三个主要的抽象级别,分别是操作、服务和业务流程。
位于最低层的操作代表单个逻辑单元的事物,执行操作通常会导致读、写或修改一个或多个持久性数据。
服务的操作类似于对象的方法,它们都有特定的结构化接口,并且返回结构化的响应;
位于第二层的服务代表操作的逻辑分组;
最高层的业务流程则是为了实现特定业务目标而执行的一组长期运行的动作或活动,包括依据一组业务规则按照有序序列执行的一系列操作。
其中操作的排序、选择和执行成为服务或流程的编排,典型的情况是调用已编排的服务来响应业务事件
2022上综合知识历年真题(1分)
【2022下系分真题第21题:绿色】
21.相比传统SOA的服务实现方式,微服务更具有灵活性、可实施性以及可扩展性,其强调的是一种( )的软件架构模式。
A.联合测试、独立部署、独立运行
B.联合测试、独立部署、集中运行
C.独立测试、独立部署、独立运行
D.独立测试、独立部署、集中运行
解答:答案选择C。
微服务强调的是一种独立开发,独立测试,独立部署,独立运行的高度自治的架构模式,也是一种更灵活,更松散的演进式架构。
第二部分 案例分析历年真题
2007下案例分析历年真题(25分)
2017年下案例分析试题一
阅读以下关于企业应用集成的叙述,在答题纸上回答问题1至问题3。
某软件公司承担了某大型企业应用系统集成任务,该企业随着信息化的进展,积累了许多异构的遗产信息系统,这些系统分别采用J2EE、.NET等技术进行开发,分布在不同的地理位置,采用不同的协议进行数据传输。企业要求集成后的系统能够实现功能整合,并在组织现有功能的基础上提供增值服务。为了按时完成任务,选择合适的企业应用集成方法和架构非常重要。项目组在讨论方案时,提出了两种集成思路。
(1)刘工建议采用传统的应用集成方法,将应用集成分为多个层次,并采用消息代理中间件连接遗产系统。
(2)王工建议采用基于SOA的方法进行应用集成,将现有遗产系统采用Web Service的方式进行包装,暴露统一格式的接口,并采用企业服务总线(ESB)进行连接。
项目组仔细分析比较了两种方案的优点和不足后,认为刘工和王工的建议都合理,但是结合当前项目的实际情况,最后决定采用王工的建议。
【问题1】(8分)
请分析比较两种方案优点和不足,完成表1-1中的空白部分。
【问题2】(8分)
针对该企业的集成实际情况,请用200字以内的文字叙述王工建议中企业服务总线(ESB)应该具有的基本功能。
【问题3】(9分)
王工的方案拟采用Web Service作为基于SOA集成方法的实现技术。请根据该系统的实际情况,用300字以内的文字说明系统应该分为哪几个层次,并简要说明每个层次的功能和相关标准。
【问题1标准答案】
【问题2标准答案】
1)提供位置透明性的路由和寻址服务
2)控制服务寻址和管理功能
3)至少一种方式的消息范型(例如请求响应,发布订阅)
4)支持一种至少可以广泛使用的传输协议和协议转换
5)支持服务提供多种集成方式。比如Java2连接器,Web服务,异步通信,适配器等等。
【问题3标准答案】
采用WebServices作为SOA的实现技术时,该系统应该至少分为六个层次。底层传输层,服务通信协议层,服务描述层,服务层,业务流程层,服务注册层。
1)底层传输层
主要负责消息的传输机制,Http,JMS,SMTP都可以作为WebServices的消息传输协议,其中Http使用得最广。
2)服务通信协议层
描述并定义服务之间进行消息传递所需的技术标准,常用的标准是SOAP协议,还有新出现的REST协议。
3)服务描述层
以一种统一的方式描述服务的接口与消息交换的方式,相关的标准是WSDL。
4)服务层
主要功能是将遗产系统进行包装。并通过发布的WSDL接口被定位和调用。
5)业务流程层
主要功能是实现服务发现,服务调用和点到点的服务调用,并将业务流程从Web Service底层抽象调用出来,相关的标准是WS-BPEL。
6)服务注册层
主要功能是使得服务提供者能够通过WSDL发布的服务定义,并支持服务请求者查找所需的服务信息,相关的标准是UDDI。
2011上案例分析历年真题(25分)
2011年系统分析师下午案例分析第一题(软件架构)
随着宽带应用快速发展,用户要求系统服务提供商提供基于互联网的多种服务。数字视频监控作为一种区域级的安全监控方式,越来越为更多的用户所使用。数字视频监控告警系统采用与数字视频监控相结合的多媒体技术和基于互联网的信息传递方案,为企业用户以及个人用户提供多种媒体的、不同时间、地点的信息通知服务。数字视频监控告警系统可以将用户需要查看的监控视频或告警信息,通过互联网门户系统以多种媒体方式传送给用户,方便用户随时随地了解与自身相关的视频信息。
【问题1】
在设计数字视频监控告替系统时,张工将该系统划分为5个层次:服务代理层、门户服务层、流程服务总线层、业务流程应用管理层和企业服务层,其中流程服务总线层是整个数字视频监控告瞀系统的核心,实现了服务消息、服务指令与数据的集中传递。系统五个层次在实现时可以采用图1-1左侧所示的技术或工具,请将系统的5个层次填入空(1)〜(5),使其与左侧技术或工具相对应。
【问题2】
请用300字以内文字说明服务代理层、门户服务层、业务流程应用管理层和企业服务层的主要功能。
【问题3】
张工认为,系统设计实现时需要重点关注系统的私密性、实时性、稳定性和扩展性,为什么?请用300字以内文字说明。
【问题1标准答案】
- 门户服务层
- 业务流程应用管理层
- 流程服务总线层
- 服务代理层
- 企业服务层
【问题2标准答案】 - 门户服务层
- 提供信息展现的功能,向各类用户提供个性化的服务。
- 用户可以根据自己的习惯和兴趣,定制门户的页面结构和服务内容。
- 各个展现模块通过下层组件和具体的服务相关联。
- 业务流程应用管理层
- 提供了系统管理人员定义业务流程、重组优化现有业务流程、模拟测试业务流程等功能,同时提供了各类服务的运行环境。
- 在新的服务加入到现有系统中时,管理人员在配置服务代理(Service Agent)连接成功后,可以方便快速地将其加入到现有的业务运行环境中。
- 企业服务层
- 企业服务层包含了数字视频监控多媒体集成系统中的各类具体的企业应用,如数字视频监控系统服务、网站门户服务、电子邮件警告服务等。
- 各类企业服务为整个系统提供了多种的服务支持,并且对于符合该层次结构的服务也可以方便快速地加入到现有的系统体系中。
【问题3标准答案】
- 私密性
- 由于系统涉及的是各个公司或个人的专有的视频监控信息,
- 所以要求系统保证视频信息的私密性,严格限制访问权限。
- 实时性
- 对于突发的监控告警信息,为了避免进一步的损失,所以要求系统提供很高的实时性,
- 可以向用户快速提供入侵告警信息或其他告警信息。
- 稳定性
- 系统应该具备长时间不间断运行的能力,并在用户峰值时,也可以提供很好的服务。
- 扩展性
- 作为统一的门户接入平台,系统应该可以连接多种视频系统,并随着技术与用户需求发展,提供更多种的服务方式,所以要求系统具有较高的可扩展性。
2012上案例分析历年真题(25分)
【说明】
某大型咨询服务公司欲对现有的核心咨询业务系统进行升级改造,以适应大量用户的个性化咨询服务要求,提高系统的灵活性。公司主管将核心业务系统的升级改造工作交给了公司的系统分析师王工和李工。
一个月后,王工和李工分别向公司提交了自己的方案。王工主张以公司现有的、采用面向对象技术和Java语言实现的业务系统为基础,针对新的业务需求对系统进行重构、改造与升级。李工则认为现有系统的业务逻辑过于复杂,对系统进行重构的成本太高,可以采用面向服务的思想,提炼可复用的业务功能形成服务,实现系统的灵活性。经过公司相关人员共同开会讨论,最终采用了李工的改造方案。
【问题1】
请用500字以内的文字,从系统业务功能实现和功能集成两个方面对王工和李工的方案进行分析和对比,并结合项目需求说明公司为何会选择李工的方案。
【问题2】
采用服务思想设计系统时,需要考虑服务的耦合性。服务的耦合性可以分为两类,分别是服务契约耦合(Service Contract Coupling)和服务消费者耦合(Service Consumer Coupling).请对各种耦合关系进行分析,填写(a)〜(g),完成表2-1。
【问题3】
在对系统的业务服务进行初步分析后,李工首先提取了客户注册、业务受理和发票开具三个典型的业务服务。但进一步分析后,李工发现这三个服务需要使用数据库中的客户实体、业务实体和发票实体,而发票实体包含客户实体和业务实体的信息,这样会导致发票开具服务内部包含并重复实现客户注册和业务受理的处理过程,降低服务的复用性。请说明这种情况产生的主要原因,并针对这种情况,说明该如何对这三个服务进行重构,使它们具有更好的重用性。
【问题1标准答案】
角度 面向对象 面向服务
从系统业务功能实现 对象为核心概念,通过对象之间的消息交互完成业务功能 以服务为核心概念,业务功能需要封装为服务
从系统功能集成方式 以对象为单元进行功能集成,通常采用工作流技术定制业务流程 以服务为单元进行功能集成,采用服务组合技术实现灵活的业务集成与重组
从改造成本上看 需要现有系统进行功能梳理与重新开发,升级改造成本较高 将现有功能包装为服务,升级改造成本较低
从灵活性上看 灵活性差,需要在代码层次上进行修改并重新部署 灵活性好,以大粒度的业务服务复用为基础,采用服务组合技术实现系统的运行时功能组合
【问题2标准答案】
耦合关系 耦合类型 是否有害 耦合关系解释
业务逻辑-契约耦合 服务契约耦合 否 按照SOA的思想,业务逻辑应当与契约耦合,而不应与实现或技术耦合
契约-技术耦合 服务契约耦合 是 服务契约不应该与具体厂商的实现技术相关,而应该基于标准的XML技术与Web服务标准
消费者-实现耦合 服务消费者耦合 是 服务消费者需要通过服务契约使用服务功能,而不能直接与服务实现相关
消费者-契约耦合 服务消费者耦合 否 在使用服务功能时,服务消费者需要与服务契约进
【问题3标准答案】
- 题干中描述的问题产生的原因是在进行服务设计时,将业务逻辑可见的处理过程和不可见的处理过程封装在一起,这样会导致冗余的不可见处理过程在多个服务中存在,降低服务的潜在复用性。
- 针对该问题,应该增加客户实体服务、业务实体服务和发票实体服务,形成实体服务中间层。在这种情况下,客户实体服务和业务实体服务不仅能够为客户注册和业务受理服务提供支持,还可以为发票开具服务提供支持,这样就避免了不可见处理过程在多个服务中存在。
2015上案例分析历年真题(25分)
【试题二】
某集团下属煤矿企业委托软件公司开发一套煤炭运销管理系统,该系统属于整个集团企业信息化架构中的业务层,系统针对煤矿企业开发,包括合同管理、磅房管理、质检化验、运费结算等功能。部分业务详细描述如下:
(1)合同管理:合同签订、合同查询、合同跟踪等。
(2)磅房管理:系统可以从所有类型的电子磅自动读数;可以自动从电子磅上读取车辆皮重、毛重,计算出净重;可根据合同内容自动减少相应提货单剩余数量,如果实际发货量超过合同额则拒绝发货。
(3)质检化验:根据过磅单、车号,生成化验分析委托单,生成化验分析报告。
(4)运费结算:依据过磅单上的净重、化验单、合同规定,自动计算出原料结算单、运费结算单。
煤矿企业根据集团的工作计划制订本企业的业务计划,煤矿企业根据集团划拨指标和提供的原料生产煤炭,所生产的煤炭交由集团统一管理和销售给客户。软件公司采用Zachman框架对企业业务架构和业务过程进行分析,结果如表2-1所示。
【问题1】
Zachman框架是什么?请在表2-1中(a)-(e)位置补充企业业务架构中的信息类别。
【问题2】
项目组在该煤炭企业业务架构分析中完成了四项主要工作:数据流图、实体联系图、网络拓扑结构和计划时间表,这四项工作在表2-1中处于什么位置,请用表2-1中的位置编号表示。
【问题3】
据题目所述业务描述,请分别给出表2-1中A11和A23位置应该填入的内容。(物流关系用“→”表示)
【问题1标准答案】
Zachman框架综合考虑企业业务架构中不同角色的不同观点,提出了一个多视角、多维度的企业架构,是许多大公司用来理解、表述企业信息基础设施的一种可以理解的信息表述,为企业现在以及未来的信息基础设施建设提供蓝图和架构。
(a) What/数据
(b) How/功能/行为
© Where/位置/网络
(d) Who/人员/组织
(e) Why/动机
【问题2标准答案】
(1) 数据流图:A32
(2) 实体联系图:A31
(3) 网络拓扑结构:A53
(4) 计划时间表:A25
【问题3标准答案】
(1) All项目关键元素:合同/合同管理、过磅/磅房管理、质检/质检化验、结算/运费结算。
(2) A23业务物流网络:煤矿企业←→集团→客户。
2017上案例分析历年真题(25分)
试题一(25 分)必答题
阅读以下关于基于微服务的系统开发的叙述,在答题纸上回答问题1至问题3。
【说明】
某公司拟开发一个网络约车调度服务平台,实现基于互联网的出租车预约与管理。公司的系统分析师王工首先进行了需求分析,得到的系统需求列举如下:
系统的参与者包括乘客、出租车司机和平台管理员三类;
系统能够实现对乘客和出租车司机的信息注册与身份认证等功能,并对乘客的信用信息进行管理,对出租车司机的违章情况进行审核;
系统需要与后端的银行支付系统对接,完成支付信息审核、支付信息更新与在线支付等功能;
针对乘客发起的每一笔订单,系统需要实现订单发起、提交、跟踪、撤销、支付、 完成等业务过程的处理:
系统需要以短信、微信和电子邮件多种方式分别为系统中的用户进行事件提醒。
在系统分析与设计阶段,公司经过内部讨论,一致认为该系统的需求定义明确,建议尝试采用新的微服务架构进行开发,并任命王工为项目技术负责人,负责项目开发过程中的技术指导工作。
【问题 1】(12 分)
请用 100 字以内的文字说明一个微服务中应该包含的内容,并用 300字以内的文字解释基于微服务的系统与传统的单体式系统相比的 2 个优势和带来的 2 个挑战。
【问题 2】 (8 分)
识别并设计微服务是系统开发过程中的一个重要步骤,请对题干需求进行分析,对微服务的种类和包含的业务功能进行归类,完成表1-1中的(1)~(4)。
【问题 3】(5 分)
为了提高系统开发效率,公司的系统分析师王工设计了一个基于微服务的软件交付流程,其核心思想是将业务功能定义为任务,将完成某个业务功能时涉及到的步骤和过程定义为子任务,只有当所有的子任务都测试通过后改业务功能才能上线交付。请基于王工设计的在线支付微服务交付流程,从(a)~(f)中分别选出合适的内容填入图1-1 中的(1)~(5)处。
选项:(a)提交测试 (b)全量上线 (c) 对接借记卡 (d) 获取个人优惠券 (e)试部署 (f)对账
【问题1标准答案】
微服务中应该包含的内容有:资源、对资源的操作的一组API集合。
微服务的优势:
- 分解解决复杂性
- 通过分解巨大单体式应用为多个服务方法解决了复杂性问题
- 它把庞大的单一模块应用分解为一系列的服务,同时保持总体功能不变。
- 让每个服务能够独立开发,开发者能够自由选择可行的技术,提供API服务。
- 微服务架构模式是每个微服务独立的部署。
- 开发者不再需要协调其它服务部署对本服务的影响。这种改变可以加快部署速度。
- 微服务使得每个服务独立扩展。
- 你可以根据每个服务的规模来部署满足需求的规模。甚至你可以使用更适合于服务资源需求的硬件。
微服务架构带来的挑战:
- 你可以根据每个服务的规模来部署满足需求的规模。甚至你可以使用更适合于服务资源需求的硬件。
- 并非所有的系统都能转成微服务。
- 例如一些数据库层的底层操作是不推荐服务化的。
- 部署较以往架构更加复杂
- 系统由众多微服务搭建,每个微服务需要单独部署,从而增加部署的复杂度,容器技术能够解决这一问题。
- 性能问题
- 由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或调用出错。
- 例如一个服务需要访问另一个服务的数据,只能通过服务间接口来进行数据传输,
- 如果是频繁访问,则可能带来较大的延迟。
- 数据一致性问题
- 作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难。
【问题2标准答案】
1)乘客信息注册,乘客身份认证,乘客信用信息管理
2)信息注册,身份验证,违章审核
3)支付管理
4)订单发起,订单提交,订单跟踪,撤销
【问题3标准答案】
1)f开始对帐子任务
2)c提测对接借记卡子任务
3)d提测获取个人优惠券子任务
4)a提交测试
5)b全量上线
- 作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难。
第三部分 论文写作历年真题
2008下论文写作历年真题(75分)
试题三 论SOA 在企业信息化中的应用
SOA(面向服务的体系结构)是一种IT体系结构风格、一种组件模型或者一种设计理念,其核心思想是通过将一组分散的服务关联,实现企业向客户提供的特定业务,并适应客观条件和需求的不断变化。
多数企业面临着不同种类操作系统、系统软件、应用软件和应用基础结构相互交织的信息化现状,而 SOA 的特性使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,从而保护投资,并能使企业对业务的变化做出快速的反应。
请围绕 “SOA 在企业信息化中的应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与实施的企业信息化建设项目(信息化现状、业务流程需求)以及你所担任的主要工作。
2.详细论述SOA 架构的内容、特点和实现SOA 所采用的常用标准、规范。
3.论述你具体采用了什么技术和工具来实现企业SOA 应用和部署,在应用中重点解决了哪些问题
SOA架构的内容
SOA架构的基本元素是服务,SOA指定一组实体,这些实体详细说明了如何提供和消费服务。
实体:服务提供者,服务消费者,服务代理,服务注册表,服务条款,服务契约。
SOA的服务是自含的,无状态的主体,可以由多个组件组成,通过事先定义的接口,响应服务请求
服务本身并不依赖其他函数和过程的状态,而用什么技术来实现服务,也不在其定义中加以限制
服务是可以互相操作的,独立的,模块化的,位置明确的,松耦合的以及可发现的
SOA本质上是将网络,传输协议和安全细节留给特定的实现来处理。
在SOA架构中一般有三种角色:服务提供者,服务请求者和服务代理者。
服务提供者提供符合契约的服务,并将他们发布到服务代理
服务代理者作为存储库,目录库或者是票据交换所,产生由服务提供者发布的软件接口
服务请求者发现并调用其他软件服务来完成业务任务
SOA架构的特点
SOA是一种粗粒度松耦合的服务体系结构,其服务之间通过简单精确的定义接口进行通讯,不涉及底层编程接口和通讯模型,SOA架构的特点有:
松散耦合
SOA是松散耦合的构件服务。这一点区别于大多数其他软件构件体系结构。松散耦合将服务使用者和服务提供者在服务实现上和客户如何使用服务方面隔离开来。服务提供者和服务使用者之间背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响
服务使用者的情况下而进行的修改。大多数松散耦合方法都依靠基于服务接口的消息;基于消息的接口能够兼容多种传输方式,基于消息的接口可以采取同步或异步协议实现。
粗粒度服务
服务所公开的功能的范围。一般可以分为细粒度和粗粒度两种。其中细粒度服务是指能够提供少量商业流程可用性的服务;粗粒度服务是那些能够提供高层商业逻辑的可用性服务。选择正确的抽象级别是SOA建模的一个关键问题。设计中应该在不损失或损坏相关性,一致性,完整性的情况下,尽可能进行粗粒度的建模。通过一组有效设计和组合的粗粒度服务,业务专家能够有效的组合出新的业务流程和应用程序。
标准化接口
SOA通过服务接口的标准化描述,从而使得该服务可以提供给任何异构平台和任何用户接口中使用。这一描述囊括了与服务交互需要的全部细节,包括消息格式,传输协议和位置。该接口隐藏了实现服务的细节,允许独立于实现服务基于的硬件或软件平台和编写服务所用的编程语言使用服务。
重点解决的问题
服务粒度的控制
SOA系统中服务粒度的控制是一项重要的设计任务,对于暴露在整个系统外部的服务,可以使用粗粒度的接口;
对于相对较低粒度的服务接口,通常用于企业系统架构的内部。
虽然细粒度的服务可以为服务提供者提供了更加细化和更多的灵活性,但会使交互模式较难控制,服务的一致性较差。
无状态服务的设计
SOA的服务应该是独立的,自包含的
在实现这些服务的时候,不需要前一个服务的状态,也就是说不应该依赖于其他服务的上下文和状态。
当某一个服务需要依赖时,可以将其定义为具体的业务流程。
SOA常用的标准和规范
1)可扩展标记语言XML
用于定义其他与特定领域有关的,语义的,结构化的标记语言
是一套定义语义的规则,这些标志将文档分成许多部件并对这些部件加以标识。它也是元标记语言,
2)WSDL Web Service描述语言
包含了一套基于XML的语法,将WebService描述为能够进行消息交换的服务访问点的集合,从而满足了这些需求。WSDL定义了可被机器识别的SDK文档;同时WSDL可以用来描述自动执行应用程序在通信中所涉及的细节问题。
3)SOAP简单对象访问协议
是一种基于XML的协议;应用程序可以在网络中进行数据交换和远程调用。
SOAP使用XML进行编码,是一个开放性的协议,SOAP本身并没有定义信息的语义;服务质量,事务处理等问题;
SOAP仅仅是一个对象通信协议,与应用平台完全无关。
4)UDDI通用发现描述和集成
提供了一种WebService的发布,查找和定位方法。我们可以将UDDI理解为一种目录服务。
WebService服务提供者使用UDDI将服务发布到服务注册中心,而WebService使用者通过UDDI查找并定位服务。
UDDI除了目录服务之外还定义了一个用XML表示的服务描述标准。
2009上论文写作历年真题(75分)
试题二 论企业服务总线技术及其在应用集成中的作用
企业应用集成(Enterprise Application Integration,EAI)是企业必须要面对的实际问题,企业服务总线(Enterprise Service Bus,ESB)技术是一种基于面向服务体系结构的新型企业应用集成技术。与传统的EAI技术相比,ESB采用总线式的体系结构集成多个应用系统,基于开放标准实现其内部核心功能,并支持快速加入新的应用到已有的集成环境中。
请围绕“企业服务总线技术及其在应用集成中的作用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与实施的企业应用集成项目(包括业务背景、组织结构、现有应用系统的分布、采用的技术等)以及你所担任的主要工作。
2.论述企业服务总线的核心功能;列举目前流行的ESB产品;指出你参与的项目所选择的ESB产品,并从ESB核心功能的角度说明选择该产品的理由。
3.阐述在使用企业服务总线技术进行应用集成时遇到了哪些问题,如何解决。
【解答】
企业服务总线是传统中间件技术与XML、Web服务等技术结合的产物。ESB是一个集成平台,将现有的IT设施和应用系统暴露为服务。由于ESB基于开放标准,企业的遗产系统使用的私有技术能够基于开放和现代的技术(例如Web服务和消息机制等)暴露为服务。
企业服务总线的核心包括了位置透明性,传输协议转换,消息转换,消息路由,消息增强,安全以及监控和管理7项内容。
1)位置透明性(Location transparency)
是指当一个服务消费者与一个服务提供者通过ESB进行通信时,服务消费者不需要知道服务提供者的实际位置,这意味着服务消费者与服务提供者之间是解耦合的
2)传输协议转换(Transport protocol conversion)
当服务请求者与服务提供者采用不同的传输协议时,ESB能够将基于输入传输协议格式的数据转换为不同输出传输协议格式的数据。
3)消息转换(Messagetransformation)
在服务请求者和服务提供者进行交互时,ESB基于开发标准(XLST和XPath等)提供了将消息从一种格式转换为另外一种格式的能力。
4)消息路由(Message router)
在实际的集成环境中,对于一个特定的输入请求消息,可能有多个应用程序参与进来作为消息传递的目标。ESB能够决定一个消息必须发送到哪些相关的应用程序中,处理这种逻辑的核心功能称为消息路由。
5)消息增强(Message enhancement)
在某些情况下,可能需要为请求数据添加额外的数据或转换已有的数据,在这种情况下,ESB应该提供对外数据的访问能力,支持用户编写客户端代码对数据进行访问和处理。
6)安全(Security)
ESB必须支持对消息的授权和认证能力,如果输入数据可能被恶意解析,还要提供加密能力。ESB的安全包括消息的机密性,完整性和可用性等。支持不同的安全策略和方法。
7)监控和管理(Monitor and management)
关注ESB的维护和管理能力。监控与管理功能包含多个方面,例如对于消息层来说,其管理主要包括管理消息队列,监控消息大小和消息队列的吞吐率等。对于Web服务,主要包括监控每个服务是否启动和运行,在每分钟有多少调用请求,对于一个Web服务,有多少服务实例在运行等等。
目前流行的ESB产品包括商业产品和开源产品两类:
商业产品
EBM的WebSphere ESB、Oracle 的Oracle Service Bus(前身是BEA的AquaLogic Service Bus)、微软的BizTalk Server等。
开源产品
Mule、Apache ServiceMix、JBossESB、OpenESB和WS02等
可能遇到的问题:
如何根据企业应用集成的需求选择合适的ESB产品;
如何根据企业的组织结构确定集成系统的体系结构,并据此设计系统的功能分布与物理拓扑结构;
相关子系统之间的数据格式转换;
针对具体业务编写合适的处理逻辑并确定消息路由
2018上论文写作历年真题(75分)
试题二 论软件构件管理及其应用
软件构件是软件复用的重要组成部分,为了达到软件复用的目的,构件应当是高内聚的,并具有稳定的对外接口。同时为了使构件更切合实际、更有效地被复用,构件应当具备较强的 适应能力,以提高其通用性。而存在大量的、可复用的构件是有效使用复用技术的的前提。 对大量构件进行有效管理,以方便构件的存储、检索和提取,是成功复用构件的必要保证。
请围绕“软件构件管理及其应用”论题,依次从以下三个方面进行论述。
1.简要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.详细说明构件管理中常见的构件获取方法,以及构件组织分类的常见方法。
3.结合你具体参与管理和开发的实际项目,说明在项目中如何获取和组织构件,以及如何进行构件组装
基于构件的开发模型是利用了模块化方法,将整个系统模块化,并在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率,高质量地构造出应用系统的过程。
CSBD方法由软件的需求分析和定义,体系结构设计,构件库建立,应用软件构件,测试与发布五个阶段组成。3. CBSD方法使得软件开发不再一切从头开发,开发的过程就是组件组装的过程类,维护的过程就是构件升级,替换和扩充的过程,
该方法的优点是:提高了软件开发的效率;构件可由一方定义其规格说明,被另一方实现,然后供给第三方使用,CBSD允许对个项目同时开发,降低了费用,提高了可维护性,可实现分布提交软件产品。
该方法的缺点是:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,引入具有较大的风险;可重用性和软件高效性不易协调,需要精干的,有经验的分析人员和开发人员,一般的开发人员插不上手,客户的满意度低;过分依赖构件,构件库的质量影响着产品的质量。
如果把软件系统看成是构件的集合,那么从构件的外部形态来看,构成一个系统的构件可以分为五大类:
1)独立而成熟的构件
它得到了实际运行环境的多次检验,该类构件隐藏了所有接口,用户只需规定好的命令进行使用。
例如数据库关系系统和操作系统。
2)有限制的构件
有限制的构件提供了接口,指出了使用的条件和前提,这种构件在装配时,会产生资源冲突,覆盖等影响,在使用时需要加以测试。例如各种面向对象程序设计语言中的基础类库等。
3)适应性构件
适应性构件进行了包装或使用了接口技术,把不兼容性,资源冲突等进行了处理,可以直接使用。这种构件可以不加修改地使用在各种环境中。例如ActiveX等。
4)装配的构件
装配的构件在安装时,已经装配在操作系统,数据库管理系统或者信息系统不同层次上,使用胶水代码可以进行连接使用。
目前一些厂商提供的大多数软件产品都属于这一类。
5)可修改的构件
它可以进行版本的替换,如果对原构件修改错误,增加新功能,可以利用重新包装或写接口来实现构件的替换。这种构件在应用系统开发中应用得比较多。
构件管理
对大量的构件进行有效的管理,以方便构件的存储,检索和提取,是成功重用构件的必要保证。
构件管理的内容包括了构件描述,构件分类,构件库组织,人员及权限管理和用户意见的反馈等。
构件的组织
为了给使用者在查询构件时提供方便,同时也为了更好的重用构件,必须对数据收集和开发的构件进行分类,并置于构件库中适当的位置。构件库的组织应方便构件的存储和检索。
目前按已有的构件分类方法,可以将构件分为三类:关键字分类法,刻面分类法和超文本组织方法。
2020下论文写作历年真题(75分)
试题一 论面向服务的信息系统开发方法及其应用
论面向服务的信息系统开发方法及其应用
信息系统是一个极为复杂的人机交互系统,它不仅包含计算机技术、通信技术和网络技术,以及其他的工程技术,而且,它还是一个复杂的管理系统,需要管理理论和方法的支持。如何选择一个合适的开发方法,以保证在多变的市场环境下,在既定的预算和时间要求范围内,开发出让用户满意的信息系统,这是系统分析师所必须要面临的问题。目前,有多种方法来解决该问题,其中面向服务( Service Oriented, SO)的开发方法就是一种常见的信息系统开发方法,其将接口的定义与实现进行解耦,并将跨构件的功能调用暴露出来。
请围绕“论面向服务的信息系统开发方法及其应用"论题,依次从以下三个方面进行论述:
1.概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。
2.请简要描述面向服务的开发方法的三个主要抽象级别。
3.请围绕基于面向服务开发方法的三个主要抽象级别,具体阐述你参与管理和开发的项目是如何进行系统开发的
【标准答案】
位于最底层的操作代表单个逻辑单元的事物,执行操作通常会导致读、写或修改一个或多个持久性数据。服务的操作类似于对象的方法,它们都有特定的结构化接口,并且返回结构化的响应。
位于第二层的服务代表操作的逻辑分组。
最高层的业务流程则是为了实现特定业务目标而执行的一组长期运行的动作或活动,包括依据一组业务规则按照有序序列执行的一系列操作。 其中操作的排序、选择和执行成为服务或流程的编排,典型的情况是调用已编排的服务来响应业务事件。