馮云姣 吳斌 曾輝 盧嘉川 鄭丹晨 韓飛 張婷
【摘 要】隨著企業信息化建設的不斷發展,應用系統的數量和電子業務流程的任務數量呈現大幅增長,為了有效提高工作效率,設計了一個基于ActiveMQ的任務集成管理系統,實現了應用系統的任務集成和高效互操作。
【關鍵詞】ActiveMQ;JSON;任務集成
中圖分類號: TP311.52 文獻標識碼: A 文章編號: 2095-2457(2018)05-0039-003
【Abstract】With the development of enterprise informationization,the number of application system and electronic business process task showed a substantial increase,in order to improve work efficiency effectively,it designs a task integration management system based on ActiveMQ,which implements the integration of application system and efficient interoperable.
【Key words】ActiveMQ;JSON;Task integration
0 引言
隨著企業信息化建設的不斷發展,信息技術與企業業務應用不斷融合,越來越多的企業業務實現了網上處理,但是由于各業務應用系統之間是相對獨立和封閉運行的,用戶需要頻繁的登錄不同的應用系統,才能查看和處理相應的業務流程。應用系統數量越多,用戶的操作越繁瑣,業務工作的處理效率越低。為了解決這個問題,本文利用ActiveMQ設計了一個任務集成管理系統,實現了松耦合的多系統任務集成和任務管理。
1 JSON技術
JSON(Java Script Object Notation)是一種輕量級的數據傳輸格式,可以在多種語言之間進行數據傳輸。JSON易于閱讀和編碼,也便于解析和生成。因此本文在任務集成管理系統中采用JSON作為數據傳輸格式。JSON有對象式結構和數組式結構兩種,對象式結構和數組式結構可以組合成復雜的數據結構[1]。
2 ActiveMQ技術
ActiveMQ是由Apache組織開發的開源的企業級消息中間件,完整地實現了JMS1.1和J2EE1.4規范。ActiveMQ主要包含以下特點:(1)完全支持JMS1.1和J2EE1.4規范,支持持久化、XA消息、事務等;(2)支持多種語言和協議編寫客戶端;(3)支持 多種傳送協議等[2]。
ActiveMQ采用集中式的體系結構。消息傳遞系統依賴于消息服務器,客戶端之間傳遞消息由消息服務器進行處理。
2.1 消息傳遞模型
ActiveMQ支持JMS的兩種消息傳遞模型:點對點(Point-to-Point,P2P)模型和發布/訂閱 (Publish-Subscribe,Pub/Sub)模型[3]。
1)點對點模型
點對點模型是基于隊列的,消息的發送方發送消息到一個指定的隊列,消息的接收方從這個隊列中接收消息。點對點模型支持消息傳輸的異步執行。
在點對點模型中,消息隊列的發送方和接收方可以有多個,但一條消息只能被一個接收方接收,隊列會將消息保存在隊列中直至接收方成功接收消息并應答成功。
2)發布/訂閱模型
在發布/訂閱模型中,消息的發布者和訂閱者通過主題進行消息傳遞,發布者將消息發布到主題后,所有訂閱了該主題的訂閱者都可以收到該消息。發布/訂閱模型通過主題這個中介,實現了消息傳遞雙方的解耦合與異步傳輸。
本文的任務集成管理系統只有任務集成管理系統一個消息接收方,并需要每一條任務消息被成功接收和處理,因此點對點模型更適合本系統。
3 基于ActiveMQ的任務集成管理系統設計
任務集成管理系統采用B/S架構,系統間的任務集成方式采用主動推送的模式,用戶端登錄任務集成管理系統后,以“拉”的模式獲取到系統中的待處理任務。
3.1 系統體系結構
任務集成管理系統的體系結構如圖3所示,分為用戶表示層、系統功能層、系統集成和消息傳輸層、數據存儲層。
1)用戶表示層:用戶與系統間的交互界面,實現了所有應用系統任務消息的匯總和統一顯示。
2)系統功能層:系統業務功能的實現,包括任務集成、任務查詢和任務處理等功能模塊。任務集成模塊實現對下層傳輸的任務消息的異步接收和數據庫存儲;任務查詢模塊實現對數據庫存儲的各種類型和狀態的任務信息的多維度查詢。任務處理模塊實現向下層傳遞用戶信息完成身份認證,認證成功后跳轉至相應的應用系統任務處理界面,完成任務處理。
3)系統集成與消息傳輸層:系統集成和消息傳輸功能的實現,實現各系統與身份認證系統的集成,為系統功能層提供應用系統身份認證功能,實現用戶通過任務集成管理系統登錄到相關應用系統處理任務。消息傳輸模塊通過ActiveMQ實現將各應用系統任務消息傳送至上層任務集成模塊的功能,為上層提供可靠的消息傳輸。
4)數據存儲層:為系統功能層提供數據存儲與訪問功能。
3.2 業務處理流程
任務集成管理系統主要的交互對象有4類,分別為用戶、應用系統、任務系統及認證系統。用戶作為任務集成管理系統的主體,承擔任務的發起和處理操作。用戶登錄到任務系統,查詢用戶自己的任務庫,獲取任務列表,選中要處理的任務,經過認證系統認證用戶是否具有處理權限,然后登錄到對應的應用系統;在應用系統中處理完任務后,應用系統將經過序列化的任務處理信息通過ActiveMQ傳輸給任務系統;任務系統監聽到新任務信息到來,首先反序列化處理,解析出任務信息保護的內容,如果是新任務則加入到任務數據庫,如果是任務處理完成信息,則更新任務數據,標記任務完成。任務集成與處理流程如圖4所示。
4 基于ActiveMQ的任務集成管理系統的實現
本節主要介紹任務集成管理系統的關鍵業務模塊,即任務集成模塊和任務處理模塊的技術實現。
4.1 任務集成模塊實
1)任務數據格式
根據系統需求,任務數據需包含:任務標題、任務內容、發送人、發送時間、接收人、任務類型、任務狀態、來自系統、應用系統任務處理訪問地址等信息,其JSON結構如下所示。
[{"taskID": " ID ",
"taskTitle": "任務A",
"taskContent ": "請處理任務A相關內容",
"taskType ": "處理類",
"taskState ": "待處理",
"sender": "人員A ",
"sendTme": " yyyy-mm-dd:hh-mm-ss",
"receiver ": "人員B",
"urgency ": "緊急",
"applicationID ": "應用系統ID",
"applicationIndexUrl": "應用系統首頁地址",
"applicationTaskUrl": "應用系統任務處理訪問
址"},…]
“[ ]”包含的是一個JSON數組,“{ }”包含的是一個JSON對象,每個JSON對象裝載一條任務信息。所有應用系統與任務集成系統之間就采用這樣一種統一的JSON格式完成任務數據傳輸工作。
2)任務數據生成與解析
確定了統一的任務數據JSON格式后,業務應用系統與任務集成系統可以調用相應的接口對任務數據進行JSON封裝和解析。由于JSON對多種語言都有良好的支持,因此JSON的生成和解析功可以便捷實現。
3)任務數據發送與接收
任務數據的發送與接收通過ActiveMQ實現,其核心代碼片段如下。
發送:
public static void QueueProducerMain (){
ConnectionFactory conFactory = new //建立連接
ActiveMQConnectionFactory(user, pwd, url);
Connection con = conFactory.createConnection();
con.start();
Session se = con.createSession(true,auto_ACK);
//創建消息隊列
Destination queue = se.createQueue("TaskQueue");
//創建消息生產者
MessageProducer msgP = se.createProducer(dest);
TextMessage msg = se.createTextMessage(task);
msgP.send(msg); //發送消息
se.commit(); //提交消息
se.close();
}
接收:
public static void QueueAcceptMain(){
ConnectionFactory conFactory = new //建立連接
ActiveMQConnectionFactory(user, pwd, url);
Connection con = conFactory.createConnection();
con.start();
Session se = con.createSession(true,auto_ACK);
//創建消息隊列
Destination queue = se.createQueue("TaskQueue");
//創建消息消費者
MessageConsumer msgC= createConsumer(queue);
msgC.setMessageListener(new QueueAccept());
}
public void onMessage(Message message) {
TextMessage text = (TextMessage) message;
String taskJsonStr = text.getText();
}
4)任務數據庫存儲
當任務集成系統完成任務信息接收和數據解析后,系統將調用數據庫編程接口,實現任務集成系統數據庫的新增、修改、刪除等功能開發。
4.2 任務處理模塊實現
1)企業應用系統身份認證集成
企業的身份認證系統建立了統一的身份認證機制,各個應用系統(包括任務集成管理系統)根據相應認證與授權機制,改造各自的登錄模塊,實現用戶一次登錄、全網訪問的功能。
2)任務處理與任務狀態更新推送
身份認證成功后,任務處理從任務集成管理系統跳轉至相應的應用系統處理地址,任務系統只需實現基本的跳轉功能,處理功能由應用系統提供。完成任務處理后,應用系統按4.1節的任務數據格式封裝新的任務狀態更新數據,并調用ActiveMQ的消息發送接口,實現更新任務消息向任務集成管理系統的發送。
5 結束語
本文基于ActiveMQ和JSON技術,運用了ActiveMQ的點對點異步傳輸模型,實現了應用系統任務與任務集成管理系統之間的任務信息傳輸與集成。JSON作為一種輕量級、跨平臺的數據傳輸格式,便于不同的應用系統封裝、解析和傳遞。基于ActiveMQ任務集成管理系統的設計與實現充分縮短了業務流程任務的處理時間,有效的提高了工作效率。
【參考文獻】
[1]李瀟.基于情境感知技術的智能手機助手設計與實現[D].青島:青島理工大學,2014.
[2]劉勝國,高景春,陳智勇.基于ActiveMQ平臺的地震消息服務探討[J].華北地震科學,2012,30(2):39-42.
[3]顏廷良,錢江.基于JMS的混合安全消息模型在煤礦應急系統中的應用[J].煤炭技術,2011,30(1):155-158.