实现客户端本地部署的方法

文档序号:7684136阅读:146来源:国知局
专利名称:实现客户端本地部署的方法
技术领域
本发明涉及一种实现客户端本地部署的方法,尤其是涉及一种在微软 dotnet环境下实现客户端本地部署的方法,属于计算机软件技术领域。
背景技术
目前,客户端技术大多采用用户全部下载应用程序和^f莫块的方式。这种下 载方式大量耗费用户的资源和时间,而且不利于软件的安全性。如果程序或模 块版本升级,服务器端需要向所有用户发布新版本,耗费服务器端的资源。而 且客户端程序更新时,大多采用全部替换的方式,旧的版本在一段时间之后将 无法使用,即实行强制更新。针对上述问题,Java提供了一种网络加载协议JNLP,通过该协议,用户 可以通过浏览器上的URL链接打开一个Java应用程序并执行。如果Java应用 程序以JNLP的方式发布,模块版本升级后,服务器不需要向所有的用户发布版 本,只需更新服务器的版本,支持JNLP协议的客户端可以自动下载这些更新的 模块。虽然JNLP为客户端应用程序模块的部署安装提供了透明的组件位置版本 信息,但是JNLP协议存在下述缺点1、由于JNLP基于Java系统,只支持Java 环境,不能运行在微软dotnet构架中;2、 Java环境表现力较差、运行速度较 慢、占用机器资源较多;3、无模块版本控制,不能指明客户端需要加载哪个版 本的模块;4、不支持身份验证功能。发明内容本发明针对现有技术中客户端需要全部下载组件模块、服务器端流量负载较大的问题,提供了一种实现客户端本地部署的方法,能够实现客户端模块的 按需自动下载,解决了服务器端访问流量过大的问题。为解决上述技术问题,本发明采用以下技术方案予以实现 一种实现客户端本地部署的方法,其特征在于包括下述步骤a、 编写协议文件,并将协议文件部署到服务器端;b、 客户端通过URL访问服务器端,读取服务器端的协议文件;c、 客户端分析步骤b中获取的协议文件,得到模块信息; d 、客户端根据协议文件内容下载并运行模块。进一步地,所述协议文件包括一配置文件,所述配置文件包括版本节点、 模块节点和数据节点。其中,所述版本节点用来描述当前协议数据的版本号, 一个客户端可能会 解析多个版本的协议^t据。所述模块节点用来定义协议所需要的模块;所述模块节点不仅包括服务器 地址属性、程序集名属性、主程序名属性及显示名属性,为了实现模块的版本 控制,所述模块还包含有版本属性,可实现多版本的模块共存。所述数据节点用来定义模块所需要的数据信息。更进一步地,所述协议文件格式基于xml格式,并以UTF8作为字符集。为了增强客户端软件和服务器端软件的安全性,在客户端下载模块之前, 先向服务器端提交用户身份信息,申请下载模块;服务器端校验身份后,返回 客户端需要下载的模块。再进一步地,所述客户端本地部署方法基于孩史软dotnet平台实现,可以为 Windows客户端提供更好的支持。与现有技术相比,本发明的优点和积极效果是1、 支持应用程序模块的按需下载,解决网络访问流量过大的问题,减轻服 务器的流量负载,减少客户端的下载时间。2、 增加了程序下载时的身份权限校验,增强了客户端和服务器端软件的安全性。3、 增加程序模块的版本控制,实现多版本共存。4、 支持本发明所述本地部署方法的客户端可以向支持本地部署方法的模块 设定XML格式的初始化数据。5、 基于dotnet平台,可以为Windows客户端提供更好的支持。


图l是本发明客户端本地部署方法的结构框图;图2是客户端本地部署方法一个实施例的主要工作流程图。务体实施方式下面结合附图对本发明作进一步详细的说明。参考图1结构框图所示,本发明所述客户端本地部署方法的主要过程如下首先,编写组件模块,将模块打包,部署到服务器上,所述组件模块可以 #皮客户端通过URL访问到。其次,根据上述组件模块编写协议文件,并将协议文件部署到服务器上, 该协议文件可以被客户端通过URL访问到。所述协议的格式如下< xml version="l. 0" encoding="utf-8" > 〈配置文件验证码=""><版本值=""版本限定=""></版本〉<模块版本=""服务器地址=""程序集名=""主程序名=""显示名=""><数据></数据〉</模块><模块版本=""服务器地址=""程序集名=""主程序名=""显示名=""〉</模块〉</配置文件〉上述协议格式基于xml格式,以UTF8作为字符集。协议中包含一配置文件,所述配置文件包括版本节点、模块节点和数据节点。其中,配置文件作为根节点,所有符合格式要求的协议都以配置文件为根 节点。本节点包含一个"验证码"属性,服务器依赖验证码确定当前客户端身份。版本节点描述当前协议数据的版本号, 一个客户端可能会解析多个版本的 协议数据。属性"值"的值代表当前协议的版本数值,"版本限定"限定本版本 的数据是否只能被本版本的数据解析器使用,其值为true或false。模块节点定义本协议需要的模块,该节点在一份协议数据中至少有一个, 且不存在同样版本、通用主程序名的模块。"版本"属性定义该模块的版本属性, 同样的主程序名可以有不同的版本;"服务器地址,,属性为本模块的存放地址 URL,访问服务器地址可以得到本模块的二进制代码文件;"程序集名"属性定 义模块所属的文件名;"主程序名"属性为模块的程序入口点的名称;"显示名" 属性为该模块的显示名。数据节点定义本模块需要的数据信息,如配置数据等。再次,客户端运行支持服务器端文件协议的应用程序,该应用程序从web 服务器下载符合协议格式的数据,并分析协议文件中配置文件的内容,得到才莫 块信息,即客户端需要下载何种模块,以及如何下载这些模块等信息。然后,客户端应用程序向服务器端提交用户身份信息。最后,服务器端验证身份信息后,客户端可以下载模块,供客户端应用程 序调用。通过上述客户端本地部署的方法,客户端能够根据应用程序的操作需要下 载相应的模块,这些模块并不一定必须存储于客户端机器上,而是必要时根据协议中配置文件信息,从相应地址下载相应模块,不需要下栽服务器端的所有 模块,减轻了服务器端的流量负栽。模块有选择地存储在客户端,然后被快速 初始化并调用,或者直接下载进入内存运行,不在客户端机器的磁盘上驻留, 提高了客户端机器的运行速度。图2是本发明一个实施例的工作流程图。在该实施例中,本地部署方法应 用在b/s多层结构的软件系统中,客户机系统为windows XP以上,服务器系统 为符合JavaEE规范的web容器。客户机和服务器约定其协议为ASP本地部署协 议ALDP,协议格式如上所述,该协议以后缀名为apf的文件承载。客户才几上安 装可以打开.apf的文件,并且可以解析文件中的内容。apf框架下的软件通过 注册表关联.apf文件类型,关联成功后,用户从资源管理器直接打开.apf类型 文件,系统会调用本程序,文件路径作为参数传入,程序根据.apf配置文件中指 定的模块信息,调用相应模块。以用户在客户端执行"单据,,操作为例,具体工 作流程如下步骤S201:用户在客户端用IE打开网站,输入用户名和密码,登录应用 系统。步骤S202:服务器4t验用户名和密码,并4艮据用户名和密码生成该用户访 问的唯一标志码,即-验i正码,然后返回到用户可访问的才莫块。 步骤S203:用户点击网页上的"单据"操作。步骤S204:服务器根据用户点击的"单据"判断打开该单据需要的程序组 件模块,生成符合ALDP协议要求的数据,并将步骤S202中的唯一标志码写入 到该数据中。步骤S205: IE根据.apf文件调用ALDP客户端。步骤S206:客户端根据.apf文件内容,向服务器提交身份认证信息和所 需要下载的程序组件模块。提交身份认证信息时,客户端应用程序首先需要向服务器端提交从服务器 上获得的验证码、用户名和密码。如果没有验证码,视为第一次访问,返回服务器端随机生成的验证码。客户端接收该验证码,再一次将用户名、密码和验 证码发送给服务器端,服务器端才艮据用户名和密码获得用户的权限信息。步骤S207:服务器端校验客户端的用户信息,如果可以下载使用该模块, 则返回包含该模块的二进制文件。步骤S208:客户端根据协议配置文件中的"模块"节点中的"服务器地址,,属性的值,获得模块的下载地址,访问该下载地址,下载并运行组件模块,完 成"单据"操作。当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例, 本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加 或替换,也应属于本发明的保护范围。
权利要求
1、一种实现客户端本地部署的方法,其特征在于包括下述步骤a、编写协议文件,并将协议文件部署到服务器端;b、客户端通过URL访问服务器端,读取服务器端的协议文件;c、客户端分析步骤b中获取的协议文件,得到模块信息;d、客户端根据协议文件内容下载并运行模块。
2、 根据权利要求l所述的实现客户端本地部署的方法,其特征在于,所述 协议文件包括一配置文件,所述配置文件包括版本节点、模块节点和数据节点。
3、 根据权利要求2所述的实现客户端本地部署的方法,其特征在于,所述 版本节点用来描述当前协议数据的版本号。
4、 根据权利要求2所述的实现客户端本地部署的方法,其特征在于,所述 模块节点用来定义协议所需要的模块;所述模块节点包括版本属性、服务器地 址属性、程序集名属性、主程序名属性及显示名属性。
5、 根据权利要求2所述的实现客户端本地部署的方法,其特征在于,所述 数据节点用来定义模块所需要的数据信息。
6、 根据权利要求1至5中任一项所述的实现客户端本地部署的方法,其特 征在于,所述协议文件的格式基于xml格式,并以UTF8作为字符集。
7、 根据权利要求1所述的实现客户端本地部署的方法,其特征在于,客户 端下载模块之前,先向服务器端提交用户身份信息,申请下载模块,服务器端 校验身份后,返回客户端需要下载的模块。
8、 根据权利要求1至5中任一项所述的实现客户端本地部署的方法,其特 征在于,所述本地部署方法基于微软dotnet环境实现。
9、 根据权利要求6所述的实现客户端本地部署的方法,其特征在于,所述 本地部署方法基于微软dotnet环境实现。
10、 权利要求7所述的实现客户端本地部署的方法,其特征在于,所述本 地部署方法基于微软dotnet平台实现。
全文摘要
本发明公开了一种实现客户端本地部署的方法,所述方法包括下述步骤a.编写协议文件,并将协议文件部署到服务器端;b.客户端通过URL访问服务器端,读取服务器端的协议文件;c.客户端分析步骤b中获取的协议文件,得到模块信息;d.客户端根据协议文件内容下载并运行模块。本发明所述客户端本地部署方法支持应用程序模块的按需下载,解决了网络访问流量过大的问题,减轻了服务器的流量负载。
文档编号H04L29/06GK101222505SQ20081001396
公开日2008年7月16日 申请日期2008年1月24日 优先权日2008年1月24日
发明者丁香乾, 于树松, 侯瑞春, 源 冯, 周志明, 宫会丽, 松 李, 宁 杨, 王鲁生, 硕 石 申请人:中国海洋大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1