許大衛(wèi),吳 舜,孟 德,鄭曉琳
(國(guó)網(wǎng)冀北電力有限公司信息通信分公司 信息通信運(yùn)檢中心,北京 100053)
SG-APS應(yīng)用服務(wù)器中間件的設(shè)計(jì)與實(shí)現(xiàn)
許大衛(wèi),吳 舜,孟 德,鄭曉琳
(國(guó)網(wǎng)冀北電力有限公司信息通信分公司 信息通信運(yùn)檢中心,北京 100053)
應(yīng)用服務(wù)器中間件在電力信息化系統(tǒng)中占有舉足輕重的地位,研發(fā)具有自主知識(shí)產(chǎn)權(quán)的應(yīng)用服務(wù)器是實(shí)現(xiàn)電力系統(tǒng)信息安全戰(zhàn)略的關(guān)鍵。SG-APS應(yīng)用服務(wù)器中間件項(xiàng)目主要基于開(kāi)源技術(shù)研發(fā)中間件軟件,構(gòu)建公司基礎(chǔ)軟件平臺(tái),提升基礎(chǔ)軟件安全自主可控能力,擺脫廠商依賴。介紹了國(guó)家電網(wǎng)公司SG-APS應(yīng)用服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn),分析了該應(yīng)用服務(wù)器在電力信息系統(tǒng)環(huán)境下的應(yīng)用需求,描述了該應(yīng)用服務(wù)器的系統(tǒng)架構(gòu)、設(shè)計(jì)思想和關(guān)鍵技術(shù)。目前,SG-APS應(yīng)用服務(wù)器中間件1.0版本的開(kāi)發(fā)工作現(xiàn)已基本完成,并將在國(guó)家電網(wǎng)信息化系統(tǒng)中逐步替換國(guó)外產(chǎn)品。
中間件;應(yīng)用服務(wù)器;國(guó)家電網(wǎng);SG-APS
隨著我國(guó)電力行業(yè)信息化水平的不斷提升,電力信息化系統(tǒng)的應(yīng)用范圍越來(lái)越廣,復(fù)雜程度也越來(lái)越高。國(guó)家電網(wǎng)公司的大部分信息系統(tǒng)均采用J2EE標(biāo)準(zhǔn)[1],其中應(yīng)用服務(wù)器中間件作為J2EE標(biāo)準(zhǔn)的核心中間件,在電力信息化系統(tǒng)中占有舉足輕重的地位[2]。以往國(guó)家電網(wǎng)公司通常都是采購(gòu)國(guó)外商用應(yīng)用服務(wù)器中間件產(chǎn)品,如WebLogic等[3]。隨著電力信息化建設(shè)要求不斷提高,這種方式逐漸顯現(xiàn)出越來(lái)越多的弊端。
首先,電力行業(yè)是國(guó)民經(jīng)濟(jì)中具有舉足輕重地位的核心領(lǐng)域,長(zhǎng)期依賴國(guó)外產(chǎn)品無(wú)法保障“自主可控、安全可信”的國(guó)家信息安全戰(zhàn)略目標(biāo)。其次,隨著應(yīng)用部署節(jié)點(diǎn)的不斷增加,采購(gòu)與升級(jí)成本越來(lái)越高。第三,商用應(yīng)用服務(wù)器安裝與部署時(shí)對(duì)IT基礎(chǔ)條件要求相對(duì)較高、補(bǔ)丁升級(jí)流程較長(zhǎng)、售后服務(wù)響應(yīng)不及時(shí)。第四,商用應(yīng)用服務(wù)器雖然均基于J2EE標(biāo)準(zhǔn),但各自的配置、管理方式千差萬(wàn)別,每個(gè)系統(tǒng)都需要獨(dú)立采購(gòu),難以統(tǒng)一管理和維護(hù)[4]。
為了確保電力系統(tǒng)的信息安全,防范信息泄露,擺脫對(duì)國(guó)外廠商的依賴,掌握核心技術(shù),國(guó)家電網(wǎng)公司亟需研發(fā)適用于國(guó)內(nèi)電力信息化建設(shè)需求,擁有自主知識(shí)產(chǎn)權(quán)的應(yīng)用服務(wù)器中間件[5]。通過(guò)應(yīng)用服務(wù)器中間件的研發(fā),提高國(guó)家電網(wǎng)信息化運(yùn)維效率,減少運(yùn)維投入,降低運(yùn)維難度,配合應(yīng)用服務(wù)資源池的建設(shè),實(shí)現(xiàn)應(yīng)用按需分配和自主運(yùn)維。
文中介紹了國(guó)家電網(wǎng)公司研發(fā)的標(biāo)準(zhǔn)、安全、可控、高可用并具有豐富功能的SG-APS企業(yè)級(jí)應(yīng)用服務(wù)器,分析了該應(yīng)用服務(wù)器在電力信息系統(tǒng)環(huán)境下的需求,描述了該應(yīng)用服務(wù)器的系統(tǒng)架構(gòu)、設(shè)計(jì)和關(guān)鍵技術(shù)。
國(guó)家電網(wǎng)公司SG-APS應(yīng)用服務(wù)器中間件在定位上主要考慮兩個(gè)因素。
(1)應(yīng)用服務(wù)器中間件在國(guó)際上已經(jīng)形成了標(biāo)準(zhǔn)。國(guó)家電網(wǎng)多年來(lái)也在這些標(biāo)準(zhǔn)下建設(shè)了大量的信息系統(tǒng)。從延續(xù)性和兼容性上來(lái)說(shuō)都要求國(guó)家電網(wǎng)應(yīng)用服務(wù)器遵循國(guó)際標(biāo)準(zhǔn)。
(2)國(guó)家電網(wǎng)公司已將云計(jì)算作為未來(lái)信息化發(fā)展的方向。從云平臺(tái)的角度來(lái)看,能夠承載服務(wù)化的云應(yīng)用是對(duì)應(yīng)用服務(wù)器的根本要求。這就要求應(yīng)用服務(wù)器在國(guó)家電網(wǎng)云平臺(tái)環(huán)境下能夠按照云平臺(tái)的要求實(shí)現(xiàn)應(yīng)用支持。此外,應(yīng)用服務(wù)器研發(fā)還必須考慮在當(dāng)前國(guó)家電網(wǎng)的云平臺(tái)環(huán)境尚未完全建成的前提下,如何在開(kāi)發(fā)中與云平臺(tái)的建設(shè)保持同步,甚至適當(dāng)超前于云平臺(tái)建設(shè)的要求。
1.1 功能需求
應(yīng)用服務(wù)器需要把不同業(yè)務(wù)應(yīng)用作為構(gòu)件整合到一個(gè)協(xié)同工作的環(huán)境里,并為應(yīng)用提供名字、事務(wù)、安全、消息、數(shù)據(jù)訪問(wèn)等服務(wù),包括:
(1)標(biāo)準(zhǔn)和規(guī)范。包括Java EE 5的相關(guān)13種技術(shù)規(guī)范[6]、主流的Web服務(wù)標(biāo)準(zhǔn)和互操作標(biāo)準(zhǔn)。
(2)容器和組件。包括Web容器、EJB容器、RMI服務(wù)容器、Web服務(wù)容器、JCA服務(wù)、數(shù)據(jù)庫(kù)連接池、事務(wù)控制組件、緩存組件、高級(jí)消息傳輸、Rest服務(wù)[7-14]等,并支持各種成熟開(kāi)發(fā)框架。
(3)集群和動(dòng)態(tài)擴(kuò)展。實(shí)現(xiàn)集群部署的動(dòng)態(tài)管理,支持動(dòng)態(tài)加載新業(yè)務(wù);提供跨多種平臺(tái)服務(wù)器的集群部署配置以及故障切換功能,從而快速適應(yīng)企業(yè)現(xiàn)有軟硬件環(huán)境并可確保關(guān)鍵應(yīng)用和服務(wù)高效可用。
(4)管理配置。具備標(biāo)準(zhǔn)的B/S模式管理控制臺(tái),可對(duì)遠(yuǎn)程的應(yīng)用服務(wù)器環(huán)境進(jìn)行應(yīng)用部署、管理維護(hù)和監(jiān)控;支持對(duì)系統(tǒng)運(yùn)行狀態(tài)、Web應(yīng)用、數(shù)據(jù)庫(kù)連接池、事務(wù)服務(wù)、JMS服務(wù)及其他服務(wù)端組件與服務(wù)進(jìn)行動(dòng)態(tài)監(jiān)控與管理;提供應(yīng)用移植工具,實(shí)現(xiàn)應(yīng)用程序包從其他應(yīng)用服務(wù)器到本應(yīng)用服務(wù)器環(huán)境的移植。
1.2 非功能需求
(1)安全。提供基于容器的安全策略,限制對(duì)應(yīng)用的訪問(wèn),保障企業(yè)數(shù)據(jù)的安全,防止惡意攻擊。通過(guò)使用應(yīng)用服務(wù)器提供的監(jiān)控管理工具對(duì)服務(wù)的運(yùn)行情況進(jìn)行實(shí)時(shí)跟蹤監(jiān)控,并提供方便的日志管理功能以便用戶進(jìn)行審計(jì)。支持JAAS協(xié)議,支持用戶采用第三方的安全策略集成企業(yè)級(jí)應(yīng)用,以增強(qiáng)應(yīng)用安全性。
(2)可靠性。應(yīng)用服務(wù)器應(yīng)對(duì)應(yīng)用提供自我恢復(fù)的能力管控,即知道在應(yīng)用是否有問(wèn)題,以及支撐的Java容器是否出現(xiàn)故障時(shí),對(duì)出現(xiàn)問(wèn)題的應(yīng)用進(jìn)程、組件提供分析、恢復(fù)、重啟的能力。如出現(xiàn)死鎖或者其他原因崩潰的操作系統(tǒng)虛擬機(jī)(節(jié)點(diǎn)),應(yīng)用服務(wù)器可以根據(jù)不同的定制策略,選擇性重新啟動(dòng)恢復(fù)。
(3)性能。性能指標(biāo)為:URL訪問(wèn)應(yīng)答時(shí)間<5 ms,瞬間最大并發(fā)訪問(wèn)請(qǐng)求>2 000,大于1k文件JSP文件編譯時(shí)間>10 ms,大于1k文件class文件加載時(shí)間>10 ms,URI路徑解析時(shí)間<0.1 ms,同時(shí)需要:
·滿足系統(tǒng)7×24小時(shí)業(yè)務(wù)無(wú)間斷,穩(wěn)定可靠運(yùn)行。
·日常平均CPU占用率<40%,忙時(shí)<75%,內(nèi)存占用率<50%,最大并發(fā)時(shí)<75%。
·系統(tǒng)應(yīng)滿足易理解、易分析、易配置、易修改、易測(cè)試的要求。
·系統(tǒng)從用戶體驗(yàn)維度出發(fā),滿足頁(yè)面布局合理,通用操作規(guī)范,出錯(cuò)處理、反饋與提示人性化等要求。
·具備開(kāi)發(fā)架構(gòu)和動(dòng)態(tài)擴(kuò)展能力。
此外,應(yīng)用服務(wù)器還要綜合考慮數(shù)據(jù)庫(kù)、操作系統(tǒng)、硬件環(huán)境、安全防護(hù)和節(jié)點(diǎn)冗余等問(wèn)題。
2.1 系統(tǒng)架構(gòu)
應(yīng)用服務(wù)器中間件要實(shí)現(xiàn)Java EE 5規(guī)范規(guī)定的各種標(biāo)準(zhǔn)組件和標(biāo)準(zhǔn)服務(wù),包括Web容器、EJB容器、RMI服務(wù)容器、Web服務(wù)平臺(tái)、JCA服務(wù)、數(shù)據(jù)庫(kù)連接池、事物控制組件等,并支持各種成熟開(kāi)發(fā)框架,如圖1所示。SG-APS應(yīng)用服務(wù)器中間件主要實(shí)現(xiàn)了以下核心組件和服務(wù)。
1)安全。
基于Java EE標(biāo)準(zhǔn)的安全服務(wù)[15],是動(dòng)態(tài)可擴(kuò)展的安全體系結(jié)構(gòu),包括基于JMAC的驗(yàn)證和基于JACC(Java Authorization Contract for Containers,Java容器授權(quán)合同)的授權(quán),使得服務(wù)器能夠接入第三方認(rèn)證、授權(quán)模塊。
消息安全性使服務(wù)器可以在消息層執(zhí)行Web服務(wù)調(diào)用和響應(yīng)的端對(duì)端驗(yàn)證。消息安全性提供者提供了請(qǐng)求和響應(yīng)消息所需的驗(yàn)證類型等信息。支持的驗(yàn)證類型包括發(fā)件人驗(yàn)證(用戶名和密碼驗(yàn)證)和內(nèi)容驗(yàn)證(XML數(shù)字簽名)。
2)事務(wù)。
事務(wù)按照J(rèn)TA1.0.1B規(guī)范實(shí)現(xiàn),并且支持如下功能:
(1)本地事務(wù)優(yōu)化。對(duì)于使用同一個(gè)資源管理器的操作,事務(wù)管理器使用本地事務(wù)機(jī)制,本地事務(wù)只存在于一個(gè)事務(wù)過(guò)程中,采用一階段提交;只有涉及到多個(gè)資源管理器的操作才使用全局事務(wù),全局事務(wù)可參與多個(gè)事務(wù)過(guò)程。
(2)事務(wù)恢復(fù)功能。在服務(wù)器啟動(dòng)時(shí)從故障中恢復(fù)并完成被擱置的事務(wù)。
(3)事務(wù)超時(shí)控制。自動(dòng)回滾超時(shí)的事務(wù)。
圖1 系統(tǒng)架構(gòu)
3)日志。
基于Java Logging API(JSR-047)實(shí)現(xiàn)日志管理。
4)Web容器。
Web容器提供了Web應(yīng)用的運(yùn)行時(shí)環(huán)境,包括生命周期管理、安全、請(qǐng)求轉(zhuǎn)發(fā)等。同時(shí)Web容器為Web應(yīng)用提供訪問(wèn)其他API的能力,如命名服務(wù)。
5)EJB容器。
EJB容器實(shí)現(xiàn)了EJB3.0的規(guī)范,提供了EJB運(yùn)行的環(huán)境。它負(fù)責(zé)EJB Bean實(shí)例的生命周期管理,Bean實(shí)例狀態(tài)管理,并發(fā)(線程)管理,事務(wù)服務(wù),安全服務(wù),命名服務(wù),資源(數(shù)據(jù)源等)管理,使得EJB客戶端程序能進(jìn)行遠(yuǎn)程調(diào)用或本地調(diào)用。EJB容器支持EJB3.0規(guī)范和JPA,提供定時(shí)服務(wù)、依賴注入、攔截器、基于EJB的Web Service等功能。
6)Web Service容器。
Web服務(wù)定義了應(yīng)用程序如何在Web上實(shí)現(xiàn)互操作性,它使用XML(可擴(kuò)展標(biāo)記語(yǔ)言)表示數(shù)據(jù)的基本格式,使用DTD(Document Type Definition)或XSD(XML Schema)定義數(shù)據(jù)類型及擴(kuò)展這套數(shù)據(jù)類型,通過(guò)XML文件(如Web服務(wù)定義語(yǔ)言:WSDL)描述Web服務(wù)應(yīng)用程序及其函數(shù)、參數(shù)和返回值,并通過(guò)基于XML的協(xié)議(如簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議:SOAP)向客戶機(jī)提供標(biāo)準(zhǔn)的RPC方法來(lái)調(diào)用該Web服務(wù)應(yīng)用程序。
7)資源管理器。
資源管理器負(fù)責(zé)管理SG-APS應(yīng)用服務(wù)器中間件的各種資源,主要包括:
(1)JDBC數(shù)據(jù)源。主要實(shí)體為JDBC資源和JDBC連接池。JDBC資源為應(yīng)用程序提供了連接數(shù)據(jù)庫(kù)的方法。要?jiǎng)?chuàng)建JDBC資源,需要指定與其關(guān)聯(lián)的連接池。多個(gè)JDBC資源可以指定一個(gè)連接池。JDBC連接池維護(hù)特定數(shù)據(jù)庫(kù)的一組可重復(fù)使用的連接。應(yīng)用程序請(qǐng)求連接時(shí)可以從池中獲取一個(gè)連接。應(yīng)用程序關(guān)閉連接時(shí),連接將返回到池中。
(2)JMS消息服務(wù)資源。有四個(gè)組成部分:JMS服務(wù)提供者、消息管理對(duì)象、消息的生產(chǎn)者、消費(fèi)者和消息本身。
(3)JavaMail資源。通過(guò)調(diào)用JavaMail API實(shí)現(xiàn)從Java應(yīng)用程序訪問(wèn)網(wǎng)絡(luò)或Internet上支持Internet消息訪問(wèn)協(xié)議(Internet Message Access Protocol,IMAP)和簡(jiǎn)單郵件傳輸協(xié)議(Simple Mail Transfer Protocol,SMTP)的郵件服務(wù)器。它本身不提供郵件服務(wù)器功能,必須有權(quán)訪問(wèn)郵件服務(wù)器,才能使用JavaMail。
(4)Connector連接器資源。通過(guò)JCA(Java Connector Architecture)提供了一個(gè)應(yīng)用服務(wù)器和企業(yè)信息系統(tǒng)(EIS)連接的標(biāo)準(zhǔn)Java解決方案,以及把這些系統(tǒng)整合起來(lái)的方法。JCA簡(jiǎn)化了異構(gòu)系統(tǒng)的集成,用戶只要構(gòu)造一個(gè)基于JCA規(guī)范的連接器應(yīng)用,并將該連接器應(yīng)用部署到J2EE服務(wù)器上,這樣不用編寫(xiě)任何代碼就可以實(shí)現(xiàn)EIS與J2EE應(yīng)用服務(wù)器的集成。
2.2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
為縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)風(fēng)險(xiǎn),SG-APS應(yīng)用服務(wù)器中間件參考了開(kāi)源應(yīng)用服務(wù)器軟件JBoss Application Server。
JBoss Application Server[16]是開(kāi)源社區(qū)著名的應(yīng)用服務(wù)器項(xiàng)目,遵循LGPL 2.1許可協(xié)議。JBoss Application Server(現(xiàn)已更名為WildFly)以其架構(gòu)清晰、高效、穩(wěn)定、易用等優(yōu)勢(shì),先后為眾多大型應(yīng)用系統(tǒng)所采用。
SG-APS應(yīng)用服務(wù)器中間件沿用了JBoss Application Server的核心容器和核心服務(wù),重點(diǎn)對(duì)其中的服務(wù)器參數(shù)配置和服務(wù)器運(yùn)行監(jiān)控兩個(gè)客戶端工具進(jìn)行了漢化、消缺、界面美化和易用性改造,新增了集群日志、自動(dòng)運(yùn)維工具接口和安裝工具三個(gè)組件。
(1)服務(wù)器參數(shù)配置客戶端。
服務(wù)器參數(shù)配置客戶端的核心類主要有3個(gè),其中Constants接口以字符串常量的形式定義了請(qǐng)求方法(Request Methods)、協(xié)議(Protocols)、標(biāo)題頭(Headers)、類型(Content Types)、字符集(Charsets)、狀態(tài)碼(Status Codes)。
ConsoleMode是一個(gè)枚舉類,用于定義展現(xiàn)不同的管理控制臺(tái)的操作模式,如CONSOLE(展示正常的控制臺(tái));SLAVE_HC(如果企圖訪問(wèn)控制臺(tái),提示錯(cuò)誤主機(jī)是從屬的);ADMIN_ONLY(試圖訪問(wèn)控制臺(tái),顯示服務(wù)器/主機(jī)處于管理模式錯(cuò)誤);NO_CONSOLE(試圖訪問(wèn)控制臺(tái),顯示404錯(cuò)誤碼),同時(shí)生成對(duì)應(yīng)的資源頁(yè)面文件句柄。
資源句柄類ResourceHandler實(shí)現(xiàn)了ManagementHttpHandler接口。它通過(guò)調(diào)用ModuleIdentifier()方法獲得Modules(是指JBoos7.1的所有功能模塊)的名稱和ID,提供給界面進(jìn)行展示和管理。
用戶管理員登錄進(jìn)入服務(wù)器參數(shù)配置界面如圖2所示。
圖2 服務(wù)器參數(shù)配置界面
(2)服務(wù)器運(yùn)行監(jiān)控客戶端。
服務(wù)器運(yùn)行監(jiān)控客戶端運(yùn)行過(guò)程中同樣通過(guò)前述DomainApiHandler接口讀取Constants、ConsoleMode屬性獲得域管理模式、操作模式和請(qǐng)求參數(shù)并構(gòu)造監(jiān)控頁(yè)面,核心方法主要有:
getOperation(String realOperation)//獲取操作模式
processRequest(final HttpExchange http)//處理封裝自http客戶端的操作請(qǐng)求
start(HttpServer httpServer,SecurityRealm securityRealm)//啟動(dòng)指定服務(wù)器的域服務(wù)
stop(HttpServer httpServer)//停止指定服務(wù)器
服務(wù)器運(yùn)行監(jiān)控界面如圖3所示。
圖3 服務(wù)器運(yùn)行監(jiān)控界面
(3)集群日志。
集群日志模塊是SG-APS應(yīng)用服務(wù)器中間件新增的模塊,實(shí)現(xiàn)了對(duì)運(yùn)行于云平臺(tái)之上的SG-APS應(yīng)用服務(wù)器中間件集群的日志進(jìn)行統(tǒng)一管理,并由獨(dú)立運(yùn)行的日志服務(wù)器進(jìn)行日志收集和分析的功能。集群日志模塊由客戶端和服務(wù)端組成,它們和應(yīng)用服務(wù)器集群之間的關(guān)系如圖4所示。
圖4 集群日志
日志服務(wù)客戶端與SG-APS應(yīng)用服務(wù)器主服務(wù)運(yùn)行于同一進(jìn)程空間,通過(guò)預(yù)設(shè)的日志發(fā)送策略向日志服務(wù)器發(fā)送日志,主要方法包括:
客戶端:
getConfig(String tag)//獲取給定標(biāo)識(shí)下的配置,包括日志文件路徑、讀取策略等
readLogFile(File logFile)//讀取配置文件
send(Url url, File file)//發(fā)送指定日志文件到指定服務(wù)器地址
服務(wù)端:
saveLog(File logFile)//保存接收到的日志文件
getConfig(String tag)//獲取給定標(biāo)識(shí)的配置,如日志文件存放路徑、處理策略等
(4)自動(dòng)運(yùn)維接口。
以接口的形式提供獲取SG-APS中JVM和內(nèi)核服務(wù)信息的方法,JVM信息包括:堆內(nèi)存、非堆內(nèi)存、垃圾收集、線程、類加載等信息;內(nèi)核服務(wù)信息包括Web線程池、EJB線程、事務(wù)處理情況、http請(qǐng)求應(yīng)答情況等信息。核心方法包括:
getJVMInfo()//獲取Java虛擬機(jī)信息
getHeapSpace()//獲取堆內(nèi)存空間大小
getJVMGCInfo()//獲取垃圾回收信息
getJVMThreadInfo()//獲取Java虛擬機(jī)當(dāng)前線程信息
getDeployInfo()//獲取部署包信息
getEJBThreadPoolInfo()//獲取EJB線程池信息
getSourceConnectPoolInfo()//獲取數(shù)據(jù)庫(kù)連接池信息
(5)安裝工具。
安裝工具用于在Windows系統(tǒng)下安裝SG-APS,界面如圖5所示。
圖5 安裝工具
2.3 關(guān)鍵技術(shù)
(1)HTTP請(qǐng)求分發(fā)處理。
HTTP請(qǐng)求分發(fā)處理流程如圖6所示。
圖6 HTTP請(qǐng)求處理流程
(2)JSP編譯。
JSP文件首先被JSP引擎(JSP Engine)轉(zhuǎn)換成為一個(gè)Servlet。如果在轉(zhuǎn)換過(guò)程中發(fā)現(xiàn)JSP文件有語(yǔ)法錯(cuò)誤則過(guò)程中斷,并向客戶端發(fā)出出錯(cuò)信息;如果轉(zhuǎn)換成功,生成的Servlet代碼被編譯為class文件并隨即被JSP引擎加載到內(nèi)存中。如果JSP文件被修改了,應(yīng)用服務(wù)器將自動(dòng)地對(duì)文件重新轉(zhuǎn)換并編譯,并用新產(chǎn)生的class字節(jié)碼取代內(nèi)存中的Servlet。
(3)線程池。
線程池是一種多線程處理形式。應(yīng)用服務(wù)器維護(hù)一組可重復(fù)使用的線程。在任務(wù)處理過(guò)程中,應(yīng)用服務(wù)器首先將任務(wù)添加到隊(duì)列,然后在線程池中選擇一個(gè)線程啟動(dòng)任務(wù)。如果線程池中所有線程都未結(jié)束,新進(jìn)任務(wù)將被掛起以等待其他任務(wù)結(jié)束。
(4)對(duì)象序列化。
對(duì)象序列化反序列化是將對(duì)象實(shí)例的狀態(tài)存儲(chǔ)到存儲(chǔ)媒體的過(guò)程。在隨后對(duì)對(duì)象進(jìn)行反序列化時(shí),將創(chuàng)建出與原對(duì)象完全相同的副本。
中國(guó)已將信息安全上升為國(guó)家戰(zhàn)略。為確保作為國(guó)民經(jīng)濟(jì)要害部門的電力信息系統(tǒng)的“自主可控、安全可信”,在充分了解和掌握國(guó)際標(biāo)準(zhǔn)并參考開(kāi)源應(yīng)用服務(wù)器軟件的基礎(chǔ)上,國(guó)家電網(wǎng)公司開(kāi)發(fā)了適用于電力信息化的企業(yè)級(jí)應(yīng)用服務(wù)器SG-APS。SG-APS應(yīng)用服務(wù)器中間件共包括一級(jí)模塊11個(gè),二級(jí)模塊50個(gè),三級(jí)模塊1 400余個(gè),涵蓋了服務(wù)容器、J2EE核心組件、線程池、數(shù)據(jù)庫(kù)連接池、集群管理、安全管理、日志管理、事務(wù)服務(wù)、監(jiān)視服務(wù)、快照服務(wù)和部署服務(wù)等核心服務(wù)。
SG-APS應(yīng)用服務(wù)器中間件1.0版本的開(kāi)發(fā)工作現(xiàn)已基本完成,正在進(jìn)行緊密測(cè)試,后期將在國(guó)家電網(wǎng)信息化系統(tǒng)中逐步替換國(guó)外產(chǎn)品。文中介紹了國(guó)家電網(wǎng)應(yīng)用服務(wù)器的設(shè)計(jì)與開(kāi)發(fā),應(yīng)用推廣效果及后續(xù)改進(jìn)還有待進(jìn)一步的研究和探討。
[1] 劉振亞,張啟平.國(guó)家電網(wǎng)發(fā)展模式研究[J].中國(guó)電機(jī)工程學(xué)報(bào),2013,33(7):1-10.
[2] 孫丕石,曹占峰,王亞玲,等.國(guó)家電網(wǎng)公司數(shù)據(jù)交換平臺(tái)研發(fā)與應(yīng)用[J].電網(wǎng)技術(shù),2008,32(22):62-67.
[3] 韓小濤,尹項(xiàng)根,張 哲,等.嵌入式Web服務(wù)器技術(shù)及其在電力系統(tǒng)中的應(yīng)用綜述[J].電網(wǎng)技術(shù),2003,27(5):58-62.
[4] 趙子巖,張大偉.國(guó)家電網(wǎng)公司“十二五”電力通信業(yè)務(wù)需求分析[J].電力系統(tǒng)通信,2011,32(5):56-60.
[5] 2015年信息化建設(shè)實(shí)施意見(jiàn)[EB/OL].2015.http://www.sgcc.com.cn/kjcx/xxhgzdt/322390.shtml.
[6] Kassem N.J2EE權(quán)威指南[M].北京:中國(guó)電力出版社,2002.
[7] Implementing enterprise web services[EB/OL].2013.https: //jcp.org/en/jsr/detail?id=109.
[8] Enterprise JavaBeansTM 3.0[EB/OL].2007.https://jcp.org/en/jsr/detail?id=220.
[9] Web services metadata for the JavaTM platform[EB/OL].2013.https://jcp.org/en/jsr/detail?id=181.
[10] XML parsing specification[EB/OL].2000.https://jcp.org/en/jsr/detail?id=5.
[11] JDBCTM 3.0 specification[EB/OL].2002.https://jcp.org/en/jsr/detail?id=54.
[12] JavaTM Message Service (JMS) API[EB/OL].2003.https://jcp.org/en/jsr/detail?id=914.
[13] JavaMailTM specification[EB/OL].2000.https://jcp.org/en/jsr/detail?id=904.
[14] J2EETM connector architecture[EB/OL].2001.https://jcp.org/en/jsr/detail?id=16.
[15] Steel C,Nagappan R.Core security patterns:best practices and strategies for J2EE,web services,and identity management[M].[s.l.]:Pearson Education,2006.
Design and Implementation of SG-APS Application Server Middleware
XU Da-wei,WU Shun,MENG De,ZHENG Xiao-lin
(Information and Communication Center,State Grid Jibei Information & Telecommunication Company,Beijing 100053,China)
Application server middleware possesses an extremely important position in electric power information systems.Developing application server with independent intellectual property is essential to the information security strategy of the electric power systems.The project of SG-APS application server middleware mainly bases on open source technology research and development middleware software,and builds the company’s basic software platform to enhance the ability to independently control the basic software security capabilities,getting rid of manufacturers rely on.It introduces the SG-APS application server middleware developed by State Grid Corporation,and analyzes its application requirements under the environment of the electric power information systems,and describes its architecture,design,implementation and key technologies.At present,the development of the 1.0 version of SG-APS application server middleware has been basically completed,and it will gradually replace foreign products in the national grid information system.
middleware;application server;State Grid;SG-APS
2015-11-06
2016-03-04
時(shí)間:2016-09-19
中央高?;究蒲袠I(yè)務(wù)費(fèi)(JB150407);數(shù)據(jù)(災(zāi)備)中心-中間件軟件-一期項(xiàng)目(7199001402MO)
許大衛(wèi)(1984-),男,工程師,從事信息技術(shù)及管理的工作。
http://www.cnki.net/kcms/detail/61.1450.TP.20160919.0839.002.html
TP39
A
1673-629X(2016)10-0127-06
10.3969/j.issn.1673-629X.2016.10.028