uio--WebPageMain-Module

KONZEPT

PART 1: Das Ganze sehen.

Der Begriff JAVA wird von vielen Menschen gleichgesetzt mit der zugehörigen Programmiersprachen JAVA, doch genau genommen geht es bei JAVA und auch der Marke JAVA von Oracle um JAVA Technology bzw. JAVA Technologien.

Zu JAVA zählt also nicht nur die Programmiersprache mit Ihrer Syntax sondern zuerst einmal auch der zugehörige Compiler mit welchem JAVA Code in den ByteCode übersetzt wird, welcher wiederum in einer späteren Runtime wie einst die JRE, inzwischen Teil des OpenJDK, oder auch der GraalVM als Virtuelle Maschine ausgeführt wird.

JAVA hat viele Ähnlichkeiten mitunter mit JAVASCRIPT, geht aber weit über JAVASCRIPT hinaus. Diese Besonderheit von JAVA besteht seit etwa 2019 in Verbindung mit der GraalVM Runtime als Alternative zur den sonst üblichen Runtimes darin, dass die GraalVM als Virtual Machine nicht nur Java, Groovy, Kotlin und dergleichen unterstützt sondern serverseitiges JavaScript mit NodeJS [1] nebst npm Paketen und damit nun Java in Verbindung mit JavaScript das Backend für und Frameworks wie React [2] , Angular [3] und Vue [4] bilden kann.

JAVA war über Jahrzehnte die Nummer 1 der Programmiersprachen welche in Schulen, Universitäten und Fachschulen in Deutschland als erste Programmiersprache unterrichtet wurden. Diese Position hat JAVA ab 2020 teilweise in Schulen an Python verloren weil man die Ansicht vertritt, dass Einsteiger zu erst eine Sprache mit einer vermeintlich einfacheren Syntax und ohne strikte Typisierung lernen mögen.

Das entspricht in etwa dem Prinzip, dass man in Musik zuerst Trommeln, Triangel oder ein Klavier hinstellt und dann die Nutzung der schwarzen Tasten verbietet.

Die wirkliche Komplexität in der Programmierung ist nicht die Syntax einer Programmiersprache, denn die schafft die für größere Projekte dringend anzuratende Ordnung: Es sind die Problemstellungen, die man über Programme zu lösen versucht.


Das untenstehende Beispiel zeigt, wie man in JAVA einen LOCK-File unter Linux anlegen, prüfen und wieder löschen kann. Mit diesem Ansatz kann ein Service sicherstellen, dass ein Zugriff auf eine Ressource bei nebenläufigen Programmteilen im Programmverlauf immer nur von einem einzigen Teil zur Zeit erfolgen kann.

Dieses entspricht in etwa dem Prinzip einer eingleisigen Zugstrecke wo ein Zugführer den Gleisabschnitt nur befahren darf, wenn er einen entsprechenden Token hat, also irgendein ein Objekt was nur ein einziges Mal vorhanden ist.

Nach einer Nutzung muss dieser Token oder Schlüssel oder Objekt dann allerdings wieder verlässlich freigegeben werden.


                
                
                
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ResourceLocker {
    private static final String LOCK_DIR = "/var/run/myapp";
    private static final String LOCK_FILE = LOCK_DIR + "/daten.xml.lock";

    public static void main(String[] args) {
        try {
            // Erstelle das Verzeichnis, falls es nicht existiert
            Files.createDirectories(Paths.get(LOCK_DIR));

            // Überprüfe und erzeuge die Lock-Datei
            File lockFile = new File(LOCK_FILE);
            if (lockFile.exists()) {
                System.out.println("Ressource ist bereits in Verwendung.");
                return;
            } else {
                lockFile.createNewFile();
                System.out.println("Ressource ist gesperrt.");
            }

            // Hier erfolgt der Zugriff auf die Ressource
            // Beispiel: Lese oder schreibe in daten.xml

            // Entferne die Lock-Datei nach dem Zugriff auf die Ressource
            lockFile.delete();
            System.out.println("Ressource ist freigegeben.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
                

Links

PART 2: Links

FootNotes


  • [1]↑ : Node.js ist eine serverseitige Laufzeitumgebung für JavaScript, die auf der V8-Engine von Google basiert. Es ermöglicht die Ausführung von JavaScript außerhalb des Browsers und eignet sich besonders für die Entwicklung von skalierbaren Netzwerk- und Echtzeitanwendungen.
  • [2]↑ : React ist eine JavaScript-Bibliothek, die von Facebook entwickelt wurde, um Benutzeroberflächen zu erstellen. Sie verwendet ein komponentenbasiertes Modell und ermöglicht die Entwicklung von wiederverwendbaren UI-Komponenten. React ist besonders beliebt für die Erstellung von SPAs.
  • [3]↑ : Angular ist ein von Google entwickeltes Framework für die Entwicklung von Single-Page-Anwendungen (SPAs). Es verwendet TypeScript und bietet eine umfassende Struktur für die Erstellung dynamischer und reaktiver Webanwendungen.
  • [4]↑ : Vue.js ist ein progressives JavaScript-Framework für den Aufbau von Benutzeroberflächen. Es ist flexibel, leichtgewichtig und eignet sich sowohl für einfache als auch komplexe Anwendungen. Vue.js ist bekannt für seine einfache Integration und Lernkurve.

npm, Python, Token

UI ORGANIZED.

UIO3 Es ist einfacher als Du denkst.

Stelle noch heute Deine Anfrage.

uio--WebPageFooter-Module