Jenseits von Fakultät und Fibonacci: Architektur Funktionaler Programme

Größe: px
Ab Seite anzeigen:

Download "Jenseits von Fakultät und Fibonacci: Architektur Funktionaler Programme"

Transkript

1 Jenseits von Fakultät und Fibonacci: Architektur Funktionaler Programme Dr. Klaus Alfert Dr. Bernd Löchner Folie 1 Januar 2011 Dr. Klaus Alfert Dr. Bernd Löchner

2

3 Warum ist Funktionale Programmierung in vieler Munde? Folie 3 Januar 2011 Dr. Klaus Alfert Dr. Bernd Löchner

4 Sun T 2»Niagara 2«2007, 8 Cores 8 Threads

5 Intel i7»nehalem«2008, 4 Cores 2 Threads

6 IBM POWER 7, 2010, 8 Cores 4 Threads

7 Oracle T 3»Rainbow Falls«2010, 16 Cores 8 Threads

8 Intel Cloud Computing on a Chip 2009, 48 Cores (Prototyp)

9 Warum ist Nebenläufigkeit mit Objekten schwierig? Folie 9 Januar 2011 Dr. Klaus Alfert Dr. Bernd Löchner

10 Objekte haben eine Identität :2 :3 :1

11 Objekte haben einen (lokalen) Zustand :2 :3 :1

12 Objekte haben Verhalten :2 :3 :1

13 Multithreading erfordert Locks :2 :3 :1

14 Ein hoher Grad an Nebenläufigkeit wird leicht unübersichtlich

15 Ein hoher Grad an Nebenläufigkeit wird leicht unübersichtlich

16 Wie kann funktionale Programmierung hier helfen?

17 Was unterscheidet FP von OOP? Folie 17 Januar 2011 Dr. Klaus Alfert Dr. Bernd Löchner

18 Zu den Programmbeispielen Beispiele in Haskell & Erlang Haskell ist puristisch elegant Erlang hat Industrial-Strength F# Die Beispiele sind aber alle übertragbar in andere funktionale Programmiersprachen.

19 A LISP programmer knows the value of everything, but the cost of nothing. Alan J. Perlis Epigrams of Programming

20 Werte, Variablen, Veränderliche Was sind imperative Variablen? Namen für Adressen von Speicherzellen Abstraktionsniveau: Assembler Objekte haben eine Identität: Entspricht einer Adresse von Speicherzellen Was sind funktionale Variablen? Namen für Werte: Sei x beliebig, aber fest Variablen werden an Werte gebunden Abstraktionsniveau: Mathematik Notwendig: Effiziente Abbildung auf Speicherzellen durch Laufzeitsystem x x 42 42

21 Objekte versus Werte :1 42 :1 42 Gleich, aber nicht identisch Copy Gleich und identisch : Funktionen erzeugen aus alten Werte neue!

22

23 Rekursion statt Iteration: Hyper-Fakultät (Sloane: A Handbook of Integer Sequences) Fakultät ist für Kinder Hyper-Fakultät ist für Erwachsene H ( n) = n k k k= 1 H(n) = 1, 1, 4, 108, 27648, , , , , , , ,

24 Rekursion statt Iteration: Hyper-Fakultät (Sloane: A Handbook of Integer Sequences) Imperativ: Zuweisungsorientiert hfac(n): r := 1; while n > 0 do r := r * n^n; n := n 1; od return r; Rekursiv: Werteorientiert hfac(n)-> if n == 0 then 1 else n^n * hfac(n-1)

25 Rekursion statt Iteration: Hyper-Fakultät (Sloane: A Handbook of Integer Sequences) Imperativ: Zuweisungsorientiert hfac(n): r := 1; while n > 0 do r := r * n^n; n := n 1; od return r; Berechnung: hfac(3) n r ?

26 Rekursion statt Iteration: Hyper-Fakultät (Sloane: A Handbook of Integer Sequences) Imperativ: Zuweisungsorientiert hfac(n): r := 1; while n > 0 do r := r * n^n; n := n 1; od return r; Rekursiv: Werteorientiert hfac(n)-> if n == 0 then 1 else n^n * hfac(n-1)

27 Rekursion statt Iteration: Hyper-Fakultät (Sloane: A Handbook of Integer Sequences) Berechnung: fun n hfac(3) if n == 0 then 1 else n^n * hfac(n-1) hfac(2) Rekursiv: Werteorientiert hfac(n)-> if n == 0 then 1 else n^n * hfac(n-1) fun n 2 4 if n == 0 then 1 else n^n * hfac(1) hfac(n-1) 1 fun n 1 fun n 0 if n == 0 then 1 else n^n * hfac(n-1) hfac(0) 1 if n == 0 then 1 else n^n * hfac(n-1)

28 Komplexe Werte sind oft baumartig { } vorname : Martin, nachname : Mustermann, anschrift : { strasse : Hauptstrasse 23, ort : { plz : 76541, stadt : Neustadt } }, kurse : [ ] A C1 { id : Mo1, title: Tutorial C# }, { id : Ndo4, title: Architektur } B C2 C C21 C22 D11 D12 D111 D112 D D1 D121 D122

29 Wie ändert man komplexe Werte? update (Tree, Value) Tree

30 Update: Ersetze 41 durch 42 Alter Baum Neuer Baum Beide Bäume existieren gleichzeitig!

31 Pattern Matching sum ([]) -> 0; sum ([X Xs]) -> X + sum (Xs). abs (N) when N >= 0 -> N; abs (N) -> -N. length [] = 0 length (x:xs) = 1 + length xs zip [] _ = [] zip _ [] = [] zip (x:xs) (y:ys) = (x,y) : zip xs ys

32 Higher-order Funktionen, Polymorphie und Lambda-Ausdrücke map :: (a -> b) -> [a] -> [b] map f [] = [] map f (x:xs) = f x : map f xs map abs [-2.. 2] >> [2, 1, 0, 1, 2] map (\x -> x*x) [-2.. 2] >> [4, 1, 0, 1, 4]

33 Algebraische Datenstrukturen data Tree a = Empty Node (Tree a) a (Tree a) maptree :: (a -> b) -> Tree a -> Tree b maptree f Empty = Empty maptree f (Node l x r) = Node (maptree f l) (f x) (maptree f r) data Color = Green Red... autumn t = maptree change t where change Green = Red change c = c

34 Erlang hat Closures und Clojure auch (und Scala, F#, ) mk_mul_abs (M) -> fun (N) when N > 0 -> M * N; (N) -> M * (-N) end. Ma3 Ma3 = mk_mul_abs (3). lists:map(ma3, [-2, -1, 0, 1, 2]). mk_mul_abs M fun N when N > 0 -> M * N; M * (-N) 3 >> [6, 3, 0, 3, 6]

35 Haskell erlaubt Partial Application parabola a b c x = a*x^2 + b*x + c fun a b c x a*x^2 + b*x + c p1 fun a fun b fun c fun x 3.5 p1 :: Double -> Double a*x^2 + b*x + c p1 = parabola y = p1 1.0 linear = parabola 0.0 l1 = linear

36 Programmierung im Großen Verantwortlichkeiten bündeln Module, APIs und Interfaces Kontrakte: Daten, Funktionen, Eigenschaften Information Hiding Sichtbarkeiten, Namespaces Implementierungsinterna verbergen Werteorientierung und Higher-order Funktionen ermöglichen andere Schnittstellen und Kontrakte Wie in OOP: Benötigt Augenmaß und Disziplin Beispiel: Pattern Matching

37 Funktionale Programmierung = Werteorientierung & Higher-order Funktionen

38 Welche Auswirkungen hat Funktionale Programmierung auf Architektur und Design?

39 Eoin Wood: Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be canceled.

40 Grady Booch: Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change.

41 ANSI/IEEE The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.

42 ANSI/IEEE The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.

43 High-Level Architektur

44 Architektur auf Marketing-Niveau: Ein typisches Marchitecture -Diagramm Pricing System im Fokus Auftragsverwaltung Kundenverwaltung Logistik CRM Server DWH DB

45 Enterprise Architektur: Funktionalität bleibt lokal, Kommunikation über Werte System im Fokus HTML Pricing Logistik JSON/REST Portal Server Auftragsverwaltung Kundenverwaltung SOAP SOAP Service Bus AMQP DWH MQ SOAP QuerySet Host CRM Server DB

46 High Level Architektur: Grobzerlegung bleibt bestehen Treiber: Primär fachliche Zerlegung in Aufgaben- und Verantwortlichkeitsgebiete Reflektiert auch die Organisation (Conway s Law) Konsequenzen Architektur auf dieser Ebene ist unabhängig von der Implementierungstechnologie Interna der Komponenten/Subsysteme sind irrelevant Kommunikation erfolgt über Werte, Funktionen bleiben lokal und werden nicht transportiert

47 Mittlere Architektur

48 Mittlere Architektur: Geprägt von nicht-funktionalen Systemanforderungen Funktionalität Bedienbarkeit Zuverlässigkeit Dokumentation Machbarkeit Effizienz Wartbarkeit Portabilität Gliederung gemäß ISO/IEC 9126

49 Enterprise Java

50 Ein Blick auf Enterprise Java Historisch: Transaktionsmonitor für verteilte Objekte Anbindung an (Legacy)-Datenbanken Ausgelegt für Informationssysteme Hohen Durchsatz Skalierbarkeit Funktionalität Zuverlässigkeit Dokumentation Machbarkeit Bedienbarkeit Effizienz Wartbarkeit Portabilität

51 Struktur: N-Tier-Schichtenarchitektur

52 Einfluss von Java Everything is an Object Auch für Dinge, die eigentlich keine Objekte sind (Stateless Session Beans, MDB, Backing Beans, Servlets, Transaktionen) Transparente Remote-Aufrufe (RMI) Thread-Management nur im Container Das Lock-Model von Java erlaubt keine Komposition von Concurrent Libraries Interfaces anstatt abstrakter Klassen

53 Erlang/OTP To Iterate is Human, to Recurse Divine L. Peter Deutsch

54 Ein Blick auf Erlang/OTP Historisch: Soft-Realtime Systeme, PBX, Telco Ausgelegt für (sehr hohe) Zuverlässigkeit und Fehlertoleranz Skalierbarkeit mit massiver Parallelität Kommunikationssysteme Funktionalität Bedienbarkeit Anwendungsbeispiele Diverse Telco-Systeme von Ericsson Ejabberd, RabbitMQ, CouchDB Wartbarkeit Zuverlässigkeit Dokumentation Machbarkeit Portabilität Effizienz

55 OTP besteht aus lose gekoppelten Anwendungen Anwendung Web Server crypto odbc gen_tcp uses

56 und aus Supervisor-Prozesshierarchien Anwendung Supervisor Worker Supervisor überwacht Worker Worker

57 Einfluss von Erlang auf OTP Erlang stellt die Basismechanismen bereit Pure Funktionen, Datenstrukturen sind immer Werte Nebenläufigkeit durch Prozesse Prozesse sind referenzierbar Entitäten im Sinne von Domain Driven Design Halten lokalen State, teilen sich aber keinen State! Massive Parallelität durch leichtgewichtige Prozesse und asynchrones Messaging Monitoring von Prozessen über VM-Grenzen hinaus Hot-Code Swapping: Updates im laufenden System Nachbau in Scala: Akka (www.akka.io)

58 Mittlere Architektur: Domäne der Blue-Print-Architekturen Standardarchitektur für eine bestimmte Systemklasse Anwendungsdomäne und -typ sind relevant Abgestimmt auf Hardware und Infrastruktur Geprägt von den nicht-funktionalen Anforderungen Priorisierung und Balancierung der Qualitätsattribute Das technisch Machbare bestimmt den Lösungsraum Programmiersprachen Laufzeitsysteme Bibliotheken Funktionalität Bedienbarkeit Zuverlässig- Dokumentation keit Effizienz Machbarkeit Wartbarkeit Portabilität

59 Kleinteilige Architektur

60

61 Peter Norvig: Design Patterns in Dynamic Languages (1998) Analyse der Design Patterns aus Lisp/Dylan-Sicht GoF verwendet C++ und Smalltalk Unterscheidung von Implementierungsebenen Unsichtbar: Wird von der Sprache abgedeckt Informell: Wird jedes mal neu implementiert Formell: Implementierung mit Template oder Macro Norvigs Fazit für die 23 GoF Patterns: 16 werden deutlich einfacher oder unsichtbar

62 GoF Command Pattern

63 Ein Command ist eine Closure shutdown_command(receiver) -> fun() -> Receiver! {shutdown, now} MyMachine =, Cmd = shutdown_command(mymachine), add_action(cmd, Cmd(). fun Receiver fun () MyMachine Cmd Receiver! {shutdown, now}

64 Commands mit Undo sind Closures mit Pattern Matching start_command(receiver) -> fun(do) -> Receiver! {start, now}; (undo) -> Receiver! {shutdown, now} MyMachine =, Cmd = Cmd(do),... Cmd(undo). Cmd fun Receiver fun (do) Receiver! {start, now} (undo) MyMachine Receiver! {shutdown, now}

65 GoF Visitor Pattern Languages that support double- or multiple dispatch lessen the need for the Visitor pattern. (CLOS actually supports multiple dispatch). [GoF: p.339] Ein Composite

66 Composite = Algebraischer Datentyp Visitor = Durchlauf der Struktur data CarElement = Car [CarElement] Wheel String Body Engine Die Java Implementierung bei Wikipedia braucht dafür ca. 100 Zeilen tostring Body = ["Visit Body"] tostring Engine = ["Visit Engine"] tostring (Wheel s) = ["Visit Wheel " ++ s] tostring (Car es) = concat (map tostring es) ++ ["Visit Car"] docar Body = ["Moving my Body"] docar Engine = ["Starting my Engine"] docar (Wheel s) = ["Kicking Wheel " ++ s] docar (Car es) = concat (map docar es) ++ ["Starting my Car"]

67 Charakteristik der GoF Patterns (1) Creational Patterns Factories und Builder lösen allgemeine Probleme, unabhängig von OO, auch in C, Modula2, Haskell, Erlang Prototypen und Singletons verschwinden Structural Patterns Interface-Probleme und -Lösungen sind sprachunabhängig (Facade, Bridge, Adapter, Proxy) Composite und Decorator werden unsichtbar

68 Charakteristik der GoF Patterns (2) Behavioral Patterns Können durch Lambdas, Pattern Matching, anders realisiert werden. Einige werden unsichtbar, andere sind nicht immer offensichtlich umzusetzen. Generelle Beobachtung: Patterns, die auf Objektidentitäten basieren, müssen ganz anders umgesetzt werden.

69 Funktionale Patterns Folie 69 Januar 2011 Dr. Klaus Alfert Dr. Bernd Löchner

70 Standardisierte Rekursion Listenfunktionen in Haskell: sum [] = 0 sum (x:xs) = x + sum xs product [] = 1 product (x:xs) = x * product xs alltrue [] = True alltrue (x:xs) = x && alltrue xs sum = foldlist 0 (+) product = foldlist 1 (*) alltrue = foldlist True (&&) Extrahiere das Rekursionsschema foldlist startval combfct [] = startval foldlist startval combfct (x:xs) = combfct x (foldlist startval combfct xs)

71 Standardisierte Rekursion Mit foldlist können viele Listenfunktionen implementiert werden length [] = 0 length (x:xs) = 1 + length xs length = foldlist 0 cfct where cfct x len = 1 + len map f [] = [] map f (x:xs) = f x : map f xs map f = foldlist [] cfct where cfct x ys = f x : ys

72 Standardisierte Rekursion für Algebraische Datentypen Generalisiere für andere Datenstrukturen data Tree a = Empty Node (Tree a) a (Tree a) foldtree eval cfct Empty = eval foldtree eval cfct (Node l x r) = cfct (foldtree eval cfct l) x (foldtree eval cfct r) sumtree = foldtree 0 cfct where cfct sl x sr = sl + x + sr maptree f = foldtree Empty cfct where cfct ml x mr = Node ml (f x) mr heighttree = foldtree 0 cfct where cfct hl x hr = 1 + max hl hr

73 Auch im Visitor findet sich strukturierte Rekursion data CarElement = Car [CarElement] Wheel String Body Engine visit :: (CarElement -> a) -> CarElement -> [a] visit f (Car es) = concat (map (visit f) es) ++ [f (Car es)] visit f x = [f x] printcar car = visit tostring car where tostring Body = "Visit Body" tostring Engine = "Visit Engine" tostring Wheel s = "Visit Wheel " ++ s tostring Car es = "Visit Car" Separation of Concerns

74 Recursion is the goto of functional programming. Erik Meijer

75 Leichtgewichtige Threads Erlang Prozesse sind nebenläufige, meist rekursive Funktionen CalcProc = spawn(fun() -> calc_loop(0)) calc_loop(acc) -> NewAcc = receive {mul, X} -> Acc * X; {add, X} -> Acc + X; clear -> 0; {get, Pid} -> Pid! {result, Acc}, Acc; _IgnoredMsg -> Acc end, calc_loop(newacc). Auswahl der Nachrichten durch Pattern Matching Funktioniert dank Tail Call Optimization

76 Nebenläufige Endliche Automaten durch Prozesse, Funktionen und Messaging statt State-Pattern idle() -> receive {Number, incoming} -> start_ringing(), ringing(number); off_hook -> start_tone(), dial() end. ringing(number) -> receive {Number, off_hook} -> stop_ringing(), connected(number); {Number, other_on_hook} -> stop_ringing(), idle() end. incoming Ringing off_hook other_ on_hook Idle on_hook Connected off_hook Dial Cesarini/Thompson: Erlang Programming 2009

77 Lazy Evaluation und unendliche Datenstrukturen Lazy Evaluation: (Teil-)Ausdrücke werden nur ausgewertet, wenn sie benötigt werden head (x:xs) = x Mit Lazy Evaluation gilt: head [42.0, 1.0/0] == 42.0 Essentiell, um eigene Kontrollstrukturen zu definieren unless cond x y = if!cond then x else y Ideal für DSLs

78 Lazy Evaluation und unendliche Datenstrukturen Mit Lazy Evaluation werden (potentiell) unendliche Datenstrukturen möglich nats = [0..] take 5 nats == [0, 1, 2, 3, 4] Wurzel-Berechnung nach Newton-Raphson: sqrtsequence n = iterate (next n) n where next n x = (x + n/x)/2.0 sqrtsequence 2 >> [2.0, 1.5, , , , , , , , iterate f n = [n,f(n),f 2 (n),f 3 (n), ]

79 Pipes and Filters Die Mächtigkeit der Unix-Shell kommt durch Pipes&Filters Konstruktionen cat *.txt tr sc A-Za-z '\n' tr a-z A-Z sort uniq c sort nr head Allgemein prg1 p1 <arg prg2 p2 prg3 p3 prg4 p4 Dies geht auch mit lazy Lists und Funktionskomposition fct4 p4. fct3 p3. fct2 p2. fct1 p1 $ arg Partial Application Listen als Transfer- Container Funktionskomposition enspricht Pipe Funktionsapplikation enspricht < Idiomatisch in Haskell

80 Map/Reduce f(x 1 ) x 1 f(x 2 ) x 2 y = f(x 1 ) f(x n ) reduce.. map f.... f(x n ) x n Zusammenfassung zum Endergebnis Berechnung der (unabhängigen) Zwischenergebnisse Inspiration für s Map-Reduce-Framework (C++)

81 Was es sonst noch gibt Eine Reihe weiterer Themen müssen wir auslassen Memoization Kombinatoren Monaden Macros Typeful Programming Continuations Co-Algebraische Konstruktionen

82 Fazit

83 Funktionale Programmierung Andersartiger Programmierstil Neue Abstraktionen und Kombinationsmöglichkeiten Andere Zerlegung von Problemen Andere Denkweisen und Idiome Einfachere Strukturen machen das Leben leichter Keine (kaum) Seiteneffekte Pure Functions Testen und Parallelität werden sehr viel einfacher

84 Auswirkungen auf Architektur Vieles bleibt gleich Architekturtreiber sind weiterhin die Qualitätsattribute Patterns werden zur Kommunikation für die Entwickler benötigt Kreativität und Augenmaß bleiben zwei wichtige Eigenschaften der Architekten Gutes Design Klare Verantwortlichkeiten

85

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Funktionale Programmierung

Funktionale Programmierung Schleifen 1 Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 3 Teil I Jedem Anfang wohnt ein Zauber inne 4 Über mich Diplom in Informatik in Saarbrücken

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die

Mehr

Software-Architektur Design Patterns

Software-Architektur Design Patterns Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:

Mehr

Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe

Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe Anfragen für Listen Kapitel 7 des Buches, von Java-Selbstbau nach Scala-Library portiert. 2014-11-14 Christoph Knabe 1 MapReduce-Verfahren Google u.a. verwenden Map-Reduce-Verfahren zur Verarbeitung riesiger

Mehr

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber Konsequent agile Entwicklung mit funk4onaler Programmierung Michael Sperber Individualso4ware branchenunabhängig Scala, Clojure, Erlang, Haskell, F# Schulungen, Coaching www.acave- group.de funkaonale-

Mehr

Verträge für die funktionale Programmierung Design und Implementierung

Verträge für die funktionale Programmierung Design und Implementierung 1 Verträge für die funktionale Programmierung Design und Implementierung RALF HINZE Institut für Informatik III, Universität Bonn Römerstraße 164, 53117 Bonn, Germany Email: ralf@informatik.uni-bonn.de

Mehr

Klausur Verteilte Systeme

Klausur Verteilte Systeme Klausur Verteilte Systeme SS 2005 by Prof. Walter Kriha Klausur Verteilte Systeme: SS 2005 by Prof. Walter Kriha Note Bitte ausfüllen (Fill in please): Vorname: Nachname: Matrikelnummer: Studiengang: Table

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

WS 2011/2012. Georg Sauthoff 1. November 10, 2011

WS 2011/2012. Georg Sauthoff 1. November 10, 2011 in in WS 2011/2012 Georg 1 AG Praktische Informatik November 10, 2011 1 gsauthof@techfak.uni-bielefeld.de Kontakt in Dr. Georg Email: gsauthof@techfak.uni-bielefeld.de M3-128 in Organisation der Übungen

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Risikogetriebene Softwarearchitektur. STEFAN TOTH Agile Bodensee 26.09.2013

Risikogetriebene Softwarearchitektur. STEFAN TOTH Agile Bodensee 26.09.2013 Risikogetriebene Softwarearchitektur STEFAN TOTH Agile Bodensee 26.09.2013 0 Die Hacke für den Klotz am Bein STEFAN TOTH Agile Bodensee 26.09.2013 0 Stefan Toth Stefan.Toth@oose.de st_toth seit 06/2008

Mehr

In Erlang(en) Concurrency Oriented Programming. Jan Hermanns

In Erlang(en) Concurrency Oriented Programming. Jan Hermanns In Erlang(en) Concurrency Oriented Programming Jan Hermanns 1 Motivation Carrier Class Systeme massiv parallel 99.9999999% Uptime d.h. 31ms Downtime pro Jahr Wie sieht eine Programmiersprache aus, mit

Mehr

Monaden in anderen Programmiersprachen

Monaden in anderen Programmiersprachen Monaden in anderen Programmiersprachen Themen Informatik-Seminar SS 2013: Programmiersprachen und Sprachsysteme Bei: Prof. Dr. Schmidt, FH Wedel inf9500 Sebastian Philipp Überblick Motivation Monaden in

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering andreas.holubek@arlanis.com arlanis Software AG, D-14467 Potsdam 2009, arlanis

Mehr

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans Sebastian Pipping 18. Dezember 2006 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. Teil I J2EE J2EE Was ist J2EE? Was ist J2EE?

Mehr

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition Inhaltsverzeichnis Vorwort 13 I Enterprise Java im Überblick 1 Bedeutung von Enterprise Java und IBM WebSphere 21 1.1 Enterprise Java 23 1.1.1 Anforderungen 23 1.1.2 E-Business 30 1.1.3 Java 36 1.2 IBM

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

ORACLE Business Components for Java (BC4J) Marco Grawunder

ORACLE Business Components for Java (BC4J) Marco Grawunder ORACLE Business Components for Java (BC4J) Marco Grawunder Gliederung 2 Probleme von J2EE/EJB J2EE-Pattern Lösungsansatz: BC4J Architektur einer BC4J-Anwendung Komponenten Entity Objects View Objects Application

Mehr

Software-Architekturen für das E-Business

Software-Architekturen für das E-Business Sebastian Herden Jorge Marx Gömez Claus Rautenstrauch Andre Zwanziger Software-Architekturen für das E-Business Enterprise-Application-Integration mit verteilten Systemen Mit 60 Abbildungen 4y Springer

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung

Mehr

Datenbearbeitung in der Cloud anhand von Apache Hadoop Hochschule Mannheim

Datenbearbeitung in der Cloud anhand von Apache Hadoop Hochschule Mannheim Tobias Neef Cloud-Computing Seminar Hochschule Mannheim WS0910 1/23 Datenbearbeitung in der Cloud anhand von Apache Hadoop Hochschule Mannheim Tobias Neef Fakultät für Informatik Hochschule Mannheim tobnee@gmail.com

Mehr

Funktionale Programmierung. ALP I Lambda-Kalkül. Teil IVb WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Funktionale Programmierung. ALP I Lambda-Kalkül. Teil IVb WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I Lambda-Kalkül Teil IVb WS 2012/2013 λ-kalkül-parser Hilfsfunktionen: Die break-funktion ist eine Funktion höherer Ordnung, die eine Liste beim ersten Vorkommen einer Bedingung in zwei Listen spaltet.

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

Service Oriented Architecture & Enterprise Service Bus

Service Oriented Architecture & Enterprise Service Bus Service Oriented Architecture & Enterprise Service Bus 25.05.2005 Sven Stegelmeier 1 Inhalt Einführung in SOA Motivation Begriffsdefinitionen Bestandteile einer SOA Dienste als Bausteine Entwicklungsstadien

Mehr

NoSQL mit Postgres 15. Juni 2015

NoSQL mit Postgres 15. Juni 2015 Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste

Mehr

Tivoli Monitoring for Databases (ITM) Resource Model Tivoli Enterprise Console (TEC) Zusammenfassung. IBM Tivoli. Marcel Brückner

Tivoli Monitoring for Databases (ITM) Resource Model Tivoli Enterprise Console (TEC) Zusammenfassung. IBM Tivoli. Marcel Brückner 1 Tivoli Monitoring for Databases (ITM) Grundidee Umsetzung 2 3 Aufbau Kombination mit ITM Rule Sets 4 Grundidee Umsetzung 1 Tivoli Monitoring for Databases (ITM) Grundidee Umsetzung 2 3 Aufbau Kombination

Mehr

Android Kurs Online Kurs Entwicklung auf Android-Handys

Android Kurs Online Kurs Entwicklung auf Android-Handys Android Kurs Online Kurs Entwicklung auf Android-Handys Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses Modul Eins - Programmierung J2ee 1) Grundlegende Java - Programmierung : Grundlegende

Mehr

SEQIS 10 things API Testing

SEQIS 10 things API Testing SEQIS 10 things API Testing SEQIS 10 things API Testing Herzlich Willkommen! Reinhard Salomon SEQIS Geschäftsleitung SEQIS 10 things Programm 2014 20.03.14 Business Analyse Einführung in den BABOK Guide

Mehr

Fragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))?

Fragen. f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Fragen f [ ] = [ ] f (x : y : ys) = x y : f ys f (x : xs) = f (x : x : xs) Wozu evaluiert f [1, 2, 3] (Abkürzung für f (1 : 2 : 3 : [ ]))? Wozu evaluiert [f [ ], f [ ]]? Weiteres Beispiel: f [ ] y = [

Mehr

Design Patterns. 5. Juni 2013

Design Patterns. 5. Juni 2013 Design Patterns 5. Juni 2013 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Refactoring und Design Patterns: Welchen Zusammenhang gibt es

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

SaaS-Referenzarchitektur. iico-2013-berlin

SaaS-Referenzarchitektur. iico-2013-berlin SaaS-Referenzarchitektur iico-2013-berlin Referent Ertan Özdil Founder / CEO / Shareholder weclapp die Anforderungen 1.000.000 registrierte User 3.000 gleichzeitig aktive user Höchste Performance Hohe

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Abbildung 3-1: Clients und Server C+S

Abbildung 3-1: Clients und Server C+S Abbildung 3-1: Clients und Server C+S Abbildung 3-2: Interaktions-koordinations-arten Abbildung 3-3: Zuverlässige Nachrichtenübertragung a) durch individuell quittierte Nachrichten b) durch Quittierung

Mehr

Software-Architecture Introduction

Software-Architecture Introduction Software-Architecture Introduction Prof. Dr. Axel Böttcher Summer Term 2011 3. Oktober 2011 Overview 2 hours lecture, 2 hours lab sessions per week. Certificate ( Schein ) is prerequisite for admittanceto

Mehr

Architecture Blueprints Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET, ADF, Forms und SOA

Architecture Blueprints Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET, ADF, Forms und SOA Daniel Liebhart, Guido Schmutz, Marcel Lattmann, Markus Heinisch, Michael Könings, Mischa Kölliker, Perry Pakull, Peter Welkenbach Architecture Blueprints Ein Leitfaden zur Konstruktion von Softwaresystemen

Mehr

Architecture Blueprints

Architecture Blueprints Daniel Liebhart, Guido Schmutz, Marcel Lattmann, Markus Heinisch, Michael Könings, Mischa Kölliker, Perry Pakull, Peter Welkenbach Architecture Blueprints Ein Leitfaden zur Konstruktion von Softwaresystemen

Mehr

Regelbasierte Systeme mit JBoss Drools. Paul Weinhold JUG Görlitz, 29.07.2015

Regelbasierte Systeme mit JBoss Drools. Paul Weinhold JUG Görlitz, 29.07.2015 Regelbasierte Systeme mit JBoss Drools Paul Weinhold JUG Görlitz, 29.07.2015 Warum regelbasierte Systeme? Regeln gibt es überall Regeln sind ein Bestandteil der Fachlichkeit Menschen denken in Regeln

Mehr

Gemeinsam mehr erreichen.

Gemeinsam mehr erreichen. Gemeinsam mehr erreichen. Microservices in der Oracle SOA Suite Baden 10. September 2015 Ihr Ansprechpartner Carsten Wiesbaum Principal Consultant carsten.wiesbaum@esentri.com @CWiesbaum Schwerpunkte:

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

Group and Session Management for Collaborative Applications

Group and Session Management for Collaborative Applications Diss. ETH No. 12075 Group and Session Management for Collaborative Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZÜRICH for the degree of Doctor of Technical Seiences

Mehr

WTFJS? EnterJS 2014. Matthias Reuter / @gweax

WTFJS? EnterJS 2014. Matthias Reuter / @gweax WTFJS? EnterJS 2014 Matthias Reuter / @gweax Grafik: Angus Croll @angustweets 0.1 + 0.2» 0.30000000000000004 CC-BY-SA https://www.flickr.com/photos/keith_and_kasia/7902026314/ Computer! Binärsystem! Endliche

Mehr

Generische Datenstrukturen

Generische Datenstrukturen Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Softwaretechnologie, Prof. Uwe Aßmann 1 2 Trends in der Softwareentwicklung

Mehr

SOA Service Oriented Architecture

SOA Service Oriented Architecture SOA Service Oriented Architecture (c) Till Hänisch 2006, BA Heidenheim [IBM] [WS] Wir haben: Prog ramm Proxy Proxy K2 K1 Plattformunabhängiger RPC Wir haben: Prog ramm Proxy Proxy K2 K1 Plattformunabhängiger

Mehr

Von Keerthikan T. & Siyar Kolusari 10.12.2012

Von Keerthikan T. & Siyar Kolusari 10.12.2012 M226 OBJECT ORIENTIERT PROGRAMMIEREN Project Checkers An online multi-player Java Game Von Keerthikan T. & Siyar Kolusari 10.12.2012 Inhaltsverzeichnis 1. Projektbeschreibung 3 1.1. Inhalt 3 2. Ziele

Mehr

Kap. 7 IS-Infrastruktur: Zusammenfassung

Kap. 7 IS-Infrastruktur: Zusammenfassung Kapitel 7: Zusammenfassung Teil I. 1 Kap. 7 IS-Infrastruktur: Zusammenfassung In Teil I haben wir verschiedene Middleware-Lösungen zur Entwicklung (komplexer), verteilter Informationssysteme kennengelernt

Mehr

BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com

BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! bernd.ruecker@camunda.com Bernd Rücker camunda services GmbH Was ist Prozessautomatisierung? Das Ganze ist ein BPMN Prozess Aber auch (und

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

J2EEKurs. J2EE eine Plattform für betriebliche Anwendungen. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.

J2EEKurs. J2EE eine Plattform für betriebliche Anwendungen. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10. J2EE eine Plattform für betriebliche Anwendungen Universität Freiburg, Germany Sommercampus, Freiburg, Germany, 10.-14.10.2005 Plattform Betriebliche Anwendung J2EE Kontrahenten J2EE im Überblick Was ist

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Apache Hadoop. Distribute your data and your application. Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.

Apache Hadoop. Distribute your data and your application. Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache. Apache Hadoop Distribute your data and your application Bernd Fondermann freier Software Architekt bernd.fondermann@brainlounge.de berndf@apache.org Apache The Apache Software Foundation Community und

Mehr

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen

FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen Sommersemester 2013 Michael Theis, Lehrbeauftragter Java EE Spezifikation definiert ein Programmiermodell für Applikationen die Eigenschaften

Mehr

Web 2.0 Architekturen und Frameworks

Web 2.0 Architekturen und Frameworks Web 2.0 Architekturen und Frameworks codecentric GmbH Mirko Novakovic codecentric GmbH Quality Technische Qualitätssicherung in Software-Projekten mit Fokus auf Performance, Verfügbarkeit und Wartbarkeit

Mehr

Architecture Blueprints

Architecture Blueprints Architecture Blueprints Daniel Liebhart, Peter Welkenbach, Perry Pakull, Mischa Kölliker, Michael Könings, Markus Heinisch, Guido Schmutz Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET,

Mehr

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design Softwaretechnik (Medieninformatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software Kontrakte

Mehr

Integrating Architecture

Integrating Architecture Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Vorstellung und Einführung Ein beliebiger Zeitpunkt in einem beliebigen Unternehmen

Mehr

Objekt-relationales Mapping und Performance-Tuning

Objekt-relationales Mapping und Performance-Tuning Objekt-relationales Mapping und Performance-Tuning Thomas Krüger tkrueger@vanatec.com Agenda Wege um Daten zu lesen Wege um Daten zu modellieren Wege um Datenbanken effizient zu nutzen 2 2 Wege, Daten

Mehr

Ansätze zur Synchronisation von Enterprise Architecture Management, Prozessmanagement und SAP. Ralf Ackermann Daimler AG, ITM MBC Powertrain

Ansätze zur Synchronisation von Enterprise Architecture Management, Prozessmanagement und SAP. Ralf Ackermann Daimler AG, ITM MBC Powertrain Ansätze zur Synchronisation von Enterprise Architecture Management, Prozessmanagement und SAP Ralf Ackermann Daimler AG, ITM MBC Powertrain Agenda Ausgangslage EAM Tool-Landschaft bei Daimler planningit

Mehr

Grundlagen der Programmierung 2. Parallele Verarbeitung

Grundlagen der Programmierung 2. Parallele Verarbeitung Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,

Mehr

Zabbix 2.4. What's new? What's new in Zabbix 2.4. 1 of

Zabbix 2.4. What's new? What's new in Zabbix 2.4. 1 of Zabbix 2.4 What's new? 1 of What's new in Zabbix 2.4 About me Name: Pascal Schmiel Email: Schmiel@dv-loesungen.de WEB: www.dv-loesungen.de Senior Consultant Zabbix Certified Professional 2 of What's new

Mehr

Kommerzielle Softwareentwicklung mit Haskell

Kommerzielle Softwareentwicklung mit Haskell Kommerzielle Softwareentwicklung mit Haskell Ein Erfahrungsbericht Stefan Wehr factis research GmbH, Freiburg im Breisgau 7. Oktober 2011, Hal6 in Leipzig Viele Fragen Wer sind wir? Wer bin ich? Wie setzen

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Persönlichkeiten bei bluehands

Persönlichkeiten bei bluehands Persönlichkeiten bei Technologien bei Skalierbare Anwendungen mit Windows Azure GmbH & co.mmunication KG am@.de; posts..de/am 1 2 3 4 5 6 7 8 9 Immer mehr Mehr Performance Mehr Menge Mehr Verfügbarkeit

Mehr

Von SAP R/3 zu mysap ERP und NetWeaver

Von SAP R/3 zu mysap ERP und NetWeaver Von SAP R/3 zu mysap ERP und NetWeaver Bremerhaven 06.05.2006 T4T Bremerhaven 1 Inhaltsverzeichnis 1. Motivation für SAP NetWeaver 2. SAP R/3 mysap ERP und SAP Business Suite 3. Application Platform T4T

Mehr

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:

Mehr

Stichworte zur Ideengeschichte der Programmiersprachen

Stichworte zur Ideengeschichte der Programmiersprachen Stichworte zur Ideengeschichte der Programmiersprachen Faculty of Technology robert@techfak.uni-bielefeld.de Vorbemerkung Diese Notzien dienen zur Erläuterung des O Reilly Posters über die Entwicklung

Mehr

Softwarearchitekturen für das Internet der Energie

Softwarearchitekturen für das Internet der Energie Softwarearchitekturen für das Internet der Energie Herausforderungen und Anforderungen an die Architektur aus Sicht der Informatik Manfred Broy Lehrstuhl für Software & Systems Engineering Technische Universität

Mehr

Theorie und Praxis einer JSON-RPC-basierten Web-API

Theorie und Praxis einer JSON-RPC-basierten Web-API Theorie und Praxis einer JSON-RPC-basierten Web-API Christian Krause Christian.Krause@raritan.com Raritan Deutschland GmbH Chemnitzer LinuxTage 2015 Gliederung 1 2 Remote Procedure Call Interface Definition

Mehr

Informatik Programmiersprachen eine kurze Übersicht

Informatik Programmiersprachen eine kurze Übersicht Informatik eine kurze Übersicht Seite 1 natürliche Sprachen (nach Wikipedia) ca 6500 gesprochene Sprachen davon etwa die Hälfte im Aussterben etwa 500 Schriftsprachen mit gedruckten Texten P. Bueghel Turmbau

Mehr

Effiziente Anwendungs-Entwicklung mittels Business Software Framework BISON Solution

Effiziente Anwendungs-Entwicklung mittels Business Software Framework BISON Solution Effiziente Anwendungs-Entwicklung mittels Business Software Framework BISON Solution Thomas Seiler Product Manager Technology BISON Schweiz AG Agenda Vergleich - Business Software Framework zu.net Framework

Mehr

Power-Efficient Server Utilization in Compute Clouds

Power-Efficient Server Utilization in Compute Clouds Power-Efficient Server Utilization in Compute Clouds 1/14 Overview 1. Motivation 2. SPECpower benchmark 3. Load distribution strategies 4. Cloud configuration 5. Results 6. Conclusion 2/14 1. Motivation

Mehr

Proseminar Website-Management-Systeme ZOPE/CMF. Andreas M. Weiner

Proseminar Website-Management-Systeme ZOPE/CMF. Andreas M. Weiner Proseminar Website-Management-Systeme ZOPE/CMF Andreas M. Weiner Technische Universität Kaiserslautern Fachbereich Informatik Arbeitsgruppe Softwaretechnik Betreuer: Dipl. Inf. Christian Stenzel Überblick

Mehr

Übung - Modellierung & Programmierung II

Übung - Modellierung & Programmierung II 1 Übung - Modellierung & Programmierung II Mathias Goldau, Stefan Koch, Wieland Reich, Dirk Zeckzer, Stefan Philips, Sebastian Volke math@informatik.uni-leipzig.de stefan.koch@informatik.uni-leipzig.de

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms

Mehr

Cloud4E. OCCI-Service-Framework. Stand: 29. Mai 2014

Cloud4E. OCCI-Service-Framework. Stand: 29. Mai 2014 Cloud4E OCCI--Framework Stand: 29. Mai 2014 Cloud4E Ziele Flexible, cloud-basierte Simulationsumgebungen für mittelständische Unternehmen Definition und Umsetzung eines Software-Stacks zur Portierung bestehender

Mehr

Rapide An Event-Based Architecture Definition Language

Rapide An Event-Based Architecture Definition Language Rapide An Event-Based Architecture Definition Language Ralf Bettentrup Seminar: Architekturbeschreibungssprachen Wozu Rapide? Computer mit Modem Provider Broker Client Broker PC Prov 1 Client 1 RS-232

Mehr

Kapitel 1 Applikations-Architektur VI

Kapitel 1 Applikations-Architektur VI Kapitel 1 Applikations-Architektur VI Software Engineering FS 2015 Prof. Dr. Jana Köhler jana.koehler@hslu.ch Gesamtüberblick I. Software Architektur Grundbegriffe II. Prinzipien & Taktiken III. Stile

Mehr

Created by Angelo Maron

Created by Angelo Maron Domain Driven Design in Ruby on Rails Created by Angelo Maron Wer bin ich? Angelo Maron Sofware-Entwickler seit ca. 7 Jahren (Ruby on Rails) bei AKRA seit 2,5 Jahren Xing: https://www.xing.com/profile/angelo_maron

Mehr

1. Teilklausur. Modul "OOPM Vorlesung/Übung" 16.12.2008. Gruppe A

1. Teilklausur. Modul OOPM Vorlesung/Übung 16.12.2008. Gruppe A Objektorientierte Programmierung und Modellierung WS 2008/2009 Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur Modul "OOPM Vorlesung/Übung" 16.12.2008 Gruppe A Name Vorname

Mehr

Lua. June 9, 2015. Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua )

Lua. June 9, 2015. Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua ) Lua Marcus Brenscheidt Marcin Golkowski Dynamische Programmiersprachen June 9, 2015 June 9, 2015 1 / 15 Geschichte I Entwickelt von Roberto Ierusalimschy, Luiz Henrique und Waldemar Celes Mitglieder der

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Foundations of Systems Development

Foundations of Systems Development Foundations of Systems Development Vergleich und Zusammenfassung Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer WS 2007/08 2 Ziele Wichtige Aspekte von algebraischen Spezikationen

Mehr

Automatisierte Akzeptanztests für ios-apps. Sven Günther it-agile GmbH

Automatisierte Akzeptanztests für ios-apps. Sven Günther it-agile GmbH Automatisierte Akzeptanztests für ios-apps Sven Günther it-agile GmbH Wer entwickelt native Apps? Wer testet die Apps selbst? Wer hat externe Testdienstleister? Wer hat Unit-Tests? Wer hat Akzeptanztests?

Mehr

FH LU JEE Vorlesung SS 2010. Ralf Gitzel ralf_gitzel@hotmail.de

FH LU JEE Vorlesung SS 2010. Ralf Gitzel ralf_gitzel@hotmail.de FH LU JEE Vorlesung SS 2010 Ralf Gitzel ralf_gitzel@hotmail.de 1 Einführung + Organisatorisches Ralf Gitzel ralf_gitzel@hotmail.de 2 Dozent Dr. Ralf Gitzel Promotion an der Universität Mannheim in Wirtschaftsinformatik

Mehr

Rechnernetze Projekt SS 2015

Rechnernetze Projekt SS 2015 30/03/15 Seite 1 Aspektorientierte Programmierung logische Aspekte (Concerns) im Programm separieren Crosscutting Concerns (Ziel: generische Funktionalitäten über mehrere Klassen hinweg zu verwenden -

Mehr

TomTom WEBFLEET Tachograph

TomTom WEBFLEET Tachograph TomTom WEBFLEET Tachograph Installation TG, 17.06.2013 Terms & Conditions Customers can sign-up for WEBFLEET Tachograph Management using the additional services form. Remote download Price: NAT: 9,90.-/EU:

Mehr

Inhalt. SWP - Programmiersprachen. Datentypen. Datentypen (II) Datentypen Beispiele (II) Datentypen - Beispiele

Inhalt. SWP - Programmiersprachen. Datentypen. Datentypen (II) Datentypen Beispiele (II) Datentypen - Beispiele Inhalt SWP - Programmiersprachen Datentypen Sichtbarkeit / Parameterübergabe Struktur / Programmorganisation Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Parallelität Exceptions Verifikation

Mehr