作者:一门

虚拟应用平台的开放性 不同于虚拟机(服务器)、虚拟操作系统、虚拟桌面,“虚拟应用”解决方案面向终端用户,提供应用级云计算服务,能够实现细颗粒度的资源管理和安全性管理,占用资源最少,是目前较为理想的企业/机构信息化平台的私有云解决方案。但是,与其它终端模式的虚拟化方案一样,也存在客户端资源的接口(例如设备驱动)以及功能扩展接口的问题。面临这一类问题,没有通用一次性解决方法,而是要求虚拟化平台具有一定的开放性,提供二次开发接口以及相应的工具(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来共同完成。通讯原理如下图所示:


虚拟化开发 虚拟化开发平台_数据


通过上述方式实现一对一的双向通讯,使会话隔离,保证应用的可靠性和安全性。


虚拟化开发 虚拟化开发平台_虚拟化开发_02


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最后一次出错信息