編程接口
OpenBASE提供的基本數據庫語言是SQL語言。SQL是一種數據語言,包括數據定義、操作與控制,但它本身不具有計算完備性,如條件測試的IF命令、GOTO命令和執行循環的FOR命令等。為了開發能訪問數據庫的應用程序,還必須使用普通的程序設計語言,如C、JAVA、FORTRA、COBOL等語言作為宿主語言,并把SQL以各種形式加入到這些宿主語言程序中構成數據庫應用程序。
OpenBASE提供了五種不同的數據庫應用編程接口,即模塊式SQL、嵌入式SQL、調用級接口、ODBC接口、JDBC接口。
一)、模塊式SQL
一個SQL模塊可以包括一個應用程序中多個源程序調用的SQL命令。SQL模塊中的每個命令與一個源程序名相關聯,如果其中有源程序需要刪除或改名,相應的SQL模塊的命令必須通過執行實用程序nsqldrop進行刪除。如果預編譯同一應用系統中的其它源程序時有新的命令加入,不刪除這些命令很可能導致標識符的重復。
創建一個數據庫應用程序既要對SQL模塊進行編譯,又要對宿主語言程序進行編譯,當SQL模塊編譯完成后,該SQL模塊被編目在相應的數據庫中,在這種方式中,一個應用程序通過它所引用的SQL模塊與指定的數據庫相關聯。在嵌入式SQL中,上述整個過程是由預編譯器自動完成的。
刪除數據庫中一個已經存在的模塊的方法是使用nspldrop 實用程序,但是應當指出,一旦模塊被刪除,與之相關的應用程序雖然依然存在,但是已不能再運行了,這是因為這個應用程序的SQL模塊在數據庫中的表示已經不再存在了。
用戶可以對模塊執行(進而與其相關的應用程序的執行)的權限進行授權和撤消,是通過實用程序nsqlgrant 和nsqlrevoke實現的。
目前SQL模塊的宿主語言可以是C、JAVA、FORTRA、COBOL。
二)、嵌入式SQL
嵌入式SQL(Embedded SQL) 在這種方式中,SQL命令被直接嵌入到應用程序的源代碼中,與其它程序設計語言的語句一起使用這個方法的優勢是把應用集中在一個源程序中。SQL語句可以用類似于ORA-CLE PRO*C的方式嵌入到C語言和OPUS語言中,使用這種方式程序員學習的曲線較短。
在處理過程中,嵌入式的SQL命令首先由編譯器轉變成SQL模塊的形式,這樣,每個應用程序與一個或幾個SQL模塊相關。對于含有嵌入式SQL命令的源程序,預編譯器將產生一個源程序的拷貝,其中的SQL命令被替換成過程調用,并根據模塊定義語法將SQL命令寫入一個或幾個SQL模塊中,每個SQL命令與其中的一個過程相對應。
三)、調用級接口
1、C語言調用級接口
OpenBASE為C/C++語言提供了調用級接口。C調用級接口提供了12個例行程序接口,支持用戶很方便的用動態命令訪問OpenBASE數據庫。
2、JAVA語言調用級接口
JAVA調用級接口是OpenBASE專用的JAVA應用程序接口,提供了兩個類SYSDynamic和SQLConnect。該接口用于在JAVA程序中執行動態的SQL命令,該接口可用于客戶/服務器結構,也可通過Java Servlet用于三層體系結構。
四)、ODBC應用編程接口
OpenBASE支持Microsoft的ODBC標準,提供了OpenBASE的ODBC驅動程序,允許用戶用標準的ODBC API編寫C/C++、Visual BASIC、Delphi、PowerBuilder、Lotus Notes、Visual Foxpro、MS-Word宏、MS-EXCEL宏等的應用程序。
五)、JDBC應用編程接口
OpenBASE支持SUN公司的JDBC標準,提供了OpenBASE的JDBC驅動程序,允許用戶用標準的JDBC API編寫Java應用程序。
體系結構
OpenBASE具有三種體系結構,即集中式體系結構、客戶/服務器體系結構、Web瀏覽器/Web應用服務器/數據庫服務器三層體系結構。
集中式體系結構
在集中式體系結構中,數據庫服務器和應用都運行在一臺機器上,他們之間不經過網絡協議傳遞數據,關系比較緊密,可以根據用戶需求配置高性能的共享內存,幫助用戶提高系統效率。
客戶/服務器
OpenBASE的客戶/服務器結構如圖所示。
在這種體系結構中OpenBASE數據庫系統由OpenBASE 數據庫服務器、OpenBASE ODBC驅動程序、OpenBASE JDBC驅動程序以及OpenBASE網絡連接通訊接口等部分構成。數據庫服務器其他部分通過TCP/IP協議連接構成一個有機的整體。
在這種方式中,既可以通過OpenBASE客戶端工具OpenTools,也可以通過第三方開發工具如PB,VB,Delphi等,還可以用Java來構造應用程序。OpenBASE 數據庫服務器包括OpenBASE連接監控器Multiend,各種客戶端程序并不直接訪問數據庫,而是通過Multiend訪問,有效的減輕了數據庫的工作負荷,提高了系統的吞吐率。
Web瀏覽器/Web應用服務器/數據庫服務器
上圖顯示了OpenBASE的三層體系結構。這是一種典型的"瘦客戶機模式",客戶端幾乎不需要專門設計的軟件,極大地降低了開發和維護的費用,并使對信息的訪問不受地理位置的限制,企業的管理人員可以在網絡的任何地方,使用任何能夠運行瀏覽器的計算機,就能獲得存儲在服務器上的信息。
OpenBASE Web應用服務器作為系統的中間層提供了Web服務器、數據庫事務監控服務器、媒體服務器以及用于實現應用邏輯的THTML擴展語言和Java Servlets運行環境。OpenBASE Web應用服務器使用分布式的數據庫訪問代理訪問后端的數據庫服務器,并通過事務管理器對數據庫事務進行統一的調度和管理,為應用系統提供了一種擴充的HTML語言實現應用邏輯。Java Servlet運行環境全面支持Java Servlet的應用開發,允許用戶通過HTTP直接調用Java Servlet。
OpenBASE Web應用服務器采用多線索體系結構,支持HTTP 1.1標準,采用先進的動態頁面緩沖技術,能夠以很小的系統開銷獲得較高的服務性能。OpenBASE Web應用服務器采用SSL與身份驗證相結合的方式來保證數據通訊過程的安全性和用戶訪問的安全性,使用擴展ACL實現訪問控制,使控制邏輯與控制對象分離,達到應用程序內部的控制粒度。媒體服務器為用戶提供了一個高度可伸縮性和可擴展性的多媒體服務的開發和應用環境。OpenBASE Web應用服務器還可以作為綜合服務管理平臺,對系統中的各種服務進行管理,并使用戶能夠根據需要對服務進行定制。
技術特點
支持多種計算模式的體系結構
OpenBASE具有多種體系結構,包括集中式體系結構、客戶/服務器體系結構、Web瀏覽器/Web應用服務器/數據庫服務器三層體系結構、遍在計算體系結構等。
7天24小時的高可用性
OpenBASE具有完善的備份恢復機制和良好的穩定性,已成功進入了企業核心業務領域,具備7天24小時不停機工作的高可用性。
支持大規模并發應用
OpenBASE具有良好的并發控制機制,提供五級孤立性級別、多種封鎖方式、多種封鎖粒度、多種封鎖類型,基于有限有向圖的即時死鎖監測方法,并通過計算超時來消除沖突,顯著提高了OpenBASE的并發性,支持大規模的并發應用。提供高效的連接監控器Multiend,有效的提高系統的并發訪問能力。
兼容SQL92(入門級)標準
通過第三方的嚴格測試,OpenBASE 百分之百兼容SQL92入門級標準,并部分兼容SQL92中間級標準。
實時性強,適合各種聯機事務處理(OLTP)
OpenBASE具有高效的數據存取和緩沖機制,提高了數據錄入和索引維護的效率,具有很強的實時性,適合各種高效的聯機事務處理。
高效的查詢處理
OpenBASE支持有限高度B+樹索引,支持嵌套循環、索引連接、排序歸并、哈希等高效的連接查詢算法,支持基于統計的查詢優化,支持邏輯優化,支持多字段復合索引查詢,支持直接從索引中讀取數據,可以高效的完成各種復雜的查詢。
可靠的數據完整性保證
OpenBASE提供多種完整性控制手段,具有主關鍵字約束、外關鍵字約束及多種級聯操作、性約束、非空值約束、CHECK約束、標識字段約束,支持數據庫觸發器,這些手段可以有效的保證數據的完整性。
支持ODBC和JDBC標準
OpenBASE支持微軟的ODBC標準和Sun公司的JDBC標準,具有良好的互連性。
多種應用編程接口
OpenBASE提供了五種不同的數據庫應用編程接口,即模塊式SQL、嵌入式SQL、可編程存儲過程、調用級接口、ODBC接口、JDBC接口。用戶可以根據不同的需要選擇合適的接口,可以大大提高應用開發的效率。
先進的WEB數據庫方案
OpenBASE具有自己的Web應用服務器,提供擴展的HTML語言--THTML、Java Servlet運行環境、EJB運行環境,提供高效的媒體服務器,具有完整的安全策略。
通用性強
OpenBASE支持Solaris、Linux、AIX、IRIX、Solaris/X86、SCO UNIX、Windows95/98/NT等20多種不同的操作系統平臺,具有廣泛的通用性。
產品概述
分析國內市場流行的數據庫系統軟件,不難發現,國內用戶在選擇數據庫系統軟件時往往出現兩個極端:一是各類微機上使用的單機版數據庫系統,比如XBASE,ACCESS等,這類軟件只能滿足小型或微型的應用,無法滿足Client/Server計算環境的需要;另一類是功能強大,規模龐大的國外數據庫系統,如Oracle、Sybase等,用戶化費巨資購買這種軟件之后,發現只能用上其中很少一部分功能,這勢必造成浪費。如果說以前企業由于種種原因對這種浪費還不以為然的話,那么隨著國家"抓大放小""企業轉制"政策的實施,當企業的利益與經營者的利益捆在一起時,成本就會成為優先考慮的因素,在選擇用于企業信息化的軟件時會更加注重軟件的性能價格比。這時,以上兩類數據庫系統就不能滿足企業的要求,而功能完善,價格合理,能滿足應用要求的數據庫系統將成為需求的熱點。東大阿爾派順應市場的需求,于1996年11月正式發布了基于客戶/服務器體系結構的多媒體關系數據庫管理系統OpenBASE 。系統設計之初,就把OpenBASE 定位在:
1)、自主版權的產品化數據庫,以廣泛的應用為目標;
2)、開放的數據庫,以減少與通用大型數據庫的差異為設計原則;
3)、好的性能價格比的數據庫,以滿足應用所必需的功能和用戶可接受的性能價格比為開發策略。
OpenBASE的研究與開發從1989年開始著手準備,組織人力,并進行了廣泛的調研;1990年開發了一個初級版本:"SUN工作站網絡數據存取系統",該系統于1990年12月27日通過冶金工業部科學技術司組織的技術鑒定,該產品打入日本軟件市場,出售了上千套,并被日本公司作為產品軟件包在日本出售,取得了良好的經濟效益,該系統初定名為Easy Call,不久更名為OpenBASE 1.0 ;1991年開始加入多媒體功能,增加了索引、字典等,并開始在C語言一級嵌入到應用程序中使用:1992年對底層管理進行了重寫,加快了存取速度,并完成了SUN和PC機之間的通用平臺(OpenBASE 2.0);1993年系統已基本鞏固,并開始在各種應用軟件中使用,同時開發出各種應用平臺,獲得成功;1995年開始實施獨立的數據庫管理系統產品的開發計劃,開展國際合作,對系統進行了進一步的優化。1996年11月18日東大阿爾派以獨立產品形態正式推出OpenBASE 3.0,此舉標志著我國具有自主版權的數據庫系統軟件產品正式走向了市場,同時宣告國產數據庫系統軟件已經走出了艱難漫長的產品化歷程。1997年OpenBASE入選國家863計劃重大目標產品,得到863計劃的重點支持。1998年東大阿爾派成功推出OpenBASE4.0。1998年7月份國家863/CIMS主題辦主持在北京對OpenBASE4.0進行了為期兩天的評測,OpenBASE各項指標都以明顯的優勢通過評測,并終入選863/CIMS數據庫管理系統產品開發項目第二期,同時創造了國產數據庫的又一項紀錄,SQL92的符合率達到。1998年4月,成功開發OpenBASE Windows版本。1999年6月開發出運行在紅旗LINUX上的的國產數據庫系統。1999年11月開發出運行于64位操作系統(Cosix64、Tru64)平臺的OpenBASE4.0。1999年,研究與開發嵌入式與移動式數據庫管理系統OpenBASE Mini,并于2000年6月,推出OpenBASE Mini 1.0。
OpenBASE是一種具有多層體系結構的關系數據庫管理系統(其系統參數見表),可以運行在通過TCP/IP連接起來的各種UNIX、Windows 以及DOS組成的網絡環境中,支持擴展ER模型的數據定義語言,百分之百兼容SQL92標準,標準化程度高;支持多種主流操作系統,可移植性強;支持SQL模塊和可編程存儲過程,支持基于統計的查詢優化和索引機制,系統性能高;支持多媒體BLOB字段的存取;支持ODBC和JDBC標準,互連性好;事務管理基于五級封鎖策略,提供五級孤立性級別,能夠保證事務的ACID特性;支持數據庫、表、視圖、字段、和SQL模塊等各種級別的安全控制,支持引用完整性的自動維護;提供完備的備份恢復機制,保證數據庫的可靠性;提供靈活的程序設計接口、數據庫管理實用程序和應用程序開發工具,易用性高;提供了安全、可靠、高效的Web數據庫應用解決方案,可以開發各種交互式的、事務密集型的Internet/Intranet數據庫應用系統。
系統參數表
OpenBASE系統性能穩定,功能完善,可以滿足各種聯機事務數據管理的需求,適合于開發各類MIS、OA、HIS、GIS、Internet/Intranet、ERP等各種應用系統,可用于各類企業、事業單位、政府機關以及開發部門,尤其適合于中國的廣大用戶,在國內有很廣闊的應用前景。
OpenBASE從1992年開始應用,初以嵌入到應用系統中的方式使用,開發出了工程圖紙自動處理、設計與管理系統SEAS、綜合文檔管理中心SEAS2000、多媒體辦公自動化系統MOAS、計算機房地產交易信息系統CARIS、計算機輔助電信綜合管理系統CATIS、多媒體點播系統OpenVideo、基于地理信息的設施、設備管理系統Universal FM/GIS、網眼防火墻NetEye等二十多個實用性很強的應用軟件產品,建立了許多應用軟件系統,如沈陽醫大二院醫院管理系統、上海靜安小學多媒體教學系統(孺子牛)、延吉、沈陽房產權籍管理信息系統CREPS、重慶太極集團企業營銷內部網、蕭山市公共多媒體網絡增值服務系統、威海有線電視多媒體信息服務系統、東北育才多媒體點播系統、盤錦市中學多媒體教學系統等。目前已經在全國100多個城市推廣,有幾百個用戶使用該數據庫管理系統,已有上千套系統,數千個結點在運行,累計創造產值一億多元。