王洋俊 俞雪永
摘要:該文分析了目前國內(nèi)外藝術類App開發(fā)特點及總體情況,就目前藝術類App開發(fā)框架存在的問題,在關系型數(shù)據(jù)庫的概念模型之上,以圖數(shù)據(jù)庫Neo4j為例,詳細描述了藝術文化交流管理圖數(shù)據(jù)庫的基本概念、建模元素、組織方式以及該系統(tǒng)模型的增加、刪除、修改、查詢等功能。在運用圖數(shù)據(jù)庫建模技術構建的模型之上,研究如何采用Android原生開發(fā)來設計一款名為“藝術圈”的藝術類App,并采用NodeJS+MySQL+Express+Neo4j 的形式搭建藝術文化交流平臺的后端服務器。實踐結果顯示,該文提出的圖數(shù)據(jù)庫建模技術不僅能使模型語義表達更明確,而且具有可擴展性、簡易性和高效性等優(yōu)點,對設計和開發(fā)基于圖模型的智能管理信息平臺提供一定的參考價值。
關鍵詞:UML圖;NodeJS服務器;Neo4J圖數(shù)據(jù);Android開發(fā)
中圖分類號:TP311? 文獻標識碼:A
文章編號:1009-3044(2021)29-0085-05
Design and Implementation of Art and Culture Exchange Platform Based on Android
WANG Yang-jun, YU Xue-yong
(School of Computer and Computing Science, Zhejiang University City College HangZhou, Hangzhou 310015, China)
Abstract: This paper analyzes the characteristics and overall situation of the development of art App at home and abroad. Based on the conceptual model of relational database and the problems existing in the development framework of art App, this paper takes graph database Neo4j as an example. This paper describes in detail the basic concept, modeling elements, organization mode and the functions of adding, deleting, modifying and inquiring of the system model of the management diagram database of art and culture exchange. Based on the model constructed by using graph database modeling technology, this paper studies how to design an art App named "Art Circle" by using Android native development. And the form of NodeJS +MySQL+Express+Neo4j is adopted to build the back-end server of the art and culture exchange platform. The practice results show that the graph database modeling technology proposed in this paper can not only make the semantic expression of the model more explicit, but also has the advantages of extensibility, simplicity and high efficiency, which provides some reference value for the design and development of the intelligent management information platform based on the graph model.
Key words: UML diagrams; NodeJS server; Neo4j graph data; Android native development
1背景
隨著大眾藝術審美的不斷提升,欣賞藝術作品、參觀博物館展覽逐漸成為人們空閑之余的娛樂活動。但是如何快捷地收集到自己喜歡的藝術品、藝術家、博物館以及如何欣賞藝術作品,如何獲得更佳的博物館參觀體驗也慢慢成為藝術愛好者們要關心的問題。同時,藝術品、藝術家、博物館、藝術類新聞等信息種類繁多,并且隨著數(shù)據(jù)量的不斷增大,傳統(tǒng)的關系型數(shù)據(jù)在海量數(shù)據(jù)存儲能力方面就會存在不足之處,不僅容易出現(xiàn)數(shù)據(jù)容易丟失、負載過高、宕機等問題,而且對于系統(tǒng)來說,可擴展性與可用性方面較弱以及系統(tǒng)維護成本較高[1]。查閱了圖數(shù)據(jù)庫相關的資料,與傳統(tǒng)的關系型數(shù)據(jù)庫不同的是,圖數(shù)據(jù)庫加強了“數(shù)據(jù)與數(shù)據(jù)之間關系的概念”,這是以可視化的圖結構來存儲和管理數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)。最重要的三個基本單元為節(jié)點、關系、屬性,節(jié)點存儲實體信息。其中關系用于建立節(jié)點與節(jié)點之間的聯(lián)系,而且它們的屬性是以鍵值對的形式存儲。以Neo4j 為例,它作為一款基于java 的高可靠性、高性能、可擴展性強的開源圖數(shù)據(jù)庫[2],具有高性能、易用性、輕量級等特點,而且它完全兼容原子性、一致性、隔離性和持久性這四點特性[1]。實現(xiàn)圖數(shù)據(jù)庫的高效操作,圖數(shù)據(jù)庫提供一套易于學習的查詢語言Cypher,相比關系型數(shù)據(jù)庫,則更加直觀、簡單且非常適合大批量數(shù)據(jù)存儲和檢索[3]。
2研究的現(xiàn)狀與意義
2.1藝術App設計與開發(fā)現(xiàn)狀
目前國內(nèi)外有關藝術文化的App各式各樣,大多圍繞博物館沉浸式體驗。比如2010年美國自然歷史博物館為了迎合人們的移動消費方式,在移動智能手機上推出應用程序App-Explorer。2017年谷歌文化學院通過數(shù)字化 App 手段讓公眾可以在線欣賞到世界博物館文化瑰寶,運用遠景技術和3D 技術將死海古卷數(shù)字化,世界奇觀文檔化,并通過藝術技術強化數(shù)字化存取[4]。
對于國內(nèi)的藝術類App,開發(fā)者將博物館藝術藏品轉換為數(shù)字化的電子媒介,以圖像、文字、聲音以影像等融合進行展示和傳播,開發(fā)了口袋里的“移動”App 藝術。這些App 的開發(fā)是對實體博物館的有效增補,有趣之處在于改變了博物館的藝術,讓藝術故事和歷史娓娓道來,讓觀眾與“數(shù)字藝術”互動,口袋里的“移動”App 具有個性化、交互性、實時性和體驗性等特征。像故宮博物院在對中國文化遺產(chǎn)數(shù)字化體驗上的舉措當屬典范,故宮博物院相繼推出了9 款 App和“微故宮”微信公眾號。比如故宮系列《每日故宮》App設計成日歷形式,觀眾可以打開自己喜歡的一幅作品,并配以故宮精美藝術圖來分享于眾。還有故宮打造的《韓熙載夜宴圖》App全面調(diào)動用戶感官,利用音樂、場景融入、“真人”入畫等,給人身臨其境的使用體驗。這是為了觀眾提供了更為開放和有趣的互動沉浸體驗,讓觀眾足不出戶就可以身臨其境般觀看和了解故宮里的文物[4]。
對于這些新穎的應用開發(fā),都拉近了國人對自己文化的距離,也宣傳了本國的藝術文化,并且大多圍繞博物館展覽進行開發(fā),很大程度上豐富參觀者在博物館欣賞藝術的體驗。但是,大多藝術文化類App也存在著一些問題,例如:缺乏一個多用戶能參與的藝術文化交流平臺,大多數(shù)App是為了增加本博物館的游客量而設計開發(fā);該類型的App應用大同小異,缺乏創(chuàng)新的功能模塊,若能使得用戶自己作為一名創(chuàng)作者,發(fā)揮創(chuàng)造力,分享自己的創(chuàng)作經(jīng)歷,與其他藝術愛好者一同交流。這樣在一定程度上不僅能提升博物館參觀體驗,而且促進使用者之間的藝術交流,吸引更多對于非藝術愛好者參與其中。
2.2研究意義
藝術與文化交流平臺基于目前圖數(shù)據(jù)庫建模技術,將An? droid原生開發(fā)和圖數(shù)據(jù)庫建模結合起來,對于目前藝術類App 功能方面做出創(chuàng)新和優(yōu)化。區(qū)別于科普類型的應用,該平臺增加使用者之間的交流與分享,促使使用者自身參與到現(xiàn)實生活中藝術展覽的公共場合,并優(yōu)化博物館參觀體驗。其次,本文提到的圖數(shù)據(jù)庫建模技術不僅能使模型語義表達更明確,而且具有可擴展性、簡易性和高效性等優(yōu)點,搭配基于NodeJS 的Ex? press框架搭建的服務器所搭建的藝術與文化交流平臺,對設計和開發(fā)基于圖模型的智能管理信息平臺提供一定的參考價值。
3平臺設計與實現(xiàn)的相關技術
藝術與文化交流平臺分為前端和后端。前端是由Android 原生開發(fā)的App,后端是基于NodeJS框架搭建的服務器,儲存數(shù)據(jù)的數(shù)據(jù)庫采用Neo4j 圖數(shù)據(jù)和MySQL數(shù)據(jù)庫[5]。
3.1 Android原生開發(fā)
Android應用和它的框架是采用java語言編寫的。運行在DalvikVM中,DalvikVM是一種Google 自主研發(fā)的、基于Android 平臺的虛擬機。它有一個高效的抽象層,提供給Android底層使用[6]。并且還有一種專門為Android設計的壓縮格式(Dex格式的字節(jié)碼)。這種壓縮格式可以用于內(nèi)存不大或處理器速度不快的系統(tǒng)[6]。同時,DalvikVM的可擴展性得益于那些可以支持的原生程序庫,這些原生程序庫是由API所提供的。
Android 系統(tǒng)底層為Linux 內(nèi)核。采用的是層與層之間相互分離的方式進行構建。論其本質(zhì),就是在標準的Linux 系統(tǒng)上增加了DalvikVM,并搭建一個所有應用程序都基于它的ap? plication framework[6]。其中,Android 的架構圖如圖1所示。
3.2圖數(shù)據(jù)庫技術
圖數(shù)據(jù)庫是一種新型的非關系型數(shù)據(jù)庫,圖數(shù)據(jù)庫的模型包括結點、關系和屬性[7]。其中,結點是實體對象,如人物、藝術品、書籍或者其他具體事物。這些類似于ER 圖中的實體對象或是關系數(shù)據(jù)庫中的記錄。對于邊關系來說,它是連接節(jié)點之間的關系,表明節(jié)點之間的聯(lián)系、概念、事件或者事物[8]。而這與關系數(shù)據(jù)庫有所不同,針對非結構化的數(shù)據(jù),使用關系型數(shù)據(jù)庫來存儲數(shù)據(jù)將無法達到預計效果,同時增加多個表之間互相關聯(lián)會使操作效率大幅降低[9]。而在這種情況下,采用圖數(shù)據(jù)構建的數(shù)據(jù)庫則會有很大優(yōu)勢,無論圖的數(shù)據(jù)量有多少,其遍歷結點和邊的效率都不會有太大變化,完全具備一個成熟數(shù)據(jù)庫的所有特性。
最終選擇Neo4j 的原因歸結為以下四點:
1)簡潔明了的查詢語言 Neo4j CQL;它支持完整的 ACID 規(guī)則;
2)遵循屬性圖數(shù)據(jù)模型,使用Apache Lucence 支持索引,支持 UNIQUE 約束。采用本地的圖形處理引擎與原生圖形庫。
3)提供一個可視化界面,可以用于執(zhí)行 CQL 命令的 UI 界面。
4)支持JSON 和XLS 的數(shù)據(jù)導出格式。提供可以通過 UI MVC 框架(這里采用NodeJs連接圖數(shù)據(jù)庫)訪問的 Java 腳本[10]。
3.3基于NodeJS框架的服務器
NodeJS 是一個服務器端平臺,由Ryan Dahl 在2009年創(chuàng)建。它建立在V8 JavaScript運行時之上,使用了非阻塞I/O(異步)模型,這使得它最適合數(shù)據(jù)密集型的實時應用程序?;诠雀?Chrome 的 V8 JavaScript 引擎,NodeJS 庫的代碼性能非??臁odeJS 通常用于構建與客戶端應用程序交互的后端服務[11]。這些應用程序通過稱為API 的后端服務獲取和發(fā)送數(shù)據(jù)。目前,由于NodeJS 的完善,JavaScript也可以在服務器端運行[12]。下面如圖2所示,展示了NodeJS服務的生命周期。
Express 是一個用JavaScript 編寫并托管在 NodeJS 運行時中的web框架環(huán)境。它也是最流行的NodeJS web框架,并提供了有用的特性,比如:為使用不同URL 的不同 HTTP請求編寫處理程序路由、添加中間件和核心節(jié)點模塊。Express框架可以加速web 開發(fā)過程。Express是一個非常輕量級的web應用程序框架,所以主要受益來自使用第三方庫和特性。使用Ex?? press,中間件的使用是可能的。中間件是功能在做出最終請求處理程序之前,由Express路由層調(diào)用。中間件可以訪問請求、響應對象以及下一個函數(shù)[13]。首先加載的中間件函數(shù)將得到首先執(zhí)行。接著,中間件接受請求對象,執(zhí)行代碼,將請求更改為響應對象,并調(diào)用next 函數(shù)。如果隊伍里還有對象的話,這將激活下一個中間件[13]。
3.4 UML 圖
UML是一種建模語言,它支持信息系統(tǒng)的規(guī)范、可視化、構造和文檔化。盡管UML語法被劃分為兩門學科,但是這種語言的廣泛語法、各種圖表、學生的編程背景,以及其他因素,使得學習它成為一種挑戰(zhàn)[14]。UML 圖建立在統(tǒng)一語法的基礎上,目的是讓相關的涉眾能夠理解。但模型和代碼之間的差距威脅著開發(fā)人員對UML 的理解,因為開發(fā)人員需要將他們的思想從具體的代碼轉移到抽象的模型,而主要的問題是他們經(jīng)常看不到這些信息系統(tǒng)的低級和高級透視圖之間的關系[14]。在需求分析階段,主要繪制了用例圖和活動圖。其中,用例圖是根據(jù)參與者、用例和關系來定義系統(tǒng)的功能和圖形化[15]。UML 活動圖是流程圖對順序和并發(fā)行為建模[16]。UML 圖可以更加精準地確定用戶需求,明確用戶需求。
4數(shù)據(jù)庫設計
對于用戶的基本信息、用戶發(fā)表的文章、博物館計劃、新聞、文章評論、個人歷史等基礎數(shù)據(jù),存儲在名為ArtCircle的 MySQL數(shù)據(jù)庫。對于藝術家、藝術品、博物館、地區(qū)、主題等關鍵數(shù)據(jù),如圖3所示,則存儲在Neo4j 圖數(shù)據(jù)庫。圖中有藝術品類型、博物館類型、藝術家類型、國家類型、主題類型、省份類型結點等多種不同類別的結點,并且結點之間存在多種不同類型的關系。
通過對用戶需求的設計與分析,如圖4所示,總共確定了8 個實體,分別是用戶、個人歷史、文章、藝術家、藝術品、博物館、計劃、新聞,并且確定其每個實體之間的關系和實體本身的屬性。
其中,設計了13個數(shù)據(jù)表,分別是用戶表、新聞表、用戶成就表、用戶動態(tài)表、用戶歷史記錄表、用戶收藏表、動態(tài)評論表、博物館計劃表、博物館的藝術品表、博物館表、藝術家表、點贊表、用戶評論表。以新聞表和用戶收藏表為例,其具體設計如表1和表2。
5系統(tǒng)的設計與實現(xiàn)
在整個藝術與文化交流平臺,主要模塊分為藝術個性化推薦模塊、藝術交流區(qū)、博物館體驗模塊、用戶個人信息管理和后臺管理平臺。其中用戶個性化推薦模塊分為時事新聞推送、藝術家推薦、藝術品推薦、博物館推薦。藝術交流區(qū)分為藝術品內(nèi)容分享、藝術文化專題、關鍵字搜索、藝術創(chuàng)作畫板、藝術品鑒賞。博物館體驗模塊分為博物館計劃日歷、博物館文物介紹、博物館在線預約、博物館地圖導航。用戶個人信息模塊分為用戶成就、用戶收藏、用戶基本信息、用戶個人文章、用戶歷史記錄。最后是后臺管理平臺分為用戶個人信息管理、藝術品信息管理、藝術家信息管理、博物館信息管理、系統(tǒng)操作歷史管理、新聞信息管理。具體功能結構如圖5所示。
在分析并描述用戶需求方面,繪制了若干張用例圖和活動圖,包含藝術與文化交流平臺總用例圖、登錄過程活動圖、藝術文化交流區(qū)用例圖、用戶評論過程活動圖、用戶點贊過程活動圖、個性化推薦模塊用例圖、新聞推送模塊用例圖、用戶個人信息模塊用例圖、用戶動態(tài)模塊用例圖、后臺管理平臺用例圖、藝術品二維碼創(chuàng)建及掃描過程活動圖、博物館計劃制定過程活動圖、博物館體驗模塊用例圖、用戶收藏過程活動圖、藝術文化專題模塊用例圖、藝術創(chuàng)作畫板模塊用例圖等。以用戶動態(tài)模塊用例圖和用戶點贊過程活動圖為例,其具體內(nèi)容如圖6和圖7所示。
經(jīng)過需求分析和界面原型的設計與開發(fā),最終采用 An? droid原生開發(fā)出一款名為“藝術圈”的App,其主頁界面如圖8所示。
6結束語
本次研究的主題是如何構建一個藝術與文化交流的平臺。該平臺能激發(fā)人們自主的創(chuàng)造藝術品,分享藝術趣事,促使人們更多地參與藝術博物館、藝術社區(qū)交流等公共場合之中。本文的工作意義在于,拓展了藝術類 App 開發(fā)的研究方法和范疇,更好地對藝術品、藝術家、博物館、用戶本體數(shù)據(jù)進行了展示和存儲,可為藝術文化領域與科技的深度融合演進提供參考。
參考文獻:
[1]祁爍.基于Neo4j 的人員關聯(lián)分析與吸毒傾向預測平臺的設計[D].濟南:山東大學,2019.
[2] Giabelli A, Malandri L, Mercorio F, et al. Skills2Job: a recom? mender system that encodes job offer embeddings on graph databases[J].Applied Soft Computing,2021,101:107049.
[3]黃華,戴江鵬,王毅,等.基于圖數(shù)據(jù)庫的電網(wǎng)CIM/E模型構建及網(wǎng)絡拓撲[J].電力系統(tǒng)自動化,2019,43(22):122-129.
[4]王紅,劉怡琳.博物館文化數(shù)字化沉浸體驗:口袋“移動”APP 藝術[J].文化創(chuàng)新比較研究,2019,3(1):58-59.
[5]張宇,逯力紅,潘英雯,等.基于Android移動終端的超市商品檢索導航系統(tǒng)[J].電子設計工程,2020,28(7):99-103.
[6]彭洪超.基于Android系統(tǒng)的自動化測試用例的實現(xiàn)和優(yōu)化[D].南京:南京郵電大學,2020.
[7] LicheriN,BonniciV,BeccutiM,etal.GRAPES-DD:exploiting decision diagrams for index-driven search in biological graph databases[J].BMC Bioinformatics,2021,22(1):1-24.
[8]粟栗,陸黎,張星,等.基于圖數(shù)據(jù)庫的5G數(shù)據(jù)流轉安全防護機制[J].電信科學,2021,37(4):28-36.
[9] Dubrovin A S,Ogorodnikova O V,Tsarkova E G,etal.Analysis and visualization in graph database management systems[J]. Journal of Physics:Conference Series,2021,1902(1):012059.
[10]蔡晶媛.基于Neo4j 的易制毒化學品溯源系統(tǒng)的設計與實現(xiàn)[D].石家莊:河北師范大學,2020.
[11]陳榮鑫.基于NodeJS+Express框架的學院會議室預定系統(tǒng)設計與開發(fā)[J].信息與電腦(理論版),2021,33(2):95-97.
[12] Chitra L P,SatapathyR.Performance comparison and evalua?tion of Node.js and traditional web server (IIS)[C]//2017 Inter? national Conference on Algorithms, Methodology, Models and Applications in Emerging Technologies (ICAMMAET). Febru?ary 16-18,2017,Chennai,India.IEEE,2017:1-4.
[13] Nielsen B B,HassanshahiB,GauthierF.Nodest:feedback-driv?en static analysis of Node. js applications[C]//Proceedings of the 201927th ACM Joint Meeting on European Software Engi?neering Conference and Symposium on the Foundations of Soft? ware Engineering. Tallinn Estonia. New York, NY, USA: ACM, 2019:455-465.
[14] Vázquez-IngelmoA,García-HolgadoA,García-Pe?alvo F J. C4 model in a Software Engineering subject to ease the com? prehension of UML and the software[C]//2020 IEEE Global En?gineering Education Conference (EDUCON).April 27-30,2020, Porto,Portugal.IEEE,2020:919-924.
[15] SiahaanD,DesnelitaY,Gustientiedina,etal.Structural and se? mantic similarity measurement of UML sequence diagrams[C]//201711th International Conference on Information &Commu?nication Technology and System (ICTS).October 31-31,2017, Surabaya,Indonesia.IEEE,2017:227-234.
[16] Ahmad T,IqbalJ,AshrafA,etal.Model-based testing using UML activity diagrams:a systematic mapping study[J].Comput? er Science Review,2019,33:98-112.
【通聯(lián)編輯:謝媛媛】