本文主要是介绍SDT从这里出发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从这里开始
SDT(Service Development Tool)是一个基于SNE(Service Network Environment)平台、定位于电信业务开发全流程的开发工具,具有业务建模、业务开发、代码生成和编译调试等功能。它采用图文并排的编码方式,支持图形化调试功能,极大地提高了人们开发电信业务的效率。
- 约定
SDT(Service Development Tool)是基于Eclipse平台开发的,因此部分功能的使用是通用的。关于SDT与Eclipse通用功能部分的内容此处不再做详细介绍,如需了解相关内容请参见《Eclipse Online Help》。 - SDT功能简介
SDT是定位于业务开发全流程的开发工具,它提供的功能包括多种编辑器、业务SDK、工程管理、业务编码、业务编译、业务调试、业务部署、版本管理等。 - 基本 概念介绍
本节主要阐述了SDT使用过程中涉及到的一些重要概念,该部分内容有助于您更深层次地理解SDT。 - 业务开发流程
SDT能够支持业务开发的全流程,包括:业务建模、业务开发、代码生成、编译调试等。
基本概念介绍
- Service
Service是一个可管理的功能单元,能够提供服务或调用其它远程服务。
Service的形态有以下两种:
Platform Services:基础平台提供的公共服务和功能领域的服务。
Application Services:领域平台之上的最终业务应用。
Service创建了Session并管理Session的生命周期,一个Service可以创建多个Session。Service在SDT中是以Service类的方式体现,整个业务中必须有一个主Service。Service可以从接口和远程接口多继承,只能从Class单继承。
Service固定有一个RunProc方法,作为远程调用消息的统一处理入口,如下图所示。
Service图元
一个工程有且必须只有一个主Service,SNE在加载业务时会创建主Service对象。“service view” 下的Service为主Service,“service view” 的Package下的Service 为辅Service。
- Session
Session是负责处理具体事务的分布式对象(如处理智能呼叫)。Session由Service负责创建,其生命周期由Service管理。
Session被创建后即可独立处理事务。Session可以包含其它的Session,例如在多方呼叫中存在的主会场Session和子对话Session。
Session在SDT中以Session类的方式体现,整个业务中可有0~N个Session。
Session可以从接口和远程接口多继承,只能从Class单继承。
Session固定有一个RunProc方法,作为远程调用消息的统一处理入口,如下图所示。
Session图元
- SessionProxy
Session代理和本地类的区别在于,Session代理可以继承IDL接口并可采用多种方式实现继承的接口。
Session代理把Service/Session的某些公用功能分离出来,让Session代理对象帮助实现这些分离出来的功能。因此该类型实例必 须由Service/Session创建,一般只在Service/Session实例中使用。
- IDL接口
IDL接口 <script src="public_sys-resources/ExpandCollapse.js" type="text/javascript"></script>
IDL(Interface Definition Language)是用来描述服务调用端和服务实现端之间的调用约定的接口语言,如详细描述了调用操作的参数个数、参数类型及参数顺序等。
IDL编译器会根据IDL定义生成客户端Stub和服务端Skeleton。
- Stub相当于服务实现端的一个代理,通过它把请求发送到服务实现端。
- Skeleton把调用端的请求转发到具体的接口实现逻辑。
通过IDL接口,业务开发人员就可以像使用本地调用那样调用远端服务。
目前SDT中仅实现了JAVA代码的映射。
下面是一个IDL定义的简单例子。
module calculator { interface icalSession { long add(in long x,in long y); long sub(in long x,in long y); long mul(in long x,in long y); long div(in long x,in long y); }; interface icalService { icalSession creatsession(in string ID,in string passwd); }; };
- module calculator:定义模块,此模块的名称为calculator。
- interface icalSession:定义接口,此接口的名称为icalSession。
- long add(in long x,in long y):定义接口方法,该方法返回一个long值。
- long sub(in long x,in long y):定义接口方法,该方法返回一个long值。
- long mul(in long x,in long y):定义接口方法,该方法返回一个long值。
- long div(in long x,in long y):定义接口方法,该方法返回一个long值。
- interface icalService:定义接口,此接口的名称为icalService。
- icalSession creatsession(in string ID,in string passwd):定义接口方法,该方法返回icalSession接口。
- 类图
类图的默认名是“main” 。用户可以根据自己的需要灵活使用类图。
用户在类图中定义Package、Class和Interface之间的关系。包里还可定义新的Package、Class、Interfac、类继承接口。
用户在类图中定义Package、Service、Session和SessionProxy之间的关系。包里还可定义新的Package、Service、Session和SessionProxy。
- 状态图
状态图 <script src="../public_sys-resources/ExpandCollapse.js" type="text/javascript"></script>
状态图强调的是事件驱动对象的动作,由状态、迁移、事件组成。状态图包含状态及状态之间的关系,按状态组织,用于描述指定对象的状态行为。
状态图相当于是加了IDL调用和处理的活动图。SDT的状态图与UML(Unified Model Language)的状态图有一定差异,Service Call图元用于IDL调用,Normal State图元用于等待IDL调用并根据调用接口进行状态迁移,Reusable State图元是复合状态图元,可以调用子状态机。
- 活动图
活动图 <script src="../public_sys-resources/ExpandCollapse.js" type="text/javascript"></script>
活动图演示了系统中的功能流,可以在业务模型中显示业务工作流,在收集需求时显示某一使用案例中的事件流。在活动图中定义了工作流的开始部分、结束部分、工作流中发生的活动以及这些活动的发生顺序等。
活动图是对普通方法的一种实现方式。活动图相当于是图形化的JAVA代码,与UML的活动图差别较大,与流程图更加类似,这样设计的目的是为了方便生成代码。活动图中不能调用IDL接口,也不能等待其它业务的IDL请求。
活动图与状态图的区别在于:
- 状态图强调在事件的驱动下,对象状态的迁移。活动图强调系统中的处理流程,它与状态图的主要区别就是它不能处理事件。
- 状态图不可以使用script方式来代替,而活动图则可以使用script方式来代替。
- 状态
- 接口实现方法
- 接口调用方法
- 事件类
- 接口
- 事件包
这篇关于SDT从这里出发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!