Migrating Mathematical Programs to Web Interface Frameworks
Total Page:16
File Type:pdf, Size:1020Kb
Submitted by Hsuan-Ming Chen Submitted at Research Institute for Symbolic Computation Supervisor Prof. Wolfgang Schreiner Migrating April 2019 Mathematical Programs to Web Interface Frameworks Master Thesis to obtain the academic degree of Master of Science in the Master’s Program Internationaler Universitätslehrgang: Informatics: Engineering & Management JOHANNES KEPLER UNIVERSITY LINZ Altenberger Str. 69 4040 Linz, Austria www.jku.at DVR 0093696 ABSTRACT A mathematical software system, the RISC Algorithm Language (RISCAL), has been implemented in Java; however, it can be only executed on the local machine of the user. The aim of this master thesis is to migrate RISCAL to the web, such that users can access the software via a conventional web browser without needing a local installation of the software. In a preparatory phase, this thesis evaluates various web interface frameworks and how these can be executed on the web. Based in the result of this investigation which compares the advantages and disadvantages of the frameworks, one framework is selected as the most promising candidate for future work. The core of the thesis is then the migration of RISCAL to the web on the basis of this framework and the subsequent evaluation of how the demands have been met and how well all of the RISCAL programs are working after the migration. April 4, 2019 Hsuan-Ming Chen 2/85 ACKNOWLEDGMENT First of all, I am grateful to Professor Bruno Buchberger for providing the opportunity to attend this program and giving every resource and help which he can support. Second, I am truly thankful to my advisor, Professor Wolfgang Schreiner, for offering me everything I need and solving the issues which I encountered during the research. Third, I appreciate having all the assistance from the assistant of the program, Betina Curtis, who assists me to deal with the administrative work. Finally, I want to express my sincere appreciation to my parents for always supporting me. The success of this thesis is indispensable without them. April 4, 2019 Hsuan-Ming Chen 3/85 TABLE OF CONTENTS 1. Introduction ................................................................................................................ 9 2. State of the Art ......................................................................................................... 11 2.1. Mathematical Software Systems ....................................................................... 11 2.2. Web Interface Frameworks ............................................................................... 17 2.2.1. Remote Application Platform (RAP) ........................................................ 17 2.2.2. Java Server Pages (JSP) ........................................................................ 19 2.2.3. OpenXava ............................................................................................... 20 2.2.4. Google Web Toolkit (GWT) ..................................................................... 21 2.3. Summary ........................................................................................................... 23 3. The RISCAL Software ............................................................................................. 24 4. Evaluation of Web Frameworks ............................................................................... 29 4.1. Installation & Portability ..................................................................................... 30 4.2. Support & Popularity ......................................................................................... 31 4.3. Development Process ....................................................................................... 32 4.3.1. RAP Development .................................................................................. 34 4.3.2. JSP Development ................................................................................... 36 4.3.3. OpenXava Development ......................................................................... 38 4.3.4. GWT Development ................................................................................. 39 4.3.5. Summary ................................................................................................ 41 4.4. Client-Side Features ......................................................................................... 42 4.4.1. Rich Text Editor Panel ............................................................................ 42 4.4.2. Input & Output Panel ............................................................................... 42 4.4.3. Menus ..................................................................................................... 43 4.4.4. File Selection Dialog ............................................................................... 43 4.4.5. Selection Boxes ...................................................................................... 44 4.4.6. Pop Up Panels and Windows ................................................................. 44 4.4.7. Tree-structured Panels ........................................................................... 45 April 4, 2019 Hsuan-Ming Chen 4/85 4.4.8. Built-in Browsing ..................................................................................... 45 4.5. Aesthetic & Usability ......................................................................................... 46 4.6. Mobility & Browser Support ............................................................................... 47 4.7. Performance ..................................................................................................... 48 4.8. Summary ........................................................................................................... 49 5. Porting RISCAL to the Web ..................................................................................... 50 5.1. System Architecture .......................................................................................... 50 5.2. File I/O .............................................................................................................. 51 5.3. User Interface ................................................................................................... 53 5.4. Known Bugs and Unimplemented Features ...................................................... 57 5.5. Deployment on the Server ................................................................................ 58 6. Use of the System and Evaluation ........................................................................... 60 6.1. Menu Bar .......................................................................................................... 60 6.2. Editor Panel ...................................................................................................... 64 6.3. Analysis Panel .................................................................................................. 65 6.4. Other Services .................................................................................................. 67 7. Conclusion ............................................................................................................... 68 Bibliography .................................................................................................................... 69 Appendix ........................................................................................................................ 71 April 4, 2019 Hsuan-Ming Chen 5/85 LIST OF FIGURES Figure 1: Web interface of Mathematica ......................................................................... 12 Figure 2: Web interface of MATLAB ............................................................................... 13 Figure 3: Web interface of RStudio ................................................................................ 14 Figure 4: Web interface of Maple ................................................................................... 15 Figure 5: Web interface of Geogebra ............................................................................. 16 Figure 6: RCP/RAP architecture ..................................................................................... 18 Figure 7: JSP architecture .............................................................................................. 19 Figure 8: OpenXava model-driven framework [30] ......................................................... 20 Figure 9: GWT architecture ............................................................................................ 21 Figure 10: The main window of RISCAL software .......................................................... 24 Figure 11: Error detection of RISCAL software .............................................................. 25 Figure 12: The optional features under the menu bar of RISCAL software .................... 25 Figure 13: The “Other Value” window of RISCAL software ............................................ 26 Figure 14: The difference of the “Silent” option being selected ...................................... 26 Figure 15: The user interface of RISCAL software with task panel ................................ 27 Figure 16: The visualization feature of RISCAL software ............................................... 28 Figure 17: The parallel function of RISCAL software ...................................................... 28 Figure 18: The testing program with Java SWT ............................................................. 32 Figure 19: Source code of Java testing