CN102929610B - 一种基于vnc和jnlp协议实现远程桌面的方法 - Google Patents

一种基于vnc和jnlp协议实现远程桌面的方法 Download PDF

Info

Publication number
CN102929610B
CN102929610B CN201210388420.2A CN201210388420A CN102929610B CN 102929610 B CN102929610 B CN 102929610B CN 201210388420 A CN201210388420 A CN 201210388420A CN 102929610 B CN102929610 B CN 102929610B
Authority
CN
China
Prior art keywords
jnlp
vnc
node
need
localprintwriter
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
CN201210388420.2A
Other languages
English (en)
Other versions
CN102929610A (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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201210388420.2A priority Critical patent/CN102929610B/zh
Publication of CN102929610A publication Critical patent/CN102929610A/zh
Application granted granted Critical
Publication of CN102929610B publication Critical patent/CN102929610B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种基于VNC和JNLP协议实现远程桌面的方法,该方法基于(VNC)jar包、JNLP协议所构成的服务器端和Flex、JRE1.6(及以上版本)所构成的客户端,被访问节点需要VNCServer服务支持。用户在客户端页面只需点击要查看的目标集群节点,无需输入该节点的IP地址,即可弹出该节点的远程桌面。通常情况下,远程桌面访问都是独立存在的,需要记录被访问节点的IP地址和密码,由于集群的规模越来越庞大,传统的方法导致需要记录大量的目标节点IP和密码数据,所以传统的方法已经不能满足当前的需求。

Description

一种基于VNC和JNLP协议实现远程桌面的方法
技术领域
本发明涉及高性能集群计算领域, 具体地说是一种基于VNC和JNLP协议实现远程桌面的方法。
背景技术
随着计算机集群规模的膨胀,传统的对服务器的管理方法越来越不适用,需要一套集群监控管理软件来对庞大的计算机集群进行管理,以提高管理的效率和降低管理成本。本发明,就是为集群监控管理软件提供支持的方法。
通常情况下,远程桌面访问都是独立存在的,需要记录被访问节点的IP地址和密码,由于集群的规模越来越庞大,传统的方法导致需要记录大量的目标节点IP和密码数据,所以传统的方法已经不能满足当前的需求。
发明内容
本发明的目的是提供一种基于VNC和JNLP协议实现远程桌面的方法。
本发明的目的是按以下方式实现的,具体步骤如下:
1)在目标节点安装和配置VNCServer,Linux系统,系统自带VNCServer,Windows需自行安装;客户机需安装JRE1.6或更高版本;
2)Flex页面端: ActionScript调用JavaScript;通过flash ActionScrtip提供的外部访问接口的call方法,来调用js中的方法;
将js引入到html-template/index.template.html中,在flex编译的时候,会将js的方法一起编译;
在js的方法中,访问指定的资源并传递参数:
window.location.href=”http://”+ tomcatIP +”:”+tomcatPort +”/”+projectName +”/rmsInterface?serverIP=”+remoteIP +”&serverPort=” +remotePort;
在As中用ExternalInterface.call方法来调用js中的方法,同时传递需要的参数;
ExternalInterface.call("toRemoteDesktop",tomcatIP,tomcatPort,projectName,remoteIP, remotePort);其中“toRemoteDesktop”为js中的方法;
3)Servlet端: web.xml对jnlp的配置,使servlet支持jnlp协议添加:
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>;
4)通过rmsInterface在web.xml中找到对应的servlet类,该类主要是动态生成jnlp文件,并返回给客户端;
5)客户端根据返回的jnlp文件,自动加载web服务器中的VncViewer.jar;
6)弹出VNC密码输入框,输入密码后,即可打开相应节点的远程桌面。
本发明的有益效果是:
该方法的被访问节点需要VNCServer服务支持;服务器端由(VNC)jar包、基于JNLP协议的Java编码构成;客户端由Flex页面编码和相关配置、JRE1.6(及以上版本)构成。用户在客户端页面只需点击要查看的目标集群节点,无需输入该节点的IP地址,即可弹出该节点的远程桌面。本发明可以集成到集群监控管理软件中,通常该软件本身提供集群节点导航树,能够清晰的反应出当前集群的结构和目标节点所处的位置,而且无需记录集群中所有节点的IP地址。所以本发明集成到传统的集群管理软件中,能够更好的满足用户远程访问目标节点。
具体实施方式
具体步骤如下:
1)目标节点需安装和配置VNCServer,Linux系统一般自带VNCServer,Windows需自行安装;客户机需安装JRE1.6或更高版本;
2)Flex页面端: ActionScript调用JavaScript;
通过flash ActionScrtip提供的外部访问接口的call方法,来调用js中的方法;
将js引入到html-template/index.template.html中,在flex编译的时候,会将js的方法一起编译。
在js的方法中,访问指定的资源并传递参数:
window.location.href=”http://”+ tomcatIP +”:”+tomcatPort +”/”+projectName +”/rmsInterface?serverIP=”+remoteIP +”&serverPort=” +remotePort;
在As中用ExternalInterface.call方法来调用js中的方法,同时传递需要的参数。
ExternalInterface.call("toRemoteDesktop",tomcatIP,tomcatPort,projectName,remoteIP, remotePort);
其中“toRemoteDesktop”为js中的方法;
3)Servlet端: web.xml对jnlp的配置,使servlet支持jnlp协议添加:
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>;
4)通过rmsInterface在web.xml中找到对应的servlet类(详见:MakeJnlpServlet.java),该类主要是动态生成jnlp文件,并返回给客户端;
5)客户端根据返回的jnlp文件,自动加载web服务器中的VncViewer.jar
6.弹出VNC密码输入框,输入密码后,即可打开相应节点的远程桌面。
实施例:
1)web.xml配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>RmsInterface</servlet-name>
<servlet-class>MakeJnlpServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>RmsInterface</servlet-name>
<url-pattern>/rmsInterface</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>
</web-app>
2)java script方法
function remoteDesktop(serverIP,serverPort,serverName,requestIPport)
{
window.location.href = "http://"+ serverIP +":"+ serverPort +"/"+serverName +"/rmsInterface?tomcatIP=" + serverIP+"&targetIP=" +requestIPport;
}
3)将下述代码添加进html-template/index.template.html文件
<script src="./manage/scriptsForRemoteDesktop.js" language="javascript"/>
4)Action Script方法
import flash.net.navigateToURL;
public function redirect():void{
var tomcatIP:String = "10.152.11.248";
var tomcatPort:String = "8080";
var projectName:String = "jnlp";
var remoteIP:String = "10.152.11.212:1";
var remotePort:String = "zzzzzz";
ExternalInterface.call("sayHelloWorld",tomcatIP,tomcatPort,
projectName,remoteIP, remotePort);
}
5)JNLP文件生成方法
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MakeJnlpServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest paramHttpServletRequest,HttpServletResponse paramHttpServletResponse)
throws ServletException, IOException
{
String str1 = paramHttpServletRequest.getParameter("serverIP");
String str2 = paramHttpServletRequest.getParameter("serverPort");
System.out.println("A---->" + str1 + "B----->" + str2);
String str3 = paramHttpServletRequest.getScheme();
String str4 = paramHttpServletRequest.getServerName();
int i = paramHttpServletRequest.getServerPort();
String str5 = paramHttpServletRequest.getContextPath();
System.out.println("Scheme: "+str3+"\tServerName: "+str4+"\tPort:"+i+"\tContextPath: "+str5);
String str6 = "rmsInterface";
paramHttpServletResponse.setContentType("application/x-java-jnlp-file");
PrintWriter localPrintWriter = paramHttpServletResponse.getWriter();
localPrintWriter.println("<?xml version=\"1.0\" encoding=\"GBK\"?>");
localPrintWriter.println("<jnlp spec=\"1.0+\" codebase=\"" + str3+ "://" + str4 + ":" + i + str5 + "\" href=\"" + str6 + "\">");
localPrintWriter.println("<information>");
localPrintWriter.println(" <title>rms</title>");
localPrintWriter.println(" <vendor>cattsoft</vendor>");
localPrintWriter.println(" <homepage href=\"index.html\"/>");
localPrintWriter.println(" <description>Web Start Version</description>");
localPrintWriter.println(" <description kind=\"short\">Web StartVersion</description>");
localPrintWriter.println("</information>");
localPrintWriter.println("<security>");
localPrintWriter.println(" <all-permissions/>");
localPrintWriter.println("</security>");
localPrintWriter.println("<resources>");
localPrintWriter.println(" <j2se version=\"1.6+\"/>");
localPrintWriter.println(" <jar href=\"VncViewer.jar\"/>");
//localPrintWriter.println(" <jar href=\"tightvnc-jviewer.jar\"/>");
localPrintWriter.println("</resources>");
//localPrintWriter.println("<application-desc main-class=\"VncViewer\">");
localPrintWriter.println("<application-desc main-class=\"vncviewer.VNCViewer\">");
//localPrintWriter.println("<application-desc main-class=\"com/glavsoft/viewer/Viewer\">");
localPrintWriter.println("<argument>" + str1 + "</argument>");
//localPrintWriter.println("<argument>" + str2 + "</argument>");
localPrintWriter.println("</application-desc>");
localPrintWriter.println("</jnlp>");
localPrintWriter.flush();
localPrintWriter.close();
}
}。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (1)

1.一种基于VNC和JNLP协议实现远程桌面的方法,其特征在于,具体步骤如下:
1)在目标节点安装和配置VNCServer,Linux系统,系统自带VNCServer,Windows需自行安装;客户机需安装JRE1.6或更高版本;
2)Flex页面端:ActionScript调用JavaScript;通过flash ActionScrtip提供的外部访问接口的call方法,来调用js中的方法:
将js引入到html-template/index.template.html中,在flex编译的时候,会将js的方法一起编译;
在js的方法中,访问指定的资源并传递参数:
window.location.href=”http://”+tomcatIP+”:”+tomcatPort+”/”+projectName+”/rmsInterface?serverIP=”+remoteIP+”&serverPort=”+remotePort;
在As中用ExternalInterface.call方法来调用js中的方法,同时传递需要的参数:
4)通过rmsInterface在web.xml中找到对应的servlet类,该类主要是动态生成jnlp文件,并返回给客户端;
5)客户端根据返回的jnlp文件,自动加载web服务器中的VncViewer.jar;
6)弹出VNC密码输入框,输入密码后,即可打开相应节点的远程桌面。
CN201210388420.2A 2012-10-12 2012-10-12 一种基于vnc和jnlp协议实现远程桌面的方法 Active CN102929610B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210388420.2A CN102929610B (zh) 2012-10-12 2012-10-12 一种基于vnc和jnlp协议实现远程桌面的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210388420.2A CN102929610B (zh) 2012-10-12 2012-10-12 一种基于vnc和jnlp协议实现远程桌面的方法

Publications (2)

Publication Number Publication Date
CN102929610A CN102929610A (zh) 2013-02-13
CN102929610B true CN102929610B (zh) 2017-03-15

Family

ID=47644423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210388420.2A Active CN102929610B (zh) 2012-10-12 2012-10-12 一种基于vnc和jnlp协议实现远程桌面的方法

Country Status (1)

Country Link
CN (1) CN102929610B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140280715A1 (en) * 2013-03-15 2014-09-18 First Principles, Inc. Real time remote desktop
CN103281331A (zh) * 2013-06-09 2013-09-04 浪潮电子信息产业股份有限公司 一种windows客户端登陆远程服务器桌面的方法
CN105450748B (zh) * 2015-11-23 2019-03-05 国云科技股份有限公司 一种基于Openstack的物理机远程桌面的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540815A (zh) * 2008-03-19 2009-09-23 佳能株式会社 信息处理装置、图像处理装置、图像处理系统及图像处理方法
CN101996093A (zh) * 2009-08-10 2011-03-30 日电(中国)有限公司 将桌面应用转换为网络应用的方法和系统
CN102521027A (zh) * 2011-12-02 2012-06-27 华中科技大学 虚拟桌面系统中的窗口界面传输方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313545A1 (en) * 2007-06-13 2008-12-18 Microsoft Corporation Systems and methods for providing desktop or application remoting to a web browser

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540815A (zh) * 2008-03-19 2009-09-23 佳能株式会社 信息处理装置、图像处理装置、图像处理系统及图像处理方法
CN101996093A (zh) * 2009-08-10 2011-03-30 日电(中国)有限公司 将桌面应用转换为网络应用的方法和系统
CN102521027A (zh) * 2011-12-02 2012-06-27 华中科技大学 虚拟桌面系统中的窗口界面传输方法

Also Published As

Publication number Publication date
CN102929610A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
RU2008141281A (ru) Способ потребления разнородных услуг на разнородныхустройствах, используя скриптовые плагины
US8578010B2 (en) Methods and system for tracking web page analytics
US7908317B2 (en) System and method for URL compression
CN107103233B (zh) 用于基于动态域的隔离的技术
US20070124506A1 (en) Systems, methods, and media for dynamically generating a portal site map
Yang et al. A cloud architecture based on smart home
CN104965691A (zh) 配置网页页面的页面元素的方法、装置及系统
CN1261699A (zh) 共享浏览器的方法和装置
US20090259945A1 (en) System and method for generating web based multi-tier, wiki-based control panels
CN106464584B (zh) 根据程序设计接口提供路由器信息
KR101520751B1 (ko) 통신 네트워크 내에서 사용자들이 브라우징하는 동안 사용자들을 모니터링하기 위한 방법 및 서버
CN103577427A (zh) 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器
RU2005115570A (ru) Представление слитного вида ярлыков на удаленные приложения от множества поставщиков
WO2010017680A1 (zh) 一种网络域名的解析方法
CN102929610B (zh) 一种基于vnc和jnlp协议实现远程桌面的方法
US6865732B1 (en) Providing an embedded application specific web server
CN102624918A (zh) 一种基于url重写技术的代理访问方法
US20100229081A1 (en) Method for Providing a Navigation Element in an Application
CN107463453A (zh) 同一终端不同应用间通信的方法、装置、设备和存储介质
CN108737471B (zh) 一种网络访问方法及装置
CN101894059A (zh) 一种运行状态的检测方法及系统
CN111934940B (zh) 配置化的服务请求方法及装置、电子设备和存储介质
CN100405760C (zh) 从具有网关的服务环境提供Web服务的方法和系统
CN201266950Y (zh) 一种面向电力市场交易用户网路服务的Web服务应用系统
CN1492652A (zh) 以电话号码寻址,创建、管理、发布、访问网页的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170213

Address after: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601

Applicant after: Zhengzhou Yunhai Information Technology Co. Ltd.

Address before: 250014 Shandong Province, Ji'nan City hi tech Development Zone, Nga Road No. 1036

Applicant before: Langchao Electronic Information Industry Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant