TW201541259A - 第三方應用的執行方法及系統 - Google Patents

第三方應用的執行方法及系統 Download PDF

Info

Publication number
TW201541259A
TW201541259A TW103132814A TW103132814A TW201541259A TW 201541259 A TW201541259 A TW 201541259A TW 103132814 A TW103132814 A TW 103132814A TW 103132814 A TW103132814 A TW 103132814A TW 201541259 A TW201541259 A TW 201541259A
Authority
TW
Taiwan
Prior art keywords
party
application
data
party application
developer
Prior art date
Application number
TW103132814A
Other languages
English (en)
Other versions
TWI650650B (zh
Inventor
Mao-Sen Zhang
Original Assignee
Alibaba Group Services 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 Alibaba Group Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201541259A publication Critical patent/TW201541259A/zh
Application granted granted Critical
Publication of TWI650650B publication Critical patent/TWI650650B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • G06Q30/0202Market predictions or forecasting for commercial activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本發明公開了第三方應用的執行方法及系統,其中,所述方法包括:接收到第三方開發者發送的資料申請請求後,將被請求資料的元資料描述資訊發送給第三方開發者,以供第三方開發者基於所述元資料描述資訊進行第三方應用的開發;接收第三方開發者提交的第三方應用的程式資訊,並將所述第三方應用部署到資料容器環境中,其中,所述資料容器環境中還保存有第三方應用在執行過程中所需的具體資料;在所述資料容器環境中執行所述第三方應用。通過本發明,解決了資料安全風險和開放高價值資料的矛盾。

Description

第三方應用的執行方法及系統
本發明係關於第三方應用開發技術領域,特別是關於第三方應用的執行方法及系統。
平台型網際網路應用(例如,某電子商務交易平台)為了給使用者(例如,電子商務交易平台中的賣方使用者)提供更細分、更垂直的服務,一般需要引入第三方開發者來完成。例如,第三方開發者可以對點擊量、跨店鋪點擊、訂單流轉量、甚至相關即時通信工具中的聊天記錄等資訊,進行收集和分析,最終提供給賣方用戶直觀的建議。也就是說,對於某網際網路應用的用戶而言,在該網際網路應用的網頁中瀏覽到的一些資料分析結果等資訊,通常是由第三方伺服器提供的。
現有技術中,網際網路應用需要通過開放平台開放相關資料給第三方開發者,第三方開發者將獲取到的資料存放入自有的儲存系統,以便用這些資料來完成服務的開發以及後續的運行。
但是,這種實現方式至少具有以下缺點:首先,資料 被第三方開發者取走後,存在較大的資料洩露、濫用和不當使用等風險,因為無法對被取走的資料進行安全控制。其次,正是由於這樣的安全缺陷,使得網際網路應用一般不能開放高價值(隱私、安全、競爭等風險)的資料給第三方開發者,這就使得第三方開發者能夠實現的功能也很有限。另外,第三方開發者自身的軟硬體處理能力比較有限,無法實現大資料量的計算處理。
例如,某第三方開發者想要給某電子商務交易平台中的賣方使用者提供商品補貨預測服務,則現有技術中,第三方開發者就需要從開放平台將所需的資料取走,放入第三方開發者的環境中進行處理和計算。而補貨預測需要對商品的銷量進行預測,但由於資料安全的問題,開放平台不能直接提供預測模型需要的資料。例如行業商品銷量(涉及到行業資料隱私)、同類商品成交的人群屬性(涉及到行業和消費者資料隱私)等等。而對於賣方用戶的補貨管道、補貨策略等,這些也是比較核心的競爭力,直接提供給第三方開發者也存在一定信任問題。另外,預測模型需要考慮行業使用者行為、商品交易行為等,資料量很大,第三方開發者可能不具備必要的軟硬體開發環境等。總之,以上各種因素都可能導致該第三方伺服器不能很好地為交易平台中的使用者提供相關服務。
本發明提供了第三方應用的執行方法及系統,解決了 資料安全風險和開放高價值資料的矛盾。
本發明提供了如下方案:一種第三方應用的執行方法,包括:接收到第三方開發者發送的資料申請請求後,將被請求資料的元資料描述資訊發送給第三方開發者,以供第三方開發者基於所述元資料描述資訊進行第三方應用的開發;接收第三方開發者提交的第三方應用的程式資訊,並將所述第三方應用部署到資料容器環境中,其中,所述資料容器環境中還保存有第三方應用在執行過程中所需的具體資料;在所述資料容器環境中執行所述第三方應用。
一種第三方應用的執行系統,包括:元資料描述資訊發送單元,用於接收到第三方開發者發送的資料申請請求後,將被請求資料的元資料描述資訊發送給第三方開發者,以供第三方開發者基於所述元資料描述資訊進行第三方應用的開發;應用部署單元,用於接收第三方開發者提交的第三方應用的程式資訊,並將所述第三方應用部署到資料容器環境中,其中,所述資料容器環境中還保存有第三方應用在執行過程中所需的具體資料;應用執行單元,用於在所述資料容器環境中執行所述第三方應用。
根據本發明提供的具體實施例,本發明公開了以下技 術效果:通過本發明實施例,為第三方開發者提供了資料容器系統,將計算所需的資料按類別等存放在系統內部的資料容器中,而不是發送給第三方開發者,第三方開發者在開發完成第三方應用的計算邏輯或演算法邏輯之後,將第三方應用也部署到該資料容器中,這樣資料以及對資料的操作過程相當於都是在資料容器內部完成的,第三方開發者不用看到具體的資料內容,只要提供應用的計算邏輯或者演算法就好,從而解決了資料安全風險和開放高價值資料的矛盾。
當然,實施本發明的任一產品並不一定需要同時達到以上所述的所有優點。
201‧‧‧元資料描述資訊發送單元
202‧‧‧應用部署單元
203‧‧‧應用執行單元
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明實施例提供的方法的流程圖;圖2是本發明實施例提供的系統的示意圖。
下面將結合本發明實施例中的附圖,對本發明實施例 中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬於本發明保護的範圍。
在本發明實施例中,為了保證資料的安全性,並且使得第三方開發者能夠提供更豐富的服務,提供了資料容器系統,將計算所需的資料按類別等存放在系統內部的資料容器中,而不是發送給第三方開發者,第三方開發者在開發完成第三方應用的計算邏輯或演算法邏輯之後,將第三方應用也部署到該資料容器中,這樣資料以及對資料的操作過程相當於都是在資料容器內部完成的,第三方開發者不用看到具體的資料內容,只要提供應用的計算邏輯或者演算法就好,從而解決了資料安全風險和開放高價值資料的矛盾。下面對具體的實現過程進行詳細地介紹。
首先需要說明的是,由於並不會直接將資料內容提供給第三方開發者,因此,在整個實現過程中,應用平台在第三方伺服器進行服務開發的過程也要提供相應的支援。開發完成之後,應用平台還需要進行後續的部署等方面的支持。參見圖1,本發明實施例提供的第三方應用的執行方法可以包括以下步驟:S101:接收到第三方開發者發送的資料申請請求後,將被請求資料的元資料描述資訊發送給第三方開發者,以供第三方開發者基於所述元資料描述資訊進行第三方應用的開發; 為第三方開發者提供用於後台開發的介面,第三方開發者可以在其中編寫代碼、調試等等。例如,一般可以直接以網頁的形式,也即第三方開發者直接登錄應用平台的系統,就可以進入後台開發頁面進行具體的開發操作。
其中,由於資料容器中的資料眾多,而第三方開發者一般只會提供某一方面的服務,因此,一般只會使用到其中的一部分資料,因此,可以預先對資料容器中的資料劃分成多個類別,每個類別的資料可以對應一個資料主題。例如,在某電子商務交易平台中,資料主題可能包括發貨、收貨、訂單管理、客服等主題。第三方開發者進入開發平台後,可以首先將各種可選的資料主題顯示給第三方開發者,第三方伺服器可以根據自己需要開發的服務,選擇對應的資料主題。例如,某第三方開發者想要開發訂單管理方面的服務,則可以選擇訂單管理這一資料主題,等等。
在第三方開發者選擇了某一資料主題之後,可以將該資料主題中可能會使用到的元資料描述資訊提供給第三方開發者,以供第三方開發者進行應用的開發。需要說明的是,開放平台中的資料一般以資料表(關係型數據庫中的表)的格式進行保存,因此,具體在向第三方開發者提供元資料描述資訊時,可以包括資料表的名稱,以及資料表中的欄位資訊。也就是說,可以使第三方開發者知曉資料表中有哪些欄位,例如,對於某保存有使用者資訊的資料表A而言,其中的欄位包括年齡、性別等欄位,此時,就 可以將該資料表A的名稱,以及年齡、性別等欄位名稱提供給第三方開發者。這樣,第三方開發者就可以基於這些欄位名稱,結合資料表的基本操作方法,來開發第三方應用中具體的邏輯。其中,對資料表的基本操作可以是支援多種程式設計語言,例如,JAVA、SQL等用於存取資料以及查詢、更新和管理關聯式資料庫系統的語言,來實現對資料表中各欄位資料的操作。
也就是說,在本發明實施例中,不需要將資料表中的具體資料提供給第三方開發者,而只需要將資料表中有哪些欄位等資訊提供給第三方開發者。當然,在實際應用中,為了使得第三方開發者在開發出具體的應用之後,對應用的計算邏輯等進行驗證操作,開放平台可以為第三方開發者提供一些樣本資料。這種樣本資料可以是一些示例性的資料,例如,可以是將使用者幾年前的行為資料拼接在一起組合而成。由於已經是幾年前的資料,並且是由一些資料片段組合而成的,因此,一般不會存在資訊洩漏等問題。
對於一些大型的第三方應用而言,需要的代碼量往往非常大,編寫代碼的過程比較複雜,且容易出錯。在本發明實施例中,為了簡化開發過程,允許第三方開發者將一個應用拆分成多個子應用,在開發環境中分別開發各個子應用的代碼,最後再由開放平台根據各個子應用之間的依賴關係等,將各個子應用關聯起來,共同實現對應的第三方應用。
另外,還可以將第三方應用劃分為不同的類型,分別為各種類型的應用提供對應的開發介面,並且分別提供各種類型的開發入口。如果第三方開發者想要開發某類型的應用,則從該類型的開發入口進入,開放平台在通過該開發入口接收到用戶的請求後,就可以顯示出對應的開發介面,第三方開發者就可以在該介面中進行編寫代碼、調試等工作。例如,可以將第三方應用分為計算類應用以及演算法類應用。同時,開放平台可以根據具體進入的介面,將對應開發的第三方應用所屬的類型進行標識,以便後續在進行調度時,發送給相匹配的資料容器。
需要說明的是,第三方開發者開發的同一個第三方應用可能由多個子應用組成,各子應用可以是不同類型的應用,並且,相互之間也可以進行資料傳遞。
另外需要說明的是,在實際應用中,在接收到某第三方開發者發送的資料申請請求時,還可以對這種資料申請進行審核,例如,包括對第三方開發者的資質等進行的審核。再者,如果涉及到使用者資料,還可以建立使用者授權。也即,詢問用戶是否允許第三方開發者使用其資料,如果使用者允許,再向第三方開發者返回相應的元資料描述資訊、樣本資料等。否則,如果沒有獲取到用戶授權,則不會向第三方開發者返回相應的資訊。
S102:接收第三方開發者提交的第三方應用的程式資訊,並將所述第三方應用部署到資料容器環境中,其中,所述資料容器環境中還保存有第三方應用在執行過程中所 需的具體資料;第三方開發者在完成了某第三方應用的開發之後,就可以將其提交到開發平台,相應的,開發平台就可以將第三方應用的邏輯部署到開放平台內部的資料容器環境中。由於該資料容器環境中保存有第三方應用在執行過程中所需的具體資料,因此,就可以在該資料容器環境中執行第三方應用。這樣,具體的資料處理的過程都是在資料容器內部完成的,不需要將待處理的資料公開給第三方開發者。
在實際應用中,在接收到第三方開發者提交的第三方應用之後,還可以對應用進行安全審核。例如,判斷是否存在敏感性資料,是否存在對資料的敏感操作等,進而,如果存在對敏感性資料的操作,或者存在敏感操作,則可以在資料輸出時進行攔截,進一步提高資料的安全性。具體在進行安全審核時可以有多種方式,例如,在一種簡單的方式下,可以直接利用關鍵字等進行過濾;或者,判斷第三方應用中是否存在關於某些特殊商品物件的交易資訊;或者,對於可以量化的資料,還可以判斷第三方應用使用的某行業資料的資料量所占總數據量的百分比,如果該百分比達到某數值,則可能會由此推導出行業的其他資訊,導致該行業資料的洩漏,因此認為存在安全性問題。再或者,還可以在第三方應用中包含一些使用者ID等資訊的情況下,判斷是否能夠反推獲知用戶的真實身份等敏感資訊,如果是,則也認為存在安全性問題,等等。總 之,在進行安全性審核時,可以預先設置多個判斷條件,對於某個第三方應用而言,可以利用這些判斷條件進行判斷,如果命中其中某個或者某幾個條件,則認為存在安全性問題。
如前文所述,不同的第三方應用之間可能存在一定的依賴關係。例如,某應用需要依賴于另一應用的執行結果,則該應用需要在另一應用執行完成結束之後執行。另外,還有一些第三方應用需要在特定的應用場景下執行,等等。因此,在向資料容器提交部署之前,可以根據依賴關係、應用場景等資訊對提交上來的各個第三方應用進行調度,將當前需要執行的第三方應用提交到資料容器。
向資料容器提交需要執行的應用的同時,還可以提交一些控制命令,例如,該應用的優先順序、資源配置情況(例如,分配多少的CPU、多少的記憶體給該應用)等,以便資料容器按照這些控制命令來執行。其中,關於資源配置情況,可以預估資料的輸入輸出量,並根據一定的演算法計算出需要佔用的資源,當然實際應用中,還可以根據第三方開發者訂購的資源數量等資訊來綜合確定。
S103:在所述資料容器環境中執行所述第三方應用。
在將第三方應用部署到資料容器之後,就可以在資料容器中執行第三方應用。具體在執行時,可以根據第三方應用任務的性質,進行同步或者非同步的處理。相應的,資料容器可以分為「分散式處理容器」或「同步處理容器」。其中,前者相當於是將任務分配到多個容器分別執 行,最後再進行匯總,一般用於處理對時間要求不高的任務;後者就是接收到執行任務後馬上進行處理,一般用於處理對時間要求比較高的任務。因此,前述任務的性質就可以是指對時間要求的高低。其中,關於任務的性質可以是由第三方開發者在開發時進行指定。
在第三方應用執行完成之後,就可以將執行結果提供給用戶使用。其中,具體在向用戶提供執行結果時,可以有多種方式,其中一種方式是:可以由第三方開發者將執行結果取走,然後在其介面中展現執行結果。為了使得第三方開發者能夠獲取到執行結果,可以如下進行:對於第三方開發者開發完成的第三方應用代碼,可以根據輸出資料的標識,封裝成介面(一般是一個URL),資料容器完成執行之後,可以記錄執行結果與該URL的對應關係。第三方開發者請求執行結果時,可以根據該URL返回執行結果。具體實現時,可以有多種方式。例如,其中一種方式可以是,向各個第三方開發者提供統一的獲取執行結果的入口,也即,每個第三方開發者在每次請求執行結果時,可向同一個URL發送請求,但是,同時要攜帶上第三方開發者的ID等標識資訊,以及此次請求的輸出資料的標識,開發平台在接收到該請求之後,就可以根據攜帶的ID以及輸出資料的標識確定出所需的執行結果實際對應的URL,然後向第三方開發者返回執行結果即可。或者,在另一種實現方式下,也可以直接將執行結果實際對應的URL提供給第三方開發者,這樣,第三方開發者就 可以根據實際對應的URL請求獲取對應的執行結果。
另外,在實際應用中,還可能存在以下情況:對於在資料容器中執行得到的執行結果仍然存在一些敏感性資料,此時,如果直接由第三方開發者將執行結果取走,則仍然有可能造成對使用者資料的洩漏等危險。例如,某第三方應用用於篩選出一些使用者進行某種資訊的推廣,則該第三方應用的執行結果中可能會包含使用者的聯繫方式等資訊,如果將這些資訊提供給第三方開發者顯然會存在風險。因此,對於這種情況,在具體實現時,還可以要求第三方開發者將其前台介面展現邏輯也部署到資料容器中,這樣,在獲取到執行結果之後,就可以直接根據資料容器中的前台介面展現邏輯,將執行結果直接提供給用戶。
為了便於理解,下面通過一個實際的例子進行詳細的介紹。
具體實現時,可以包括以下步驟:步驟1:第三方開發者登錄到開放平台的後台;此時,介面中可以展現出各個可選擇的資料主題;步驟2:第三方開發者申請某資料主題;步驟3:開放平台對第三方開發者的申請進行審核,主要用於確定該第三方開發者是否具有申請該資料主題的資質;步驟4:判斷資料申請審核是否通過;如果未通過,則返回失敗等通知消息;如果通過,則進入步驟5; 步驟5:第三方開發者申請樣本資料;步驟6:開放平台向使用者發送授權審核消息;步驟7:判斷授權審核是否通過,如果未通過,則返回失敗等通知消息;如果通過,則進入步驟8;步驟8:第三方開發者進入開發介面進行第三方應用的開發;步驟9:開發完畢之後,將第三方應用提交到開放平台進行審核;步驟10:開放平台對第三方應用進行資料安全審核;步驟11:判斷資料安全審核是否通過,如果未通過,則可以返回審核失敗等通知消息,如果通過,則繼續進入步驟12;步驟12:第三方開發者將第三方應用提交到開放平台進行部署;步驟13:開放平台將第三方應用部署到資料容器進行執行;步驟14:將執行結果提供給用戶進行使用。
為了更好的理解本發明實施例的技術方案,下面將開發平台劃分為多個模組,分別介紹各個模組的功能以及模組之間的關聯關係。具體的,可以包括以下模組:登錄驗證模組:第三方開發者使用預先註冊的帳戶資訊登錄到開放平台後,開放平台可以對第三方開發者的身份進行認證,完成身份認證後,將授予第三方開發者權 杖,第三方開發者可以帶上該權杖進入系統;授權驗證模組:開放平台還可以對第三方開發者擁有的資料許可權和操作許可權進行認證,完成授權認證後,將授予第三方開發者對應的資料許可權和應用開發許可權;資料應用開發模組:集成資料應用開發環境,為第三方開發者提供開發介面,可以在其中編寫代碼、調試等等。具體實現時,資料應用開發模組可以由兩部分組成,分別為通用計算類資料應用開發子模組和演算法類資料應用開發子模組,第三方開發者可以根據待開發的副程式所屬的類別選擇進入對應的子模組。在開發介面中,可以提供進入兩個子模組的入口,進入之後,兩個子模組具有各自的開發介面。如果某第三方開發者想要開發計算類的副程式,則可以從通用計算類資料應用開發子模組的入口進入,進而打開通用計算類資料應用開發子模組對應的開發介面;類似的,第三方開發者想要開發演算法類的副程式,則可以從通用演算法類資料應用開發子模組的入口進入,進而打開演算法類資料應用開發子模組對應的開發介面。
其中,通用計算類資料應用開發模組的主要功能可以包括:
a)應用專案管理:包括對應用項目的增刪改查、分享、授權、協作等;
b)代碼開發環境介面: i.代碼開發編輯器;ii.代碼高亮、語法檢查等效率輔助工具;iii.元資料管理:元資料詳細描述(包括表標識、欄位名等)、資料依賴、交互管理;
c)代碼沙箱環境管理介面:
i.代碼模擬運行(可以在開發完代碼後,進行測試,對計算邏輯進行驗證)
ii.資料集創建
d)代碼管理:代碼版本管理、目錄管理。當代碼開發完成之後,開放平台可以將代碼保存到代碼版本管理中,後續如果需要對代碼進行修改,則可以生成新的版本。在保存一份代碼時,開放平台可以將其封裝成對應的套裝程式,對於同一應用中的不同副程式對應的套裝程式而言,還可以標識各套裝程式的應用場景需求、啟動條件(例如,需要在某時間點啟動,或者需要在某指定程式運行完畢之後啟動,等等),以及各套裝程式之間的依賴關係等資訊。其中,關於套裝程式的啟動條件可以是由第三方開發者指定的,而套裝程式之間的依賴關係,可以由第三方開發者指定,也可以由開放平台自動獲取。例如,開放平台通過對各套裝程式的代碼進行分析得知,套裝程式1的邏輯是對表a進行處理生成表b、c,而套裝程式2的邏輯是對表b處理生成表d,因此,可以判斷出套裝程式2依賴套裝程式1,進而就可以自動標識該依賴關係。
e)應用管理:應用發佈、應用下架、應用狀態查 詢。
f)費用管理:交費、續費、結算、清算、餘額管理。
演算法類資料應用開發子模組的主要功能可以包括:
a)演算法模型管理:增刪改查、分享、授權、協作。
b)基礎模型庫。
c)資料特徵分析環境:統計分佈驗證、特徵提取、驗證。
d)模型訓練管理:模型訓練、結果驗證。
沙箱資料容器環境模組,提供代碼、資料集驗證功能的計算環境,包括:
a)代碼運行環境:
i.分散式代碼運行環境(Map/Reduce程式、SQL程式)
ii.演算法運行環境
b)資料環境:提供代碼運行的資料支撐環境,必要的資料庫,資料集,資料集創建工具等,這些資料可以是開放平台提供的樣本資料,例如,將使用者幾年前的產生的資料拼接在一起等等,生成具有相同的資料結構,但並不真是的資料,這種資料提供給第三方開發者,用於對其開發的代碼進行驗證。
任務工作流調度模組:負責將第三方開發者提交的應用根據任務依賴關係、應用場景需求執行調度,並將需要 執行的應用提交給資料容器環境(資料容器通過預置的介面監聽任務工作流調度模組的提交請求,因此,當任務工作流調度模組發現有需要執行的應用時,就可以通過資料容器的介面進行發送)。其中,如果開發模組包括計算類資料應用開發子模組以及演算法類資料應用開發子模組,則在調度時,可以根據開發過程中標識出的計算類應用或者演算法類應用,將需要執行的應用發送到「通用計算容器環境」或者「演算法容器環境」執行。另外,任務工作流調度模組在向資料容器提交需要執行的應用的同時,還可以提交一些控制命令,以便資料容器按照這些控制命令來執行。
通用計算容器環境:
a)負責接收任務工作流調度模組提交的通用計算任務,將計算任務根據性質不同提交給對應的「分散式處理容器」或「同步處理容器」。
b)對任務進行監控、跟蹤、資料獲取
c)和「資料查詢中間層」打通,完成資料查詢功能
演算法容器環境:
a)負責接收任務工作流調度模組提交的演算法任務,將演算法任務根據性質不同提交給對應的:「分散式處理容器」或「同步處理容器」。
b)「基礎演算法包」子模組。第三方開發者在演算法類資料應用開發子模組中開發時,可以根據自己的需求編寫演算法代碼,或者,開放平台也可以為第三方開發者 提供一些基礎演算法,這樣,第三方開發者只要在基礎演算法的基礎上進行選擇需要的特徵、調整演算法的參數等操作即可,以此提高開發效率。相應的,在演算法容器環境中,還可以提供基礎演算法可執行調用模組,其中,基礎演算法可以包括:
i.分類演算法
ii.聚類演算法
iii.回歸演算法
資料安全審核引擎:當第三方開發者完成代碼的開發之後,在部署到資料容器之前,還可以進行安全審核。
與本發明實施例提供的第三方應用的執行方法相對應,本發明實施例還提供了一種第三方應用的執行系統,參見圖2,該系統可以包括:元資料描述資訊發送單元201,用於接收到第三方開發者發送的資料申請請求後,將被請求資料的元資料描述資訊發送給第三方開發者,以供第三方開發者基於所述元資料描述資訊進行第三方應用的開發;應用部署單元202,用於接收第三方開發者提交的第三方應用的程式資訊,並將所述第三方應用部署到資料容器環境中,其中,所述資料容器環境中還保存有第三方應用在執行過程中所需的具體資料;應用執行單元203,用於在所述資料容器環境中執行所述第三方應用。
具體實現時,該系統還可以包括: 調度單元,用於根據任務依賴關係和/或應用場景需求對第三方應用進行調度;所述應用部署單元202具體用於:根據調度結果,將當前需要執行的第三方應用部署到資料容器環境中。
另外,該系統還可以包括:安全審核單元,用於接收到第三方開發者提交的第三方應用後,對第三方應用對資料的操作進行安全審核。
為了便於第三方進行開發,該系統還可以包括:樣本資料提供單元,用於接收到第三方開發者發送的資料申請請求後,向第三方開發者提供樣本資料,以供第三方開發者對開發出的第三方應用的邏輯進行驗證。
其中,不同的應用類型對應不同的開發入口,所述系統還可以包括:介面提供單元,用於從某類型的開發入口接收到用戶的開發請求時,為用戶提供該類型應用的開發介面。
不同的應用類型對應不同的資料容器環境,所述系統還可以包括:標識單元,用於從某類型的開發入口接收到用戶的開發請求後,將對應開發的第三方應用所屬的類型進行標識;所述應用部署單元202具體可以用於:根據所述第三方應用所屬的類型,將所述第三方應用部署到該類型對應的資料容器環境中。
所述應用類型包括計算類或演算法類。
具體的,應用執行單元203具體可以用於:根據第三方應用需執行的任務對時間的要求,在所述資料容器環境中對所述第三方應用進行分散式或者同步處理。
另外,該系統還可以包括:封裝單元,用於所述第三方應用執行完成後,根據輸出資料的標識封裝成介面,以便第三方開發者根據所述介面獲取第三方應用的執行結果。
還可以包括:前台介面邏輯接收單元,用於接收第三方開發者提交的第三方應用的前台介面邏輯;介面邏輯部署單元,用於將所述前台介面邏輯部署到資料容器中,以便在所述第三方應用執行完成後,在前台介面中顯示執行結果。
總之,通過本發明實施例,為第三方開發者提供了資料容器系統,將計算所需的資料按類別等存放在系統內部的資料容器中,而不是發送給第三方開發者,第三方開發者在開發完成第三方應用的計算邏輯或演算法邏輯之後,將第三方應用也部署到該資料容器中,這樣資料以及對資料的操作過程相當於都是在資料容器內部完成的,第三方開發者不用看到具體的資料內容,只要提供應用的計算邏輯或者演算法就好,從而解決了資料安全風險和開放高價值資料的矛盾。
通過以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本發明可借助軟體加必需的通用硬體平台的方式來實現。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存介質中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統或系統實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的系統及系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部模組來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上對本發明所提供的第三方應用的執行方法及系統,進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於 幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處。綜上所述,本說明書內容不應理解為對本發明的限制。

Claims (11)

  1. 一種第三方應用的執行方法,包括:接收到第三方開發者發送的資料申請請求後,將被請求資料的元資料描述資訊發送給第三方開發者,以供第三方開發者基於所述元資料描述資訊進行第三方應用的開發;接收第三方開發者提交的第三方應用的程式資訊,並將所述第三方應用部署到資料容器環境中,其中,所述資料容器環境中還保存有第三方應用在執行過程中所需的具體資料;在所述資料容器環境中執行所述第三方應用。
  2. 如申請專利範圍第1項所述的方法,其中,還包括:根據任務依賴關係和/或應用場景需求對第三方應用進行調度;所述將所述第三方應用部署到資料容器環境中,包括:根據調度結果,將當前需要執行的第三方應用部署到資料容器環境中。
  3. 如申請專利範圍第1項所述的方法,其中,還包括:接收到第三方開發者提交的第三方應用的程式資訊後,對第三方應用對資料的操作進行安全審核。
  4. 如申請專利範圍第1項所述的方法,其中,還包 括:接收到第三方開發者發送的資料申請請求後,向第三方開發者提供樣本資料,以供第三方開發者對開發出的第三方應用的邏輯進行驗證。
  5. 如申請專利範圍第1項所述的方法,其中,不同的應用類型對應不同的開發入口,所述方法還包括:從某類型的開發入口接收到用戶的開發請求時,為用戶提供該類型應用的開發介面。
  6. 如申請專利範圍第5項所述的方法,其中,不同的應用類型對應不同的資料容器環境,所述方法還包括:從某類型的開發入口接收到用戶的開發請求後,將對應開發的第三方應用所屬的類型進行標識;所述將所述第三方應用部署到資料容器環境中,包括:根據所述第三方應用所屬的類型,將所述第三方應用部署到該類型對應的資料容器環境中。
  7. 如申請專利範圍第5項或第6項所述的方法,所述應用類型包括計算類或演算法類。
  8. 如申請專利範圍第1項所述的方法,其中,所述在所述資料容器環境中執行所述第三方應用,包括:根據第三方應用需執行的任務對時間的要求,在所述資料容器環境中對所述第三方應用進行分散式或者同步處理。
  9. 如申請專利範圍第1項至第6項、第8項中任一 項所述的方法,其中,還包括:所述第三方應用執行完成後,根據輸出資料的標識封裝成介面,以便第三方開發者根據所述介面獲取第三方應用的執行結果。
  10. 如申請專利範圍第1項至第6項、第8項中任一項所述的方法,其中,還包括:接收第三方開發者提交的第三方應用的前台介面邏輯;將所述前台介面邏輯部署到資料容器中,以便在所述第三方應用執行完成後,在前台介面中顯示執行結果。
  11. 一種第三方應用的執行系統,包括:元資料描述資訊發送單元,用於接收到第三方開發者發送的資料申請請求後,將被請求資料的元資料描述資訊發送給第三方開發者,以供第三方開發者基於所述元資料描述資訊進行第三方應用的開發;應用部署單元,用於接收第三方開發者提交的第三方應用的程式資訊,並將所述第三方應用部署到資料容器環境中,其中,所述資料容器環境中還保存有第三方應用在執行過程中所需的具體資料;應用執行單元,用於在所述資料容器環境中執行所述第三方應用。
TW103132814A 2014-04-25 2014-09-23 第三方應用的執行方法及系統 TWI650650B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410172373.7A CN105095970B (zh) 2014-04-25 2014-04-25 第三方应用的执行方法及系统
??201410172373.7 2014-04-25

Publications (2)

Publication Number Publication Date
TW201541259A true TW201541259A (zh) 2015-11-01
TWI650650B TWI650650B (zh) 2019-02-11

Family

ID=54333220

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103132814A TWI650650B (zh) 2014-04-25 2014-09-23 第三方應用的執行方法及系統

Country Status (7)

Country Link
US (1) US20150310209A1 (zh)
EP (1) EP3134812A4 (zh)
JP (1) JP2017514218A (zh)
CN (1) CN105095970B (zh)
HK (1) HK1213346A1 (zh)
TW (1) TWI650650B (zh)
WO (1) WO2015164661A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391239B (zh) * 2016-03-11 2021-06-22 阿里巴巴集团控股有限公司 一种基于容器服务的调度方法和设备
CN105827643A (zh) * 2016-05-17 2016-08-03 世纪禾光科技发展(北京)有限公司 开放平台管理系统及方法
US10574632B2 (en) * 2016-06-30 2020-02-25 Hcl Technologies Limited System and method for secure sharing of a source code
CN106330877B (zh) * 2016-08-18 2019-07-05 福建联迪商用设备有限公司 一种授权对终端状态进行转换的方法和系统
US10521251B2 (en) 2016-09-23 2019-12-31 Microsoft Technology Licensing, Llc Hosting application experiences within storage service viewers
US10909136B1 (en) 2017-02-08 2021-02-02 Veritas Technologies Llc Systems and methods for automatically linking data analytics to storage
US10685033B1 (en) 2017-02-14 2020-06-16 Veritas Technologies Llc Systems and methods for building an extract, transform, load pipeline
US10606646B1 (en) 2017-03-13 2020-03-31 Veritas Technologies Llc Systems and methods for creating a data volume from within a software container and initializing the data volume with data
US10540191B2 (en) * 2017-03-21 2020-01-21 Veritas Technologies Llc Systems and methods for using dynamic templates to create application containers
US10897457B2 (en) 2017-04-17 2021-01-19 International Business Machines Corporation Processing of IoT data by intermediaries
US10740132B2 (en) 2018-01-30 2020-08-11 Veritas Technologies Llc Systems and methods for updating containers
US20190362066A1 (en) * 2018-05-25 2019-11-28 Microsoft Technology Licensing, Llc Accessing secure system resources by low privilege processes
CN109325345B (zh) * 2018-09-21 2022-10-28 百度在线网络技术(北京)有限公司 用于在沙盒环境中运行第三方代码的方法和装置
US11176556B2 (en) * 2018-11-13 2021-11-16 Visa International Service Association Techniques for utilizing a predictive model to cache processing data
CN110059123A (zh) * 2019-04-15 2019-07-26 福建省星云大数据应用服务有限公司 一种数据可用不可见的政务数据开发方法及系统
CN113126996B (zh) * 2019-12-31 2023-10-20 华控清交信息科技(北京)有限公司 代码审核的方法、装置及系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181731B2 (en) * 2000-09-01 2007-02-20 Op40, Inc. Method, system, and structure for distributing and executing software and data on different network and computer devices, platforms, and environments
USH2201H1 (en) * 2001-03-19 2007-09-04 The United States Of America As Represented By The Secretary Of The Air Force Software architecture and design for facilitating prototyping in distributed virtual environments
US7302609B2 (en) * 2003-03-12 2007-11-27 Vladimir Matena Method and apparatus for executing applications on a distributed computer system
US7519814B2 (en) * 2003-09-15 2009-04-14 Trigence Corp. System for containerization of application sets
US7865871B2 (en) * 2003-12-10 2011-01-04 Oracle International Corporation Generating code to be deployed in an application server by introspecting an input class included in an archive file
JP2006236220A (ja) * 2005-02-28 2006-09-07 Ntt Data Technology Corp テスト用データファイル作成装置、方法、プログラム及び記録媒体
EP1955151B1 (en) * 2005-12-01 2018-10-17 CA, Inc. Automated deployment and configuration of applications in an autonomically controlled distributed computing system
US8423954B2 (en) * 2006-03-31 2013-04-16 Sap Ag Interactive container of development components and solutions
JP4878527B2 (ja) * 2006-09-08 2012-02-15 富士通株式会社 テストデータ作成装置
WO2008154648A1 (en) * 2007-06-12 2008-12-18 Facebook, Inc. Personalized social networking application content
CN101459740B (zh) * 2007-12-14 2011-09-14 华为技术有限公司 部署SIP Servlet应用、管理SIP Servlet应用的方法及其系统
US8869140B2 (en) * 2008-05-09 2014-10-21 Sap Se Deploying software modules in computer system
US10311446B2 (en) * 2008-12-05 2019-06-04 Nokia Technologies Oy Method and apparatus for obfuscating context information
JP5374146B2 (ja) * 2008-12-26 2013-12-25 キヤノン株式会社 ソフトウエア評価方法及びそれを実現する情報処理装置
US8285949B2 (en) * 2009-06-03 2012-10-09 Apple Inc. Secure software installation
US20110035287A1 (en) * 2009-07-27 2011-02-10 Barbara Ann Fox Apparatus and method for providing media commerce platform
JP5560641B2 (ja) * 2009-09-30 2014-07-30 富士通株式会社 データ管理装置、データ管理プログラムおよびデータ管理方法
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
CN102214093B (zh) * 2010-04-07 2016-01-13 苹果公司 向第三方应用的搜索扩展能力
US9772831B2 (en) * 2010-04-26 2017-09-26 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
TW201232404A (en) * 2010-10-22 2012-08-01 Ibm Software development
US9003552B2 (en) * 2010-12-30 2015-04-07 Ensighten, Inc. Online privacy management
US20120254972A1 (en) * 2011-04-04 2012-10-04 International Business Machines Corporation Trust system
US20120297015A1 (en) * 2011-05-19 2012-11-22 Third Solutions, Inc. System and method for building data relevant applications
US8612580B2 (en) * 2011-05-31 2013-12-17 Microsoft Corporation Distributed computing framework
US8812416B2 (en) * 2011-11-08 2014-08-19 Nokia Corporation Predictive service for third party application developers
US9176720B1 (en) * 2012-04-23 2015-11-03 Google Inc. Installation of third-party web applications into a container
US10417037B2 (en) * 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9055050B2 (en) * 2012-06-27 2015-06-09 Facebook, Inc. User authentication of applications on third-party devices via user devices
US8983434B2 (en) * 2012-10-08 2015-03-17 At&T Intellectual Property I, L.P. Managing opt-in and opt-out for private data access
US8918837B2 (en) * 2012-12-28 2014-12-23 Intel Corporation Web application container for client-level runtime control
US9804945B1 (en) * 2013-01-03 2017-10-31 Amazon Technologies, Inc. Determinism for distributed applications
US9781118B2 (en) * 2013-03-14 2017-10-03 Intel Corporation Differentiated containerization and execution of web content based on trust level and other attributes

Also Published As

Publication number Publication date
CN105095970B (zh) 2018-09-21
WO2015164661A1 (en) 2015-10-29
HK1213346A1 (zh) 2016-06-30
EP3134812A4 (en) 2017-12-06
TWI650650B (zh) 2019-02-11
US20150310209A1 (en) 2015-10-29
JP2017514218A (ja) 2017-06-01
CN105095970A (zh) 2015-11-25
EP3134812A1 (en) 2017-03-01

Similar Documents

Publication Publication Date Title
TWI650650B (zh) 第三方應用的執行方法及系統
JP7413255B2 (ja) インタラクティブ・ワークフローを実行するコンピュータ実施方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム
US10620944B2 (en) Cloud-based decision management platform
RU2445688C2 (ru) Моделирование пользовательского ввода и взаимодействия в приложениях на основе рабочего процесса
CN109240900A (zh) 区块链网络服务平台及其智能合约检测方法、存储介质
US8561010B2 (en) Software approval process using service governance
US20120254435A1 (en) Placement goal-based database instance dynamic consolidation
US20120254434A1 (en) Placement goal-based database instance consolidation
US10158725B2 (en) Differentiated service identification in a networked computing environment
US10009227B2 (en) Network service provisioning tool and method
CN107679937B (zh) 定制服务功能的方法、系统、存储介质及设备
da Silva et al. SPReaD: service-oriented process for reengineering and DevOps: Developing microservices for a Brazilian state department of taxation
Kasse et al. The need for compliance verification in collaborative business processes
Shrivastava Learning Salesforce Einstein
Vion Software asset management and cloud computing
Damasceno et al. Modeling and executing business processes with annotated security requirements in the cloud
Barati et al. Design and verification of privacy patterns for business process models
IL286186B2 (en) System and method for managing requests for access privileges
KR102684203B1 (ko) 경영 컨설턴트의 매칭 및 추천 플랫폼 서비스 제공 시스템 및 방법
US11716259B2 (en) On-demand instance
US12118299B2 (en) Executing document workflows using document workflow orchestration runtime
US12050651B2 (en) Monitoring execution of document workflows using cloud platform independent document workflow orchestration runtime
US20240005243A1 (en) Creating document workflows using cloud platform independent representation
US12002062B2 (en) Determining projected technology information effect
Parhizkar et al. A framework for impact analysis of post-implementation enterprise resource planning modifications

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees