[NEWSboard IBMi Forum]
Seite 1 von 3 1 2 ... Letzte
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.102

    REST Webservices / Verwendung von SYSTOOLS

    Hallo,
    wir planen den verstärkten Einsatz von Webservices, damit unsere PC- und Web-Developer standardisiert mit der iSeries kommunizieren können. Wir werden dazu REST-Webservices implementieren. Das Herausgeben von Daten konnten wir relativ einfach in RPG implementieren, da die JSON-Syntax ja nicht so komplex ist.

    Wir haben allerdings noch nichts implementiert, um Daten über so einen Webservice in die iSeries hereinzubekommen. Bevor wir uns da unnötige Mühe machen, möchte ich deshalb fragen, ob es da vielleicht etwas gibt, das uns die Arbeit erleichtert. In der Bibliothek SYSTOOLS beispielsweise gibt es ja eine ganze Reihe von SQL-Funktionen, die HTTP-Funktionalität bereitstellen. Ich habe auch gelesen, dass es XML-Unterstützungen für SQL gibt. Vielleicht gibt es ja so etwas auch für JSON?

    Und noch eine Frage: Die SQL-Funktionen in SYSTOOLS sind laut IBM in Java implementiert. Gibt es Probleme, wenn man solche Funktionen in Webservices einsetzt? Bei vielen gleichzeitigen Anfragen an den Webservice werden dann ja sicherlich viele Jobs für die Verarbeitung gestartet. Wenn die Jobs dann eine solche SYSTOOLS-Funktion verwenden, müssen sie ja eine VM starten. Kann das zu Speicher/Performanceproblemen führen?

    Dieter

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von dschroeder Beitrag anzeigen
    Und noch eine Frage: Die SQL-Funktionen in SYSTOOLS sind laut IBM in Java implementiert. Gibt es Probleme, wenn man solche Funktionen in Webservices einsetzt? Bei vielen gleichzeitigen Anfragen an den Webservice werden dann ja sicherlich viele Jobs für die Verarbeitung gestartet. Wenn die Jobs dann eine solche SYSTOOLS-Funktion verwenden, müssen sie ja eine VM starten. Kann das zu Speicher/Performanceproblemen führen?

    Dieter
    ... nicht nur das, die JVM muss ja auch "passen" und da sie nur einmal im Job startbar ist, müssen erforderliche Einstellungen (Java Version, classpath etc. global vernagelt werden.
    Sinniger ist es mit einer prestarted JVM und Adapter Klassen zu arbeiten, die von Java nach RPG transformieren. Wer will, kann dafür meine OpenSource AppServer4RPG nutzen. Wer schnell zum Ziel kommen will, mit 2 Tagen Workshop hat man da die ersten Aufrufe laufen und macht dann selber weiter.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Aug 2014
    Beiträge
    179
    Hallo Dieter,

    für das Erzeugen und Parsen von JSON gibt es von der IBM leider noch kein Produkt. Auf der Seite von Scott Klement www.scottklement.com/yajl/ gibt es einen JSON-Generator und Parser, der sehr gut funktioniert. Ich habe ihn seit einen Jahr im Einsatz.

    Herzliche Grüße

    Rainer

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Zitat Zitat von Rainer Ross Beitrag anzeigen
    Hallo Dieter,

    für das Erzeugen und Parsen von JSON gibt es von der IBM leider noch kein Produkt.
    Es gibt aber einen Artikel von Mike Sansoterra zum Thema Verarbeitung von JSON aus WebServices mit SQL Funktionen.

    TechTip: JSON and XML Conversion in DB2 for i

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... noch ein paar Ergänzumgen:
    - JSON Tools für RPG gibt es auch auf RPGNEXTGEN.com
    - JSON in XML zu konvertieren, um das dann in RPG zu verfummeln - das Konzept ist mir fremd
    Der Aufwand für eine Entkoppelung der SYSTOOLS Funktionalitätem (sprich ausführen in einer prestarted JVM) sollte überschaubar sein; under the cover laufen da eh' (de facto) Standard Java Libraries.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Herzlichen Dank für alle Antworten. Da sind ja sehr unterschiedliche Vorschläge dabei. Der Artikel von Mike Sansoterra beschreibt die Konvertierung zwischen JSON und XML. Ehrlich gesagt sehe ich da nicht sofort einen Vorteil (für unsere Problemstellung).

    Mein Hauptproblem bei der Verarbeitung von JSON ist, dass ich da wahrscheinlich sehr wenig generisch programmieren kann. Ich könnte mir vorstellen, Tools zu schreiben (oder z.B. von RPGNEXTGEN zu verwenden), die einen beim Parsen unterstützen. Aber was mache ich dann mit den geparsten Infos? Eventuell bekomme ich ja ein ganzes Array von komplexen Objekten. Da RPG keine dynamischen Array-Datenstrukturen kennt, müsste ich für so einen Fall ja ziemlich große Arrays vorsehen und durch alle möglichen Weiterverarbeitungsprogramme durchreichen.
    Oder ich müsste die geparsten Infos in Datenbanktabellen schreiben.

    Java hat es da einfacher, weil es ja prinziell beliebig große Objekte, bzw. auch Listen davon, verarbeiten und durchreichen kann.

    Ich schaue mir auf jeden Fall alle vorgeschlagenen Links an.

    Nochmals vielen Dank an alle.

    Dieter

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von dschroeder Beitrag anzeigen
    Da RPG keine dynamischen Array-Datenstrukturen kennt, müsste ich für so einen Fall ja ziemlich große Arrays vorsehen und durch alle möglichen Weiterverarbeitungsprogramme durchreichen.

    Java hat es da einfacher, weil es ja prinziell beliebig große Objekte, bzw. auch Listen davon, verarbeiten und durchreichen kann.
    ... sicher geht das in Java einfacher, aber das lässt sich auch in RPG kapsln. Da gibt es ein paar RPG Komponenten (Vector, Hashtable, LinkedList...) auf meiner Open Source Seite, bei Mihael auf RPGnextgen und Thomas auf der Tools400 hat sicher auch was passendes.
    Was vehement für Java spricht ist, dass das unabhängig von der Komplexität und Weiterentwicklung von Standards, immer mit frei verfügbaren, hochwertigen Komponenten geht. Setzt man auf RPG, oder dem Spielkram in der SYSTOOLS auf, steht einem eventuell in Kürze ein Technologiewechsel ins Haus, weil man an die Grenzen kommt.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wenn man Dieters Komponenten nicht mag, kann man sich natürlich auch dynamische Arrays selber erstellen.
    Mittels "based myPointer" können DS'n dynamisch per %alloc(), %realloc() erstellt und mit %free() wieder freigegeben werden.
    Die &lookup()-Funktionen erlauben nun auch die Angabe der Anzahl existierender Elemente.

    Wichtig zu wissen:
    Im *SNGLVL-Storage kann der größte zusammenhängende Bereich nur 16MB sein, allerdings darf man davon auch mehrere. Liegt man nun sein dynamisches Array wiederum in Form eines Pointer-Arrays an, kann man 1Mio Pointer verwalten.

    Wem das zu kompliziert ist, der muss auf Teraspace umstellen. Hier kann man Speicher allocieren bis die Platte platzt (max. Adressraum ist 64-Bit!), also halt Terabytes.

    Nimmt man nun Dieters Komponenten dazu und diese übernehmen den Speichertyp des Callers dürfte der Dynamic (fast) keine Grenzen gesetzt sein.

    Bisher bin ich zumindest (auch ohne Dieter) mit den 16MB-Beschränkungen bei weitem ausgekommen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Feb 2003
    Beiträge
    119
    Hallo Dieter,

    falls Ihr bereits auf V7 seid hier ein vllt. hilfreicher link

    http://www.itjungle.com/tfh/tfh020415-story04.html

  10. #10
    Registriert seit
    Jan 2001
    Beiträge
    832
    Hallo

    vllt. kommt auch noch PHP ins Spiel.

    Da gibt es fertige Konvertierungen von und nach JSON --> XML

    Gruß
    Michael

  11. #11
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Wichtig zu wissen:
    Im *SNGLVL-Storage kann der größte zusammenhängende Bereich nur 16MB sein, allerdings darf man davon auch mehrere. Liegt man nun sein dynamisches Array wiederum in Form eines Pointer-Arrays an, kann man 1Mio Pointer verwalten.
    Das wusste ich nicht. Ich dachte, der Speicher wäre im normalen Speichermodell insgesamt auf 16MB begrenzt. Ist ein interessanter Ansatz!
    Danke.

  12. #12
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Zitat Zitat von BenderD Beitrag anzeigen
    ... sicher geht das in Java einfacher, aber das lässt sich auch in RPG kapsln. Da gibt es ein paar RPG Komponenten (Vector, Hashtable, LinkedList...) auf meiner Open Source Seite, bei Mihael auf RPGnextgen und Thomas auf der Tools400 hat sicher auch was passendes.
    Was vehement für Java spricht ist, dass das unabhängig von der Komplexität und Weiterentwicklung von Standards, immer mit frei verfügbaren, hochwertigen Komponenten geht. Setzt man auf RPG, oder dem Spielkram in der SYSTOOLS auf, steht einem eventuell in Kürze ein Technologiewechsel ins Haus, weil man an die Grenzen kommt.

    D*B
    OK, vielen Dank. Das heißt, man sollte nicht zu sehr auf die SYSTOOLS setzen. Die Seite RPGNEXTGEN finde ich übrigen sehr übersichtlich. Ein wertvoller Link!

Similar Threads

  1. Artikel: Anordnung und Verwendung von ENPTUI-Schlüsselworten
    By NEWSolutions Redaktion in forum NEWSolutions artikel
    Antworten: 0
    Letzter Beitrag: 13-11-13, 04:57
  2. Kostenloser id@y Webservices mit .NET am 28.11. in Burghausen
    By ppedv in forum Archiv NEWSboard Events
    Antworten: 0
    Letzter Beitrag: 24-10-02, 10:58
  3. Verwendung von QLOCALE und QUTCOFFSET
    By Sven Schneider in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 25-04-02, 10:50
  4. Verwendung von RPC unter C
    By abecker in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 29-01-01, 14:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •