第三方應用腳本能力的制作方法
【專利說明】
【背景技術】
[0001]軟件應用經(jīng)常遵循具體需求進行開發(fā)以提供某些能力。雖然軟件應用開發(fā)者可以為終端用戶提供有價值的功能,但是第三方腳本開發(fā)者可以通過提供改變或擴展軟件應用功能的擴展、自動化、插件或類似代碼來提升該基本功能,使得該應用更為用戶友好。例如,web應用開發(fā)者可以創(chuàng)建用于發(fā)送和接收電子郵件的軟件應用。該web應用可以包括用于找出并標記電子郵件的功能。該應用也可以對任意一個終端用戶的電子郵件賬戶的容量大小具有限制。然而,該web應用可能并未向終端用戶提供找出高于某個大小的電子郵件消息而使得他們能夠刪除大的電子郵件消息以釋放其電子郵件賬戶中的空間的能力。第三方腳本開發(fā)者可以編寫插件,當該插件被添加至該電子郵件應用時,能夠找出并標記高于某個大小的所有電子郵件消息。終端用戶可以將該第三方開發(fā)者的插件添加至其瀏覽器并且運行該插件從而輕易地找到大的電子郵件消息,使得這些消息能夠在終端用戶的電子郵件賬戶達到容量大小時被刪除。
[0002]即使第三方腳本能夠改善終端用戶體驗,但是非常少的軟件應用開發(fā)者允許非受信的第三方腳本被添加至他們的web應用,這是因為添加第三方功能使得web應用開發(fā)者難以保持web應用的安全并且也使得終端用戶對該web應用的體驗不一致。
[0003]如圖1所示,通常的第三方腳本(105)最經(jīng)常地工作在web瀏覽器級別(101a, 101b)而并非是軟件應用的組成部分。一種值得關注的瀏覽器級別的第三方腳本的示例是插件,它是能夠對web應用的功能進行定制的軟件組件。瀏覽器級別的腳本由于它們依賴于瀏覽器而存在問題。如果終端用戶針對一個瀏覽器(1la)中的應用(103a)安裝了諸如圖1所示的腳本(105),但是隨后更改了其用來訪問相同應用的不同實例(103b)的瀏覽器(1lb),則該終端用戶必須在新的瀏覽器中安裝該腳本以便針對該應用獲得該腳本的功能。如圖1所示,由于該腳本并未被安裝在瀏覽器2 (1lb)中,所以該應用的腳本105的功能擴展在瀏覽器I (1la)中可用而在瀏覽器2 (1lb)中不可用。
[0004]應當具有一種允許第三方腳本與主機應用緊密交互同時仍然保持安全的系統(tǒng)。該系統(tǒng)應當允許軟件應用開發(fā)者安全地向其托管的應用添加第三方腳本功能,使得無論終端用戶如何訪問該應用第三方腳本都能夠與該終端用戶相關聯(lián)。
【發(fā)明內容】
[0005]本說明書總體上描述了涉及第三方應用腳本能力(scriptability)的技術,并且更具體地,涉及用于允許第三方腳本開發(fā)者安全地向軟件應用添加功能的方法和系統(tǒng)。
[0006]總體上,本說明書中所描述的主題的一個方面可以以一種用于允許軟件應用開發(fā)者將第三方腳本并入其軟件應用中的系統(tǒng)和方法來體現(xiàn)。示例性系統(tǒng)包括腳本環(huán)境,該腳本環(huán)境提供以下各項中的至少一項:服務器上的認證,訪問控制,對客戶端側腳本的限制以及腳本的管理。該系統(tǒng)可以附加地包括一個或多個處理設備以及存儲指令的一個或多個存儲設備,該指令用于創(chuàng)建服務器側web服務,該服務器側web服務允許第三方腳本客戶端和應用服務器之間的通信;創(chuàng)建客戶端側應用編程接口,該客戶端側應用編程接口暴露應用的功能和資源的子集;允許第三方腳本經(jīng)由該web服務來訪問應用的服務器;允許該第三方腳本使用該客戶端側應用編程接口來訪問應用的功能和資源;以及向終端用戶提供針對該第三方腳本的訪問。第二示例性系統(tǒng)可以包括如以上所描述的腳本環(huán)境,一個或多個處理設備以及一個或多個存儲指令的存儲設備,該指令允許第三方腳本開發(fā)者:從軟件應用接收應用編程接口 ;從軟件應用接收web服務;使用該應用編程接口和web服務來創(chuàng)建改變該軟件應用的功能的腳本;以及允許終端用戶訪問該腳本。
[0007]這些和其它實施例可以可選地包括以下特征中的一個或多個特征:第三方腳本可以定義并注冊觸發(fā)器,該觸發(fā)器當事件在應用中發(fā)生時發(fā)起該第三方腳本中的動作;軟件應用開發(fā)者可以具有將web服務包裝到能夠被包括在第三方腳本中的腳本庫中的能力;軟件應用開發(fā)者可以能夠通過集成開發(fā)環(huán)境將第三方腳本加載到應用中;該集成開發(fā)環(huán)境可以創(chuàng)建與軟件應用相關聯(lián)的品牌;可以向終端用戶提供可用于安裝的應用專屬的腳本的列表(gallery);并且可以向終端用戶提供當前所安裝的腳本的控制面板,用戶可以在此管理所安裝的腳本。
[0008]本發(fā)明的一個或多個實施例的細節(jié)在附圖和以下描述中被闡述,附圖僅通過說明的方式給出。本發(fā)明的其它特征、方面和優(yōu)勢將從該描述、附圖和權利要求而變得顯而易見。同樣的附圖標號和標記在各圖中指示同樣的元素。
【附圖說明】
[0009]圖1是圖示向web應用添加第三方腳本的常見實施例的框圖。
[0010]圖2是圖示用于向web應用添加第三方腳本的示例性實施例的框圖。
[0011]圖3是用于向web應用添加第三方腳本的示例性方法的流程圖。
[0012]圖4是圖示示例性計算設備的框圖。
【具體實施方式】
[0013]根據(jù)示例性實施例,如圖2所示,可以存在綜合的類似插件的系統(tǒng),該系統(tǒng)允許軟件應用開發(fā)者將第三方腳本并入其應用中。該系統(tǒng)可以提供流程和機制用于使得安全腳本環(huán)境能夠被添加至托管的軟件應用開發(fā)環(huán)境,使得第三方腳本能夠被并入軟件應用中,而應用開發(fā)者不必擔心保護其應用免受惡意腳本的影響。該腳本環(huán)境可以允許應用可由非受信的第三方腳本開發(fā)者安全地編寫腳本。示例性的腳本環(huán)境可以使用Caja用于安全腳本。Caja是提供具有對象能力的安全性的javascript的子集。該技術提供了 JavaScript沙箱,其能夠改變用戶的腳本并且通過去除危險的方法調用而對它們進行凈化(sanitize)。如圖2所示,應用服務器(109)在應用級別并入第三方腳本(105),因此腳本插件獨立于用于訪問應用實例(103a,103b)的瀏覽器(101a,101b)。因此,無論用戶利用其訪問應用的瀏覽器如何,登錄到應用中的用戶將具有伴隨該應用的相同用戶體驗。
[0014]示例性系統(tǒng)可以包括客戶端和服務器兩者的腳本組件、腳本托管、web集成開發(fā)環(huán)境(IDE),以及查看用于給定應用的所有腳本的方式。
[0015]在一些實施例中,示例性系統(tǒng)包括客戶端/服務器安全腳本環(huán)境。該腳本環(huán)境可以提供以下特征中的一些或全部特征:(I)云集成開發(fā)環(huán)境,(2)服務器側腳本運行時,(3)腳本托管和庫,(3)事件觸發(fā)器,(4)賬戶管理,(5)內建的應用編程接口(API),(6)開放授權(oAuth)集成,(7)安全客戶端,(8)能夠被授予不能對軟件應用的終端用戶產(chǎn)生惡意攻擊的有限的瀏覽器內的權限的腳本,(9)針對具體應用所開發(fā)的用于查看所有腳本的每應用列表。腳本環(huán)境還可以提供服務器上的認證、訪問控制以及對于客戶端側擴展的限制。此外,該腳本環(huán)境可以管理其它細節(jié),包括托管、服務器API以及賬戶管理。通常,示例性系統(tǒng)應當理解web應用的需求并且定義web應用用于與腳本環(huán)境進行交互以便用于該腳本環(huán)境與該web應用交互的方法。
[0016]示例性實施例可以針對不同的預期用戶群組而提供不同的視圖和功能??赡艽嬖谟糜谲浖瞄_發(fā)者的視圖、用于第三方腳本開發(fā)者的視圖以及用于終端用戶的視圖。
[0017]軟件應用開發(fā)者
[0018]使用示例性系統(tǒng),軟件應用開發(fā)者可以針對終端用戶所安裝的腳本查詢腳本環(huán)境,經(jīng)由沙箱技術將所安裝的腳本加載到應用的客戶端上,對所加載的腳本進行沙箱操作,并且允許所加載的腳本使用被創(chuàng)建為用于與第三方腳本進行交互的web服務與應用的服務器進行交互。
[0019]示例性實施例可以為軟件應用開發(fā)者提供通過集成開發(fā)環(huán)境(IDE)加載腳本的方式。該開發(fā)環(huán)境可以被預先加