Es bestand beim Kunden schon lange der Wunsch, die Abrechnung der Kontingente von Roaming SMS zu optimieren. Da in diesen Fällen kein einzelner Datensatz alleine Grundlage der Abrechnung sein kann und eine fehlerfreie Zuordnung und Anreicherung der entsprechenden Datensätze nicht möglich schien, wurde ?im Zweifel? zu Gunsten des Kunden abgerechnet, mit teils signifikanten entgangenen Umsätzen.
Für die Zuordnung lassen sich im Wesentlichen nur der Sender sowie die Zeitstempel in den Datensätzen heranziehen. Da diese Datensätze von verschiedenen Quellen mit ggf. nicht synchronen Uhren sowie in der Regel aus unterschiedlichen Zeitzonen stammen, treten hier Differenzen in den Stunden und den Sekunden auf, die eine Zuordnung erschweren.
Mit Hilfe eines hoch agilen iterativen ?rapid prototyping? wurden in enger Abstimmung mit dem Fachbereich die Anforderungen ermittelt und anhand der Ergebnisse der Implementierung immer weiter verfeinert. Final wurde ein geeigneter Algorithmus implementiert, der für fast alle Datensätze die Abrechnung ermöglicht und durch die vorgenommene Prüfung der Daten Unstimmigkeiten entdeckte, die bereinigt werden konnten.
Der Kunde bat um Hilfe bei einer unternehmenskritischen Anwendung, bei der nach Vorgaben der Bundesnetzagentur bereits mit einem Preis versehene, aber noch nicht abgerechnete Services zu bestimmten Rufnummern nicht auf der Rechnung erscheinen dürfen. Diese Vorgaben erfolgen regelmäßig mehrmals in der Woche und gelten mit Zustellung. Die vorhandene Lösung war dem wachsenden Umfang dieser Listen nicht mehr gewachsen, da der Aufwand linear mit der Anzahl der Rufnummern anstieg und die Datenbank beim Untersuchen der ca. fünf Milliarden Datensätze umfassenden Tabelle ?am Anschlag? war.
Hier wurde zunächst in einer Vor-Analyse die zu untersuchende Datenmenge innerhalb der Datenbank auf ca. eins von Hundert reduziert und diese sodann mit Hilfe eines Skriptes auf die vorgegebenen Rufnummern untersucht. Dabei kam ein sog. ?digitaler Baum? zum Einsatz, welcher eine ?longest matching prefix? Suche effizient und unabhängig von der Anzahl der zu suchenden Nummern ermöglicht. Durch diese Massnahmen wurde die Datenbank massiv entlastet sowie die Laufzeit der Verarbeitung deutlich reduziert.
Der Kunde wünschte sich unter anderem die Betreuung einer unternehmenskritischen Schnittstelle, die durch häufig auftretende Fehlerfälle eine intensive manuelle Pflege erforderte. Die bei diesen Fehlerfällen durchgeführten Analysen und Maßnahmen erfolgten im agilen Sinne in enger Abstimmung mit dem Fachbereich sowie den Entwicklern und erlaubten es, die offenbar vorhandenen ?Unschärfen? bei der Abbildung der Geschäftslogik durch ein vollständiges Re-Design der Schnittstelle zu beseitigen. Dieses wurde innerhalb der Projektlaufzeit umgesetzt und eliminierte die vorherigen Aufwände fast vollständig.
Ein wichtiger Grundsatz aus dem Qualitätsmanagement lautet: "Ein Fehler kommt umso teurer zu stehen, je später er bemerkt wird". Daher wurde bei der Migration eines Abrechnungssystems beschlossen, die Bereinigung der ca. 100 Millionen Datensätze mit Kundendaten so gut wie möglich im Altsystem vorzunehmen und im besten Fall nur vollständige und korrekte Angaben in das neue System zu übernehmen.
Die Bereinigung der Daten stand unter Anderem vor der Herausforderung, mit der Vielzahl von unterschiedlichen Namen aus diversen Sprachen und Kulturen umzugehen. Es ist das eine, aus "Mueller" ein "Müller" zu machen, bei "Meier" und "Maier" ist es dann schon schwieriger, und ausländische Namen erschweren die Aufgabe zusätzlich.
Durch den Einsatz und die Modifikation der Algorithmen von Jaro und Winkler zur Abstandsmessung und Daitch-Mokotoff zur phonetischen Suche sowie einer Nachbarschaftssuche innerhalb der Damerau-Levenshtein Distanz sowie weiteren Techniken konnten die Daten automatisch mit mehreren weicher werdenden Kriterien überprüft und ggf. sogar automatisiert bereinigt werden. Die danach immer noch fraglichen Daten hatten einen so kleinen Umfang, dass sie dem Fachbereich zur Prüfung und Klärung vorgelegt werden konnten. So wurden im Ergebnis nur geprüfte und für gut befundene Daten in das neue System übernommen.
Der Kunde stand sehr kurzfristig vor der Aufgabenstellung, die Rechnungen aus dem Altsystem auch für das neue System zur Verfügung zu stellen, da sich das ursprünglich geplante Vorgehen aus lizenzrechtlichen Gründen als nicht umsetzbar erwies. Die Lösung ergab sich durch ein in wenigen Wochen durchgeführtes umfangreiches Reverse- und Re-Engineering des alten Abrechnungssystems, wodurch es gelang, ohne Verletzung von Lizenzen die gewünschten Rechnungen auch im Neusystem zur Verfügung zu stellen
Zu Testzwecken bei der Einführung neuer Produkte stellte sich die Aufgabe, aus allen Datensätzen, die von der produktiven Hardware eines Netzbetreibers geliefert werden, genau diejenigen zu finden, in denen eine von ca. zwei Tausend vorgegebenen Telefonnummern vorkommt. Dabei werden pro Tag mehrere Dutzend Millionen Datensätze geliefert, welche binär kodiert sind, verschiedene Arten und Längen besitzen und Telefonnummern an verschiedenen Stellen enthalten. Eine vollständige De-Kodierung und Prüfung jedes einzelnen Datensatzes wäre viel zu aufwändig gewesen, daher wurde ein zweistufiges Verfahren implementiert: erst wurde entschieden, ob ein Datensatz überhaupt eine der fraglichen Nummern enthalten kann, danach die in Frage kommenden exakt geprüft.
Für den ersten Schritt wurde eine Variante eines Bloom-Filters implementiert. Bloom-Filter sind eine probabilistische Datenstruktur, welche zu einer Menge von Werten und einer Anfrage entweder sagt "Kann in der Menge vorkommen" oder "Kommt definitiv nicht in der Menge vor". Dies wurde kombiniert mit einer Modifikation des Horspool Algorithmus, um die notwendigen Rechnungen für das Durchsuchen grosser Datenmengen zu optimieren. Dabei wurde ausgenutzt, dass Telefonnummern - und damit die zu suchenden Muster - eine maximale Länge haben und somit die erzeugte Datenstruktur im First Level Cache Platz fand. Im zweiten Schritte wurden die in Frage kommenden Datensätzen exakt dekodiert und einzeln überprüft.
Durch dieses Vorgehen wurde eine "quasi"-lineare Laufzeit - also eine unabhängig von der Anzahl der zu suchenden Telefonnummern - auf der Menge der zu durchsuchenden Daten erreicht und die Laufzeit im Vergleich zum "naiven" Vorgehen um einen Faktor - je nach Art der Daten - von vier bis fünf Größenordnungen reduziert.
Aufgrund der Erfahrungen im vorausgehenden Projekt beauftragte der Hersteller der Wertpapier-Backoffice Lösung BSP Trade die Automation der Abläufe innerhalb seines Rechenzentrums. Dabei wünschte er sich das Anlegen neuer Mandanten ?auf Knopfdruck?, um seinen Kunden das Produkt ?as-a service? anbieten zu können. Die bereitgestellte Lösung implementierte einen eigenen Job Control Server als Ersatz für ControlM und wurde erfolgreich mit zwei Kunden gestartet. Die Software war länger als zehn Jahre im Einsatz.
Bei der Einführung des Wertpapier-Backoffice BSP Trade stand der Kunde vor der Herausforderung, die zentrale und hoch-automatisierte Ablaufsteuerung zwischen dem neuen Backoffice und den bestehenden Umgebungen neu zu gestalten. Die aus der Implementierung in Control-M sowie ca. 300 Shell und einem Dutzend Host Skripten bestehende Lösung stellte die gewünschten Abläufe fehlerfrei dar und half wesentlich, die reibungslose Einführung von BSP Trade mit zu gewährleisten.
Der Kunde stand vor einem Jahr 2000 Problem in seinen Assembler Programmen für den Host. Die Besonderheit dieser Sprache ist, daß ausschließlich indirekte Sprünge Anwendung finden, so daß traditionelle Methoden der Datenflußanalyse versagen. Daher wurde zuerst mit Hilfe einer innovativen Heuristik die sog. ?dynamische Blockzerlegung? berechnet, in der die indirekten Sprünge soweit möglich automatisiert aufgelöst wurden. Die wenigen nicht automatisiert auflösbaren Sprünge wurden manuell untersucht.
Kombiniert wurde dies mit damals neuen Verfahren der (dynamischen) abstrakten Interpretation, welche im Ergebnis alle Stellen in den Programmen ermittelten, die tatsächlich oder auch nur möglicherweise einen zweistelligen Datumswert verarbeiten. Diese wurden dann automatisiert korrigiert, so daß im Ergebnis die Programme nicht nur Jahr 2000 fähig gemacht wurden, es wurden im Verlauf der Analysen auch zahlreiche weitere Fehler gefunden und bereinigt, so dass die Häufigkeit des Auftretens von Fehlern im Betrieb - ohne die schon vorhandenen Jahr 2000 Fehler - um drei Viertel reduziert wurde
Stipendiat
Projektschwerpunkte
Produkte:
Standards:
Spezialkenntnisse:
Stärken:
Standard-Software
IDE
Datenbankzugriff
Versionsverwaltung
Collaboration
Dateitransfer
Billingsysteme
Office
Andere
Spezialwissen
Systemnahe Programmierung
Programmierung
Datenverarbeitung
Vorgehensmodelle
sonstige
langjährige Erfahrung:
weitere:
Es bestand beim Kunden schon lange der Wunsch, die Abrechnung der Kontingente von Roaming SMS zu optimieren. Da in diesen Fällen kein einzelner Datensatz alleine Grundlage der Abrechnung sein kann und eine fehlerfreie Zuordnung und Anreicherung der entsprechenden Datensätze nicht möglich schien, wurde ?im Zweifel? zu Gunsten des Kunden abgerechnet, mit teils signifikanten entgangenen Umsätzen.
Für die Zuordnung lassen sich im Wesentlichen nur der Sender sowie die Zeitstempel in den Datensätzen heranziehen. Da diese Datensätze von verschiedenen Quellen mit ggf. nicht synchronen Uhren sowie in der Regel aus unterschiedlichen Zeitzonen stammen, treten hier Differenzen in den Stunden und den Sekunden auf, die eine Zuordnung erschweren.
Mit Hilfe eines hoch agilen iterativen ?rapid prototyping? wurden in enger Abstimmung mit dem Fachbereich die Anforderungen ermittelt und anhand der Ergebnisse der Implementierung immer weiter verfeinert. Final wurde ein geeigneter Algorithmus implementiert, der für fast alle Datensätze die Abrechnung ermöglicht und durch die vorgenommene Prüfung der Daten Unstimmigkeiten entdeckte, die bereinigt werden konnten.
Der Kunde bat um Hilfe bei einer unternehmenskritischen Anwendung, bei der nach Vorgaben der Bundesnetzagentur bereits mit einem Preis versehene, aber noch nicht abgerechnete Services zu bestimmten Rufnummern nicht auf der Rechnung erscheinen dürfen. Diese Vorgaben erfolgen regelmäßig mehrmals in der Woche und gelten mit Zustellung. Die vorhandene Lösung war dem wachsenden Umfang dieser Listen nicht mehr gewachsen, da der Aufwand linear mit der Anzahl der Rufnummern anstieg und die Datenbank beim Untersuchen der ca. fünf Milliarden Datensätze umfassenden Tabelle ?am Anschlag? war.
Hier wurde zunächst in einer Vor-Analyse die zu untersuchende Datenmenge innerhalb der Datenbank auf ca. eins von Hundert reduziert und diese sodann mit Hilfe eines Skriptes auf die vorgegebenen Rufnummern untersucht. Dabei kam ein sog. ?digitaler Baum? zum Einsatz, welcher eine ?longest matching prefix? Suche effizient und unabhängig von der Anzahl der zu suchenden Nummern ermöglicht. Durch diese Massnahmen wurde die Datenbank massiv entlastet sowie die Laufzeit der Verarbeitung deutlich reduziert.
Der Kunde wünschte sich unter anderem die Betreuung einer unternehmenskritischen Schnittstelle, die durch häufig auftretende Fehlerfälle eine intensive manuelle Pflege erforderte. Die bei diesen Fehlerfällen durchgeführten Analysen und Maßnahmen erfolgten im agilen Sinne in enger Abstimmung mit dem Fachbereich sowie den Entwicklern und erlaubten es, die offenbar vorhandenen ?Unschärfen? bei der Abbildung der Geschäftslogik durch ein vollständiges Re-Design der Schnittstelle zu beseitigen. Dieses wurde innerhalb der Projektlaufzeit umgesetzt und eliminierte die vorherigen Aufwände fast vollständig.
Ein wichtiger Grundsatz aus dem Qualitätsmanagement lautet: "Ein Fehler kommt umso teurer zu stehen, je später er bemerkt wird". Daher wurde bei der Migration eines Abrechnungssystems beschlossen, die Bereinigung der ca. 100 Millionen Datensätze mit Kundendaten so gut wie möglich im Altsystem vorzunehmen und im besten Fall nur vollständige und korrekte Angaben in das neue System zu übernehmen.
Die Bereinigung der Daten stand unter Anderem vor der Herausforderung, mit der Vielzahl von unterschiedlichen Namen aus diversen Sprachen und Kulturen umzugehen. Es ist das eine, aus "Mueller" ein "Müller" zu machen, bei "Meier" und "Maier" ist es dann schon schwieriger, und ausländische Namen erschweren die Aufgabe zusätzlich.
Durch den Einsatz und die Modifikation der Algorithmen von Jaro und Winkler zur Abstandsmessung und Daitch-Mokotoff zur phonetischen Suche sowie einer Nachbarschaftssuche innerhalb der Damerau-Levenshtein Distanz sowie weiteren Techniken konnten die Daten automatisch mit mehreren weicher werdenden Kriterien überprüft und ggf. sogar automatisiert bereinigt werden. Die danach immer noch fraglichen Daten hatten einen so kleinen Umfang, dass sie dem Fachbereich zur Prüfung und Klärung vorgelegt werden konnten. So wurden im Ergebnis nur geprüfte und für gut befundene Daten in das neue System übernommen.
Der Kunde stand sehr kurzfristig vor der Aufgabenstellung, die Rechnungen aus dem Altsystem auch für das neue System zur Verfügung zu stellen, da sich das ursprünglich geplante Vorgehen aus lizenzrechtlichen Gründen als nicht umsetzbar erwies. Die Lösung ergab sich durch ein in wenigen Wochen durchgeführtes umfangreiches Reverse- und Re-Engineering des alten Abrechnungssystems, wodurch es gelang, ohne Verletzung von Lizenzen die gewünschten Rechnungen auch im Neusystem zur Verfügung zu stellen
Zu Testzwecken bei der Einführung neuer Produkte stellte sich die Aufgabe, aus allen Datensätzen, die von der produktiven Hardware eines Netzbetreibers geliefert werden, genau diejenigen zu finden, in denen eine von ca. zwei Tausend vorgegebenen Telefonnummern vorkommt. Dabei werden pro Tag mehrere Dutzend Millionen Datensätze geliefert, welche binär kodiert sind, verschiedene Arten und Längen besitzen und Telefonnummern an verschiedenen Stellen enthalten. Eine vollständige De-Kodierung und Prüfung jedes einzelnen Datensatzes wäre viel zu aufwändig gewesen, daher wurde ein zweistufiges Verfahren implementiert: erst wurde entschieden, ob ein Datensatz überhaupt eine der fraglichen Nummern enthalten kann, danach die in Frage kommenden exakt geprüft.
Für den ersten Schritt wurde eine Variante eines Bloom-Filters implementiert. Bloom-Filter sind eine probabilistische Datenstruktur, welche zu einer Menge von Werten und einer Anfrage entweder sagt "Kann in der Menge vorkommen" oder "Kommt definitiv nicht in der Menge vor". Dies wurde kombiniert mit einer Modifikation des Horspool Algorithmus, um die notwendigen Rechnungen für das Durchsuchen grosser Datenmengen zu optimieren. Dabei wurde ausgenutzt, dass Telefonnummern - und damit die zu suchenden Muster - eine maximale Länge haben und somit die erzeugte Datenstruktur im First Level Cache Platz fand. Im zweiten Schritte wurden die in Frage kommenden Datensätzen exakt dekodiert und einzeln überprüft.
Durch dieses Vorgehen wurde eine "quasi"-lineare Laufzeit - also eine unabhängig von der Anzahl der zu suchenden Telefonnummern - auf der Menge der zu durchsuchenden Daten erreicht und die Laufzeit im Vergleich zum "naiven" Vorgehen um einen Faktor - je nach Art der Daten - von vier bis fünf Größenordnungen reduziert.
Aufgrund der Erfahrungen im vorausgehenden Projekt beauftragte der Hersteller der Wertpapier-Backoffice Lösung BSP Trade die Automation der Abläufe innerhalb seines Rechenzentrums. Dabei wünschte er sich das Anlegen neuer Mandanten ?auf Knopfdruck?, um seinen Kunden das Produkt ?as-a service? anbieten zu können. Die bereitgestellte Lösung implementierte einen eigenen Job Control Server als Ersatz für ControlM und wurde erfolgreich mit zwei Kunden gestartet. Die Software war länger als zehn Jahre im Einsatz.
Bei der Einführung des Wertpapier-Backoffice BSP Trade stand der Kunde vor der Herausforderung, die zentrale und hoch-automatisierte Ablaufsteuerung zwischen dem neuen Backoffice und den bestehenden Umgebungen neu zu gestalten. Die aus der Implementierung in Control-M sowie ca. 300 Shell und einem Dutzend Host Skripten bestehende Lösung stellte die gewünschten Abläufe fehlerfrei dar und half wesentlich, die reibungslose Einführung von BSP Trade mit zu gewährleisten.
Der Kunde stand vor einem Jahr 2000 Problem in seinen Assembler Programmen für den Host. Die Besonderheit dieser Sprache ist, daß ausschließlich indirekte Sprünge Anwendung finden, so daß traditionelle Methoden der Datenflußanalyse versagen. Daher wurde zuerst mit Hilfe einer innovativen Heuristik die sog. ?dynamische Blockzerlegung? berechnet, in der die indirekten Sprünge soweit möglich automatisiert aufgelöst wurden. Die wenigen nicht automatisiert auflösbaren Sprünge wurden manuell untersucht.
Kombiniert wurde dies mit damals neuen Verfahren der (dynamischen) abstrakten Interpretation, welche im Ergebnis alle Stellen in den Programmen ermittelten, die tatsächlich oder auch nur möglicherweise einen zweistelligen Datumswert verarbeiten. Diese wurden dann automatisiert korrigiert, so daß im Ergebnis die Programme nicht nur Jahr 2000 fähig gemacht wurden, es wurden im Verlauf der Analysen auch zahlreiche weitere Fehler gefunden und bereinigt, so dass die Häufigkeit des Auftretens von Fehlern im Betrieb - ohne die schon vorhandenen Jahr 2000 Fehler - um drei Viertel reduziert wurde
Stipendiat
Projektschwerpunkte
Produkte:
Standards:
Spezialkenntnisse:
Stärken:
Standard-Software
IDE
Datenbankzugriff
Versionsverwaltung
Collaboration
Dateitransfer
Billingsysteme
Office
Andere
Spezialwissen
Systemnahe Programmierung
Programmierung
Datenverarbeitung
Vorgehensmodelle
sonstige
langjährige Erfahrung:
weitere:
"Im Zusammenhang mit den Einführungen des Wertpapierabwicklungssystems BSP Trade im Outsourcing-Rechenzentrum der ACTIS.BSP IT Services GmbH in Frankfurt hat der Consultant folgende Aufgaben übernommen:
- Konzeption und Implementierung eines Job Control Servers JCS
- Konzeption der Abläufe um BSP Trade mit der Integration von ca. 15 Schnittstellen sowie einer Tagesendeverarbeitung unter Berücksichtigung der Mandantenfähigkeit
- Implementierung dieser Abläufe in der Sprache des JCS
- Implementierung von ca. 80 UNIX Skripten pro Instanz
- Dokumentation des JCS und der Abläufe und Skripten
- Einweisung der Mitarbeiter in den Betrieb und die Administration des JCS
Seine außerordentlich hohe Einsatzbereitschaft haben wir in dieser Zeit schätzen gelernt und bedanken uns für seine tatkräftige Unterstützung. Wir wünschen dem Consultant weiterhin viel Erfolg und würden uns über eine Zusammenarbeit in der Zukunft freuen."— Projekt Einführungen BSP Trade, 04/00 - 10/00
Referenz durch Leiter Outsourcing der Firma ACTIS.BSP IT Services GmbH vom 30.11.00
"Gern bestätigen wir dem Consultant auf diesem Wege, dass er bei der dv-technischen Einführung des Systems BSP TRADE, bei der Westdeutschen Landesbank, einen wesentlichen Beitrag geleistet hat. Folgende Aufgaben wurden von ihm hierbei erledigt:
- Installation und Administration der Microfocus COBOL Workbench,
- Intgeration des SQL Precompilers Oracle ProCOB,
- Konzeption der Anbindung externer Teilnehmer,
- Konzeption der Ablaufsteuerung um BSP TRADE mit der Integration von ca. 30 Schnittstellen sowie einer Tagesendeverarbeitung,
- Arbeitsvorbereitung für das Werkzeug Control-M, Implementation und
- Test von ca. 300 Skripten, Dokumentation der Ablaufsteuerung und Skripten.
Dabei haben wir besonders seinen außerordentlichen und jederzeit 100prozentigen Einsatz schätzen gelernt.
Wir möchten uns für die bisherige Unterstützung und Zusammenarbeit bedanken und würden uns auch zukünftig über ein partnerschaftliches und konstruktives Miteinander freuen."— Projekt Einführung BSP Trade
Referenz durch Projektleiter der Westdeutschen Landesbank vom 10.08.00