TW201606547A - 用戶定義的動態事件 - Google Patents

用戶定義的動態事件 Download PDF

Info

Publication number
TW201606547A
TW201606547A TW104115903A TW104115903A TW201606547A TW 201606547 A TW201606547 A TW 201606547A TW 104115903 A TW104115903 A TW 104115903A TW 104115903 A TW104115903 A TW 104115903A TW 201606547 A TW201606547 A TW 201606547A
Authority
TW
Taiwan
Prior art keywords
source code
customization
computer
implemented method
stylized unit
Prior art date
Application number
TW104115903A
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 TW201606547A publication Critical patent/TW201606547A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Abstract

本文提供修改原始碼之程式化單元之執行行為之電腦實施方法。方法包含載入原始碼之程式化單元,及決定至少一客製化是否經定義為用於程式化單元。基於是否滿足客製化之必要條件而選擇性地執行至少一客製化。

Description

用戶定義的動態事件
本發明係與用戶定義的動態事件相關。
本申請案係基於及主張2014年6月20日申請之美國專利臨時申請案號62/015,075之優先權,且以引用該申請案原文之方式將該申請案之內容併入本申請案中。
目前係廣泛使用電腦系統。在一些此類系統佈署於終端使用者之位置前,該些此類系統係經(一些顯著地)客製化的。舉例而言,一些此類電腦系統包含業務系統,該等業務系統如客戶關係管理(CRM)系統、企業資源規劃(ERP)系統、業務線系統(LOB)等。在該等類型系統中,使用者或客戶首先購買一般業務系統,及該使用者或該客戶常對該一般業務系統作客製化、延伸或其他修改,以得到該使用者或該客戶自身之經客製化部署。
典型地,透過對原始碼的直接修改或藉由讓原先軟體之作者插入多個掛鉤點(hook-points)於軟體原始碼中兩者中之一之方式,而提供此類客製化。
對原始碼的直接修改提供對於客製化的最大彈性。可用此類修改對軟體做出任何改變。當需要修改原先之軟體時(如當需要更新時或修補時),此方法之限制變得顯而易見。在此類實例中,對原始碼之修改可不再與各種客製化互相操作。因此,開發者必須回傳修改及仔細地轉移或修改先前產生之客製化之每者至經更新/經修補之原始碼。在大多數情況中,此手動及繁瑣程序傾向需要顯著的開發者時間及因而該程序為非常昂貴的。
在原先之原始碼中提供多個掛鉤點為客製化可在其中實施之另一方法。原先應用程式之一或更多個作者可插入多個做出標注(callout)之掛鉤點。通常稱此事為事件。在事件中,原先之一或更多個作者將於原始碼之預先定義之位置處插入一或更多個標注。每個此類標注將調出傳遞某些預先定義之參數之特定事件。額外地,標注將在執行時間處確認以查看是否有任何用戶事件。如果有用戶事件,則載入及執行用戶代碼。一標準事件之限制為軟體之原先之一或更多個作者可能不在需要應用客製化之開發者所需之代碼中之精準位置處提供掛鉤點。此外,原先之一或更多個作者將定義標注之合約或參數。在一些實例中,若原先之一或更多個作者經由升級或修補而改變標注之合約或參數,則依賴該標注之客製化可能會失效。
本文提供修改原始碼之程式化單元之執行行為之電腦實施方法。方法包含載入原始碼之程式化單元,及決定至少一客製化是否經定義為用於程式化單元。基於是否滿足客製化之必要條件而選擇性地執行至少一客製化。
提供本[發明內容]以用簡化形式介紹精選概念,及於以下[實施方式]中進一步地描述該等精選概念。本[發明內容]不意欲辨識所主張之標的之關鍵特徵或必要特徵,亦不意欲用來作為限制所主張之標的之範疇之幫助。所主張之標的並不限制於解決任何或所有於[先前技術]中所記述之劣勢之實施中。
10‧‧‧環境
12‧‧‧原始碼
14‧‧‧開發者
16‧‧‧虛線
18‧‧‧客製化
20‧‧‧執行平台
22‧‧‧客戶端
24‧‧‧處理器
26‧‧‧儲存元件
28‧‧‧通訊連結
30‧‧‧管線
32‧‧‧指標
40‧‧‧方法
42‧‧‧方塊
44‧‧‧方塊
46‧‧‧方塊
48‧‧‧方塊
50‧‧‧方塊
60‧‧‧方法
62‧‧‧方塊
64‧‧‧方塊
66‧‧‧方塊
68‧‧‧方塊
70‧‧‧方塊
72‧‧‧方塊
74‧‧‧方塊
76‧‧‧方塊
78‧‧‧方塊
100‧‧‧架構
101‧‧‧業務系統
102‧‧‧處理器
104‧‧‧資料存儲
105‧‧‧使用者介面元件
106‧‧‧更新安裝器元件
107‧‧‧其他項目
108‧‧‧資料
110‧‧‧應用程式
112‧‧‧業務程序
114‧‧‧工作流
115‧‧‧使用者介面顯示
116‧‧‧使用者裝置
117‧‧‧輸入機制
119‧‧‧衝突解決元件
121‧‧‧業務程序元件
213‧‧‧通訊連結
215‧‧‧SD卡介面
216‧‧‧裝置
217‧‧‧處理器
219‧‧‧匯流排
221‧‧‧記憶體
223‧‧‧I/O
224‧‧‧客戶端業務系統
225‧‧‧時脈
227‧‧‧定位系統
229‧‧‧OS
231‧‧‧網路設定
233‧‧‧應用程式
235‧‧‧配置設定
237‧‧‧資料存儲
239‧‧‧通訊驅動
241‧‧‧配置設定
243‧‧‧聯絡人或電話簿應用程式
345‧‧‧電話
347‧‧‧鍵盤
349‧‧‧顯示器
351‧‧‧控制按鈕
353‧‧‧天線
355‧‧‧SD卡插槽
357‧‧‧SD卡
459‧‧‧PDA
461‧‧‧顯示器
463‧‧‧觸控筆
465‧‧‧按鈕
467‧‧‧SD卡插槽
469‧‧‧SD卡
500‧‧‧雲端計算架構
502‧‧‧雲
571‧‧‧智慧型手機
573‧‧‧觸控敏感顯示器
575‧‧‧使用者輸入機制
810‧‧‧電腦
820‧‧‧處理單元
821‧‧‧系統匯流排
830‧‧‧系統記憶體
831‧‧‧ROM
832‧‧‧RAM
833‧‧‧基本輸入輸出系統
834‧‧‧作業系統
835‧‧‧應用程式
836‧‧‧其他程式模組
837‧‧‧程式資料
840‧‧‧不可移除及非揮發性記憶體介面
841‧‧‧硬碟驅動
844‧‧‧作業系統
845‧‧‧應用程式
846‧‧‧其他程式模組
847‧‧‧程式資料
850‧‧‧可移除及非揮發性記憶體介面
851‧‧‧磁碟驅動
852‧‧‧磁碟
855‧‧‧光碟驅動
856‧‧‧光碟
860‧‧‧使用者輸入介面
861‧‧‧指向裝置
862‧‧‧鍵盤
863‧‧‧麥克風
870‧‧‧網路介面
871‧‧‧區域網路
872‧‧‧數據機
873‧‧‧廣域網路
880‧‧‧遠端電腦
885‧‧‧遠端應用程式
890‧‧‧視訊介面
891‧‧‧視覺顯示
895‧‧‧輸出周邊元件介面
896‧‧‧印表機
897‧‧‧揚聲器
圖1為開發者根據本發明之實施例提供與原先之原始碼相關之客製化之環境之示意圖。
圖2為經由執行管線(pipeline)而執行軟體應用程式之處理器之示意圖。
圖3為根據本發明之實施例而執行軟體應用程式之電腦實施方法。
圖4為根據本發明之實施例中定義用戶動態事件之方法。
圖5展示其中本發明之實施例係特定有用之一示例性架構之方塊圖。
圖6展示其中本發明之實施例係有用之雲端計算架構。
圖7至圖10展示其中本發明之實施例係有用之各種行動裝置。
圖11為一示例性計算環境之方塊圖。
本發明之實施例通常地允許幾乎適用於任何代碼之可執行單元之隨意客製化而無須修改原先之原始碼,該任何代碼之可執行單元包含方法、函數、模組及甚至是原始碼之一或更多個個別行。根據本文所描述之實施例,執行原先之原始碼之平台將提供「動態掛鉤(hook)」,該動態掛鉤係允許開發者產生相關於原先之原始碼之客製化,以訂閱一或更多個開發者所定義之事件。只要用於經定義之事件之必要條件係持續有效的,則可提供來自軟體製造商之原先之原始碼之變化(如更新及/或修補)而不影響一或更多客製化之操作。
圖1為開發者14根據本發明之實施例提供與原先之原始碼12相關之客製化18之環境之示意圖。在環境10中,已自原始碼發布者(如微軟公司)得到原始碼12。本 文所使用之「原始碼」係傾向意謂要被編譯或組譯為電腦可執行程式之命令之文本列表。可用任何數量之目前已知或之後開發之程式語言提供原始碼。典型地,軟體產品之一或更多個作者將一行一行地輸入原始碼。
如上所述,眾多軟體產品係意欲在由終端使用者部署前被配置。此類軟體產品之一範例為企業資源規劃系統。然而,無論何時意欲在無須改變軟體產品之原始碼的情況下改變軟體產品之行為,本發明之實施例皆可適用。在如圖1所展示之範例中,開發者14已如虛線16所指示地存取原始碼12。此類存取可為經由任何合適方式,該任何合適方式包含線上存取或如原始碼之硬拷貝之離線存取。原始碼可用作參考。為了客製化軟體產品,開發者14檢視原始碼12及產生一或更多個客製化18。該等客製化18為如以下所詳加描述之動態事件定義形式。提供客製化18至執行平台20,該執行平台20將一般地準備好讓原始碼12在該原始碼12自身之原先、未改變之狀態。執行平台20為能接收原始碼、基於該原始碼產生機器可執行代碼及執行該機器可執行代碼之硬體、軟體或該硬體及該軟體之結合之合適安排。因此,執行平台20可為單一之個人電腦、一群在企業中操作之伺服器、裝置之單一核心或一大群在雲端計算環境中操作之伺服器。執行平台20可包含一或更多 個處理器24及合適儲存元件26,以支持程式化編譯及/或執行。
執行平台20執行和客製化18一起之原先之原始碼12,以提供經客製化之軟體操作至一或更多個與執行平台20互動之客戶端22。在一範例中,客戶端22為經由通訊連結28而與執行平台20操作地耦合之電腦,以允許客戶端22與由執行平台20所執行之軟體產品互動。連結28可包含合適通訊連結,該等合適通訊連結包含透過LAN或WAN之有線通訊或無線通訊。
圖2為經由執行管線(pipeline)30而執行軟體應用程式之執行平台之處理器之示意圖。雖然管線30經展示為包含程式化原始碼單元1...N之線性管線,但仍可提供此類簡化以圖示說明程式化執行係典型地透過命令序列步進(step)。在圖2所展示之範例中,如指標32所指示的,程式化執行目前在單元5中。一旦完成單元5之執行,處理器24將開始執行單元6。然而,在此類執行前,處理器24將決定是否有任何客製化已被附加至程式化單元6或有任何客製化經定義與程式化單元6相關。憑藉此類客製化自身之定義,該類客製化將具有具體指定是否應在單元6之前執行自身、代替單元6執行自身或在單元6之後執行自身之指示。因此,執行平台20將根據客製化定義而在單元6之前、 代替單元6或在單元6之後執行對應客製化之代碼。一旦程式化單元6及任何相關客製化已執行,則執行平台移動至程式化單元7。如本文所使用的,程式化單元係傾向意謂任何可執行代碼之一行或多行,其中該一行或多行(舉例而言)可包含方法。因此,因可在任何程式化單元前、代替任何程式化單元或在任何程式化單元後插入客製化,故本發明之實施例提供顯著彈性,開發者可在該顯著彈性中定義「掛鉤」於原始碼之任何位置處。
圖3為根據本發明之實施例而執行軟體應用程式之方法。方法40開始於方塊42處,其中處理器24(展示於圖1及圖2)載入方法或程式化單元。接著,在方塊44處,處理器24確認以查看是否有任何與方法(或是在方塊42處所載入之單元)相關之客製化。若有,控制傳遞至其中由處理器24載入與經載入方法或單元相關之客製化之方塊46。接著,基於客製化之定義,在方塊48處,處理器24在方塊42處載入方法或單元前、代替在方塊42處所載入之方法或單元或在方塊42處載入方法或單元後而執行客製化。在客製化未替代經載入方法或單元之範例中,在方塊48處,處理器24亦可如客製化所定義的在客製化執行前或在客製化執行後執行經載入方法或單元。稍後,控制傳遞至其中載入下一個程式化單元/方法之方塊50。如圖3所展 示的,若給定方法或程式化單元不具有相關客製化,則自決定方塊44傳遞控制至方塊50。方法40將持續循環,直到停止或完成程式執行。
圖4為根據本發明之實施例定義動態事件之方法。方法60開始於方塊62處,其中開發者辨識客製化將與其有關之原始碼之特定單元。原始碼之單元可為函數、方法、模組或原始碼之個別行。原始碼之單元之辨識可經由函數或模組之名稱或(在原始碼之個別行之情況中)在經選擇之行前之一或更多個原始碼之行之辨識及在原始碼之經選擇之行後之一或更多個原始碼之行之辨識。接著,在方塊64處,開發者選擇客製化將如何相對於原先之原始碼執行。舉例而言,客製化可在66之前、代替68或在70之後執行經辨識之原始碼。此外,當客製化執行(代替經辨識原始碼),客製化可執行經辨識原始碼為來自客製化之次呼叫(若需要的話)。此外,如方塊72指示的,亦可考慮其他執行序列指示。舉例而言,若在原始碼之經選擇單元前執行多個客製化,則一客製化可被指示為「絕對優先」或「絕對最後」。接著,在方塊74處,開發者指示客製化之作用域。此作用域指示將典型地允許客製化存取在原始碼之經選擇單元內之變數及其他資訊。在方塊76處,開發者可提供使用在原始碼之經選擇單元內之一些或所有變數 及其他資訊之代碼。此事允許只要經訂閱變數保持不變,則原先之原始碼在所有態樣中變化。此外,「藉由名稱」連結至變數之事提供原先之開發者可謹慎地中斷任何客製化可能會有之合約之方式。以此方式,開發者可簡單地改變變數名稱,該等變數名稱將要求依賴原先變數名稱之客製化將需被再訪。最後,在方塊78處,儲存及提供客製化至執行平台,以與原先、未修改之原始碼一起執行。
在下列範例中,表1提供一些作為張貼訂單之程序之部分之計算給定訂單之折扣之虛擬程式碼(pseudo-code),該些虛擬程式碼如下所示:
在如表1所闡述之範例中,擔任提供對10%折扣計算之變化之工作之開發者可能希望提供客製化。舉例而言,若總數量大於2000,則開發者可能需要增加額外5%的折扣。為了提供15%的折扣至大於2000的數量或原先折扣的150%(若數量大於2000的話),則開發者可定義如表2所闡述之客製化。此客製化允許修改表1所闡述之原先代碼之行為而無須改變任何原先代碼。
表2之虛擬程式碼係藉由帶有原先方法之名稱之掛鉤方法(HookMethod)定義而與表1所提供之原先之「計算折扣」(CaluculateDiscount)方法相關。在元資料(metadata)中定義此掛鉤方法定義。在經圖示說明之範例中,定義係使用C#風格語法之屬性。然而,此僅為範例;可使用任何其他合適風格。帶有表2之虛擬程式碼之原先方法之相關通知執行平台表2之代碼係與表1中所闡述之原先方法相關。此外,藉由設定「Run=AfterOriginal」, 執行平台將在執行表1之代碼後執行表2之代碼。「我自己的計算折扣」(MyOwnCalculateDiscount)之宣告於是列出需要自原先方法所呈現之參數及行。此外,「我自己的計算折扣」設定作用域「OriginalScope_org」,使得客製化將存取來自原先方法之參數及變數。執行平台將可追蹤所有_org之處理,且編譯器將在編譯後於元資料中儲存將以計算折扣按順序呼叫「我自己的計算折扣」及「我自己的計算折扣」將存取行(line;參數)、量(amount;為區域變數)及回傳值(ReturnValue;原先的回傳值)之指示。
在自原先之「計算折扣」回傳允許「我自己的計算折扣」提供幾乎任何所意欲之客製化功能前,執行平台20將於執行時間處呼叫「我自己的計算折扣」。_org作用域變數將確切地參考原先之變數。
本發明之實施例在更新及修補原先之代碼或藉由原先之軟體發布商簡單變化原先之代碼之情況中係特別有用的。舉例而言,在以下之表3中,已修改原先之方法「計算折扣」,以包含客戶及日期資訊。
憑藉所儲存之與「我自己的計算折扣」相關之元資料,顯而易見的是:「我自己的計算折扣」之必要條件在經改變之原始碼中仍被滿足。特定言之,方法「計算折扣」持續存在且該方法「計算折扣」仍具有在該方法「計算折扣」之參數中之「Lines[ ]lines」參數及經命名為「量(amount)」之區域變數。對原始碼之變化將因此不會影響由開發者所定義之「合約」而可用於客製化。「我自己的計算折扣」將不會知曉且也不會使用新參數「客戶(Customer)」或「日期(Date)」。然而,「我自己的計算折扣」不會列出此類參數作為其合約之部分。因此,「我自己的計算折扣」將持續於量(amount)及回傳值(return value)之操作上正常作用。然而,若有任何在合約中由開發者所具體指定之項目(如方法之名稱、行參數或量參數)在經更新之原始碼中被改變或被刪除,則當應用客製化時,合約將會中斷及導致錯誤。
「我自己的計算折扣」中之特定註記-方法以「Lines[ ]Lines」參數定義-是事實,但「我自己的計算折扣」不會使用此參數。然而,由於開發者仍需要「Lines [ ]Lines」,故此參數已成為用於客製化之合約之部分及因而需要作為原先簽名之部分。此對於開發者可藉由做了此事而取得變數之依賴性(即使客製化不需要該等變數之依賴性)為特別有利的。換言之,若改變「計算折扣」方法使得原先之方法不再需要行,則客製化應中斷(即,被通知應用客製化錯誤)使得開發者可確認客製化以查看代碼是否仍然有效。此事允許開發者定義合約如原先之代碼所意欲般地詳細(或說,接近如原先之代碼所意欲般地接近)。合約中需要越多細節,當改變原先之代碼時之中斷的機會就會越大。反之亦然。特定言之,若對原先之原始碼更新之開發者希望確保所有在行上操作之客製化係經要求的以再訪該等行之客製化,則開發者可改變將中斷合約之變數之名稱。
表4(如下)展示一些當呼叫「計算折扣」時所執行之一些虛擬程式碼之範例:
如可看見的,執行平台20將插入代碼以確認被呼叫之方法是否被掛鉤;若是,則將傳遞所有相關資訊至過濾資訊之機制,且最後呼叫掛鉤至方法之客製化。表4所展示之範例僅提供為圖示說明之目的;在確切實施中,可應用額外的最佳化且亦將提供「ReplaceOriginal」機制。
所有於上述範例中所提供之虛擬程式碼係僅意欲為圖示說明之目的。本發明之實施例可應用至任何利用原始碼之程式化語言。在一些範例中之本發明之實施例提供元資料驅動之掛鉤(metadata-driven hook-in)機制,其中用戶相對於原先之原始碼之作者定義合約。只要可實踐合約,則可對底層原始碼做出升級及其他改變而無須中斷一或更多個客製化。此外,決定是否可簡單地透過檢視元資料及原始碼而實踐此類合約係為可能的。因此,代碼並不需要在中斷或可決定其他例外之前執行。
如上所述,有眾多的客製化可被掛鉤至原先之原始碼之方式。Run=AfterOriginal指示告知執行平台20原先之原始碼應先執行隨後再執行客製化。替代方案是Run=BeforeOriginal,此替代方案將允許客製化在傳遞控制至原先方法前改變任何參數及可能的類別變數。另一方案是Run=ReplaceOriginal,此替代方案將取消至原先之原始碼之呼叫且僅呼叫客製化。若開發者希望覆寫整個方法,則可使用後者方案。因客製化在原始碼升級或改變後之那刻移除了「未知的」代碼,故指示Run=ReplaceOriginal需要執行架構20以於中斷時追蹤對原先之代碼之改變。此外,當使用ReplaceOriginal時,_org變數應包含呼叫原先(CallOriginal)方法,使得可對原先之方法做出呼叫(如果需要的話);在做出該呼叫後,客製化將再次地獲得控制及完成該客製化自身之工作。
本文所描述之在客製化中所使用的代碼之特別之處係在於代碼中所使用的所有建構子係「間接」至其中所需之底層之真實變數。一些此事可發生於編譯時間時及一些此事可發生於執行時間時。例如,客製化之代碼可存取項目表而無須關於所有此類表之欄位之資訊。然而,只 要項目表具有由客製化所使用之欄位,客製化將正確地運作。
如可瞭解的,本發明之實施例能應用至各式各樣的計算環境。下述為本發明之實施例可為特別有利之計算環境之一些範例。
圖5展示本文所描述之實施例為有用之一示例性架構之方塊圖。架構100包含客戶業務系統101(該客戶業務系統101可為前提系統、基於雲端之系統或另一系統)。使用者可透過由業務系統101或由使用者裝置116兩者其一所產生之使用者介面115而存取業務系統101。在一實施例中,使用者介面115具有由使用者114所致動之使用者輸入機制117,以操縱業務系統101。
客戶業務系統101說明性地包含處理器102、資料存儲104、使用者介面元件105、更新安裝器元件106、衝突解決元件119及業務處理元件121。資料存儲104說明性地包含資料108、應用程式110、描述業務程序112之資訊、描述工作流114之資訊及其他項目107。在一實施例中,應用程式110包含經使用以執行業務系統101中之業務程序112及工作流114之業務邏輯。應用程式110說明性地在資料108上操作,該資料108可包含呈現業務系統101中之項目之實體。因此,應用程式110可包含一般的總帳 應用程式、庫存應用程式、允許使用者追蹤業務機會及追蹤業務系統中之銷售或生產之應用程式或各式之其他業務應用程式。舉例而言,實體包含呈現客戶之客戶實體、呈現業務機會之機會實體、呈現庫存項目之庫存實體及呈現報價及建議之報價及建議實體等。資料108可包含各式各樣的其他實體及資料,及僅為範例之目的而提及上述之該等實體及資料。使用者可說明性地存取客戶業務系統101,以執行在實行組織之業務中所要完成之活動、任務及工作流等,該組織係應用業務系統101。
本討論已提及處理器及伺服器。在一實施例中,處理器及伺服器包含帶有相關記憶體及定時電路(未分開展示)之電腦處理器。相關記憶體及定時電路為該相關記憶體及該定時電路所屬之系統或裝置之功能部分(且該等系統或裝置係由該相關記憶體及該定時電路致動),且該相關記憶體及該定時電路助於該等系統中之其他元件或項目之功能。
亦已討論多個資料存儲。將要注意的是,可將該等多個資料存儲分開為多個資料存儲。所有該等資料存儲對存取該等資料存儲之系統來說可為本地端、所有該等資料存儲可為遠端,或一些該等資料存儲可為本地端而其他該等資料存儲可為遠端。本文考慮所有該等配置。
又,圖式展示多個帶有歸屬於每個方塊之功能之方塊。將要注意的是,可使用較少方塊故由較少元件執行功能。又,可使用較多帶有在多個元件間分散之功能之方塊。
圖6為圖5所展示之架構100之方塊圖,除了該架構100之元素係放置於雲端計算架構500中。術語「雲端」、「基於雲端之系統」、「基於雲端之架構」或類似術語係指裝置之網路(例如,伺服器電腦及路由器等)。雲端計算提供不需知曉終端使用者之傳輸服務之系統之物理位置或配置之計算、軟體、資料存取及儲存服務。在各個實施例中,雲端計算使用適當協定而在廣域網路(如網際網路)上傳輸服務。舉例而言,雲端計算供應商在廣域網路上傳輸應用程式,及可透過網頁瀏覽器或其他計算元件存取該等應用程式。可在遠端位置之伺服器上儲存架構100之軟體或元件及對應之資料。可在遠端資料中心位置處合併雲端計算環境中之計算資源,或該等計算資源可為分散的。即使雲端計算架構對使用者來說係作為存取之單一點出現,但該等雲端計算架構仍可經由共享資料中心而傳輸服務。因此,可在使用雲端計算架構之遠端位置自服務供應商提供本文所描述之元件及功能。作為替代的,可從習 知伺服器提供它們,或可直接地將它們安裝在客戶端裝置上或用其他方式。
本描述係傾向包含公共雲計算及私有雲計算兩者。雲計算(公共及私有兩者)提供實質上無縫之資源池及減少管理及配置底層硬體架構之需要。
公共雲係藉由供應商所管理,及該公共雲典型地支援使用相同架構之多個消費者。又,公共雲(相對於私有雲)可將終端使用者自管理硬體釋放。可由機構本身管理私有雲及架構典型地無法與其他機構共享。組織仍在某種程度上維持硬體,如安裝及維修等。
在圖6所展示之實施例中,一些項目與圖5所展示的彼等項目相同且將它們作相同編號。圖6特定地展示系統101可位於雲502中(該雲502可為公共的、私有的或其中部分為公有的同時其他部分為私有的之結合)。因此,使用者使用客戶端裝置22以經由雲502存取該等系統。
圖6亦描繪雲端架構之另一個實施例。圖6展示亦可考慮將架構100之一些元素放置於雲502中同時其他元素並不是放置於雲502中。舉例而言,可在雲502外部放置資料存儲104,及可透過雲502存取該資料存儲104。不論它們被放置於何處,皆可直接由客戶端裝置22透過網路(廣域網路或區域網路兩者之一)而存取它們、可藉由服務 而於遠端網站代管它們或可提供它們為經由雲之服務或藉由常駐於雲中之連接服務存取它們。本文考慮所有該等架構。
亦應注意可在各式各樣之不同的設備上利用架構100或該架構100之部分。一些該等裝置包含伺服器、桌上型電腦、膝上型電腦、平板電腦或其他行動裝置(如掌上電腦、手機、智慧型手機、多媒體播放器及個人數位助理等)。
圖7為簡化之手持或行動計算裝置之一實施例之方塊圖,可使用該手持或行動計算裝置為使用者或客戶端之手持裝置216,其中可部署本系統(或該本系統之部分)。圖7至圖10描繪手持或行動裝置之範例。
圖7提供客戶端裝置216之元件之一般方塊圖,該客戶端裝置216可執行架構100之元件或與該架構100互動。在裝置216中,提供通訊連結213,該通訊連結213允許手持裝置與其他計算裝置通訊,及在一些實施例中,提供用於自動接收資訊之通道,如藉由掃描。通訊連結213之範例包含紅外線埠、序列埠/USB埠、纜線網路埠(如乙太網路埠)及允許經由一或更多個通訊協定之通訊之無線網路埠,該一或更多個通訊協定包含用來提供對網路之蜂巢式存取之無線服務之通用封包無線服務(GPRS)、 LTE、HSPA、HSPA+及其他3G及4G無線電協定、1Xrtt及簡訊服務,及802.11及802.11b(Wi-Fi)協定及提供網路之區域無線連接之藍牙協定。
根據其他實施例,在可移動的安全數位(SD)卡上接收應用程式或系統,該可移動的安全數位卡連接至SD卡介面215。SD卡介面215及通訊連結213沿著匯流排219與處理器217通訊,該匯流排219亦連接至記憶體221、及輸入/輸出(I/O)元件223、及時脈225及定位系統227。
提供一實施例中之I/O元件223以助於輸入及輸出操作。用於裝置216之各個實施例之I/O元件223可包含輸入元件及輸出元件,該等輸入元件如按鈕、觸控感測器、多點觸控感測器、光學或視訊感測器、聲音感測器、觸控螢幕、接近感測器、麥克風、傾斜感測器及重力開關,及該等輸出元件如顯示器裝置、揚聲器及或印表機埠。亦可使用其他I/O元件223。
時脈225說明性地包含真實時間時脈元件,該真實時間時脈元件輸出時間及日期。此亦可說明性地提供用於處理器217之計時功能。
定位系統227說明性地包含輸出裝置216之目前地理位置之元件。舉例而言,此元件可包含全球定位系 統(GPS)接收器、羅蘭(LORAN)系統、推測航行系統、蜂巢式三角測量系統或其他定位系統。舉例而言,此亦可包含產生所欲地圖之地圖軟體或導航軟體、導航路線及其他地理功能。
記憶體221儲存作業系統229、網路設定231、應用程式233、應用程式配置設定235、資料存儲237、通訊驅動239及通訊配置設定241。記憶體221可包含所有類型之有形的揮發性及非揮發性電腦可讀取記憶體裝置。此亦可包含電腦儲存媒體(於下描述)。記憶體221儲存電腦可讀取指令,當藉由處理器217執行該等電腦可讀取指令時,使處理器根據該等指令執行電腦實施步驟或功能。亦可由其他元件啟動處理器217以助於該等其他元件的功能。
網路設定231之範例包含如代理伺服器資訊、網際網路連接資訊及映射之事物。應用程式配置設定235包含裁剪用於特定企業或使用者之應用程式之設定。通訊配置設定241提供用於與其他電腦通訊之參數,及該通訊配置設定241包含如GPRS參數、SMS參數、連接使用者名稱及密碼之項目。
應用程式233可為預先在裝置216上所儲存之應用程式或為在使用期間所安裝之應用程式,雖然該等應 用程式可為作業系統229之部分(或在裝置216之外部被代管)。
雖然其他裝置亦可被使用,但圖8及圖9仍提供可被使用之裝置216之額外範例。在圖8中,提供功能型手機或行動手機345為裝置216。電話345包含用於撥打電話號碼之一組鍵盤347、能顯示包含應用程式圖像、圖標、網頁、照片及視訊之圖像之顯示器349,及用於選擇在顯示器上所展示之項目之控制按鈕351。電話包含用於接收蜂巢式電話信號(如通用封包無線服務(GPRS)、1Xrtt及簡訊服務(SMS)信號)之天線353。在一些實施例中,電話345亦包含接收SD卡357之安全數位(SD)卡插槽355。
圖9的行動裝置為個人數位助理(PDA)459或為多媒體播放器或為平板計算裝置等(下文中稱為PDA 459)。PDA 459包含當在螢幕上放置觸控筆時,感測觸控筆463(或其他指向器,如使用者之手指)之位置之感應式螢幕461。此允許使用者在螢幕上選擇、重點標示及移動項目、繪圖及撰寫。PDA 459亦包含多個使用者輸入按鍵或按鈕(如按鈕465),該多個使用者輸入按鍵或按鈕允許使用者滑動顯示器461上所顯示之選單選項或其他顯示選項及允許使用者在沒有接觸顯示器461的情況下改變應用程式或選擇使用者輸入功能。雖然未展示,但PDA 459 可包含允許與其他電腦之無線通訊之內部天線及紅外線發射機/接收機及允許硬體連接至其他計算裝置之連結埠。典型地經由透過序列埠或USB埠連接至其他電腦之托架而製造此類硬體連結。因此,該等連結為非網路連結。在一實施例中,行動裝置459亦包含接收SD卡469之SD卡插槽467。
除了手機為智慧型手機571之外,圖10與圖8相類似。智慧型手機571具有觸控敏感顯示器573,該觸控敏感顯示器573顯示圖標、或磚(tile)或其他使用者輸入機制575。可藉由使用者使用機制575以執行應用程式、打電話、執行資料傳遞操作等。通常來說,智慧型手機571係建立在行動作業系統上及提供相較於功能性手機之更進階的計算能力及連接。
圖8至圖10圖示說明經圖示於圖11之裝置216之特殊形式。應該要瞭解的是,裝置216之除了圖8至圖10所展示的那些形式外之其他形式係為可能的。
圖11為計算環境之一實施例,其中可部署架構100或(舉例而言)該架構100之部分。參考圖11,用於實施一些實施例之示例性系統包含電腦810形式之通用計算裝置。電腦810之元件可包含(但不限於)處理單元820(該處理單元820可包含處理器102或系統200中或裝置16中 之處理器)、系統記憶體830及耦合包含系統記憶體之各個系統元件至處理單元820之系統匯流排821。系統匯流排821可為任何各個類型之匯流排結構,該等任何各個類型之匯流排結構包含記憶體匯流排或記憶體控制器、周邊匯流排及使用任何各式各樣之匯流排架構之本地端匯流排。舉例而言且非限制,此類架構包含工業標準架構(ISA)匯流排、微通道架構(MCA)匯流排、增強ISA(EISA)匯流排、視訊電子標準協會(VESA)區域匯流排,及亦被稱為Mezzanine匯流排之周邊元件互連(PCI)匯流排。可相對於圖1在圖11之相對應位置處部署所描述之記憶體及程式。
電腦810典型地包含各式各樣之電腦可讀取媒體。電腦可讀取媒體可為可由電腦810所存取之任何可得到的媒體,及該電腦可讀取媒體可包含揮發性及非揮發性媒體及可移除的及不可移除的媒體兩者。舉例而言且非限制,電腦可讀取媒體可包含電腦儲存媒體及通訊媒體。電腦儲存媒體為不同格式且不包含調變資料信號或載波。此包含硬體儲存媒體,該硬體儲存媒體包含揮發性及非揮發性及可移除的及不可移除的媒體兩者,以用於儲存資訊(如電腦可讀取指令、資料結構及程式模組或其他資料)之任何方法或技術實施該兩者。電腦儲存媒體包含(但不限 於)RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位多功能光碟(DVD)或其他光碟儲存、磁性錄音帶、磁帶、磁碟儲存或其他磁性儲存裝置或可用來儲存所欲資訊及可由電腦810所存取之任何其他媒體。通訊媒體典型地體現電腦可讀取指令、資料結構、程式模組或傳輸機制中之其他資料,及該通訊媒體包含任何資訊傳輸媒體。術語「調變資料信號」意味著具有一或更多個該調變資料信號之特徵集之信號或以如在信號內編碼資訊之方式變化之信號。舉例而言且非限制,通訊媒體包含如有線網路或直接連線連接之有線媒體及如聲音、RF、紅外線及其他無線媒體之無線媒體。任何上述之結合亦應包含於電腦可讀取媒體之範疇內。
系統記憶體830包含揮發性及/或非揮發性記憶體形式之電腦儲存媒體,如唯讀記憶體(ROM)831及隨機存取記憶體(RAM)832。包含基本常式之基本輸入/輸出系統833(BIOS)典型地儲存於ROM 831中,該等基本常式幫助在電腦810內之元素間傳輸資訊(如在啟動時)。RAM 832典型地包含資料及/或程式模組,該等資料及/或程式模組立即可藉由處理單元820存取及/或由該處理單元820當前操作。舉例而言且非限制,圖11圖示作業系統834、應用程式835、其他程式模組836及程式資料837。 電腦810亦可包含其他可移除/不可移除及揮發性/非揮發性之電腦儲存媒體。僅為舉例,圖11圖示自不可移除及非揮發性之磁性媒體讀取及寫入至該不可移除及非揮發性之磁性媒體之硬碟驅動841、自可移除及非揮發性之磁碟852讀取及寫入至該可移除及非揮發性之磁碟852之磁碟驅動851及自可移除及非揮發性之光碟856(如CD ROM或其他光學媒體)讀取及寫入至該可移除及非揮發性之光碟856之光碟驅動855。可在示例性作業環境中使用之其他可移除/不可移除及揮發性/非揮發性電腦儲存媒體包含(但不限於)磁帶盒、快閃記憶體卡、數位多功能碟、數位視訊磁帶、固態RAM、固態ROM及諸如此類。硬碟驅動841典型地經由不可移除的記憶體介面(如介面840)連接至系統匯流排821,及磁碟驅動851及光碟驅動855典型地藉由可移除的記憶體介面(如介面850)連接至系統匯流排821。
作為替代的,或額外的,可至少部分地藉由一或更多個硬體邏輯元件執行本文所描述之功能。舉例而言且非限制的,可被使用之硬體邏輯元件之說明性類型包含現場可程式化閘陣列(FPGA)、特殊應用積體電路(ASIC)、特定應用標準產品(ASSP)、系統單晶片(SoC)、複雜的可程式化邏輯裝置(CPLD)等。
上文所討論及圖11所圖示之驅動及該等驅動相關之電腦儲存媒體提供用於電腦810之電腦可讀取指令、資料結構、程式模組及其他資料之儲存。在圖11中,舉例而言,硬碟驅動841經圖示為儲存作業系統844、應用程式845、其他程式模組846及程式資料847。注意該等元件可相同於或不同於作業系統834、應用程式835、其他程式模組836及程式資料837。本文中係給定作業系統844、應用程式845、其他程式模組846及程式資料847不同編號,以圖示上述各者在最低程度上為不同的複本。
使用者可經由輸入裝置(如鍵盤862、麥克風863及如滑鼠、軌跡球或觸控墊之指向裝置861)輸入命令及資訊至電腦810。其它輸入裝置(未展示)可包含操縱桿、遊戲手把、圓盤天線、掃描器或諸如此類。該等及其他輸入裝置經常經由耦合至系統匯流排之使用者輸入介面860連接至處理單元820,但該等及其他輸入裝置可藉由如平行埠、遊戲埠或通用序列匯流排(USB)之其他介面及匯流排結構連接。視覺顯示891或其他類型之顯示器裝置亦經由介面(如視訊介面890)連接至系統匯流排821。除了顯示器外,電腦亦可包含如揚聲器897及印表機896之其他周邊輸出裝置,可經由輸出周邊介面895連接該等其他周邊輸出裝置。
在使用邏輯連接一或更多個遠端電腦(如遠端電腦880)之網路環境中操作電腦810。遠端電腦880可為個人電腦、手持裝置、伺服器、路由器、網路PC、同儕電腦或其他一般網路節點,及該遠端電腦880典型地包含眾多或全部上文所描述之與電腦810有關之元件。描繪於圖11之邏輯連接包含區域網路(LAN)871及廣域網路(WAN)873,但該等描繪於圖10之邏輯連接亦可包含其他網路。在辦公室、企業電腦網路、內部網路及網際網路中,此類網路環境係司空見慣的。
當在LAN網路環境中使用時,電腦810經由網路介面或接頭870連接至LAN 871。當在WAN網路環境中使用時,電腦810典型地包含數據機872或其他用於在WAN 873(如網際網路)上建立通訊之手段。可經由使用者輸入介面860或其他合適機制連接數據機872(該數據機872可為內部或外部的)至系統匯流排821。在網路環境中,可儲存相對於電腦810或該電腦810之部分所描繪之程式模組於遠端記憶體儲存裝置中。舉例而言且非限制,圖11圖示遠端應用程式885為常駐於遠端電腦880上。將要瞭解的是,所展示之網路連接係示例性的,及可使用建立電腦間之通訊連結之其他方式。
亦應注意的是可用不同方式結合本文所描述之不同實施例。即,可用一或更多個其他實施例之部分而結合一或更多個實施例之部分。本文考慮所有此事。
範例1為一種修改原始碼之程式化單元之執行行為之電腦實施方法。該方法包含以下步驟:載入該原始碼之程式化單元及決定至少一客製化是否經定義為用於該程式化單元;基於是否滿足該客製化之必要條件,而選擇性地執行該至少一客製化。
範例2為任何或所有先前範例之電腦實施方法,其中該原始碼之程式化單元為原始碼之單一行。
範例3為任何或所有先前範例之電腦實施方法,其中該原始碼之程式化單元包含原始碼之複數行。
範例4為任何或所有先前範例之電腦實施方法,其中該原始碼之程式化單元為方法。
範例5為任何或所有先前範例之電腦實施方法,其中該至少一客製化選擇性地執行以代替該原始碼之程式化單元。
範例6為任何或所有先前範例之電腦實施方法,其中該至少一客製化在該原始碼之程式化單元前選擇性地執行。
範例7為任何或所有先前範例之電腦實施方法,其中該至少一客製化在該原始碼之程式化單元後選擇性地執行。
範例8為任何或所有先前範例之電腦實施方法,其中該選擇性地執行該至少一客製化之步驟包含以下步驟:在執行期間提供該至少一客製化存取該原始碼之程式化單元之變數。
範例9為任何或所有先前範例之電腦實施方法,其中藉由在該至少一客製化中之作用域定義而決定該存取。
範例10為任何或所有先前範例之電腦實施方法,其中該必要條件包含該原始碼之程式化單元之變數之存在。
範例11為任何或所有先前範例之電腦實施方法,其中一旦該變數在該至少一客製化中,則立即不操作該變數。
範例12為一種定義相關於原始碼之程式化單元之客製化之電腦實施方法。該方法包含以下步驟:辨識原始碼之程式化單元及具體指定相關於該經辨識之原始碼之程式化單元之客製化執行;定義該客製化執行之作用域;儲存該原始碼之程式化單元之該辨識、該具體指定之客製化執行之資訊及作用域之資訊;及提供該原始碼之程式化 單元之該辨識、該具體指定之客製化執行之資訊及作用域資訊至一執行平台。
範例13為任何或所有先前範例之電腦實施方法,進一步地定義至少一必要條件,該至少一必要條件必須在該執行平台將要執行該客製化前於該原始碼之程式化單元中被呈現。
範例14為任何或所有先前範例之電腦實施方法,其中該必要條件包含一參數,該參數必須在該執行平台將要執行該客製化前於該原始碼之程式化單元中被呈現。
範例15為任何或所有先前範例之電腦實施方法,其中該參數不在該客製化中被使用。
範例16為任何或所有先前範例之電腦實施方法,其中該具體指定相關於該經辨識之原始碼之程式化單元之客製化執行之步驟包含該客製化將執行以取代該經辨識之原始碼之程式化單元之一指示。
範例17為任何或所有先前範例之電腦實施方法,其中定義該客製化執行之該作用域,使得該客製化將可存取該客製化正在取代之該原始碼之程式化單元之變數。
範例18為任何或所有先前範例之電腦實施方法,其中具體指定相關於該經辨識之原始碼之程式化單元 之客製化執行之步驟包含該客製化將絕對係在該經辨識之原始碼之程式化單元前執行之一指示。
範例19為任何或所有先前範例之電腦實施方法,其中具體指定相關於該經辨識之原始碼之程式化單元之客製化執行之步驟包含該客製化將絕對係在該經辨識之原始碼之程式化單元後執行之一指示。
範例20為一種經配置以執行原始碼之程式化單元之電腦系統。該電腦系統包含處理器及儲存元件;該處理器經配置以執行該等原始碼之程式化單元及該儲存元件經調適以儲存該等原始碼之程式化處理單元及至少一經定義相關於原始碼之經選擇之程式化單元之客製化;該處理器經配置以載入原始碼之程式化單元及決定客製化是否經定義為相關於該原始碼之經載入程式化單元,及基於該客製化之定義而選擇性地執行該客製化。
雖然已用特定至結構特徵及/或方法行為之語言描述標的,但需瞭解的是在附加申請專利範圍中所定義的標的不需要被限制於上文所描述之特定特徵或行為。更確切的說,上文所描述之特定特徵及行為係被揭露為實施申請專利範圍之範例形式。
10‧‧‧環境
12‧‧‧原始碼
14‧‧‧開發者
16‧‧‧虛線
18‧‧‧客製化
20‧‧‧執行平台
22‧‧‧客戶端
24‧‧‧處理器
26‧‧‧儲存元件
28‧‧‧通訊連結

Claims (20)

  1. 一種修改一原始碼之程式化單元之執行行為之電腦實施方法,該方法包含以下步驟:載入該原始碼之程式化單元;決定至少一客製化是否經定義為用於該程式化單元;及基於是否滿足該客製化之一必要條件,而選擇性地執行該至少一客製化。
  2. 如請求項1所述之電腦實施方法,其中該原始碼之程式化單元為原始碼之一單一行。
  3. 如請求項1所述之電腦實施方法,其中該原始碼之程式化單元包含原始碼之複數行。
  4. 如請求項3所述之電腦實施方法,其中該原始碼之程式化單元為一方法。
  5. 如請求項1所述之電腦實施方法,其中該至少一客製化選擇性地執行以代替該原始碼之程式化單元。
  6. 如請求項1所述之電腦實施方法,其中該至少一客製化在該原始碼之程式化單元前選擇性地執行。
  7. 如請求項1所述之電腦實施方法,其中該至少一客製化在該原始碼之程式化單元後選擇性地執行。
  8. 如請求項1所述之電腦實施方法,其中該選擇性地執行該至少一客製化之步驟包含以下步驟:在執行 期間提供該至少一客製化存取該原始碼之程式化單元之變數。
  9. 如請求項8所述之電腦實施方法,其中藉由在該至少一客製化中之一作用域定義而決定該存取。
  10. 如請求項1所述之電腦實施方法,其中該必要條件包含該原始碼之程式化單元之一變數之存在。
  11. 如請求項10所述之電腦實施方法,其中一旦該變數在該至少一客製化中,則立即不操作該變數。
  12. 一種定義相關於一原始碼之程式化單元之一客製化之電腦實施方法,該方法包含以下步驟:辨識一原始碼之程式化單元;具體指定相關於該經辨識之原始碼之程式化單元之客製化執行;具體指定該客製化執行之一作用域;儲存該原始碼之程式化單元之該辨識、該具體指定之客製化執行之資訊及作用域之資訊;及提供該客製化定義至一執行平台。
  13. 如請求項12所述之電腦實施方法,進一步地定義至少一必要條件,該至少一必要條件必須在該執行平台將要執行該客製化前於該原始碼之程式化單元中被呈現。
  14. 如請求項13所述之電腦實施方法,其中該 必要條件包含一參數,該參數必須在該執行平台將要執行該客製化前於該原始碼之程式化單元中被呈現。
  15. 如請求項14所述之電腦實施方法,其中該參數不在該客製化中被使用。
  16. 如請求項12所述之電腦實施方法,其中該具體指定相關於該經辨識之原始碼之程式化單元之客製化執行之步驟包含該客製化將執行以取代該經辨識之原始碼之程式化單元之一指示。
  17. 如請求項16所述之電腦實施方法,其中定義該客製化執行之該作用域,使得該客製化將可存取該客製化正在取代之該原始碼之程式化單元之變數。
  18. 如請求項12所述之電腦實施方法,其中具體指定相關於該經辨識之原始碼之程式化單元之客製化執行之步驟包含該客製化將絕對在該經辨識之原始碼之程式化單元前執行之一指示。
  19. 如請求項12所述之電腦實施方法,其中具體指定相關於該經辨識之原始碼之程式化單元之客製化執行之步驟包含該客製化將絕對在該經辨識之原始碼之程式化單元後執行之一指示。
  20. 一種經配置以執行原始碼之程式化單元之電腦系統,該電腦系統包含:一處理器,該處理器經配置以執行該等原始碼之程式 化單元;一儲存元件,該儲存元件經調適以儲存該等原始碼之程式化處理單元及至少一經定義相關於一原始碼之經選擇之程式化單元之客製化;其中該處理器經配置以載入一原始碼之程式化單元及決定一客製化是否經定義為相關於該原始碼之經載入程式化單元,及基於該客製化之一定義而選擇性地執行該客製化。
TW104115903A 2014-06-20 2015-05-19 用戶定義的動態事件 TW201606547A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462015075P 2014-06-20 2014-06-20
US14/496,117 US20150370552A1 (en) 2014-06-20 2014-09-25 Subscriber defined dynamic eventing

Publications (1)

Publication Number Publication Date
TW201606547A true TW201606547A (zh) 2016-02-16

Family

ID=54869687

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104115903A TW201606547A (zh) 2014-06-20 2015-05-19 用戶定義的動態事件

Country Status (6)

Country Link
US (1) US20150370552A1 (zh)
EP (1) EP3158431A1 (zh)
KR (1) KR20170020366A (zh)
CN (1) CN106663004A (zh)
TW (1) TW201606547A (zh)
WO (1) WO2015196001A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534692B2 (en) 2016-03-31 2020-01-14 Microsoft Technology Licensing, Llc Tagged tracing, logging and performance measurements
SE2051321A1 (en) 2020-11-12 2022-05-13 Addi Medical Ab Dynamic procedures for software products

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427234B1 (en) * 1998-06-11 2002-07-30 University Of Washington System and method for performing selective dynamic compilation using run-time information
US20020073398A1 (en) * 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
US8539469B2 (en) * 2004-05-11 2013-09-17 Microsoft Corporation Efficient patching
US7657870B2 (en) * 2005-02-25 2010-02-02 International Business Machines Corporation Method and apparatus for implementing dynamic function groups in a data processing system
US7831956B2 (en) * 2005-09-13 2010-11-09 Microsoft Corporation Using attributes to identify and filter pluggable functionality
US20090064090A1 (en) * 2007-09-05 2009-03-05 Microsoft Corporation Merged view of application customizations
US8707286B2 (en) * 2008-12-12 2014-04-22 Sap Ag Unique context-based code enhancement
US20120159429A1 (en) * 2010-12-15 2012-06-21 Microsoft Corporation Metadata based eventing
US20120167057A1 (en) * 2010-12-22 2012-06-28 Microsoft Corporation Dynamic instrumentation of software code
US9116717B2 (en) * 2011-05-27 2015-08-25 Cylance Inc. Run-time interception of software methods
US9182980B2 (en) * 2012-12-11 2015-11-10 Microsoft Technology Licensing, Llc. Expansion and reduction of source code for code refactoring

Also Published As

Publication number Publication date
US20150370552A1 (en) 2015-12-24
KR20170020366A (ko) 2017-02-22
CN106663004A (zh) 2017-05-10
EP3158431A1 (en) 2017-04-26
WO2015196001A1 (en) 2015-12-23

Similar Documents

Publication Publication Date Title
US9430207B1 (en) Automated cross-platform native mobile application generation with cloud driven user interface and workflow synthesis
US10194288B2 (en) Sticker distribution system for messaging apps
US9176726B2 (en) Method and apparatus for developing, distributing and executing applications
US9348563B1 (en) Bi-directional editing between visual screen designer and source code
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
KR102174766B1 (ko) 기반 모델 생성, 맞춤화 및 모델 시각화를 위한 통합된 환경
US20150058833A1 (en) Inter-application transform builder for cloud applications
US10423405B2 (en) Automatic submission of applications to applications stores
CN103294335A (zh) 用于创建快键菜单的设备和方法
CN105335132B (zh) 一种自定义应用程序功能的方法、装置以及系统
US20160274885A1 (en) Controlling deployment of an industry-specific solution package
US20160274906A1 (en) Generating a deployable industry-specific solution package
US20140033123A1 (en) User interface and method for comparing a local version of a profile to an online update
WO2017058684A1 (en) Automatic multi-platform mobile application development
KR20180017211A (ko) 컴파일링된 소프트웨어 내의 기계 명령어를 수정하기 위한 방법 및 시스템
US9684802B2 (en) Verification and access control for industry-specific solution package
US10895963B2 (en) Using sections for customization of applications across platforms
US20160275064A1 (en) Setup data extraction for deploying a solution package
WO2017128964A1 (zh) 一种应用融合方法及装置
TW201606547A (zh) 用戶定義的動態事件
US20160313958A1 (en) Cross-platform command extensibility
US9218162B1 (en) Cross-platform mobile application specification and automatic synthesizer
KR101949337B1 (ko) RIA를 이용한 클라우드 기반 aPaaS 제공 방법
Ionescu Using cross platform development libraries. telerik mobile
US20240129402A1 (en) Customization framework for native mobile applications