CN108255616B - wind数据在C#和java系统间通信的方法 - Google Patents

wind数据在C#和java系统间通信的方法 Download PDF

Info

Publication number
CN108255616B
CN108255616B CN201711242580.5A CN201711242580A CN108255616B CN 108255616 B CN108255616 B CN 108255616B CN 201711242580 A CN201711242580 A CN 201711242580A CN 108255616 B CN108255616 B CN 108255616B
Authority
CN
China
Prior art keywords
data
wind
socket
client
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711242580.5A
Other languages
English (en)
Other versions
CN108255616A (zh
Inventor
王玉惠
牟金震
张晓辉
冯星凯
应竣棫
吴庆宪
陈谋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201711242580.5A priority Critical patent/CN108255616B/zh
Publication of CN108255616A publication Critical patent/CN108255616A/zh
Application granted granted Critical
Publication of CN108255616B publication Critical patent/CN108255616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Abstract

本发明提出基于Socket实现wind数据在C#和java系统间通信的方法,包括步骤:建立C#系统与wind数据库之间的联系:将wind数据库支持的C#应用程序接口编译后生成一个dll可执行文件;在C#端建立一个新项目,在新项目中添加引用所述dll可执行文件,在新项目中自定义一个用于查询wind数据的wind量化数据查询接口;定义数据转化格式,将通过wind量化数据查询接口查询到的数据进行格式转换;服务端与客户端通过Socket建立TCP连接,并以xml报文格式进行数据交互。本发明实现了Java系统可以随时获取wind数据的功能,弥补了wind不支持Java接口技术的缺陷。

Description

wind数据在C#和java系统间通信的方法
技术领域
本发明涉及数据通信领域,尤其是wind数据在C#和java系统间通信的方法。
背景技术
万得信息技术有限公司(下称wind)是中国大陆领先的金融数据、信息服务企业,wind信息包括中国绝大多数证券公司、基金公司、保险公司、银行和投资公司等金融企业,在国际上已经被中国证监会批准的合格境外机构投资者(QFII)中的众多机构都是 wind的资讯客户。因此,大量中英文媒体、研究报告、学术论文等经常引用wind资讯提供的数据,使得wind成为目前股票信息的权威数据库,因此wind数据库数据及时准确,查找、分析和图形功能强大,支持在Excel动态提取数据,是经济学家、策略分析师、行业研究员必备的数据库系统,涵盖国民经济核算、工业、价格指数、对外贸易、固定资产投资等近20个领域含大量特色数据,如:人民币国际化、利率市场化数据等,提供了近20项宏观指标月度和年度数据的机构预测值和实际公布值可查看机构预测的明细数据和预测时间及多达未来四期的月度和年度预测。使用wind开放应用接口,可以轻松获取各种金融数据、快速开发个性化应用、构建量化投资平台、实现自动化生成报表、监控市场行情,或者将wind数据服务与自有系统完美集成。目前wind支持股票、指数、期货、期权、债券、基金等各种标的,提供实时行情,历史行情,财务数据、EDB 宏观经济数据,其提供的交易接口为用户提供实盘交易接口,现已对接国内数十家券商的交易柜台,同时,还是支持大部分期货公司的CTP交易接口,为用户实现程序化交易提供方便。其提供的工具接口通过接口,可以实现对PMS组合管理、WTTS模拟交易的程序化操作,wind开放应用接口的函数简洁易用,用户使用统一的接口函数,即可获取到各种金融数据或者进行实盘交易。
为了方便企业和个人使用wind量化平台,wind支持Matalab、R、VBA、Python、 C#和C++语言,然而目前许多企业系统的程序开发都是基于Java开发的,而wind并不支持Java接口的数据获取。
发明内容
发明目的:为了弥补现有技术的不足,使Java系统可以实时获取wind数据,本发明提出wind数据在C#和java系统间通信的方法。
技术方案:为实现上述技术效果,本发明提出以下技术方案:
wind数据在C#和java系统间通信的方法,包括步骤:
(1)建立C#系统与wind数据库之间的联系:获取wind数据库支持的C#应用程序接口,将获取的C#应用程序接口编译后生成一个dll可执行文件;在C#端建立一个新项目,在新项目中添加引用所述dll可执行文件,通过dll可执行文件可获取wind数据库中的wind数据;在新项目中自定义一个用于查询wind数据的wind量化数据查询接口;
(2)在新项目中定义一个三维数组,用于将通过wind量化数据查询接口查询到的数据进行格式转换;三维数组的第一维用于记录wind数据中的时间维度信息,三维数组的第二维用于记录C#系统中自带的指令生成器根据数据请求信息生成的wind系统可执行的指令操作代码,三维数组的第三维用于记录wind数据中的指标参数;
(3)以C#系统作为Socket通信的服务端,以java系统作为Socket通信的客户端;服务端与客户端通过Ip地址建立TCP连接;定义服务端与客户端之间通过xml报文进行数据交互;
(4)客户端向服务端发送数据请求;服务端根据数据请求调用wind量化数据查询接口,从wind数据库获取数据请求中客户端所需的wind数据,并根据wind数据生成三维数组,再将生成的三维数组的数据类型转为String数据格式;
(5)服务端将String数据格式转化为xml报文后发送至客户端。
进一步的,所述服务端与客户端建立TCP连接的方法为:
服务端建立服务端socket,并将服务端socket与本机的Ip和监听端口绑定,开始监听请求;
客户端建立客户端socket,并将客户端socket与服务端socket连接;
当服务端socket监听到客户端socket的连接请求时,则建立一个新线程,把服务端 socket的描述发送给客户端socket,客户端socket确认后即可建立与服务端socket的连接。
有益效果:与现有技术相比,本发明具有以下优势:
采用本发明可以实现Java系统可以随时获取wind数据的技术效果,弥补了wind不支持Java接口技术的缺陷。
附图说明
图1本发明的原理流程图;
图2是Socket连接图;
图3是xml报文解析流程图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
图1所示为本发明的原理流程图,本发明的整体流程分为以下几个部分:
A:C#系统通过wind提供的C#数据接口获取股票信息,包括股票、指数、期货、基金等各种数据指标、历史行情、经济数据;在C#端建立一个新项目,在新项目中自定义一个用于查询wind数据的wind量化数据查询接口;C#系统定义一个三维数组,用于从获取的wind数据里提取出所需要的数据,三维数组的第一维用于记录wind数据中的时间维度信息,三维数组的第二维用于记录C#系统中自带的指令生成器根据数据请求信息生成的wind系统可执行的指令操作代码,三维数组的第三维用于记录wind数据中的指标参数;最后将三维数组数据类型转为String类。
B:服务端与客户端建立TCP连接:服务端建立服务端socket,并将服务端socket与本机的Ip和监听端口绑定,开始监听请求;客户端建立客户端socket,并将客户端socket与服务端socket连接;当服务端socket监听到客户端socket的连接请求时,则建立一个新线程,把服务端socket的描述发送给客户端socket,客户端socket确认后即可建立与服务端socket的连接Socket通信服务端,将C#系统作为wind数据的服务端;建立Socket通信的客户端,将java系统作为wind数据的接收端;
C:定义服务端与客户端数据交互通过xml报文实现;
D:服务端解析客户端传送来的请求,将xml解析出来的股票需求信息从wind获取,再以xml报文形式传送给客户端,客户端解析xml,并将解析的股票信息显示在web页面上。
下面通过一个具体实施例进一步说明本发明的技术方案,该实施例的具体步骤如下:
(1)C#端获取wind C#API,编译生成一个dll可执行文件,C#端建立一个新项目,在新项目中添加引用所述dll可执行文件,在新项目中自定义一个wind量化数据查询接口,包括控制函数,数据函数,工具函数。其中,
控制函数包括:启动函数,停止函数,判断连接状态函数与取消函数。
数据函数包括:日期函数,分钟函数,日内价格函数,实时行情函数,历史快照函数,获取指定数据集内容函数,终端证券筛选函数,管理报表函数、经济数据库函数。
工具函数包括:获取日期天数函数,前推/后推日期函数,有效天数函数,错误信息函数。
wind量化数据查询接口中各函数的功能如表1所示:
表1
Figure RE-GDA0001658964730000041
Figure RE-GDA0001658964730000051
(2)在步骤1)已经建立C#与wind连接基础上,获取登录wind个人版用户的用户名信息字段长度,登录Id,下单请求Id,验证信息有效性。定义股票(债券、基金等) 的代码列表,用于在wind数据库里查询股票信息;定义wind代码列表,用于通过指令器生成wind可执行操作指令;错误信息列表,用于存储错误信息交给后台处理;定义指标参数列表,用于将股票信息统一处理为字符串格式;定义时间日期列表,用于处理股票时间维度上的信息。定义三维数组数据MatrixDate[time][code][field],第一维用于记录wind数据中的时间维度信息,三维数组的第二维用于记录C#系统中自带的指令生成器根据数据请求信息生成的wind系统可执行的指令操作代码,三维数组的第三维用于记录wind数据中的指标参数。三维数组数据可以将显示给web页面用户的股票信息以整齐的方式显示给后台,作为web页面用户即将获取到的股票信息的预处理。最后进行wind量化数据格式转换,将三维数据先转二维再转一维,最后将得到的一维数据通过ToString函数转为字符串。此时wind数据经过格式转换已经可以作为xml报文实现传输了。
(3)以C#系统作为Socket通信的服务端,以java系统作为Socket通信的客户端;服务端与客户端通过Ip地址建立TCP连接;定义服务端与客户端之间通过xml报文进行数据交互。
服务端与客户端建立TCP连接的方法如图2所示:
服务端建立服务端socket,并将服务端socket与本机的Ip和监听端口绑定,开始监听请求;
客户端建立客户端socket,并将客户端socket与服务端socket连接;
当服务端socket监听到客户端socket的连接请求时,则建立一个新线程,把服务端socket 的描述发送给客户端socket,客户端socket确认后即可建立与服务端socket的连接。
(4)客户端发送xml数据请求,服务端解析xml,并根据数据请求调用wind量化数据查询接口获取客户端所需的信息。服务端通过xml报文返回客户所需数据,客户端解析xml报文,将对应的wind数据实时的显示在Java系统开发的web页面上。完成数据获取后,断开TCP连接。客户端与服务端的数据传输过程中,xml解析流程如图3所示。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (1)

1.基于Socket实现wind数据在C#和java系统间通信的方法,其特征在于,包括步骤:
(1)建立C#系统与wind数据库之间的联系:获取wind数据库支持的 C# 应用程序接口,将获取的C# 应用程序接口编译后生成一个dll可执行文件;在C#端建立一个新项目,在新项目中添加引用所述dll可执行文件,通过dll可执行文件可获取wind数据库中的wind数据;在新项目中自定义一个用于查询wind数据的wind量化数据查询接口;
(2)在新项目中定义一个三维数组,用于将通过wind量化数据查询接口查询到的数据进行格式转换;三维数组的第一维用于记录wind数据中的时间维度信息,三维数组的第二维用于记录C#系统中自带的指令生成器根据数据请求信息生成的wind系统可执行的指令操作代码,三维数组的第三维用于记录wind数据中的指标参数;
(3)以C#系统作为Socket通信的服务端,以java系统作为Socket通信的客户端;服务端与客户端通过Ip地址建立TCP连接;定义服务端与客户端之间通过xml报文进行数据交互;
(4)客户端向服务端发送数据请求;服务端根据数据请求调用wind量化数据查询接口,从wind数据库获取数据请求中客户端所需的wind数据,并根据wind数据生成三维数组,再将生成的三维数组的数据类型转为String数据格式;
(5)服务端将String数据格式转化为xml报文后发送至客户端;
所述服务端与客户端建立TCP连接的方法为:
服务端建立服务端socket,并将服务端socket与本机的Ip和监听端口绑定,开始监听请求;
客户端建立客户端socket,并将客户端socket与服务端socket连接;
当服务端socket监听到客户端socket的连接请求时,则建立一个新线程,把服务端socket的描述发送给客户端socket,客户端socket确认后即可建立与服务端socket的连接。
CN201711242580.5A 2017-11-30 2017-11-30 wind数据在C#和java系统间通信的方法 Active CN108255616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711242580.5A CN108255616B (zh) 2017-11-30 2017-11-30 wind数据在C#和java系统间通信的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711242580.5A CN108255616B (zh) 2017-11-30 2017-11-30 wind数据在C#和java系统间通信的方法

Publications (2)

Publication Number Publication Date
CN108255616A CN108255616A (zh) 2018-07-06
CN108255616B true CN108255616B (zh) 2021-10-26

Family

ID=62722171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711242580.5A Active CN108255616B (zh) 2017-11-30 2017-11-30 wind数据在C#和java系统间通信的方法

Country Status (1)

Country Link
CN (1) CN108255616B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026369A (zh) * 2019-11-28 2020-04-17 成都睿智融科科技有限公司 一种证券行情数据高速接入及转发平台

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331928A (zh) * 2011-06-24 2012-01-25 浙大网新科技股份有限公司 一种源码级兼容混合api的方法
CN106375481A (zh) * 2016-11-09 2017-02-01 江麓机电集团有限公司 一种分布式erp和mes数据同步连接系统、数据通讯方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331928A (zh) * 2011-06-24 2012-01-25 浙大网新科技股份有限公司 一种源码级兼容混合api的方法
CN106375481A (zh) * 2016-11-09 2017-02-01 江麓机电集团有限公司 一种分布式erp和mes数据同步连接系统、数据通讯方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于Socket实现Android(java)与C#的同步通信";何诚 等;《无线互联科技》;20150125(第2期);第15-16页 *

Also Published As

Publication number Publication date
CN108255616A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
US11568486B2 (en) System and method for conducting web-based financial transactions in capital markets
US6347307B1 (en) System and method for conducting web-based financial transactions in capital markets
US10387952B1 (en) System and method for conducting web-based financial transactions in capital markets
US6721715B2 (en) Method and apparatus for localizing currency valuation independent of the original and objective currencies
AU784696B2 (en) Electronic bill presentment and payment systems and processes
US20040064397A1 (en) System and method for online trading using an electronic spreadsheet
US11526940B2 (en) System and method for conducting web-based financial transactions in capital markets
US20200097929A1 (en) Enterprise resource planning (erp) integrator system and method
US10453043B2 (en) System and method for online bill payment
US10304095B2 (en) System and method for accounting gateway
CN108255616B (zh) wind数据在C#和java系统间通信的方法
AU2002367822A1 (en) System and method for conducting web-based financial transactions in capital markets
CN114266637A (zh) 自动对账方法、系统、电子设备及计算机可读存储介质
AU780518B2 (en) System and method for conducting web-based financial transactions in capital markets
CN111144072A (zh) 一种在线图文转换平台
TWM640986U (zh) 交割結算系統
AU2005200921A1 (en) System and method for conducting web-based financial transactions in capital markets
AU2005200926A1 (en) System and method for conducting web-based financial transactions in capital markets
ERP Doing business the ‘e-savvy’way pays off for oil company and suppliers

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant