Die International Standards Organization (ISO) definiert und veröffentlicht Datenstandards, die von einer Vielzahl an Unternehmen im öffentlichen und privaten Sektor verwendet werden. ISO8583 ist ein im Bank- und Finanzdienstleistungssektor allgemein verwendeter ISO-Standard, der ein Nachrichtenformat für Kreditkarten- und Kundenkartendaten definiert, die zwischen Geräten und Kartenausgabestellen ausgetauscht werden. Dieser Standard wird in der Regel für POS-Einheiten und Geldausgabeautomaten verwendet. Die Nachrichten selbst enthalten Informationen zum Wert einer Transaktionen, wo sie getätigt wurde, die Kontonummer der Karte und die Bankleitzahl. Bei den Anwendungen, an die die Daten übermittelt werden, kann es sich beispielsweise um Anwendungen für die Überweisung von Geldern von einem Konto auf ein anderes, für die Zahlung von Rechnungen oder zum Aufladen von Mobiltelefonkarten handeln. WebSphere Message Broker kann diese Middleware-Szenarios unterstützen, indem die Umwandlung von Daten zwischen dem ISO8583-Standard und komfortableren Standards wie XML und über andere Protokolle wie beispielsweise WebSphere MQ, FTP oder HTTP ermöglicht wird.
Die folgende Abbildung zeigt den Aufbau einer ISO8583-Nachricht:
ISO8583-Nachrichten kann ein benutzerdefinierter (häufig proprietärer) Header vorangestellt sein; die Basisstruktur enthält aber immer die folgenden Teilen:
Dieser Mustercode stellt die Message Broker-Bibliothek ISO8583Library bereit, in der die Felder definiert sind, aus denen sich die oben angegebenen drei Teile zusammensetzen. Importieren Sie den Mustercode in Ihren Arbeitsbereich, um dieses Nachrichtenmodell im Detail zu betrachten. Im Folgenden sehen Sie einen Screenshot, der einen Teil des Modells zeigt, gefolgt von einer Übersicht über die Feld- und Datentypimplementierung:
Die vier MTI-Felder geben an, was für eine Nachricht übertragen wird. In der Regel ermitteln Anwendungen über den MTI, ob für die Nachricht eine Antwort erforderlich ist und welches Format die Antwort haben muss, d. h., welche Werte im MTI übertragen werden und welche Felder vorhanden sein müssen. Diese Entscheidung wird in der Regel von der Anwendung getroffen, an die Message Broker die ISO8583-Daten übermittelt, daher werden in diesem Mustercode die Felder ohne eine weitere Überprüfung oder Umwandlung ihres Inhalts durchlaufen.
Die primäre Bitmap (Primary Bitmap) und die sekundäre Bitmap (Secondary Bitmap) werden im DFDL-Modell über eine integrierte Gruppe (Embedded Group) definiert, in der die einzelnen Bitmaps anhand eines komplexen Elements dargestellt sind. Das komplexe Element für die primäre Bitmap enthält 64 Felder (Bit001 bis Bit064), die alle als 'unsignedInt' definiert sind, genau einmal vorkommen und eine Länge von 1 Bit haben. Das komplexe Element für die sekundäre Bitmap enthält 64 Felder (Bit065 bis Bit128), die alle als 'unsignedInt' definiert sind, genau einmal vorkommen und eine Länge von 1 Bit haben. Die einzelnen Nachrichtendatenfelder (die im Modell auf die Bitmaps folgen) sind optional ('minOccurs=0' und 'maxOccurs=1'); für jedes Nachrichtendatenfeld ist ein Ausdruck definiert, der vorgibt, dass das Attribut 'dfdl:occursCount' mit dem entsprechenden Bit aus der primären oder sekundären Bitmap übereinstimmt. Für das Nachrichtenfeld 'PrimaryAccountNumber_002' beispielsweise gilt: dfdl:occursCount="{/ISO8583_1987/PrimaryBitmap/Bit002}"
Die sekundäre Bitmap ist selbst ein optionales Feld. 'Bit001' in der primären Bitmap gibt an, ob in der Nachricht eine sekundäre Bitmap enthalten ist.
Für jedes Nachrichtenfeld im ISO8583-Standard ist der erlaubte Inhalt (Datentyp) definiert:
Numerische Datenelemente sind rechtsbündig; wenn eine feste Länge definiert ist, enthalten sie führende Nullen. Im ISO8583-Standard werden numerische Datenelemente über das Attribut 'n' angegeben. Diese Konvention wurde für die Namen der einfachen Typen übernommen, die im DFDL-Modell verwendet werden. Numerische Datenelemente können einer Vielzahl von Geschäftszwecken dienen; so können mit ihnen Geldbeträge in Form von Dezimalzahlen, Werte für Datum und Uhrzeit oder numerische Datenfolgen wie beispielsweise eine Kontonummer angegeben werden. Im DFDL-Modell werden dazu unterschiedliche einfache XML-Schematypen verwendet, die von anderen primitiven XML-Schemadatentypen erben. Diese einfachen Typen haben die folgenden Bezeichnungen:
Alphabetische Datenelemente sind linksbündig; wenn eine feste Länge definiert ist, enthalten sie nachgestellte Leerzeichen. Im ISO8583-Standard werden alphabetische Datenelemente über das Attribut 'a' angegeben. Diese Konvention wurde für den Namen des einfachen Typs übernommen, der im DFDL-Modell für alphabetische Datentypen verwendet wird:
Alphabetische Datenelemente sind linksbündig; wenn eine feste Länge definiert ist, enthalten sie nachgestellte Leerzeichen. Im ISO8583-Standard werden alphanumerische Datenelemente über das Attribut 'an' angegeben. Diese Konvention wurde für den Namen des einfachen Typs übernommen, der im DFDL-Modell für alphanumerische Datentypen verwendet wird:
Spezielle alphanumerische Datenelemente sind linksbündig; wenn eine feste Länge definiert ist, enthalten sie nachgestellte Leerzeichen. Im ISO8583-Standard werden spezielle alphanumerische Datenelemente über das Attribut 'ans' angegeben. Diese Konvention wurde für den Namen des einfachen Typs übernommen, der im DFDL-Modell für spezielle alphanumerische Datentypen verwendet wird:
Die Länge binärer Datenelemente ist eine integrale Anzahl von Bytes. Kein binäres Datenelement hat eine Länge von weniger als 8 Bits (1 Byte). Im ISO8583-Standard werden binäre Datenelemente über das Attribut 'b' angegeben. Diese Konvention wurde für den Namen des einfachen Typs übernommen, der im DFDL-Modell für binäre Datentypen verwendet wird:
Im ISO8583-Standard sind bestimmte Datenelemente als Typ 'Track 2' oder 'Track 3' definiert. Die genaue Syntax dieser Elemente wird über weitere ISO-Standards vorgegeben. Im ISO8583-Standard werden Daten des Typs 'Track' über das Attribut 'z' angegeben. Diese Konvention wurde für die Namen der einfachen Typen übernommen, die im DFDL-Model verwendet werden:
Einige Datenelemente sind im ISO8583-Standard mit einer variablen Länge definiert; sie enthalten ein Längenpräfix, die jeweils die Länge des Feldes angibt (in Form von zwei oder drei numerischen Ziffern). Im ISO8583-Standard gibt 'LL' für das Längenpräfix eine Länge zwischen 01 und 99, 'LLL' eine Länge zwischen 001 und 999 an. Datenelemente dieses Typs unterliegen unter Umständen weiteren Einschränkungen (das Element 'PrimaryAccountNumber' beispielsweise enthält das Präfix 'LL', gleichzeitig ist aber eine maximale Länge von 19 Bytes vorgegeben). Für diese Einschränkungen werden im DFDL-Modell Facetten verwendet. Im DFDL-Modell sind die folgenden einfachen Typen definiert, die ein Längenpräfix verwenden: