事件觸發(fā)的服務(wù)器端宏的制作方法
【專利說明】事件觸發(fā)的服務(wù)器端宏
[0001 ] 分案申請(qǐng)說明
[0002]本申請(qǐng)是國(guó)際申請(qǐng)日為2010年8月13日、于2012年3月16日進(jìn)入中國(guó)國(guó)家階段、申請(qǐng)?zhí)枮?01080041591.7、名稱為“事件觸發(fā)的服務(wù)器端宏”的中國(guó)發(fā)明專利申請(qǐng)的分案申請(qǐng)。
技術(shù)領(lǐng)域
[0003]本發(fā)明涉及基于網(wǎng)絡(luò)的電子內(nèi)容傳送。
【背景技術(shù)】
[0004]宏是可在一個(gè)或多個(gè)計(jì)算機(jī)應(yīng)用內(nèi)執(zhí)行以提供與這些應(yīng)用的增強(qiáng)且自動(dòng)交互的一組指令,其中,至少一部分宏代表可另由應(yīng)用的用戶手動(dòng)執(zhí)行的步驟。例如,可以寫一個(gè)宏來根據(jù)臺(tái)式計(jì)算機(jī)上的電子表格應(yīng)用中的某些數(shù)計(jì)算一個(gè)值并將該值復(fù)制到相關(guān)文字處理應(yīng)用。用戶可以給宏分配一個(gè)“熱鍵”組合,從而用戶可以通過簡(jiǎn)單地按下熱鍵組合來運(yùn)行宏。又例如,可以寫一個(gè)宏以使得某些電子消息(例如來自配偶、客戶或上司的消息)的重要性提高,從而計(jì)算裝置的用戶可以更容易地看到這些消息。一個(gè)熟知的基于宏的系統(tǒng)是用于微軟OFFICE產(chǎn)品套件應(yīng)用的Visual Basic。
【發(fā)明內(nèi)容】
[0005]本文討論用于在通常稱為“云”的托管計(jì)算系統(tǒng)中創(chuàng)建并使用宏的系統(tǒng)和技術(shù)??梢詮暮攴?wù)器子系統(tǒng)而不是從客戶機(jī)設(shè)備存儲(chǔ)并執(zhí)行宏,由于只要合格的用戶可以上網(wǎng)并提供他們的證書,所有的合格用戶就可以從許多位置訪問宏,因而允許在用戶之間輕易地共享宏。
[0006]此外,宏可以容易地訪問由托管計(jì)算系統(tǒng)或來自獨(dú)立于托管計(jì)算機(jī)系統(tǒng)的第三方系統(tǒng)的多個(gè)應(yīng)用和服務(wù)。這些服務(wù)可包括提供有關(guān)多個(gè)用戶位置的信息(例如根據(jù)用戶移動(dòng)裝置上的GPS確定的信息)的服務(wù)、提供新聞和天氣供給的服務(wù)以及其他這種服務(wù)。這些應(yīng)用可包括例如電子郵件和其他消息傳送應(yīng)用、如電子表格和文字處理器的生產(chǎn)應(yīng)用、地圖應(yīng)用以及可以用單個(gè)呈現(xiàn)方式一起呈現(xiàn)的各種應(yīng)用的混合(可由用戶訪問,甚至由用戶開發(fā),以提供來自宏的自定義輸出)。
[0007]可由用網(wǎng)絡(luò)瀏覽器顯示的一個(gè)或多個(gè)網(wǎng)頁(yè)把應(yīng)用呈現(xiàn)給用戶。系統(tǒng)還可提供宏的記錄,其中用戶可以調(diào)用宏記錄器,記錄器可跟蹤用戶在計(jì)算機(jī)上的動(dòng)作并將這些動(dòng)作變成宏代碼,從而以后用戶運(yùn)行宏時(shí)可以自動(dòng)重復(fù)這些動(dòng)作。
[0008]即便在用戶未和特定宏處理的應(yīng)用交互時(shí),包括用戶未登錄托管系統(tǒng)的情況,也可由出現(xiàn)的事件調(diào)用某些宏。具體而言,如果宏在服務(wù)器子系統(tǒng)上存儲(chǔ)并執(zhí)行,可將服務(wù)器子系統(tǒng)設(shè)置用于監(jiān)控宏處理的整個(gè)系統(tǒng)中的特定事件。然后,這些事件可以觸發(fā)宏的調(diào)用,宏可在服務(wù)器子系統(tǒng)上執(zhí)行。
[0009]宏可訪問系統(tǒng)上的服務(wù)或第三方服務(wù)。系統(tǒng)上的服務(wù)可授權(quán)訪問對(duì)應(yīng)于注冊(cè)到該系統(tǒng)的特定用戶的數(shù)據(jù)存儲(chǔ),同時(shí)對(duì)訪問施加某些用戶可配置的安全措施。例如,可響應(yīng)于進(jìn)入用戶賬號(hào)的電子郵件消息調(diào)用宏,進(jìn)而把信息從消息復(fù)制到分配給該用戶賬號(hào)的電子表格(例如,這樣用戶可自動(dòng)編譯顯示他們的所有到來消息的標(biāo)題行的電子表格)。該宏還可檢查一個(gè)或多個(gè)服務(wù),例如位置服務(wù)、天氣相關(guān)網(wǎng)站的數(shù)據(jù),或者該宏可采取使用托管系統(tǒng)或托管系統(tǒng)外部的系統(tǒng)的資源的動(dòng)作,以為宏收集數(shù)據(jù)并用宏作出決策。然后,該宏可在用戶不在系統(tǒng)活動(dòng)的情況下(例如未登錄到托管系統(tǒng),或者在用戶的客戶計(jì)算設(shè)備)采取動(dòng)作,例如把消息信息放入電子表格、打電話給對(duì)應(yīng)于用戶賬號(hào)的號(hào)碼或其他這類動(dòng)作。
[0010]宏可訪問的第三方服務(wù)可包括SOAP服務(wù)或可從與提供該服務(wù)的域分離的域訪問的、且提供用于通過互聯(lián)網(wǎng)共享信息的公知機(jī)制的其他類似服務(wù)。例如,第三方服務(wù)提供者可編譯最新天氣數(shù)據(jù),并根據(jù)請(qǐng)求使該數(shù)據(jù)為其他服務(wù)可用。
[0011]一個(gè)實(shí)現(xiàn)方式中,公開了管理計(jì)算機(jī)宏的計(jì)算機(jī)實(shí)現(xiàn)的方法。該方法包括:在互聯(lián)網(wǎng)可訪問的托管計(jì)算機(jī)系統(tǒng)存儲(chǔ)計(jì)算機(jī)宏的代碼;將所存儲(chǔ)的代碼和托管計(jì)算機(jī)系統(tǒng)上的用戶賬號(hào)關(guān)聯(lián);并且,無論和用戶賬號(hào)關(guān)聯(lián)的用戶目前是否在托管計(jì)算機(jī)系統(tǒng)上活動(dòng),自動(dòng)用托管計(jì)算機(jī)系統(tǒng)識(shí)別定義為指向宏的觸發(fā)事件。該方法還包括:使用托管計(jì)算機(jī)系統(tǒng)上運(yùn)行的應(yīng)用執(zhí)行宏來產(chǎn)生宏結(jié)果,并把宏結(jié)果存儲(chǔ)在托管計(jì)算機(jī)系統(tǒng)上。該方法還可包括產(chǎn)生消息給和用戶賬號(hào)關(guān)聯(lián)的通信地址,通知用戶宏結(jié)果。
[0012]—些方面中,觸發(fā)事件包括定向到用戶賬號(hào)的到來數(shù)字通信。而且,觸發(fā)事件可包括確定和賬號(hào)所有人關(guān)聯(lián)的計(jì)算機(jī)設(shè)備用戶的位置。該方法還可包括把宏和托管計(jì)算機(jī)系統(tǒng)的登記用戶關(guān)聯(lián),并且根據(jù)登記用戶確立的訪問限制使宏為托管計(jì)算機(jī)系統(tǒng)的其他用戶可用。此外,可響應(yīng)于來自多個(gè)不同用戶賬號(hào)的觸發(fā)事件訪問宏。
[0013]—些其他方面中,該方法還包括:從托管計(jì)算機(jī)遠(yuǎn)程的多個(gè)不同客戶計(jì)算機(jī)上運(yùn)行的多個(gè)應(yīng)用接收?qǐng)?zhí)行宏的請(qǐng)求;在托管計(jì)算機(jī)系統(tǒng)上為來自該位置的每個(gè)請(qǐng)求自動(dòng)執(zhí)行宏,并且響應(yīng)于執(zhí)行宏把執(zhí)行宏的結(jié)果提供給多個(gè)應(yīng)用的每個(gè)相應(yīng)應(yīng)用。執(zhí)行宏可包括調(diào)用托管計(jì)算機(jī)系統(tǒng)提供的多個(gè)不同托管服務(wù)。而且,執(zhí)行宏可包括調(diào)用獨(dú)立于托管計(jì)算機(jī)系統(tǒng)的第三方信息提供者提供的網(wǎng)絡(luò)服務(wù)。該方法還可包括把運(yùn)行在托管計(jì)算機(jī)系統(tǒng)上的第一應(yīng)用產(chǎn)生的信息轉(zhuǎn)換成不同格式并把轉(zhuǎn)換后的信息提供給托管計(jì)算機(jī)系統(tǒng)上運(yùn)行的第二應(yīng)用,而且自動(dòng)把執(zhí)行宏的結(jié)果提供給在托管計(jì)算機(jī)系統(tǒng)登記的多個(gè)不同用戶的多個(gè)不同賬號(hào)。
[0014]另一實(shí)現(xiàn)方式中,公開了用于在托管計(jì)算機(jī)系統(tǒng)上執(zhí)行宏的計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng)。該系統(tǒng)包括:可從托管計(jì)算機(jī)系統(tǒng)操作的多個(gè)托管應(yīng)用;存儲(chǔ)多個(gè)宏的宏數(shù)據(jù)存儲(chǔ),每個(gè)宏被分配給托管計(jì)算機(jī)系統(tǒng)上的用戶賬號(hào),而且每個(gè)宏定義要由多個(gè)托管應(yīng)用中的至少一個(gè)執(zhí)行的一系列動(dòng)作;以及操作調(diào)度(scheduling)模塊的處理器,調(diào)度模塊識(shí)別系統(tǒng)中的觸發(fā)事件并且響應(yīng)于和多個(gè)宏中的一個(gè)對(duì)應(yīng)的所識(shí)別的觸發(fā)事件開始執(zhí)行多個(gè)宏中的該宏。系統(tǒng)還可包括操作接口的處理器,該接口被編程以產(chǎn)生給和用戶賬號(hào)關(guān)聯(lián)的通信地址的消息,通知用戶宏結(jié)果。
[0015]—些方面中,觸發(fā)事件包括定向到用戶賬號(hào)的到來數(shù)字通信。系統(tǒng)還可包括跟蹤系統(tǒng)的賬號(hào)所有人位置的位置服務(wù),而且,其中觸發(fā)事件包括確定和代表他執(zhí)行宏的第一賬號(hào)所有人關(guān)聯(lián)的第二賬號(hào)所有人的位置。可響應(yīng)于來自多個(gè)不同用戶賬號(hào)的觸發(fā)事件訪問宏,而且系統(tǒng)還可包括與系統(tǒng)的多個(gè)賬號(hào)所有人關(guān)聯(lián)的多個(gè)文檔,其中多個(gè)文檔包括指向宏數(shù)據(jù)存儲(chǔ)中存儲(chǔ)的宏的指針。此外,系統(tǒng)可包括位置服務(wù),用于響應(yīng)于來自宏的調(diào)用提供與在托管計(jì)算機(jī)系統(tǒng)登記的用戶位置有關(guān)的信息。而且,只有在系統(tǒng)確定宏正在其賬號(hào)運(yùn)行的用戶和要提供其位置信息的用戶關(guān)聯(lián)時(shí),位置服務(wù)才可提供關(guān)于位置的信息。
[0016]另一實(shí)現(xiàn)方式中,用于在托管計(jì)算機(jī)系統(tǒng)上執(zhí)行宏的計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng)包括:可從托管計(jì)算機(jī)系統(tǒng)操作的多個(gè)托管應(yīng)用;存儲(chǔ)多個(gè)宏的宏數(shù)據(jù)存儲(chǔ),每個(gè)宏被分配給托管計(jì)算機(jī)系統(tǒng)上的用戶賬號(hào),而且每個(gè)宏定義要由多個(gè)托管應(yīng)用中的至少一個(gè)執(zhí)行的一系列動(dòng)作;以及用于響應(yīng)于識(shí)別到和特定賬號(hào)所有人關(guān)聯(lián)的觸發(fā)事件執(zhí)行多個(gè)宏的裝置,其中觸發(fā)事件的出現(xiàn)與特定賬號(hào)所有人是否登錄到系統(tǒng)中無關(guān)。
[0017]下文的附圖和說明書闡述了一個(gè)或多個(gè)實(shí)施例的具體內(nèi)容。根據(jù)說明書和附圖以及權(quán)利要求,其他特征和益處是顯而易見的。
【附圖說明】
[0018]圖1是示出托管計(jì)算系統(tǒng)中的宏操作的概念圖。
[0019]圖2是可以操作共享宏的托管計(jì)算機(jī)系統(tǒng)的示意圖。
[0020]圖3A是在托管計(jì)算系統(tǒng)上執(zhí)行宏的過程的流程圖。
[0021 ]圖3B是管理事件觸發(fā)的宏的過程的流程圖。
[0022]圖4A是執(zhí)行從網(wǎng)頁(yè)上運(yùn)行的應(yīng)用調(diào)用的宏的過程的流程圖。
[0023]圖4B是用于在托管系統(tǒng)上記錄并執(zhí)行宏的過程的泳道流程圖。
[0024]圖5示出宏系統(tǒng)中的對(duì)象的示例結(jié)構(gòu)。
[0025]圖6示出宏構(gòu)建系統(tǒng)的示例截屏。
[0026]圖7示出可用于執(zhí)行本文所述動(dòng)作的通用計(jì)算機(jī)裝置的示例。
[0027]各附圖中的類似參考標(biāo)記指示類似的元素。
【具體實(shí)施方式】
[0028]圖1是示出托管計(jì)算系統(tǒng)100中的宏操作的概念圖。該操作可以和如下客戶機(jī)設(shè)備或服務(wù)器上的宏操作相比,其中,在創(chuàng)建宏和/或把宏復(fù)制到宏的存儲(chǔ)位置的用戶從他們的臺(tái)式計(jì)算機(jī)、上網(wǎng)本計(jì)算機(jī)或者從諸如網(wǎng)吧中的計(jì)算機(jī)的公用計(jì)算機(jī)運(yùn)行應(yīng)用的同時(shí)試圖訪問宏時(shí),通過從各種客戶機(jī)啟動(dòng)宏操作來將該客戶機(jī)設(shè)備或服務(wù)器定向至單個(gè)客戶端設(shè)備(例如,通過遠(yuǎn)程桌面連接服務(wù)或者VPN)。而且,可以通過第一用戶限定對(duì)宏的訪問限制而輕易的在用戶之間共享宏,訪問限制允許其他用戶(例如,和初始用戶從同一域訪問系統(tǒng)的用戶)在使用自己的應(yīng)用時(shí)運(yùn)行宏。而且,即便在用戶不在線時(shí)也可為用戶執(zhí)行宏,例如當(dāng)用戶和用戶計(jì)算機(jī)以外的輸入觸發(fā)宏執(zhí)行時(shí)。此外,托管系統(tǒng)具有彼此相關(guān)的多個(gè)注冊(cè)用戶時(shí)(例如他們?yōu)橥簧虡I(yè)組織工作),托管系統(tǒng)中運(yùn)行的宏可以產(chǎn)生復(fù)雜的工作流程,這些工作流程分布在對(duì)應(yīng)于多個(gè)這種用戶的應(yīng)用和/或數(shù)據(jù)存儲(chǔ)上。
[0029]如所指出的,可以通過外部事件觸發(fā)宏,例如通過收到電子郵件消息。宏可以運(yùn)行在與用戶的客戶端系統(tǒng)以及運(yùn)行其他服務(wù)或應(yīng)用的任何子系統(tǒng)分離的宏服務(wù)器子系統(tǒng)上。例如,其他子系統(tǒng)上的服務(wù)可包括宏訪問以獲得信息的任何服務(wù),包括主系統(tǒng)的內(nèi)部服務(wù)(例如位置服務(wù)和電子郵件服務(wù))和第三方服務(wù)(例如,來自商業(yè)的在線商店或拍賣站點(diǎn)、天氣預(yù)報(bào)站點(diǎn)等)。
[0030]和系統(tǒng)關(guān)聯(lián)的宏服務(wù)器子系統(tǒng)可允許寫宏代碼的用戶以統(tǒng)一一致的方式寫宏,這使編程體驗(yàn)對(duì)終端用戶來說是容易的。例如,可以為展示給終端用戶的不同服務(wù)定義對(duì)象模型,服務(wù)例如操作電子表格和日歷、獲得網(wǎng)絡(luò)內(nèi)容、發(fā)送電子郵件、訪問他們的日歷、翻譯文本等。對(duì)象模型例如使用Java對(duì)象代表。每個(gè)Java對(duì)象可以包裝訪問底層服務(wù)的方法。電子表格和語(yǔ)言翻譯服務(wù)可使用內(nèi)部直接網(wǎng)絡(luò)調(diào)用(例如遠(yuǎn)程過程調(diào)用),網(wǎng)絡(luò)內(nèi)容獲取例如可使用SOAP或類似服務(wù)。很多這些服務(wù)不需直接展示給終端用戶。
[0031]系統(tǒng)100可通過在底層Java對(duì)象周圍創(chuàng)建幾層“包裝”或“裝飾”來消除把內(nèi)部服務(wù)展示給終端用戶的風(fēng)險(xiǎn)。例如,系統(tǒng)100可包括限額強(qiáng)制層,其限制給定用戶可調(diào)用給定服務(wù)的次數(shù)。系統(tǒng)100可包括允許細(xì)粒度的訪問控制的安全層(例如允許對(duì)底層數(shù)據(jù)進(jìn)行讀訪問但不允許寫訪問),安全層可使用基于能力的安全策略。系統(tǒng)100還可包括日志層,其可捕獲所有用戶調(diào)用并提供用戶會(huì)話的記錄。統(tǒng)一地而不是特別對(duì)于所有服務(wù)應(yīng)用限額和安全策略,從而可減少程序員錯(cuò)誤的機(jī)會(huì)(即最終的安全漏洞)。
[0032]系統(tǒng)100可包括用于管理計(jì)算機(jī)宏的各種計(jì)算機(jī)實(shí)現(xiàn)的機(jī)制,其中宏的代碼存儲(chǔ)在可通過互聯(lián)網(wǎng)訪問的托管計(jì)算機(jī)系統(tǒng)內(nèi)的位置處,并且宏是可操作的以執(zhí)行下述功能。接收到例如來自運(yùn)行在托管計(jì)算機(jī)系統(tǒng)遠(yuǎn)程的客戶計(jì)算機(jī)上的應(yīng)用的執(zhí)行宏的請(qǐng)求后,可以在托管計(jì)算機(jī)系統(tǒng)上執(zhí)行宏。例如,宏可以直接在宏管理器或其通信耦合部件內(nèi)運(yùn)行??梢园褕?zhí)行宏的結(jié)果提供給運(yùn)行在客戶計(jì)算機(jī)上的應(yīng)用(例如,運(yùn)行在用戶計(jì)算機(jī)的瀏覽器中的電子表格應(yīng)用)。這種情況下,可以從編程宏以操作的文件外存儲(chǔ)和訪問宏代碼。例如,雖然代碼可以在托管服務(wù)服務(wù)器上執(zhí)行,但宏代碼更新的電子表格可以位于用戶的筆記本電腦上或托管服務(wù)的其他位置處,在這些地方可以自由地指向宏并且從代表注冊(cè)托管服務(wù)的任何多個(gè)用戶運(yùn)行的任意多個(gè)應(yīng)用訪問宏。
[0033]—些實(shí)現(xiàn)方式中,每個(gè)宏可以和托管計(jì)算機(jī)系統(tǒng)的注冊(cè)用戶關(guān)聯(lián),而且可以根據(jù)注冊(cè)用戶確定的訪問限制使宏成為托管計(jì)算機(jī)系統(tǒng)的其他用戶可用的(具體而言,使宏對(duì)其他用戶的賬號(hào)上運(yùn)行的應(yīng)用可用)。例如,“擁有”宏的用戶可通過其他用戶的用戶ID或者通過這些用戶所屬的組確定被授權(quán)使用他的宏的其他用戶。其他情況下,用戶可提供到宏的鏈接或URL并包括和運(yùn)行宏關(guān)聯(lián)的某些權(quán)限。
[0034]可以由托管計(jì)算機(jī)系統(tǒng)為注冊(cè)用戶分配的一個(gè)或多個(gè)組定義訪問限制。例如,用戶可以授權(quán)名為“MyOn 1 ineFr i ends (在線好友)”的組對(duì)宏的訪問,并把權(quán)限分給該組內(nèi)的所有人,這可代表該用戶在他的社交網(wǎng)站上(例如Facebook、Orkut等)識(shí)別的“好友”。
[0035]—些實(shí)現(xiàn)方式中,可以接收?qǐng)?zhí)行宏的請(qǐng)求,這些請(qǐng)求來自托管計(jì)算機(jī)遠(yuǎn)程的多個(gè)不同客戶計(jì)算機(jī)上運(yùn)行的多個(gè)應(yīng)用。例如,應(yīng)用可生成或啟動(dòng)“事件”,在宏的定義中,這些事件設(shè)計(jì)用于開始宏執(zhí)行,或者在等待狀態(tài)后恢復(fù)或繼續(xù)宏執(zhí)行。系統(tǒng)100可在托管計(jì)算機(jī)系統(tǒng)上為來自該位置的每個(gè)請(qǐng)求自動(dòng)執(zhí)行宏。系統(tǒng)100還可響應(yīng)于執(zhí)行宏把執(zhí)行宏的結(jié)果提供給多個(gè)應(yīng)用中的每個(gè)相應(yīng)應(yīng)用。一些實(shí)現(xiàn)方式中,多個(gè)應(yīng)用對(duì)應(yīng)于單個(gè)賬號(hào)所有人。例如,請(qǐng)求執(zhí)行宏的每個(gè)應(yīng)用可接收結(jié)果。一些實(shí)現(xiàn)方式中,多個(gè)應(yīng)用對(duì)應(yīng)于多個(gè)不同賬號(hào)所有人(例如,系統(tǒng)100的多個(gè)注冊(cè)用戶)。
[0036]執(zhí)行宏可包括調(diào)用托管計(jì)算機(jī)系統(tǒng)提供的多個(gè)不同托管服務(wù)。例如,宏可調(diào)用日歷服務(wù)、聯(lián)系服務(wù)、位置提供服務(wù)(例如指示用戶位置或用戶好友位置的服務(wù))等。作為替代,或者作為附加,執(zhí)行宏可包括調(diào)用獨(dú)立于托管計(jì)算機(jī)系統(tǒng)的第三方信息提供者所提供的網(wǎng)絡(luò)服務(wù)(例如,與托管計(jì)算機(jī)系統(tǒng)位于不同的域,和由與托管計(jì)算機(jī)系統(tǒng)不同的組織操作)。
[0037]還可以把托管計(jì)算機(jī)系統(tǒng)上執(zhí)行的第一應(yīng)用所產(chǎn)生的信息從第一格式轉(zhuǎn)換成第二格式,所轉(zhuǎn)換的信息可以被提供給托管計(jì)算機(jī)系統(tǒng)上運(yùn)行的第二應(yīng)用。例如,可以由文字處理應(yīng)用創(chuàng)建逗號(hào)劃界格式的數(shù)據(jù),然后可以把數(shù)據(jù)提供給電子表格應(yīng)用,以使用電子表格應(yīng)用特有的格式粘貼到電子表格單元格。
[0038]執(zhí)行宏的結(jié)果也可以自動(dòng)提供給在托管計(jì)算機(jī)系統(tǒng)注冊(cè)的多個(gè)不同用戶的多個(gè)不同賬號(hào)。例如,可以把宏執(zhí)行結(jié)果提供給若干計(jì)算機(jī)系統(tǒng)上的若干用戶,例如更新他們系統(tǒng)的每個(gè)上的共同的電子表格單元格。一些實(shí)現(xiàn)方式中,響應(yīng)于加載網(wǎng)頁(yè)的客戶計(jì)算機(jī)上的瀏覽器而接收運(yùn)行宏的請(qǐng)求,所加載的網(wǎng)頁(yè)具有指向托管計(jì)算機(jī)系統(tǒng)中的宏執(zhí)行子系統(tǒng)上的JavaScript宏的指針。例如,通過傳遞鏈接或URL給宏來共享宏時(shí),可以鏈接或URL形式提供執(zhí)行宏的請(qǐng)求(例如使用JavaScript或者任何其他相關(guān)語(yǔ)言)。
[0039]現(xiàn)在更具體地參看圖1,作為實(shí)現(xiàn)上述全部或部分功能的示例,系統(tǒng)100包括一個(gè)或多個(gè)應(yīng)用102 (每個(gè)應(yīng)用訪問宏鉤子104,這在訪問宏時(shí)引起宏的執(zhí)行)、一個(gè)或多個(gè)外部事件105、宏服務(wù)器子系統(tǒng)106、社交網(wǎng)絡(luò)108、位置服務(wù)110和宏代碼112。
[0040]應(yīng)用102可包括可由用戶激發(fā)運(yùn)行或執(zhí)行的任何可應(yīng)用的應(yīng)用,例如電子郵件應(yīng)用、電子表格應(yīng)用、文字處理應(yīng)用、照片共享應(yīng)用、文稿演示包、財(cái)務(wù)計(jì)劃應(yīng)用等。一些情況下,用戶可以通過選擇要運(yùn)行的應(yīng)用明確地開始應(yīng)用,例如,通過雙擊桌面上或者應(yīng)用的下拉式列表中的應(yīng)用名稱。也可以隱含地開始其他應(yīng)用,例如用戶點(diǎn)擊電子郵件附件時(shí)(例如文本文件或電子表格),或者用戶點(diǎn)擊未知文件時(shí),這兩種情況中的任何一個(gè)都會(huì)自動(dòng)開始執(zhí)行和文件關(guān)聯(lián)的相應(yīng)應(yīng)用,例如基于文件的擴(kuò)展名或者其他定義的關(guān)聯(lián)。用戶還可以通過導(dǎo)航到定向到應(yīng)用的URL來開始應(yīng)用,例如托管的應(yīng)用。
[0041]開始或執(zhí)行應(yīng)用的另一示例中,可以發(fā)生事件105,例如接收電子郵件消息,事件105可開始或恢復(fù)執(zhí)行某個(gè)應(yīng)用。例如,事件105(例如接收的電子郵件消息)可觸發(fā)宏(例如,更新電子表格,增加標(biāo)題行)??梢杂猛泄芟到y(tǒng)上運(yùn)行的、跟蹤在系統(tǒng)進(jìn)行注冊(cè)的每個(gè)用戶的事件的事件句柄檢測(cè)事件的發(fā)生??梢詧?bào)告每個(gè)事件,然后事件可以和特定動(dòng)作關(guān)聯(lián),例如執(zhí)行宏的動(dòng)作,然后可以觸發(fā)動(dòng)作。
[0042]每個(gè)應(yīng)用102都可訪問宏鉤子104。最簡(jiǎn)單的實(shí)現(xiàn)方式中,宏鉤子可以簡(jiǎn)單地是指向系統(tǒng)100上存儲(chǔ)的且在系統(tǒng)100上可執(zhí)行的宏代碼的URL。例如,鉤子104可以是指向JavaScript代碼的URL,可以包括在網(wǎng)頁(yè)中,這樣,加載網(wǎng)頁(yè)或者發(fā)生和操作網(wǎng)頁(yè)關(guān)聯(lián)的某個(gè)事件時(shí),可以訪問并運(yùn)行代碼。除了有助于定義應(yīng)用102中的宏外,或者替代地,宏鉤子104可以執(zhí)行事件跟蹤并提供外部事件105和宏服務(wù)器子系統(tǒng)106之間的連接。例如,宏鉤子104可允許用戶定義與電子郵件應(yīng)用102中接收的電子郵件有關(guān)的事件相關(guān)聯(lián)的宏。宏可以識(shí)別與電子郵件應(yīng)用102可提供的對(duì)象不同的對(duì)象。此外,宏的宏代碼112的語(yǔ)言可以和電子郵件應(yīng)用102中的宏本身的語(yǔ)言不同。宏鉤子104也可以跟蹤與宏有關(guān)的任何事件,并且可以適時(shí)地與宏服務(wù)器子系統(tǒng)106交互。宏鉤子104可以通過用戶選擇記錄宏或執(zhí)行已有宏的選項(xiàng)來實(shí)例化或?qū)崿F(xiàn)。
[0043]外部事件105可包括用于觸發(fā)宏執(zhí)行的多種事件,包括接收到電子郵件消息(例如,在電子郵件應(yīng)用中)、確定(例如由應(yīng)用確定)某個(gè)條件存在(例如超過限額,拒絕用戶訪問、過程已完成等)等等??梢杂檬录浔欉@樣的事件,可以用事件句柄為希望系統(tǒng)100中出現(xiàn)特定事件時(shí)執(zhí)行一個(gè)或多個(gè)宏的每個(gè)用戶注冊(cè)要跟蹤的特定事件。
[0044]—些實(shí)現(xiàn)方式中,事件可以嵌入在代碼中,例如一行代碼確定滿足某個(gè)條件時(shí)(例如,變量達(dá)到某個(gè)值,或者晚上完成記賬更新等)。外部事件105還可包括對(duì)消息的檢測(cè),例如文本消息、博客條目、到來的RSS訂閱等。外部事件105可包括檢測(cè)在線拍賣站點(diǎn)上發(fā)布特定物品,例如通過拍賣物品的標(biāo)題或描述(例如老式梵蒂同牌照)來確定。
[0045]外部事件105的觸發(fā)條件可包括不同條件組合。例如,觸發(fā)和電子郵件應(yīng)用有關(guān)事件所用的條件可包括電子郵件標(biāo)題行、發(fā)件人ID(例如老板、配偶、孩子等)、收件人(例如使用“發(fā)送”、“抄送”和“密送”的組合、收件人個(gè)數(shù)(例如,我是唯一收件人時(shí)通知我等)、是否有附件、發(fā)送電子郵件的位置、消息正文關(guān)鍵字或者電子郵件是否有可能是垃圾郵件。和文字處理應(yīng)用對(duì)應(yīng)的條件可包括文檔大小、文檔源、文檔創(chuàng)建日期和/或最近修改日期、文檔作者等。對(duì)于電子表格應(yīng)用,可用于觸發(fā)事件的條件包括特定電子表格單元格的值、單元格的值是否改變、電子表格中實(shí)際數(shù)據(jù)的行數(shù)或列數(shù)、電子表格作者、電子表格大小等。適用于其他類型文檔的條件可包括文檔是否剛剛改變等??捎删W(wǎng)絡(luò)上的源或服務(wù)產(chǎn)生其他觸發(fā)事件,例如在線天氣服務(wù)站點(diǎn)發(fā)布的向特定城鎮(zhèn)的龍卷風(fēng)警報(bào)。這種情況下,關(guān)心天氣的用戶可能已經(jīng)構(gòu)建了宏來截取與天氣有關(guān)的外部事件并向其家人或鄰居發(fā)送文本和/或致電。
[0046]事件