Vorherige Projektversionen - tlaul0l0/OR-WebSS21 GitHub Wiki
Die Version sind nach Alter absteigend geordnet.
(Älteste Version = 1. Überschrift usw.)
Notiz für zeitliche Einordnung: Ab 23.03.2021 stand uns die Methodenbank zur Verfügung. Am 13.4.2021 konnten wir auf einen Teil des Projektes (inkl. Sourcecodes) von ORWeb_SS2017 zugreifen, welche uns von Herrn Eiermann zur Verfügung gestellt wurde. Am 22.04.2021 erhielten von Herrn Önnisan wir weitere Versionen: ORAlpha_WS1516, Methodenbank_SS2018 und Teamprojekt_WS1718. Am 26.05.2021 haben wir einen Abzug vom letzten Stand des GitRepos ORWeb_SS2017 von Markus Jäckle erhalten. Alle Projektversionen können hier gedownloadet werden: https://bwsyncandshare.kit.edu/s/ZkmsbYKNteArwZK (Anmeldung: Mitglied im bwSync&Share-Verbund /"HTWG Konstanz" / Proceed / eigener Hochschul-Acc + eigenes PW).
Die Methodenbank wurde uns anfangs zur Verfügung gestellt. Im Excel-Sheet Refactoring OR-Software kann im Tabellenblatt "Methodenbank_ALT_Übersicht" ein erster Überblick gewonnen werden. Im Tabellenblatt "Methodenbank_ALT_Solver" analysierten wir folgende Details über die Solver:
- Funktionert der Solver?
- Gibt es eine dazugehörige Doku?
- Wo ist die Ausführungsdatei des Solvers zu finden?
- Ist der Sourcecode kommentiert?
- In welcher Programmiersprache ist der Solver geschrieben worden?
- Gibt es für den Solvern Java Code bzw. Bibliotheken? (Ursprünglich wollten wir die Methodenbank in Java refactoren)
Auch für Methoden wurde eine Analyse im Tabellenblatt "Methodenbank_ALT_Methoden" durchgeführt. Spalte A+B zeigt die Ordnerstruktur vom Ordner Datei. In Spalte C+D ist die Ordnerstruktur im Ordner Methoden aufgelistet. In Spalte G ist die Ordnerstruktur so wie in der OR_Alpha.exe bzw. im or-alpha.xml abgebildet. Im ersten Schritt viel auf, dass sich im Ordner Methoden einige Methoden doppelt vorkommen (Spalte C: orange gekennzeichnet). Anschließend wurde identifiziert, welche Methoden in OR_Alpha eingepflegt wurden und welche nicht (Spalte E: rot markiert, falls Methode nicht in OR_Alpha enthalten ist). Danach analysierten wir folgende weitere Details:
- Ist die Methode eine Native oder Web-Methode?
- Wo ist die Ausführungsdatei des Solvers zu finden?
- In welcher Programmiersprache wurde die Methode geschrieben?
- Gibt es sonstige Auffälligkeiten?
Bei diesem Projekt ORAlpha_WS1516 hatten wir uns nur in den Sourcecode eingelesen.
Einen weiteren Überblick ist im Excel-Sheet Refactoring OR-Software in Tabellenblätter "OR_Web_SS17" sowie "OR_Web_SS17_MariaDB" ersichtlich. Auch gibt es hierzu eine technische Dokumentation. Das ORWeb_Teamprojekt_SS17 inkl. Sourcecode steht hierals ZIP-Datei zum Download zur Verfügung.
Die Voraussetzung für den Zugriff auf diese IP-Adresse bzw. Webseite ist eine bestehende VPN-Verbindung zur Hochschule Konstanz sowie ggf. eine Freischaltung dafür vom Rechenzentrum Konstanz ([email protected] ).
IP-Adresse | http://141.37.122.49/ | ||||||
Web-Seite | http://or.in.htwg-konstanz.de/ | ||||||
Login-Daten für ORWeb |
|
||||||
SSH |
|
||||||
Maria DB |
|
Voraussetzung: Zugriff auf den Web-Server kann per E-Mail an [email protected] freigeschalten werden.
Hinweis: Der letzte Commit, laut .git Folder der auf diesem Server liegt, erfolgte am 21.06.2017. Eine aktuellere Version ist ORWeb_Teamprojekt_SS17.zip zu finden.
- PowerShell öffnen
- Folgendes eingeben, z.B.:
ssh [email protected]
(Syntax:ssh user@ip-adresse
)
user: orweb
user: root
ip-adresse: 141.37.122.49 - Passwort eingeben:
PW für orweb: (4t44K6@8Ka/
PW für root: 37j36g=fo)4) - Aufs benötigte Verzeichnis wechseln:
bei orweb:cd git
bei root:cd /home/orweb/git
- Inhalt auflisten:
ls -al
- Verbindung schließen:
exit
Falls man die SSH-Verbindung öfters benötigt, kann man mittels PuTTy sich schneller einloggen. Voraussetzung: Bestehende VPN-Verbindung
- Download PuTTy
- PuTTy installieren
- PuTTy Verknüpfung senden an Desktop
- Rechte Maustaste auf PuTTy Verknüpfung / Eigenschaften auswählen
- Bei Ziel folgendes eintragen:
"[Speicherpfad_von_putty.exe]" [user]@[ip-adresse] -pw [pw]
(z.B."C:\Program Files\PuTTY\putty.exe" [email protected] -pw 37j36g=fo)4)
) - Übernehmen / OK
- Doppelklick auf die eben eingerichtete Verknüpfung, um die Verbindung aufzubauen.
-
mysql -u <user> -p
Ersetze<user>
mit root oder orweb - PW eingeben
für root: 3N473pP=t8cM
für orweb: 4dpGn9wH4M98
SHOW DATABASES;
USE orweb;
SHOW TABLES;
SELECT * FROM user;
Öffnet man die Webseite von ORWeb im Browser und navigiert man zu Administration/Login, so wird man aufgefordert die E-Mail-Adresse und Passwort einzugeben. Versucht man diese Daten einzugeben, wird die Fehlermeldung "invalid credentials" geworfen.
Im ORWeb_Teamprojekt_SS17\master\ORWeb_Frontend\src\main\resources\import.sql sind die Benutzerdaten, die in die Datenbank vermutlich eingefügt werden sollten. In dieser Datei ist das Connection Profile leer und der Status "Disconnected, Auto Commit". In der READ.ME von ORWeb_Frontend kann man zu dem Eintrag "import.sql" Folgendes finden:
#### database access
* while developing a embedded h2 in-memory db is used
* DB Tables are user, method, solver, downloads, chart_visited
* the schema is automatically created by hibernate when the application starts
* the necessary initial data for the db is loaded from the [import.sql]((src/main/resources/import.sql) file
* you can connect a console for the db at http://localhost:8080/consoley
* credentials for the console login: **user: "sa"** / **password: "<blank>"** / **jdbc url: "jdbc:h2:mem:testdb"**
Dies ist insofern interessant, weil im pom.xml ist nur die Dependency für MariaDB (und nicht von h2) eingerichtet wurde. Auch das Verbinden zur Console http://localhost:8080/console funktioniert nicht und wirft einen Fehler mit Fehlercode 404. Im import.sql fanden wir die private E-Mail-Adresse von Stephen Beck, über welche wir ihn kontaktierten und um Hilfe fragten. Über ihm erhielten wir später Kontakt zu Markus Jäckle.
Zu diesem Zeitpunkt hatten wir nur Zugriff auf mittels SSH und keine grafische Oberfläche.
Wenn man zugreift auf den WebServer und anschließend "top" im SSH eingibt, sieht man die aktuell laufenden Prozesse auf dem WebServer. Dann kann man auf den eigenen Rechner die ORWeb-Website aufrufen und beim Login von ORWeb_SS17 sich versuchen einzuloggen. Als die Login-Request versendet wurde, taucht in top kurz der Prozess "mysqld" auf. (q drücken,um top wieder zu schließen.)
Nach einer weiteren Recherche haben wir herausgefunden, dass der Prozess von einer MariaDB (also nicht H2 DB) ausgeht.
Mittels SSH kann man in der Konsole Befehle ausführen (siehe MariaDB Zugriff mittels SSH). Es steht bei table user
ein anderes PW für [email protected] als im import.sql.
Loggt man sich mittels SSH/PuTTy ein und gibt den Befehl ls -al
ein, so findet man im Verzeichnis ein .mysql_history
-Ordner vor.
Hier ist eine Historie über alle eingegebenen Befehle für MariaDB ersichtlich. Im Excel-Sheet Refactoring OR-Software / Tabellenblatt OR_Web_SS17_MariaDB sind alle Passwörter aufgelistet, die wir probiert aufgelistet hatten.
Loggt man sich mittels SSH/PuTTy ein und gibt den Befehl ls -al
ein, so findet man im Verzeichnis ein .vnc
-Ordner vor. VNC ist ähnlich wie Remote Desktop Protokoll (RDP) (Remotedesktop Verbindung /TeamViewer). Virtual Network Computing (VNC) ist eine Software, die den Bildschirminhalt eines entfernten Rechners auf einem lokalen Rechner anzeigt und im Gegenzug Tastatur- und Mausbewegungen des lokalen Rechners an den entfernten Rechner sendet. Dadurch hätte man eventuell den Sourcecode am Web-Server debuggen können. Im RZ war leider nicht bekannt, wie die Zugangsdaten für diesen VNC-Server lauten. Nach unseren erfolglosen Versuchen uns eine VNC-Verbindung herzustellen und da die Neukonfigurierung eines VNC-Servers zu viel Zeit in Anspruch nehmen würde, entschlossen wir uns, dass wir im nächsten Schritt versuchen, OR-Web lokal auf unseren eigenen Rechnern laufen zu lassen.
Kurze Anleitung für VNC:
- Download & Installieren: https://de.softonic.com/download/tigervnc/windows/post-download
-
vncserver -list
: Befehl im PuTTy eingeben; zeigt ein TigerVNC an & aktive Verbindungen an - Befehl fürs Starten des VNC Servers im PuTTy eingeben:
vncserver
- Zugriff mittels VNC Viewer: Starte VNC Viewer auf eigenen PC
- Eingabe der IP:
141.37.122.49[:Port]
- Befehl fürs Beenden des VNC-Servers im PuTTy eingeben:
vncserver –kill
Unsere Versuche:
-
xtigervncviewer -SecurityTypes VncAuth -passwd /home/orweb/.vnc/passwd :2
wird vorgeschlagen von VNC-Server nach dem Start - Firewall ganz abschalten: kommt andere Fehlermeldung (Vermutlich weil RZ generell keinen Zugriff ohne Firewall erlaubt)
- Firewall Ports 5900, 5800 öffnen
Manual für TigerVNC: https://tigervnc.org/doc/vncviewer.html
- Projekt in IDE öffnen
cd ORWeb_Common
-
mvn clean install
(-> Falls hier Fehler auftritt, ist Fehlerbehandlung im Abschnitt "Fehler mvn unbekannt" oder "Fehler java.xml.bind" ersichtlich.) cd ../ORWeb_LPS
mvn clean install
cd ../ORWeb_Frontend
npm install
-
gulp
(-> Falls hier Fehler auftritt, ist Fehlerbehandlung im Abschnitt "Fehler gulp" ersichtlich.) -
mvn clean install
(-> Falls hier Fehler auftritt, ist Fehlerbehandlung im Abschnitt "Fehler MariaDB" ersichtlich.) - Tomcat konfigurieren (siehe unten)
- ORWeb_Frontend / src/main/java / de.htwg.orweb öffnen
- OrwebApplication.java öffnen / Bean Kommentierung aufheben (Zeile 31 - 37) & import Bibliotheken
- Rechte Maustaste auf OrwebApplication.java / Run As / Run Configurations ...
- Register "Arguments" / Program arguments: "passwort" /Apply /Run
https://mkyong.com/java/how-to-set-java_home-on-windows-10/
in jede pom.xml (also: von ORWeb_Common,ORWeb_Frontend und ORWeb_LPS) zwischen den <dependencies>
-Tags hinzufügen:
<dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>2.3.2</version> </dependency>
a. Falls ihr schon eine lokale gulp Version habt, könnt ihr folgenden Befehl ausführen:
npm uninstall -l gulp
b. gulp installieren: npm install --global gulp-cli
c. lokale version von gulp installieren: npm install --save-dev gulp
d. Befehl, um Package für neuere Version von runSequence für gulpfile.js zu installieren: npm install gulp4-run-sequence
e. gulpfile.js im ORWeb_Frontend mit gulpfile.js mit der folgenden aktualisierten Version ersetzen: https://github.com/tlau10/OR-WebSS21/blob/dev-dokumentation/documentation/Vorherige%20Projekte/gulpfile.js
f. Befehl, um Package für neuere Version von folders für gulpfile.js zu installieren: npm i gulp-folders-4x
HINWEISE:
- gulp ist ein Taskrunner, d.h. führt automatisiert wiederholbare Aufgaben aus (z.B. kompellieren von Code)
- Bei Version <3.6.2 taucht Fehlermeldungen "Unsupported gulp version" bzw. "primordials is not defined" auf. Ab Version 3.7.0 wird gulp version wieder supported (Stand 27.04.2021)
https://mariadb.org/download/
WICHTIGER HINWEIS! Sollte nach der Installation dein Rechner extrem langsam starten, dann drücke Windows-Taste, gib "Dienste" ein, wähle mit der rechten Maustaste aus der Liste die MariaDB aus, klick auf Eigenschaften und wähle den Starttyp "Manuell" aus.
a. Bei Installation PW von root verwenden: 3N473pP=t8cM
b. "MySQLClient (MariaDB)" starten
c. PW von root eingeben (Copy+ Paste funktioniert nicht - also PW abtippen)
d. Folgenden Befehl ausführen: CREATE USER orweb IDENTIFIED BY '4dpGn9wH4M98';
e. Folgenden Befehl ausführen: CREATE USER 'orweb'@'%';
f. Folgenden Befehl ausführen: CREATE DATABASE orweb;
g. Folgenden Befehl ausführen: grant all on orweb.* to orweb@localhost identified by '4dpGn9wH4M98';
Hinweis: mit den Befehl select user, password, host from mysql.user;
findet man heraus, welche user in der DB bereits existieren
In der ORWeb_Frontend / pom.xml ab zeilen 66-70 ersetzen mit:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.22</version> </dependency>
Rechte Maustaste auf ORWeb_Frontend / Others / Server / Apache / TomCat & JRE auswählen
Laut ORWeb_Frontend/READ.ME sind folgende Einstellungen zu setzen:
Port: 8081
Location: /opt/tomcat8
Start/Stop: /etc/init.d/tomcat8 start/stop
Weiterführende Quellen:
https://www.torsten-horn.de/techdocs/jee-tomcat-eclipse.htm
https://crunchify.com/tomcat-starts-but-home-page-does-not-open-on-browser-with-url-http-localhost8080/
Von diesem Projekt Teamprojekt_WS1718 ist nur Dokumentation vorhanden, aber wir erhielten dazu kein Sourcecode.
Im Excel-Sheet Refactoring OR-Software im Tabellenblatt "OR_AlphaSS18" wurde dokumentiert, welche Solver und Methoden ausführbar bzw. nicht ausführbar sind und ob dazugehörige Dokumentation vorhanden ist oder fehlt. Der Sourcecode von diesem Projekt ist hier auffindbar.