ITMAGAZINE Automatisierte Beantwortung komplexer Kundenanfragen 18. November 2005 - Synlogic hat mit seiner Business-Rules- und Workflow-basierten Lösung «Instant Customer Response» für Ciba Speciality Chemicals den Swiss IT Award 2005 in Kategorie Projekt für sich entschieden. Die Abteilung «Plastic Additives» der Ciba Specialty Chemicals (CibaSC) produziert für ihre Kunden unter anderem kundenspezifische Zusatzmischungen in unterschiedlichen Formen zur Beeinflussung der physikalischen Eigenschaften von Kunststoffen. Bis anhin wurden die Machbarkeit und der Preis weitgehend manuell bestimmt, was Know-how in Chemie und Verfahrenstechnik erforderte. Die Beantwortung von Kundenanfragen war darum ein Prozess, der sich über mehrere Schritte und Stellen erstreckte. Es vergingen so Tage bis Wochen, um eine Anfrage zu beantworten. Angesichts gestiegener Kundenanforderungen und einer verschärften Marktsituation war es für CibaSC notwendig, diese Fristen erheblich zu verkürzen. Im Projekt Instant Customer Response (ICR) wurde ab Ende 2003 bis Anfang 2005 dieser Prozess in einem Informationssystem abgebildet. Mit Hilfe dieses Systems werden die oben geschilderten Prozesse rationalisiert, die Durchlaufszeiten reduziert und die Reaktionszeiten (time to first answer) für einen grossen Teil von Anfragen erheblich verkürzt. Zusätzlich wurde eine höhere Transparenz bei der Machbarkeitsvorhersage und Preisberechnung angestrebt, sowie durch eine Wissensspeicherung in einer spezifizierten Syntax das Risiko des Know-how-Verlustes reduziert. Die Anwendung befindet sich mittlerweile im produktiven Einsatz. Grundlage Expertensystem Grundlage des Lösungsansatzes ist die Expertensystem-Technologie. Als erstes werden dafür die Kundenanfragen grob in zwei Kategorien aufgeteilt. Ein geringer Teil der Anfragen hat ein derartiges Komplexitätsniveau, dass er weiterhin von erfahrenen Experten «von Hand» bearbeitet werden muss. Der weitaus grössere Teil der Anfragen ist aber dazu geeignet, von einem Expertensystem beantwortet zu werden. Dabei wurden der fallbasierte (case-based reasoning) und der regelbasierte (heute unter dem Begriff «Business Rules» bekannt) Ansatz in Betracht gezogen. Eine Analyse der Aufgabenstellung zeigte, dass ein regelbasiertes System (rule-based reasoning) hier wesentliche Vorteile haben würde. Eine fallbasierte Verarbeitung – also die Darstellung des anzuwendenden Expertenwissens durch Beispiele – hätte nicht zu 100 Prozent der Anforderung einer eindeutigen Antwort auf eine Kundenanfrage genügt. Das Wissen wurde daher in formalen Regeln im System «kondensiert». Mittels dieser Regelbasis liefert das System immer genau eine einzige Antwort zu einer Kundenanfrage: positiv, negativ oder – im Falle nicht ausreichenden Wissens – eben undefiniert. Das System ist so eingerichtet, dass es in jedem Fall keine falsche Antwort liefert. Die Entscheidungsfindung wird dabei immer exakt dokumentiert, um die Transparenz und Nachvollziehbarkeit zu gewährleisten. Dazu wird der komplette Entscheidungsbaum mit allen berücksichtigten Regeln und Ergebnissen zusammen mit dem Endergebnis dargestellt. System selber pflegen Nachdem der Kunde das Potential zur IT-unterstützten Rationalisierung des Kundenanfrage-Prozesses identifiziert hatte, ging es darum festzustellen, welche Technologien zur automatisierten Bestimmung der Machbarkeit geeignet sind. Im Frühjahr 2004 wurde dafür innert weniger Wochen ein Prototyp des regelbasierten Kerns des zukünftigen Systems in enger Zusammenarbeit zwischen den Experten von CibaSC und Sylogic erstellt. Hierbei wurden Regeln zur Bestimmung der Machbarkeit für eine definierte Teilmenge der möglichen Kundenanfragen entwickelt. Der Prototyp zeigte, dass mit dem gewählten Ansatz tatsächlich ein grosser Prozentsatz aller Kundenanfragen automatisiert behandelt werden kann und dass die Experten der CibaSC mittels der gewählten Lösung in der Lage sind, das erforderliche Wissen selbständig in die benötigte Regelform zu transformieren und zu pflegen. Besonders die Machbarkeit eines autonomen Systemunterhalts konnte nachgewiesen werden. Modulares System Aus einer konzeptionellen Sicht heraus umfasst ICR folgende Module: • eine Zutaten- und Konzeptebasis für Informationen zu Komponenten sowie deren Eigenschaften und Verbindungen, • eine Regelbasis, die das Wissen, beschrieben in einer formalen Syntax, enthält, • einen Wissenseditor (Regeleditor), der es den Wissensträgern ermöglicht, das Wissen in Form von Regeln einzugeben und anzupassen, • eine mehrstufige Inferenzmaschine als Kernstück der Anwendung, die eine Entscheidung basierend auf den vorhandenen Regeln, Zutaten und Konzepten herbeiführt und • einen Workflow zur Steuerung des Prozesses von der Erfassung der Anfrage bis zum Ergebnis. Die Anforderung geringer Einstiegskosten und bestmöglicher Voraussetzungen für eine Integration in die vorhandene Systemumgebung beim Kunden führten zu einer Implementierung der ICR-Anwendungsmodule mittels Microsoft .Net und SQL Server 2000. Für Workflow und Business Rules (Expertensystem) wurden in einem ersten Schritt kommerzielle Lösungen von Drittanbietern evaluiert, letztlich aber verworfen. Es kommen heute für beide Subsysteme Eigenimplementierungen zum Einsatz. Die Realisierung der Regelverarbeitung begann mit der Beschreibung der Regelsyntax in einer Definitionsdatei für das Sprachtool und den Parsergenerator antlr. Dieser generiert spezifischen C#-Quellcode für den Aufbau und die Bearbeitung eines Syntaxbaums. Dieser Quellcode, erweitert um die Funktionalität für die Interpretation der kundenspezifischen Funktionen, bildet den regelbasierten Kern der Anwendung. Die Vorteile dieses Ansatzes machten sich schon früh im Projektverlauf durch die grosse Freiheit bei der Definition der Syntax bemerkbar. Die Anwendung hat eine mehrschichtige Architektur. Der Anwendungskern wird dabei auf einem Anwendungsserver (aktuell Windows 2003) betrieben. Der Datenzugriff als Anwendungsschicht oberhalb der Datenbank ist von der darunterliegenden Tabellenstruktur abstrahiert und bildet eine einheitliche Schnittstelle für die Geschäftslogik. Der Zugriff auf die Daten selbst erfolgt ausschliesslich über gespeicherte Prozeduren und Views. Anwendern steht die Funktionalität von ICR in Abhängigkeit von deren Rollen und Berechtigungen über eine Windows- und eine Webanwendung zur Verfügung. ICR-unterstützter Kundenanfrageprozess Plug-in-Architektur Der Wissenseditor ist in einen .Net-Windows-Fat-Client integriert, der zur Pflege der Business Rules, der Stammdaten, der Benutzer und der Preise dient. Der Editor unterstützt den Nutzer durch kontextsensitive Auswahllisten (für Funktionen und Operatoren) bei der Eingabe und formatiert die Regeln zur Darstellung. Die Regeln können entweder mit bereits vorhandenen Kundenanfragen oder mit ad-hoc-Eingaben getestet werden. Der Client ist nach einer Plug-in-Architektur implementiert: Ein Container stellt Grunddienste zur Verfügung, die eigentliche Anwendungsfunktionalität wird modular eingebunden. Durch diese Architektur sind die einzelnen Funktionsmodule klar getrennt und bleiben somit einfacher wartbar. Neue Funktionalität kann über weitere Plug-ins integriert werden. Die Mehrzahl der Benutzer greift auf die Anwendung mittels einer ASP.Net-Webanwendung zu. Die Erfassung und Bearbeitung von Kundenanfragen geschieht dabei über eine Portal-orientierte Website, über die der Benutzer schnellen Zugriff auf die zugewiesenen Kunden und Anfragen erhält. Die Benutzeroberfläche wird durch User-Interface-Komponenten aus Infragistics NetAdvantage 2004 erweitert, wodurch sich das Look’n’Feel einer Windows-Applikation annähert. Die im Hintergrund laufenden Prozesse wie E-Mail-Benachrichtigungen und Logging werden vom Workflow-Subsystem gesteuert. Das Logging erstreckt sich dabei hauptsächlich auf die Dokumentation der Abläufe. Zusätzlich wird ein Systemlog auf Basis der Logging-Library log4net geschrieben. Direkte PDF-Generierung Ergebnisse zu Kundenanfragen werden durch den webbasierten Teil von ICR als PDF-Berichte ausgegeben. Wegen der Vielfalt der darzustellenden Daten und der Einfachheit der Integration ist die Wahl auch hier nicht auf eine Designer-unterstützte, kommerzielle Reportinglösung gefallen, sondern auf die direkte PDF-Generierung durch iTextSharp. Den Auschlag für diese Lösung gaben Kosteneinsparungen und die hohe Flexibilität beim Layout. Insgesamt besteht die Anwen-dung – Open Source und Libraries von Drittanbietern ausgeschlossen – aus etwas weniger als 500 C#-Klassen und 30 ASP.Net-Seiten. Das implementierte Datenmodell besteht aus ungefähr 50 Tabellen und Views, sowie einer grossen Anzahl Stored Procedures und Functions. Die Webanwendung wird für die bessere Verfügbarkeit hinter einem Load Balancer betrieben. Anfragen werden durch den sogenannten Requester, oder einen Request Manager über den Web Client erfasst. Handelt es sich um eine «einfache» Anfrage und sind alle notwendigen Informationen vorhanden, wird die Anfrage an die Inferenzmaschine gesendet, welche die Anfrage kategorisiert und anschliessend deren Machbarkeit prüft. Die Entscheidung wird dem Benutzer in Form eines Berichts mitgeteilt. Sollten für die Entscheidung notwendige Informationen nicht verfügbar sein, wird die Anfrage zurückgestellt und die entsprechende Stelle benachrichtigt. Benutzer können zu jedem Zeitpunkt den Status der Bearbeitung verfolgen. Agile Realisierung Das zu entwickelnde System enthielt viele, für die Beteiligten der CibaSC neuartige Aspekte. Es wurde daher für die Phase der Realisierung ein agiler Ansatz mit kurzen Feedbackzyklen gewählt. Nachdem die Business-Anforderungen formuliert und die wesentlichen Kernbereiche des Systems spezifiziert waren, wurde das System in kurzen Iterationen von typischerweise rund zwei Wochen realisiert. Am Ende eines jeden Iterationszyklusses stand jeweils eine lauffähige Teilmenge des Gesamtsystems, welche in gemeinsamen Arbeitssitzungen begutachtet wurde. Jede Iteration fügte so ein weiteres Stück Funktionalität hinzu. Anschliessend wurde das System, auf Basis des Kundenfeedbacks angepasst und erweitert. Das gewählte Projektvorgehen hat sich im Rückblick bewährt. Die kurzen Iterationszyklen führten dazu, dass innerhalb kurzer Zeit ein System entwickelt werden konnte, welches auch jenen Anforderungen des Kunden genügt, welche zu Projektbeginn noch gar nicht oder nur ungenau bekannt waren. In einer intensiven Testphase bewies das System seinen Nutzen und sein weiteres Potential. Es beantwortet heute den Grossteil der Kundenanfragen innerhalb weniger Sekunden vollständig und korrekt und hat das bisherige Vorgehen bereits vollständig abgelöst. Die Autoren Sebastan Fritz ist Software Engineer, Dr. Ernst Lebsanft ([email protected] ) Geschäftsleiter bei Synlogic AG Copyright by Swiss IT Media 2017