论面向服务架构设计及其应用
在参加大学生创新创业的比赛中,我参与开发“基于HOUGH的隧道漏缆故障检测系统”,在开发过程中我主要负责各个界面样式及逻辑的设计和对故障图片模板匹配的算法设计;在开发的前期,我们需要有一个框架,于是我对于软件各个界面之间的跳转关系进行了设计,在初步设计完成之后我们开始分工完成每个界面的功能,实现用户登录、选择想要操作的视频、进行分帧处理、将处理后的图片存放起来、对处理完的图片进行一系列的处理操作使图片便于识别、对图片使用之前制作的模板库进行匹配并将匹配成功的图片另外存放。在完成图片的模板匹配时,首先要设计模板库,在设计模板库时有两种选择,一是选择有故障的图片构建模板库,另一种就是选择正常的图片构建模板库;在构建了模板库之后就是对匹配算法的设计,花费了一周左右的时间将匹配的算法设计了出来并成功实现图片的匹配,成功率达到90%。在设计过程中主要就是用SOA的技术并符合SOA的标准,技术如标准如下:
SOA的第一个技术与理论体系为结构编程方法
所谓“结构程序设计方法”,就是基于面向对象设计方法的早期蓝本,侧重於解决程序正确性的编程的方法,以此为基础建立了软件工程这门学科,建立了编程的基础理论体系。人们的知识是从一个定理、一个原理逐步积累起来的,社会是依靠知识的不断积累发展的。然而编制软件每次却都是从零开始,这是造成“软件危机”的根本原因。由此提出了编程工作是否也可以重用以前成功的经验和程序呢?。整整经过十多年的探索,到七十年代才获得成功。
SOA的第二个技术与理论体系是UML统一建模语言
UML主要理论成果是:①统一面向对象的基本概念,并引进了许多新的概念,②认为软件开发的过程实质上是从抽象的模型逐步细化,过渡到具体的实现,其中间的每个阶段都是实现了某一抽象模型,UML为此提供了建立模型的工具,用直觉的图形来建立模型,从此软件专家就有了自己的工具,正如音乐家有了五线谱工具那样;③为适应软件的多变性,提供了演化的概念。
第三个技术与基础理论是构件架构
卡内基。梅隆大学为软件的架构和框架建立了扎实的基础理论,软件体系结构是软件系统的高级抽象,体现了软件设计思想,反映了系统开发中最早的决策,明确了系统有那几部分组成,它们之间是如何交互的;进一步影响到资源的配置、团队的组织以及产品的质量。系统的成败在于体系结构。构件架构技术和理论创立了架构师,是目前最吃香的软件工程师的职称。
分布式系统的三层体系结构及其中间件是第四个技术与基础理论
三层体系结构是由二层结构的胖终端中的应用构件独立出来组成了应用层。为解决分布式系统中的各种潜在复杂性,提出了中间件技术及其理论。
服务规范
服务规范有三个规范要素,根据服务的建模类型可对它们进行选择:
结构规范定义了可以调用的操作和由这些操作销毁或创造出的消息。
行为规范表示服务客户和所指定服务之间的任意预期的有意义的协议或会话。
策略规范表示服务的策略主张和约束。策略主张可能包括安全性、可管理性等等。
功能性方面
传输协议:用于将来自服务使用者的服务请求传送给服务提供者,并且将来自服务提供者的响应
传送给服务使用者。
通信协议:一种经过协商的机制,通过这种机制,服务提供者和服务使用者可以就将要请求的内容
和将要返回的内容进行沟通。
服务描述:一种经过协商的模式,用于描述服务是什么、应该如何调用服务以及成功地调用服务
需要什么数据。
服务:描述供使用的操作。
我在项目的开发过程中完全使用SOA的技术并且符合SOA的标准,“失败是成功之母”,在开发过程中我们不可避免地遇到了一些问题,最初在进行需求分析时我并没有使用UML统一建模语言,而是按照我们自己的想法想到哪做到哪,刚开始并没有什么不妥,在项目进行了一半的时候发现我们漏掉了一些重要的功能,导致我们的软件没办法将分工开发的各个部分合成一个完整地软件,于是我们不得不重新从需求分析开始,使用UML统一建模语言进行标准的需求分析,严格的按照SOA的标准进行开发,之后还用到了分布式系统的三层体系结构、结构编程方法、构件架构技术;最终成功的完成了我们的项目!