(计算机应用技术专业论文)基于构件技术的手机短消息应用系统开发.pdf_第1页
(计算机应用技术专业论文)基于构件技术的手机短消息应用系统开发.pdf_第2页
(计算机应用技术专业论文)基于构件技术的手机短消息应用系统开发.pdf_第3页
(计算机应用技术专业论文)基于构件技术的手机短消息应用系统开发.pdf_第4页
(计算机应用技术专业论文)基于构件技术的手机短消息应用系统开发.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机应用技术专业论文)基于构件技术的手机短消息应用系统开发.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士学位论文 、s t e r st i t e 5 】s 摘要 目前,手机短消息日益红火,s p i c p ( s e r v i c ep r o v i d e r i n t e m e tc o n t e n t p r o v i d e r ) 大都开通了自己酌短消息应用服务,但是,由于短消息应用有不同 的接入标准和不同的接入编程接口,导致s p i c p 的短消息应用系统在这种情 况下重复开发。为了充分利用现有的资源,减少不必要的再次开发,把现有的 开发和正要开发的系统有机地结合起来,成为了很多s p i c p 当前需要解决的 问题。 本文从基于构件技术的角度来完成手机短消息应用系统的开发,系统实现 了对不同短消息接入标准的支持,可以方便地加入新的短消息编程接口通信模 块,支持多种短消息业务的运营,具有短消息存储、转发的功能,还具有同志 记录的功能。 本文完成的主要工作是: 1 设计基于构件技术的手机短消息应用系统的软件体系结构; 2 复用已有厂商提供的短消息构件,开发新的短消息构件; 3 将已有短消息构件和新的短消息构件组装成应用系统; 4 实现了基于构件技术的手机短消息应用系统原型。 通过这些工作,达到了手机短消息应用系统的软件复用的目的,减少了重 复性的开发,使应用系统在多个地区能不经修改地部署。 关键词:手机短消息构件技术软件复用 体系结构u m l 硕士学位论文 、1 、sr e rbr ,- i ;s i s a b s t r a c t m o b i l es h o r tm e s s a g ei s l i v e l yi n c r e a s i n g l y a t p r e s e n t a n dm o s ts p i c p d e v e l o p e di t ss h o r tm e s s a g es e r v i c e a tt h es a m et i m e ,s h o r tm e s s a g ea p p l i c a t i o n s y s t e mo f s p i c pi sd e v e l o p e d r e p e a t e d l ys i n c ei th a sd i f f e r e n ta c c e s ss t a n d a r d sa n d p r o g r a mi n t e r f a c e s ag o o dm a n ys p i c pn e e dc u r r e n t l yt os e t t l et h ep r o b l e m so f r e d u c i n gr e p e a t e dd e v e l o p m e n ta n db a n d i n gd e v e l o p e ds y s t e mt o g e t h e rw i t hj u s t d e v e l o p i n gs y s t e mi no r d e r t om a k et h eb e s to f e x i s t i n g r e s o u r c e s i nt h i st h e s i s ,w e v ef u l f i l l e dd e v e l o p m e n to fm o b i l es h o r tm e s s a g es y s t e m f r o mt h ea n g l eo fc b d t e c h n o l o g y t h es y s t e mr e a l i z e ds u p p o r t i n gd i f f e r e n ts h o r t m e s s a g e a c c e s s s t a n d a r d s ,r u n n i n g o fm u l t is h o r t m e s s a g eb u s i n e s s e s ,j o i n i n g e x p e d i e n t l yn e w s h o r tm e s s a g e p r o g r a m m i n g i n t e r f a c e sm o d u l eo f c o m m u n i c a t i o n , s t o r ea n df o r w a r do fs h o r t m e s s a g e ,r e c o r d i n ge v e n tl o g t h em a i nw o r ko ft h i st h e s i sw a sf i n i s h e da sf o l l o w s : 1 d e s i g n i n gs o f t w a r ea r c h i t e c t u r eo fs h o r tm e s s a g ea p p l i c a t i o ns y s t e mo f c b d t e c h n o l o g y 2 r e u s i n ge x i s t i n gc o m p o n e n t s o fd i f f e r e n tm a n u f a c t u r e ra n d d e v e l o p i n gn e w s h o r tm e s s a g e c o m p o n e n t s 3 a s s e m b l i n ge x i s t i n ga n dn e wc o m p o n e n t so fs h o r tm e s s a g et o b e c o m e a p p l i c a t i o ns y s t e m 4 r e a l i z i n gp r o t o t y p e o fc b ds h o r tm e s s a g e a p p l i c a t i o ns y s t e mt e c h n o l o g y w i t ht h e s ew o r k ,w e v ea t t a i n e ds o f t w a r er e u s i n go fm o b i l es h o r t m e s s a g e a p p l i c a t i o ns y s t e m ,r e d u c e dr e p e a t e dd e v e l o p m e n ta n dd e p l o y e ds y s t e mo nd i f f e r e n t a r e aw i t h o u tm o d i f y i n go l l rs y s t e m k e y w o r d s :m o b i l e s h o r t m e s s a g ec o m p o n e n t - b a s e dd e v e l o p m e n t t e c h n o l o g y s o f t w a r e r e u s i n g s o f t w a r ea r c h i t e c t u r eu n i f i e d m o d e l i n g l a n g u a g e i i i 硕士学住论丈 、! s 1 e r st :h j s i s 郑重声明 本人的学位论文是在导师指导下撰写的,学位论文没有剽窃、抄袭、造假等违反学术 道德、学术规范和侵权行为,本人愿意承担由此而产生的法律责任和法律后果,特此郑重 声明。 学位论文作者( 签名) 。就文 2 0 0 4 年5 月2 1 日 硕士学位论文 a s t e r s _ h s i s 1 1 立题本旨 第一章绪论 目前在移动通信业务中手机短消息业务如火如荼,因此手机短消息应用系 统显得非常重要。开发手机短消息应用系统通常不会很难,但是,一个手机短 消息应用系统直接拿到不同的地区部署需要修改,会有重复性的开发工作。原 因是不同的地区使用不同的接入标准以及使用不同的a p i 编程接口来接入系 统。基于构件的开发方法能解决软件复用的问题,有效地减少重复性的开发工 作。 本文围绕“基于构件技术的手机短消息应用系统开发”这个主题,使用 c b d ( c o m p o n e n t b a s e dd e v e l o p m e n t ) 技术,开发和复用已有构件,提高系统 的可维护性、减少重复性的工作。 1 2 问题的提出 1 2 1 手机短消息应用的现状 使用信令信道的短消息业务表现相当火爆,成为人们娱乐、办公中常用的 一部分。短消息业务使用信令信道使得它的收费相当便宜,因此它在现在和将 来有较大的发展空间。基于短消息的增值服务如新闻点播、俏皮话、铃声下载 等,为i c p 、s p 带来了可观的收益。 腾讯公司以即时通信程序q q 闻名,新版中提供了可以给手机发送短消息 的功能,提高了用户通信的便利性,给腾讯公司带来了可观的收益。 即时通信程序m s n 的新版本,提供了给手机用户发送短消息的功能,吸 引了更多的用户加入和使用m s n 。 电视和电台节目鼓励观众和听众以手机短消息方式参与节目,使相互沟通 更加便捷。 硕士拳位论文 、! 1 lks 【h e s f s 这些应用的现状以经验估计,是一个地区采用一套短消息接入a p i 来进 行。这样做可以快速开展业务,但是,程序往往要重写。因此当规模达到一定 程度时,重复的工作量相当大。 1 2 2 手机短消息应用系统开发中存在的问题 一方面,中国移动短消息网关标准协议为c m p p ( c h i n am o b i l ep e e rt o p e e r ) ,而中国联通短消息网关标准协议为s g i p ( s h o r tm e s s a g eg a t e w a y i n t e r f a c ep r o t o c 0 1 ) ,两种协议不兼容。另一方面,网关协议只是一个通信规范, 网关厂商封装了a p i 接口给s p i c p 使用。 接入标准和接入a p i 的多样导致了应用系统重复开发,浪费了s p i c p 的 人力和财力。 1 2 3 本文目标与主要工作 本文将从广义的角度来看待构件,将接口a p i 的动态库( d y n a m i cl i n k l i b r a r y ,动态连接库) 视为构件加以复用。本文主要工作为: 1 对手机短消息应用系统的软件体系结构从基于构件的角度进行设计, 并以u m l ( u n i f i e d m o d e l i n g l a n g u a g e ) 方式加以表述; 2 尽可能复用已存在的短消息构件,同时开发系统需要的新短消息构件: 3 使用组装技术将已有的和新开发的短消息构件组装成应用系统: 4 针对系统需要完成的典型功能,实现了一个基于构件技术的手机短消 息应用系统原型。 在手机短消息应用系统歼发工作中,通过使用c b d 技术来达到软件复用 的目标。 硕士学位论文 m s t e r st 川、i 第二章基于c b d 的开发方法原理 c b d 的目标是改进软件开发的过程,手段是通过些预先构建的软件构 件来组装成新的软件,而不是从零开始的开发过程【3 】。这意味着在开发的开始 阶段,已经存在一些可以利用的软件元素,如程序开发包、构件库、软件文档、 开发框架,c b d 就是要复用这些已经存在的软件元素与领域知识,将一些独 立的构件组装成新的软件( 在这个过程中,可能需要开发新的构件并包装一些 老的构件) 。 2 1 c l a d 方法概述 近二十年来,软件工程的许多方法的一个核心技术是分解技术,将较大的 问题分解为较小的可管理单元。这些方法是结构化设计、模块化编程、面向对 象技术,鼓励使用“分而治之”的方法来促进开发和维护大型系统为目标。c b d 扩展了这些概念,强调要根据构件的功能来设计解决方案。构件之间只能通过 定义良好的接口来访问,并关注使用基于接口的设计技术来组装构件。重要的 是,这些概念已经被一系列产品所支持,这些产品实现了一些开放标准,为创 建、组装和执行构件提供了服务基础设施。构件是从分散的来源获得的,并且 与本地开发的构件一起来构造一个完整的应用程序【4 1 。 使用构件开发要解决一些问题: 1 复杂性 c b d 通过构件模型来抽象软件中模块和单元,通过构件提取和构件组装 来完成分解与组合,通过构件接口、标准服务和软件基础设施来支持增量式的 开发。 2 缩短发布时间 c b d 通过使用第三方提供构件、集成遗产系统、复用现有构件来缩短软 件系统发布时间。 3 一致性 硕士学位论文 、i s 丁e r 。st i i s i c b d 通过关心接口及接口提供的服务,不关心构件的实现方式,提取以 前开发的、正在生产的、将要生产的系统的共享的特征,来尽可能地提高一致 性、降低开发成本。 4 领域知识 c b d 提倡通过复用很多领域开发好的解决方案来利用领域的最佳方法, 在构件领域本身,c b d 关心构件模型标准。同时,c b d 关注三种统治着市场 的特殊构件模型发展动态。目前,开发人员可以根据系统的需要使用其中一种 或多种模型来定义和构造企业级应用。这些解决方案提供了健壮性、最好功能 和性能,并将这些解决方案作为更大规模开发的一部分。 5 产能 通过构件模型的定义及代码生成技术,如e j b ( e n t e r p r i s ej a v a b e a n s ) 中 的构件代码生成、m i c r o s o f t n e tf r a m e w o r k 中的基于可视化的设计,降低了 软件开发对熟练技术能力的苛刻要求,提高了生产高质量产品的速度。 6 项目进度可视性 c b d 通过构件的五个要素:规格说明、一或多个实现、受约束的构件标 准、包装方法、部署方法来支持增量式的开发,能在整个软件生命周期提供更 多可视性。 7 并行和分布式开发 在c b d 中,构件从一开始就被五个要素所定义,构件接口一般不允许变 化,系统进行了良好的划分。软件开发者可能只知道自己要开发的构件,而不 知道在整个开发团队中的重要性。这减少了系统中构件之间的依赖性,给并行 和分布式开发提供了良好的支持。开发和组装可以分开进行( 开发人员与组装 人员可以是两组人员) 。 8 可维护性 由于构件可被不同的实现所替换,因此在c b d 中,软件维护的变化可以 很方便地被识别出来。构件之间是松散藕合的,需要变化或者被替换的构件可 以从系统中拆卸下来,变化的影响可以被推测出来,不再是“牵一发而动全身”, 减少了维护费用。 9 构件粒度 4 硕士学位论文 、e rs ”s i 粒度一般指颗粒的大小,在此用构件所提供的功能数量来度量,特别是用 功能点的数目来度量。从复用的角度看,复用大的、粗粒度的构件更节省工作 量,小的构件可能被经常用到,但使用它们节省的工作量较小。最大类型的构 件是预先构造的应用软件包( 应用软件包没有使用构件的定义,它被设计为在 一个更大的应用组合中使用,理论上可以认为它是一个构件) 。一般来说,最 有价值的构件的粒度会大一些,而不是小一些。 2 2c b d 中的构件概念 构件的定义之一剐2 】:构件是一个独立发布的功能部分,可以通过它的接 口访问它的服务。也就是说构件是一个可交付的单元,构件提供满足设计准则 的功能集合,使用构件的接口来提出请求,被使用的构件通过接口来提供服务。 从面向对象的概念来看,构件可以认为是一种包装对象实现的简便方法, 并且可以使它们组装成一个更大的软件系统。同时,必须提供一套标准服务, 如构件和操作的命名规范、名字服务、安全性服务、事务服务等。 另一个权威的定义是1 3 :一个软件构件是可执行软件的一个可分离的部分, 作为一个单元来说也是有意义的,可以与其他软件实现互操作,需要某种环境 的支持。只能通过构件的接口来访问它,在进行了必要的安装和配置过程之后, 能以接口规定的方式来使用。为了能与其他构件一起共同工作,必须能够得到 其接口的细节。 构件的5 个要素1 2 j : 1 规格说明 建立在接口概念之上,给服务的客户方和提供方之间定义一个服务的抽象 描述,不单是一系列可用的操作,还包括构件的行为期望、对构件状态的约束、 与构件的交互性,可以是形式化或非形式化的描述。 2 一个或多个实现 满足规格说明所定义的行为实现,可由实现者选择合适的实现方法,这个 行为可能是已存在的系统或软件程序,经过包装使它们符合规格说明。支持对 现有的或遗产系统的复用。 5 硕士学位论文 ! i ! r s 丁h s i s 3 受约束的构件标准 软件有一个存在的环境,既构件模型。它是一套构件支持服务和使用服务 的规则,三种流行的构件模型c o m ( t h ec o m p o n e n to b j e c tm o d e l ) 、e j b 、 c o r b a ( c o m m o n o b j e c tr e q u e s t b r o k e ra r c h i t e c t u r e ) 均支持构件之间的服务 发现、构件命名规则、名字服务、事务、永久存储、安全管理等标准方法。 4 包装方法 构件以包( 包装在一起的构件分组) 来提供系统功能单元,以注册形式来 完成安装。如m i c r o s o f t 环境下的注册表和注册工具,e j b 环境的r m i ( r e m o t e m e t h o di n v o c a t i o n 远程方法调用) 注册,e j b 提供的j n d i ( j a v an a m i n ga n d d i r e c t o r yi n t e r f a c e ,j a v a 命名和目录接口) 。 5 部署方法 构件可以被部署。通过创建构件的可执行实例,与实例发生交互来实现。 2 3 c b d 中的软件架构 软件架构由一些规则和协议组成,用来将不同的软件部分放在一起构成系 统整体。它从构件的角度定义了系统的体系结构,系统中各构件部分之间是如 何通信和实现互操作。它包括技术架构与应用架构两个部分。限于篇幅,在此 只引用并探讨一些常见的问题。 1 技术架构1 3 】 它定义了技术环境和软件基础设施,还要关心使用的技术。这些技术可以 与构件执行环境捆绑,或者由它们规定。构件的技术依赖性必须被隔开,构件 对环境呈现的方式需要被标准化。 从三个方面来看技术环境: ( 1 ) 构件执行环境 每个构件都是在一个构件执行环境中操作的,例如e j b 中的“容器”的概 念。容器提供一些服务,让构件显式地调用这些服务。 ( 2 ) 通信软件与接口服务 构件之间的通信需要以一种标准的方式来进行,而不应依赖构件执行环 6 硕士学位论文 州 s t e rst h e s l s 境。目前这类抽象的实现就是多种通信标准。也就是说,构件之间通过调用容 器提供的服务来间接使用接1 :3 服务与通信软件来达到相互间的通信操作。 ( 3 ) 标准构件服务 为了对使用不同技术开发的构件行为方式标准化,提供了标准构件服务。 如图2 一l 所示,使用跨构件环境的标准构件服务,使得用不同技术开发互操作 的构件变得容易。常用到的_ 些服务如下: 定位服务 事务管理 安全性 事件、通知和消息 图2 - 1 标准构件技术架构 2 应用架构【3 】 它包括了构件开发者和组装者面临的架构问题,技术架构处理那些多个应 用中共同出现的问题,而应用架构关注的是特定应用所需要的应用逻辑。为了 创建一个应用架构,需要定义:构件模型可选择的构件类型的清单,定义 构件如何实现交互;业务构件模型定义一组满足特定业务需要的构件 7 硕士学位论文 m a s t e r 5t h e s i $ 3 构件集成 c b d 方法的特点之一是构件的部署可以是由开发者以外的人员来完成, 构件可以用在多种上下文环境中。能够定制以符合所使用的特定上下文。 定制可以通过以下方式来实现【3 l : 提供配置数据,这些数据将作为构件运行时的参数。一旦构件配置好 了,配置选项必须保存,以便在构件使用时加载。 - 在构件中内建配置或定制服务。这种配置服务可能只在组装或部署时 提供,在运行时可以禁止或取消。 继承,构件可以定义一些抽象服务或模板服务( 抽象服务有一个接口, 但没有具体的实现过程,模板服务的实现过程调用了那些没有具体实现的抽象 服务) 。应用开发者可以通过继承该构件而创建一个新构件,为抽象服务、操 作提供实现代码。这通常需要一个面向对象的环境。 业务逻辑与数据访问逻辑分离:c b d 方法解决组装问题的一个原则, 通过分离改善可维护性,解除业务构件的变化与数据库的变化之间的耦合。 中介代码【2 】:c b d 处理数据不匹配时的组装技术,当两个构件之间存 在不同的数据格式时,通过中介代码来转换数据格式。中介代码将放在一个适 配器构件中,将两个构件互相隔离开。 8 硕士晕位论文 m a sr l r lsf ,f e s f s 第三章c b d 技术在手机短消息系统开发中的应用 3 1 手机短消息应用系统需求 1 项目描述 本项目构建一个娱乐性的短消息应用,联通手机用户或移动手机用户通过 发送短消息指令“s c1 1 2 0 ”( s c + 月+ 日) 到特服号5 1 8 0 0 ,来查找发送者的 生日秘密,短消息应用程序将生日秘密的内容( 包括四条:性格、健康、爱情、 事业) 传送到短消息发送者的手机上。 当发送指令“s q ”到特服号5 1 8 0 0 时,短消息应用程序将随机地从数据库 中取得一条哲理性数字签内容发送到用户的手机上。 2 系统需求 支持多种短消息a p i 接口协议,包括标准s g i p 、标准c m p p 、华为 s m e i d l l 、清华声讯c m p p 接口、合和盛视短消息接口、亚信c m p p 接口。 支持多种短消息业务的运行 系统能存储、转发短消息 系统具有日志记录功能 可方便地加入新的短消息a p i 接口协议 可方便地加入新的短消息业务 3 2 手机短消息应用系统的软件体系结构设计 下面以4 + 1 视图的方法来说明本软件的体系结构,以u m l 表达。 4 + i 视图的模型见图3 - 1 所示 9 硕士学位论文 1 ;t rsl 。i i 、卜 器糍s 嘶雌m p n 硌m , 嘲g r a n l m e m r s 黧鍪 钟”鼍端; s 酬槲嘶c = o m m u n i 晶6 0 赫 图3 - 14 + 1 视图模型 1 逻辑视图 如图3 - 2 所示,本系统c b s m a s ( c o m p o n e n t b a s e ds h o r tm e s s a g e a p p l i c a t i o ns y s t e m ) 逻辑上由四个子系统组成: c o m m u n i c a t i o ns u b s y s t e m 通信子系统: 通信子系统与短消息网关系统建立套接字连接,向短消息网关发送网关协 议p d u ( p r o t o c o ld a t au n i t ,协议数据单元) ,接受响应,或从短消息网关系 统接收网关协议p d u ,并发送响应。通信子系统发送的消息源来自数据服务予 系统提供的需处理数据,通信子系统接收到的有效消息p d u 通过调用数据服 务子系统进行存储。 b u s i n e s ss u b s y s t e m 业务子系统: 业务子系统的消息来源来自于数据服务子系统提供的需处理数据,对这些 数据进行处理( 根据消息中不同的命令字进行不同的业务逻辑处理) 后,业务 子系统将处理后的结果通过调用数据服务子系统进行存储。 d a t a s e r v i c es u b s y s t e m 数据服务子系统: 提供对底层的数据库进行操作的功能封装。供上层的通信子系统和业务子 系统来调用,为它们提供数据查询、增加、删除、修改服务。 t o o ls u b s y s t e m :工具子系统: 提供给数据服务子系统、通信子系统、业务子系统调用,用来记录系统的 事件目志。事件的级别有错误、警告、信息、跟踪几种,以便于开发人员及管 理维护人员进行日常维护与监控。 t n 硕士学位论文 i v l a s t e r 。si h e s i s 图3 2 逻辑视图 这四个子系统归属于三个层次,见图3 - 3 : 2 实现方法视图 业务子系统由c # 语言编写的可执行文件组成: 硕士学位论文 m a s t e rst ! f e s i s 厂、 7 、 通信子系统l业务子系统 业务处理层 j r 厂、 数据服务子系统 l 数据服务层 1 l、r ,r、 丁具子系统( 记录事件日志) l j 基础服务层 图3 - 3 子系统归属的三个层次 b i r t h d a y b u s i n e s s e x e 生日秘密业务应用程序 c h a t b u s i n e s s e x e 聊天说地业务应用程序 d a t a q i a n b u s i n e s s e x e 数字签业务应用程序 通信子系统由复用a p i 接口动态库及自行开发的标准协议接口来组成 u n i h u b a p i d u 合和盛视a p i 接口 q i n g h u a - a p i d l l 清华声讯a p i 接口 h u a w e i s m e l a p i d l l 华为a p i 接口 a s i a - c m p p a p i d l l 亚信a p i 接口 s t a n d a r d s g i p a p i - d l l 标准s g i p 协议a p i 接口 s t a n d a r d c m p p - a p i d l l 标准c m p p 协议a p i 接口 1 2 硕士学位论文 a sr e r j e s i s 数据服务子系统由复用开发语言v c + + 6 0 提供的a d o 接口及a d o n e t 构件来组成: m s a d o i o d l lv c + + 6 0 的a d o 开发接口( 经过包装提供给通信子系统 调用) a d o n e t n e t 提供的a d o 构件( 经过包装提供给业务子系统调用) 工具子系统由v c + + 6 0 提供的标准函数包装及n e t 提供的e v e n t l o g 构件 组成。 见图3 - 4 实现方法视图 图3 4 实现方法视图 3 过程视图 业务主进程开始后,启动各个业务的子处理( 可以是进程或线程) ,如 图3 5 ,业务子系统主过程状态图见图3 6 ,业务子系统状态图见图3 7 。 b i r t h d a y - b u s i n e s s 处理生日秘密业务点播信息 d a t a q i a n b u s i n e s s 处理数字签业务信息 ( c h a t b u s i n e s s 处理聊天说地业务信息、o t h e r b u s i n e s s 处理其它的 业务信息) 硕士学泣论文 s 丁f r s 丁l e s l s 3 ,8 s (n) & a r t 7 l i ,! i :,。 图3 - 5 业务子系统主过程视图 c o n t i n h e l e x c e p t i o n i o n l ys l e e pb 曲i 怕? j 。n o t h i n g r 8 s t 8 。ti h a se r r o r 盱一 1 “n j i 图3 - 6 业务子系统主过程状态图 通信主进程开始后,启动各个通信的子处理( 可以是进程或线程) ,如图 q i n g h u a - a p i 使用清华声讯a p ! 与网关进行通信的发送和接收线程 1 4 硕士学位论文 m | 、s 1 1 r 。st j 一、 s l e x l i f e x c e “i o n 、 ,一摹。七。 。“:罗蚀。“。e x 一。a 谂a ! ? t t 。n 一1 焉i 一 塑竺;| 一1 甄一一竺竺乌篙赫- 。 l j 一 h 日tr e c o r df i n i s h + 7 图3 7 业务子系统启动的业务子处理状态图 h u a w e i a p i 使用华为s m e i d l l 短消息a p i 与网关进行通信的发送和接 收线程 u n i h u b a p i 使用合和盛视a p i 与网关进行通信的发送和接收线程 a s i a - c m p p a p i 使用亚信c m p p 协议与网关进行通信的发送和接收线程 s t a n d a r d c m p p a p i 使用标准c m p p 与网关进行通信的发送和接收线程 s t a n d a r d s g i p a p i 使用标准s g i p 与网关进行通信的发送和接收线程 业务子处理的一般流程如图3 - 9 ( a ) 开始一个无穷循环,直到捕捉到异常,处理异常 ( b ) 产生一个数据服务子系统实例,根据不同的业务,产生对应的派生实 例 ( c ) 利用这个实例,查询通信表中未处理的记录,这个记录是接收到的m o 消息的消息正文 ( d ) 如果记录还没有产生,则休眠一下,释放资源,回至f j ( b ) ( e ) 如果有记录,根据不同的业务规则解析m o 消息,得到命令字及命令 内容 一 ,爿 硕士学位沧文 m 州ir sr ! i e s l s ( f ) 进行业务逻辑处理,如合法性检查,查询业务逻辑表等 ( g ) 查询业务表得到返回给手机的内容记录 ( h ) 将内容写入通信表中的回答表 ( i ) 休眠一下,释放资源,回n ( b ) ,o v i i j jc 甜i a nj t枷n) 3 冒t , ia 卦tl h lh u b l l “怒产v | 一一j 洲 图3 8 通信子系统主过程视图 ( a ) 通信发送子处理的一般流程如图3 1 0 ,发送线程状态图见图3 。1 l : ( b ) 初始化通信环境,建立套接字连接,发送鉴权包进行身份认证 ( c ) 开始一个无穷循环,直到捕捉到异常,处理异常 ( d ) 查询业务子处理写入的回答记录 ( e ) 如果记录还没有产生,则休眠一下,释放资源,回n ( c ) ( f ) 如果有记录,根据不同的协议p d u 规格对p d u 的各个字段填入值, 并打包成字符流( a p i 可自动打包) ( g ) 调用a p i 或使用套接字进行发送 ( h ) 判断发送结果是否成功 ( i ) 不成功则最多尝试三次,更新回答记录状态为不成功状态,如成功, 则更新为成功状态 ( j ) 休眠一下,释放资源,回到( c ) 1 6 f囊一 _ 坚二 一 一眈 二l删孑上= 挲上二乒 善葛i 一 丢丁 硕士学位论文 m a s t e rst h e s i s 、州) 、一 罂型 壹 要趣 厂一 臣l i 习 il 嘲器妒。i i i ! :l a r 4 曼一j l 际意。i 石品i | 7 1 只鼍! 一j 1一w i l i 京i 一、 ir 兰薹二 l 一一i ;矗 斋 图3 - 9 、i k 各处理线程一般流程 通信接收子处理的一般流程如图3 - 1 2 ,接收线程状态图见图3 - 1 3 : f a ) 初始化通信环境,建立套接字连接,发送鉴权包进行身份认证( 如果使 用a p i ,则本步不再进行) 饵) 开始一个无穷循环,直到捕捉到异常,处理异常 ( c ) 调用a p i 进行接收。或使用套接字进行接收 ( d ) 如果无内容,则休眠一下,释放资源,回到( b ) 1 7 硕士学位论文 m a s t e r st u i s 】s ( e ) 如果有接收内容,根据不同的协议p d u 规格及不同的消息类别对字节 流解包,对p d u 的各个字段赋值( a p i 可自动解包成结构,直接使用结构的 值) ( f ) 保存消息类别值到数据库中,如果是发送消息的回答,则根据返回值 更新发送记录的状态:如果是状态报告,则根据状态值更新发送记录的状杰报 告栏位 ( g ) 休眠一下,释放资源,回到( b ) 、r 州) 匪至习 鞴j _ tr 删; j ,一 l = 冀篓墅! 。j ,j 、 - 酱:i 等? 要。詈一 主。 9e ¥( , ,一 ! , 图3 一l o 通信发送线程一般处理流程 硕士学位论文 m a s t e r st i t e s i s 图3 1 1 通信发送线程状态图 j 一未j 图3 1 2 通信接收线程一般处理流程 1 9 硕士学位论文 m a s t e r 7s t h e s i s 图3 1 3 通信接收线程状态图 4 物理视图 c b s m a s 可以部署到p c 机、小型机上,与s g i p 网关、c m p p 网关、s p 接入平台进行通信交互,见图3 1 4 : 图3 1 4 物理视图 硕士学位论文 m a g t e r st h e s i s 5 用例图 图3 1 5 反映了系统边界用例,手机用户通过发送短消息经无线接入s m s c 再到运营商,运营商的网关将这个m o 短消息通过网关协议传送至s p i c p 的 短消息应用系统,s p i c p 应用系统解析并处理这笔短消息产生回答,通过m t 消息发送给运营商网关,再到s m s c ,经无线接出( 基站) 至用户手机。 图3 1 5 系统边界用例图 c b s m a s 向手机用户发送m t 消息流程见图3 1 6 图3 1 6c b s m a s 向手机用户发送m t 消息流程 2 l 硕士学位论文 m a s i e r s 丁h i ;s 】s 手机用户向c b s m a s 发送m o 消息流程见图3 - 1 7 图3 1 7 手机用户向c b s m a s 发送m o 消息流程 3 3 手机短消息应用系统中的构件设计 3 3 1 短消息开发平台结构原理 短消息平台由三个实体组成。s m s c ( s h o r t m e s s a g es e r v i c ec e n t r e ) 短消 息中心:s m g ( s h o r t m e s s a g eg a t e w a y ) 短消息网关;s p i c p 服务提供商。如 图3 1 8 所示:手机通过移动网络与s m s c 交互,s m g 与s m s c 通过s m p p 协 议进行交互,s p i c p 与s m g 通过网关协议交互。网关协议为s g i p 短消息网 关接口协议。 s m p p 协议有二个重要的会话流程【8 】: 1 _ s m g 向s m s c 提交短消息( m t :m o b i l et e r m i n a t e d 消息) 流程,如图 3 1 9 所示: 硕士学位论文 m a s t e rs1 :q e s 【s 图3 - 1 8 短消息平台组成 e ( s s m m g e ) s m s c b m t t r a n s m i t t e r _ r e s p ( 1 ) s u b m i t _ s m ( 2 ) s u b m l t _ s m _ r e s p ( 2 ) 。 s u b m ts i n ( 3 ) s u b m i t _ s i n ( 4 ) q u e r ys m ( 5 ) 一一,一 s u b m t _ s m ( 6 ) s u b m i ts mr e s p ( 3 ) s u b m i ts mr e s p ( 4 ) q u e r y _ s m _ r e s p ( 5 ) i s u b r 曲_ s m _ r e s p ( 6 ) 一一- 一一一一一 u n b i n t r e s p r 7 ) 图3 1 9s m g 向s m s c 提交短消息 s m g 网关向s m s c 发送b i n d _ t r a n s m i t t e r 协议p d u ,要求s m s c 批准一个 会话,在这个会话中s m g 向s m s c 提交一个短消息( s u b m i t s m ) ,这个短消 息会提交给手机,或提交给另一个s m g ,或者s m g 向s m s c 提交查询短消息 状态的请求p d u ( q u e r y _ s m ) ,在会话的最后。s m g 向s m s c 发送u n b i n d 协 议p d u ,标志s m g 的会话结束,这些消息请求都应该有相应的回答。 2 s m s c 向s m g 传送短消息( m o :m o b i l eo r i g i n a l 消息) 流程钔,如图 3 2 0 所示: 图3 2 0s m s c 向s m g 传送短消息 在本会话中,s m g 向s m s c 提交一个b i n dr e c e i v e 协议p d u ,要求s m s c 批准一个会话,在这个会话中,s m g 接收s m s c 得到的用户手机发给s m s c 的短消息,或另一个s m g 向s m s c 发送的短消息( 起s m g 之间的路由作用) , 向s m s c 作出消息接收的响应,最后,s m g 向s m s c 发送u n b i n d 协议p d u , 标志本次会话的结束。 对s u b m i ts m 可以不必马上回答一个s u b m i ts m ,同样,对resp d e l i v e rs m 也不必马上回答一个d e l i v e rs mr e s p ,这基于一个原理:短消息中心是一个存 储转发的平台,它会对接收和发送的短消息进行存储再转发出去,所以消息的 应答可以是异步的,不一定同步进行处理。 注:以上两个会话流程均已由运营商实现,不需要我们再作处理。 实体s m g 和s p i c p 之间的通信协议为网关协议,此处为s g i p 协议( c m p p 协议原理上基本一样) ,它同样有二个重要的会话流程: 3 s p i c p 向s m g 发送短消息流程【9 】,如图3 2 l 所示: 2 4 硕士学位论文 m a s t e r s 丁j 、h s p 溶户端)s m g 明务器端) r i w r 7 s 1 1 h m j 1 、 。 s ,m m r f 1 、 7 1 1 h m l t | 、一 s 小瑚丹r 铂: s 1 m m “r m r ,、 7 =s 。* _ t 、自:m i l n h i n d t t 小i n dr 敞n 7 图3 2 1s p i c p 向s m g 发送短消息 s g i p 规定s p 与s m g 是互为c s 结构,本会话中s p 充当客户端,s m g 充当服务端。 s p 向s m g 发出一个b i n d 协议p d u ,要求s m g 批准一个发送短消息的 会话,在接收到b i n d 的成功应答,且应答状态码为成功时,sp向resp s m g 发送s u b m i t 协议p d u 来提交要发送给手机用户的短消息,并异步接收 s u b m i t协议,判断发送是否成功,最后发送协议,标respp d uu n b i n dp d u 志一个会话的结束。s m g 规定为存储,转发的消息处理平台。 4 s p 向s m g 请求接收短消息会话流程【9 】,如图3 2 2 所示: s m g 溶户端)s p 0 r 务器端) r ;h d 口h ” n d * - rr ,1 、 1 n l h 而一 r 蚰n n 一、: n i h r 自m * ,、 7 r nr m ,m t t m ,r 一 7 图3 2 2s p 向s m g 请求接收短消息 2 5 硕士学位论文 、1 汀e r sr1 1 【b f j s m g 向s p 发出一个b i n d 协议p d u ,要求s p 批准一个接收短消息的会 话,在接收到b i n dr e s p 的成功应答,且应答状态码为成功时,s m g 向s p 发 送d e l i v e r 协议p d u 来提交手机用户向s p 点播的服务短消息,并异步接收 d e l i v e rr e s p 协议p d u ,同时,s m g 还会向s p 发送短消息的状态报告,告诉 s p 发送给手机用户的短消息是否被用户手机成功接收或处于某状态中( 等待 接收、用户未开机) 。s m g 判断传送是否成功,最后s m g 发送u n b i n d 协议 p d u ,标志一个会话的结束。 注:对于未使用a p i 的情况下,s g i p 、c m p p 协议均需要各自实现一套两 个会话流程,其中的p d u 字段定义及打包、解包、发送、接收的应答均需要 代码化。已有a p i 的情况,会话管理已由a p i 内部实现了。 为了进一步说明本系统复用s p 及运营商提供的动态库的方法,下面以s p 级协议:合和盛视短消息平台协议中的通信流程简单地作一介绍,以辨别与标 准协议的异同点。 连接方式:协议不限制客户端连接合和盛视平台

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论