CN104363273B - 一种flex无服务器调用外部程序的方法及*** - Google Patents
一种flex无服务器调用外部程序的方法及*** Download PDFInfo
- Publication number
- CN104363273B CN104363273B CN201410602539.4A CN201410602539A CN104363273B CN 104363273 B CN104363273 B CN 104363273B CN 201410602539 A CN201410602539 A CN 201410602539A CN 104363273 B CN104363273 B CN 104363273B
- Authority
- CN
- China
- Prior art keywords
- socket
- jar bags
- flex
- request
- serverless
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种flex无服务器调用外部程序的方法,包括步骤:步骤1:flex创建socket连接;步骤2:将socket连接封装为jar包,并为jar包创建一个对应的socket界面;步骤3:接收外部程序发送的请求,通过socket接口调用jar包;步骤4:jar包响应外部请求,创建socket通道,将外部请求转换为请求报文;步骤5:根据请求报文的不同类型调用jar包中的不同操作方法进行操作,并生成操作结果;步骤6:通过socket接口返回操作结果,结束。将flex程序与外部程序调用分开,层次分明,开发、发布、部署都极为方便;针对需要调用外部资源的客户端的Flex AIR程序,无需耗费人力物力来部署额外的服务器;跨平台性和扩展性加强。
Description
技术领域
本发明涉及一种flex无服务器调用外部程序的方法及***。
背景技术
Flex是一个高效、免费的开源框架,可用于构建具有表现力的Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR,可以实现跨浏览器、桌面和操作***。虽然只能使用Flex框架构建Flex应用程序,但Adobe Flash BuilderTM(之前称为Adobe FlexBuilderTM)软件可以通过智能编码、交互式遍历调试以及可视设计用户接口布局等功能加快开发。
Flex AIR程序具有良好的客户体验和安全沙盒机制,为众多开发者亲睐,但正是其沙盒机制使得flex程序无法调用本地程序,限制了其可扩展性。
针对此问题,以往的解决方案是额外搭建一个服务器(如tomcat或weblogic),将信息通过服务器传递请求,得到结果后再返回给客户端程序,这种方式加大了开发成本和开发难度,而且部署服务器本身也需要硬件支持和维护成本。
发明内容
本发明所要解决的技术问题是提供一种通过socket接口协议,将flexAIR安装所在的机器作为虚拟服务器,从而处理flex与外部程序的交互的flex无服务器调用外部程序的方法。
本发明解决上述技术问题的技术方案如下:一种flex无服务器调用外部程序的方法,具体包括以下步骤:
步骤1:flex创建socket连接;
步骤2:将socket连接封装为jar包,并为jar包创建一个对应的socket界面;
步骤3:接收外部程序发送的请求,通过socket接口调用jar包;
步骤4:jar包响应外部请求,创建socket通道,将外部请求转换为请求报文;
步骤5:socket通道根据请求报文的不同类型调用jar包中的不同操作方法进行操作,并生成操作结果;
步骤6:通过socket接口返回操作结果,结束。
本发明的有益效果是:本发明通过高度抽象,将flex程序与外部程序调用分开,flex只处理socket接口相关逻辑,外部调用由java处理,层次分明,开发、发布、部署都极为方便;针对需要调用外部资源的客户端的FlexAIR程序,无需耗费人力物力来部署额外的服务器;使用java来调用其他程序,跨平台性和扩展性加强。
本发明一方面可以降低开发成本,socket的jar包和flex连接socket的程序已编写完成;另一方面免去了部署服务器所需的硬件支持和维护成本,只需要维护Flex AIR程序即可;最后,如果需要扩展调用其他程序(如本地的bat程序、c程序、java程序、数据库处理等),只需要将相关程序在socket的jar包中增加即可,相当于是使用java调用了其他程序,由于***使用java调用,所以其跨平台性也是极好的。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述jar包中包括数据库操作、文件操作和远程操作等多种操作方法。
进一步,步骤5中jar包中不存在对应报文类型的操作方法时,将对应此报文类型的外部操作方法添加到socket连接中,将完成添加的socket连接封装为jar包。
进一步,所述步骤4中创建的socket通道中包含jar包中的操作方法,具体包括C程序调用方法、Bat程序调用方法和数据库调用方法。
本发明所要解决的技术问题是提供一种通过socket接口协议,将flexAIR安装所在的机器作为虚拟服务器,从而处理flex与外部程序的交互的flex无服务器调用外部程序的***。
本发明解决上述技术问题的技术方案如下:一种flex无服务器调用外部程序的***,包括创建模块、封装模块、接收请求模块、请求转换模块、操作模块和结果返回模块;
所述创建模块用于使flex创建socket连接;
所述封装模块用于将socket连接封装为jar包,并为jar包创建一个对应的socket界面;
所述接收请求模块用于接收外部程序发送的请求,通过socket接口调用jar包;
所述请求转换模块用于使jar包回应外部请求,创建socket通道,将外部请求转换为请求报文;
所述操作模块用于使socket通道根据请求报文的不同类型调用jar包中的不同操作方法进行操作,并生成操作结果;
所述结果返回模块用于通过socket接口返回操作结果,结束。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述jar包中包括数据库操作、文件操作和远程操作等多种操作方法。
进一步,所述操作模块中jar包中不存在对应报文类型的操作方法时,将对应此报文类型的外部操作方法添加到socket连接中,将完成添加的socket连接封装为jar包。
进一步,所述请求转换模块中创建的socket通道中包含jar包中的操作方法,具体包括C程序调用方法、Bat程序调用方法和数据库调用方法。
附图说明
图1为本发明所述的一种flex无服务器调用外部程序的方法的流程图;
图2为本发明所述的一种flex无服务器调用外部程序的***结构框图;
图3为本发明所述的一种flex无服务器调用外部程序的***具体操作示意图。
附图中,各标号所代表的部件列表如下:
1、创建模块,2、封装模块,3、接收请求模块,4、请求转换模块,5、操作模块,6、结果返回模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明所述的一种flex无服务器调用外部程序的方法,具体包括以下步骤:
步骤1:flex创建socket连接;
步骤2:将socket连接封装为jar包,并为jar包创建一个对应的socket界面;
步骤3:接收外部程序发送的请求,通过socket接口调用jar包;
步骤4:jar包响应外部请求,创建socket通道,将外部请求转换为请求报文;
步骤5:socket通道根据请求报文的不同类型调用jar包中的不同操作方法进行操作,并生成操作结果;
步骤6:通过socket接口返回操作结果,结束。
本发明通过高度抽象,将flex程序与外部程序调用分开,flex只处理socket接口相关逻辑,外部调用由java处理,层次分明,开发、发布、部署都极为方便;针对需要调用外部资源的客户端的Flex AIR程序,无需耗费人力物力来部署额外的服务器;使用java来调用其他程序,跨平台性和扩展性加强。
本发明一方面可以降低开发成本,socket的jar包和flex连接socket的程序已编写完成;另一方面免去了部署服务器所需的硬件支持和维护成本,只需要维护Flex AIR程序即可;最后,如果需要扩展调用其他程序(如本地的bat程序、c程序、java程序、数据库处理等),只需要将相关程序在socket的jar包中增加即可,相当于是使用java调用了其他程序,由于***使用java调用,所以其跨平台性也是极好的。
所述jar包中包括数据库操作、文件操作和远程操作等多种操作方法。
步骤5中jar包中不存在对应报文类型的操作方法时,将对应此报文类型的外部操作方法添加到socket连接中,将完成添加的socket连接封装为jar包。
所述步骤4中创建的socket通道中包含jar包中的操作方法,具体包括C程序调用方法、Bat程序调用方法和数据库调用方法。
如图2所示,为本发明所述的一种flex无服务器调用外部程序的***,包括创建模块1、封装模块2、接收请求模块3、请求转换模块4、操作模块5和结果返回模块6;
所述创建模块1用于使flex创建socket连接;
所述封装模块2用于将socket连接封装为jar包,并为jar包创建一个对应的socket界面;
所述接收请求模块3用于接收外部程序发送的请求,通过socket接口调用jar包;
所述请求转换模块4用于使jar包回应外部请求,创建socket通道,将外部请求转换为请求报文;
所述操作模块5用于使socket通道根据请求报文的不同类型调用jar包中的不同操作方法进行操作,并生成操作结果;
所述结果返回模块6用于通过socket接口返回操作结果,结束。
所述jar包中包括数据库操作、文件操作和远程操作等多种操作方法。
所述操作模块5中jar包中不存在对应报文类型的操作方法时,将对应此报文类型的外部操作方法添加到socket连接中,将完成添加的socket连接封装为jar包。
所述请求转换模块4中创建的socket通道中包含jar包中的操作方法,具体包括C程序调用方法、Bat程序调用方法和数据库调用方法。
如图3所示,为本发明所述的一种flex无服务器调用外部程序的***具体操作示意图,接收外部C程序、外部Bat程序和本地或远程数据库三种外部程序;socket信道中包括对应上述外部程序的三种调用方法,分别为:C程序调用方法、Bat程序调用方法和数据库调用方法。
在数据移植工作台产品开发工作中,使用了该技术,通过将java连接数据库的程序打成jar包,使用socket与Flex通信,成功实现了Flex对远程数据库的访问而没有额外部署服务器,减少了软件大小;并且由于java连接数据库的程序是使用已有的工具类,复用后也减少了开发工作。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种flex无服务器调用外部程序的方法,其特征在于,具体包括以下步骤:
步骤1:flex创建socket连接;
步骤2:将socket连接封装为jar包,并为jar包创建一个对应的socket界面;
步骤3:接收外部程序发送的请求,通过socket接口调用jar包;
步骤4:jar包响应外部请求,创建socket通道,将外部请求转换为请求报文;
步骤5:socket通道根据请求报文的不同类型调用jar包中的不同操作方法进行操作,并生成操作结果;
步骤6:通过socket接口返回操作结果,结束。
2.根据权利要求1所述的一种flex无服务器调用外部程序的方法,其特征在于,所述jar包中包括数据库操作、文件操作和远程操作。
3.根据权利要求1或2所述的一种flex无服务器调用外部程序的方法,其特征在于,步骤5中jar包中不存在对应报文类型的操作方法时,将对应此报文类型的外部操作方法添加到socket连接中,将完成添加的socket连接封装为jar包。
4.根据权利要求3所述的一种flex无服务器调用外部程序的方法,其特征在于,所述步骤4中创建的socket通道中包含jar包中的操作方法,具体包括C程序调用方法、Bat程序调用方法和数据库调用方法。
5.一种flex无服务器调用外部程序的***,其特征在于,包括创建模块、封装模块、接收请求模块、请求转换模块、操作模块和结果返回模块;
所述创建模块用于使flex创建socket连接;
所述封装模块用于将socket连接封装为jar包,并为jar包创建一个对应的socket界面;
所述接收请求模块用于接收外部程序发送的请求,通过socket接口调用jar包;
所述请求转换模块用于使jar包回应外部请求,创建socket通道,将外部请求转换为请求报文;
所述操作模块用于使socket通道根据请求报文的不同类型调用jar包中的不同操作方法进行操作,并生成操作结果;
所述结果返回模块用于通过socket接口返回操作结果,结束。
6.根据权利要求5所述的一种flex无服务器调用外部程序的***,其特征在于,所述jar包中包括数据库操作、文件操作和远程操作。
7.根据权利要求5或6所述的一种flex无服务器调用外部程序的***,其特征在于,所述操作模块中jar包中不存在对应报文类型的操作方法时,将对应此报文类型的外部操作方法添加到socket连接中,将完成添加的socket连接封装为jar包。
8.根据权利要求7所述的一种flex无服务器调用外部程序的***,其特征在于,所述请求转换模块中创建的socket通道中包含jar包中的操作方法,具体包括C程序调用方法、Bat程序调用方法和数据库调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602539.4A CN104363273B (zh) | 2014-10-31 | 2014-10-31 | 一种flex无服务器调用外部程序的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602539.4A CN104363273B (zh) | 2014-10-31 | 2014-10-31 | 一种flex无服务器调用外部程序的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104363273A CN104363273A (zh) | 2015-02-18 |
CN104363273B true CN104363273B (zh) | 2018-04-03 |
Family
ID=52530499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410602539.4A Active CN104363273B (zh) | 2014-10-31 | 2014-10-31 | 一种flex无服务器调用外部程序的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104363273B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107454163A (zh) * | 2017-08-03 | 2017-12-08 | 山东捷瑞数字科技股份有限公司 | 一种多终端展项互联展示控制方法 |
CN109005163B (zh) * | 2018-07-20 | 2021-01-26 | 珠海宏桥高科技有限公司 | 一种http动态请求服务调用方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370862B1 (en) * | 2010-09-30 | 2013-02-05 | Emc Corporation | Communicating between software environments |
-
2014
- 2014-10-31 CN CN201410602539.4A patent/CN104363273B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370862B1 (en) * | 2010-09-30 | 2013-02-05 | Emc Corporation | Communicating between software environments |
Also Published As
Publication number | Publication date |
---|---|
CN104363273A (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10474438B2 (en) | Intelligent cloud engineering platform | |
JP5248964B2 (ja) | ワイヤレス・アプリケーションのスクリーン・エレメント又はデータ・オブジェトを生成する方法及びシステム | |
CN100543698C (zh) | 一种分布式软件***的集成测试***及方法 | |
JP5129917B2 (ja) | 情報システムのモデルベースのアーキテクチャを設計する自動システムおよび方法 | |
CN110716748B (zh) | 业务处理方法、装置、计算机可读介质及电子设备 | |
JP5259924B2 (ja) | レガシーコンポーネントのための動的サービスの生成 | |
CN109857755A (zh) | 一种规则校验方法及装置 | |
CN101841515B (zh) | 可变目标的协议数据单元编解码代码自动生成的实现方法 | |
JP2001502823A (ja) | インターフェイス定義言語によって定義されたデータ構造体を異種システム間で移送するための方法および装置 | |
JP6424823B2 (ja) | 情報処理装置、及び、システム設計支援方法 | |
WO2017049769A1 (zh) | 一种用于在移动应用中提供目标页面的方法与设备 | |
JP2005505055A (ja) | モバイルウェブクライアントに対する方法、装置及びシステム | |
WO2007001640A2 (en) | Data centric workflows | |
CN107959582A (zh) | 一种切片实例的管理方法及装置 | |
CN107181815A (zh) | 一种微应用和微服务交互方法、微应用和*** | |
CN104636122B (zh) | 一种能力组件的共享方法和设备 | |
CN104301401A (zh) | 一种基于快速服务封装的移动应用平台 | |
CN103246547A (zh) | 远程调用对象的方法和*** | |
JP2007503031A (ja) | ウェブ・サービス許可及び展開の基盤 | |
CN104363273B (zh) | 一种flex无服务器调用外部程序的方法及*** | |
CN106201526B (zh) | 业务组件化方法及*** | |
CN104516963A (zh) | 一种Excel数据服务器及其应用 | |
Miravet et al. | Framework for the declarative implementation of native mobile applications | |
US9513878B2 (en) | Component integration by distribution of schema definition on heterogenous platforms | |
CN110413285A (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 |