王洋俊 俞雪永
摘要:該文分析了目前國內(nèi)外藝術(shù)類App開發(fā)特點及總體情況,就目前藝術(shù)類App開發(fā)框架存在的問題,在關(guān)系型數(shù)據(jù)庫的概念模型之上,以圖數(shù)據(jù)庫Neo4j為例,詳細描述了藝術(shù)文化交流管理圖數(shù)據(jù)庫的基本概念、建模元素、組織方式以及該系統(tǒng)模型的增加、刪除、修改、查詢等功能。在運用圖數(shù)據(jù)庫建模技術(shù)構(gòu)建的模型之上,研究如何采用Android原生開發(fā)來設(shè)計一款名為“藝術(shù)圈”的藝術(shù)類App,并采用NodeJS+MySQL+Express+Neo4j 的形式搭建藝術(shù)文化交流平臺的后端服務(wù)器。實踐結(jié)果顯示,該文提出的圖數(shù)據(jù)庫建模技術(shù)不僅能使模型語義表達更明確,而且具有可擴展性、簡易性和高效性等優(yōu)點,對設(shè)計和開發(fā)基于圖模型的智能管理信息平臺提供一定的參考價值。
關(guān)鍵詞:UML圖;NodeJS服務(wù)器;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ù)審美的不斷提升,欣賞藝術(shù)作品、參觀博物館展覽逐漸成為人們空閑之余的娛樂活動。但是如何快捷地收集到自己喜歡的藝術(shù)品、藝術(shù)家、博物館以及如何欣賞藝術(shù)作品,如何獲得更佳的博物館參觀體驗也慢慢成為藝術(shù)愛好者們要關(guān)心的問題。同時,藝術(shù)品、藝術(shù)家、博物館、藝術(shù)類新聞等信息種類繁多,并且隨著數(shù)據(jù)量的不斷增大,傳統(tǒng)的關(guān)系型數(shù)據(jù)在海量數(shù)據(jù)存儲能力方面就會存在不足之處,不僅容易出現(xiàn)數(shù)據(jù)容易丟失、負載過高、宕機等問題,而且對于系統(tǒng)來說,可擴展性與可用性方面較弱以及系統(tǒng)維護成本較高[1]。查閱了圖數(shù)據(jù)庫相關(guān)的資料,與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫不同的是,圖數(shù)據(jù)庫加強了“數(shù)據(jù)與數(shù)據(jù)之間關(guān)系的概念”,這是以可視化的圖結(jié)構(gòu)來存儲和管理數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)。最重要的三個基本單元為節(jié)點、關(guān)系、屬性,節(jié)點存儲實體信息。其中關(guān)系用于建立節(jié)點與節(jié)點之間的聯(lián)系,而且它們的屬性是以鍵值對的形式存儲。以Neo4j 為例,它作為一款基于java 的高可靠性、高性能、可擴展性強的開源圖數(shù)據(jù)庫[2],具有高性能、易用性、輕量級等特點,而且它完全兼容原子性、一致性、隔離性和持久性這四點特性[1]。實現(xiàn)圖數(shù)據(jù)庫的高效操作,圖數(shù)據(jù)庫提供一套易于學(xué)習(xí)的查詢語言Cypher,相比關(guān)系型數(shù)據(jù)庫,則更加直觀、簡單且非常適合大批量數(shù)據(jù)存儲和檢索[3]。
2研究的現(xiàn)狀與意義
2.1藝術(shù)App設(shè)計與開發(fā)現(xiàn)狀
目前國內(nèi)外有關(guān)藝術(shù)文化的App各式各樣,大多圍繞博物館沉浸式體驗。比如2010年美國自然歷史博物館為了迎合人們的移動消費方式,在移動智能手機上推出應(yīng)用程序App-Explorer。2017年谷歌文化學(xué)院通過數(shù)字化 App 手段讓公眾可以在線欣賞到世界博物館文化瑰寶,運用遠景技術(shù)和3D 技術(shù)將死海古卷數(shù)字化,世界奇觀文檔化,并通過藝術(shù)技術(shù)強化數(shù)字化存取[4]。
對于國內(nèi)的藝術(shù)類App,開發(fā)者將博物館藝術(shù)藏品轉(zhuǎn)換為數(shù)字化的電子媒介,以圖像、文字、聲音以影像等融合進行展示和傳播,開發(fā)了口袋里的“移動”App 藝術(shù)。這些App 的開發(fā)是對實體博物館的有效增補,有趣之處在于改變了博物館的藝術(shù),讓藝術(shù)故事和歷史娓娓道來,讓觀眾與“數(shù)字藝術(shù)”互動,口袋里的“移動”App 具有個性化、交互性、實時性和體驗性等特征。像故宮博物院在對中國文化遺產(chǎn)數(shù)字化體驗上的舉措當(dāng)屬典范,故宮博物院相繼推出了9 款 App和“微故宮”微信公眾號。比如故宮系列《每日故宮》App設(shè)計成日歷形式,觀眾可以打開自己喜歡的一幅作品,并配以故宮精美藝術(shù)圖來分享于眾。還有故宮打造的《韓熙載夜宴圖》App全面調(diào)動用戶感官,利用音樂、場景融入、“真人”入畫等,給人身臨其境的使用體驗。這是為了觀眾提供了更為開放和有趣的互動沉浸體驗,讓觀眾足不出戶就可以身臨其境般觀看和了解故宮里的文物[4]。
對于這些新穎的應(yīng)用開發(fā),都拉近了國人對自己文化的距離,也宣傳了本國的藝術(shù)文化,并且大多圍繞博物館展覽進行開發(fā),很大程度上豐富參觀者在博物館欣賞藝術(shù)的體驗。但是,大多藝術(shù)文化類App也存在著一些問題,例如:缺乏一個多用戶能參與的藝術(shù)文化交流平臺,大多數(shù)App是為了增加本博物館的游客量而設(shè)計開發(fā);該類型的App應(yīng)用大同小異,缺乏創(chuàng)新的功能模塊,若能使得用戶自己作為一名創(chuàng)作者,發(fā)揮創(chuàng)造力,分享自己的創(chuàng)作經(jīng)歷,與其他藝術(shù)愛好者一同交流。這樣在一定程度上不僅能提升博物館參觀體驗,而且促進使用者之間的藝術(shù)交流,吸引更多對于非藝術(shù)愛好者參與其中。
2.2研究意義
藝術(shù)與文化交流平臺基于目前圖數(shù)據(jù)庫建模技術(shù),將An? droid原生開發(fā)和圖數(shù)據(jù)庫建模結(jié)合起來,對于目前藝術(shù)類App 功能方面做出創(chuàng)新和優(yōu)化。區(qū)別于科普類型的應(yīng)用,該平臺增加使用者之間的交流與分享,促使使用者自身參與到現(xiàn)實生活中藝術(shù)展覽的公共場合,并優(yōu)化博物館參觀體驗。其次,本文提到的圖數(shù)據(jù)庫建模技術(shù)不僅能使模型語義表達更明確,而且具有可擴展性、簡易性和高效性等優(yōu)點,搭配基于NodeJS 的Ex? press框架搭建的服務(wù)器所搭建的藝術(shù)與文化交流平臺,對設(shè)計和開發(fā)基于圖模型的智能管理信息平臺提供一定的參考價值。
3平臺設(shè)計與實現(xiàn)的相關(guān)技術(shù)
藝術(shù)與文化交流平臺分為前端和后端。前端是由Android 原生開發(fā)的App,后端是基于NodeJS框架搭建的服務(wù)器,儲存數(shù)據(jù)的數(shù)據(jù)庫采用Neo4j 圖數(shù)據(jù)和MySQL數(shù)據(jù)庫[5]。
3.1 Android原生開發(fā)
Android應(yīng)用和它的框架是采用java語言編寫的。運行在DalvikVM中,DalvikVM是一種Google 自主研發(fā)的、基于Android 平臺的虛擬機。它有一個高效的抽象層,提供給Android底層使用[6]。并且還有一種專門為Android設(shè)計的壓縮格式(Dex格式的字節(jié)碼)。這種壓縮格式可以用于內(nèi)存不大或處理器速度不快的系統(tǒng)[6]。同時,DalvikVM的可擴展性得益于那些可以支持的原生程序庫,這些原生程序庫是由API所提供的。
Android 系統(tǒng)底層為Linux 內(nèi)核。采用的是層與層之間相互分離的方式進行構(gòu)建。論其本質(zhì),就是在標準的Linux 系統(tǒng)上增加了DalvikVM,并搭建一個所有應(yīng)用程序都基于它的ap? plication framework[6]。其中,Android 的架構(gòu)圖如圖1所示。
3.2圖數(shù)據(jù)庫技術(shù)
圖數(shù)據(jù)庫是一種新型的非關(guān)系型數(shù)據(jù)庫,圖數(shù)據(jù)庫的模型包括結(jié)點、關(guān)系和屬性[7]。其中,結(jié)點是實體對象,如人物、藝術(shù)品、書籍或者其他具體事物。這些類似于ER 圖中的實體對象或是關(guān)系數(shù)據(jù)庫中的記錄。對于邊關(guān)系來說,它是連接節(jié)點之間的關(guān)系,表明節(jié)點之間的聯(lián)系、概念、事件或者事物[8]。而這與關(guān)系數(shù)據(jù)庫有所不同,針對非結(jié)構(gòu)化的數(shù)據(jù),使用關(guān)系型數(shù)據(jù)庫來存儲數(shù)據(jù)將無法達到預(yù)計效果,同時增加多個表之間互相關(guān)聯(lián)會使操作效率大幅降低[9]。而在這種情況下,采用圖數(shù)據(jù)構(gòu)建的數(shù)據(jù)庫則會有很大優(yōu)勢,無論圖的數(shù)據(jù)量有多少,其遍歷結(jié)點和邊的效率都不會有太大變化,完全具備一個成熟數(shù)據(jù)庫的所有特性。
最終選擇Neo4j 的原因歸結(jié)為以下四點:
1)簡潔明了的查詢語言 Neo4j CQL;它支持完整的 ACID 規(guī)則;
2)遵循屬性圖數(shù)據(jù)模型,使用Apache Lucence 支持索引,支持 UNIQUE 約束。采用本地的圖形處理引擎與原生圖形庫。
3)提供一個可視化界面,可以用于執(zhí)行 CQL 命令的 UI 界面。
4)支持JSON 和XLS 的數(shù)據(jù)導(dǎo)出格式。提供可以通過 UI MVC 框架(這里采用NodeJs連接圖數(shù)據(jù)庫)訪問的 Java 腳本[10]。
3.3基于NodeJS框架的服務(wù)器
NodeJS 是一個服務(wù)器端平臺,由Ryan Dahl 在2009年創(chuàng)建。它建立在V8 JavaScript運行時之上,使用了非阻塞I/O(異步)模型,這使得它最適合數(shù)據(jù)密集型的實時應(yīng)用程序。基于谷歌 Chrome 的 V8 JavaScript 引擎,NodeJS 庫的代碼性能非常快。NodeJS 通常用于構(gòu)建與客戶端應(yīng)用程序交互的后端服務(wù)[11]。這些應(yīng)用程序通過稱為API 的后端服務(wù)獲取和發(fā)送數(shù)據(jù)。目前,由于NodeJS 的完善,JavaScript也可以在服務(wù)器端運行[12]。下面如圖2所示,展示了NodeJS服務(wù)的生命周期。
Express 是一個用JavaScript 編寫并托管在 NodeJS 運行時中的web框架環(huán)境。它也是最流行的NodeJS web框架,并提供了有用的特性,比如:為使用不同URL 的不同 HTTP請求編寫處理程序路由、添加中間件和核心節(jié)點模塊。Express框架可以加速web 開發(fā)過程。Express是一個非常輕量級的web應(yīng)用程序框架,所以主要受益來自使用第三方庫和特性。使用Ex?? press,中間件的使用是可能的。中間件是功能在做出最終請求處理程序之前,由Express路由層調(diào)用。中間件可以訪問請求、響應(yīng)對象以及下一個函數(shù)[13]。首先加載的中間件函數(shù)將得到首先執(zhí)行。接著,中間件接受請求對象,執(zhí)行代碼,將請求更改為響應(yīng)對象,并調(diào)用next 函數(shù)。如果隊伍里還有對象的話,這將激活下一個中間件[13]。
3.4 UML 圖
UML是一種建模語言,它支持信息系統(tǒng)的規(guī)范、可視化、構(gòu)造和文檔化。盡管UML語法被劃分為兩門學(xué)科,但是這種語言的廣泛語法、各種圖表、學(xué)生的編程背景,以及其他因素,使得學(xué)習(xí)它成為一種挑戰(zhàn)[14]。UML 圖建立在統(tǒng)一語法的基礎(chǔ)上,目的是讓相關(guān)的涉眾能夠理解。但模型和代碼之間的差距威脅著開發(fā)人員對UML 的理解,因為開發(fā)人員需要將他們的思想從具體的代碼轉(zhuǎn)移到抽象的模型,而主要的問題是他們經(jīng)常看不到這些信息系統(tǒng)的低級和高級透視圖之間的關(guān)系[14]。在需求分析階段,主要繪制了用例圖和活動圖。其中,用例圖是根據(jù)參與者、用例和關(guān)系來定義系統(tǒng)的功能和圖形化[15]。UML 活動圖是流程圖對順序和并發(fā)行為建模[16]。UML 圖可以更加精準地確定用戶需求,明確用戶需求。
4數(shù)據(jù)庫設(shè)計
對于用戶的基本信息、用戶發(fā)表的文章、博物館計劃、新聞、文章評論、個人歷史等基礎(chǔ)數(shù)據(jù),存儲在名為ArtCircle的 MySQL數(shù)據(jù)庫。對于藝術(shù)家、藝術(shù)品、博物館、地區(qū)、主題等關(guān)鍵數(shù)據(jù),如圖3所示,則存儲在Neo4j 圖數(shù)據(jù)庫。圖中有藝術(shù)品類型、博物館類型、藝術(shù)家類型、國家類型、主題類型、省份類型結(jié)點等多種不同類別的結(jié)點,并且結(jié)點之間存在多種不同類型的關(guān)系。
通過對用戶需求的設(shè)計與分析,如圖4所示,總共確定了8 個實體,分別是用戶、個人歷史、文章、藝術(shù)家、藝術(shù)品、博物館、計劃、新聞,并且確定其每個實體之間的關(guān)系和實體本身的屬性。
其中,設(shè)計了13個數(shù)據(jù)表,分別是用戶表、新聞表、用戶成就表、用戶動態(tài)表、用戶歷史記錄表、用戶收藏表、動態(tài)評論表、博物館計劃表、博物館的藝術(shù)品表、博物館表、藝術(shù)家表、點贊表、用戶評論表。以新聞表和用戶收藏表為例,其具體設(shè)計如表1和表2。
5系統(tǒng)的設(shè)計與實現(xiàn)
在整個藝術(shù)與文化交流平臺,主要模塊分為藝術(shù)個性化推薦模塊、藝術(shù)交流區(qū)、博物館體驗?zāi)K、用戶個人信息管理和后臺管理平臺。其中用戶個性化推薦模塊分為時事新聞推送、藝術(shù)家推薦、藝術(shù)品推薦、博物館推薦。藝術(shù)交流區(qū)分為藝術(shù)品內(nèi)容分享、藝術(shù)文化專題、關(guān)鍵字搜索、藝術(shù)創(chuàng)作畫板、藝術(shù)品鑒賞。博物館體驗?zāi)K分為博物館計劃日歷、博物館文物介紹、博物館在線預(yù)約、博物館地圖導(dǎo)航。用戶個人信息模塊分為用戶成就、用戶收藏、用戶基本信息、用戶個人文章、用戶歷史記錄。最后是后臺管理平臺分為用戶個人信息管理、藝術(shù)品信息管理、藝術(shù)家信息管理、博物館信息管理、系統(tǒng)操作歷史管理、新聞信息管理。具體功能結(jié)構(gòu)如圖5所示。
在分析并描述用戶需求方面,繪制了若干張用例圖和活動圖,包含藝術(shù)與文化交流平臺總用例圖、登錄過程活動圖、藝術(shù)文化交流區(qū)用例圖、用戶評論過程活動圖、用戶點贊過程活動圖、個性化推薦模塊用例圖、新聞推送模塊用例圖、用戶個人信息模塊用例圖、用戶動態(tài)模塊用例圖、后臺管理平臺用例圖、藝術(shù)品二維碼創(chuàng)建及掃描過程活動圖、博物館計劃制定過程活動圖、博物館體驗?zāi)K用例圖、用戶收藏過程活動圖、藝術(shù)文化專題模塊用例圖、藝術(shù)創(chuàng)作畫板模塊用例圖等。以用戶動態(tài)模塊用例圖和用戶點贊過程活動圖為例,其具體內(nèi)容如圖6和圖7所示。
經(jīng)過需求分析和界面原型的設(shè)計與開發(fā),最終采用 An? droid原生開發(fā)出一款名為“藝術(shù)圈”的App,其主頁界面如圖8所示。
6結(jié)束語
本次研究的主題是如何構(gòu)建一個藝術(shù)與文化交流的平臺。該平臺能激發(fā)人們自主的創(chuàng)造藝術(shù)品,分享藝術(shù)趣事,促使人們更多地參與藝術(shù)博物館、藝術(shù)社區(qū)交流等公共場合之中。本文的工作意義在于,拓展了藝術(shù)類 App 開發(fā)的研究方法和范疇,更好地對藝術(shù)品、藝術(shù)家、博物館、用戶本體數(shù)據(jù)進行了展示和存儲,可為藝術(shù)文化領(lǐng)域與科技的深度融合演進提供參考。
參考文獻:
[1]祁爍.基于Neo4j 的人員關(guān)聯(lián)分析與吸毒傾向預(yù)測平臺的設(shè)計[D].濟南:山東大學(xué),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模型構(gòu)建及網(wǎng)絡(luò)拓撲[J].電力系統(tǒng)自動化,2019,43(22):122-129.
[4]王紅,劉怡琳.博物館文化數(shù)字化沉浸體驗:口袋“移動”APP 藝術(shù)[J].文化創(chuàng)新比較研究,2019,3(1):58-59.
[5]張宇,逯力紅,潘英雯,等.基于Android移動終端的超市商品檢索導(dǎo)航系統(tǒng)[J].電子設(shè)計工程,2020,28(7):99-103.
[6]彭洪超.基于Android系統(tǒng)的自動化測試用例的實現(xiàn)和優(yōu)化[D].南京:南京郵電大學(xué),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ù)流轉(zhuǎn)安全防護機制[J].電信科學(xué),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 的易制毒化學(xué)品溯源系統(tǒng)的設(shè)計與實現(xiàn)[D].石家莊:河北師范大學(xué),2020.
[11]陳榮鑫.基于NodeJS+Express框架的學(xué)院會議室預(yù)定系統(tǒng)設(shè)計與開發(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)編輯:謝媛媛】