资源描述
中国联通
汽车信息化CUTP
TSSP股票集成
技术文档
中国联通系统集成有限公司
2011年4月
内部修改纪录
日期
版本
说明
作者
目 录
1 本文范围 4
2 CUTP简介 4
2.1 CUTP 4
2.2 CUTP组成 4
2.3 CUTP能力 4
2.4 CUTP组件与架构 5
3 CUTP-TSSP 6
4 股票WebService接口 8
4.1 程序架构示意图 8
4.2 WebService函数调用说明 8
4.2.1 表类相关的函数说明 8
4.2.2 个股查询类相关的函数说明 12
4.2.3 资讯类的函数说明 20
4.2.4 板块分析以及板块相关的函数说明 21
4.2.5 股市风云榜(活动报表)相关的函数接口 22
4.2.6 选股功能相关的函数接口 23
5 附表一:报表的ColID的取值 27
6 附表二:支持排序的ColID内容 27
7 附表三:板块分析中用到的AnaColID 28
8 附表四:特殊属性值 28
1 本文范围
本文所描述的是:CUTP-TSSP对后端股票信息提供商进行整合的技术实现。
本文是Telematics业务中“股票”业务的TSSPßàCP的接口、测试开发指导文档。具体读者为CUTP平台开发与系统集成、业务与技术设计人员。
2 CUTP简介
2.1 CUTP
中国联通汽车信息化模型(China Unicom Telematics Pattern)是中国联通为创新服务模式、形成差异化服务能力、提升企业在Telematics的行业影响力和竞争力,基于对行业的理解、完善的流程、丰富的运营经验而提出的Telematics服务支撑模型。
通过对汽车信息化服务平台研究,结合联通自身特点,制定了符合汽车厂商需求的Telematics平台模型,即CUTP(ChinaUnicom Telematics Pattern)。
2.2 CUTP组成
CUTP包括2个主要部分:CUTP-TSP与CUTP-TSSP,CUTP-TSP是车载终端通过无线网络访问后台以获取信息服务的平台,CUTP-TSSP为TSP提供内容聚合,接口适配,供应商管理,业务管理,计费结算等运营支撑;
2.3 CUTP能力
CUTP-TSP的主要能力:车载终端的接入与鉴权、业务分发、汽车工业数据与业务数据的适配与转换、客户数据管理;
CUTP-TSSP的主要能力:外部服务商资源整合、运营管理、运营支撑;
2.4 CUTP组件与架构
图表 21CUTP 系统架构图
CUTP的5个主要部分组成:Telematics单元(TU)、接入网关(AG)、平台路由(PR)、转换适配器(CA)和业务集成中心(SIC),所有组件都通过标准的接口进行连接。
TU-AG-PR之间是双向的通信,以维持服务的适时性。后端通信设计的操作基本上是从左到右使用触发机制,从右向左提供数据。
l Telematics单元(TU)
TU一般集成在汽车上,但也可以是个人导航设备(PND)的一部分或移动电话。TU通过无线网络与PR进行通讯。
l AG(Access Gateway)
TU平台接入网关,是车机通信数据经移动通信网络进入支撑平台的接入组件。它具有数据、语音、短彩信接入的功能。
l PR(Platform Route)
通过引入PR,TU和后端获得稳定的接口。PR提供这种稳定的接口给TU,并作为一个服务转发器在TU和各自的CA之间派发交通数据和语音。
PR通过接口(PR-SIC)沟通一个或几个SIC。PR的RPR通过接口以确定目标SIC并触发事件。
l CA(Converter & Adaptor)
CA解码车载信息中的CUTP业务数据,并补充客户数据和车辆信息,然后提供符合业务标准的数据给SIC;反过来,CA对提供给TU的业务数据再进行编码,以符合TU的标准;
l SIC(Service Integration Center)
SIC提供实际的服务,是CUTP-TSSP的实现。并作为对所有的需要执行服务发布的系统的集成点。
SIC的作用主要有两个:
第一是要发布语音和数据服务给TU;
第二是发布内容,诸如地图数据和景点(POI)内容给CC。一个SIC能够连接多个内容提供商和CC。
3 CUTP-TSSP
Telematics服务的核心,是将更多对汽车驾驶有帮助的咨询,方便快捷的提供给驾驶者,中国联通在资源整合方面,有着突出的优势。中国联通自身具有很多信息和服务资源,包括了呼叫中心、在线音乐、在线视频、在线预定等,都有专门的子公司提供全面完善的服务;同时,联通还有多年积累的数以百计的签约内容、服务提供商,可以很快整合到汽车信息化服务中来,并且有效的管理;结合Telematics服务的专业性,联通还和本领域内的领军企业进行了合作洽谈,这些资源的整合对于Telematics服务的落地至关重要,而与中国联通合作,也大大节省了相关资源的整合工作量。
同时,联通提出了独一无二的TSSP服务模式,即Telematics Service Support Platform,平台通过开放的、统一的、标准化的接口,经过适配工作,与各内容、服务提供商相对接,可以实现新的服务内容的快速接入,并通过平台核心组件SIC进行统一有效的管理,并能完成计费结算等关键工作。同时TSSP平台除了可以为联通TSP平台提供服务,还可以与其他第三方的TSP平台对接,辅助其他服务商迅速具备相关业务内容的服务能力。
图表 31CUTP-TSSP系统架构图
4 股票WebService接口
4.1 程序架构示意图
4.2 WebService函数调用说明
4.2.1 表类相关的函数说明
1、获取某个板块的商品数量[主要用于报表分页控制]
public int getGroupStocksCount(int Market , int GroupID)
参数说明:Market 市场序号 0-沪 1-深 2-香港
GroupID 板块类型编号,与市场组合使用,能够唯一确定一个板块。列举几个常用的板块
Market-0 GroupID-0 :上证指数板块 Market-0 GroupID-1 :上证A股板块
Market-0 GroupID-2 :上证B股板块 Market-0 GroupID-3 :上证基金板块
Market-0 GroupID-4 :上证债券板块
Market-1 GroupID-0 :深证指数板块 Market-1 GroupID-1 :深证A股板块
Market-1 GroupID-2 :深证B股板块 Market-1 GroupID-3 :深证基金板块
Market-1 GroupID-4 :深证债券板块 Market-1 GroupID-8 :深证中小企业板块
Market-1 GroupID-9 :深证创业板板块
Market-2 GroupID-0 :香港指数板块 Market-2 GroupID-1 :香港主板
Market-2 GroupID-4 :香港创业板块
返回值: 该板块所拥有的商品总数,无商品或者错误的板块ID,返回0。
1.1、某个市场内,板块组合的商品数量[用于多个系统板块的组合报表](2005.12.15新增)
public int getMultiGroupStocksCount(int Market , string GroupIDs)
参数说明:Market市场序号 0-沪 1-深 2-香港
GroupIDs 需要组合的板块组,之间用”|”分割,比如:深圳A股,B股,中小板组合,则为”1|2|8”
1.2、取得任意系统板块组合后的商品总数
public int getMultiGroupStocksExCount(string GroupRange)
参数说明:GroupRange : 板块范围,定义:市场,板块序号$市场,板块序号
2、获取报表单页内容[主要用于排序类报表的显示]
public string[] getRptOnePage(int Market , int GroupID , int iBeginNo , int iLength , string ColIDs, string sortId , bool AscFlag )
参数说明:Market 市场序号 , GroupID 板块类型编号 意义同上
iBeginNo 报表第一行的序号,从0开始
iLength 需要返回的条数
ColIDs 需要返回哪些列数据的内容,用"|"分隔,具体ColIDs与实际字段的对应关系,见附表1
SortId 需要对那个字段进行排序,如果只需要对商品的初始顺序进行排序,该值留空字符串(有效的排序字段,请参考附表2)
AscFlag 排序字段的升降序标记 true-升序 false-降序
返回值:一个string表示一个商品,一个商品字段之间用”|”,进行分隔,如果某个字段当前无效且不予揭示,则用”---”表示。实际能有多少商品可以返回,请参照数组的长度,可能iBeginNo+iLength长度超过某个板块所有商品数,则返回iBeginNo到最后一条的商品。
2.1、获取某个市场报表板块组合的报表内容[主要用于市场内板块组合的报表](2005.12.15新增)
public string[] getMultiGroupRptOnePage(int Market , string GroupIDs , int iBeginNo , int iLength , string ColIDs, string sortId , bool AscFlag )
参数说明:Market 市场序号 , GroupIDs 板块组 意义同1.1
iBeginNo 报表第一行的序号,从0开始
iLength 需要返回的条数
ColIDs 需要返回哪些列数据的内容,用"|"分隔,具体ColIDs与实际字段的对应关系,见附表1
SortId 需要对那个字段进行排序,如果只需要对商品的初始顺序进行排序,该值留空字符串(有效的排序字段,请参考附表2)
AscFlag 排序字段的升降序标记 true-升序 false-降序
返回值:一个string表示一个商品,一个商品字段之间用”|”,进行分隔,如果某个字段当前无效且不予揭示,则用”---”表示。实际能有多少商品可以返回,请参照数组的长度,可能iBeginNo+iLength长度超过某个板块所有商品数,则返回iBeginNo到最后一条的商品。
2.2、取得任意系统板块组合后的商品一页列表
public string[] getMultiGroupRptExOnePage(string GroupRange , int iBeginNo , int iLength , string ColIDs, string sortId , bool AscFlag )
参数说明:GroupRange :板块范围,定义:市场,板块序号$市场,板块序号
iBeginNo 报表第一行的序号,从0开始
iLength 需要返回的条数
ColIDs 需要返回哪些列数据的内容,用"|"分隔,具体ColIDs与实际字段的对应关系,见附表
SortId 需要对那个字段进行排序,如果只需要对商品的初始顺序进行排序,该值留空字符串(有效的排序字段,请参考附表2)
AscFlag 排序字段的升降序标记 true-升序 false-降序
返回值:一个string表示一个商品,一个商品字段之间用”|”,进行分隔,如果某个字段当前无效且不予揭示,则用”---”表示。实际能有多少商品可以返回,请参照数组的长度,可能iBeginNo+iLength长度超过某个板块所有商品数,则返回iBeginNo到最后一条的商品。
3、综合排名的优化处理[主要为了能够一次交互返回若干个综合排名的内容,通过函数getRptOnePage多次调用也能达到同样的效果]
public string[] getMultiSort(int Market , int GroupID , string MultiSortIDs)
参数说明:Market 市场序号 , GroupID, 板块类型编号 意义同上
MultiSortIDs 综合排名的序号,多个综合排名之间用”|”分隔,MultiSortIDs的对应关系: 涨幅排名(1):跌幅排名(2):总金额排名(3):震幅排名(4):委比排名前6(5):委比排名后6(6)
返回值:一个string表示一块的综合排名(最多返回六个商品)商品与商品之间用"$"进行分割,商品的字段项内容之间用"|"分割。返回顺序为:商品名|商品代码|最新价|昨收价|排名字段的值$商品名|商品代码|最新价|昨收价|排名字段的值。
4、获取指定商品列表的指定字段数值内容[自选股报表]
public string[] getCustomRpt(string ColIDs,string Stocks)
参数说明:ColIDs 字段列的内容,用”|”,ColID对应关系参考附表1
Stocks 需要查询的商品列表,格式为 市场|代码$市场|代码,比如 0|600000$0|600001
返回值:一个string表示一条商品的数据,格式为:商品字段|商品字段
如果传入的商品中有无效的商品,则该商品所对应的string为空字符串
5、获取全部市场的时间信息
public string[] getAllDateTime()
返回值:一个string表示一个市场的时间,时间字符串的格式为 MMDD HH:SS
string[] 下标0,表示上海市场的时间
下标1,表示深圳市场的时间
下标2,表示香港市场的时间(如果有的话)
6、获取系统板块中商品的个数(上海板块,纺织板块…..这一类内容)[2006.04.10新增]
public int getSysBlockStockCount(string BlockName)
参数:需要查询的板块名称,例如:地域板块|上海板块 或者 上海板块
返回值:该板块所有的商品个数
7、获取单页系统板块报表内容[主要用于排序类报表的显示]
public string[] getSysBlockRptOnePage(string BlockName , int iBeginNo , int iLength , string ColIDs, string sortId , bool AscFlag )
参数说明:BlockName需要查询的板块名称,例如:地域板块|上海板块 或者 上海板块
iBeginNo 报表第一行的序号,从0开始
iLength 需要返回的条数
ColIDs 需要返回哪些列数据的内容,用"|"分隔,具体ColIDs与实际字段的对应关系,见附表1
SortId 需要对那个字段进行排序,如果只需要对商品的初始顺序进行排序,该值留空字符串(有效的排序字段,请参考附表2)
AscFlag 排序字段的升降序标记 true-升序 false-降序
返回值:一个string表示一个商品,一个商品字段之间用”|”,进行分隔,如果某个字段当前无效且不予揭示,则用”---”表示。实际能有多少商品可以返回,请参照数组的长度,可能iBeginNo+iLength长度超过某个板块所有商品数,则返回iBeginNo到最后一条的商品。
8、获取系统板块中,涨跌停股票的个数
public int getRiseDownStopStockCount(string GroupRange , int DataType)
参数说明:GroupRange:板块范围,定义:市场,板块序号$市场,板块序号
DataType :涨跌停范围,0 全部 , 1 涨停 , 2 跌停
返回值:有多少家股票涨跌停
9、获取一页系统板块中,涨跌停的股票列表
public string[] getRiseDownStopRptOnePage(string GroupRange , int DataType , int iBeginNo , int iLength , string ColIDs, string sortId , bool AscFlag )
参数说明:GroupRange:板块范围,定义:市场,板块序号$市场,板块序号
DataType :涨跌停范围,0 全部 , 1 涨停 , 2 跌停
iBeginNo 报表第一行的序号,从0开始
iLength 需要返回的条数
ColIDs 需要返回哪些列数据的内容,用"|"分隔,具体ColIDs与实际字段的对应关系见附表1
SortId 需要对那个字段进行排序,如果只需要对商品的初始顺序进行排序,该值留空字符串(有效的排序字段,请参考附表2)
AscFlag 排序字段的升降序标记 true-升序 false-降序
返回值:一个string表示一个商品,一个商品字段之间用”|”,进行分隔,如果某个字段当前无效且不予揭示,则用”---”表示。实际能有多少商品可以返回,请参照数组的长度,可能iBeginNo+iLength长度超过某个板块所有商品数,则返回iBeginNo到最后一条的商品。
10、获取某一个或者某一组系统板块中,上涨,下跌,平盘的家数(2007.12.21增加)
public SOAPStockGroupOverview getMultiGroupOverview(string GroupRange)
参数说明:GroupRange:板块范围,定义:市场,板块序号$市场,板块序号
返回值:
//股票系统板块的全局概览,包含有 上涨家数,下跌家数,平盘家数,未开盘家数
public class SOAPStockGroupOverview
{
public int RiseStockCount ;//上涨股票家数
public int DropStockCount ;//下跌股票家数
public int BalanceStockCount ; //平盘的股票家数
public int UnvalidStockCount ; //未开盘的股票家数,一般与平盘家数合并显示
}
4.2.2 个股查询类相关的函数说明
1、代码对照的查询(根据输入的某个特征代码,查询符合条件的商品,先期只支持股票代码,以后再加入拼音匹配,等价于客户端程序中的智能键盘)
public string getStockCheck(string StockPara)
参数说明:StockPara 需要查询用的特征码
返回值:匹配到的商品类型,返回字串为 市场|代码|商品名$市场|代码|商品名,比如 0|000001|上证指
数$1|000001|深发展A , 如果未匹配到商品,返回空字符串,最多仅返回前100项匹配的内容。
备注:StockPara可以为股票的代码,股票的中文名称,股票名称拼音的首字母。为了避免产生大量的返回,对于StockPara做了一些限制。如果StockPara为股票代码,需要长度大于等于四位,四位的时候,港股优先出现。StockPara为股票名称或者拼音首字母的时候,需要长度大于等于三位。
如果是输入四位的股票代码,则优先返回香港市场匹配的商品,其次再沪深
1.1、public string getStockCheckLimit(string StockPara, int iMaxReturn)
函数功能同前一个,增加一个参数,允许最多的返回项目数
2、获取商品的含五档的动态数据
public stkCommDetailDynData getStockDetailDynData(string StockCode , int Market)
参数说明:StockCode 商品代码 Market 商品所属的市场
返回值: public class stkCommDetailDynData
{
public byte m_btSpFlag ;//一些控制标示 , 目前 0x01位(是否有效商品) , 0x02位(1 普通商品,0 指数)
public string m_strCode ;//商品代码
public string m_strName ;//商品名称
public string m_strClose ;//商品昨收
public string m_strOpen ; //商品今开
public string m_strNowPrice ;//现价
public string m_strHighPrice ;//最高价
public string m_strLowPrice ;//最低价
public string m_strVolume ;//成交量,单位 手[港股为股]
public string m_strAmount ;//成交金额,单位 元[港股为 元港币]
public string m_strLastVolume ;//现量,单位 手
public string m_strRiseFallPrice ;//上涨下跌价格
public string m_strRiseFallRate ;//上涨下跌比率 *100 , 单位 %
public string m_strDataNowTime ;//数据的时间
public string m_strAvgPrice=""; //均价
public string m_strQRR = "" ;//量比QuantityRelativeRatio
public string m_strShiYing = "" ;//市盈率
public string m_strWeiBi = "" ;//委比
public string[] m_strBidPrice ;//五档买盘价格,0-4对应买一到买五,下同
public string[] m_strBidVolume ;//五档买盘量
public string[] m_strAskPrice ;//五档卖盘价
public string[] m_strAskVolume ;//五档卖盘量
} 如果某值无效,用”---”表示
1.1、 扩充的获取商品的含五档的动态数据(包含内外盘数据以及一些附加属性)[新增:2005.12.12]
public stkCommDetailDynDataEx getStockDetailDynDataEx(string StockCode , int Market)
参数说明:StockCode 商品代码 Market 商品所属的市场
返回值: public class stkCommDetailDynDataEx
{
public byte m_btSpFlag ;//一些控制标示 , 目前 0x01位(是否有效商品) , 0x02位(1 普通商品,0 指数)
public string m_strCode ;//商品代码
public string m_strName ;//商品名称
public string m_strClose ;//商品昨收
public string m_strOpen ; //商品今开
public string m_strNowPrice ;//现价
public string m_strHighPrice ;//最高价
public string m_strLowPrice ;//最低价
public string m_strVolume ;//成交量,单位 手[港股单位为 股]
public string m_strAmount ;//成交金额,单位 元,保留两位小数[港股为 元港币]
public string m_strLastVolume ;//现量
public string m_strRiseFallPrice ;//上涨下跌价格
public string m_strRiseFallRate ;//上涨下跌比率 *100 , 单位 %
public string m_strDataNowTime ;//数据的时间
public string m_strAvgPrice=""; //均价
public string m_strQRR = "" ;//量比QuantityRelativeRatio
public string m_strShiYing = "" ;//市盈率
public string m_strWeiBi = "" ;//委比
public string[] m_strBidPrice ;//五档买盘价格
public string[] m_strBidVolume ;//五档买盘量
public string[] m_strAskPrice ;//五档卖盘价
public string[] m_strAskVolume ;//五档卖盘量
//===一下五个成员变量属于新增加的内容
public string m_strOtherInfo1 ; //附加信息一
public string m_strOtherInfo2 ; //附加信息二
public string m_strAllBidVolume ;//内盘
public string m_strAllAskVolume ;//外盘
public int m_iGroup ; //所属的系统板块
}
备注:OtherInfo1 与 OtherInfo2属性所具体代表的含义,参见附表四
2.3、扩充的可用于查询股票财经数据,涨跌停数据以及年最高最低数据的接口
public stkExEcnoInfoData getStockEcnoExInfo(string StockCode , int Market)
参数说明:StockCode 商品代码 Market 商品所属的市场
返回值:
//商品的财经类以及扩展的数据
public class stkExEcnoInfoData
{
public string m_strZGB ; //总股本
public string m_strLTGB ; //流通股本,用于计算总市值或者换手率
public string m_strMGJZC ; //每股净资产,可用于计算市净率
public string m_strNDMGSY ; //年度每股收益,可用于计算市盈率
public string m_strHighStopPrice ; //涨停价
public string m_strLowStopPrice ; //跌停价
public string m_str52WeekLowPrice ; //52周最低价
public string m_str52WeekHighPrice ; //52周最高价
}
3、获取明细的最后几条数据
public tickData[] getTickData(string StockCode , int Market , int iMaxLength)
参数说明:StockCode 商品代码 Market 市场
iMaxLength 最多返回多少条,-1 表示返回所有的明细(不推荐如此使用,会大量增加流量)
返回值: public class tickData
{
public uint Time ; //时间,HH*60+MM
public string Price ; //成交价格
public string Volume ; //成交量
public string PBuy ; //委买价格
public string PSell ; //委卖价格
}
能够返回多少条,以实际返回的数组长度为准,反序返回,即最新的成交明细在前
4、获取商品即时走势图。(gif格式图)
public byte[] getStockDynPic(string StockCode , int Market , int Width , int Height)
参数说明:StockCode 商品代码 Market 市场 , Width 图片宽度[150-2000]之间 Height[100-2000]之间
返回值:gif图片流的字符数组,调用端只需要把该byte[]直接二进制Response到浏览器,并注明Content为 image/gif 即可,无匹配的商品,byte[]返回为null
4.1、获取商品即时走势图,可叠加另一只股票。(gif格式图)
public byte[] getStockDynPicEx(string StockCode , int Market , string AdditionalStockCode , int AdditionalMarket , int Width , int Height)
参数说明:StockCode 商品代码 Market 市场 , Width 图片宽度[150-2000]之间 Height[100-2000]之间
返回值:gif图片流的字符数组,调用端只需要把该byte[]直接二进制Response到浏览器,并注明Content为 image/gif 即可,无匹配的商品,byte[]返回为null
4.2、获取商品的走势数据内容。(20071119增加接口)
public SOAPStockTrendReturn getStockTrendData(string StockCode , int Market)
参数说明:StockCode 商品代码 Market 市场
返回值:
//股票走势数据的返回结果类
public class SOAPStockTrendReturn
{
public byte Status ; // 0 表示未查询到商品信息 1 表示查询到有商品的信息内容
public string StockName ; // 股票名称
public string StockCode ; // 股票代码
public int StockMarket ; // 股票所在市场
public int iStockGroup ; // 股票所在的系统板块编号
public string StockGroupName ; // 股票所在的系统板块名称
public uint StockAttributes ; // 股票的显示特征属性 目前:(m_stkInfo.StockAttributes & 0x20)!=0 表示需要ETF需要显示IOPV线
public int PriceRate ; // 价格放大倍率
public int TradeUnit ; // 每手股数
public int DeciNum ; // 股价显示的小数位数
public string DateTimeStr ; // 时间日期字符串
public stkCommDetailDynDataEx pDynObj ; // 动态数据的信息集合
public int TrendDataItemCount ; // 走势数据的返回条数
public SOAPOneTrendData[] TrendItems ; // 走势数据内容
}
// 一条走势线的数据
public class SOAPOneTrendData
{
public uint NowPrice ; // 现价,需要除以PriceRate
public ushort Time ; // 时间 HH*60+MM
public double Volume ; // 总成交量(单位:股)
public double Amount ; // 总成交金额(单位:元)
public double TotalBidVolume ; // 总委买量(指数有效),单位:股
public double TotalAskVolume ; // 总委卖量(指数有效)
public int JjJz ; // 基金净值(ETF的IOPV线,价格*PriceRate),如果为综指,表示SEC5(非加权平均值)
}
public class stkCommDetailDynDataEx
{
public byte m_btSpFlag ;//一些控制标示 , 目前 0x01位(是否有效商品) , 0x02位(1 普通商品,0 指数)
public string m_strCode ;//商品代码
public string m_strName ;//商品名称
public string m_strClose ;//商品昨收
public string m_strOpen ; //商品今开
public string m_strNowPrice ;//现价
public string m_strHighPrice ;//最高价
public string m_strLowPrice ;//最低价
public string m_strVolume ;//成交量,单位 股
public string m_strAmount ;//成交金额,单位 元(港币)
public string m_strLastVolume ;//现量
public string m_strRiseFallPrice ;//上涨下跌价格
public string m_strRiseFallRate ;//上涨下跌比率 *100 , 单位 %
public string m_strDataNowTime ;//数据的时间
public string m_strAvgPrice=""; //均价
public string m_strQRR = "" ;//量比QuantityRelativeRatio
public string m_strShiYing = "" ;//市盈率
public string m_strWeiBi = "" ;//委比
public string[] m_strBidPrice ;//五档买盘价格
public string[]
展开阅读全文