TWI414995B - 開發及執行平台 - Google Patents

開發及執行平台 Download PDF

Info

Publication number
TWI414995B
TWI414995B TW095133514A TW95133514A TWI414995B TW I414995 B TWI414995 B TW I414995B TW 095133514 A TW095133514 A TW 095133514A TW 95133514 A TW95133514 A TW 95133514A TW I414995 B TWI414995 B TW I414995B
Authority
TW
Taiwan
Prior art keywords
module
server
interface
resource
plug
Prior art date
Application number
TW095133514A
Other languages
English (en)
Other versions
TW200745947A (en
Inventor
Tomoyoshi Tamura
Esther Yu-Fen Yu
Original Assignee
Integrated Solutions Inc
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
Priority claimed from US11/224,665 external-priority patent/US7831955B2/en
Application filed by Integrated Solutions Inc filed Critical Integrated Solutions Inc
Publication of TW200745947A publication Critical patent/TW200745947A/zh
Application granted granted Critical
Publication of TWI414995B publication Critical patent/TWI414995B/zh

Links

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

開發及執行平台 優先權請求
本申請請求於2004年12月9日提交的待審查美國臨時專利申請號為60/634,824的申請為優先權,其全部內容以引用的方式包含在此。
本發明一般係涉及電腦系統開發和執行領域。更具體地說,本發明涉及在電腦系統中用於執行商業邏輯,同時減輕書寫專用代碼的負擔的系統和方法。
目前,開發並執行一種電腦系統要求一個或多個有經驗的程式設計師的編程時間的巨大投資。雖然存在用來輔助程式設計師為系統產生源代碼的開發工具,但那些工具並未消除對這些源代碼的需要。一些開發工具創造了減少這種工作的專用語言,但是同樣的,這些開發工具並不能免除這種工作本身。
典型的系統開發計畫包括產生(藉由書寫代碼或藉由使用專用代碼產生工具)用於執行商業邏輯本身的代碼、和書寫或者產生處理非商業邏輯任務(如存取資料庫和提供系統服務等)的代碼。代碼必須被書寫以用於與諸如資料庫伺服器、郵件伺服器、電話伺服器等這些系統所使用的資源進行通信。傳統方法並不將商業邏輯與非邏輯分離開來。因而,開發人員必須努力不僅要使商業邏輯正確地執行,而且要使那些通常構成任何開發大部分內容的非邏輯方面正確地執行。
必須進行通信的使用者(使用者指的是人或電腦程式)和資源幾乎總是有變化很大的介面要求。因而,為與不同的使用者和資源進行通信必須書寫各自的代碼,極大地增加了必須花費在系統開發上的時間和工作,更別提為完成這種任務所需的額外的複雜性和專門技術。維護按這種方法開發的系統也是繁重的。如果使用者或資源發生變化,那麼與該部分相關的編碼的商業邏輯也必須被改變。同樣,如果商業邏輯發生變化,非邏輯代碼部分也必須被改變的情況是經常發生的。
圖1概括了開發具有基於Web的使用者介面、CORBA介面、資料庫和其它資源存取的系統的習知技術的結構。開發者必須為系統的每個方面書寫源代碼110。例如,必須按照CORBA(公共目標請求代理結構)規範對商業邏輯120編碼。CORBA是一種結構和規範,用來產生、分配和管理網路中的分布式程式目標。
開發者必須額外地為系統書寫非邏輯代碼122來連接CORBA使用者,並為CORBA使用者書寫非邏輯代碼124。此外,開發者必須為系統書寫非邏輯代碼126來連接資料庫資源,並按照資料庫規範書寫非邏輯代碼128來存取該資源。
系統也為最終使用者提供基於Web的使用者介面,並且必須書寫一組相似的代碼130來允許系統與Web通信。另外,也必須為系統書寫額外代碼140來存取如電子郵件、電話及其它伺服器等的額外資源。
用於定義目標介面的習知技術的代碼,如代碼122、126,必須被專門書寫來處理可能出現的大量帶有各種名稱、接受參數集和返回資料值的命令和可能出現的大量具有各種資料構件和資料類型的資料集。如圖2所示,一個名為Sample的習知技術介面的實例定義了一個用於檢索一些被請求資訊的名為getRequesterInfo的命令。此範例是用作為目標導向的介面定義形式的介面定義語言(IDL)書寫的。
實例中的介面定義200包括命令定義210。該命令定義具有唯一的命令名稱211、參數集212和返回資料類型213。
典型地用於命令定義210的複合資料類型需要具體的定義,如資料結構RequesterInfo 230。當在邏輯120和非邏輯122、124(圖1)中書寫或改變代碼時,那麼那些定義必須跟隨。此外,由於那些定義對於正在應用的商業邏輯的資料要求而言是特定的,因而必須為每個資料要求定義單獨的資料類型。
緊隨圖2的範例(其中一個系統被開發用於檢索一些請求資訊),圖3示出了用於檢索來自資料庫的請求資訊的一個極度簡化的Java程式300。開發者必須處理在任何程式設計語言中所固有的許多內務事項,如存取資料庫、處理錯誤捕獲/異常310、315和資料庫330中的無效資料等。
亦須書寫額外代碼來提供系統服務。例如,在使用者源代碼中所需要之圖4的另一個簡化的Java程式400,其作用為CORBA伺服器程式。
可見,當開發者必須設計代碼來執行如邏輯120的商業邏輯的同時,如今,開發者的工作的實質部分是專心致力於產生與系統的各個部分通信的必要的非邏輯代碼以及在不同的地方編碼商業邏輯來處理不同的技術。因而,目前存在對一種通過最小化編程和除錯時間來加速系統的建立的開發和執行平台的需要。更特別地,存在對一種允許開發者專注於商業邏輯而不用對使用多種程式設計語言和技術類型的工作而分心的開發和執行平台的需要。就發明人所如,目前還沒有提供這樣的系統。
本發明通過提供一種將開發者的任務減少到僅為商業邏輯編碼的開發和執行平台來解決上面所述的需要。由於本發明的平台處理內務工作,本發明允許開發者以一種與傳統程式設計語言相比更為簡化的格式書寫商業邏輯。
在本發明的一個實施例中,開發平台是用來建立一個為使用者提供服務的系統。平台包括用於提供系統管理和執行商業邏輯的引擎,至少一個具有服務端插入模組介面的服務端(北區)插入模組,和與引擎通信並與所有服務端插入模組通信的唯一的服務端介面。所述服務端介面包含唯一的命令。服務端介面支持所有服務端插入模組介面(單介面技術),並且該命令支持所有服務端插入模組介面的命令(單命令技術)。
此外,平台可以進一步包括至少一個資源端(南區)插入模組;和與引擎通信並與所有資源端插入模組通信的唯一的資源端介面。這種情況下,資源端介面包含唯一的命令。所述至少一個資源端插入模組的每一個可以具有一個資源端插入模組介面。這種情況下,每一個資源端插入模組被用來與資源中的至少一個相連接、所述資源端介面支持所有資源端插入模組介面(單介面技術),並且所述資源端介面的唯一的命令支持資源端插入模組介面的所有命令(單命令技術)。
系統可以通過使用者定義的組態檔案進行組態。
服務端插入模組中的一個可以連接到包含用於說明基於Web的最終使用者介面的最終使用者介面源代碼的Web伺服器。這種情況下,引擎允許動態載入最終使用者介面源代碼,從而在運行時間內不用重啟系統就可以重新載入最終使用者介面源代碼。最終使用者介面源代碼可以被定義在XML檔案和HTML檔案中。
平台可以進一步包括用來對說明商業邏輯的主源代碼進行解譯的解譯器。這種情況下,引擎可以允許動態載入主源代碼,從而在運行時間內不用重啟系統就可以重新載入主源代碼。主源代碼可以被定義在XML檔案中。
每個服務端插入模組是可執行的。
引擎可以允許動態載入資源端插入模組,從而在運行時間內不用重啟系統就可以重新載入資源端插入模組。
所述服務端介面可以以介面定義語言IDL定義。同樣的,資源端介面可以以IDL定義。
在本發明的另一個實施例中,提供了用於在包括引擎、至少一個服務端插入模組和與引擎通信並與所有服務端插入模組通信的唯一的服務端介面的平台上執行商業邏輯的方法。所述服務端介面包括唯一的命令,該方法執行唯一的命令來支持服務端插入模組介面的所有命令的步驟。
此外,執行此方法的平台可以包括至少一個資源端插入模組和與引擎通信並與所有資源端插入模組通信的唯一的資源端介面。所述資源端介面包括唯一的命令。此外,每個資源端插入模組可以包括一個資源端插入模組介面,而每一個資源端插入模組用於與至少一個資源相連接。在這種情況下,所述資源端介面支持所有資源端插入模組介面,並且所述方法還包括執行該唯一的命令來支持資源端插入模組介面的所有命令的步驟。
此外,所述方法可以包含通過使用者定義的組態檔案組態系統來進行管理的步驟。
所述服務端插入模組中的一個可以連接到包含用於說明基於Web的最終使用者介面的最終使用者介面源代碼的Web伺服器。在這種情況下,所述方法還可以包括在運行時間內不用重啟系統而重新載入最終使用者介面源代碼的步驟。最終使用者介面源代碼可以被定義在XML檔案和HTML檔案中。
此外,所述方法可以包括對在引擎中的用於說明商業邏輯的主源代碼進行解譯的步驟。解譯主源代碼的步驟被執行,以使在運行時間內不用重啟系統就能夠重新載入主源代碼。主源代碼可以被定義在XML檔案中。
所述方法還可以包含在運行時間內不重啟系統而動態載入資源端插入模組的步驟。
在本發明的另一個實施例中,開發平台是用於建立為使用者提供服務的系統。所述平台包含用於提供系統管理和執行商業邏輯的引擎,至少一個服務端插入模組每個都是可執行的,以及與引擎通信並與所有服務端插入模組通信的唯一的服務端介面。服務端介面僅包括唯一的命令。
此外,平台可以提供與至少一個資源的連接,所述平台還包括:至少一個資源端插入模組;和與引擎通信並與所有資源端插入模組通信的唯一的資源端介面;所述資源端介面包括唯一的命令。
每一個所述至少一個資源端插入模組具有一個資源端插入模組介面,每一個資源端插入模組用於連接至少一個資源。在這種情況下,所述資源端介面支持所有資源端插入模組介面,和所述資源端介面的所述唯一的命令支持資源端插入模組介面的所有命令。
本發明的另一個實施例是一種電腦程式產品,包括具有記錄於其上的包含代碼機構的電腦程式的電腦可讀記錄媒體,當該代碼在電腦上執行時,所述代碼機構用於指示所述電腦來控制上述方法中的步驟。
圖5的簡化示意圖示出了包括本發明的系統510和相關聯的使用者代碼550的結構500。系統510包含三個主要部分:在核心處是軟件引擎520,與引擎通信的是與其分離的介面530、540,和介面插入模組531、541。在這裡,結構500有時被稱為DOPA。
引擎520、介面530、540和介面插入模組531、541包括預先建立的軟件包,它包括除了商業邏輯本身以外的、將被開發的目標系統的其它所有方面。引擎520、介面530、540和介面插入模組531、541是一般的,它們不是專門用於如電信或銀行的任何工業。平台不包括與特別任務相關的商業邏輯。
另一方面,如建立資料庫連接和提供系統服務的所有其它非邏輯任務,被本發明的預先書寫和預先測試目標所執行。那些目標是彼此獨立的。
與產生的新代碼必須稍後在每個應用中被測試的自動代碼產生技術相比,本發明使用了預先建立、預先測試目標,用於除將被書寫的商業邏輯外的系統的其它所有方面。那些方面包括常用的或者遵循標準的目標。因而,隨著系統的其它所有方面都被預先建立和預先測試,開發者能夠完全集中精力在編碼和除錯系統的商業邏輯部分。
引擎520的主功能用於提供對整個系統的控制和管理並處理使用者邏輯。引擎520可以包括一個功能的集合,它在概念上類似於包含於許多編程語言中的功能,用於為開發者方便起見而預先書寫一些常用代碼的目的。
主源代碼552和最終使用者介面源代碼551包含使用者書寫的開發代碼550。主源代碼552是用引擎支持的語言書寫的,而最終使用者介面源代碼551是用Web介面插入模組532和Web伺服器分別支持的語言書寫的。主源代碼552定義了被系統執行的商業邏輯,並且最終使用者介面源代碼551定義了基於Web的最終使用者介面。當商業邏輯變化時主源代碼是唯一必須被修改的地方。在這裡所使用的術語“商業邏輯”的意思是被電腦系統執行的、用於正在開發的特別應用的一個任務或決定或者任務或決定的序列。本發明所使用的開發代碼的範例將在下面參考圖10進行解譯。
服務端介面530和資源端介面540,都是使用本發明的單介面技術(SIFT)的介面。SIFT允許一個介面定義來支持不同的介面。SIFT也支持多種介面類型,如CORBA、HTTP、SOAP、Telnet、Java等等和將來將出現的新的介面類型。
服務端介面530和資源端介面540,均是引擎和所有插入模組之間的中間層,它們吸收各種插入模組介面的差異將其符合成一個介面,並使用該介面與引擎通信。介面使用本發明的單命令技術來實現這個獨特的功能。
單命令技術553是支持具有各種不同的資料類型和資料結構、所有可能的參數集和各種返回資料值的各種不同命令的命令定義。
與下面將被更詳細描述的一樣,單命令技術允許引擎以單一方式處理所有命令並允許使用者以更簡化的格式書寫源代碼552,因而簡化了書寫商業邏輯的處理。這一概念顯著地縮短了軟件開發週期,允許快速建立適應性好、大規模的能夠支持各種系統特性的軟件系統。除錯和代碼維護變得簡單快捷。
引擎520僅與服務端介面530和/或者資源端介面540通信。由於引擎520僅與這些介面通信,則引擎520不必隨不同的介面插入模組而修改。換句話說,SIFT允許引擎520保持不變。
服務端介面530支持服務端介面插入模組531,如基於Web的圖形最終使用者介面模組532。資源端介面540支持資源端介面插入模組541,提供與如資料庫的資源542的交互。
如果其介面定義已知,介面插入模組531、541可以被預先建立。例如,通過使用IDL介面定義,CORBA介面模組可以被預先建立。該模組能夠被用於所有CORBA介面,並且不必為專門應用而重新書寫。另外一個範例,基於Web的最終使用者介面插入模組532可以被預先建立在用於Web伺服器的服務端介面之上。
將介面插入模組從該介面本身分離出來的好處如下:第一,這使得每個介面模組成為插件,而不是硬連線的,因而可以變換不同的介面技術而不會沖擊系統的其它部分;第二且更重要的是,由於其預先定義、多用途的(all-purpose)且通用的單介面技術,它可以支持將來的新技術;第三,它也可以支持專門的使用者介面。
引擎520支持熱插拔。它使用現有的動態目標載入技術,藉此在運行時間內不用中斷服務就能夠熱插拔系統組態、使用者源代碼和介面插入模組。
具有同樣的介面插入模組或不同的插入模組的系統的多個範例可以同時運行。
示範實施例
本發明系統結構的示範實施例600由圖6示意性地示出。它包括DOPA系統610和開發者代碼660。在這裡被包括的範例是本發明的一個實施例的圖解,並且絕非意在限制本發明的範圍。本領域的普通技術人員將發現使用其它的編程語言和技術也可以實現本發明的系統和方法。
示範實施例中的DOPA系統610包括DOPA引擎620、北區的服務端介面630、兩個服務端預先建立的CORBA插入模組631、632、用於最終使用者除錯器的服務端預先建立的命令行目標插入模組637、連接於一個CORBA介面插入模組632的服務端預先建立的DOPA servlet引擎633、南區的資源端介面640和連接於南區的資源的若干資源端預先建立的插入模組641到646。
開發者代碼660包括由DOPA servlet引擎633讀取的、用於基於Web的顯示的、HTML/XML的Web源代碼661,由系統610讀取的、用於動態地管理系統的組態代碼662,定義系統訊息、包括錯誤的XML的訊息代碼663,以及用於商業邏輯的、由DOPA引擎620讀取的DOPA主源代碼664。
預先建立的CORBA伺服器介面模組631為CORBA客戶635提供服務。相同的CORBA插入模組的另一個實例632被用於與DOPA servlet引擎633進行通信,所述DOPA servlet引擎633為Web瀏覽器636連接Web伺服器634。因而,在兩個實例中再使用了相同的CORBA介面模組。可見,可以為客戶預先建立介面模組,以減輕開發者為這些介面模組書寫代碼的任務。
預先建立的CORBA客戶介面模組643被用於與CORBA伺服器653相聯系。CORBA伺服器可以是一個在DOPA系統中的CORBA伺服器。在此範例中的系統610包括額外的預先建立的介面插入模組:用於資料庫651的ODBC介面插入模組641;用於另一個資料庫652的JDBC介面插入模組642;用於郵件伺服器654的郵件介面插入模組644,和用於電話伺服器655的電話介面插入模組645。本領域的普通技術人員將發現其它的介面模組也可以被以相似的方式預先建立來被使用和再使用。
在圖6的示範系統的實施中,開發者如下所述地書寫開發者源代碼660:主源代碼664,如上面所討論的用於商業邏輯的XML檔案,以若干HTML/XML檔案661書寫、用於由DOPA servlet引擎633所使用的Web源代碼661,用於提供基於Web的使用者介面,如下面所討論的被系統610讀取的組態檔案662,以及將被用於系統中的、由開發者所定義的訊息檔案663。
開發者源代碼660不需要用特別的資料類型或資料結構來聲明資料,因為如下所述,平台僅有唯一的命令和一個資料結構來進行工作。變量var_name=value被定義為和資料類型無關。必要時DOPA引擎620和DOPA servlet引擎633能夠根據上下文將變量轉換為適當的資料類型。它也允許使用者在一個命令中使用盡可能多的參數而不需要在相應的命令中預先定義參數集。
圖7示出了根據本發明使用單介面技術的、用於服務端介面和資源端介面的、IDL中的介面定義700的範例。如圖6所示,單服務端介面630是在DOPA引擎620和北區的介面模組631、632、637之間定義的唯一的介面。這對於DOPA引擎620和南區的介面插入模組641到646之間的單資源端介面640是相同的。
回到圖7中,單介面750的範例取代了用於與之連接的使用者和資源的多種介面技術、資料庫等所需要的多個分離的介面。多個分離的介面的存在需要開發者在所連接的項目變化或增加新項目時使用習知技術改變系統的核心代碼或者添加新代碼。因而當添加對新的介面插入模組的支持以用於不同的技術時,不需要添加或改變存在的介面定義(如圖7中的介面定義700),從而改變引擎620。
通過使用具有一個命令名稱775的單命令770(本範例中的DopaCommand),單個介面750的範例是可行的。單命令770的元素允許唯一的命令能夠處理所有命令,這樣系統可以接收和實現所有的要求。單命令的元素提供命令所使用的資料和操作。
通過使用單資料技術,單個命令770的範例是可行的。單資料技術是支持所有可能的資料結構、資料類型和資料元素的多個數字的資料結構或資料類型。
圖7示出了本發明中的使用單資料技術的單資料結構的範例。單資料結構被稱為rdata 710。在單命令770中的資料類型被稱為rdatas 720,這裡rdatas 720是rdata 710的序列。結構710的元素715提供通用性和靈活性來支持單命令770內的所有資料結構和資料類型。
DTD(文件類型定義)檔案800(圖8)定義了在XML中的開發者的DOPA主源代碼664中使用的元素或標識名。ROOT元素被定義用來包含零個或更多的COMMAND元素,而COMMAND類似於傳統程式設計語言中的“方法”。遵循在DTD800中已設定的規則的COMMAND元素包括包含可選擇的聲明(STMT)和零個或更多的參數(PARAM)的零或更多的DATA元素,用來允許命令以相同格式執行所有商業邏輯。若干的屬性目錄820提供與元素COMMAND和DATA相關聯的額外資訊。由此範例可以看出,執行商業邏輯的任務已經被減少為遵循定義在圖8中的簡單的DTD來書寫XML檔案。在圖8中的DTD範例中,多個COMMAND元素可以被用於執行商業邏輯。每個COMMAND元素可以包含包括可選擇的STMT(聲明)元素和任一個PARAM(參數)元素的多個DATA元素。
回到圖7中的示範實施例,本發明的平台僅利用了一種資料結構和一種資料類型。從而根本不需要資料類型,以至簡化了開發者代碼,因為所有資料共享同樣的資料類型和資料結構。平台具有基於上下文內部辨別適當的資料類型,並根據需要在一個序列720中使用結構710中的元素715來傳遞所有資料值的智能。因而,開發者可以根據需要使用資料而不需關心資料類型聲明的正確性和預先定義的參數集的匹配性。
為檢索如圖2中舉例說明的請求資訊的目的,圖9和圖10分別示出了DOPA組態檔案652和XML中的用於商業邏輯的DOPA主源代碼654的範例。圖9中的組態檔案900建立了系統的組態,它包括一個具有端口的CORBA伺服器和一個具有資料庫名稱、資料庫驅動和登錄資訊的資料庫。
圖10的XML檔案1000描述了開發者使用圖8所示DTD書寫的商業邏輯。在此範例中,一個稱為“getRequesterInfo”的COMMAND元素被使用。它有兩個DATA元素塊,一個包含PARAM元素塊1020,另外一個包含STMT元素塊1030。
PARAM塊1020聲明了一個稱為“使用者”的參數並傳遞登錄使用者的身份。STMT塊1030包含用於存取名為PEOPLE的資料庫表來為使用者提取請求資訊的商業邏輯。STMT塊1030內的SQL語句與包含於在圖3的320所示的習知技術的使用者源代碼是相同的。值得注意的是,在圖2、4中顯示的習知技術系統所必需的額外編碼被去除了,因為這些額外編碼可以提前被獲知,並因而可以在DOPA系統中被預先書寫和預先測試。
上面描述的發明是模組化的框架,並就像可觸知地體現在程式儲存裝置上的應用程式一樣作為軟件來組態。用於執行的應用代碼可以常駐於本領域的普通技術人員所知的多個不同類型的電腦可讀媒體上。執行本發明的實施例的指令的電腦1121的簡單實施例由圖11示出。被描繪的典型硬件環境示出了電腦典型的硬件組態。電腦1121包括CPU 1123、記憶體1125、程式儲存裝置1127、公共通信匯流排1129、網路介面1131和使用者介面1139。網路介面1131允許在電腦1121、其它電腦和使用已知通信協定的外部兼容設備之間的雙向通信。可執行指令被從程式儲存裝置1127載入到記憶體1125中。CPU 1123執行在記憶體1125中存儲的兼容指令。本領域的普通技術人員將知道本發明可以在不背離本發明的範圍的情況下被應用於多種其它組態上。
前述的詳細說明應該被理解為在每個方面是說明性和實例性的,而不是限制性的,並且這裡所公開的本發明的範圍不能由“發明內容”決定,而是由根據專利法允許的全部範圍所解釋的申請專利範圍所決定的。例如,當範例主要涉及CORBA介面的時候,具有如HTTP、SOAP等其它介面技術的系統也可以利用本發明進行開發和執行。這裡顯示和描述的實施例應該被理解為僅是對本發明的原理的說明,而且本領域的普通技術人員在不背離本發明的範圍和精神的情況下可以進行各種修改。
510...系統
520...引擎
530、540...介面
531、541...介面插入模組
610...DOPA系統
620...DOPA引擎
630...服務端介面
631、632...CORBA插入模組
633...DOPA servlet引擎
634...Web伺服器
635...CORBA客戶
636...Web瀏覽器
637...命令行目標插入模組
638...最終使用者除錯器
640...資源端介面
641-646...插入模組
651、652...資料庫
653...CORBA伺服器
654...郵件伺服器
655...電話伺服器
1121...電腦
1123...CPU
1125...記憶體
1127...程式儲存裝置
1129...公共通信匯流排
1131...網路介面
1139...使用者介面
圖1是用於建立具有基於Web的使用者介面、CORBA介面和對資料庫及其它資源的存取的系統的習知技術結構的示意圖。
圖2是定義在IDL中用於檢索一些請求資訊的習知技術介面的示意代碼段。
圖3是使用圖2中的介面定義來檢索請求資訊的習知技術的Java代碼的示意代碼段。
圖4是圖2中的範例所需要的習知技術額外Java代碼的示意代碼段。
圖5是根據本發明的開發和執行平台的結構示意圖。
圖6是根據本發明的開發和執行平台的一個範例的結構示意圖。
圖7是在圖6的範例中使用的在IDL中的使用單介面技術和單命令技術的介面定義的一個範例的示意代碼段。
圖8是用於定義圖6的範例中的引擎所使用的XML中的主源代碼的文件類型定義(DTD)的一個範例。
圖9是根據本發明的一個實施例的由使用者定義的、用於檢索在圖2、3和4中請求資訊的系統組態檔案的一個範例。
圖10是根據本發明的一個實施例用於檢索在圖2、3和4中的請求資訊的XML格式下的主使用者源代碼的一個範例。
圖11是示出可以運行本發明的部分或所有平台的電腦的一個範例的簡化示意圖。
500...結構
510...系統
520...引擎
530、540...介面
532...最終使用者介面插入模組
531、541...介面插入模組
542...資料庫的資源
550...使用者代碼
551...最終使用者介面源代碼
552...主源代碼

Claims (34)

  1. 一種執行應用程式的電腦程式產品,包含:電腦可讀取儲存媒體;以及在該儲存媒體內的電腦程式代碼,該代碼具有指令以用於提供:(a)預先開發引擎,適於(i)執行使用相同或不同的程式語言編碼的該應用程式之主源代碼以及(ii)使用預先定義的單命令介面來管理複數個預先開發可執行資源端及服務端插入模組,該插入模組支持在該引擎與該應用程式的資源及最終使用者之間的介面,其中該引擎對於對該主源代碼及若干數目的或類型的該插入模組之修改保持不變,該插入模組對於對該主源代碼之修改保持不變,並且各個該單命令介面包含預先開發單一命令,該預先開發單一命令包含指令及資料,其由該引擎所決定並且便於在應用程式、他們的資源及最終使用者之間的連接;(b)至少一預先開發可執行資源端插入模組,適於支持(i)對在至少一個該應用程式中所定義之資源的介面以及(ii)具有該引擎之第一預先定義單命令介面,該資源端插入模組係為可組態的該應用程式之每最終使用者介面代碼;以及(c)至少一個預先開發可執行服務端插入模組,適於支持(i)最終使用者終端或在至少一個該應用程式中定義的最終使用者介面源代碼以及(ii)具有該引擎的第二預 先定義單命令介面。
  2. 如申請專利範圍第1項的電腦程式產品,其中該引擎使用動態目標載入技術且適於執行該主源代碼以及動態的管理該插入模組。
  3. 如申請專利範圍第1項的電腦程式產品,其中該引擎係適於執行使用XML及其DTD結構編碼的應用程式。
  4. 如申請專利範圍第1項的電腦程式產品,其中該資源端或服務端插入模組係基於其介面定義選擇性的來預先開發並且使用介面定義語言(IDL)。
  5. 如申請專利範圍第1項的電腦程式產品,其中該資源端或服務端插入模組係適用於XML及HTML之要求。
  6. 如申請專利範圍第1項的電腦程式產品,其中該資源端或服務端插入模組係選擇性的適於支持標準化或客製的資源及最終使用者介面。
  7. 如申請專利範圍第1項的電腦程式產品,其中該資源端插入模組係選擇性的適於支持COBRA、HTTP及命令行目標介面。
  8. 如申請專利範圍第1項的電腦程式產品,其中該服務端插入模組係選擇性的適於支持COBRA、ODBC、JDBC、HTTP、SOAP、Telnet及JAVA介面。
  9. 如申請專利範圍第1項的電腦程式產品,其中適於支持具有Web瀏覽器的該最終使用者介面之該至少一服務端插入模組包含servlet引擎。
  10. 如申請專利範圍第1項的電腦程式產品,其中該 第一或第二單命令介面之單一命令包含指令與資料兩者,並且支持資料結構、資料元素及該分別的資源端或服務端插入模組的命令。
  11. 如申請專利範圍第1項的電腦程式產品,其中:該引擎解譯該主源代碼;以及至少一部分的該資源端或服務端插入模組解譯且執行該最終使用者介面代碼。
  12. 如申請專利範圍第1項的電腦程式產品,其中該資源端插入模組選擇性的提供對資料庫、網路或Web伺服器、COBRA、電子郵件或電話伺服器等其它伺服器或其客戶裝置的連接。
  13. 如申請專利範圍第1項的電腦程式產品,其中該服務端插入模組選擇性的提供對網路、Web、SOAP伺服器、COBRA或SOAP客戶、最終使用者終端或軟體除錯工具的連接。
  14. 如申請專利範圍第1項的電腦程式產品,其中自遠端的或常駐的儲存處或其結合提供該主源代碼至該引擎與該最終使用者介面源代碼至該服務端插入模組。
  15. 如申請專利範圍第1項的電腦程式產品,其中該儲存媒體包含至少一該儲存媒體裝置或其部分,並且使用一電腦、複數個電腦、一伺服器、複數個伺服器或其結合,可本地的或遠端的存取。
  16. 一種執行應用程式的方法,包含:(a)提供計算設備,其具有處理器及儲存媒體,該設備 適於存取該應用程式;(b)在該儲存媒體中儲存具有指令之程式代碼,用以提供:預先開發引擎,適於(i)執行使用相同或不同的程式語言編碼的該應用程式之主源代碼以及(ii)使用預先定義的單命令介面來管理複數個預先開發可執行資源端及服務端插入模組,該插入模組支持在該引擎與該應用程式之資源及最終使用者之間的介面,其中該引擎對於對該主源代碼及若干數目或類型的該插入模組之修改保持不變,該插入模組對於對該主源代碼之修改保持不變,並且各個該單命令介面包含預先開發單一命令,該預先開發單一命令包含指令及資料,其由該引擎所決定並且便於在該應用程式、他們的資源及最終使用者之間的連接;至少一預先開發可執行資源端插入模組,適於支持(i)對在至少一應用程式中定義的資源之介面及(ii)具有該引擎之第一預先定義單命令介面,該資源端插入模組係為可組態的該應用程式之每最終使用者介面代碼;以及至少一預先開發可執行服務端插入模組,適於支持(i)最終使用者終端或在至少一該應用程式中定義的最終使用者介面源代碼以及(ii)具有該引擎之第二預先定義單命令介面;以及(c)使用該預先建構的引擎選擇性的執行該應用程式;其中該計算設備包含一電腦、複數個電腦、一伺服器、複 數個伺服器或其結合。
  17. 如申請專利範圍第16項的方法,更包含:在該引擎中,動態的執行該主源代碼且使用動態目標載入技術管理該插入模組。
  18. 如申請專利範圍第16項的方法,更包含:使該引擎適於執行使用XML及其DTD結構編碼的該應用程式。
  19. 如申請專利範圍第16項的方法,更包含:預先開發該資源端或服務端插入模組係基於其介面定義並且使用介面定義語言(IDL)。
  20. 如申請專利範圍第16項的方法,更包含:使該資源端或服務端插入模組適於XML及HTML的要求及/或標準化或客製的資源及最終使用者介面。
  21. 如申請專利範圍第16項的方法,更包含:使該資源端插入模組選擇性的適於支持COBRA、HTTP及命令行目標介面。
  22. 如申請專利範圍第16項的方法,更包含:使該資源端插入模組選擇性的適於支持COBRA、Web瀏覽器及命令行目標介面。
  23. 如申請專利範圍第16項的方法,更包含:產生該第一或第二單命令介面的單一命令,該單一命令支持資料結構、資料元素及該分別的資源端或服務端插入模組的命令。
  24. 如申請專利範圍第16項的方法,更包含: 使用該引擎以解譯該應用程式之主源代碼;以及使用至少一部分的該資源端或服務端插入模組以解譯及執行該應用程式的最終使用者介面代碼。
  25. 如申請專利範圍第16項的方法,更包含:使該資源端插入模組適於選擇性的提供對資料庫、網路或Web伺服器、SOAP伺服器、COBRA、電子郵件或電話伺服器等其它伺服器或其客戶裝置的連接。
  26. 如申請專利範圍第16項的方法,更包含:使該服務端插入模組適於選擇性的提供對Web、COBRA或SOAP客戶、最終使用者終端或軟體除錯工具的連接。
  27. 如申請專利範圍第16項的方法,更包含:自遠端的或常駐的儲存處或其結合,將該主源代碼提供至該引擎以及該最終使用者介面源代碼至該服務端插入模組。
  28. 一種執行應用程式的系統,包含:計算設備,具有處理器及儲存媒體,該設備適於儲存或存取該應用程式或其部分;以及在該儲存媒體內電腦程式代碼,該代碼具有指令以用於提供:(a)預先開發引擎,適於(i)執行使用相同或不同的程式語言編碼的該應用程式之主源代碼以及(ii)使用預先定義的單命令介面來管理複數個預先開發可執行資源端及服務端插入模組,該插入模組支持在該引擎與該應用程 式的資源及最終使用者之間的介面,其中該引擎對於對該主源代碼及若干數目的或類型的該插入模組之修改保持不變,該插入模組對於對該主源代碼之修改保持不變,並且各個該單命令介面包含預先開發單一命令,該預先開發單一命令包含指令及資料,其由該引擎所決定並且便於在應用程式、他們的資源及最終使用者之間的連接;(b)至少一預先開發可執行資源端插入模組,適於支持(i)對在至少一個該應用程式中所定義之資源的介面以及(ii)具有該引擎之第一預先定義單命令介面,該資源端插入模組係為可組態的該應用程式之每最終使用者介面代碼;以及(c)至少一個預先開發可執行服務端插入模組,適於支持(i)最終使用者終端或在至少一個該應用程式中定義的最終使用者介面源代碼以及(ii)具有該引擎的第二預先定義單命令介面,其中該計算設備係選自於由一電腦、複數個互連的電腦、一網路或Web伺服器、複數個網路或Web伺服器及其結合所組成的群組。
  29. 如申請專利範圍第28項的系統,其中:該引擎係適於解譯該主源代碼;至少一部分的該資源端或服務端插入模組係適於解譯或執行該最終使用者介面代碼;該資源端或服務端插入模組係基於其介面定義選擇性 的預先開發並且使用介面定義語言及標準化或客製的資源及最終使用者介面;該資源端或服務端插入模組係適用於XML及HTML之要求;該服務端插入模組係選擇性的適於支持COBRA、HTTP、SOAP或命令行目標介面;以及該資源端插入模組係選擇性的支持COBRA、ODBC、JDBC、HTTP、SOAP、Telnet及Java介面。
  30. 如申請專利範圍第28項的系統,其中:該第一或第二單命令介面之單一命令支持資料結構、資料元素及該分別的資源端或服務端插入模組的命令;該資源端插入模組選擇性的提供對資料庫、網路或Web伺服器、SOAP伺服器、COBRA、電子郵件或電話伺服器等其它伺服器或其客戶裝置的連接;該服務端插入模組選擇性的提供對網路、Web、COBRA或SOAP客戶、最終使用者終端或軟體除錯工具的連接;以及自遠端的或常駐的儲存處或其結合將該主源代碼提供至該引擎及該最終使用者介面源代碼至該服務端插入模組。
  31. 一種執行應用程式的電腦程式產品,包含:至少一電腦可讀取儲存媒體,使用一電腦、複數個電腦、一伺服器、複數個伺服器或其結合,可本地的或遠端的存取;以及 在該至少一電腦可讀取儲存媒體內之電腦程式代碼,該代碼具有指令用於提供:(a)預先開發引擎,適於(i)執行使用相同或不同的程式語言編碼的該應用程式之主源代碼以及(ii)使用預先定義的單命令介面來管理複數個預先開發可執行資源端及服務端插入模組,該插入模組支持在該引擎與該應用程式之資源及最終使用者之間的介面,其中該引擎對於對該主源代碼及若干數目的或類型的該插入模組之修改保持不變,該插入模組對於對該主源代碼之修改保持不變,並且各個該單命令介面包含預先開發單一命令,該預先開發單一命令包含指令及資料,其由該引擎所決定並且便於在應用程式、他們的資源及最終使用者之間的連接;(b)至少一預先開發可執行資源端插入模組,適於支持(i)對在至少一應用程式中定義的資源之介面及(ii)具有該引擎之第一預先定義單命令介面,該資源端插入模組係為可組態的該應用程式之每最終使用者介面代碼;以及(c)至少一預先開發可執行服務端插入模組,適於支持(i)最終使用者終端或在至少一該應用程式中定義的最終使用者介面源代碼以及(ii)具有該引擎之第二預先定義單命令介面;其中該引擎使用動態目標載入技術且適於執行該主源代碼以及動態的管理該插入模組且執行使用XML及 其DTD結構編碼的應用程式。
  32. 如申請專利範圍第31項的電腦程式產品,其中.該引擎係適於解譯該主源代碼;至少一部分的該資源端或服務端插入模組係適於解譯或執行該最終使用者介面代碼;該資源端或服務端插入模組係基於其介面定義選擇性的預先開發並且使用介面定義語言及標準化或客製的資源與最終使用者介面;該資源端或服務端插入模組係適用於XML及HTML之要求;該服務端插入模組係選擇性的適於支持COBRA、HTTP、SOAP或命令行目標介面;以及該資源端插入模組係選擇性的適於支持COBRA、ODBC、JDBC、HTTP、SOAP、Telnet及Java介面。
  33. 如申請專利範圍第31項的電腦程式,其中該第一或第二單命令介面的單一命令支持資料結構、資料元素及該分別的資源端或服務端插入模組的命令;該資源端插入模組選擇性的提供對資料庫、網路或Web伺服器、SOAP伺服器、COBRA、電子郵件或電話伺服器等其它伺服器或其客戶裝置的連接;該服務端插入模組選擇性的提供對網路、Web、COBRA或SOAP客戶、最終使用者終端或軟體除錯工具的連接;以及自遠端的或常駐的儲存處或其結合將該主源代碼提供 至該引擎及該最終使用者介面至該服務端插入模組。
  34. 一種執行應用程式的電腦程式產品,該電腦程式產品包含電腦可讀取儲存媒體及在該儲存媒體內的電腦程式代碼,該代碼具有指令以用於提供預先開發引擎,其適於執行該應用程式的主源代碼,並且控制:(a)資源端插入模組,適於支援(i)對在該應用程式中所定義之資源的介面以及(ii)具有該引擎之第一預先定義單命令介面;以及(b)服務端插入模組,適於支援(i)最終使用者終端或在該應用程式中所定義的最終使用者介面源碼以及(ii)具有該引擎的第二預先定義單命令介面;其中:該引擎對於對該主源代碼及若干數目或類型的該資源端或服務端插入模組之修改保持不變;該資源端或服務端插入模組係為預先開發模組,其對於對該主源代碼之修改保持不變;該資源端插入模組係為可組態的該應用程式之每最終使用者介面代碼;以及各個該單命令介面包含預先開發單一命令,該預先開發單一命令具有指令及資料,其由該引擎所決定並且便於在該應用程式、他們的資源及最終使用者之間的連接。
TW095133514A 2004-12-09 2006-09-11 開發及執行平台 TWI414995B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63482404P 2004-12-09 2004-12-09
US11/224,665 US7831955B2 (en) 2004-12-09 2005-09-12 Development and execution platform

Publications (2)

Publication Number Publication Date
TW200745947A TW200745947A (en) 2007-12-16
TWI414995B true TWI414995B (zh) 2013-11-11

Family

ID=37878607

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095133514A TWI414995B (zh) 2004-12-09 2006-09-11 開發及執行平台

Country Status (2)

Country Link
CN (1) CN1932760B (zh)
TW (1) TWI414995B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984553B (zh) * 2014-05-26 2017-10-24 中科创达软件股份有限公司 一种3d桌面显示方法和系统
CN106790006B (zh) * 2016-12-13 2020-08-04 北京元心科技有限公司 设备管理方法和系统
CN114489862A (zh) * 2022-02-16 2022-05-13 深圳市明泰智能技术有限公司 一种idev系统的插件实现方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942552A (en) * 1986-11-20 1990-07-17 Allen-Bradley Company, Inc. Method and apparatus for saving and performing industrial control commands
TW475911B (en) * 1993-09-08 2002-02-11 Hurco Co Inc Improved machine tool control system
US6564201B1 (en) * 2000-04-25 2003-05-13 Cook-Hurlbert, Inc. Expert designer system virtual plug-in interface
US6587849B1 (en) * 1999-12-10 2003-07-01 Art Technology Group, Inc. Method and system for constructing personalized result sets
US20030229665A1 (en) * 2002-06-10 2003-12-11 International Business Machines Corporation Systems, methods and computer programs for implementing and accessing web services
US20030237073A1 (en) * 2001-05-17 2003-12-25 Karel Gardas Software synchronization of interface and class implementation
US20040133876A1 (en) * 2003-01-08 2004-07-08 Craig Sproule System and method for the composition, generation, integration and execution of business processes over a network
US20040250238A1 (en) * 2003-06-04 2004-12-09 Singh Uma Kant Cross-platform development for devices with heterogeneous capabilities
US20050033763A1 (en) * 2003-07-11 2005-02-10 Shyhshiun Chen System and method for providing a non-specific graphical user interface framework

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942552A (en) * 1986-11-20 1990-07-17 Allen-Bradley Company, Inc. Method and apparatus for saving and performing industrial control commands
TW475911B (en) * 1993-09-08 2002-02-11 Hurco Co Inc Improved machine tool control system
US6587849B1 (en) * 1999-12-10 2003-07-01 Art Technology Group, Inc. Method and system for constructing personalized result sets
US6564201B1 (en) * 2000-04-25 2003-05-13 Cook-Hurlbert, Inc. Expert designer system virtual plug-in interface
US20030237073A1 (en) * 2001-05-17 2003-12-25 Karel Gardas Software synchronization of interface and class implementation
US20030229665A1 (en) * 2002-06-10 2003-12-11 International Business Machines Corporation Systems, methods and computer programs for implementing and accessing web services
US20040133876A1 (en) * 2003-01-08 2004-07-08 Craig Sproule System and method for the composition, generation, integration and execution of business processes over a network
US20040250238A1 (en) * 2003-06-04 2004-12-09 Singh Uma Kant Cross-platform development for devices with heterogeneous capabilities
US20050033763A1 (en) * 2003-07-11 2005-02-10 Shyhshiun Chen System and method for providing a non-specific graphical user interface framework

Also Published As

Publication number Publication date
TW200745947A (en) 2007-12-16
CN1932760B (zh) 2012-07-18
CN1932760A (zh) 2007-03-21

Similar Documents

Publication Publication Date Title
US10324690B2 (en) Automated enterprise software development
US5758351A (en) System and method for the creation and use of surrogate information system objects
US7761406B2 (en) Regenerating data integration functions for transfer from a data integration platform
US6996589B1 (en) System and method for database conversion
US9659012B2 (en) Debugging framework for distributed ETL process with multi-language support
US20050251533A1 (en) Migrating data integration processes through use of externalized metadata representations
US20050015439A1 (en) Flexible architecture component (FAC) for efficient data integration and information interchange using web services
US7831955B2 (en) Development and execution platform
Turau A framework for automatic generation of web-based data entry applications based on XML
Tudose et al. Java Persistence with Spring Data and Hibernate
TWI414995B (zh) 開發及執行平台
US10606569B2 (en) Declarative configuration elements
CN113238739A (zh) 一种插件开发和数据获取方法、装置、电子设备及介质
US11977473B2 (en) Providing a pseudo language for manipulating complex variables of an orchestration flow
Han et al. Reconstructing Software Architecture for J2EE Web Applications.
Soleimanifard et al. Procedure-modular specification and verification of temporal safety properties
Soni et al. Spring: Developing Java Applications for the Enterprise
Bai Developing Java Web Services to Access Databases
Millham Evolution of batch-oriented COBOL systems into object-oriented systems through unified modelling language.
Rademacher et al. Model-Driven Engineering of Microservice Architectures—The LEMMA Approach
Olsen et al. Using SDL for targeting services to CORBA
Sharma et al. Three Layered Crud API Architecture
MacDonald Pro ASP. NET 1.1 in C#: From professional to expert
Turis Domain-driven design with architectural patterns
Duldulao et al. Spring Boot and Angular: Hands-on full stack web development with Java, Spring, and Angular