Bestellsystem für Großhandelsware künftig auf Basis Java

Werbung
Technologie
Bestellsystem für Großhandelsware künftig auf Basis Java
Technologieerneuerung bei
Pharmahändler Sanacorp
Von Sven Braun
Von der Modernisierung ihres Bestellsystems auf Basis einer Java-/Applikationsserverlösung verspricht
sich die Sanacorp eine Prozessoptimierung: So sollen beispielsweise Bestellvorgänge effizienter abgewickelt werden, der Beschaffungsprozess automatisiert und die Datenpflege weniger aufwändig werden.
Bei der Entwicklung der neuen Anwendung unterstützt MaK DATA SYSTEM unter Einsatz des Editor
Frameworks der Firma Karneim. Dieses ermöglicht die einfache Handhabung komplexer Oberflächen.
Durch das Framework werden Datenmodell, Präsentation und Programmsteuerung gemäß dem MVCAnsatz (Model View Controller) sauber getrennt.
Die Sanacorp ist ein führendes Unternehmen im pharmazeutischen
Großhandel. Seit mehr als acht Jahrzehnten ist die Kernkompetenz die
flächendeckende und wirtschaftliche
Versorgung von Apotheken mit Arzneimitteln und Healthcareprodukten.
Mit Hilfe modernster Logistik und einem eingespielten Liefersystem versorgt das viertgrößte deutsche pharmazeutische Großhandelsunternehmen aus bundesweit 14 Niederlassungen bis zu viermal täglich ca.
7.000 Apotheken. Damit leistet die
Sanacorp einen wichtigen Beitrag,
damit zu jeder Zeit und überall in
Deutschland Patienten auf die notwendigen Medikamente zurückgreifen können.
Um diesen Aufgaben auch in Zukunft
gerecht zu werden, hat sich die Sanacorp dazu entschlossen, das derzeitige Bestellsystem für Großhandelsware durch eine neue Anwendung abzulösen. Die technologische
Entscheidung fiel für eine Plattform
auf Basis einer Java-/Applikationsserverlösung. MaK DATA SYSTEM
ist unterstützend bei der Entwicklung
dieser Lösung tätig.
Die neue Anwendung soll folgenden
Zielen gerecht werden:
■ Verbesserte Effizienz des
Bestellvorganges
30 MaK DATA \ News
■ Optimaler Aufbau von Dialogen
bzw. Dialogfolgen, um den
Beschaffungsprozess für Handelsware integriert abwickeln zu
können
■ Unterstützung des Mehrniederlassungseinkaufs
■ Die Bearbeitung der Disposition
muss von jeder Stelle im Unternehmen möglich sein
■ Automatisierung des
Beschaffungsprozesses
■ Optimierung der Bestellmengen
bezogen auf die gesamte
Unternehmung
■ Alle für den Disponenten relevanten Informationen sollen am
Disponentenarbeitsplatz verfügbar sein
■ Der Aufwand zur Datenpflege
soll verringert werden
■ Hochverfügbares Bestellwesen
Architektur der
Java-Anwendung
Die Architektur der Java-Applikation
enthält die Schichten:
■ Präsentation,
■ Logik und
■ Persistenz.
Eine mehrschichtige Architektur steigert die Modularität der Software, da
zwischen den Schichten definierte
Schnittstellen verwendet werden. Die
Implementierung dieser Schnittstellen kann dann von den anderen
Schichten unabhängig erfolgen.
Die Schichtenarchitektur der JavaAnwendung der Sanacorp enthält
folgende Elemente:
Präsentationsschicht:
■ GUI Elemente
■ Editoren
Logikschicht:
■ Session Beans
■ Data Access Objects
Persistenzschicht:
■ Hibernate Beans
■ Datenbanktabellen
Kurze Entwicklungszeiten
mit Karneim-Framework
Auf Clientseite kommt das Editor
Framework der Firma Karneim zum
Einsatz. Das Editor Framework ist
einfach zu bedienen und ermöglicht
dem Entwickler sich auf die Implementierung der Fachlogik in den Editoren zu konzentrieren. Der Editor
kapselt aus Sicht der Oberfläche Daten und Zustand der Anwendung. Die
Funktionalität der Oberflächenkomponenten wird damit reduziert auf
eine reine Präsentation der Information. Auf diesem Weg wird eine saubere Trennung gemäß den Grundla-
April 2006 / 24
Fotos: Sanacorp
Hauptverwaltung der Sanacorp AG in Planegg bei München
gen des MVC-Ansatzes gewährleistet. In der Folge können Editor-Instanzen leicht (mehrfach) in variierenden Kontexten in der Oberfläche
verwendet werden – so kann die
Konsistenz und Aktualisierung von
Informationen über mehrere Panels
bzw. Dialoge in der Oberfläche sichergestellt werden.
Grundsätzlich gibt es zwischen Fenstern auf Clientseite und Session
Beans auf Serverseite eine 1:1 Abbildung. Das Session Bean fungiert
dabei als serverseitiges Modell und
als Controller (siehe MVC) für das
clientseitige Fenster. Für jedes Session Bean gibt es ein spezielles Data
Transfer Object (DTO), das alle notwendigen Nutzdaten für den Inhalt
des Fensters enthält. Auf der Clientseite nimmt der Editor einerseits das
DTO entgegen und befüllt die Fenster. Der Editor reagiert andererseits
auch auf die Aktionen des Benutzers
und übernimmt Aufgaben wie beispielsweise die clientseitige Validierung von Eingaben und eventuell Aufrufe von weiteren Aktionen der Session Beans.
Wartung und Test des
Systems
Um die Wartbarkeit des erstellten
Codes zu vereinfachen, wird dieser
mittels des Tools CheckStyle gegen
von der Sanacorp vorgegebene Code-Richtlinien geprüft. Weiterhin sind
diverse JUnit-Tests entwickelt wor-
April 2006 / 24
den, um die funktionale Sicherheit
ständig zu überprüfen. Die Ausführung der Tests und das Prüfen der
Coderichtlinien wurden durch den
Einsatz von Cruise Control automatisiert. Cruise Control übernimmt
nicht nur das Ausführen der Prüfungen und der Tests, sondern führt alle
zwei Stunden einen kompletten Build
und das Deployment der gesamten
Anwendung durch, sofern innerhalb
des CVS Änderungen vorgenommen
wurden. Sollten hierbei Fehler aufgetreten sein, so werden automatisch
alle relevanten Entwickler per eMail
benachrichtigt und sind angehalten,
die Fehler zu korrigieren. Die Verteilung der Anwendung auf die Clients
erfolgt über Java Web Start.
◆ www.makdata.de/OO
Weitere Informationen:
Michael Voelkel
Telefon: 0431-3993-531
eMail:
voelkel
@makdata.de
Technische Begriffe:
Session Bean: Session Beans gehören zu den Enterprise Java
Beans. Sie bilden vor allem Vorgänge ab, die der Nutzer mit dem System durchführt.
Hibernate: Hibernate ist ein Object/Relational Mapping (ORM)
Tool für Java. ORM ist eine Technik, die Daten von Objektmodellen
auf relationale Datenstrukturen mittels SQL abzubildet.
MVC: Der Begriff Model-View-Controller (MVC) bezeichnet ein Architekturmuster zur Trennung von
Softwaresystemen in die drei Einheiten Datenmodell (engl. Model),
Präsentation (engl. View) und Programmsteuerung (engl. Controller).
Ziel des Modells ist ein flexibles
Programmdesign. So werden spätere Erweiterungen einfach möglich; einzelne Komponenten können wieder verwendet werden. Ein
weiterer Vorteil besteht bei großen
Anwendungen in der Übersichtlichkeit und Ordnung, da die Komplexität reduziert wird.
JUnit: JUnit ist ein Framework zum
Testen von Java-Programmen. Insbesondere ist es für automatisierte Unit-Tests einzelner Units (meist
Klassen oder Methoden) geeignet.
MaK DATA \ News 31
Herunterladen