本帖最后由 益和VA 于 2012-5-18 16:07 编辑
作者:一门
虚拟应用平台的开放性 不同于虚拟机(服务器)、虚拟操作系统、虚拟桌面,“虚拟应用”解决方案面向终端用户,提供应用级云计算服务,能够实现细颗粒度的资源管理和安全性管理,占用资源最少,是目前较为理想的企业/机构信息化平台的私有云解决方案。但是,与其它终端模式的虚拟化方案一样,也存在客户端资源的接口(例如设备驱动)以及功能扩展接口的问题。面临这一类问题,没有通用一次性解决方法,而是要求虚拟化平台具有一定的开放性,提供二次开发接口以及相应的工具(SDK),以便设备生产和应用软件开发、集成厂商开发制作客户端软件(插件)。
SDK软件开发工具包 SDK(Software Development Kit 软件开发工具包),指辅助开发某一类软件的相关文档、范例和工具的集合。它可以简单的为某个程序设计语言提供应用程序接口 API的一些文件,也可能包括能与某种嵌入式系统通讯的复杂的硬件。
VA SDK通讯原理 “益和VA虚拟应用管理平台”继发布其WEB二次开发接口后,发布了VA SDK开发工具包。VA SDK二次开发支持服务端分发和加载客户端插件,并在服务端和客户端之间建立通讯通道,实现服务端与客户端的无缝衔接,提高VA应用的可扩展性。
在VA应用服务器运行的应用程序与客户端插件之间的通讯,通过服务端ARH、VA SDK-S,与客户端AR应用执行器、VA SDK-C来共同完成。通讯原理如下图所示:
通过上述方式实现一对一的双向通讯,使会话隔离,保证应用的可靠性和安全性。
VA SDK编程功能 VA SDK编程依赖于VASDK.dll和VAUtils.dll动态链接库,它为服务端和客户端的开发提供了一组功能支持,目前支持C语言(动态调用),Pascal等可以调用动态链接库的语言。
VAUtils.DLL导出函数功能
序号
|
函 数
|
功 能
|
1
|
GetVAEnv
|
获得VA运行环境字符串
|
2
|
GetVAEnv2
|
获得VA运行环境字符串
|
3
|
VACheck
|
检测是否在VA环境下运行
|
4
|
VACheck2
|
检测是否在VA环境下运行
|
5
|
GetVABindCode
|
此功能供合作版使用
|
6
|
GetVABindCode2
|
此功能供合作版使用
|
7
|
GetSessionID
|
获取本次应用的会话ID
|
8
|
GetConsoleSessionID
|
获取服务器控制台的会话ID
|
9
|
IsRunOnConsole
|
判断程序是否运行在控制台下
|
10
|
VaDPnt
|
直接端口打印,主要用于Pos打印机VA会自动映射到客户机的打印机上
|
11
|
VaDPntW
|
直接端口打印,主要用于Pos打印机VA会自动映射到客户机的打印机上
|
VASDK.DLL导出函数说明
序号
|
函 数
|
功 能
|
1
|
S_Open
|
打开SDK服务端
|
2
|
C_Open
|
打开SDK客户端
|
3
|
S_LoadPlugin
|
加载SDK客户端插件
|
4
|
S_UnloadPlugin
|
卸载SDK 客户端插件
|
5
|
S_OpenAndLoadPlugin
|
打开SDK服务端,并加载SDK客户端插件
|
6
|
CloseSDK
|
关闭已打开的SDK服务
|
7
|
SendData
|
向已打开的接收方发送数据
|
8
|
SendString
|
向已打开的接收方发送字符串数据
|
9
|
SendStrList
|
向已打开的接收方发送字符串列表数据
|
10
|
SendBIN
|
向已打开的接收方发送二进制数据
|
11
|
SetWaitMode
|
设置发送方发送数据后等待返回的模式
|
12
|
SendAndWait
|
通过通讯通道发送数据并等待接收方响应
|
13
|
RegCallBackProc
|
注册数据接收方的回调函数
|
14
|
GetReceiveDataPackCount
|
获取发送方发来数据的包数
|
15
|
GetReceiveDataPackSize
|
获取发送方发来数据的首包长度
|
16
|
GetReceiveDataPack
|
获取发送方发来的数据
|
17
|
FreeDataPack
|
释放发送数据的缓冲区
|
18
|
GetReceiveDataPackToBuf
|
获取发送方发来的数据
|
19
|
FreeBuf
|
释放调用GetReceiveDataPackToBuf所申请的缓冲区
|
20
|
IsRunOnConsole
|
判断程序是否运行在控制台下
|
21
|
GetLastError
|
获取SDK最后一次出错信息
|
|