Loading...
|
Please use this identifier to cite or link to this item:
https://nccur.lib.nccu.edu.tw/handle/140.119/124197
|
Title: | 以Java與瀏覽器為基礎的應用領域物件之編輯系統的快速生成 Rapid generation of Editing Systems for Application Objects based on Java and web browsers |
Authors: | 楊宗翰 Yang, Zong-Han |
Contributors: | 陳正佳 Chen, Cheng-Jia 楊宗翰 Yang, Zong-Han |
Keywords: | 領域物件 物件編輯 編輯系統 快速生成 Java Jetty Angular Editing System |
Date: | 2019 |
Issue Date: | 2019-07-01 10:59:33 (UTC+8) |
Abstract: | 現今資訊市場上的各式應用系統,均需要產生或處理大量的應用領域資料,像是醫院的病歷資料、企業客戶資料、企業人力資源資料等等。這些資料有相當的比例需直接或間接地由相關者以人工方式輸入;至於其內容與型式,則具有相當大的歧異性,主要由各個應用領域的個別特性,以及系統的實際分析與設計而決定。因此,如何提供一個良好的通用工具,讓開發者能快速地打造適合特定領域的優良編輯環境,讓相關人士得以方便且迅速地輸入相關應用領域資料,顯然是我們在軟體系統開發時,很值得關注的一個課題。 本論文提出了一套通用工具系統,能夠為任何給定應用系統的領域物件生成在Web瀏覽器上操作的編輯系統。在編輯系統的規格描述部分,我們使用Java類別來表示應用領域中的可能物件模型,並在每個Java類別中嵌入對應的Java Annotations以表示類別實例在網頁上的呈現方式。對規格的後續處理將生成被封裝為Web應用的預期編輯系統,之後只要在Jetty 中安裝並激活該Web應用,用戶即可以透過瀏覽器進行領域物件資料的編輯,並可將結果存為JSOG格式的文檔。後續的應用則可將之反序列化為應用領域物件。 本研究使用的主要技術有:Jetty、Java annotation、Java reflection、Java servlet、Angular網頁框架。我們的系統產出的編輯器是一個web 應用,在伺服端它使用了Jetty此種以Java servlet為基礎的內嵌網頁伺服器,而客戶端部分則使用了Angular 框架。內嵌網頁伺服器的使用可避免編輯器操作時還需常駐一個遠端網頁伺服器,而搭配servlet與Angular產生的前端網頁頁面則提供Angular reactive form與Angular tree component,可供使用者輸入與檢視資料內容。當編輯到達一定階段時,編輯系統允許將資料序列化為JSOG格式,並暫存於瀏覽器的session storage之中,而當編輯結束需要匯出時,系統則可將暫存資料寫到指定的儲存檔。 In today`s information market, all kinds of application systems need to generate or process plenty of application data, such as patient medical records, corporate customer data, enterprise human resource data and so on. A large proportion of these data needs to be manually entered directly or indirectly by relevant users; as to the content and type, there is great variety in these data, mainly depending on the domain characteristics of individual application, as well as the actual system analysis and design. It is therefore very attractive to software developers if we could provide a tool allowing to quickly create a good editing system tailored for any given application system, by which users can easily and quickly enter required application data. This thesis comes up with a system capable of generating an editing system operated on web browsers for the domain objects of any given application system. In the specification of the editing system we use Java classes to represent all types of objects in the given application and embed Java annotations in each class to express how its instances are rendered on a web page. Succeeding processing of the specification will generate the intended editing system packaged as a web application. After installing and activating the web application in the Jetty web server, the user can start his editing of domain data by a browser and ends with the result saved as a file of JSOG format. Subsequent applications can deserialize its content into application objects. The main techniques and tools used in this thesis include: Jetty, Java Annotations, Java Reflection, Java Servlets, and Angular web framework. The editor generated by our system is a web application. On the server side, it uses embedded Jetty, a web server based on Java servlets; on the client side, it uses the Angular framework. The use of an embedded web server avoids the need of the residence of a remote web server when the editor is operated. The web pages of the editor are generated using servlets and Angular. They provide a reactive form and a tree component for the user to enter and view object contents. When the editing reaches a certain stage, the system allows to serialize the result in JSOG format and cache it in the browser`s Session Storage. When the editing ends, the cached data can be written to any designated file in the local machine. |
Reference: | [1] 企業資源規劃(ERP). Retrieved May (2019), from https://zh.wikipedia.org/wiki/ 企业资源计划 [2] GUI. Retrieved May (2019), from https://zh.wikipedia.org/wiki/图形用户界面 [3] Jetty. Retrieved May (2019), from http://www.eclipse.org/jetty/documentation/current/index.html [4] Jetty Handler. Retrieved May (2019), from http://www.eclipse.org/jetty/documentation/current/architecture.html#_handlers [5] Servlet. Retrieved May (2019), from https://zh.wikipedia.org/wiki/Java_Servlet [6] Servlet Life Cycle. Retrieved May (2019), from https://www.tutorialspoint.com/servlets/servlets-life-cycle.htm [7] Reflection. Retrieved May (2019), from https://en.wikipedia.org/wiki/Reflection_(computer_programming) [8] Jakob Jenkov. (2018). Java Reflection API. Retrieved May (2019), from http://tutorials.jenkov.com/java-reflection/index.html [9] Java annotation. Retrieved May (2019), from https://en.wikipedia.org/wiki/Java_annotation [10] Annotations That Apply to Other Annotations. Retrieved May (2019), from https://docs.oracle.com/javase/tutorial/java/annotations/predefined.html [11] Plain old Java object(POJO). Retrieved May (2019), from https://en.wikipedia.org/wiki/Plain_old_Java_object [12] Cay S. Horstmann and Gary Cornell. 2013. “Core Java® Volume II—Advanced Features, Ninth Edition”, pages 421-466. In Chapter 8, JavaBeans Components. [13] JavaBeans. Retrieved May (2019), from https://docs.oracle.com/javase/tutorial/javabeans/index.html [14] Cay S. Horstmann and Gary Cornell. 2013. “Core Java® Volume II—Advanced Features, Ninth Edition”, pages 432-438. In Chapter 8, 8.5 Beans Property Types. [15] JavaBeans Properties. Retrieved May (2019), from https://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html [16] JavaBeans Methods. Retrieved May (2019), from https://docs.oracle.com/javase/tutorial/javabeans/writing/methods.html [17] Cay S. Horstmann and Gary Cornell. 2013. “Core Java® Volume II—Advanced Features, Ninth Edition”, pages 431-432. In Chapter 8, 8.4 Naming Patterns for Bean Properties and Events. [18] JavaBeans Events. Retrieved May (2019), from https://docs.oracle.com/javase/tutorial/javabeans/writing/events.html [19] Web Server on wiki. Retrieved May (2019), from https://en.wikipedia.org/wiki/Web_server [20] Web Server. Rettrieved May (2019), from https://developer.mozilla.org/en- US/docs/Learn/Common_questions/What_is_a_web_server [21] JSON. Retrieved May (2019), from http://json.org [22] JSON on wiki. Retrieved May (2019), from https://en.wikipedia.org/wiki/JSON [23] Jackson Tutorial. Retrieved May (2019), from https://www.tutorialspoint.com/jackson/index.htm [24] FasterXML. Jackson Github. Retrieved May (2019), from https://github.com/FasterXML/jackson [25] Google. Gson Github. Retrieved May (2019), from https://github.com/google/gson [26] JSON Binding HomePage. Retrieved May (2019), from http://json-b.net [27] JSON Binding Github. Retrieved May (2019), from https://github.com/eclipse- ee4j/jsonb-api [28] JSOG Github. Retrieved May (2019), from https://github.com/jsog/jsog-jackson/ [29] angular tree component documents. Retrieved May (2019), from https://angular2-tree.readme.io/docs [30] 500Tech. angular tree component Github. Retrieved May (2019), from https://github.com/500tech/angular-tree-component [31] Angular framework. Retrieved March (2019), from https://angular.io/guide/architecture [32] MVC. Retrieved May (2019), from https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller [33] TypeScript. Retrieved May (2019), from https://en.wikipedia.org/wiki/TypeScript [34] TypeScript documentation. Retrieved May (2019), from https://www.typescriptlang.org/docs/home.html [35] HTML5 Web Storage on w3schools. Retrieved May (2019), from https://www.w3schools.com/html/html5_webstorage.asp [36] Observable Data Service. Retrieved May (2019), from https://angular.io/guide/observables |
Description: | 碩士 國立政治大學 資訊科學系 105753024 |
Source URI: | http://thesis.lib.nccu.edu.tw/record/#G1057530241 |
Data Type: | thesis |
DOI: | 10.6814/NCCU201900018 |
Appears in Collections: | [資訊科學系] 學位論文
|
Files in This Item:
File |
Description |
Size | Format | |
024101.pdf | | 2320Kb | Adobe PDF2 | 322 | View/Open | 024102.pdf | | 2321Kb | Adobe PDF2 | 199 | View/Open |
|
All items in 政大典藏 are protected by copyright, with all rights reserved.
|