CN105302564B - 网络办公软件服务控件及实现方法 - Google Patents
网络办公软件服务控件及实现方法 Download PDFInfo
- Publication number
- CN105302564B CN105302564B CN201510756093.5A CN201510756093A CN105302564B CN 105302564 B CN105302564 B CN 105302564B CN 201510756093 A CN201510756093 A CN 201510756093A CN 105302564 B CN105302564 B CN 105302564B
- Authority
- CN
- China
- Prior art keywords
- plug
- unit
- browser
- file
- instruction
- 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.)
- Expired - Fee Related
Links
Abstract
本发明属于网络办公软件桥接控件,网络上使用的公文制作、传递与签批的办公软件。建设了办公控件服务主程序,办公控件服务交互协议及指令规范,相关控件插件体系。基于服务模式的办公控件应用实现,采用中间件服务架构思路,使得控件的研制不再针对具体的浏览器,提高了浏览器的兼容性及稳定性;提高了研制人员相关插件的开发工作效率及产品质量;与传统的基于浏览器的插件开发相比,插件产品开发时间降低为原来的1/2,产品稳定性大大提升,实现了不同浏览器用同一操作界面问题。
Description
技术领域
本发明属于网络办公软件的桥接控件和实现方法,特别适用于网络上较多用户,使用多种浏览器进行公文制作、传递与签批时实现中间服务的控件和实现方法。
背景技术
当前,随着信息化技术的不断推进,通过网络实现多用户的无纸化办公的单位越来越多,电子化办公公文的制作、传递和签批服务软件日趋成熟。但是在进行办公网络软件的开发过程中发现,由于网络上的用户较多,每个人的爱好、习惯不同,使用的办公设备各异,对办公软件的要求千差万别,所以,用户往往基于个人的习惯使用办公浏览器软件,而各个浏览器的业务内核又各有不同,接口也各不相同,在网络上进行各用户之间的办公公文交流会产生障碍。为此,希望对每一个办公软件开发一个浏览器控件来满足它们的相关接口要求。但是在网络条件下的办公领域中,各用户所要求控件的个性化具有多变性,如果都要针对不同的浏览器开发相关控件,增加了系统开发难度,增大了工作量,加长了兼容性验证测试时间。能否使用一个中间件服务模块,满足各个浏览器的兼容处理需求,保留各有关的浏览器办公软件的个性制作界面、个性的显示界面,通过这一个中间服务模块,形成统一的传递流程和签批方式,这就需要开发出一种专用的“翻译软件”。通过这种中间服务模块,能够实现各终端用户仍然按照自己的习惯使用办公系统,而相互之间的文件交流由后台“翻译软件”完成。
发明内容
本发明的目的就是建设一种网络上相关办公软件能够通用的中间服务模块,即一种通用的“翻译软件”,我们称为桥接控件。本技术方案的实现过程如下:
A.搭建一个办公插件应用运行的环境;这个环境就是所有进入系统的软件都要实现基于http协议的交互接口;统一在http协议中采用JSON格式进行各项指令的交互。
B.基于http协议的软件环境和交互接口的要求,进行中间服务控件设计,使服务控件能够在http协议下运行;为了不影响各浏览器的正常使用,服务控件必须独立于各浏览器运行,不受各浏览器之间变化的影响。
C.软件设计如下:
a.软件的跨域交互指令:
在解决http交互的同时,要解决跨域授信的核心问题,才能保障好浏览器的跨域交互问题;在跨域问题上,采用跨域策略文件crossdomain.xml来实现跨域访问授信问题;
通过配置allow-access-fromdomain来限制允许交互的域服务,以保障跨域交互的安全性控制。
b.查验插件指令:用check表示请求验证插件是否存在,用data为插件的guid,系统通过插件guid验证插件服务是否已提供;如果已提供则返馈true,如果插件不存在返馈false。
{
Cmd:'plugins'
Action:'check',
Data:'插件guid',
Cookies:
}
c.按照接受的指令查找接口;如果没有对应接口则返回;如果有对应接口,则获取对应接口:
{
Cmd:”
Action:”,
Data:{
url:
}
Cookies:'xxx'
}
Cmd:表示了是XX文件操作系统的一个插件;
Action:表示了当前需要进行文件处理的指令;
Data:为处理文件的时候,需要传入的数据格式;
d.软件处理完成后,结果数据采用JSON的标准数据格式返回操作层面;
标准数据格式包括以下三个核心字段:
Status为状态值,主要有success和fail两个状态值;其中success表示正确返回,fail表示标识实现过程中有操作错误;
Result标志了返回的结果数据主题,同样格式为JSON格式;针对各个插件返回的结果内容和格式,进行格式的“翻译”转化,并送操作界面;
Message表示为软件运行过程中,有操作信息需要返回;它可以表示一个正确的操作,也可以表示一个错误的操作。
e.插件管理及规范:
服务控件中建立插件规范,让插件具备灵活扩展能力,应用了规范的插件将能够被系统自动识别及注册;
插件服务约定了一个插件plugins目录,在plugins目录下,创建任何一个插件首先要创建一个文件夹,该文件夹用于区分不同的插件;插件能否被正确识别与注册在于插件文件夹下有一个plugins.xml文件,plugins.xml文件的注册规范必须采用xml格式进行约定。
具体格式要求如下:
Xml相关信息描述如下:
<?xml version="1.0"encoding="UTF-8"?>
<plugin>
<name></name>
<guid></guid>
<type></type>
<cmd></cmd>
<description></description>
<actions>
<action name="ActionName"access=""description="">
</action>
</action>
</plugin>
name表示插件的名称,可以是中文或者英文;
guid:表示插件的GUID值,是插件的识别值;
type:表示插件的MIME值,是插件的英文描述值;
cmd:表示插件在系统中的别名值,如果未填写将默认采用type的英文描述值来识别;
descriotion:表示插件的功能描述;
action:表示插件的开放接口,name为开放的接口名,access为调用此接口需要的相关权限,description为插件接口的功能描述。
通过以上的xml定义,系统将自动识别plugin.xml,并在插件服务启动后,自动将相关插件注册到插件服务平台当中。
2.网络办公软件服务控件的实现方法:
a)在浏览器与文件操作系统之间建立基于http协议交互接口:要求加入插件的所有浏览器均采用http标准交互协议;
基于http协议的中间件控件,独立于各个浏览器运行,不受各个浏览器的影响;在http协议中采用JSON格式进行各项指令交互;
b)当有请求操作的指令时,控件服务层接收浏览器操作指令,判断请求来源,是否为授信的请求员,是否受理。不需要受理则返回浏览器操作层面;如果需要受理则接受指令,进行下一步操作。
c)采用跨域策略文件crossdomain.xml来实现跨域访问授信;通过配置allow-access-fromdomain来限制允许交互的域服务。
d)按照接受的指令查找插件;如果没有对应插件则返回;如果有对应插件,则获取对应插件。
e)按照接受的指令查找接口;如果没有对应接口则返回;如果有对应接口,则获取对应接口。
f)提供了一个插件管理及规范:
约定一个插件目录:plugins,在服务中的plugins目录下,创建任何一个插件文件夹注册,插件文件夹下建立plugins.xml文件,对plugins.xml注册规范采用xml格式定义进行约定。
h)终端操作人员进行文件处理工作,当文件处理完成后生成结果性文件;调用结果判断指令对插件处理的结果性文件进行格式转换,使其封包成浏览器可识别的数据格式,返馈给浏览器;处理结果性文件的数据采用JSON的数据格式返回。
网络办公软件服务控件基于服务模式的应用实现,采用中间件服务架构思路,使得控件的研制不针对具体的浏览器,提高了浏览器的兼容性及稳定性;提高了研制人员相关插件的开发工作效率及产品质量;与传统的基于浏览器的插件开发相比,插件产品开发时间降低为原来的1/2,产品稳定性大大提升,实现了不同浏览器用同一操作界面问题。
附图说明
附图1网络办公软件服务控件系统架构图;
附图2网络办公软件服务控件调度处理机制流程图。
具体实施方式
实施例一:
(1)构建办公控件服务主程序
在socket协议基础上实现http服务。主要实例如下:
HttpSever sever=new HttpServer();//创建http服务
server.addHandle(new HttpHandle());//构建http受理服务
server.listen(2067);//监听服务端口
(2)解决跨域交互问题
在构建http协议的时候,因为浏览器将请求本地的local服务,将面临跨域的问题,在http请求时,因跨域请求,首先浏览器会发起一个跨域的认证,该地址为/crossdomain.xml,即要求在办公控件服务实现/crossdomain.xml信息返回,该crossdomain.xml的返回格式如下:
<?xml version="1.0"encoding="UTF-8"?>
<cross-domain-pol icy>
<allow-access-from domain="*.*"/>
</cross-domain-policy>
在返回的内容中,关键部分为allow-access-from domain="*.*",domain决定了请求的授信服务器地址,即只有该地址发出的控件服务请求,才将受理。出于安全考虑,在系统中,可以针对授信服务,配置授信的服务地址。
系统实现实例如下:
String url=req.getURL;//获取请求地址
if(url=='/crossdomain.xml'){//判断请求路径
output(local/crossdomain.xml);//返回crossdomain信息
return;
}
(3)浏览器发起交互请求
在构建办公控件服务后,系统将接收浏览器发送过来的json结构的请求命令。
请求命令格式如下:
{
cmd:'插件别名'
Action:'插件开放方法',
Data:{
url:
},//插件接收的参数
Cookies:'sessionId=abcdef'//系统的浏览器的cookies值
}
其中
Cmd:表示了是XX文件操作系统的一个插件;
Action:表示了当前需要进行文件处理的指令;
Data:为处理文件的时候,需要传入的数据格式;
在浏览器端,主要调度代码如下:
上述例子说明要调度一个命名为'Office.Word'插件,调用指令:Cmd表示要调用Office.Word的一个插件,Action表示当前需要进行文件编辑的指令,data为编辑文档的时候,需要传入的文件下载地址,编辑结束后的上传地址。系统通过插件Office.Word调用编辑接口,实现word文件的调度,实现文件编辑功能,当word编辑完成后,系统返回编辑的结果信息。
(4)服务端的交互响应
系统接收指令后,结合指令要求调度相关插件服务,具体实例如下:
服务控件返回结果数据将采用JSON的标准数据格式返回浏览器,具体格式返回如下;
Status为状态值,主要有success和fail两个状态值;其中success表示正确返回,fail表示标识实现过程中有操作错误;
Result标志了返回的结果数据主题,同样格式为JSON格式;针对各个插件返回的结果内容和格式,进行格式的“翻译”转化,并送操作界面;
Message表示为软件运行过程中,有操作信息需要返回;它可以表示一个正确的操作,也可以表示一个错误的操作。
(5)如何编写一个办公服务插件
服务控件中建立插件规范,让插件具备灵活扩展能力,应用了规范的插件将能够被系统自动识别及注册;
构建插件的时候,将遵循统一的入口标准,具体的实例如下:
class Word{
//编辑word文件
public Result Edit(Data data,Request req,Resposne res){
var download=data.downloadURL;
var upload=data.uploadURL;
Result result=new Result();
result.success=true;
return result;
},
//清除word文件痕迹
public Result Clean(Data data,Request req,Resposne res){
var download=data.downloadURL;
var upload=data.uploadURL;
Result result=new Result();
result.success=true;
return result;
}
}
编写的插件,需要注册到控件服务中,才能被识别,插件服务约定了一个插件plugins目录,在plugins目录下,创建任何一个插件首先要创建一个文件夹,该文件夹用于区分不同的插件;插件能否被正确识别与注册在于插件文件夹下均有一个plugins.xml文件,plugins.xml文件的注册规范必须采用xml格式进行约定。
具体格式要求如下:
Xml相关信息描述如下:
<?xml version="1.0"encoding="UTF-8"?>
<plugin>
<name></name>
<guid></guid>
<type></type>
<cmd></cmd>
<description></description>
<actions>
<action name="ActionName"access=""description="">
</action>
</action>
</plugin>
name表示插件的名称,可以是中文或者英文;
guid:表示插件的GUID值,是插件的识别值;
type:表示插件的MIME值,是插件的英文描述值;
cmd:表示插件在系统中的别名值,如果未填写将默认采用type的英文描述值来识别;
descriotion:表示插件的功能描述;
action:表示插件的开放接口,name为开放的接口名,access为调用此接口需要的相关权限,description为插件接口的功能描述。
通过以上的xml定义,系统将自动识别plugin.xml,并在插件服务启动后,自动将相关插件注册到插件服务平台当中。
Claims (3)
1.网络办公软件服务控件实现方法,其特征在于:
A)在浏览器与文件操作系统之间建立基于http协议交互接口:要求加入插件的所有浏览器均采用http标准交互协议;
基于http协议的中间件控件,独立于各个浏览器运行,不受各个浏览器的影响;在http协议中采用JSON格式进行各项指令交互;
B)插件实现:
a)当有请求操作的指令时,控件服务层接收浏览器操作指令,判断请求来源,如果为授信的请求源,允许受理;不需要受理则返回;如果需要受理则接受指令,进行下一步操作;
采用跨域策略文件crossdomain.xml来实现跨域访问授信;通过配置allow-access-fromdomain来限制允许交互的域服务;
b)按照接受的指令查找插件;如果没有对应插件则返回;如果有对应插件,则获取对应插件:
请求命令格式如下:
用'check'表示请求验证插件是否存在,系统通过'插件guid'验证插件服务是否已提供;
调用指令:
Cmd为具体插件类型;
Action为指令行为,调用具体插件的相关接口;
Data为指令数据,插件接口的数据引入;
Cookies:为浏览器的Cookies值;
c)按照接受的指令查找接口;如果没有对应接口则返回;如果有对应接口,则获取对应接口:
请求命令格式如下:{
Cmd:‘ ’ ,
Action:‘ ’ ,
Data:{
url:
}
Cookies:'xxx'
}Cmd:表示了是XX文件操作系统的一个插件;
Action:表示了当前需要进行文件处理的指令;
Data:为处理文件的时候,需要传入的数据格式。
2.根据权利要求1所述的网络办公软件服务控件实现方法,其特征在于:
提供了一个插件管理及规范:
约定一个插件目录:plugins,在服务中的plugins目录下,创建任何一个插件文件夹注册,插件文件夹下建立plugins.xml文件,对plugins.xml注册规范采用xml格式定义进行约定,具体格式要求如下:
Xml相关信息描述如下:
name表示插件的名称,可以是中文或者英文;
guid:表示插件的GUID值,是插件的唯一识别值;
type:表示插件的MIME值,是插件的英文识别值;
cmd:表示插件在系统中的别名值,如果未填写将默认采用type的描述值来识别;
description:表示插件接口的功能描述;
action:表示插件的开放接口,name为开放的接口名,access为调用此接口需要的相关权限,description为插件接口的功能描述。
3.根据权利要求1所述的网络办公软件服务控件实现方法,其特征在于:
a)在浏览器与文件操作系统之间建立基于http协议交互接口:要求加入插件的所有浏览器均采用http标准交互协议;
基于http协议的中间件控件,独立于各个浏览器运行,不受各个浏览器的影响;在http协议中采用JSON格式进行各项指令交互;
b)当有请求操作的指令时,控件服务层接收浏览器操作指令,判断请求来源,如果为授信的请求源,允许受理;不需要受理则返回;如果需要受理则接受指令,进行下一步操作;
c)采用跨域策略文件crossdomain.xml来实现跨域访问授信;通过配置allow-access-fromdomain来限制允许交互的域服务;
d)按照接受的指令查找插件;如果没有对应插件则返回;如果有对应插件,则获取对应插件;
e)按照接受的指令查找接口;如果没有对应接口则返回;如果有对应接口,则获取对应接口;
f)提供了一个插件管理及规范:
约定一个插件目录:plugins,在服务中的plugins目录下,创建任何一个插件文件夹注册,插件文件夹下建立plugins.xml文件,对plugins.xml注册规范采用xml格式定义进行约定;
g)终端操作人员进行文件处理工作,当文件处理完成后生成结果性文件;调用结果判断指令对插件处理的结果性文件进行格式转换,使其封包成浏览器可识别的数据格式,返回给浏览器;处理结果性文件的数据采用JSON的数据格式返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510756093.5A CN105302564B (zh) | 2015-11-09 | 2015-11-09 | 网络办公软件服务控件及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510756093.5A CN105302564B (zh) | 2015-11-09 | 2015-11-09 | 网络办公软件服务控件及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302564A CN105302564A (zh) | 2016-02-03 |
CN105302564B true CN105302564B (zh) | 2018-08-31 |
Family
ID=55199862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510756093.5A Expired - Fee Related CN105302564B (zh) | 2015-11-09 | 2015-11-09 | 网络办公软件服务控件及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302564B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506672B (zh) * | 2016-11-25 | 2019-10-08 | 江西金格科技股份有限公司 | 浏览器智能密钥盘的无组件访问方法 |
CN108810045B (zh) * | 2017-04-28 | 2021-03-16 | 武汉斗鱼网络科技有限公司 | 基于Json文件的Flash应用更新方法及系统 |
CN108334361A (zh) * | 2017-07-17 | 2018-07-27 | 北京慧点科技有限公司 | 控件运行的方法及装置 |
CN108964975B (zh) * | 2018-05-30 | 2021-07-20 | 北京五八信息技术有限公司 | 跨域访问处理方法和装置 |
CN110955540B (zh) * | 2019-11-28 | 2024-03-22 | 上海携程商务有限公司 | 插件交互方法 |
CN115291968B (zh) * | 2022-08-01 | 2024-02-23 | 国投智能科技有限公司 | 一种业务处理方法、系统及计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243496A (zh) * | 2014-10-11 | 2014-12-24 | 北京邮电大学 | 一种软件定义网跨域安全代理方法和系统 |
CN104820674A (zh) * | 2015-04-02 | 2015-08-05 | 北京网康科技有限公司 | 一种网页分类方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007093079A1 (fr) * | 2006-02-16 | 2007-08-23 | Zte Corporation | Procédé de mise en oeuvre d'une politique de sécurité en matière de négociation-clé dans un réseau interdomaine de commutation de paquets à plusieurs garde-portes |
-
2015
- 2015-11-09 CN CN201510756093.5A patent/CN105302564B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243496A (zh) * | 2014-10-11 | 2014-12-24 | 北京邮电大学 | 一种软件定义网跨域安全代理方法和系统 |
CN104820674A (zh) * | 2015-04-02 | 2015-08-05 | 北京网康科技有限公司 | 一种网页分类方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105302564A (zh) | 2016-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302564B (zh) | 网络办公软件服务控件及实现方法 | |
CN104270468B (zh) | 一种微信控制物联网设备的系统 | |
CN110417783B (zh) | 一种基于物联网的数据传输方法、装置、储存介质及终端 | |
CN108337236A (zh) | 一种基于Protobuf和HTTP/1.1的gRPC调用方法及装置 | |
CN106656953A (zh) | 一种基于互联网的系统间安全调用接口实现方法 | |
CN104717647B (zh) | 业务能力鉴权方法、设备及系统 | |
US9602329B1 (en) | Dynamic remote procedure call | |
CN107431630A (zh) | 高度可扩展、容错的远程访问架构和与之连接的方法 | |
CN101385015B (zh) | 外壳会话 | |
CN109344345A (zh) | 基于区块链的数据访问系统及访问方法、终端及存储介质 | |
CN107086949A (zh) | 一种用于人与智能设备交互操作的辅助智能装置 | |
CN101894059A (zh) | 一种运行状态的检测方法及系统 | |
CN107632875A (zh) | 电商接口集成方法、系统、计算机设备、可读存储介质 | |
CN104660547B (zh) | 一种实现远距离通信的服务平台 | |
CN107562427A (zh) | 一种基于NodeJS的页面模板引擎渲染方法 | |
CN104461537B (zh) | 一种基于浏览器内核的多业务集成系统 | |
Chakraborty et al. | Let Us Create a Physical IoT Device Using AWS and ESP Module | |
CN103685491B (zh) | 一种应用服务提供方法、系统及相关设备 | |
CN105872010A (zh) | 用于访问跨平台服务的通信系统及方法 | |
CN108989157B (zh) | 用于智能设备控制的方法、装置 | |
KR20110118000A (ko) | 모바일 단말에서 웹브라우저와 로컬 리소스의 연동 장치 및 그 방법 | |
CN106293714A (zh) | 一种基于数据层的改进ajax性能的方法 | |
EP2387179A2 (en) | Method and devices for a computer conference | |
CN103186465A (zh) | 网页用户界面的浏览器兼容性测试方法和系统 | |
CN109040331A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180831 Termination date: 20191109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |