CN105095970B - 第三方应用的执行方法及系统 - Google Patents

第三方应用的执行方法及系统 Download PDF

Info

Publication number
CN105095970B
CN105095970B CN201410172373.7A CN201410172373A CN105095970B CN 105095970 B CN105095970 B CN 105095970B CN 201410172373 A CN201410172373 A CN 201410172373A CN 105095970 B CN105095970 B CN 105095970B
Authority
CN
China
Prior art keywords
application
party
data
party application
developer
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
Application number
CN201410172373.7A
Other languages
English (en)
Other versions
CN105095970A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410172373.7A priority Critical patent/CN105095970B/zh
Priority to TW103132814A priority patent/TWI650650B/zh
Priority to EP15782622.3A priority patent/EP3134812A4/en
Priority to PCT/US2015/027383 priority patent/WO2015164661A1/en
Priority to JP2016561001A priority patent/JP2017514218A/ja
Priority to US14/694,942 priority patent/US20150310209A1/en
Publication of CN105095970A publication Critical patent/CN105095970A/zh
Priority to HK16101008.0A priority patent/HK1213346A1/zh
Application granted granted Critical
Publication of CN105095970B publication Critical patent/CN105095970B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Abstract

本申请公开了第三方应用的执行方法及系统,其中,所述方法包括:接收到第三方开发者发送的数据申请请求后,将被请求数据的元数据描述信息发送给第三方开发者,以供第三方开发者基于所述元数据描述信息进行第三方应用的开发;接收第三方开发者提交的第三方应用的程序信息,并将所述第三方应用部署到数据容器环境中,其中,所述数据容器环境中还保存有第三方应用在执行过程中所需的具体数据;在所述数据容器环境中执行所述第三方应用。通过本申请,解决了数据安全风险和开放高价值数据的矛盾。

Description

第三方应用的执行方法及系统
技术领域
本申请涉及第三方应用开发技术领域,特别是涉及第三方应用的执行方法及系统。
背景技术
平台型互联网应用(例如,某电子商务交易平台)为了给用户(例如,电子商务交易平台中的卖方用户)提供更细分、更垂直的服务,一般需要引入第三方开发者来完成。例如,第三方开发者可以对点击量、跨店铺点击、订单流转量、甚至相关即时通信工具中的聊天记录等信息,进行收集和分析,最终提供给卖方用户直观的建议。也就是说,对于某互联网应用的用户而言,在该互联网应用的网页中浏览到的一些数据分析结果等信息,通常是由第三方服务器提供的。
现有技术中,互联网应用需要通过开放平台开放相关数据给第三方开发者,第三方开发者将获取到的数据存放入自有的存储系统,以便用这些数据来完成服务的开发以及后续的运行。
但是,这种实现方式至少具有以下缺点:首先,数据被第三方开发者取走后,存在较大的数据泄露、滥用和不当使用等风险,因为无法对被取走的数据进行安全控制。其次,正是由于这样的安全缺陷,使得互联网应用一般不能开放高价值(隐私、安全、竞争等风险)的数据给第三方开发者,这就使得第三方开发者能够实现的功能也很有限。另外,第三方开发者自身的软硬件处理能力比较有限,无法实现大数据量的计算处理。
例如,某第三方开发者想要给某电子商务交易平台中的卖方用户提供商品补货预测服务,则现有技术中,第三方开发者就需要从开放平台将所需的数据取走,放入第三方开发者的环境中进行处理和计算。而补货预测需要对商品的销量进行预测,但由于数据安全的问题,开放平台不能直接提供预测模型需要的数据。例如行业商品销量(涉及到行业数据隐私)、同类商品成交的人群属性(涉及到行业和消费者数据隐私)等等。而对于卖方用户的补货渠道、补货策略等,这些也是比较核心的竞争力,直接提供给第三方开发者也存在一定信任问题。另外,预测模型需要考虑行业用户行为、商品交易行为等,数据量很大,第三方开发者可能不具备必要的软硬件开发环境等。总之,以上各种因素都可能导致该第三方服务器不能很好地为交易平台中的用户提供相关服务。
发明内容
本申请提供了第三方应用的执行方法及系统,解决了数据安全风险和开放高价值数据的矛盾。
本申请提供了如下方案:
一种第三方应用的执行方法,包括:
接收到第三方开发者发送的数据申请请求后,将被请求数据的元数据描述信息发送给第三方开发者,以供第三方开发者基于所述元数据描述信息进行第三方应用的开发;
接收第三方开发者提交的第三方应用的程序信息,并将所述第三方应用部署到数据容器环境中,其中,所述数据容器环境中还保存有第三方应用在执行过程中所需的具体数据;
在所述数据容器环境中执行所述第三方应用。
一种第三方应用的执行系统,包括:
元数据描述信息发送单元,用于接收到第三方开发者发送的数据申请请求后,将被请求数据的元数据描述信息发送给第三方开发者,以供第三方开发者基于所述元数据描述信息进行第三方应用的开发;
应用部署单元,用于接收第三方开发者提交的第三方应用的程序信息,并将所述第三方应用部署到数据容器环境中,其中,所述数据容器环境中还保存有第三方应用在执行过程中所需的具体数据;
应用执行单元,用于在所述数据容器环境中执行所述第三方应用。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
通过本申请实施例,为第三方开发者提供了数据容器系统,将计算所需的数据按类别等存放在系统内部的数据容器中,而不是发送给第三方开发者,第三方开发者在开发完成第三方应用的计算逻辑或算法逻辑之后,将第三方应用也部署到该数据容器中,这样数据以及对数据的操作过程相当于都是在数据容器内部完成的,第三方开发者不用看到具体的数据内容,只要提供应用的计算逻辑或者算法就好,从而解决了数据安全风险和开放高价值数据的矛盾。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图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)代码开发环境界面:
ⅰ.代码开发编辑器;
ⅱ.代码高亮、语法检查等效率辅助工具;
ⅲ.元数据管理:元数据详细描述(包括表标识、字段名等)、数据依赖、交互管理;
c)代码沙箱环境管理界面:
ⅰ.代码模拟运行(可以在开发完代码后,进行测试,对计算逻辑进行验证)
ⅱ.数据集创建
d)代码管理:代码版本管理、目录管理。当代码开发完成之后,开放平台可以将代码保存到代码版本管理中,后续如果需要对代码进行修改,则可以生成新的版本。在保存一份代码时,开放平台可以将其封装成对应的程序包,对于同一应用中的不同子程序对应的程序包而言,还可以标识各程序包的应用场景需求、启动条件(例如,需要在某时间点启动,或者需要在某指定程序运行完毕之后启动,等等),以及各程序包之间的依赖关系等信息。其中,关于程序包的启动条件可以是由第三方开发者指定的,而程序包之间的依赖关系,可以由第三方开发者指定,也可以由开放平台自动获取。例如,开放平台通过对各程序包的代码进行分析得知,程序包1的逻辑是对表a进行处理生成表b、c,而程序包2的逻辑是对表b处理生成表d,因此,可以判断出程序包2依赖程序包1,进而就可以自动标识该依赖关系。
e)应用管理:应用发布、应用下架、应用状态查询。
f)费用管理:交费、续费、结算、清算、余额管理。
算法类数据应用开发子模块的主要功能可以包括:
a)算法模型管理:增删改查、分享、授权、协作。
b)基础模型库。
c)数据特征分析环境:统计分布验证、特征提取、验证。
d)模型训练管理:模型训练、结果验证。
沙箱数据容器环境模块,提供代码、数据集验证功能的计算环境,包括:
a)代码运行环境:
ⅰ.分布式代码运行环境(Map/Reduce程序、SQL程序)
ⅱ.算法运行环境
b)数据环境:提供代码运行的数据支撑环境,必要的数据库,数据集,数据集创建工具等,这些数据可以是开放平台提供的样本数据,例如,将用户几年前的产生的数据拼接在一起等等,生成具有相同的数据结构,但并不真是的数据,这种数据提供给第三方开发者,用于对其开发的代码进行验证。
任务工作流调度模块:负责将第三方开发者提交的应用根据任务依赖关系、应用场景需求执行调度,并将需要执行的应用提交给数据容器环境(数据容器通过预置的接口监听任务工作流调度模块的提交请求,因此,当任务工作流调度模块发现有需要执行的应用时,就可以通过数据容器的接口进行发送)。其中,如果开发模块包括计算类数据应用开发子模块以及算法类数据应用开发子模块,则在调度时,可以根据开发过程中标识出的计算类应用或者算法类应用,将需要执行的应用发送到“通用计算容器环境”或者“算法容器环境”执行。另外,任务工作流调度模块在向数据容器提交需要执行的应用的同时,还可以提交一些控制命令,以便数据容器按照这些控制命令来执行。
通用计算容器环境:
a)负责接收任务工作流调度模块提交的通用计算任务,将计算任务根据性质不同提交给对应的“分布式处理容器”或“同步处理容器”。
b)对任务进行监控、跟踪、数据采集
c)和“数据查询中间层”打通,完成数据查询功能
算法容器环境:
a)负责接收任务工作流调度模块提交的算法任务,将算法任务根据性质不同提交给对应的:“分布式处理容器”或“同步处理容器”。
b)“基础算法包”子模块。第三方开发者在算法类数据应用开发子模块中开发时,可以根据自己的需求编写算法代码,或者,开放平台也可以为第三方开发者提供一些基础算法,这样,第三方开发者只要在基础算法的基础上进行选择需要的特征、调整算法的参数等操作即可,以此提高开发效率。相应的,在算法容器环境中,还可以提供基础算法可执行调用模块,其中,基础算法可以包括:
ⅰ.分类算法
ⅱ.聚类算法
ⅲ.回归算法
数据安全审核引擎:当第三方开发者完成代码的开发之后,在部署到数据容器之前,还可以进行安全审核。
与本申请实施例提供的第三方应用的执行方法相对应,本申请实施例还提供了一种第三方应用的执行系统,参见图2,该系统可以包括:
元数据描述信息发送单元201,用于接收到第三方开发者发送的数据申请请求后,将被请求数据的元数据描述信息发送给第三方开发者,以供第三方开发者基于所述元数据描述信息进行第三方应用的开发;
应用部署单元202,用于接收第三方开发者提交的第三方应用的程序信息,并将所述第三方应用部署到数据容器环境中,其中,所述数据容器环境中还保存有第三方应用在执行过程中所需的具体数据;
应用执行单元203,用于在所述数据容器环境中执行所述第三方应用。
具体实现时,该系统还可以包括:
调度单元,用于根据任务依赖关系和/或应用场景需求对第三方应用进行调度;
所述应用部署单元202具体用于:
根据调度结果,将当前需要执行的第三方应用部署到数据容器环境中。
另外,该系统还可以包括:
安全审核单元,用于接收到第三方开发者提交的第三方应用后,对第三方应用对数据的操作进行安全审核。
为了便于第三方进行开发,该系统还可以包括:
样本数据提供单元,用于接收到第三方开发者发送的数据申请请求后,向第三方开发者提供样本数据,以供第三方开发者对开发出的第三方应用的逻辑进行验证。
其中,不同的应用类型对应不同的开发入口,所述系统还可以包括:
界面提供单元,用于从某类型的开发入口接收到用户的开发请求时,为用户提供该类型应用的开发界面。
不同的应用类型对应不同的数据容器环境,所述系统还可以包括:
标识单元,用于从某类型的开发入口接收到用户的开发请求后,将对应开发的第三方应用所属的类型进行标识;
所述应用部署单元202具体可以用于:
根据所述第三方应用所属的类型,将所述第三方应用部署到该类型对应的数据容器环境中。
所述应用类型包括计算类或算法类。
具体的,应用执行单元203具体可以用于:
根据第三方应用需执行的任务对时间的要求,在所述数据容器环境中对所述第三方应用进行分布式或者同步处理。
另外,该系统还可以包括:
封装单元,用于所述第三方应用执行完成后,根据输出数据的标识封装成接口,以便第三方开发者根据所述接口获取第三方应用的执行结果。
还可以包括:
前台界面逻辑接收单元,用于接收第三方开发者提交的第三方应用的前台界面逻辑;
界面逻辑部署单元,用于将所述前台界面逻辑部署到数据容器中,以便在所述第三方应用执行完成后,在前台界面中显示执行结果。
总之,通过本申请实施例,为第三方开发者提供了数据容器系统,将计算所需的数据按类别等存放在系统内部的数据容器中,而不是发送给第三方开发者,第三方开发者在开发完成第三方应用的计算逻辑或算法逻辑之后,将第三方应用也部署到该数据容器中,这样数据以及对数据的操作过程相当于都是在数据容器内部完成的,第三方开发者不用看到具体的数据内容,只要提供应用的计算逻辑或者算法就好,从而解决了数据安全风险和开放高价值数据的矛盾。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的第三方应用的执行方法及系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种第三方应用的执行方法,其特征在于,包括:
接收到第三方开发者发送的数据申请请求后,将被请求数据的元数据描述信息发送给第三方开发者,以供第三方开发者基于所述元数据描述信息进行第三方应用的开发;
接收第三方开发者提交的第三方应用的程序信息,根据任务依赖关系和/或应用场景需求对第三方应用进行调度,并根据调度结果,将当前需要执行的第三方应用部署到数据容器环境中,其中,所述数据容器环境中还保存有第三方应用在执行过程中所需的具体数据;
在所述数据容器环境中执行所述第三方应用。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收到第三方开发者提交的第三方应用的程序信息后,对第三方应用对数据的操作进行安全审核。
3.根据权利要求1所述的方法,其特征在于,还包括:
接收到第三方开发者发送的数据申请请求后,向第三方开发者提供样本数据,以供第三方开发者对开发出的第三方应用的逻辑进行验证。
4.根据权利要求1所述的方法,其特征在于,不同的应用类型对应不同的开发入口,所述方法还包括:
从某类型的开发入口接收到用户的开发请求时,为用户提供该类型应用的开发界面。
5.根据权利要求4所述的方法,其特征在于,不同的应用类型对应不同的数据容器环境,所述方法还包括:
从某类型的开发入口接收到用户的开发请求后,将对应开发的第三方应用所属的类型进行标识;
所述将所述第三方应用部署到数据容器环境中,包括:
根据所述第三方应用所属的类型,将所述第三方应用部署到该类型对应的数据容器环境中。
6.根据权利要求4或5所述的方法,所述应用类型包括计算类或算法类。
7.根据权利要求1所述的方法,其特征在于,所述在所述数据容器环境中执行所述第三方应用,包括:
根据第三方应用需执行的任务对时间的要求,在所述数据容器环境中对所述第三方应用进行分布式或者同步处理。
8.根据权利要求1至5、7任一项所述的方法,其特征在于,还包括:
所述第三方应用执行完成后,根据输出数据的标识封装成接口,以便第三方开发者根据所述接口获取第三方应用的执行结果。
9.根据权利要求1至5、7任一项所述的方法,其特征在于,还包括:
接收第三方开发者提交的第三方应用的前台界面逻辑;
将所述前台界面逻辑部署到数据容器中,以便在所述第三方应用执行完成后,在前台界面中显示执行结果。
10.一种第三方应用的执行系统,其特征在于,包括:
元数据描述信息发送单元,用于接收到第三方开发者发送的数据申请请求后,将被请求数据的元数据描述信息发送给第三方开发者,以供第三方开发者基于所述元数据描述信息进行第三方应用的开发;
应用部署单元,用于接收第三方开发者提交的第三方应用的程序信息,根据任务依赖关系和/或应用场景需求对第三方应用进行调度,并根据调度结果,将当前需要执行的第三方应用部署到数据容器环境中,其中,所述数据容器环境中还保存有第三方应用在执行过程中所需的具体数据;
应用执行单元,用于在所述数据容器环境中执行所述第三方应用。
CN201410172373.7A 2014-04-25 2014-04-25 第三方应用的执行方法及系统 Active CN105095970B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201410172373.7A CN105095970B (zh) 2014-04-25 2014-04-25 第三方应用的执行方法及系统
TW103132814A TWI650650B (zh) 2014-04-25 2014-09-23 第三方應用的執行方法及系統
PCT/US2015/027383 WO2015164661A1 (en) 2014-04-25 2015-04-23 Executing third-party application
JP2016561001A JP2017514218A (ja) 2014-04-25 2015-04-23 サードパーティアプリケーションの実行
EP15782622.3A EP3134812A4 (en) 2014-04-25 2015-04-23 Executing third-party application
US14/694,942 US20150310209A1 (en) 2014-04-25 2015-04-23 Executing third-party application
HK16101008.0A HK1213346A1 (zh) 2014-04-25 2016-01-29 第三方應用的執行方法及系統

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN105095970A CN105095970A (zh) 2015-11-25
CN105095970B true CN105095970B (zh) 2018-09-21

Family

ID=54333220

Family Applications (1)

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

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 华控清交信息科技(北京)有限公司 代码审核的方法、装置及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214093A (zh) * 2010-04-07 2011-10-12 苹果公司 向第三方应用的搜索扩展能力
CN102239488A (zh) * 2008-12-05 2011-11-09 诺基亚公司 用于模糊上下文信息的方法和设备

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752214B2 (en) * 2000-09-01 2010-07-06 Op40, Inc. Extended environment data structure for distributed digital assets over a multi-tier computer network
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
WO2004081762A2 (en) * 2003-03-12 2004-09-23 Lammina Systems Corporation 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 富士通株式会社 テストデータ作成装置
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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102239488A (zh) * 2008-12-05 2011-11-09 诺基亚公司 用于模糊上下文信息的方法和设备
CN102214093A (zh) * 2010-04-07 2011-10-12 苹果公司 向第三方应用的搜索扩展能力

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《社会网络个性化隐私保护方法的研究与实现》;王桥;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130115(第1期);I139-137 *
《面向第三方平台的个性化隐私保护研究》;姜文广;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131115(第11期);I139-98 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN105095970B (zh) 第三方应用的执行方法及系统
US10872029B1 (en) System, apparatus and method for deploying infrastructure to the cloud
US20210224818A1 (en) User Interface and Process Flow for Providing an Intent Suggestion to a User in a Text-Based Conversational Experience with User Feedback
US11233708B1 (en) System, apparatus and method for deploying infrastructure to the cloud
US10768980B2 (en) Automated execution of a batch job workflows
CN108764674B (zh) 一种基于规则引擎的风险控制方法和装置
US8904239B2 (en) System and method for automated test configuration and evaluation
US10318402B2 (en) Automated software compliance analysis
WO2019108358A1 (en) Transaction authorization process using blockchain
CN109240900A (zh) 区块链网络服务平台及其智能合约检测方法、存储介质
US10990370B1 (en) System, apparatus and method for deploying infrastructure to the cloud
US10521446B2 (en) System and method for dynamically refactoring business data objects
US11295247B2 (en) Discovery and generation of organizational key performance indicators utilizing glossary repositories
CN110597730B (zh) 基于场景法的自动化测试用例生成方法及系统
US10044630B2 (en) Systems and/or methods for remote application introspection in cloud-based integration scenarios
US11803355B2 (en) Bot factory environment
CN108604278A (zh) 具有对共享数据表的支持的自描述配置
US20170235713A1 (en) System and method for self-learning real-time validation of data
US8726286B2 (en) Modeling and consuming business policy rules
CN111161052A (zh) 银行作业数据的处理方法及装置
US8832110B2 (en) Management of class of service
Shrivastava Learning Salesforce Einstein
US10216830B2 (en) Multicomputer processing of client device request data using centralized event orchestrator and link discovery engine
US10296882B2 (en) Multicomputer processing of client device request data using centralized event orchestrator and link discovery engine
US11882124B1 (en) Account integration with an event-driven application programing interface call manager

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1213346

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant