[go: up one dir, main page]

CN101739295A - 基于进程调用扩展程序的方法和装置 - Google Patents

基于进程调用扩展程序的方法和装置 Download PDF

Info

Publication number
CN101739295A
CN101739295A CN200910244642A CN200910244642A CN101739295A CN 101739295 A CN101739295 A CN 101739295A CN 200910244642 A CN200910244642 A CN 200910244642A CN 200910244642 A CN200910244642 A CN 200910244642A CN 101739295 A CN101739295 A CN 101739295A
Authority
CN
China
Prior art keywords
subroutine
master routine
corresponding relation
node interface
management
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.)
Granted
Application number
CN200910244642A
Other languages
English (en)
Other versions
CN101739295B (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.)
Caxa Technology Co Ltd
Original Assignee
Caxa 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 Caxa Technology Co Ltd filed Critical Caxa Technology Co Ltd
Priority to CN2009102446425A priority Critical patent/CN101739295B/zh
Publication of CN101739295A publication Critical patent/CN101739295A/zh
Application granted granted Critical
Publication of CN101739295B publication Critical patent/CN101739295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于进程调用扩展程序的方法和装置,本发明的方法,包括:设置主程序中的节点接口与子程序之间的对应关系;在所述主程序执行过程中,当执行到所述节点接口时,按照所述对应关系通过进程调用相对应的所述子程序并执行。本发明的装置,包括:存储单元,用于存储主程序中的节点接口与子程序之间的对应关系;判断单元,用于在所述主程序执行过程中,判断出执行到所述节点接口时,触发进程管理器;所述进程管理器,用于按照所述存储单元保存的所述对应关系通过进程调用相对应的所述子程序;执行单元,用于执行所述主程序和/或子程序。本发明的方法和装置,调用方式简单,且利于用户日后维护更新系统功能,简化了工程维护工作。

Description

基于进程调用扩展程序的方法和装置
技术领域
本发明涉及通信领域,更具体地,涉及一种基于进程调用扩展程序的方法和装置。
背景技术
在产品数据管理PDM系统中,良好的扩展性和二次开发能力是衡量PDM产品的标准之一。目前各主流的PDM系统都提供了较好的二次开发。
目前PDM主程序调用后期开发的代码主要有两种方式。1、PDM产品集成了VBA脚本,PDM产品在一些关键的节点上调用固定参数的VBA脚本,具体调用的脚本名是可配置的,二次开发可以在VBA里完成。2、PDM产品集成自有的语言和编译器,并提供良好的IDE开发环境,用户可以对产品源码进行修改编译。
但如果采用VBA脚本,由于脚本文件的参数是固定的,不便于更改,且脚本二次开发的效果不同于编译程序的开发,开发效果的扩展性较差;如果采用IDE开发环境,对产品源码进行修改编译时,IDE的开发环境不同于产品最初设计时的开发环境,修改编译时具有局限性的问题。
发明内容
本发明旨在提供一种基于进程调用扩展程序的方法和装置,其能够解决上述扩展方案扩展性较差、编译环境具有局限性的问题。
根据本发明的一个方面,提供了一种基于进程调用扩展程序的方法,包括:
设置主程序中的节点接口与子程序之间的对应关系;
在所述主程序执行过程中,当执行到所述节点接口时,按照所述对应关系通过进程调用相对应的所述子程序并执行。
优选地,所述调用过程包括:
同步调用或异步调用所述子程序。
优选地,所述子程序在执行的过程中建立所述主程序和子程序之间数据传输。
优选地,所述数据传输采用共享内存、进程间消息传送、内部进程通道IPC或TCP/IP模式。
优选地,所述子程序的类型采用EXE可执行程序。
本发明还提供一种基于进程调用扩展程序的装置,包括:
存储单元,用于存储主程序中的节点接口与子程序之间的对应关系;
判断单元,用于在所述主程序执行过程中,判断出执行到所述节点接口时,触发进程管理器;
所述进程管理器,用于按照所述存储单元保存的所述对应关系通过进程调用相对应的所述子程序;
执行单元,用于执行所述主程序和/或子程序。
优选地,所述进程管理器包括:
同步调用模块,用于通过同步调用模式调用相对应的所述子程序;或
异步调用模块,用于通过异步调用模式调用相对应的所述子程序。
优选地,所述执行单元包括:
交互模块,用于建立所述主程序和所述子程序之间的数据传输;
处理模块,用于执行所述主程序和/或子程序,并通过所述交互模块传输所述主程序和子程序之间的数据。
优选地,所述交互模块建立数据传输的模式为:
共享内存、进程间消息传送、IPC通道或TCP/IP模式。
本发明的方法和装置,由于进程调用扩展的程序。因此,调用方式简单,易于实现,且利于用户日后维护更新系统功能,或便于工程人员对不同用户的需求设定不同的扩展程序使用,简化了工程维护工作;提高了PDM系统的程序扩展性和消除了编译环境的局限性。
附图说明
附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了实施例一的流程图;
图2示出了实施例二的流程图;
图3示出了实施例三的结构图。
具体实施方式
为清楚说明本发明,下面将参考附图并结合实施例,来详细说明本发明。
参见图1,图1是本发明方法实施例一的流程图,包括:
S11:设置主程序中的节点接口与子程序之间的对应关系;
S12:在主程序执行过程中,当执行到所述节点接口时,按照所述对应关系执行相对应的所述子程序。
本发明的实施例一中,该子程序为扩展程序,可以是可执行的EXE子程序,由于主程序会在多个不同用户中应用,以面对不同的用户需求,而采用可执行的子程序,这样便于以后用户的功能更换和维护,从而使PDM产品在面对多个不同需求用户时,可方便的调整用户使用的功能。
下面给出本发明的实施例二,实施例二是本发明在PDM系统中的一个应用实例。参见图2,包括:
S21:预先保存主程序中的节点接口与子程序之间的对应关系;
将所述对应关系以配置表形式保存,对应关系为每个节点接口与一个或多个子程序的对应关系。
S22:运行主程序,当执行到节点接口时,查询配置表;
S23:在配置表中判断所述节点接口是否存在相对应的需要调用的子程序;
本实施例中的配置表采用数据库表实现,如果没有相对应的调用程序,则执行S24,执行后续程序;如果有相对应的需要调用程序,则执行S25,向进程管理器发送调用请求;
S25:向进程管理器发送调用请求;
PDM主程序向进程管理器提交调用请求,进程管理器收到请求后,执行指定的程序,并记录此程序的相关信息,如返回值、子程序标识等,被调用程序执行完毕后,进程管理器自动消除相关信息。
PDM主程序查询配置表,如果有程序要调用,向进程管理器发调用请求,基本结构如下:
GUID:
IntfaceName:varchar(100)接口名
ClientProcessName:varchar(100)被调用程序名
IsAsynchronous:bool是否异步(true为异步,false同步)
S26:进程管理器执行被调用的子程序,并建立相互间的数据连接;
1)、PDM主程序查询配置表,如果有程序要调用,向进程管理器发调用请求,基本结构如下:
GUID:
IntfaceName:varchar(100)接口名
ClientProcessName:varchar(100)被调用程序名
IsAsynchronous:bool是否异步(true为异步,false同步)
2)、被调用的子程序分为两种,同步和异步,如果同步执行PDM主程序要等待外部的被调用子程序,且读取返回;异步调用则不用等待。
进程管理器对程序调用分两种,1、异步调用,进程管理器不等待被调用程序,继续执行。2、同步调用,进程管理器需要等被调用程序完毕后,才继续向下执行。
进程信息:
GUID:(36位唯一标志码)
ClientName,varchar(100)记录调用的程序名
returnValue,varchar(100)记录程序执行返回值
class_id    int32  对象类ID
object_id   int32  对象ID
3)、PDM主程序和被调用程序之间的数据传输;
目前进程间通讯方法主要有如下几种,1、共享内存2、消息传送3、通道4、TCP/IP等,本文采用通道的方式传递数据。在PDM主程序和被调用的程序间建立一条的通道,进行数据的交换。
通道的建立过程如下:
1)首先在PDM主程序注册内部进程通道IpcServerChannel,指定通道名和通道传输的类。如下代码所示,PDM主程序建立了一条叫“ServerChanel”的通道,传递的数据类为ServerData,PDM端示例代码如下:
                   //Instantiate our server channel.
                   IpcServerChannel channel=new
IpcServerChannel(″ServerChannel″);
                   //Register the server channel.
                   ChannelServices.RegisterChannel(channel,true);
                   //Register this service type.
RemotingConfiguration.RegisterWellKnownServiceType(
                   typeof(ServerData),
                ″ServerData″,
                WellKnownObjectMode.Singleton);
2)、被调用程序需要注册通道,通道名要和与主程序一致,实现主程序和被调用程序之间的数据交换。如下所示,被调用程序注册了和PDM主程序相同的通道名和类,最后获取到m_client对象,此对象的所有方法实际上都在PDM主程序执行,示例代码如下:
    IpcClientChannel channel=new IpcClientChannel();
                 //Register the channel with ChannelServices.
                 ChannelServices.RegisterChannel(channel,true);
                 //Register the client type.
    RemotingConfiguration.RegisterWellKnownClientType(
                 typeof(ServerData),
                 ″ipc://ServerChannel/ServerData″);
                 m_client                                       =
(ServerData)Activator.GetObject(typeof(ServerData),
                       ″ipc://ServerChannel/ServerData″);
上面详细描述了本发明的方法实施例,本发明的方法可在各种形式的装置内实现,下面给出本发明实施例三的装置实施例,并结合附图详细说明。参见图3,包括:
存储单元31,用于存储主程序中的节点接口与子程序之间的对应关系;
判断单元32,用于在所述主程序执行过程中,判断出执行到所述节点接口时,触发进程管理器33;
所述进程管理器33,用于按照所述存储单元31保存的所述对应关系通过进程调用相对应的所述子程序;
执行单元34,用于执行所述主程序和/或子程序。
优选地,所述进程管理器33包括:
同步调用模块,用于通过同步调用模式调用相对应的所述子程序;或
异步调用模块,用于通过异步调用模式调用相对应的所述子程序。
优选地,所述执行单元34包括:
交互模块,用于建立所述主程序和所述子程序之间的数据传输;
处理模块,用于执行所述主程序和/或子程序,并通过所述交互模块传输所述主程序和子程序之间的数据。
优选地,所述交互模块建立数据传输的模式为:
共享内存、进程间消息传送、IPC通道或TCP/IP模式。
本发明上述的方法实施例一和实施例二中的基于进程调用扩展程序的过程均可在装置实施例中实现,在此不一一赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于进程调用扩展程序的方法,其特征在于,包括:
设置主程序中的节点接口与子程序之间的对应关系;
在所述主程序执行过程中,当执行到所述节点接口时,按照所述对应关系通过进程调用相对应的所述子程序并执行。
2.根据权利要求1所述的方法,其特征在于,所述调用过程包括:同步调用或异步调用所述子程序。
3.根据权利要求1或2所述的方法,其特征在于,所述子程序在执行的过程中建立所述主程序和子程序之间数据传输。
4.根据权利要求3所述的方法,其特征在于,所述数据传输采用共享内存、进程间消息传送、内部进程通道IPC或TCP/IP模式。
5.根据权利要求4所述的方法,其特征在于,所述子程序的类型采用EXE可执行程序。
6.一种基于进程调用扩展程序的装置,其特征在于,包括:存储单元、判断单元、进程管理器、执行单元;
所述存储单元,用于存储主程序中的节点接口与子程序之间的对应关系;
所述判断单元,用于在所述主程序执行过程中,判断出执行到所述节点接口时,触发进程管理器;
所述进程管理器,用于按照所述存储单元保存的所述对应关系通过进程调用相对应的所述子程序;所述执行单元,用于执行所述主程序和/或子程序。
7.根据权利要求6所述的装置,其特征在于,所述进程管理器包括:
同步调用模块,用于通过同步调用模式调用相对应的所述子程序;或
异步调用模块,用于通过异步调用模式调用相对应的所述子程序。
8.根据权利要求6或7所述的装置,其特征在于,所述执行单元包括:
交互模块,用于建立所述主程序和所述子程序之间的数据传输;
处理模块,用于执行所述主程序和/或子程序,并通过所述交互模块传输所述主程序和子程序之间的数据。
9.根据权利要求8所述的装置,其特征在于,所述交互模块建立数据传输的模式为:
共享内存、进程间消息传送、IPC通道或TCP/IP模式。
CN2009102446425A 2009-12-31 2009-12-31 基于进程调用扩展程序的方法和装置 Active CN101739295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102446425A CN101739295B (zh) 2009-12-31 2009-12-31 基于进程调用扩展程序的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102446425A CN101739295B (zh) 2009-12-31 2009-12-31 基于进程调用扩展程序的方法和装置

Publications (2)

Publication Number Publication Date
CN101739295A true CN101739295A (zh) 2010-06-16
CN101739295B CN101739295B (zh) 2013-12-04

Family

ID=42462814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102446425A Active CN101739295B (zh) 2009-12-31 2009-12-31 基于进程调用扩展程序的方法和装置

Country Status (1)

Country Link
CN (1) CN101739295B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103105825A (zh) * 2011-11-09 2013-05-15 上海华丰工业控制技术工程有限公司 一种电子控制单元及使用方法
CN103176853A (zh) * 2011-12-23 2013-06-26 腾讯科技(深圳)有限公司 实现多应用间通信的方法及系统
WO2013135188A1 (zh) * 2012-03-14 2013-09-19 优视科技有限公司 扩展程序的调用方法及装置
CN103324542A (zh) * 2013-07-17 2013-09-25 天脉聚源(北京)传媒科技有限公司 一种模块间调用的方法及装置
CN105955802A (zh) * 2016-04-21 2016-09-21 青岛海信移动通信技术股份有限公司 一种移动终端的应用运行方法及移动终端
CN110221577A (zh) * 2018-03-02 2019-09-10 发那科株式会社 数值控制装置
CN112583881A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 一种边缘端数据处理的方法及系统
CN113703339A (zh) * 2021-08-24 2021-11-26 北京京东乾石科技有限公司 一种自动驾驶仿真方法、装置、设备及存储介质
CN114546540A (zh) * 2022-02-16 2022-05-27 中银金融科技有限公司 一种异步调用方法、装置及电子设备
WO2024250921A1 (zh) * 2023-06-07 2024-12-12 京东方科技集团股份有限公司 访问控制方法、装置和程序部署方法、装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398780B (zh) * 2007-09-27 2011-08-24 国际商业机器公司 可基于进程定制调试器的即时调试的方法和系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103105825A (zh) * 2011-11-09 2013-05-15 上海华丰工业控制技术工程有限公司 一种电子控制单元及使用方法
CN103176853A (zh) * 2011-12-23 2013-06-26 腾讯科技(深圳)有限公司 实现多应用间通信的方法及系统
WO2013135188A1 (zh) * 2012-03-14 2013-09-19 优视科技有限公司 扩展程序的调用方法及装置
CN103324542A (zh) * 2013-07-17 2013-09-25 天脉聚源(北京)传媒科技有限公司 一种模块间调用的方法及装置
CN103324542B (zh) * 2013-07-17 2017-04-12 天脉聚源(北京)传媒科技有限公司 一种模块间调用的方法及装置
CN105955802B (zh) * 2016-04-21 2020-06-12 青岛海信移动通信技术股份有限公司 一种移动终端的应用运行方法及移动终端
CN105955802A (zh) * 2016-04-21 2016-09-21 青岛海信移动通信技术股份有限公司 一种移动终端的应用运行方法及移动终端
CN110221577A (zh) * 2018-03-02 2019-09-10 发那科株式会社 数值控制装置
US11340586B2 (en) 2018-03-02 2022-05-24 Fanuc Corporation Numerical controller
CN112583881A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 一种边缘端数据处理的方法及系统
CN112583881B (zh) * 2019-09-30 2023-11-03 北京国双科技有限公司 一种边缘端数据处理的方法及系统
CN113703339A (zh) * 2021-08-24 2021-11-26 北京京东乾石科技有限公司 一种自动驾驶仿真方法、装置、设备及存储介质
CN114546540A (zh) * 2022-02-16 2022-05-27 中银金融科技有限公司 一种异步调用方法、装置及电子设备
WO2024250921A1 (zh) * 2023-06-07 2024-12-12 京东方科技集团股份有限公司 访问控制方法、装置和程序部署方法、装置

Also Published As

Publication number Publication date
CN101739295B (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN101739295B (zh) 基于进程调用扩展程序的方法和装置
CN100366025C (zh) 从主服务到移动台分布信息的方法
CN102591726B (zh) 一种多进程通信方法
CN102075580B (zh) 分布式网络设备中同步数据的存储方法及系统
EP0637151A1 (en) A method and system for maintaining processing continuity to mobile computers in a wireless network
CN102456052B (zh) 一种嵌入式设备与数据库数据同步方法
JPS6170654A (ja) 分散処理システムにおける資源管理方式
WO2004084454A3 (en) Relational model for management information in network devices
CN106534178B (zh) RapidIO网络通用套接字的实现系统及方法
US20110105024A1 (en) Transport independent service discovery
CN116800616B (zh) 虚拟化网络设备的管理方法及相关装置
CN109151803A (zh) 信息交互方法和装置、智能卡芯片和终端
AU2002319498A1 (en) Method and apparatus for transmitting packets within a symmetric multiprocessor system
EP1437019A4 (en) SOFTWARE PROTOCOL FOR A WIRELESS NETWORK SYSTEM
CN111555969B (zh) 一种基于Sub-G星型网络和mesh网络的网关
WO2024067529A1 (zh) 基于rdma的建连方法、装置、设备及存储介质
CN1972276A (zh) 一种协议访问管理方法和系统
WO2003105419A3 (en) MANAGEMENT OF A COMMUNICATION DEVICE BY GPRS AND GSM CONNECTION
CN102137158A (zh) 利用设备代理系统实现信息设备资源共享的方法
CN106878927A (zh) 多功能蓝牙设备及其连接方法
Liu et al. Message communication protocol and operating system design for the distributed loop computer network (DLCN)
CN1863193B (zh) 实现网络安全装置安全策略的方法
CN101335610A (zh) 一种高端以太网交换机中的arp同步方法
CN101119363B (zh) 基于统一接口的内存数据库远程并发访问和界面管理方法
Boonma et al. Toward interoperable publish/subscribe communication between wireless sensor networks and access networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 100080, Room 802, satellite building, No. 63, Zhichun Road, Beijing, Haidian District

Applicant after: Beijing CAXA Technology Co., Ltd.

Address before: 100080, Room 802, satellite building, No. 63, Zhichun Road, Beijing, Haidian District

Applicant before: Beijing Digital Dafang Technology Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: BEIJING DIGITAL DAFANG TECHNOLOGY CO., LTD. TO: CAXA TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant