English  |  正體中文  |  简体中文  |  Post-Print筆數 : 27 |  Items with full text/Total items : 109952/140887 (78%)
Visitors : 46302940      Online Users : 1298
RC Version 6.0 © Powered By DSPACE, MIT. Enhanced by NTU Library IR team.
Scope Tips:
  • please add "double quotation mark" for query phrases to get precise results
  • please goto advance search for comprehansive author search
  • Adv. Search
    HomeLoginUploadHelpAboutAdminister Goto mobile version
    政大機構典藏 > 資訊學院 > 資訊科學系 > 學位論文 >  Item 140.119/124197
    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 SizeFormat
    024101.pdf2320KbAdobe PDF2322View/Open
    024102.pdf2321KbAdobe PDF2199View/Open


    All items in 政大典藏 are protected by copyright, with all rights reserved.


    社群 sharing

    著作權政策宣告 Copyright Announcement
    1.本網站之數位內容為國立政治大學所收錄之機構典藏,無償提供學術研究與公眾教育等公益性使用,惟仍請適度,合理使用本網站之內容,以尊重著作權人之權益。商業上之利用,則請先取得著作權人之授權。
    The digital content of this website is part of National Chengchi University Institutional Repository. It provides free access to academic research and public education for non-commercial use. Please utilize it in a proper and reasonable manner and respect the rights of copyright owners. For commercial use, please obtain authorization from the copyright owner in advance.

    2.本網站之製作,已盡力防止侵害著作權人之權益,如仍發現本網站之數位內容有侵害著作權人權益情事者,請權利人通知本網站維護人員(nccur@nccu.edu.tw),維護人員將立即採取移除該數位著作等補救措施。
    NCCU Institutional Repository is made to protect the interests of copyright owners. If you believe that any material on the website infringes copyright, please contact our staff(nccur@nccu.edu.tw). We will remove the work from the repository and investigate your claim.
    DSpace Software Copyright © 2002-2004  MIT &  Hewlett-Packard  /   Enhanced by   NTU Library IR team Copyright ©   - Feedback