TWI409698B - Can any removable API design system - Google Patents
Can any removable API design system Download PDFInfo
- Publication number
- TWI409698B TWI409698B TW96120447A TW96120447A TWI409698B TW I409698 B TWI409698 B TW I409698B TW 96120447 A TW96120447 A TW 96120447A TW 96120447 A TW96120447 A TW 96120447A TW I409698 B TWI409698 B TW I409698B
- Authority
- TW
- Taiwan
- Prior art keywords
- category
- management module
- module
- application interface
- interface
- Prior art date
Links
Landscapes
- Stored Programmes (AREA)
Description
本發明係關於開發資訊系統的程式架構設計,特別是指可運用在建構不同應用程式介面的資訊系統上,使得程式碼具高可重用性並可彈性抽換,藉此可提升系統開發速度及方便維護作業,使應用程式介面之內容改變時系統也能快速地因應,不需任何修改即可正常運作。
在研發資訊系統時,研發團隊常會設計出一些可共用的應用程式介面以達到可重複使用的優點,並減少重複開發相同程式的人力浪費。但我們常會遇到的問題是當這些應用程式介面經過修改變動之後,所有引用該應用程式介面的程式都需一併隨之修改,方能正常運作。
傳統的程式作法通常都是針對每一個修改過後的應用程式介面來做相對應的校正,此種方法在開發時期不但費時費力,且往往程式碼的產生較為雜亂而難以維護,也容易出現有部分程式因遺漏而忘記修正的狀況。
而且傳統的程式幾乎都是針對個別的功能需求來撰寫開發,使用應用程式介面時也多半直接使用實體方法的名稱來叫用,此種方法不但在開發時期需要因應不同的狀況來做修正,且往往程式碼的產生較為雜亂而難以維護。
由此可見,上述習用方式仍有諸多缺失,實非一良善之設計,而亟待加以改良。
本案發明人鑑於上述習用方式所衍生的各項缺點,乃亟思加以改良創新,並經多年苦心孤詣潛心研究後,終於成功研發完成本件可任意抽換應用程式介面的設計系統,係採用設計模式概念的方式來制訂應用程式介面,使程式碼具高可重用性並可彈性抽換,藉此可提昇系統開發速度及方便維護作業,並使應用程式介面之內容改變時系統也能快速地因應,不需任何修改即可正常運作。
本發明之目的即在於採用設計模式(Design Pattern)的概念來設計資訊系統之程式架構,利用設計模式的工廠方法式樣(Factory Method Pattern)模式封裝應用程式介面,使得程式碼具高可重用性並可彈性抽換,藉此可提升系統開發速度及方便維護作業,使應用程式介面之內容改變時系統也能快速地因應,不需任何修改即可正常運作。
達成上述發明目的之可任意抽換應用程式介面的設計系統,係採用設計模式(Design Pattern)的概念來設計資訊系統之程式架構,包含設計定義合理的介面(Interface)、撰寫相對應的應用程式介面(API)且須能清楚明白定義企業邏輯。並利用設計模式的工廠方法式樣(Factory Method Pattern)模式
封裝應用程式介面,使得程式碼具高可重用性並可彈性抽換,藉此可提升系統開發速度及方便維護作業,使應用程式介面之內容改變時系統也能快速地因應,不需任何修改即可正常運作。
其主要的組成及其重要功能分別為(一)定義如何操作管理基本元件(entity)方法的基本元件管理模組,(二)用來管理操作底層實際資料庫連線的連線管理模組,(三)定義所有基本元件的內容及所需之實作方法的執行組態模組,以及(四)用來紀錄程式處理結果的處理結果模組。
本發明係變更原先以hard code等一般方式的程式設計方法,提供一種運用設計模式(Design Pattern)的概念來設計系統程式架構,並定義出客制化的介面以符合系統所需。請參閱圖一所示,為本發明可任意抽換應用程式介面的設計系統之架構圖,係連接上層資訊系統(1)與底層介面程式資料庫系統(7)的中介系統,其主要由連線管理模組(2)、基本元件管理模組(3)、執行組態模組(4)及處理結果模組(5)等四個模組構成。各個主要的模組分別說明如下:
(一)基本元件管理模組:
基本元件管理模組(3)定義如何操作以及管理基本元件(6)
的方法。基本元件管理模組主要為一個AbstractEntity的JAVA類別,使用者可於AbstractEntity這個類別上客制化上層資訊系統(1)所需的方法以供上層資訊系統(1)使用。AbstractEntity這個模組會在JVM(Java Virtual Machine--用來執行Java程式的虛擬電腦軟體)中建立起一份名為AbstractEntity的實體物件,再根據使用者的需要,取得一份使用者想要操作的基本元件(6)。此基本元件(6)是依據執行組態模組(4)中IEntity介面實作而來的實體物件,隨後即可以透過執行組態模組(4)中所定義的方法來操作元件執行查詢資料或是異動元件屬性的動作。若上層資訊系統1需要一個刪除基本元件功能,只需在AbstractEntity增加一個刪除基本件功能的方法,此方法的輸入及輸出參數則依上層資訊系統1所需參數決定,至少在輸入參數時需帶入包含基本元件識別碼的類別物件,輸出則為boolean物件,在AbstractEntity增加一個刪除基本件功能的方法的定義後,另外在IEntity介面類別將此方法的內容程式碼實作出來後即可使用,可透過底層JDBC以SQL或是底層應用程式的API進行刪除基本元件的功能。
(二)連線管理模組:
連線管理模組(2)用以管理控制底層介面程式資料庫系統
(7)。給予正確的帳號與密碼,連線管理模組(2)建立起與底層介面程式資料庫系統(7)的連線,以提供給應用程式介面給系統使用。此模組主要由名為AbstractSession的JAVA類別及一個或多個之連線物件類別所構成,每個連線物件類別均需實作AbstractSession中的方法而且每個連線物件類別均對應到某一種資訊系統或是資料庫系統之連線物件,透過實作AbstractSession類別中的方法可將實際之應用程式或資料庫之連線物件轉換為AbstractSession中使用者所能利用之連線物件,使用者可透過此模組取得各種資料庫及應用程式之連線物件來使用。基本元件(6)皆須透過此模組取得所需之連線物件。AbstractSession中至少有createSession跟closeSession等兩個方法,createSession輸入參數為id及passwd兩個字串,輸出參數為boolean物件,closeSession則無輸入參數,此方法會直接關閉此AbstractSession實例中session物件。AbstractSession中的連線開啟或關閉方法在實作時會利用底層介接資訊系統的api或是直接使用JDBC方式實作而得,上層資資訊系統開啟連線時只要呼叫AbstractSession的連線開啟方法即可,其他連線所需方法之實作方式亦同。在執行時,AbstractSession實例中會有底層所需的實際Session物件,執行組態模組在取用時直接以物件導向語言之轉型進行Session物件轉換並帶入api中使用。
(三)執行組態模組:
此模組主體為名為IEntity的JAVA類別及一個或多個基本元件(6),每個基本元件(6)均是一個實作IEntity介面的JAVA類別,基本元件(6)的個數基本上取決於資訊系統自己定義的資料種類個數,每個資料種類有一個相對應的基本元件(6),但也可一個基本元件(6)對應多個資料類別,其對應個數由使用者自行決定。透過IEntity類別,使用者可自行定義所有的基本元件(6)應該實作的方法,且這些方法皆需與基本元件管理模組(3)的AbstractEntity類別中所定義之方法相對應,使用者依據IEntity介面而實作的基本元件(6),將可以透過基本元件管理模組(3)來進行相關操作項目,若有其他需求,可隨時於基本元件管理模組及執行組態模組增加元件資料操作項目定義。透過此模組中IEntity類別的客制化方式,可以使與基本元件管理模組(3)連結的資訊透過基本元件(6)來進行對資料庫系統資料的操作或與另一資訊系統進行某種程度的互動。
(四)處理結果模組:
主體為一個名為ResultObj的JAVA類別,這個模組用來存放在程式執行時所得結果資料,包含有所處理之基本元件(6)
之識別碼、執行結果代碼以及執行結果訊息,透過此模組提供之功能可了解其他模組執行之過程,以利整合上之除錯。上述所有模組構成了本發明的主要程式架構。基本元件管理模組(3)與連線管理模組(2)為控管系統運作的主要元件,兩者的角色是並行的,基本元件管理模組(3)的管控是透過執行組態模組(4)的IEntity類別定義所有基本元件(6),而連線管理模組(2)則控管每一位實際使用者的連線資料(Session)。當基本元件(6)所執行的動作有任何問題時,處理結果模組(5)會記錄在處理結果模組(5)的ResultObj物件上,並回傳給上層叫用者,以告知系統運作的狀況。
首先,上層資訊系統(1)必須先取得一個連線類別的連線實體物件,該連線實體物件用以連接底層介面程式資料庫系統(7),此連線實體物件必須實作連線管理模組(2)中AbstractSession抽象類別所定義的方法,針對不同資料庫或資訊系統可實作一個不同的類別,便可取得不同系統的連線物件,再利用這些連線物件與不同的資料庫或資訊系統進行互動。AbstractSession類別的連線實體物件取用方式如下圖二所示,圖二中的連線實體物件sessionObj為HPSession類別,此即為針對HP某系統實作之連線實體物件。若為其他資訊系統則另外定義該資訊系統之session類別,並使用物件導向語言實作的概念實作AbstractSession中的抽象方法,即可使
用。
取得連線實體物件之後,使用者必須再取得一個實作AbstractEntity類別的系統實體物件。針對不同資訊系統可實作一個不同的類別即可支援不同系統的應用程式介面。待取得AbstractEntity類別的系統實體物件後,再將之前取得的AbstractSession類別的連線實體物設給AbstractEntity類別的系統實體物件以供使用,之後系統即可以叫用AbstractEntity類別中定義好的方法來查詢、新增或修改基本元件(6)中的資料。AbstractEntity類別的系統實體物件取用方式如圖二所示。
圖二中的系統實體物件object為HPEntity類別,此即為針對HP某系統實作之系統實體物件。
基本元件管理模組(3)中AbstractEntity類別的系統實體物件使用方法,與執行組態模組(4)之IEntity類別的介面實體物件所定義的方法是一對一對應。AbstractEntity類別中所做的工作僅是動態地處理管控系統取得的系統實體物件,如HPEntity類別的系統實體物件提供給系統程式設計師一組一致的方法,而後所有在AbstractEntity類別中定義的方法都會使用IEntity類別的介面實體物件來做實際的動作。但開發系統的程式設計師將不會看見這些內部處理的過程,對開發系統的程式設計師而言,只需要利用
AbstractEntity類別中所定義的方法來查詢、新增或修改資料即可。
執行組態模組(4)中的IEntity類別的介面實體物件定義了一組系統程式設計師開發過程中需要的方法,而所有的基本元件(6)必須遵造IEntity類別的介面實體物件來實作以符合需求。實作這組方法的工程師,則必須根據底層介面程式資料庫系統(7)或是資訊系統廠商所提供的應用程式介面差異而撰寫不同的程式,如使用API新增資料或刪除資料。由於開發系統的程式設計師並不會接觸到IEntity類別的介面實體物件定義的方法也不會看見底層介面程式資料庫系統(7)是如何實作。故日後若底層介面程式資料庫系統(7)有所變動,亦不會影響已由系統開發程式設計師開發完成的程式。
取得一個實作AbstractEntity類別的系統實體物件後,可透過裡面定義的方法進行相關的操作,由於與執行組態模組(4)中的IEntity類別的介面實體物件為一對一相對應的,所以呼叫AbstractEntity類別的系統實體物件時,基本元件管理模組(3)也會透過執行組態模組(4)去執行實作IEntity類別的介面實體物件中相對應的方法,該實體物件即透過連線管理模組(2)取得的連線物件對資料庫或是資訊系統進行操作,而執行過程及執行結果等也將記錄在處理結果模組(5)中的ResultObj物件裡。
利用本發明,可快速、方便的產生可任意抽換底層應用程式介面(7)的系統程式架構,而且只需維護底層經由IEntity類別的介面實體物件所定義的方法即可。這將使得程式碼具高可重用性並可彈性抽換,藉此可提昇系統開發速度及方便維護作業,使應用程式介面之內容改變時系統也能快速地因應,不需任何修改即可正常運作。
1‧‧‧上層資訊系統
2‧‧‧連線管理模組
3‧‧‧基本元件管理模組
4‧‧‧執行組態模組
5‧‧‧處理結果模組
6‧‧‧基本元件
7‧‧‧底層介面程式資料庫系統
圖一為本發明可任意抽換應用程式介面的設計系統之架構圖;圖二為該用於設計可任意抽換應用程式介面的系統之AbstractEntity與AbstractSession的取用方式實施例圖;
1‧‧‧上層資訊系統
2‧‧‧連線管理模組
3‧‧‧基本元件管理模組
4‧‧‧執行組態模組
5‧‧‧處理結果模組
6‧‧‧基本元件
7‧‧‧底層介面程式資料庫系統
Claims (6)
- 一種用於可任意抽換應用程式介面的設計系統,其為連接上層資訊系統與底層介面程式資料庫系統的中介系統,運用在建構具不同應用程式介面上,使應用程式介面之內容改變時系統不需任何修改即可正常運作,其包括有:一基本元件管理模組,用以定義如何操作及管理基本元件的方法;一連線管理模組,用以管理操控後端應用程式介面會使用到的連線元件;一執行組態模組,用以定義所有基本元件的內容及所需實作之方法;以及一處理結果模組,用以紀錄程式處理結果。
- 如申請專利範圍第1項所述之可任意抽換應用程式介面的設計系統,其中該基本元件管理模組主要由名為AbstractEntity的JAVA類別所構成,使用者可於這個類別客制化上層資訊系統所需的方法以供上層資訊系統使用。
- 如申請專利範圍第1項所述之可任意抽換應用程式介面的設計系統,其中該連線管理模組主要由名為AbstractSession的JAVA類別及一或多個之連線物件類別所構成,每個連線物件類別均需實作AbstractSession中 的方法而且每個連線物件類別均對應到後端資訊系統或是資料庫系統之連線物件。
- 如申請專利範圍第1項所述之可任意抽換應用程式介面的設計系統,其中該執行組態模組主要由名為IEntity的JAVA類別及一或多個基本元件所構成,透過IEntity類別,使用者可自行定義所有的基本元件應該實作的方法,且這些方法皆需與基本元件管理模組的AbstractEntity類別中所定義之方法相對應。
- 如申請專利範圍第1項所述之可任意抽換應用程式介面的設計系統,其中該處理結果模組主要由名為ResultObj的JAVA類別所構成,用來存放在程式執行時所得結果資料,包含有所處理之基本元件之識別碼、執行結果代碼以及執行結果訊息。
- 如申請專利範圍第1項所述功能之可任意抽換應用程式介面的設計系統,其特徵為可透過基本元件管理模組AbstractEntity類別及執行組態模組的IEntity類別中一對一對應實作之方法執行該上層資訊系統與該底層介面程式資料庫系統需要之動作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW96120447A TWI409698B (zh) | 2007-06-07 | 2007-06-07 | Can any removable API design system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW96120447A TWI409698B (zh) | 2007-06-07 | 2007-06-07 | Can any removable API design system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200849092A TW200849092A (en) | 2008-12-16 |
TWI409698B true TWI409698B (zh) | 2013-09-21 |
Family
ID=44824057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW96120447A TWI409698B (zh) | 2007-06-07 | 2007-06-07 | Can any removable API design system |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI409698B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9323587B2 (en) * | 2012-09-27 | 2016-04-26 | National Taiwan University | Method and system for automatic detecting and resolving APIs |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020104068A1 (en) * | 2000-11-03 | 2002-08-01 | Stephen Barrett | Software development process |
US20020144018A1 (en) * | 2001-03-29 | 2002-10-03 | International Business Machines Corporation | Method and system for interfacing to pre-existing software code |
US20030159130A1 (en) * | 2002-01-31 | 2003-08-21 | International Business Machines Corporation | Round-trip maintenance of software configuration |
US20040015849A1 (en) * | 2001-04-06 | 2004-01-22 | Sanchez Humberto A. | Java C++ proxy objects |
US20050065970A1 (en) * | 2003-08-20 | 2005-03-24 | King Anthony Graham | System, method and apparatus for developing software |
US20060020914A1 (en) * | 2004-07-21 | 2006-01-26 | International Business Machines Corporation | Method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented programming method calls |
US20060206442A1 (en) * | 2005-03-08 | 2006-09-14 | Rockwell Automation Technologies, Inc. | Systems and methods for managing control systems through java extensions |
-
2007
- 2007-06-07 TW TW96120447A patent/TWI409698B/zh not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020104068A1 (en) * | 2000-11-03 | 2002-08-01 | Stephen Barrett | Software development process |
US20020144018A1 (en) * | 2001-03-29 | 2002-10-03 | International Business Machines Corporation | Method and system for interfacing to pre-existing software code |
US20040015849A1 (en) * | 2001-04-06 | 2004-01-22 | Sanchez Humberto A. | Java C++ proxy objects |
US20030159130A1 (en) * | 2002-01-31 | 2003-08-21 | International Business Machines Corporation | Round-trip maintenance of software configuration |
US20050065970A1 (en) * | 2003-08-20 | 2005-03-24 | King Anthony Graham | System, method and apparatus for developing software |
US20060020914A1 (en) * | 2004-07-21 | 2006-01-26 | International Business Machines Corporation | Method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented programming method calls |
US20060206442A1 (en) * | 2005-03-08 | 2006-09-14 | Rockwell Automation Technologies, Inc. | Systems and methods for managing control systems through java extensions |
Also Published As
Publication number | Publication date |
---|---|
TW200849092A (en) | 2008-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6614430B1 (en) | System and method for the exchange of CAD data | |
US8782081B2 (en) | Query template definition and transformation | |
US8954375B2 (en) | Method and system for developing data integration applications with reusable semantic types to represent and process application data | |
Ben-Shaul et al. | A paradigm for decentralized process modeling | |
EP3296866B1 (en) | Method implemented by a computer that presents software-type applications based on design specifications | |
CN112748908A (zh) | 基于SSM框架的Restful服务开发方法与装置 | |
Frappier et al. | EB 3: an entity-based black-box specification method for information systems | |
CN111125440B (zh) | 一种基于Monad的持久层复合条件查询方法与存储介质 | |
WO2015196785A1 (zh) | 一种构造软件模型的可视软件建模编辑器 | |
US20150261914A1 (en) | Apparatus and methods for analysing biochemical data | |
CN109960709B (zh) | 一种数据库驱动的处理方法、装置、设备及存储介质 | |
Haarmann et al. | Refining case models using cardinality constraints | |
TWI409698B (zh) | Can any removable API design system | |
JP2011515755A (ja) | 予約されたコンポーネントコンテナ基盤ソフトウェアの開発方法及び装置 | |
WO2023151239A1 (zh) | 一种创建微服务的方法及相关设备 | |
CN115421940A (zh) | 一种基于共享内存技术的多源异构模型白盒集成方法 | |
BOUSETTA et al. | Generating operations specification from domain class diagram using transition state diagram | |
Morris et al. | Database management systems in engineering | |
Gorshkova et al. | A fine-grained access control model and implementation | |
Canals et al. | P-RooT & Coo: building a cooperative software development environment | |
de Guzman et al. | An ADM approach to reengineer relational databases towards web services | |
Fu | Hierarchical modeling of large-scale systems using relational databases | |
Cobourn | Resource Management for CAD Frameworks | |
Hainaut | Research in database engineering at the university of namur | |
Flynn et al. | Supporting display generation for complex database objects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |