首页> 中国专利> 一种基于VNC和JNLP协议实现远程桌面的方法

一种基于VNC和JNLP协议实现远程桌面的方法

摘要

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

著录项

  • 公开/公告号CN102929610A

    专利类型发明专利

  • 公开/公告日2013-02-13

    原文格式PDF

  • 申请/专利权人 浪潮电子信息产业股份有限公司;

    申请/专利号CN201210388420.2

  • 发明设计人 张世刚;

    申请日2012-10-12

  • 分类号G06F9/44;

  • 代理机构

  • 代理人

  • 地址 250014 山东省济南市高新区舜雅路1036号

  • 入库时间 2024-02-19 17:47:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-15

    授权

    授权

  • 2017-03-08

    专利申请权的转移 IPC(主分类):G06F9/44 登记生效日:20170213 变更前: 变更后: 申请日:20121012

    专利申请权、专利权的转移

  • 2014-04-09

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20121012

    实质审查的生效

  • 2013-02-13

    公开

    公开

说明书

技术领域

本发明涉及高性能集群计算领域, 具体地说是一种基于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;

B.在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 Start Version</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();

  }

}。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号