TW202305583A - 軟體利用系統及軟體利用方法 - Google Patents

軟體利用系統及軟體利用方法 Download PDF

Info

Publication number
TW202305583A
TW202305583A TW111123731A TW111123731A TW202305583A TW 202305583 A TW202305583 A TW 202305583A TW 111123731 A TW111123731 A TW 111123731A TW 111123731 A TW111123731 A TW 111123731A TW 202305583 A TW202305583 A TW 202305583A
Authority
TW
Taiwan
Prior art keywords
software
software development
component library
development device
package
Prior art date
Application number
TW111123731A
Other languages
English (en)
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 日商關連風科技股份有限公司
Publication of TW202305583A publication Critical patent/TW202305583A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本發明提供一種能更易於實現與軟體的利用相關之管理的解決方案。軟體利用系統包括:儲存部,其儲存1個或複數元件庫;及套件提供機構,其回應來自軟體開發裝置之請求,生成於所請求的元件庫中所附加之利用管理資訊的套件,並且將所生成之套件用軟體開發裝置之公開金鑰加密後提供給軟體開發裝置。利用管理資訊,包括為確定軟體開發裝置之識別資訊。軟體開發裝置,於以私密金鑰對加密後之套件進行解密後,利用該套件提供為開發應用之環境。

Description

軟體使用系統及軟體使用方法
本公開涉及軟體利用系統及軟體利用方法。
隨著近年資訊通信技術(Information and Communication Technology:ICT)的進步,各種各樣的事物(things)與網路等被以網路連接。因此,軟體的開發變得越來越重要。
一般藉由再利用現有之軟體資源,提高軟體之開發速度。例如,日本特開2004-206586號公報(專利文獻1)公開一種有效地促進開發專案時利用的軟體零件的流通之軟體零件流通輔助方法。 [先前技術文獻] [專利文獻]
專利文獻1:日本特開2004-206586號公報
[發明所要解決之課題] 日本特開2004-206586號公報(專利文獻1)以在單一的系統內利用軟體零件為前提,但於現實中,於軟體零件的提供者無法管理之範圍內利用軟體零件。
本公開的典型目的,在於提供一種能更易於實現與軟體的利用相關之管理的解決方案。 [用於解決課題之技術方案]
根據本公開的一個實施方式之軟體利用系統包括:儲存部,其儲存1個或複數元件庫;及套件提供機構,其回應來自軟體開發裝置之請求,生成於所請求的元件庫中附加了利用管理資訊之套件,並且將所生成之套件用軟體開發裝置之公開金鑰加密後提供給軟體開發裝置。利用管理資訊包括為確定軟體開發裝置之識別資訊。軟體開發裝置於以私密金鑰對加密後之套件進行解密後,利用該套件提供為開發應用之環境。
利用管理資訊亦可包括元件庫之利用條件及有效期限之資訊。
軟體開發裝置亦可於利用套件所包括的元件庫後的執行代碼中包括該套件所包括之利用管理資訊的至少一部分。
軟體開發裝置亦可發送包括為確定該軟體開發裝置的識別資訊之請求。
軟體利用系統亦可包括管理機構,該管理機構針對元件庫之所有者,管理與該元件庫的利用相應之費用支付。
根據本公開的另一實施方式之軟體利用方法包括:儲存1個或複數元件庫之步驟;及回應來自軟體開發裝置之請求,生成於所請求的元件庫中附加了利用管理資訊之套件,並且將所生成的套件用軟體開發裝置的公開金鑰加密後提供給軟體開發裝置之步驟。利用管理資訊包括為確定軟體開發裝置之識別資訊。軟體利用方法包括在軟體開發裝置中,於以私密金鑰對加密後之套件進行解密後,利用該套件提供為開發應用的環境之步驟。 (發明效果)
根據本公開,能更易於實現與軟體的利用相關之管理。
參照圖式對本發明之實施方式進行詳細說明。再者,對圖中的相同或相當的部分標注相同之圖式標記並不重複其說明。
<A.概要> 首先,對本實施方式的軟體利用系統1中的軟體之製作、流通及利用所涉及之處理順序的一例進行說明。
圖1係概略地表示本實施方式的軟體利用系統1中的處理步驟之示意圖。參照圖1,軟體利用系統1包括管理伺服器100和軟體開發裝置200作為主要之構成要素。再者,於軟體利用系統1中,開發元件庫之個人或法人(以下,亦稱為「元件庫開發者10」)和使用元件庫開發應用之個人或法人(以下,亦稱為「應用開發者20」)可進行參與。
於本說明書中,「元件庫」包含可用於應用開發之軟體資源。例如,元件庫能以類別、功能、功能塊、過程、封裝等任意的方式流通。再者,作為元件庫之流通方式,亦可是原始程式碼、中間表現、物件形式、執行形式等任意之形式。
於本說明書中,「應用」包含任意之程式。即,應用不限於為執行特定處理之程式,亦可包含構成OS(Operating System:作業系統)的至少一部分之程式。再者,應用之形式亦可是原始程式碼、中間表現、物件形式、執行形式等中之任一種。
圖2係表示本實施方式的軟體利用系統1中的處理步驟的一例之時序圖。圖2所示之各步驟與圖1對應地記載。
參照圖1和圖2,首先,元件庫開發者10開發任意之元件庫50S(步驟S1)。元件庫開發者10向管理伺服器100請求所開發的元件庫50S之登記(步驟S2)。在登記之請求中,元件庫50S以原始程式碼之形式發送到管理伺服器100,並且被賦予所有者ID52。所有者ID52係用於確定開發了元件庫的元件庫開發者10之識別資訊,亦用於確定利用了開發的元件庫的情況下的使用費等之支付目的地等。
管理伺服器100對來自元件庫開發者10之元件庫50S進行驗證,並且若驗證結果沒有問題,則將元件庫50與所有者ID52對應起來進行登記(步驟S3)。如此,管理伺服器100將與所有者ID52建立了對應之元件庫50依次儲存於資料庫56。即,管理伺服器100具有資料庫56作為儲存1個或複數元件庫50之儲存部。此外,元件庫50可以直接登記原始程式碼的形式之元件庫50S,亦可藉由從元件庫50S生成之中間表現、物件形式來進行登記。
管理伺服器100具有元件庫利用管理資訊80。根據元件庫50向資料庫56之登記,管理伺服器100追加與元件庫利用管理資訊80對應之條目。元件庫利用管理資訊80包括為對資料庫56中登記的元件庫50的利用進行管理之資訊。
每當元件庫開發者10開發和登記元件庫50時,執行如上的處理。其次,對利用1個或複數元件庫50開發應用之情況進行說明。
應用開發者20選擇應用開發所需之1個或複數元件庫,並向管理伺服器100請求所需之元件庫50(步驟S4)。從軟體開發裝置200向管理伺服器100發送之元件庫請求60包含機器ID62。機器ID62係用於確定元件庫請求60的發送源的軟體開發裝置200之識別資訊。如此,軟體開發裝置200發送包含為確定軟體開發裝置200的識別資訊(機器ID62)之請求(元件庫請求60)。
管理伺服器100回應元件庫請求60,生成所請求的元件庫50之套件70。更具體而言,管理伺服器100對物件元件庫50附加利用管理資訊54(步驟S5)。作為利用管理資訊54,亦可採用遵循DRM(Digital Rights Management)之資料結構及管理技術。利用管理資訊54包括機器ID62。例如,於利用管理資訊54中,使用機器ID62規定對應的元件庫之利用範圍。
隨後,管理伺服器100對由附加了利用管理資訊54的元件庫50構成之套件70進行加密(步驟S6)。軟體開發裝置200具有私密金鑰250與公開金鑰252之金鑰對。在套件70的加密中,利用發送了元件庫請求60的軟體開發裝置200之公開金鑰252。
如此,管理伺服器100回應來自軟體開發裝置200之請求(元件庫請求60),生成於所請求之元件庫50中附加了利用管理資訊54之套件70,並且將所生成之套件70用軟體開發裝置200之公開金鑰252加密後提供給軟體開發裝置200。此時,利用管理資訊54包含為確定軟體開發裝置200之識別資訊(機器ID62)。
再者,管理伺服器100執行與元件庫50的利用相關之計費處理(步驟S7)。更具體而言,管理伺服器100於元件庫利用管理資訊80的對應之條目中追加或更新計費處理所需之資訊。
最終,由管理伺服器100對軟體開發裝置200下載加密後之套件70(步驟S8)。
軟體開發裝置200使用私密金鑰250對加密後之套件70進行解密(步驟S9)。藉此,於軟體開發裝置200中可利用套件70(元件庫50)。
應用開發者20利用套件70(元件庫50)開發應用(步驟S10)。軟體開發裝置200由開發的應用程式生成執行代碼90(步驟S11)。所生成的執行代碼90被提供給任意之設備300。
藉由如上的處理步驟,開發出由任意的設備300執行之應用。即,軟體開發裝置200於以私密金鑰250對加密後之套件70進行解密後,利用套件70提供用於開發應用之環境。
再者,管理伺服器100將與元件庫50的利用相關的使用費支付給元件庫開發者10(步驟S12)。關於使用費之支付,可採用任意的方法。如此,管理伺服器100對元件庫50的所有者(元件庫開發者10)管理與元件庫50的利用相應之費用支付。
於軟體利用系統1中,因在所下載的元件庫50中附加有包含下載目的地的軟體開發裝置200的機器ID62的利用管理資訊54,因此在下載目的地的軟體開發裝置200以外,可降低元件庫50被非法利用之可能性。
再者,由於使用下載目的地的軟體開發裝置200的公開金鑰252對套件70進行加密,因此在下載目的地的軟體開發裝置200以外,可降低元件庫50被非法利用之可能性。
<B.硬體結構例> 其次,說明構成本實施方式的軟體利用系統1的裝置之硬體結構例。
(b1:管理伺服器100) 管理伺服器100典型地由通用電腦實現。
圖3係表示構成本實施方式的軟體利用系統1的管理伺服器100的硬體結構例之示意圖。參照圖3,管理伺服器100包括1個或複數處理器102、主記憶體104、輸入部106、顯示器108、儲存裝置110、通信介面120作為主要元件。此等元件經由內部母線122連接。
處理器102由例如CPU(Central Processing Unit)、GPU(Graphic s Processing Unit)等構成。可配置複數處理器102,亦可採用具複數核之處理器102。
主記憶體104由例如DRAM(Dynamic Random Access Memory:動態隨機存取記憶體)、SRAM(Static Random Access Memory:靜態隨機存取記憶體)等易失性儲存裝置構成。
儲存裝置110由例如硬碟、SSD(Solid State Drive:固態硬碟)等非易失性儲存裝置構成。
在儲存裝置110中儲存的程式中,指定的代碼於主記憶體104上展開,處理器102藉由依次執行於主記憶體104上展開之程式碼中包含的電腦可讀指令(computer-readable instructions),實現後述之各種功能。
輸入部106接受任意之輸入操作。顯示器108顯示處理器102之處理結果等。通信介面120在與任意的外部裝置之間交換資料。
儲存裝置110儲存用於實現請求登記的元件庫50之驗證及登記的處理之驗證登記引擎112、及用於實現與在軟體開發裝置200中的元件庫50的利用相關的處理之利用管理引擎114。再者,儲存裝置110實現登記有元件庫50之資料庫56。
(b2:軟體開發裝置200) 關於軟體開發裝置200,亦係典型地藉由通用電腦實現。
圖4係表示構成本實施方式的軟體利用系統1的軟體開發裝置200的硬體結構例之示意圖。參照圖4,軟體開發裝置200包括處理器202、主記憶體204、輸入部206、顯示器208、儲存裝置210、通信介面220作為主要元件。此等元件經由內部母線222連接。
處理器202由例如CPU、GPU等構成。主記憶體204由DRAM或SRAM等易失性儲存裝置構成。儲存裝置210由例如硬碟、SSD等非易失性儲存裝置構成,維持由處理器202執行之各種程式、各種資料。
在儲存裝置210中儲存的程式中,指定的代碼於主記憶體204上展開,處理器202藉由依次執行於主記憶體204上展開之程式碼中包含的電腦可讀指令,實現後述之各種功能。
輸入部206受理任意之輸入操作。顯示器208顯示處理器202之處理結果等。通信介面220在與任意的外部裝置之間交換資料。
儲存裝置210儲存用於實現整合式開發環境之軟體開發程式212和由使用者任意創建之應用214。此外,儲存裝置210可儲存由管理伺服器100下載之套件70和從應用214生成之執行代碼90。
軟體開發裝置200亦可具有用於從儲存包含電腦可讀指令的軟體開發程式212的非過渡性(non-transitory)的介質讀出該儲存的程式等之元件。介質亦可為例如DVD(Digital Versatile Disc)等光學介質、USB記憶體等半導體介質等。此外,軟體開發程式212不僅可經由介質安裝於軟體開發裝置200中,亦可從網路上的分佈伺服器被提供。
(b3:其他) 管理伺服器100及軟體開發裝置200的全部或者一部分亦可使用組裝有相當於電腦可讀指令的電路的ASIC(Application Specific Integrated Circuit:特殊應用積體電路)等硬線電路實現。或亦可於FPGA(Field-Programmable Gate Array:現場可程式設計閘陣列)上使用相當於電腦可讀指令的電路實現。再者,亦可適當組合處理器及主記憶體、ASIC、FPGA等實現。
再者,元件庫開發者10所使用之軟體開發裝置亦可藉由通用電腦實現。
<C.管理伺服器100的功能結構和處理> 隨後,將說明管理伺服器100的功能結構和處理。
(c1:元件庫利用管理資訊) 圖5係表示本實施方式的軟體利用系統1的管理伺服器100所具有的元件庫利用管理資訊80的一例之示意圖。參照圖5,元件庫利用管理資訊80包括登記管理資訊82和利用管理資訊84。於圖5中,作為一個例子,表示了以鍵值儲存形式管理資料之範例,但亦可採用任意之資料管理方法。
登記管理資訊82包括為管理資料庫56中登記的元件庫50之資訊。利用管理資訊84包括為管理元件庫50的利用之資訊。
更具體地,登記管理資訊82針對每個條目包括元件庫ID821、元件庫名稱822、所有者ID823、驗證日期時間824、有效期限825和附加資訊826。
元件庫ID821中儲存為用於確定物件元件庫50之識別資訊。於元件庫名稱822中儲存物件元件庫50之名稱。所有者ID823中儲存為用於確定物件元件庫50的所有者之識別資訊。在驗證日期時間824中儲存驗證了物件元件庫50之日期時間。在有效期限825中儲存物件元件庫50之可利用期限。在附加資訊826中儲存與物件元件庫50相關聯的任意之資訊。
管理伺服器100請求登記新的元件庫50,若驗證結果沒有問題,則將元件庫50儲存於資料庫56中,並且在登記管理資訊82中追加新的條目。
利用管理資訊84針對每個條目包括元件庫ID841、機器ID842、許可843和有效期限844。
於元件庫ID841中儲存為用於確定物件元件庫50之識別資訊。於機器ID842中儲存為用於確定利用物件元件庫50的軟體開發裝置200之識別資訊。或亦可於機器ID842中儲存用於確定利用物件元件庫50的軟體開發程式212之識別資訊。於許可843中儲存許可的類型作為物件元件庫50之利用條件。作為許可的種類,例如可設想:軟體開發裝置200中的應用214之開發、及從應用214生成的執行代碼90之執行可無限制地進行的許可、僅可無限制地進行軟體開發裝置200中的應用214的開發的許可、用於進行從應用214生成的執行代碼90的許可等。在有效期限844中儲存有對應的許可的有效期限。
元件庫50的利用被請求時,管理伺服器100經由規定之處理於利用管理資訊84中追加新條目。
管理伺服器100亦可管理藉由與應用開發者20等的契約而決定的許可的種類及有效期限。或者,與管理伺服器100不同的主體亦可具有許可之管理功能。
(c2:元件庫50之驗證) 管理伺服器100進行的元件庫50之驗證包括元件庫50所包含的脆弱性之確認、元件庫50所包含的代碼的冗餘度之確認等。關於元件庫50之驗證,可採用任意之處理。
(c3:利用管理資訊54) 圖6係表示本實施方式的軟體利用系統1的管理伺服器100生成之套件70中包含的利用管理資訊54的一例之示意圖。參考圖6,利用管理資訊54包括元件庫ID541、元件庫雜湊值542、機器ID543、公開金鑰544、許可545、有效期限546和管理伺服器位址547作為資訊。
元件庫ID541中儲存為用於確定物件元件庫50之識別資訊。於元件庫雜湊值542中儲存根據物件元件庫50的資料計算出之雜湊值。於機器ID543中儲存為用於確定作為許可物件的軟體開發裝置200之識別資訊。在公開金鑰544中儲存有作為許可物件的軟體開發裝置200的公開金鑰252之數值。於許可545中儲存與物件元件庫50的利用相關的許可之內容或類別。在有效期限546中儲存物件的許可之有效期限。管理伺服器位址547儲存管理伺服器100之IP位址等。
此外,利用管理資訊54中包含的資訊不限於圖6所示之資訊,可根據需要包含任意之資訊。
根據如圖6所示之利用管理資訊54,管理物件元件庫50和包括元件庫50的套件70之利用。
<D.軟體開發裝置200之功能結構和處理> 隨後,對軟體開發裝置200之功能結構及處理進行說明。
圖7係表示本實施方式的軟體利用系統1的軟體開發裝置200的功能結構例之示意圖。
圖7所示之各模組亦可藉由軟體開發裝置200之處理器202執行軟體開發程式212實現。
軟體開發裝置200包括套件儲存部230、解密模組232、許可管理模組234、編輯器236、執行碼生成模組238作為功能結構。
套件儲存部230儲存由軟體開發裝置200下載之1個或複數套件70。解密模組232使用私密金鑰250對加密後之套件70進行解密。許可管理模組234參照元件庫利用管理資訊80,在與管理伺服器100之間確認許可之有無及內容等。編輯器236提供用於開發應用之環境。用戶操作編輯器236,生成應用之原始程式碼240。
執行代碼生成模組238從原始程式碼240生成與應用相當之執行代碼90。執行代碼生成模組238包括解析器、編譯器、連結器等。執行代碼生成模組238參照套件70所包含之元件庫50等,從原始程式碼240生成適當之執行代碼90。執行代碼生成模組238於生成執行代碼90時,由許可管理模組234獲取許可之資訊,生成與獲取的許可之資訊對應的執行代碼90。
<E.執行代碼> 其次,對由軟體開發裝置200生成的執行代碼90之範例進行說明。
圖8係表示於本實施方式的軟體利用系統1中生成的執行代碼90的一例之示意圖。
於圖8(A)中表示於應用的原始程式碼240的一部分以原始程式碼的形式裝入有元件庫50之情況。藉由對包含元件庫50的原始程式碼240進行編譯等而生成執行代碼90。
於圖8B中表示應用的原始程式碼240參照物件形式的元件庫50之情況。於此種情況下,當從應用的原始程式碼240生成執行代碼90時,裝入有物件形式之元件庫50。再者,亦可代替將物件形式的元件庫50直接裝入執行代碼90之形式,而在執行代碼90中間接地參照物件形式之元件庫50。
如此,可藉由與元件庫50的分發形式相應之方法生成執行碼90。
於圖8所示之範例中,設想了軟體開發裝置200可無限制地進行利用元件庫50生成的應用(執行代碼90)的執行之許可。但亦可於安裝或執行應用(執行代碼90)時確認元件庫50之許可。
圖9係表示於本實施方式的軟體利用系統1中生成的執行代碼90的另一例之示意圖。於圖9中表示在由設備300執行執行代碼90時確認許可之範例。
參照圖9,執行代碼90包括物件形式之元件庫50、利用管理資訊54A及許可管理模組92。軟體開發裝置200生成包含套件70所包含的利用管理資訊54的全部或一部分之利用管理資訊54A,並裝入執行代碼90。再者,軟體開發裝置200將用於實現確認許可的處理之許可管理模組92裝入執行代碼90中。
如此,軟體開發裝置200亦可於利用了套件70所包含的元件庫50的執行代碼90中包含套件70所包含之利用管理資訊54的至少一部分。
當於設備300中執行執行代碼90時,許可管理模組92參考利用管理資訊54A確認所需之許可。例如,許可管理模組92向管理伺服器100發送利用管理資訊54A中包括之元件庫ID和機器ID,藉以確認存在元件庫50的利用所需之許可。僅在存在所需之許可的情況下,亦可啟動執行代碼90。或者,許可管理模組92亦可僅在輸入了表示許可的代碼的情況下,啟動執行代碼90。
如此,於圖9所示之範例中,藉由軟體開發裝置200生成包含許可管理模組92和利用管理資訊54A之執行代碼90,可根據執行代碼90被執行之頻率和時間,更可靠地掌握執行代碼90中包含的元件庫50之利用。
圖10係表示於本實施方式的軟體利用系統1中生成的執行代碼90的又另一例之示意圖。於圖10中表示在將執行代碼90安裝於設備300時確認許可之範例。
參照圖10,剛生成之後的執行代碼90包含物件形式之元件庫50和利用管理資訊54A。在從軟體開發裝置200向設備300安裝執行代碼90時,軟體開發裝置200的許可管理模組234參照利用管理資訊54A確認所需之許可。
例如,許可管理模組234向管理伺服器100發送利用管理資訊54A中包括之元件庫ID和機器ID,藉以確認存在元件庫50的利用所需之許可。僅當存在所需之許可時,許可管理模組234可以將啟動資訊94裝入執行代碼90中。或者,許可管理模組234亦可僅在輸入了表示許可的代碼的情況下,將啟動資訊94裝入執行代碼90中。
執行代碼90僅在裝入有效的啟動資訊94之情況下可於設備300等中執行。
如此,於圖10所示之範例中,於軟體開發裝置200向設備300安裝執行代碼90時,確認許可,因此能更可靠地掌握執行代碼90中包含的元件庫50之利用。
圖11係表示於本實施方式的軟體利用系統1中生成的執行代碼90的又另一例之示意圖。於圖11中表示在執行代碼90被執行時確認執行環境之範例。
參照圖11,執行代碼90於設備等的執行環境96上執行。執行環境96包含執行代碼90被執行的設備之硬體資源及軟體資源。當指示執行代碼90之執行時,執行代碼90中包含的許可管理模組92判斷執行執行代碼90的執行環境96是否符合預先設定之要件。若執行環境96不符合要件,則許可管理模組92中斷執行代碼90之執行。
預先設定之要件例如可列舉出處理器能力、記憶體剩餘容量、網路介面之有無、安全晶片之有無等。此外,在使用認證的IP位址之執行環境96中,亦可判斷是否為預先設定之IP位址等。此種要件既可包含於利用管理資訊54A中,亦可於許可管理模組92的內部被編碼。
許可管理模組92亦可執行確認如上所記載的許可之處理。
如上所記載,藉由許可管理模組92判斷執行環境96是否滿足預先設定之要件,可保證適當地執行執行代碼90。
圖12係表示於本實施方式的軟體利用系統1中生成的執行代碼90的又另一例之示意圖。於圖12中表示了許可管理模組92被準備在執行環境96中之範例。執行環境96例如亦可由執行代碼90所執行的設備之韌體等提供。
當從執行環境96指示執行代碼90之執行時,執行環境96的許可管理模組92參照執行代碼90中包含的利用管理資訊54A確認必要之許可。此外,許可管理模組92可進一步執行上述之任意處理。
如此,藉由在執行環境96中準備許可管理模組92,可減少執行代碼90本身之尺寸,可使向設備的裝入、發佈等更加容易。
<F.其他安裝方式> 軟體開發裝置200具私密金鑰250與公開金鑰252之金鑰對,但亦可將公開金鑰252用作被認證之IP位址。藉由將軟體開發裝置200之公開金鑰252用作IP地址,可對被賦予了套件70的許可之軟體開發裝置200發送套件70。藉此,可降低套件70的發送目的地被偽裝之可能性。
<G.優點> 根據本實施方式之軟體利用系統,應用開發者20可利用元件庫開發者10開發的任意之元件庫50開發應用。於利用元件庫50時,於元件庫50中包含與利用目的地的軟體開發裝置200對應之元件庫利用管理資訊80,因此能更可靠地管理元件庫50之利用實績或利用所涉及之使用費。藉由採用此種結構,對元件庫開發者10和應用開發者20此二者具有優點,可實現元件庫之充實化及應用開發之高效化。
應認為本次公開的實施方式在所有方面皆為例示而非限制性的。本發明之範圍非由上述說明表示,而係由請求之範圍表示,意在包括與請求的範圍等同之意及範圍內之所有變更。
1:軟體利用系統 10:元件庫開發者 20:應用開發者 50、50S:元件庫 52、823:所有者ID 54、54A、84:利用管理資訊 56:資料庫 60:元件庫請求 62、543、842:機器ID 70:套件 80:元件庫利用管理資訊 82:登記管理資訊 90:執行代碼 92、234:許可管理模組 94:啟動資訊 100:管理伺服器 102、202:處理器 104、204:主記憶體 106、206:輸入部 108、208:顯示器 110、210:儲存裝置 112:驗證登記引擎 114:利用管理引擎 120、220:通信介面 122、222:內部母線 200:軟體開發裝置 212:軟體開發程式 214:應用 230:套件儲存部 232:解密模組 236:編輯器 238:執行代碼生成模組 240:原始程式碼 250:私密金鑰 252、544:公開金鑰 300:設備 541、821、841:元件庫ID 542:元件庫雜湊值 545、843:許可 546、825、844:有效期限 547:管理伺服器地址 822:元件庫名稱 824:驗證日期時間 826:附加資訊 S1~S12:步驟
圖1係概略地表示本實施方式的軟體利用系統中的處理步驟之示意圖。 圖2係表示本實施方式的軟體利用系統中的處理步驟的一例之時序圖。 圖3係表示構成本實施方式的軟體利用系統的管理伺服器的硬體結構例之示意圖。 圖4係表示構成本實施方式的軟體利用系統的軟體開發裝置的硬體結構例之示意圖。 圖5係表示本實施方式的軟體利用系統的管理伺服器所具有的元件庫利用管理資訊的一例之示意圖。 圖6係表示本實施方式的軟體利用系統的管理伺服器生成之套件中包含的利用管理資訊的一例之示意圖。 圖7係表示本實施方式的軟體利用系統的軟體開發裝置的功能結構例之示意圖。 圖8係表示於本實施方式的軟體利用系統中生成的執行代碼的一例之示意圖。 圖9係表示於本實施方式的軟體利用系統中生成的執行代碼的另一例之示意圖。 圖10係表示於本實施方式的軟體利用系統中生成的執行代碼的又另一例之示意圖。 圖11係表示於本實施方式的軟體利用系統中生成的執行代碼的又另一例之示意圖。 圖12係表示於本實施方式的軟體利用系統中生成的執行代碼的又另一例之示意圖。
1:軟體利用系統
10:元件庫開發者
50、505:元件庫
52:所有者ID
54:利用管理資訊
56:資料庫
60:元件庫請求
62:機器ID
70:套件
80:元件庫利用管理資訊
90:執行代碼
100:管理伺服器
200:軟體開發裝置
250:私密金鑰
252:公開金鑰
300:設備
S1~S12:步驟

Claims (6)

  1. 一種軟體利用系統,其具備: 儲存部,其儲存1個或複數元件庫;及 套件提供機構,其回應來自軟體開發裝置之請求,生成於所請求的元件庫中所附加利用管理資訊之套件,並且將所生成之套件以所記載軟體開發裝置之公開金鑰加密後提供給所記載軟體開發裝置, 所記載利用管理資訊,包括為確定所記載軟體開發裝置之識別資訊, 所記載軟體開發裝置於以私密金鑰對加密後的所記載套件進行解密後,利用該套件提供為開發應用之環境。
  2. 如請求項1所記載之軟體利用系統,其中利用管理資訊,包括元件庫之利用條件及有效期限之資訊。
  3. 如請求項1所記載之軟體利用系統,其中軟體開發裝置於利用所記載套件所包括的元件庫後之執行代碼中,包括該套件所包括的利用管理資訊之至少一部分。
  4. 如請求項1所記載之軟體利用系統,其中軟體開發裝置發送包括為確定該軟體開發裝置的識別資訊之請求。
  5. 如請求項1所記載之軟體利用系統,其中軟體利用系統進一步具備管理機構,該管理機構針對所記載元件庫之所有者,管理與該元件庫的利用相應的費用支付。
  6. 一種軟體利用方法,其中儲存1個或複數元件庫之步驟;及 回應來自軟體開發裝置之請求,生成於所請求的元件庫中所附加的利用管理資訊之套件,並且將所生成之套件以所記載軟體開發裝置之公開金鑰加密後提供給所記載軟體開發裝置之步驟, 所記載利用管理資訊,包括為確定所記載軟體開發裝置之識別資訊, 所記載軟體利用方法,具備在所記載軟體開發裝置中,於以私密金鑰對加密後的所記載套件進行解密後,利用該套件提供為開發應用的環境之步驟。
TW111123731A 2021-06-25 2022-06-24 軟體利用系統及軟體利用方法 TW202305583A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-105471 2021-06-25
JP2021105471A JP2023004017A (ja) 2021-06-25 2021-06-25 ソフトウェア利用システムおよびソフトウェア利用方法

Publications (1)

Publication Number Publication Date
TW202305583A true TW202305583A (zh) 2023-02-01

Family

ID=84545492

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111123731A TW202305583A (zh) 2021-06-25 2022-06-24 軟體利用系統及軟體利用方法

Country Status (5)

Country Link
EP (1) EP4361795A1 (zh)
JP (1) JP2023004017A (zh)
KR (1) KR20240010048A (zh)
TW (1) TW202305583A (zh)
WO (1) WO2022270626A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
JP2004206586A (ja) 2002-12-26 2004-07-22 Toshiba Corp ソフトウェア部品流通支援方法、その方法を実現するためのソフトウェア部品流通支援システムおよびプログラム
JP2008146479A (ja) * 2006-12-12 2008-06-26 Toshiba Corp ソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア部品管理システム

Also Published As

Publication number Publication date
WO2022270626A1 (ja) 2022-12-29
KR20240010048A (ko) 2024-01-23
EP4361795A1 (en) 2024-05-01
JP2023004017A (ja) 2023-01-17

Similar Documents

Publication Publication Date Title
KR101219819B1 (ko) 디지털 어플리케이션을 라이센싱하기 위한 유연한 라이센싱 아키텍처
JP3753885B2 (ja) 国際暗号体系のホストシステム要素
US9262598B1 (en) Digital rights management for applications
JP5636371B2 (ja) 汎用コンピューティングデバイスにおけるコード実行制御および再帰的セキュリティプロトコルでのコード実行制御のための方法およびシステム
US10027683B2 (en) Shared symmetric key encryption
JP2002140126A (ja) プログラム配布システム、暗号化プログラム配布装置、プログラム不具合情報収集システム、及びプログラム配布方法
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
TWI598764B (zh) 透過線上伺服器與在安全作業系統中執行程式碼的內容保護
CN111656345B (zh) 启用容器文件中加密的软件模块
WO2010139258A1 (zh) 一种软件版权保护方法、设备和系统
KR20200099041A (ko) 블록체인 기반 콘텐츠 이용 권한 관리 장치 및 방법
KR20130101964A (ko) 플랫폼 컴포넌트들의 보안 업그레이드 또는 다운그레이드를 위한 방법 및 시스템
JPH1031587A (ja) データ端末装置およびコンピュータプログラム
TW200820076A (en) Portable mass storage with virtual machine activation
US20030212639A1 (en) Method and system for providing secure authoring services for protected software
JP5797666B2 (ja) 計算リソースの安全な実行
CN109063422B (zh) 一种付费应用的下载运行方法、加固方法和服务器
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
TW202305583A (zh) 軟體利用系統及軟體利用方法
Barbareschi et al. Partial FPGA bitstream encryption enabling hardware DRM in mobile environments
CN111611551A (zh) 一种基于国密算法的动态链接库保护方法及其系统
RU2812867C1 (ru) Защита двоичных файлов типовых коммерческих программ от пиратства с использованием аппаратных анклавов
KR101611104B1 (ko) 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법
CN118349963A (zh) 一种基于区块链的数据访问管理方法及系统
CN114201761A (zh) 在可信计算系统中增强度量代理安全性