资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
XenApp平台的定制开发XenApp SDKhttp:/community.citrix.com/cdn/xa/sdksICA Client Object SDKWeb Interface SDKWinFrame API SDKVirtual Channel SDKAgendaLogon to launchZone Data CollectorData StoreActive DirectoryLeast Loaded ServerXML BrokerWeb InterfaceClientWhy introduce the four SDKsThe first 3 SDKs covers each componet in XenApp. VC SDK solve the customized communication problem between client and XenApp serverWeb InterfaceXenApp ServerClientICO SDKWI SDKWFAPI SDKVC SDKICA Client Object SDK的定制与开发 (ICO SDK)What is ICO?向第三方应用程序扩展访问XenApp Server的功能提供直接访问XenApp服务器的API控制客户端的外观和行为ICA Client Object EnvironmentThree Interface Types Method interfaceConnectDisconnect Property interfaceBrowserProtocolHttpBrowserAddressSetProp Event interfaceOnConnectOnDisconnectICO Container Third party application ActiveX in IE Firefox plug-insExamplesICALaunchActiveX in IELimitations:1. The SDK is only for Windows platform. Cannot work in Android, IOS, Linux 2. 2 layers structure, Javascript in client, low flexibility3. Cannot pass-through Access GatewayHow to solve above problems: Web Interface SDKWeb Interface SDK -Build your own web interface portalWhat WI SDK Can Do?1. Customize your web interface2. Build you own web interfaceStructure of XenApp Web sitesWeb Interface SDK API DocumentationASP.NET and JSP1. The SDK library has both ASP.NET and JSP version2. ASP.NET library, dll file: bin3. JSP library, jar file: /WEB-INF/libWhy use J# runtimeIn the Web Interface, the Java and J# variants of the SDK classes are compiled from the same source code, minimizing the number of bugs and other variances between the ASP.NET and JSP platforms. As a result, any .NET code using the SDK classes needs to reference the J# runtime library (vjslib.dll). It also needs to use the Collections classes and InputStreams that are part of the J# runtime when interfacing with the SDK classesvjredist.exe: http:/www.microsoft.com/en-us/download/confirmation.aspx?id=18084 (x86) http:/www.microsoft.com/en-us/download/details.aspx?id=15468 (x64)2 Key Classes1. com.citrix.wing.webpn.WebPN At any one time, each site has a single WebPN object. WebPN provides access to all of the operations that can be performed independently of any particular user session, such as validating credentials or filtering the set of available published resources. 1. com.citrix.wing.webpn.UserContext UserContext provides access to all operations that can be performed in the context of a users session, such as finding the published resources available to the user, finding a users disconnected sessions, and generating .ica launch files.Example1. Wisdkdemo (Customized Web Interface):2. PN (Customized PNAgent): WinFrame API SDK -Control your App SessionWhat WFAPI SDK Can Do? Enumerating servers, sessions, and processes Managing servers, sessions, and processes Accessing Citrix-specific user data Sending messages to a session Shadowing an ICA session from another ICA session Using virtual channels Waiting on system events Example1. WFSessionVirtual Channel的定制与开发运营商营业厅遇到的问题网络问题络问题 : 虚拟桌面非常依赖网络 运营商已有网络复杂 很多营业厅 分散在各地,远程访问,更容易因网络问题 影响体验外设设: 营业厅外设复杂 (Ex. 各种卡,各种非标准设备) 有些外设没考虑过虚拟桌面场景,网络成为瓶颈 (带宽,延迟,丢包)Virtual Channel Overview An ICA virtual channel is a bidirectional error-free connection for the exchange of generalized packet data between a client and a server running Citrix XenApp or XenDesktop. Each implementation of an ICA virtual channel consists of two components: Server-side: NT service or normal process Client-side: A dynamically loadable module (.DLL) load by receiver Socket?http:/community.citrix.com/display/xa/Virtual+Channel+SDKArchitecture WinStation: Demultiplexing the virtual channel data Gathering and sending virtual channel data process occurs when a user starts the client1) Client reads the Configuration Storage in registry.2) Client engine loads the virtual channel driver DLLs.3) For each virtual channel, the WinStation driver calls the DriverOpen function, pass callback function ICADataArrival to WinStation driver, 4) WinStation driver give a function pointer of QueueVirtualWrite5) When virtual channel data arrives from the server, the WinStation driver calls the ICADataArrival function for that virtual driver.6) WinStation driver calls DriverPoll, use QueueVirtualWrite to poll for data to send to the serverClient-Side Functions Overview1) DriverOpen: Performs all initialization for the virtual driver. Called once when the client loads the virtual driver (at startup). 2) DriverClose: Called before unloading a virtual driver3) DriverPoll: Called periodically to see if the virtual driver has any data to write4) DriverInfo: Retrieves information about the virtual driver5) ICADataArrival: Indicates that data was delivered. Called when data arrives on the virtual channel. 6) QueueVirtualWrite: To send a packet of channel protocol to the server7) VdCallWd: Used to query and set information from the WinStation driver
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号