Technisches Design Inhalt Design Übersicht Menü und DispatcherServlet DWR Servlet Viewer Servlets Controllers Managers Sicherheit Anwendung Architektur Component Diagram Deployment Diagram Komponente Sequence Diagram: View ActiveMQ Configuration Sequence Diagram: Edit ActiveMQ Configuration Datenbank Architektur Daten Modell Anhang A: Akronyme, Abkürzungen, Begriffe und Definitionen Anhang B: Produkte & Tools Anhang C: Konfiguration und Ressource Dateien XML Konfigurationsdateien XML Ressource Dateien Design Übersicht Die Servicelayer Management Console ist eine Web Anwendung basiert auf das Spring MVC Framework Menü und DispatcherServlet Jede Controller in die gleiche Menü-Gruppe gehört zu dem gleichen DispatcherServlet und jede DispatcherServlet hat eine XML Konfiguration Datei (Anhang C) Menü Name Servlet Name XML Konfiguration Datei Home home home-servlet.xml Configuration configuration configuration-servlet.xml Servicelayer servicelayer servicelayer-servlet.xml Messagequeue messagequeue messagequeue-servlet.xml Help help help-servlet.xml DWR Servlet Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht. Die Kommunikation zwischen die Javaskripte im Browser und die Web Server ist mit Hilfe von DwrSpringServlet gemacht und im dwr-servlet.xml konfiguriert. Viewer Servlets Um die verschiedenen Typen von Datei-Format zu sehen, ein paar Viewer Servlets wurden erstellt: Servlet Name Servlet Klasse Datentyp file FileViewerServlet Excel image ImageViewerServlet JPEG
xml XmlViewerServlet XML wsdl WsdlViewerServlet WSDL html HtmlViewerServlet HTML Controllers Jede Controller muss minimal einen controllername (oder commandname für Form Controller) Attribut definieren. Dieses Attribut erlaubt die Mapping mit JSP Seite (views.xml) und Ressource (controllers.xml). Jede Interaktion mit einem lokalen oder remoten System ist durch Manager Klasse (managercontext.xml) gelöst. Managers Jede Manager ist verantwortlich für eine lokale oder remote Business Logik. Remote Business Logik (JMX Server Aufrufe, Data Access Layer,...) sind im verschiedene Access Module implementiert: Access Modul access-management Zweck Management DB Zugriff Remote Server Zugriff access-config access-message access-log Config DB Zugriff Message DB Zugriff Log DB Zugriff Sicherheit Die Sicherheit von der Web Anwendung ist mit Spring Security (spring-security.xml) konfiguriert. Authentication ist durch produktive LDAP geprüft. Authorisation ist durch interne Rolle definiert und im Management DB gespeichert: Rolle Administrator Client Configuration Server Configuration Backend Configuration Staging Configuration Tomcat Manager Servicemix Manager Solr Manager Terracotta Manager Message Queue ActiveMQ Menü User Authorization Active User Scheduled Tasks Log DB Client Client Configuration Server Configuration Backend Configuration Environment Access Tools Tomcat Instance Manager Tomcat Instance JConsole Service Log4j Config Servicemix Instance Manager Solr Http Server Manager Terracotta Server Manager Show Messages ActiveMQ Server Status Anwendung Architektur
Component Diagram Deployment Diagram
Komponente Web Browser - User hat Zugriff auf die Management Console Web Anwendung durch seinen Web Browser Management Console Web Anwendung - aka SLMC LDAP - Directory Server für den User Authentication und Backend Status zugegriffen config DB - MySQL-Datenbank wo alle Client, Server und Backend Konfigurationen gespeichert sind management DB - MySQL-Datenbank wo Management Console Daten gespeichert sind message DB - MySQL-Datenbank wo WebAngebot Requests (Web -> Servicelayer -> Vision) gespeichert sind log DB - MySQL-Datenbank wo Tomcat und Access (für Statisitk) Logs gespeichert sind Syrius DB - Oracle-Datenbank für den Backend Status zugegriffen Syrius ASE DB - Oracle-Datenbank für den Backend Status zugegriffen LP DB - Oracle-Datenbank für den Backend Status zugegriffen
DMS Server - Filenet System für den Backend Status zugegriffen Syrius Server- Directory Server für den Backend Status zugegriffen Layer7 Server - SecureSpan Manager (XML Gateway) für den Layer7 Status zugegriffen Tomcat Server - Web Server für den Tomcat Instance Status, Tomcat Instance JConsole und Services Status zugegriffen ActiveMQ Server - JMS Message Broker Server für den Active MQ Server Status zugegriffen Solr Server - Lucene Index Server ist durch Servicemix Server für Solr Http Server Manager und Solr Http Server Status zugegriffen Servicemix Server - Enterprise Service Bus Server für den Servicemix Instance Status, Servicemix Feature Status und Servicemix Instance Manager zugegriffen Alarm Server - Email Server um Notifikation zu senden Sequence Diagram: View ActiveMQ Configuration Sequence Diagram: Edit ActiveMQ Configuration Datenbank Architektur Daten für die Management Console-Anwendung sind in der Management Datenbank gespeichert. Daten Modell
Alert Tabelle enthält die Benachrichtigungen (E-Mail), die im Falle von Problemen gesendet werden: CREATE TABLE Alert ( id INTEGER AUTO_INCREMENT PRIMARY KEY, environment VARCHAR(255), category VARCHAR(255), validfrom DATETIME, validto DATETIME, active BOOLEAN, lockid VARCHAR(255), timestamp TIMESTAMP) ENGINE = InnoDB; UserRoles Tabelle enthält die User Rolle (Authorisation): CREATE TABLE UserRoles ( id INTEGER AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) UNIQUE, enabled BOOLEAN, roleadministrator BOOLEAN, roleconfigurationclient BOOLEAN, roleconfigurationserver BOOLEAN, roleconfigurationbackend BOOLEAN, roleconfigurationstaging BOOLEAN, rolemessagequeue BOOLEAN, roleactivemq BOOLEAN, roletomcatmanager BOOLEAN, roleservicemixmanager BOOLEAN, rolesolrmanager BOOLEAN, roleterracottamanager BOOLEAN, lockid VARCHAR(255), timestamp TIMESTAMP) ENGINE = InnoDB; TomcatLauncherLog Tabelle enthält die Tomcat Launcher Logs: CREATE TABLE TomcatLauncherLog ( id INTEGER AUTO_INCREMENT PRIMARY KEY, command VARCHAR(255), environment VARCHAR(255), restrictions VARCHAR(255), protocol TEXT, successful BOOLEAN, lockid VARCHAR(255), timestamp TIMESTAMP) ENGINE = InnoDB; SqlQueries Tabelle enthält die gespeicherte Log DB SQL Queries ( "Log DB Client" Menü ): CREATE TABLE SqlQueries ( id INTEGER AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255), sqlqueryname VARCHAR(255), sqlquery MEDIUMTEXT, lockid VARCHAR(255), timestamp TIMESTAMP) ENGINE = InnoDB; Anhang A: Akronyme, Abkürzungen, Begriffe und Definitionen MVC Model View Controller
DWR Direct Web Remoting AJAX Asynchronous JavaScript and XML Anhang B: Produkte & Tools Software/Tool Version Source Spring MVC 2.5.6.SEC01 <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version>2.5.6.sec01</version> Servlet API 2.4 <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.4</version> <scope>provided</scope> JSP API 2.0 <dependency> <groupid>javax.servlet</groupid> <artifactid>jsp-api</artifactid> <version>2.0</version> <scope>provided</scope> Tag Libraries 1.1 <dependency> <groupid>taglibs</groupid> <artifactid>standard</artifactid> <version>1.1.2</version> <dependency> <groupid>javax.servlet</groupid> <artifactid>jstl</artifactid> <version>1.1</version> Spring LDAP 1.2.1 <dependency> <groupid>org.springframework.ldap</groupid> <artifactid>spring-ldap</artifactid> <version>1.2.1</version> Access Management Esel Projekt Version <dependency> <groupid>ch.visana.access.management</groupid> <artifactid>ch.visana.access.management</artifactid> <version>x.x.x</version> Access Log 1.1.0 <dependency> <groupid>ch.visana.access.log</groupid> <artifactid>ch.visana.access.log</artifactid> <version>1.1.0</version> Access Message 1.1.0 <dependency> <groupid>ch.visana.access.message</groupid> <artifactid>ch.visana.access.message</artifactid> <version>1.1.0</version> DWR (Ajax für Java) 2.0.rc2 <dependency> <groupid>org.directwebremoting</groupid> <artifactid>drw</artifactid> <version>2.0.rc2</version> Tomcat 6 6.0.16 http://tomcat.apache.org/download-60.cgi
Anhang C: Konfiguration und Ressource Dateien XML Konfigurationsdateien 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 1. 2. web.xml - Die Web-Anwendung Deskriptor liefert die Applikations-Server mit Informationen über die Web-Ressourcen in der Anwendung. applicationcontext.xml - Diese Spring Konfiguration importiert die Access Module Spring Konfiguration Dateien und definiert Themes und Ressourcen managercontext.xml - Diese Spring Konfiguration definiert alle Basis-Controller und alle Manager, die von Controller gebraucht sind spring-security.xml - Diese Spring Konfiguration definiert die Management Console Sicherheit Regeln und LDAP Zugriff dwr-servlet.xml - Diese Spring Konfiguration definiert die DWR (Ajax javascript) Objekte home-servlet.xml - Diese Spring Konfiguration definiert die home servlet (Home Menu) Spring Web MVC Komponenten configuration-servlet.xml - Diese Spring Konfiguration definiert die configuration servlet (Configuration Menu) Spring Web MVC Komponenten servicelayer-servlet.xml - Diese Spring Konfiguration definiert die servicelayer servlet (Servicelayer Menu) Spring Web MVC Komponenten messagequeue-servlet.xml - Diese Spring Konfiguration definiert die messagequeue servlet (Messagequeue Menu) Spring Web MVC Komponenten help-servlet.xml - Diese Spring Konfiguration definiert die help servlet (Help Menu) Spring Web MVC Komponenten views.xml - Diese Spring Konfiguration definiert die Mapping zwischen Controller Name und JSP Datei XML Ressource Dateien controllers.xml - Diese Konfiguration definiert einen Titel, einen StyleClass (managementconsole.css) und einen Text-Pfad für jeden MVC Controller menu.xml - Diese Konfiguration definiert die Menu-Struktur mit der Hierarchie und alle nötige Attribute