SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ SAS in der Praxis – Lösungen für die Anwendungs‐ integration Kai Brodmann, Teamleiter, Senior Software‐Ingenieur Kai Brodmann © 2011 HMS Analytical Software GmbH Agenda 1. Vorstellung 2. Heterogene Systemlandschaften 3. Evolution bei IT‐Systemen 4. Intelligente Systemintegration 5. Was ist eine Schnittstelle? 6. Schnittstellen von und zu SAS 7. Fazit und Übersicht Kai Brodmann © 2011 HMS Analytical Software GmbH 2 1 SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ Unternehmensprofil • IT‐Spezialist für Business Intelligence und Datenanalysesysteme seit mehr als 20 Jahren • Anwendungs‐Know‐how – Banken und Versicherungen – Pharma‐ und Medizinprodukte – Branchenübergreifend • Technologie‐Know‐how – Kerntechnologien SAS, Microsoft BI, R‐Project – Integrationstechnologien Java, Microsoft .NET und andere • Methoden‐Know‐how – Business Intelligence, Data Warehousing – Software Engineering, Statistik – Projektmanagement, Erwachsenenbildung Kai Brodmann © 2011 HMS Analytical Software GmbH 3 Services für SAS‐Software • • • • • • • • • • Unabhängige Beratung zum SAS‐Einsatz Aufbau und Betrieb der SAS‐Plattform Entwicklung von DI‐Prozessen, SAS‐Programmen, Reports Entwicklung von maßgeschneiderten Frontends Datenanalyse mit JMP Softwarevalidierung und Lifecycle‐Management Performanceoptimierung Versionsumstellung Training und Coaching Technischer Support Kai Brodmann © 2011 HMS Analytical Software GmbH 4 2 SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ Services für BI und Datenanalyse in Zahlen • 30 Experten für Business Intelligence und Datenanalyse • 20 davon von SAS zertifiziert • 7 davon bei SAS als Trainer akkreditiert • 1,5 Tage pro Monat und Mitarbeiter für die Fortbildung, Wissensziele statt Umsatzziele • mehr als 100 Aufträge für 30 Unternehmen in 2010 Kai Brodmann © 2011 HMS Analytical Software GmbH 5 Referenzen Kai Brodmann © 2011 HMS Analytical Software GmbH 6 3 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Heterogene Systemlandschaften • Sehr hoher Spezialisierungsgrad • Technische Religiosität • Organisches Netzwerk Kai Brodmann © 2011 HMS Analytical Software GmbH 7 Evolution bei IT‐Systemen • Modellierung der Optimierungsfunktion • Menge aller Geschäftsprozesse soll abgebildet werden • Endliches Budget • Ziel: Kostenminimierung / Qualitätsmaximierung • Suchraum • Globales versus lokales Optimum • Heuristik, z.B. Evolution • Population, Genom, Rekombination und Mutation, Fitnessfunktion, Selektion • Managementaufgabe • Intuitives Regeln der Eingangsvariablen Kai Brodmann © 2011 HMS Analytical Software GmbH 8 4 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Evolution bei IT‐Systemen • Positive Faktoren • • • • • • • Guter Servicelevel Gute Dokumentation der Schnittstellen Auffindbarkeit des Systems in zentralem Katalog Hoher Abdeckungsgrad und hohe Genauigkeit der Abbildung des Geschäftsprozesses Identifikation der Mitarbeiter mit dem System Niedrige Kosten Negative Faktoren • • • • • Aufdecken von Redundanzen führt eher zu Gefährdung des eigenen Jobs als zu Belohnung Ziele der Mitarbeiter bzw. der externen Dienstleister sind oft nicht deckungsgleich mit den Zielen des Unternehmens Mangelnde Kommunikation Revierkämpfe Ego‐Problem Kai Brodmann © 2011 HMS Analytical Software GmbH 9 Intelligente Systemintegration SOA EAI Service‐ orientierte Architektur Enterprise Application Integration Geschäfts prozess‐ Management ESB Enterprise Service Bus MOM Message Oriented Middleware + Faktor Mensch im Projekt und im Betrieb Kai Brodmann © 2011 HMS Analytical Software GmbH 10 5 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Was ist eine Schnittstelle? public static void translateCharset(String inFilename, String outFilename) throws IOException Kai Brodmann © 2011 HMS Analytical Software GmbH 11 Schnittstellen von und zu SAS FTP DDE HFS/MVS PIPE EMAIL NAMEPIPE Libname Gesamte Java Funktionalität Data Step Component Object WebDAV Filename SOCKET Open Source Javaobj SAS/Toolkit Weka X Commands Eigenentwicklungen SAS SAS IOM R PROC IML Application Messaging Message Queue PROC SOAP SAS.exe aufrufen Web Services Scheduler SAS BI Webservices OPC external DLL Interface UC4 Windows DLLs SharePoint shared library Unix Kai Brodmann © 2011 HMS Analytical Software GmbH 12 6 SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ Filename Statement + Pipe Betriebssystemaufruf aus SAS auf der z/OS Unix‐Seite filename oecmd pipe 'cd javaprogs; ls ‐l'; data dirlist; infile oecmd truncover; input mode $ 1‐10 nlinks 12‐14 user $ 16‐23 group $ 25‐32 size 34‐40 lastmod $ 42‐53 name $ 54‐253; run; Anwendungsbeispiel komplexe Dateisystemanalysen Kai Brodmann © 2011 HMS Analytical Software GmbH 13 Java Beispielklasse Methode zur Codepage‐Konvertierung von Textdateien public static void main(String[] args) throws IOException { String inFilename = args[0]; String outFilename = args[1]; translateCharset(inFilename, outFilename); } public static void translateCharset(String inFilename, String outFilename) throws IOException { String inFileCharsetName = new String(); String outFileCharsetName = new String(); outFileCharsetName = "IBM273"; inFileCharsetName = "ISO‐8859‐1"; File infile = new File(inFilename); File outfile = new File(outFilename); … Kai Brodmann © 2011 HMS Analytical Software GmbH 14 7 SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ X Command Java‐Aufruf der Codepage‐Konvertierung aus SAS unter Windows x 'cd C:\sfd\ebdic & java ‐jar sfd.jar umwandeln.txt umgewandelt.txt'; Kai Brodmann © 2011 HMS Analytical Software GmbH 15 Call System Java‐Aufruf mit Return Code Abfrage data _null_; COMMAND = 'cd C:\sfd\ebdic & java ‐jar sfd.jar umwandeln.txt umgewandelt.txt'; Call System(COMMAND); Put _all_; run; %Put SYSRC &SYSRC; Anwendungsbeispiel bestehenden Algorithmus anbinden Kai Brodmann © 2011 HMS Analytical Software GmbH 16 8 SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ Data Step Component Object / Javaobj Javaobj: Java Programme aufrufen im Data Step data _null_; dcl javaobj j("kaitest/com/Sfd"); j.callStaticVoidMethod("translateCharset", "C:\sfd\ebdic\umwandeln.txt","C:\sfd\ebdic\umgewandelt.txt"); run; Anwendungsbeispiel Spezialaufgaben an Java auslagern mit engerer Kopplung als bei X‐Command Kai Brodmann © 2011 HMS Analytical Software GmbH 17 weitere Beispiele • SAS.exe aus anderen Anwendungen heraus aufrufen • R‐Schnittstelle aus PROC IML heraus aufrufen • Eigene SAS Prozeduren bauen mit SAS/Toolkit (PROC MY_PROCSTEP) Kai Brodmann © 2011 HMS Analytical Software GmbH 18 9 SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ External DLL Interface %macro MessageBoxInit; filename msgbox catalog 'work.winapi.msgbox.source'; Direkter Aufruf von Windows‐ DLLs aus SAS heraus 1. Erstellen der SASCBTBL Tabelle als Textdatei 2. Zuweisen der SASCBTBL Tabelle mittels Filename‐Statement 3. Eigentlicher DLL‐Aufruf mittels call routine oder function MODULE, MODULEN, or MODULEC data _null_; file msgbox; put " "; put "routine MessageBoxA"; put " module=USER32"; put " minarg=4"; put " maxarg=4"; put " stackpop=called"; put " returns=short"; put ";"; put " "; put "arg 1 input num format=pib4. byvalue; * Window parent, always use 0;"; put "arg 2 input char format=$cstr200.; * Message ;"; put "arg 3 input char format=$cstr200.; * Title;"; put "arg 4 input num format=pib4. byvalue; * Style;"; run; %mend MessageBoxInit; %*** Einbinden der Windows-API ***; filename sascbtbl catalog 'work.winapi.msgbox.source' ; %*** Aufruf der Windwows-API ***; data _null_; CRLF = byte (13) !! byte (10); rc = modulen ( 'MessageBoxA', 0 , tranwrd ("&Message", "~#", CRLF) , "&MessageTitle." , &StyleCmd.); call symput ("&rc", rc); run; Anwendungsbeispiel betriebssystemnahe Zugriffe Prozessortemperatur, Rechte vergeben, freier Festplattenplatz Kai Brodmann © 2011 HMS Analytical Software GmbH 19 PROC SOAP Webservice konsumieren mit PROC SOAP • Aufruf von Webservice direkt aus dem SAS Code • Herausforderung: Erstellung und Transformation von XML Kai Brodmann © 2011 HMS Analytical Software GmbH 20 10 SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ PROC SOAP Webservice konsumieren mit PROC SOAP Anfrage Anwendungsbeispiel: SOA filename xmlin "C:\sfd\proc_soap\wsin.xml"; filename xmlout "C:\sfd\proc_soap\wsout.xml"; proc soap in=xmlin out=xmlout url="http://hd1pcms0067:8080/WebServiceDemo/ HalloWSService"; run; <?xml version="1.0" encoding="UTF‐8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Header/> <S:Body> <ns2:sagHallo xmlns:ns2="http://WSDemo.hms.de/"> <arg0>kai</arg0> </ns2:sagHallo> </S:Body> </S:Envelope> Webservice Antwort <ns2:sagHalloResponse xmlns:ns2="http://WSDemo.hms.de/"><return>Hallo kai!</return></ns2:sagHalloResponse> Kai Brodmann © 2011 HMS Analytical Software GmbH 21 weitere Beispiele • Stored Processes als Webservices anbieten • Message Queue System ansprechen • Integration von SAS mit Sharepoint Kai Brodmann © 2011 HMS Analytical Software GmbH 22 11 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ SAS Forum Mannheim, 27.09.2011, 16.40-17.10 SAS IOM • SAS Integrated Object Model (IOM) • Entwicklung von völlig eigenständigen Anwendungen (z.B. Java/.NET) • Enterprise Guide benutzt die selbe Schnittstelle Praxisbeispiel Visual HotSync .NET GUI SAS IOM SAS Workspace Server Kai Brodmann © 2011 HMS Analytical Software GmbH 23 SAS IOM: Visual HotSync Filetransferwerkzeug mit Subversion Integration Kai Brodmann © 2011 HMS Analytical Software GmbH 24 12 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Schnittstelleneigenschaften X Command Aufruf von Java Programm Asynchroner / synchroner Aufruf (Prozesssynchronisation) Datenaustauschformat / Protokoll Exception Handling / Fehlerbehandlung , Returncodes Logging Aufrufparameter Benutzerkontext / Rechte ? Sicherheit Debugging Einschränkung der Plattformunabhängigkeit Kai Brodmann © 2011 HMS Analytical Software GmbH 25 Übersichtstabelle betrachtete Schnittstellen Filename + Pipe Java über X‐Command JavaObj SAS.exe aufrufen • Vorhandenes Know-how nutzen • Bestehende Systeme/Bibliotheken nutzen • Spezialisierte Technologien nutzen R aus PROC IML SAS/Toolkit • SOA realisieren externes DLL Interface Webservice Message Queue • SAS in Prozessketten einbinden • Eigene GUIs für den SAS Server entwickeln SAS Sharepoint SAS IOM Kai Brodmann © 2011 HMS Analytical Software GmbH 26 13 SAS Forum Mannheim, 27.09.2011, 16.40-17.10 Vortrag, Kai Brodmann, HMS Analytical Software GmbH „SAS in der Praxis – Lösungen für die Anwendungsintegration“ Vielen Dank für Ihre Aufmerksamkeit Kai Brodmann Diplom‐Informatiker Teamleiter / Senior Software‐Ingenieur HMS Analytical Software GmbH Rohrbacher Str. 26 • 69115 Heidelberg Telefon +49 6221 6051‐0 Kai.Brodmann@analytical‐software.de www.analytical‐software.de Kai Brodmann © 2011 HMS Analytical Software GmbH 27 14