TWI791316B - 實現程式間通訊的方法及系統 - Google Patents

實現程式間通訊的方法及系統 Download PDF

Info

Publication number
TWI791316B
TWI791316B TW110141318A TW110141318A TWI791316B TW I791316 B TWI791316 B TW I791316B TW 110141318 A TW110141318 A TW 110141318A TW 110141318 A TW110141318 A TW 110141318A TW I791316 B TWI791316 B TW I791316B
Authority
TW
Taiwan
Prior art keywords
application program
application
program
forwarding
electronic device
Prior art date
Application number
TW110141318A
Other languages
English (en)
Other versions
TW202319919A (zh
Inventor
紀秉賢
林專勝
祁羽旋
李憶雯
蔡昀真
Original Assignee
財團法人工業技術研究院
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 財團法人工業技術研究院 filed Critical 財團法人工業技術研究院
Priority to TW110141318A priority Critical patent/TWI791316B/zh
Priority to CN202111479289.6A priority patent/CN116089108A/zh
Priority to US17/561,610 priority patent/US11431820B1/en
Application granted granted Critical
Publication of TWI791316B publication Critical patent/TWI791316B/zh
Publication of TW202319919A publication Critical patent/TW202319919A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本發明提供一種實現程式間通訊的方法及系統。所述方法包括:由第一應用程式依據第一預設程式間通訊方式發送第一訊息予轉傳應用程式,其中第一訊息包括傳輸資料及第二應用程式的識別資訊;由轉傳應用程式因應於第一訊息取得第二應用程式;以及由轉傳應用程式依據第二應用程式的第二預設程式間通訊方式將傳輸資料發送至第二應用程式。

Description

實現程式間通訊的方法及系統
本發明是有關於一種程式通訊機制,且特別是有關於一種實現程式間通訊的方法及系統。
在現行的Android虛擬行動架構(Virtual Mobile Infrastructure,VMI)解決方案中,使用者的使用體驗非常大程度的影響了產品的成敗。如果能夠提供與實體機越相似的使用環境,則越容易被使用者接受,也更能夠提高產品的成功率。使用環境不只限於端使用者(End User)的使用體驗,也包括開發者在開發應用軟體時的方便性。
對於開發者來說,如果能夠在不改變原有的開發習慣的情況下即達到在不同程式間實現訊息溝通的功能,將會提高客戶的使用和開發意願。
在實現程式間通訊(inter-process communication,IPC)時,由於需要管理和處理不同作業系統間的訊息同步、狀態同步等問題,以及網路穿透等複雜的情境,因此複雜度是非常高的。上述情境包含:(1)單一作業系統的不同應用程式之間的溝通;(2)跨作業系統的應用程式之間的訊息溝通;(3)跨越不同的網域之間的溝通。
如果所有的情況均需要由單一的應用程式自行處理,那將會大幅增加程式開發的困難度及複雜性。
有鑑於此,本發明提供一種實現程式間通訊的方法及系統,其可用於解決上述技術問題。
本發明提供一種實現程式間通訊的方法,包括:由一第一應用程式依據第一應用程式的一第一預設程式間通訊方式發送一第一訊息予至少一轉傳應用程式,其中第一訊息至少包括一傳輸資料及一第二應用程式的識別資訊;由至少一轉傳應用程式因應於第一訊息取得對應於識別資訊的第二應用程式;以及由至少一轉傳應用程式依據第二應用程式的一第二預設程式間通訊方式將傳輸資料發送至第二應用程式。
本發明提供一種實現程式間通訊的系統,其經配置以:由一第一應用程式依據第一應用程式的一第一預設程式間通訊方式發送一第一訊息予至少一轉傳應用程式,其中第一訊息至少包括一傳輸資料及一第二應用程式的識別資訊;由至少一轉傳應用程式因應於第一訊息取得對應於識別資訊的第二應用程式;以及由至少一轉傳應用程式依據第二應用程式的一第二預設程式間通訊方式將傳輸資料發送至第二應用程式。
請參照圖1,其是依據本發明第一實施例繪示的系統示意圖。在本實施例中,系統10包括第一電子裝置100,而其可安裝有第一應用程式110、第二應用程式120及特定轉傳程式131。在不同的實施例中,第一電子裝置100例如是各式實體/虛擬的智慧型裝置及/或電腦裝置,並可運行有對應的作業系統(包括但不限於Android、iOS及Windows等)。
在一實施例中,第一應用程式110及第二應用程式120例如是安裝於第一電子裝置100中的各式應用程式。舉例而言,當第一電子裝置100經配置以運行Android作業系統時,第一應用程式110及第二應用程式120個別例如是可由使用者自行安裝、移除及/或啟動的Android應用程式。舉另一例而言,當第一電子裝置100經配置以運行iOS作業系統時,第一應用程式110及第二應用程式120個別例如是可由使用者自行安裝、移除及/或啟動的iOS應用程式,但可不限於此。
在一實施例中,特定轉傳程式131例如是具有管理/存取/控制第一應用程式110及第二應用程式120的權限的系統/管理應用程式,並可運行於第一電子裝置100的背景中,但可不限於此。
一般而言,開發者在設計一個應用程式時,都會為其設計一個預設程式間通訊方式,例如捆束(bundle)、Android介面定義語言(Android Interface Definition Language,AIDL)、內容提供者(content provider)及Socket的其中之一。因此,第一應用程式110可經設計有對應的第一預設程式間通訊方式,且第二應用程式120亦可經設計有對應的第二預設程式間通訊方式,其中第一預設程式間通訊方式可相同或不同於第二預設程式間通訊方式。
一般而言,當第一應用程式110欲將某傳輸資料DD發送至第二應用程式120時,為了讓第二應用程式120能夠順利接收到傳輸資料DD,第一應用程式110的開發者需讓第一應用程式110具有以第二預設程式間通訊方式發送傳輸資料DD的能力。然而,由於每種預設程式間通訊方式的運作機制都相當複雜,因此上述限制將大幅增加開發者在開發第一應用程式110時的難度。
此外,由於第一應用程式110的第二應用程式120可能會因作業系統的安排而被關閉或進入休眠模式,因此第一應用程式110所發送的傳輸資料DD可能因第二應用程式120處於關閉狀態而丟失。此外,當第一應用程式110因作業系統的安排而被關閉或進入休眠模式時,來自第二應用程式120的傳輸資料也可能丟失。
為便於說明,以下假設圖1中的第一應用程式110及第二應用程式120分別為瀏覽器應用程式及條碼讀取器應用程式,但可不限於此。在現有的程式間通訊機制(繪示為圖1中的虛線)中,假設第一應用程式110因故而發送傳輸資料D1至第二應用程式120,而第二應用程式120可相應地執行條碼讀取的操作,並將此操作的結果以傳輸資料D2回傳至第一應用程式110。在此情況下,若第一應用程式110在接收傳輸資料D2之前因故而被關閉/進入休眠,則傳輸資料D2可能會被丟失,進而可能令第一應用程式110無法進行後續操作。
此外,對於跨系統的應用程式間通訊而言,上述限制將進一步增加開發時的挑戰。舉例而言,若有遠端的來源應用程式欲與一虛擬機器中的目標應用程式進行程式間通訊,一般會採用Socket的方式進行網路傳輸。然而,若此虛擬機器係設置於網路位址轉換(Network Address Translation,NAT)環境中,則開發者可能必須透過TURN(Traversal Using Relay NAT)架構來解決NAT穿透的問題,而此將使得開發成本大幅上升。
有鑑於此,本發明提出一種實現程式間通訊的方法,其可用於解決上述技術問題。
在一些實施例中,第一電子裝置100可包括儲存電路及處理器。儲存電路例如是任意型式的固定式或可移動式隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體(Flash memory)、硬碟或其他類似裝置或這些裝置的組合,而可用以記錄多個程式碼或模組。
處理器耦接於儲存電路,並可為一般用途處理器、特殊用途處理器、傳統的處理器、數位訊號處理器、多個微處理器(microprocessor)、一個或多個結合數位訊號處理器核心的微處理器、控制器、微控制器、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)、現場可程式閘陣列電路(Field Programmable Gate Array,FPGA)、任何其他種類的積體電路、狀態機、基於進階精簡指令集機器(Advanced RISC Machine,ARM)的處理器以及類似品。
在本發明的實施例中,處理器可存取儲存電路中記錄的模組、程式碼來實現本發明提出的實現程式間通訊的方法,其細節詳述如下。
請參照圖2,其是依據本發明之一實施例繪示的實現程式間通訊的方法流程圖。本實施例的方法可由圖1的第一電子裝置100執行,以下即搭配圖1所示的元件說明圖2各步驟的細節。
首先,在步驟S210中,第一應用程式110依據第一應用程式110的第一預設程式間通訊方式發送第一訊息M1予至少一轉傳應用程式。
在第一實施例中,第一訊息M1可包括傳輸資料DD及第二應用程式120的識別資訊I1。在一實施例中,識別資訊I1例如是第二應用程式120的專案名稱(package name),或是其他可唯一識別第二應用程式120的資訊,但可不限於此。
在第一實施例中,所述至少一轉傳應用程式可包括特定轉傳應用程式131,而第一應用程式110可依據第一應用程式110的第一預設程式間通訊方式發送第一訊息M1至特定轉傳應用程式131。相應地,在步驟S220中,所述至少一轉傳應用程式因應於第一訊息M1取得對應於識別資訊I1的第二應用程式120。如先前所提及的,由於特定轉傳應用程式131具有管理/存取/控制第一應用程式110及第二應用程式120的權限,因此特定轉傳應用程式131例如可從安裝於第一電子裝置100的應用程式中找出對應於識別資訊I1的應用程式作為第二應用程式120,但可不限於此。
之後,在步驟S230中,所述至少一轉傳應用程式依據第二應用程式120的第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式120。在本發明的實施例中,特定轉傳應用程式131可同時支援第一預設程式間通訊方式及第二預設程式間通訊方式。
在一實施例中,特定轉傳應用程式131可判斷第二應用程式120是否處於啟動狀態(例如不為關閉狀態及/或休眠狀態)。反應於特定轉傳應用程式131判定第二應用程式120處於啟動狀態,特定轉傳應用程式131可直接依據第二應用程式120的第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式120。另一方面,反應於特定轉傳應用程式131判定第二應用程式120處於關閉狀態(或其他類似的狀態),特定轉傳應用程式131可喚醒第二應用程式120,並依據第二應用程式120的第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式120。
亦即,當第二應用程式120可接收傳輸資料DD時,特定轉傳應用程式131可直接以第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式120。另外,當第二應用程式120因故而暫時無法接收傳輸資料DD時,特定轉傳應用程式131可先保存傳輸資料DD,並在第二應用程式120可以接收傳輸資料DD時,以第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式120。
在另一實施例中,在特定轉傳應用程式131收到第一訊息M1之後,特定轉傳應用程式131可先保存傳輸資料DD。在一實施例中,第二應用程式120可定時或不定時向特定轉傳應用程式131發送輪詢信號,而特定轉傳應用程式131可在從第二應用程式120收到輪詢信號時再以第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式120。
由上可知,第一應用程式110可直接採用對應的第一預設程式間通訊方式進行資料的傳輸及/或接收,因此第一應用程式110的開發者不需再為了配合第二應用程式120而另外將第一應用程式110設計為具有以第二預設程式間通訊方式進行傳輸的功能。同理,當第二應用程式120欲發送其他傳輸資料至第一應用程式110時,第二應用程式120可直接採用對應的第二預設程式間通訊方式進行資料的傳輸及/或接收,因此第二應用程式120的開發者也不需再為了配合第一應用程式110而另外將第二應用程式120設計為具有以第一預設程式間通訊方式進行傳輸的功能。藉此,可有效地降低相關的開發成本。
另外,由於傳輸資料DD可保存於特定轉傳應用程式131上,因此可避免因第二應用程式120無法接收資料而丟失傳輸資料DD。
在其他實施例中,本發明的方法亦可適用於跨裝置/跨系統的程式間通訊,相關細節將輔以圖3作進一步說明。
請參照圖3,其是依據本發明第二實施例繪示的系統示意圖。在圖3中,系統30包括第一電子裝置310、第二電子裝置320及中繼伺服器330。在不同的實施例中,第一電子裝置310及第二電子裝置320例如是各式實體/虛擬的智慧型裝置及/或電腦裝置,且第一電子裝置310及第二電子裝置320可運行有相同或不同的作業系統平台。
在第二實施例中,第一電子裝置310可安裝有第一應用程式311及第一轉傳應用程式312,而第二電子裝置320可安裝有第二應用程式321及第二轉傳應用程式322。在第二實施例中,第一應用程式311及第二應用程式321的概念可參考第一實施例中的第一應用程式110及第二應用程式120。另外,第一轉傳應用程式312及第二轉傳應用程式322的概念可參考第一實施例中的特定轉傳應用程式131,故其細節於此不另贅述。
在圖3情境中,第二電子裝置320可設置於NAT環境的內部網路399(intranet)中,且第一電子裝置310可設置於此NAT環境的外部網路中,但可不限於此。
在第二實施例中,中繼伺服器330可安裝有中繼轉傳應用程式331,且中繼伺服器330可設置於此NAT環境的非軍事區(Demilitarized Zone,DMZ)主機上,且中繼轉傳應用程式331可具有此NAT環境的內部網路/外部網路的各個電子裝置及轉傳應用程式的網路位址(例如IP位址及/或媒體存取控制(medium access control,MAC)位址)。
在第二實施例中,系統30中的第一電子裝置310、第二電子裝置320及中繼伺服器330亦可協同運行以實現圖2的方法,其細節詳述如下。
首先,在步驟S210中,第一應用程式310依據第一應用程式310的第一預設程式間通訊方式發送第一訊息M1予至少一轉傳應用程式。
在第二實施例中,第一訊息M1可包括傳輸資料DD、第二應用程式321的識別資訊I1及第二轉傳應用程式322的網路位址DA(例如MAC位址)。在一實施例中,識別資訊I1例如是第二應用程式321的專案名稱,或是其他可唯一識別第二應用程式321的資訊,但可不限於此。
在第二實施例中,所述至少一轉傳應用程式可包括第一轉傳應用程式312、中繼轉傳應用程式331及第二轉傳應用程式322,而第一應用程式311可依據第一應用程式311的第一預設程式間通訊方式發送第一訊息M1至第一轉傳應用程式312。之後,第一轉傳應用程式312可將第一訊息M1轉傳至中繼轉傳應用程式331。
相應地,在步驟S220中,所述至少一轉傳應用程式因應於第一訊息M1取得對應於識別資訊I1的第二應用程式321。如先前所提及的,由於中繼轉傳應用程式331具有上述內部網路/外部網路的各個電子裝置及轉傳應用程式的網路位址,因此中繼轉傳應用程式331可基於第二轉傳應用程式322的網路位址DA將第一訊息M1轉傳至對應於第二應用程式321的第二轉傳應用程式322,其中第二轉傳應用程式322可因應於第一訊息M1而找出第二應用程式321。
在一實施例中,第二轉傳應用程式322例如可從安裝於第二電子裝置320的應用程式中找出對應於識別資訊I1的應用程式作為第二應用程式321,但可不限於此。
之後,在步驟S230中,所述至少一轉傳應用程式依據第二應用程式321的第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式321。
在一實施例中,第二轉傳應用程式322可判斷第二應用程式321是否處於啟動狀態(例如不為關閉狀態及/或休眠狀態)。反應於第二轉傳應用程式322判定第二應用程式321處於啟動狀態,第二轉傳應用程式322可直接依據第二應用程式321的第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式321。另一方面,反應於第二轉傳應用程式322判定第二應用程式321處於關閉狀態(或其他類似的狀態),第二轉傳應用程式322可喚醒第二應用程式321,並依據第二應用程式321的第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式321。
亦即,當第二應用程式321可接收傳輸資料DD時,第二轉傳應用程式322可直接以第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式321。另外,當第二應用程式321因故而暫時無法接收傳輸資料DD時,第二轉傳應用程式322可先保存傳輸資料DD,並在第二應用程式321可以接收傳輸資料DD時,以第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式321。
在另一實施例中,在第二轉傳應用程式322收到第一訊息M1之後,第二轉傳應用程式322可先保存傳輸資料DD。在一實施例中,第二應用程式321可定時或不定時向第二轉傳應用程式322發送輪詢信號,而第二轉傳應用程式322可在從第二應用程式321收到輪詢信號時再以第二預設程式間通訊方式將傳輸資料DD發送至第二應用程式321。
由上可知,第一應用程式311可直接採用對應的第一預設程式間通訊方式進行資料的傳輸及/或接收,因此第一應用程式311的開發者不需再為了配合第二應用程式321而另外將第一應用程式311設計為具有跨裝置/跨作業系統進行傳輸的功能。同理,當第二應用程式321欲發送其他傳輸資料至第一應用程式311時,第二應用程式321可直接採用對應的第二預設程式間通訊方式進行資料的傳輸及/或接收,因此第二應用程式321的開發者也不需再為了配合第一應用程式311而另外將第二應用程式321設計為具有跨裝置/跨作業系統進行傳輸的功能。
此外,雖圖3的第二電子裝置320係設置於NAT環境的內部網路中,但第一應用程式311的開發者可不需為了解決NAT穿透的問題而採用TURN架構來將傳輸資料DD發送至第二應用程式321,而只需讓第一應用程式311以對應的第一預設程式間通訊方式發送資料即可。藉此,可有效地降低相關的開發成本。
另外,由於傳輸資料DD可保存於第二轉傳應用程式322上,因此可避免因第二應用程式321無法接收資料而丟失傳輸資料DD。
為使以上概念更易於理解,以下另舉數個實施例作說明。在一實施例中,假設第二電子裝置320為以虛擬裝置實現的虛擬電子裝置,而第二應用程式321例如是運作於此虛擬電子裝置上的模擬GPS感測器。在此情況下,第二應用程式321將不具有實際測量GPS信號的能力。為了讓第二應用程式321可取得GPS信號的相關資料,第一電子裝置310可實現為實體電子裝置,並可透過安裝於其上的第一應用程式311(例如是GPS感測器)來測量GPS信號並取得相關GPS資料。之後,第一應用程式311可透過第二實施例中教示的機制來將所測得GPS資料傳輸至第二應用程式321,以讓第二應用程式321據以執行後續應用/操作。
在一實施例中,當第二轉傳應用程式322收到如GPS資料這種時序資料時,可先依據各時序資料的資料時間點排序這些時序資料,再將排序後的時序資料提供予第二應用程式321。
具體而言,由於網路傳輸/路由的關係,第二轉傳應用程式322收到的時序資料可能會是亂序的,因此第二轉傳應用程式322可先依上述教示將時序資料進行排序,以讓第二應用程式321可收到順序正確的時序資料,但可不限於此。
在一實施例中,假設第二電子裝置320為以虛擬裝置實現的虛擬電子裝置,而第二應用程式321例如是運作於此虛擬電子裝置上的卡片認證應用程式。在此情況下,第二應用程式321將不具有實際讀取卡片資訊的能力。為了讓第二應用程式321可取得所需的卡片資訊,第一電子裝置310可實現為實體電子裝置,並可透過安裝於其上的第一應用程式311(例如是讀卡器)來從卡片讀取所需的卡片資訊。之後,第一應用程式311可透過第二實施例中教示的機制來將所取得卡片資訊傳輸至第二應用程式321,以讓第二應用程式321據以執行後續應用/操作。
綜上所述,透過在電子裝置(及中繼伺服器)中設置可支援各式預設程式間通訊方式的一或多個轉傳應用程式,本發明實施例可讓應用程式採用對應的預設程式間通訊方式進行裝置內/跨裝置/跨作業系統的資料傳送及/或接收。藉此,可有效地降低應用程式的開發成本。
此外,由於本發明實施例的轉傳應用程式可在應用程式無法接收傳輸資料時將傳輸資料保存於轉傳應用程式上,因此還可避免丟失傳輸資料。
從另一觀點而言,在傳統的網路環境中的訊息傳遞需要在發送端和接收端先建立連線通道,然後再進行發送,而如此會增加很多成本。例如,接收端要一直開啟Socket來等待訊息傳遞等,而此對於系統來說都是必須要額外支出的成本。
然而,本發明實施例提出由第三方程式(即,轉傳應用程式)來收發訊息,全部的訊息收發都透過第三方的轉傳應用程式來處理。在此情況下,應用程式只需要跟轉傳應用程式進行溝通即可,不需要再自行處理傳送訊息的事項。藉此,當應用程式要發送訊息給多個接收端時,並不需要自行維護跟這些接收端之間的連線,而此對於開發和使用上可以節省非常多的成本。例如:當有一個應用程式想要發送訊息給多台外部的行動裝置時,傳統上的應用程式需要自行和各個行動裝置建立連線並且溝通。然而,如果透過本發明提出的概念,則此應用程式僅需將訊息發送給轉傳應用程式,再來由轉傳應用程式透過已經建立好的連線,傳送到各個行動裝置。藉此,除了可節省應用程式傳遞的成本之外,也可以降低應用程式的開發成本。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10, 30:系統 100, 310:第一電子裝置 110, 311:第一應用程式 120, 321:第二應用程式 131:特定轉傳程式 312:第一轉傳應用程式 320:第二電子裝置 322:第二轉傳應用程式 330:中繼伺服器 331:中繼轉傳應用程式 399:內部網路 DD, D1, D2:傳輸資料 DA:網路位址 M1:第一訊息 I1:識別資訊 S210~S230:步驟
圖1是依據本發明第一實施例繪示的系統示意圖。 圖2是依據本發明之一實施例繪示的實現程式間通訊的方法流程圖。 圖3是依據本發明第二實施例繪示的系統示意圖。
S210~S230:步驟

Claims (21)

  1. 一種實現程式間通訊的方法,包括:由一第一應用程式依據該第一應用程式的一第一預設程式間通訊方式發送一第一訊息予至少一轉傳應用程式,其中該第一訊息至少包括一傳輸資料及一第二應用程式的一識別資訊;由該至少一轉傳應用程式因應於該第一訊息取得對應於該識別資訊的該第二應用程式;以及由該至少一轉傳應用程式依據該第二應用程式的一第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式,其中該第一預設程式間通訊方式包括捆束、Android介面定義語言、內容提供者及Socket的其中之一,該第二預設程式間通訊方式包括捆束、Android介面定義語言、內容提供者及Socket的其中之另一。
  2. 如請求項1所述的方法,其中該第二應用程式的該識別資訊包括該第二應用程式的專案名稱。
  3. 如請求項1所述的方法,其中該第一預設程式間通訊方式不同於該第二預設程式間通訊方式。
  4. 如請求項1所述的方法,其中該第一應用程式與該第二應用程式及該至少一轉傳應用程式皆安裝於一第一電子裝置,該至少一轉傳應用程式包括一特定轉傳應用程式,且由該至少一轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式的步驟包括: 反應於判定該第二應用程式處於一啟動狀態,由該特定轉傳應用程式直接依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式;反應於判定該第二應用程式處於一關閉狀態,由該特定轉傳應用程式喚醒該第二應用程式,並依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式。
  5. 如請求項1所述的方法,其中該第一應用程式與該第二應用程式及該至少一轉傳應用程式皆安裝於一第一電子裝置,該至少一轉傳應用程式包括一特定轉傳應用程式,且由該至少一轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式的步驟包括:反應於該特定轉傳應用程式從該第二應用程式接收到一輪詢信號,由該特定轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式。
  6. 如請求項1所述的方法,其中該第一應用程式與該第二應用程式分別安裝於一第一電子裝置及一第二電子裝置,該至少一轉傳應用程式包括一第一轉傳應用程式、一第二轉傳應用程式及一中繼轉傳應用程式,該第一轉傳應用程式、該第二轉傳應用程式及該中繼轉傳應用程式分別設置於該第一電子裝置、該第二電子裝置及一中繼伺服器中,且由該第一應用程式依據該第一應用程式的該第一預設程式間通訊方式發送該第一訊息予該至少一轉傳應用程式的步驟包括: 由該第一應用程式依據該第一應用程式的該第一預設程式間通訊方式發送該第一訊息予該第一轉傳應用程式,其中該第一訊息更包括該第二轉傳應用程式的一網路位址;由該第一轉傳應用程式將該第一訊息轉傳至該中繼轉傳應用程式。
  7. 如請求項6所述的方法,其中該中繼伺服器設置於一非軍事區主機上。
  8. 如請求項6所述的方法,其中由該至少一轉傳應用程式因應於該第一訊息取得對應於該識別資訊的該第二應用程式的步驟包括:由該中繼轉傳應用程式基於該第二轉傳應用程式的該網路位址將該第一訊息轉傳至對應於該第二應用程式的該第二轉傳應用程式,其中該第二轉傳應用程式因應於該第一訊息而找出該第二應用程式。
  9. 如請求項8所述的方法,其中由該至少一轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式的步驟包括:反應於判定該第二應用程式處於一啟動狀態,由該第二轉傳應用程式直接依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式; 反應於判定該第二應用程式處於一關閉狀態,由該第二轉傳應用程式喚醒該第二應用程式,並依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式。
  10. 如請求項8所述的方法,其中由該至少一轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式的步驟包括:反應於該第二轉傳應用程式從該第二應用程式接收到一輪詢信號,由該第二轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式。
  11. 如請求項8所述的方法,其中該傳輸資料包括至少一時序資料,在由該至少一轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式的步驟之前,所述方法更包括:由該第二轉傳應用程式依據各該時序資料的一資料時間點排序該至少一時序資料。
  12. 如請求項6所述的方法,其中該第一應用程式及該第二應用程式對應於不同的作業系統平台。
  13. 如請求項6所述的方法,其中該第二電子裝置設置於一網路位址轉換環境的內部網路中,且該第一電子裝置設置於該網路位址轉換環境的外部網路中。
  14. 如請求項6所述的方法,其中該第一電子裝置及該第二電子裝置的至少其中之一為一虛擬裝置。
  15. 一種實現程式間通訊的系統,其經配置以:由一第一應用程式依據該第一應用程式的一第一預設程式間通訊方式發送一第一訊息予至少一轉傳應用程式,其中該第一訊息至少包括一傳輸資料及一第二應用程式的一識別資訊;由該至少一轉傳應用程式因應於該第一訊息取得對應於該識別資訊的該第二應用程式;以及由該至少一轉傳應用程式依據該第二應用程式的一第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式,其中該第一預設程式間通訊方式包括捆束、Android介面定義語言、內容提供者及Socket的其中之一,該第二預設程式間通訊方式包括捆束、Android介面定義語言、內容提供者及Socket的其中之另一。
  16. 如請求項15所述的系統,其中該系統包括一第一電子裝置,該第一應用程式與該第二應用程式及該至少一轉傳應用程式皆安裝於該第一電子裝置,該至少一轉傳應用程式包括特定轉傳應用程式,且該第一電子裝置經配置以:反應於判定該第二應用程式處於一啟動狀態,由該特定轉傳應用程式直接依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式;反應於判定該第二應用程式處於一關閉狀態,由該特定轉傳應用程式喚醒該第二應用程式,並依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式。
  17. 如請求項15所述的系統,其中該系統包括一第一電子裝置,該第一應用程式與該第二應用程式及該至少一轉傳應用程式皆安裝於該第一電子裝置,該至少一轉傳應用程式包括特定轉傳應用程式,且該第一電子裝置經配置以:反應於該特定轉傳應用程式從該第二應用程式接收到一輪詢信號,由該特定轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式。
  18. 如請求項15所述的系統,其中該系統包括一第一電子裝置、一第二電子裝置及一中繼伺服器,該第一應用程式與該第二應用程式分別安裝於該第一電子裝置及該第二電子裝置,該至少一轉傳應用程式包括一第一轉傳應用程式、一第二轉傳應用程式及一中繼轉傳應用程式,該第一轉傳應用程式、該第二轉傳應用程式及該中繼轉傳應用程式分別設置於該第一電子裝置、該第二電子裝置及該中繼伺服器中,其中該第一電子裝置經配置以:由該第一應用程式依據該第一應用程式的該第一預設程式間通訊方式發送該第一訊息予該第一轉傳應用程式,其中該第一訊息更包括該第二轉傳應用程式的一網路位址;由該第一轉傳應用程式將該第一訊息轉傳至該中繼轉傳應用程式。
  19. 如請求項18所述的系統,其中該中繼伺服器經配置以: 由該中繼轉傳應用程式基於該第二轉傳應用程式的該網路位址將該第一訊息轉傳至對應於該第二應用程式的該第二轉傳應用程式。
  20. 如請求項19所述的系統,其中該第二電子裝置經配置以:反應於判定該第二應用程式處於一啟動狀態,由該第二轉傳應用程式直接依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式;反應於判定該第二應用程式處於一關閉狀態,由該第二轉傳應用程式喚醒該第二應用程式,並依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式。
  21. 如請求項19所述的系統,其中該第二電子裝置經配置以:反應於該第二轉傳應用程式從該第二應用程式接收到一輪詢信號,由該第二轉傳應用程式依據該第二應用程式的該第二預設程式間通訊方式將該傳輸資料發送至該第二應用程式。
TW110141318A 2021-11-05 2021-11-05 實現程式間通訊的方法及系統 TWI791316B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW110141318A TWI791316B (zh) 2021-11-05 2021-11-05 實現程式間通訊的方法及系統
CN202111479289.6A CN116089108A (zh) 2021-11-05 2021-12-06 实现程序间通信的方法及***
US17/561,610 US11431820B1 (en) 2021-11-05 2021-12-23 Method and system for implementing inter-process communications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110141318A TWI791316B (zh) 2021-11-05 2021-11-05 實現程式間通訊的方法及系統

Publications (2)

Publication Number Publication Date
TWI791316B true TWI791316B (zh) 2023-02-01
TW202319919A TW202319919A (zh) 2023-05-16

Family

ID=83007598

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110141318A TWI791316B (zh) 2021-11-05 2021-11-05 實現程式間通訊的方法及系統

Country Status (3)

Country Link
US (1) US11431820B1 (zh)
CN (1) CN116089108A (zh)
TW (1) TWI791316B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915292A (zh) * 2011-08-02 2013-02-06 北京大学 基于多核处理器的通信方法及其检测方法和控制方法
US20140215236A1 (en) * 2013-01-29 2014-07-31 Nvidia Corporation Power-efficient inter processor communication scheduling
TW201525698A (zh) * 2013-12-16 2015-07-01 Tencent Tech Shenzhen Co Ltd 處理程序間通訊的方法及裝置
TW201743207A (zh) * 2016-06-12 2017-12-16 蘋果公司 與一或多個擴充應用程式互動之傳訊應用程式
US20180232315A1 (en) * 2007-11-16 2018-08-16 Vmware, Inc. Vm inter-process communication

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249195B2 (en) 2001-03-30 2007-07-24 Minor Ventures, Llc Apparatus and methods for correlating messages sent between services
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US20060230105A1 (en) 2005-04-06 2006-10-12 Ericom Software B 2001 Ltd Method of providing a remote desktop session with the same look and feel as a local desktop
EP2107755A1 (en) 2008-04-04 2009-10-07 Nokia Corporation Method and apparatus for CPM session management
US8108519B2 (en) * 2008-11-07 2012-01-31 Samsung Electronics Co., Ltd. Secure inter-process communication for safer computing environments and systems
JP4782822B2 (ja) 2008-12-02 2011-09-28 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ交換装置、メッセージ交換方法、及び、メッセージ交換プログラム
CN101754466B (zh) 2008-12-10 2012-09-05 运软网络科技(上海)有限公司 移动虚拟化的基础设施以及基础平台
KR20140001888A (ko) 2010-11-10 2014-01-07 텔레포나크티에볼라게트 엘엠 에릭슨(피유비엘) 인터넷 포로토콜 통신 네트워크에서 신호 메세지의 객체지향 처리를 적용한 엔티티 간의 신호 메세지 교환
US9210212B2 (en) 2011-12-21 2015-12-08 Seiko Epson Corporation Method for host preview during a remote desktop session
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US9384024B2 (en) 2012-12-18 2016-07-05 Dynavisor, Inc. Dynamic device virtualization
US9380523B1 (en) 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for connecting roaming mobile devices to a virtual device platform
US10880191B1 (en) 2014-09-26 2020-12-29 Netflix, Inc. Online computer system with methodologies for distributed trace aggregation and for targeted distributed tracing
EP3272079B1 (en) 2015-03-16 2021-06-02 Webtext Holdings Limited Method and system for transferring messages between messaging systems
US10116605B2 (en) * 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US20180359117A1 (en) 2017-06-12 2018-12-13 Qualcomm Incorporated Virtual channel instantiation over vgi/vgmi

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180232315A1 (en) * 2007-11-16 2018-08-16 Vmware, Inc. Vm inter-process communication
CN102915292A (zh) * 2011-08-02 2013-02-06 北京大学 基于多核处理器的通信方法及其检测方法和控制方法
US20140215236A1 (en) * 2013-01-29 2014-07-31 Nvidia Corporation Power-efficient inter processor communication scheduling
TW201525698A (zh) * 2013-12-16 2015-07-01 Tencent Tech Shenzhen Co Ltd 處理程序間通訊的方法及裝置
TW201743207A (zh) * 2016-06-12 2017-12-16 蘋果公司 與一或多個擴充應用程式互動之傳訊應用程式

Also Published As

Publication number Publication date
CN116089108A (zh) 2023-05-09
TW202319919A (zh) 2023-05-16
US11431820B1 (en) 2022-08-30

Similar Documents

Publication Publication Date Title
WO2021259013A1 (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN107926075B (zh) 支持异构环境下的数据通信的***和方法
US10440099B2 (en) Accessing services provided by computing devices in a network
CN108337308B (zh) Lwm2m客户端与上位机数据通信方法、装置及其***
EP3313041A1 (en) Application download method and device
WO2016150191A1 (zh) 一种数据共享方法及装置
WO2019179329A1 (zh) 应用程序的唤醒方法、装置、终端和介质
CN109889468B (zh) 网络数据的传输方法、***、装置、设备及存储介质
WO2016119623A1 (zh) 一种网络分享的实现方法和装置
CN111459524A (zh) 软件的升级方法、装置、***
CN117439838B (zh) 一种面向边缘计算网关主从机自适应快速组网方法
WO2021057880A1 (zh) 物联网设备的程序升级方法、装置及物联网设备
TWI791316B (zh) 實現程式間通訊的方法及系統
EP3367255B1 (en) Method and device for semantic verification
US10909270B2 (en) Information processing device, mobile object, information processing method, and computer program product
US8645969B2 (en) Method for dynamic discovery of processors and processor capabilities
WO2022083342A1 (zh) 数据传输方法和电子设备
US9049039B2 (en) System and method for managing a control device in a universal plug and play home network
CN113779021A (zh) 数据处理方法、装置、计算机***及可读存储介质
CN112994974A (zh) 集群节点探测方法、装置、集群、设备和介质
CN111512612A (zh) 用于远程管理连接到住宅网关的设备的方法
WO2024093365A1 (zh) 时延的确定方法、装置、电子设备及存储介质
KR102250138B1 (ko) 마이크로서비스 기반의 기기 제어 인터페이스 제공 시스템 및 그 방법
US11609916B1 (en) Robotics application development and monitoring over distributed networks
CN106713453A (zh) 一种应用信息监控方法和装置