SAS in der Praxis - HMS Analytical Software GmbH

Werbung
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
Herunterladen