Over 10 years we help companies reach their financial and branding goals. Engitech is a values-driven technology agency dedicated.

Gallery

Contacts

411 University St, Seattle, USA

engitech@oceanthemes.net

+1 -800-456-478-23

Code Transformation

JOE ist für jeden interessant, der sich mit einer COBOL-Java-Strategie beschäftigt. JOE (Java Object Executor) ist eine neue polymorphische Skriptsprache, die die Migration von komplexen Skripten, die COBOL- und andere Programme miteinander verbinden, erleichtert.

Viele Legacy-Anwendungen sind ein Mix aus COBOL-Programmen und interpretierten Skripten irgendeiner Art (z. B. Bourne-Shell, JCL). Die Programme werden ausgeführt und die Skripte übernehmen oft die administrativen Aufgaben, die hauptsächlich in der Kommunikation mit dem Betriebssystem liegen. Um diese Anwendungen in die Java Umgebung zu migrieren, ist es derzeit notwendig, die Skripte in COBOL- oder Java-Programme zu übersetzen und zu kompilieren.

Dieser Prozess kann langwierig sein und die Ergebnisse könnten eventuell weniger attraktiv sein als der Ausgangspunkt, weil:

    • interpretierte Prozeduren sind jetzt kompilierte Prozeduren;
    • Prozeduren, die mit einer Sprache geschrieben wurden, die auf die Verwaltung von Betriebssystemaufgaben ausgerichtet ist, werden jetzt mit COBOL (einer Business Oriented Language) oder mit Java (einer Mehrzweck Sprache) geschrieben.

JOE‘s Features helfen, den Migrationsprozess zu beschleunigen und gleichzeitig ein besseres Ergebnis zu erzielen. Diese Features sind unter anderem:

    • JOE kann auf jede COBOL / Java-Ressource zugreifen;
    • JOE kann leicht angepasst werden, um in Bezug auf Fähigkeit und Lesbarkeit einer beliebigen Skriptsprache zu ähneln;
    • JOE-Skripte können einfach angepasst werden, um häufig verwendete Vorgänge zur Hand zu haben;
    • JOE-Skripte können einfach erweitert werden, um für zukünftige Anwendungen nützlich zu sein und nicht nur für den Migrationsprozess;
    • JOE-Skripte sind einfach zu verstehen und zu verwenden;
    • 100 % Kompatibilität mit Java (COBOL).

Um die besten Ergebnisse zu erzielen, sind alle Verarbeitungen erforderlich, die mit der COBOL-Umgebung durchgeführt werden.

Als Beispiel fragt das folgende JOE-Skript den Benutzer nach Eingabe und zeigt dann eine Anrede an:

/** JOE says Hello */
!display "What's your name?". VAR 
:= !accept.
!display "Hello ",VAR.
!exit.

Ein weiteres JOE-Skript Beispiel zeigt, wie eine JDBC Verbindung zu einer JDBC Datenbank aufgebaut wird und einfache SQL-Anweisung ausführt. Dieses Beispiel wird OHNE Kompilierung ausgeführt:

JDBC_DRIVER := "org.apache.derby.jdbc.EmbeddedDriver".
JDBC_URL := "jdbc:derby:memory:testdb;create=true".
USER := "".
PASS := "".

conn := conn.
stmt := stmt.
rs := rs.

exc := !try {
   !getClass JDBC_DRIVER.

   conn := !getClassRef "java.sql.DriverManager"
             getConnection JDBC_URL,USER,PASS.

   stmt := conn createStatement.

   stmt execute ("CREATE TABLE DBUSER("
               + "USER_ID DECIMAL(5) NOT NULL, "
               + "FIRSTNAME VARCHAR(20) NOT NULL, "
               + "LASTNAME VARCHAR(20) NOT NULL, "
               + "AGE DECIMAL(3) NOT NULL, "
               + "PRIMARY KEY (USER_ID) "
               + ")").

   stmt executeUpdate ("INSERT INTO DBUSER VALUES ("
               + "1,'John','Doe', 31"
               + ")").
   stmt executeUpdate ("INSERT INTO DBUSER VALUES ("
               + "2,'Jane','Doe', 29"
               + ")").
   stmt executeUpdate ("INSERT INTO DBUSER VALUES ("
               + "3,'Mary','Johnson', 36"
               + ")").
   stmt executeUpdate ("INSERT INTO DBUSER VALUES ("
               + "4,'Bill','Smith', 34"
               + ")").

   rs := stmt executeQuery "SELECT * FROM DBUSER where user_id > 0".

   !while {rs next},{
      !println "USER_ID=",(rs getObject("USER_ID")),
             ", FIRSTNAME=",(rs getObject("FIRSTNAME")),
             ", LASTNAME=",(rs getObject("LASTNAME")),
             ", AGE=",(rs getObject("AGE")),
             .
   }.