JavaFX. Plus CD! Java Magazin. Java Architekturen SOA Agile. Stellenmarkt 49 Spring Security mit EJB 2x 58. CD-Inhalt

Größe: px
Ab Seite anzeigen:

Download "JavaFX. Plus CD! Java Magazin. Java Architekturen SOA Agile. Stellenmarkt 49 Spring Security mit EJB 2x 58. CD-Inhalt"

Transkript

1 12.08 Plus CD! Stellenmarkt 49 mit EJB 2x 58 Deutschland 7,50 Österreich 8,60 Schweiz sfr 15,80 Java Magazin Java Architekturen SOA Agile CD-Inhalt Jax TV: Session der JAX 2008: Ted Neward: Why the Next Five Years Will Be About Languages Business-Process-Management IX Workflow Java-Frameworks: Groovy Grails Hibernate OSGi Runtimes Apache Felix Eclipse Equinox Knopflerfish OSGi JavaFX Die Zukunft der GUI-Entwicklung in Java? 16 Single-Sign-On: Central Authentication Service Rich Internet Applications CaptainCasa Enterprise Client Web Portale 2.0 Webanwendungen mit Java Portlets 45 Architektur Rich-Client-Architekturen Wie rich darf`s denn sein? 38 Performance Anti-Patterns Vorsicht bei O/R-Mappern! 64 Agile Auf die Schnelle Alle CD-Infos 3 Wie führe ich ein Requirements- Management-Tool ein? 89 D SOA Center 69 SOA Blueprint Werkzeugkasten für Architekten Sie wollen eine SOA im Unternehmen einführen. Aber welche Grundlagen sind vorab zu klären? Welche Werkzeuge werden sofort gebraucht und welche sind (zunächst) verzichtbar? Unser allgemeiner SOA Blueprint hilft, den Nutzen kommerzieller Tools sowie von Open-Source-Komponenten zu ermitteln.

2 Enterprise mit EJB 2x Neben den gängigen Möglichkeiten von (ehemals Acegi-Framework) gibt es auch die Möglichkeit, den Sicherheitskontext auf Basis von EJBs in einem Applikationskontextobjekt zu übertragen. Die Übertragung des Sicherheitskontexts wird dabei mit Spring-Bordmitteln bewältigt. von Michael Stähler it steht ein mächtiges Sicherheits-Framework zur Verfügung, das weit über die Möglichkeiten von Java EE hinausgeht. Es bietet z.b. nicht nur rollenbasierte Autorisierung, sondern mittels aspektorientierter Programmierung [1] auch daten- und objektbasierte Sicherheit. In modernen N-Tier-Architekturen steht man häufig vor dem Problem, den Sicherheitskontext zwischen den unterschiedlichen Schichten transportieren zu müssen. Dies sollte möglichst auf transparente Art und Weise passieren, um die Trennung von Businesslogik und Infrastrukturbelangen [2] zu unterstützen. Neben den bereits in vorhandenen Möglichkeiten, den Sicherheitskontext mittels RMI- oder dem Spring-eigenen HttpInvoker-Protokoll zu übertragen, soll hier ein alternativer Lösungsansatz vorgestellt werden. Aufgrund der (noch) weiten Verbreitung von EJB-2.x-Applikationen soll der Lösungsansatz anhand dieser Spezifikationsversion vorgestellt werden. Mit kann man verschiedenste Anforderungen von Sicherheitsaspekten in Enterprise-Applikationen umsetzen [3]. Im Umfeld von Enterprise Java Beans (EJBs) gibt es ebenfalls die J2EE-Security zur Absicherung von Unternehmensanwendungen. Allerdings stellt sich diese Art der Integration meist als sehr aufwändig und unflexibel heraus, da sich die Konfiguration auf unterschiedliche Deployment-Deskriptoren und proprietäre Einstellungen im Applikationsserver niederschlägt. Die damit einhergehende Vermischung von fachlich motivierter Geschäftslogik und Security-Code führt zu verunreinigtem Sourcecode und verringert zusätzlich die Möglichkeit der einfachen Testbarkeit in Unit-Tests aufgrund der direkten Abhängigkeit der Sicherheitsprüfungen zur Laufzeitumgebung. Wie der Name schon erraten lässt, basiert das Framework auf dem Spring Framework [4]. Basierend auf der leichtgewichtigen POJO- Architektur von Spring, bei der die Abhängigkeiten der unterschiedlichen Objekte mittels Dependency Injection (DI) aufgelöst werden, ist es möglich, eine nichtinvasive Integration von Sicherheitsaspekten in unterschiedlichen JavaEE- und JavaSE-Anwendungen zu erstellen. Die Konfiguration von Spring Security wird überwiegend deklarativ vorgenommen, sodass dadurch keine Änderungen am Sourcecode durchgeführt werden müssen. Damit eignet sich das Framework auch besonders gut, um in bestehende Anwendungen integriert zu werden. Mittels der in Spring 2.0 eingeführten Namespace-Konfigurationen ist es nun auch in möglich, eine vereinfachte Konfiguration (in XML) vorzunehmen. Die Konfiguration basiert auf dem Prinzip Convention over Configuration [5], mit der eine Standardkonfiguration sehr schnell erstellt werden kann und nur die vom Standard abweichenden Bedürfnisse manuell angepasst werden müssen. Das Framework unterstützt vielfältige Möglichkeiten der Authentifizierung und Autorisierung von einfacher Form- oder Basic-Authentifizierung bis hin zur NTLM-Authentifizierung in Windows-Netzwerken und Single 58 javamagazin

3 Enterprise Sign-on über den Central Authentication Service [6]. Es wird sowohl die rollen- als auch datenbasierte Autorisierung unterstützt. Die rollenbasierte Autorisierung gewährt einem Benutzer Zugriff auf eine bestimmte Operation aufgrund der Rolle, die der Benutzer inne hat. Die datenbasierte Autorisierung ermöglicht z.b. die Sicherung von Methoden aufgrund bestimmter Aufrufparameter. bietet umfangreiche Integrationsmöglichkeiten für die unterschiedlichsten Sicherheitstechnologien (LDAP, X.509 [7] usw.). Für Details sei an dieser Stelle auf die Referenzdokumentation verwiesen [8]. Problematik der Security- Integration in verteilten Anwendungen In Enterprise-Anwendungen, deren Architektur aus mehreren Applikationsschichten aufgebaut ist, stellt sich die Frage, wie man Sicherheitsaspekte über die gesamte Anwendung hinweg integrieren kann. In diesem Fall müsste der Sicherheitskontext (Benutzerdaten wie Benutzername, Passwort und Rechte) auf allen Anwendungsebenen zur Verfügung stehen. Beispielsweise könnte eine solche Anwendung aus einer Webapplikation bestehen, die in einem Servlet- Container (z.b. Tomcat) oder Applikationsserver (z.b. JBoss) betrieben wird und mit einer Datenbank verbunden ist (Abb. 1). In diesem Fall ist die komplette Anwendung auf einem Applikationsserver installiert und wird innerhalb einer JVM ausgeführt. Es handelt sich hier um keine verteilte Applikation, da eine Trennung zwischen Präsentations- und Businesslogik nur logisch, nicht jedoch physikalisch vorhanden ist. Eine Remote-Kommunikation ist nicht notwendig. Die komplette Integration von Sicherheitsaspekten beschränkt sich damit auf nur eine Anwendungsebene. Andere Anwendungsszenarien erfordern eine physikalische Trennung der Präsentationslogik von der Businesslogik. Bei Webapplikationen wird die Präsentationslogik meist in einer DMZ (Demilitarized Zone) installiert und die Businesslogik hinter einer Abb. 1: Nicht verteilte Anwendung Abb. 2: Verteilte Anwendung Firewall auf einem Applikationsserver betrieben (Abb. 2). Bei Rich Clients würde die Remote-Kommunikation beispielsweise zwischen einem Java- Swing-Client und dem Applikationsserver erfolgen. Wie in Java-EE-Anwendungen meist üblich, wird der Remote-Zugriff mittels EJBs durchgeführt. Um die Präsentationsschicht in dem Servlet- Container und die Businessschicht in dem Applikationsserver abzusichern, müssen die Benutzerinformationen mit den Authentifizierungs- und Autorisierungsdaten (Sicherheitskontext) zwischen den Anwendungsebenen ausgetauscht werden. Wünschenswert wäre also ein Mechanismus, der den Sicherheitskontext beim Aufruf der entfernten Service-Methode automatisch überträgt und der Businessebene zur Verfügung stellt. Die Übertragung dieser Informationen wäre über einen Interceptor denkbar, der den Sicherheitskontext vor dem Aufruf der eigentlichen Businessmethode hinzufügt. Leider sieht die EJB-2.x-Spezifikation den Einsatz von benutzerspezifischen Interzeptoren nicht vor, sodass man hier auf andere Technologien angewiesen ist. Die Integrationsidee Die Idee der hier vorgestellten Lösung basiert auf der Übertragung eines anwendungsbezogenen Kontextobjekts, das seinerseits das Sicherheitskontextobjekt enthält. Man könnte den Sicherheitskontext auch direkt als Parameter übergeben, allerdings bestünde dann eine direkte Abhängigkeit zum Framework. Durch die Kapselung in ein anwendungsbezogenes Kontextobjekt hält man die Schnittstelle davon unabhängig (keine Framework-Imports). Bei einem Aufruf einer entfernten Methode (Aufruf einer EJB-Methode) wird das Applikationskontextobjekt als Parameter übergeben. Dieses wiederum kann den Sicherheitskontext mit aufnehmen und wird so auf die Businessschicht übertragen. Durch diese Konvention wird sichergestellt, dass der Sicherheitskontext auch auf Businessebene verfügbar ist. Das Anwendungskontextobjekt wird nach der Authentifizierung des Benutzers erzeugt und mit dem Sicherheitskontext gefüllt. Zusätzlich könnte man hier weitere Informationen wie Spracheinstellungen (java.util.locale) oder fachlich bedingte Benutzerinformationen im Anwendungskontext hinterlegen, sofern sie nicht schon im Sicherheitskontext enthalten sind. Nach der Authentifizierung des Benutzers wird einmalig das Anwendungskontextobjekt erzeugt und mit dem Sicherheitskontext gefüllt. Der Anwendungskontext steht javamagazin

4 Enterprise Listing 1 public class HelloWorldService implements IHelloWorldService ({ ROLE_USER, ROLE_ADMIN ) public String sayhello(helloremotecontext helloremotecontext, String name) { return Hello + ROLE_ADMIN ) public String sayhellotoadmin (HelloRemoteContext helloremotecontext, String name) { return Hello Administrator + name; Listing 2 Abb. 3: Homepage von Hello- Remote dann für die Dauer der Benutzersession zur Verfügung und wird im Falle einer Webapplikation in der HTTP-Session hinterlegt. Auf Businessebene sorgt ein AOP-Interceptor für die Extraktion des Sicherheitskontexts aus dem Anwendungskontext und speichert den Sicherheitskontext mittels des SecurityContextHolder [9] im aktuellen Ausführungs-Thread java.lang.threadlocal. Ein selbst definierter Before-Advice sorgt dafür, dass vor der eigentlichen Ausführung der Businessmethode der Sicherheitskontext für die Sicherheitsüberprüfungen verfügbar ist. Aus der Webapplikation heraus wird eine Aktion ausgelöst (z.b. Formular-Submit), die den Aufruf protected HelloRemoteContext gethelloremotecontext (HttpServletRequest request) { HelloRemoteContext helloremotecontext = (HelloRemoteContext) request.getsession().getattribute( HELLO_REMOTE_CONTEXT_SESSION_KEY); if (helloremotecontext == null) { SecurityContext securitycontext = SecurityContextHolder.getContext(); helloremotecontext = new HelloRemoteContext(securityContext); this.registerhelloremotecontextinsession(helloremotecontext, request.getsession()); return helloremotecontext; einer Businessmethode zur Folge hat. Über das EJB-Remote-Interface wird eine Methode mit Übergabe des Anwendungskontexts aufgerufen. Die Geschäftslogik ist in diesem Fall als Spring-Service in normalen Java Beans (POJOs) implementiert und wird nur über dessen Java-Interface (POJI) direkt referenziert. Die Trennung von Schnittstelle und Implementierung, wie sie in Spring üblich ist, erleichtert die Testbarkeit und Austauschbarkeit der Implementierung, da sie nicht vom EJB-Container oder einer anderen Laufzeitumgebung direkt abhängig ist. Aus diesem Grund wird die Implementierung der Geschäftslogik auch nicht direkt in der EJB (Session Bean) durchgeführt. Der Service wird lediglich exportiert, d.h. eine Stateless Session Bean (EJB-Exporter) dient nur als Fassade für den Remote-Zugriff und delegiert die Methodenaufrufe an den implementierenden Service weiter. Ein AOP-Advice sorgt schließlich dafür, dass vor dem eigentlichen Methodenaufruf der Sicherheitskontext aus dem Anwendungskontext extrahiert wird und stellt diesen dem Spring-Security- Kontext auf Businessebene zur Verfügung. Die Sicherheitsüberprüfungen müssen damit nicht direkt im Fachlogikcode implementiert werden, sondern können an zentraler Stelle hinterlegt und wiederverwendet werden [2]. Mittels Java-Annotationen wird an der Methode angegeben, welche Sicherheitsbedingungen für die Methodenaufrufe erfüllt sein müssen, z.b. welcher Rolle der aufrufende Benutzer zugeordnet sein muss. Beispiel Hello-Remote Zur Demonstration dieses Sachverhalts soll eine kleine Hello World - Applikation dienen, die über einen HelloWorldService verschiedene sayhello-methoden zur Verfügung stellt. Diese Methoden sind über die annotiert, sodass nur Benutzer mit der dort definierten Rolle die Methode aufrufen dürfen (Listing 1). Als Deployment-Szenario soll die in Abbildung 2 dargestellte Situation gewählt werden, bei der die Webapplikation Abb. 4: Spring-Security-Login-Formular auf einem Tomcat (Version 6) als Webarchiv (WAR) und die Businessschicht mit den Spring-Services und EJBs in einem Enterprise-Archiv (EAR) auf einem entfernten JBoss-Server (Version 4.0) deployt wird. Die Webanwendung wird beispielhaft mithilfe des Struts- Frameworks implementiert. Die EJBs basieren auf der EJB-2.1-Spezifikation, können aber ebenso durch EJB 3 Session Beans ersetzt werden. Die Webanwendung ist sehr einfach gehalten und enthält lediglich zwei JSPs und eine Struts-Action-Klasse. Nach dem Deployment der WAR-Datei kann die Applikation unter dem Context-Pfad /hello-remote-web aufgerufen werden (Abb. 3). Ausgehend von der Startseite (Homepage) gibt es lediglich einen Link Secure Page, der auf eine geschützte Seite verweist. Bei einem Klick auf diesen Link wird von automatisch ein Login-Formular angezeigt, mit dem sich der Benutzer authentifizieren kann (Abb. 4). Nach erfolgreicher Anmeldung wird die geschützte Seite mit weiteren Links angezeigt (Abb. 5). Nach erfolgreichem Login wird der SecurityContext mit den Benutzerinformationen wie Benutzername, Passwort und Autorisierungsdaten (Rollen) mithilfe des SecurityContextHolder im lokalen Thread gespeichert. Er kann von nun an von der Anwendung über die statische Methode getcontext() abgerufen werden. Beim Aufruf der Businessmethode wird in der Action-Klasse zunächst der Anwendungskontext über die Methode gethelloremotecontext(httpservlet- Request request) für den Methodenaufruf angefordert und beim ersten Aufruf erzeugt (Listing 2). Der Anwendungskontext (HelloRemoteContext) wird nun bei jedem Me- 60 javamagazin

5 thodenaufruf als erster Parameter übergeben, wodurch sichergestellt wird, dass der darin enthaltene SecurityContext auf Businessebene zur Verfügung steht und wieder extrahiert werden kann. Alternativ könnte man auch einen clientseitigen Aspekt implementieren, der vor jedem Aufruf der entfernten Servicemethode den SecurityContext an den HelloRemoteContext übergibt. Das ist vor allem dann empfehlenswert, wenn sich der SecurityContext während einer Benutzersession ändert oder wenn man sichergehen will, dass der Aufrufer ein gültiges SecurityContext-Objekt im Applikationskontextobjekt übergibt. Allerdings ändert sich der SecurityContext während einer Benutzersession normalerweise nicht, sodass man hier auf den Overhead des AOP-Aspekts verzichten kann. In Listing 3 ist die clientseitige Spring-Security-Konfiguration zu sehen. An dieser Stelle wird besonders die vereinfachte Namespace-Konfiguration deutlich. Mittels des Security Namespaces kann eine Standardkonfiguration aktiviert werden (security:http autoconfig="true"), die bereits alle benötigten Klassen für eine HTTP-Security-Konfiguration einbindet. Für die Nutzung des Frameworks muss man nicht mehr genau wissen, welche Funktionalität durch welche Klasse implementiert wird. Durch die Angabe von URL-Patterns wird festgelegt, dass z.b. alle Ressourcen im secure-verzeichnis sowie alle Actions mit der Endung.do eine Authentifizierung benötigen (IS_AU- THENTICATED_REMEMBERED). Die eigentlichen Benutzerdaten werden durch die Implementierung des Interface UserDetailsService bereitgestellt. Diese enthält lediglich die Methode loaduserbyusername, die auf Basis des übergebenen Benutzernamens ein User- Details-Objekt erwartet. An dieser Stelle beziehen wir die Benutzerdaten aus der Businessschicht, sodass in der Webschicht kein direkter Zugang zur Datenbank erforderlich ist. Dadurch werden auch keine sicherheitskritischen Daten auf dem Server innerhalb der DMZ abgelegt (z.b. Benutzername und Passwort für DB-Login). Der Remote-Lookup auf die beiden Stateless Session Beans (Service Exporter) wird mittels des Spring- Abb. 5: Geschützte Seite JEE-Namespace transparent von Spring durchgeführt. Im Hintergrund führt Spring durch Nutzung des Business Delegate Patterns [11] den Remote-Lookup durch und ermöglicht dem Client die direkte Nutzung des Serviceinterface. Mit der Einbindung des Filter Proxy DelegatingFilterProxy und der Angabe des (Web-)Application- Context in der web.xml wird die deklarative, clientseitige Konfiguration abgeschlossen (Listing 4). Die serverseitige Konfiguration der Businessschicht ist in Listing 5 abgebildet. Hier kommt ebenfalls die vereinfachte Namespace-Konfiguration zum Einsatz. Eine einfache Form der Implementierung des UserDetailsService ist die Möglichkeit der direkten Auflistung von Benutzerinformationen und Rollen mittels des security:user-tags. Konkret versteckt sich dahinter die Klasse InMemoryDaoImpl, die die Benutzerinformationen in einer java.util.hashmap im Speicher hält. In der Praxis würden diese Informationen z.b. aus einer Datenbank durch eine eigene Implementierung des Interface UserDetailsService bereitgestellt werden. Für einfache Testzwecke (und für dieses Beispiel) ist diese Möglichkeit allerdings gut geeignet. Aus Gründen der Vereinfachung sind in diesem Beispiel die Spring-Bean-Definitionen in einer einzigen XML-Datei festgehalten. In der Praxis sollte man besser die fachlichen Spring Beans in einer separaten XML-Datei definieren, sodass sie von den Security-Definitionen getrennt sind. Zur Laufzeit werden dann Anzeige

6 Enterprise beide XML-Dateien zu einem gemeinsamen ApplicationContext zusammengesetzt. Durch diese Trennung kann man beim Testen der fachlichen Services die Sicherheitsüberprüfungen komplett ein- oder ausschalten. Nennenswert an dieser Stelle ist im Wesentlichen der deklarierte Before- Advice SecurityContextExtractorAspect, der mithilfe von Spring-AOP vor der eigentlichen Methodenausführung den SecurityContext aus dem HelloRemoteContext Methode extrahiert und in den SecurityContextHolder auf Businessebene speichert. Durchgeführt wird dies in der extractsecurity- Context-Methode (Listing 6). Durch die Implementierung des Interface Ordered kann die Reihenfolge der aufgerufenen Es ist möglich, die Sicherheitsprüfungen komplett ein- oder auszuschalten. Advices beeinflusst werden. Durch die Angabe von Ordered.HIGHEST_PRE- CEDENCE wird sichergestellt, dass der SecurityContextExtractorAspect mit der höchsten Priorität vor dem SecurityInterceptor von, der für die Auswertung verantwortlich ist, ausgeführt wird. Würde der SecurityContextExtractor- Aspect erst nach dem SecurityInterceptor ausgeführt werden, könnte die eigentliche Sicherheitsüberprüfung aufgrund des fehlenden SecurityContext nicht durchgeführt werden. Der SecurityContext wird hier lediglich aus dem Hello- RemoteContext-Objekt extrahiert (Implementierung des IntegratedSecurityContext-Interface) und über den SecurityContextHolder verfügbar gemacht. Als Erweiterung des Aspekts könnte man eine Gültigkeitsprüfung des SecurityContext durchführen, indem Listing 3 <security:http auto-config= true > <security:intercept-url pattern= /secure/index.jsp access= ROLE_USER, ROLE_ADMIN, ROLE_GUEST /> <security:intercept-url pattern= /secure/** access= IS_AUTHENTICATED_REMEMBERED /> <security:intercept-url pattern= /*.do access= IS_AUTHENTICATED_REMEMBERED /> <security:intercept-url pattern= /** access= IS_AUTHENTICATED_ANONY- MOUSLY /> </security:http> <security:authentication-provider user-service-ref= userdetailsservice /> <util:properties id= myjndiproperties location= classpath:jndi.properties /> <jee:remote-slsb id= helloworldservice jndi-name= ejb/helloworldserviceexporter business-interface= de.opitzconsulting.helloremote. service.ihelloworldservice environment-ref= myjndiproperties > </jee:remote-slsb> <jee:remote-slsb id= userdetailsservice jndi-name= ejb/userdetailsserviceexporter business-interface= org.springframework.security. userdetails.userdetailsservice environment-ref= myjndiproperties > </jee:remote-slsb> Listing 4 <!-- Laden des Web-ApplicationContext --> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/classes/ applicationcontext-security-web.xml</param-value> </context-param> <!-- Einbindung von --> <filter> <filter-name>springsecurityfilterchain</filter-name> <filter-class>org.springframework.web.filter. DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springsecurityfilterchain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context. ContextLoaderListener</listener-class> </listener> Listing 5 <bean id= securitycontextextractoraspect class=»de.opitzconsulting.helloremote.security. SecurityContextExtractorAspect /> <aop:aspect-autoproxy proxy-target-class= false /> <security:authentication-provider user-service-ref= userdetailsservice /> <security:user-service id= userdetailsservice > <security:user name= admin password= admin authorities= ROLE_ADMIN /> <security:user name= user password= user authorities= ROLE_USER /> <security:user name= guest password= guest authorities= ROLE_GUEST /> </security:user-service> <bean id= helloworldservice class= de.opitzconsulting.helloremote.service. HelloWorldService ></bean> <security:global-method-security secured-annotations= enabled /> Listing argnames = secured ) public void extractsecuritycontext(joinpoint jp, Secured secured) throws Throwable { Object[] parameters = jp.getargs(); if (parameters!= null && parameters[0]!= null && parameters[0] instanceof IntegratedSecurityContext) { IntegratedSecurityContext integratedsecuritycontext = (IntegratedSecurityContext) parameters[0]; SecurityContext securitycontext = integratedsecuritycontext.getsecuritycontext(); if (securitycontext == null) { final String msg = No SecurityContext found in integratedsecuritycontext ; log.error(msg); throw new AuthenticationCredentialsNotFound Exception(msg); SecurityContextHolder.setContext(securityContext); else { final String msg = No authentication object found! ; log.error(msg); throw new AuthenticationCredentialsNotFound Exception(msg); 62 javamagazin

7 eine erneute serverseitige Authentifizierung und Autorisierung vorgenommen wird. Der dadurch wiederholten Abfrage an Benutzerinformationen könnte man durch Caching-Mechanismen entgegenwirken. Allerdings sollte dabei ein angemessenes Trade-Off zwischen Sicherheit und Performance nicht außer Acht gelassen werden. Mit der einfachen Angabe von <security:global-method-security secured-annotations="enabled" /> wird schließlich die Verwendung Secured-Annotationen im Application- Context aktiviert. Die Sicherheitsmechanismen der Webschicht (Login) hat der Benutzer nach erfolgreicher Authentifizierung bereits durchlaufen. Nun wollen wir testen, ob die Sicherheitsmechanismen der Businessschicht funktionieren. Ein Klick auf den Link sayhello liefert die erlaubte Begrüßung Hello User zurück. Beim Aufruf der Methode sayhelloto- Admin wird allerdings eine org.springframework.security.accessdeniedexception geworfen. Da die Methode zuvor mit der ADMIN") annotiert wurde, wird korrekterweise diese von org.springframework. security.springsecurityexception abgeleitete Exception geworfen, die nur Benutzern mit der Rolle "ROLE_ADMIN" den Zugriff gewährt. Fazit Wir haben hier eine Möglichkeit der Übertragung von Sicherheitsinformationen in verteilten Anwendungen auf Basis der EJB-2-Spezifikation vorgestellt. Durch die Kombination der deklarativen Konfiguration in und den Mitteln der aspektorientierten Programmierung (Spring AOP) ist eine relativ transparente Übertragung des Sicherheitskontexts SecurityContext zwischen Anwendungsebenen möglich. Voraussetzung dafür ist allerdings die Bereitstellung eines Anwendungskontexts in den Methoden der öffentlichen Schnittstellen. Mit der Einführung des Security Namespace in wurde zudem die Konfiguration stark vereinfacht, sodass eine Grundkonfiguration schon mit wenigen Einstellungen erreicht werden kann. Dank der vielfältigen Integrationsmöglichkeiten von kann die Anwendung auch nachträglich an die eigenen Sicherheitsanforderungen flexibel angepasst werden. Anzeige Dipl. Wirt.-Inf. Michael Stähler ist Berater bei der Opitz Consulting GmbH. Er ist seit einigen Jahren in der objektorientierten Softwareentwicklung in Java tätig. Sein Schwerpunkt liegt in der Entwicklung von Enterprise-Applikationen der Java EE speziell im Themenbereich der Integration von Unternehmensanwendungen. Kontakt: Links & Literatur [1] de.wikipedia.org/wiki/aspektorientierte_programmierung [2] Cross Cutting Concern: de.wikipedia.org/wiki/cross-cutting_concern [3] static.springframework.org/spring-security/site/index.html [4] Spring Framework: [5] Convention over Configuration: en.wikipedia.org/wiki/convention_over_ Configuration [6] [7] Public Key Infrastructure X.509: [8] Reference Documentation: static.springframework.org/ spring-security/site/reference/html/springsecurity.html [9] SecurityContextHolder: static.springframework.org/spring-security/site/ reference/html/technical-overview.html#d4e580 [10] java.sun.com/blueprints/corej2eepatterns/patterns/businessdelegate.html [11] static.springframework.org/spring/docs/2.0.x/reference/aop-api.html

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

Ease of Security. Über mich. Senior Consultant bei Interface21 Germany. Acegi-/Spring-Consulting. Trainings. IT-Security Consulting

Ease of Security. Über mich. Senior Consultant bei Interface21 Germany. Acegi-/Spring-Consulting. Trainings. IT-Security Consulting Ease of Security Java Forum Stuttgart 2007 Mike Wiesner, Interface21 Über mich Senior Consultant bei Interface21 Germany Acegi-/Spring-Consulting Trainings IT-Security Consulting mwiesner@interface21.com

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-Anwendungen mit Arquillian testen

Web-Anwendungen mit Arquillian testen Michael Kotten open knowledge @michaelkotten @_openknowledge Wozu denn testen? Ich mach doch keine Fehler! Wozu denn testen? > Notwendig bei komplexen Systemen > Sicherung von > Qualität > Funktionalität

Mehr

JavaEE Grundlagen. Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A

JavaEE Grundlagen. Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A JavaEE Grundlagen FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Theis Michael - Senior Developer UniCredit Global Information Services S.C.p.A Sommersemester 2012 2 Die Java EE

Mehr

EJB3.0 Unit-Testing Reloaded

EJB3.0 Unit-Testing Reloaded EJB3.0 Unit-Testing Reloaded Werner Eberling werner.eberling@mathema.de www.mathema.de Werner Eberling, MATHEMA Software GmbH - EJB3.0 - Unit-Testing Reloaded (G4 - Folie 1) Java Forum Stuttgart 2007 Automatisiertes

Mehr

Security Component Bundle

Security Component Bundle Security Component Bundle Bietet Mechanismen zur Authentifizierung und Authorisierung Was bedeuten die Begriffe? Timon Schroeter 2 www.php-schulung.de Security Component Bundle Bietet Mechanismen zur Authentifizierung

Mehr

Kommunikation ist alles

Kommunikation ist alles Kommunikation in verteilten Systemen mit Kommunikation ist alles >> alexander ziegler In einem verteilten System müssen die Anwendungsbestandteile miteinander interagieren nur so funktioniert ein großes

Mehr

Security Technologien in Java EE 6

Security Technologien in Java EE 6 Security Technologien in Java EE 6 Java Forum Stuttgart 2010 Sebastian Glandien Acando GmbH sebastian.glandien@acando.de Agenda I. Einleitung II. Java Authentication SPI for Containers (JSR-196) I. Message

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

Web- Applikationen. in Java-Web

Web- Applikationen. in Java-Web Einführung in Java-Web Web- Applikationen Frank Huber Humboldt-Universität zu Berlin Allgemeines Java: Programmierung ist Programmierung nach Konvention Insbesondere bei Web-Applikationen wurde eine API

Mehr

Gerd Wütherich Martin Lippert. OSGi Service Platform by example

Gerd Wütherich Martin Lippert. OSGi Service Platform by example Gerd Wütherich Martin Lippert OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example Gerd Wütherich Nils Hartmann OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

Liste V Enterprise JavaBeans

Liste V Enterprise JavaBeans Liste V Enterprise JavaBeans Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Allgemeine Informatik Vorlesung zur Vertiefungslehrveranstaltung Spezielle Methoden der Softwaretechnik SS

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

Architektur iterativ auf Basis von OSGi entwickeln

Architektur iterativ auf Basis von OSGi entwickeln Architektur iterativ auf Basis von OSGi entwickeln Ein Vortrag von Sven Jeppsson (syngenio AG) und Karsten Panier (Signal Iduna Gruppe) 1 Inhalt Motivation Architektur Architektur Evolution OSGi Refactoring

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

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

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

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

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Enterprise Security Instanzbasierte Zugriffskontrolle

Enterprise Security Instanzbasierte Zugriffskontrolle Enterprise Security Instanzbasierte Zugriffskontrolle Architekturkonzepte und Implementierung mit SAF, JAAS und Spring Martin Krasser Der Zugriff auf die Domänenobjekte einer Anwendung wird häufig auf

Mehr

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Beispiel Framework: Struts Was ist? Open Source Framework zum Bau von Web Applikationen Home Page http://jakarta.apache.org/struts Teil des Apache Jakarta Project Unterstützt

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

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

Eclipse Smart Client Beyond Eclipse RCP. Christian Campo, compeople, 24.April 2007

Eclipse Smart Client Beyond Eclipse RCP. Christian Campo, compeople, 24.April 2007 Eclipse Smart Client Beyond Eclipse RCP Christian Campo, compeople, 24.April 2007 1 Übersicht Definition / Architektur Smart Client Smart Client mit RCP Gesamtfazit 2 Fat - Thin - Smart Fat Client lokale

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

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

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

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

Die Rückkehr der Einfachheit 62

Die Rückkehr der Einfachheit 62 7.09 Plus CD! Stellenmarkt S. 58 Das war die JAX 2009 S. 15 Deutschland 7,50 Österreich 8,60 Schweiz sfr 15,80 Java Magazin Java Architekturen SOA Agile www.javamagazin.de CD-Inhalt JavaRebel 2.0 Squish

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring Dennis Schulte / Tobias Flohre Enterprise Java Batch mit Spring Dennis Schulte Düsseldorf @denschu www.github.com/denschu blog.codecentric.de/author/dsc tel +49 (0) 1515 _ 288 2395 dennis.schulte@codecentric.de

Mehr

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de Fortgeschrittene Servlet- Techniken Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Servlet Initialisierung Attribute und Gültigkeitsbereiche Sessions

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

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

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

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

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

0. Inhaltsverzeichnis

0. Inhaltsverzeichnis 0. Inhaltsverzeichnis 0. Inhaltsverzeichnis...1 1. Kurze Einführung WebService Architektur...2 1.1 Synchrones Modell:...2 1.2 Asynchrones Modell:...2 1.3 Vorteile:...3 1.4 Voraussetzungen...3 2. Testseite

Mehr

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung Einführung in AOP Informatikseminar Rico Schiekel - 012816 rschiekel@web.de Fachhochschule Ravensburg Weingarten Hochschule für Technik und Sozialwesen Einführung in AOP Agenda Kernproblem der Objekt Orientierung

Mehr

J2EE-Praktikum. EJB-Security. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg

J2EE-Praktikum. EJB-Security. Peter Thiemann. J2EE-Praktikum, WS2005/2006. Universität Freiburg J2EE-Praktikum EJB-Security Peter Thiemann Universität Freiburg J2EE-Praktikum, WS2005/2006 Inhalt 1 EJB Sicherheit 2 Schnittstelle für den Bean Provider 3 Zusammenfassung EJB Security Allgemeines Sicherheitsziele

Mehr

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Beispiel Minibank nur: Kunde, Konto, Überweisung personen.person Attributes Name:String Vorname:String überweisungen.überweisung Attributes Verwendungszweck:String Datum:Date betrag:integer

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Benutzung eines Login Modules zur Authentifizierung unter JBoss 5.0

Benutzung eines Login Modules zur Authentifizierung unter JBoss 5.0 Benutzung eines Login Modules zur Authentifizierung unter JBoss 5.0 Erstellung der Datenbank Tabellen Als Login Module soll das in der JBoss Installation bereits vorhandene DatabaseServerLoginModule verwendet

Mehr

Clustering von Application Servern am Beispiel von JBoss 3.2

Clustering von Application Servern am Beispiel von JBoss 3.2 Clustering von Application Servern am Beispiel von JBoss 3.2 Cluster Workshop iternum GmbH Alexanderstraße 7 60489 Frankfurt/Main www.iternum.com Agenda Clustertechnik allgemein Was ist Clustering? Gründe

Mehr

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht. Technisches Design Inhalt Design Übersicht Menü und DispatcherServlet DWR Servlet Viewer Servlets Controllers Managers Sicherheit Anwendung Architektur Component Diagram Deployment Diagram Komponente Sequence

Mehr

Der SBB Online-Ticketshop Mit SOA zum Erfolg

Der SBB Online-Ticketshop Mit SOA zum Erfolg Der SBB Online-Ticketshop Mit SOA zum Erfolg BAT 03 Stefan Meichtry, Stefan Becker Bern, den 17.03.2006 SBB Informatik 1 Das Ziel SBB Informatik 2 Agenda Problemraum Lösungsraum Analyse Wir sind hier Synthese

Mehr

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

G s e a s m a t m ar a ch c i h tek e tur u I und IoC Gesamtarchitektur I und IoC Schichten einer Web-Anwendung Initiiert durch J2EE und Spring: Strukturierte Sicht auf UI und Fachlogik (Domäne) Ergibt 5 Schichten: Man unterscheidet Präsentations- und Domänenmodell!

Mehr

Das Spring Framework eine Einführung

Das Spring Framework eine Einführung Das Spring Framework eine Einführung Sebastian Schelter Softwareengineering Freie Universität Berlin Arnimallee 14 14195 Berlin sebastian@alombra.de Abstract: Eine Einführung in die grundlegenden Konzepte

Mehr

Benjamin Bratkus. Im Zeitalter der Webanwendungen ist es dem Anwender ein Bedürfnis, seine Benutzerinformationen und seine Identität sicher zu halten.

Benjamin Bratkus. Im Zeitalter der Webanwendungen ist es dem Anwender ein Bedürfnis, seine Benutzerinformationen und seine Identität sicher zu halten. Einmal angemeldet und es geht los. ) Schulung ) AUTOR Benjamin Bratkus Orientation in Objects GmbH ) Beratung ) Veröffentlicht am: 1.10.2007 ABSTRACT ) Entwicklung ) Im Zeitalter der Webanwendungen ist

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

C# - PROGRAMME MIT PLUGINS ERWEITERN C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt,

Mehr

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann

Sitzungszustand. Vorläufige Version 309 c 2005 Peter Thiemann Sitzungszustand Gruppierung von Anfragen zu Sitzungen (Sessions) Klasse HttpServletRequest Methode HttpSession getsession (bool create) liefert aktuelle Sitzungsobjekt Zustand lokal zur Anwendung (ServletContext)

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

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

Mehr

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

FH LU JEE Vorlesung SS 2014. Ralf Gitzel ralf_gitzel@hotmail.de FH LU JEE Vorlesung SS 2014 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

Programmierung von Client/Server- Anwendungen

Programmierung von Client/Server- Anwendungen Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Separates Deployment von Produktdaten Cornelius Dirmeier (Dokumentversion 47)

Separates Deployment von Produktdaten Cornelius Dirmeier (Dokumentversion 47) Separates Deployment von Produktdaten Cornelius Dirmeier (Dokumentversion 47) Einleitung Faktor-IPS verwaltet Produktdaten während der Produktentwicklung in XML Dateien. Zur Laufzeit liegen die Produktdaten

Mehr

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, 10.-14.10.2005. Universität Freiburg, Germany Enterprise JavaBeans Einführung Universität Freiburg, Germany Sommercampus, Freiburg, Germany, 10.-14.10.2005 Inhalt Allgemeines Motivation Rollen Aufbau einer EJB Arten von Beans Enterprise JavaBeans

Mehr

Tomcat Konfiguration und Administration

Tomcat Konfiguration und Administration Tomcat Konfiguration und Administration Seminarunterlage Version: 8.01 Version 8.01 vom 4. Februar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate Hibernate Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen Nabil janah 1 Hibernate Inhalt Hibernate allgemeines Vorteile von Hibernate Hibernate-Architektur

Mehr

JSP und Servlet Programmierung

JSP und Servlet Programmierung Seminarunterlage Version: 5.02 Copyright Version 5.02 vom 1. März 2013 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Integrating Architecture Apps for the Enterprise

Integrating Architecture Apps for the Enterprise Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Motivation und Grundkonzept Inhalt Problem Ursache Herausforderung Grundgedanke Architektur

Mehr

Prozessautomatisierung mit BPMN 2.0 und Java. bernd.ruecker@camunda.com

Prozessautomatisierung mit BPMN 2.0 und Java. bernd.ruecker@camunda.com Prozessautomatisierung mit BPMN 2.0 und Java bernd.ruecker@camunda.com Bernd Rücker camunda services GmbH Demo Was ist Prozessautomatisierung mit BPMN 2.0 Prozessautomatisierung mit Process Engine Monitoring

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. WebSphere Application Server Teil 2. Schnittstellen

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

Mehr

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013 GTUG Java Arbeitskreis Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung September 2013 Jürgen Depping CommitWork GmbH Seite 1 Info@CommitWork.de www.commitwork.de Agenda Was ist OmnivoBase?

Mehr

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern Daniel Tschan Technischer Leiter Michael Zaugg Software-Ingenieur Motivation Puzzle Through 2016, companies will continue

Mehr

Viele gute Stellen sind frei. Besetzen Sie eine.

Viele gute Stellen sind frei. Besetzen Sie eine. Viele gute Stellen sind frei. Besetzen Sie eine. Die Innovations Softwaretechnologie GmbH mit Hauptsitz am Bodensee ist Wir suchen gute Java Entwickler. Kommen Sie zu uns als: Informatiker(in) (Diplom/Bachelor/Master)

Mehr

Webinar: Einführung in ICEfaces

Webinar: Einführung in ICEfaces Webinar: Einführung in ICEfaces präsentiert von VOIP-Audio ist standardmässig aktiviert Alternatives Einwählen: +41 (0) 415 0008 65 ICESOFT TECHNOLOGIES INC ICESOFT Donnerstag, TECHNOLOGIES 26. März 2009

Mehr

JavaFX. Sonderdruck. Plus CD! der Firma codecentric. Java Magazin. Java Architekturen SOA Agile. Stellenmarkt 49 Spring Security mit EJB 2x 58

JavaFX. Sonderdruck. Plus CD! der Firma codecentric. Java Magazin. Java Architekturen SOA Agile. Stellenmarkt 49 Spring Security mit EJB 2x 58 12.08 Plus CD! Stellenmarkt 49 Spring Security mit EJB 2x 58 Java Magazin Java Architekturen SOA Agile www.javamagazin.de CD-Inhalt Jax TV: Session der JAX 2008: Ted Neward: Why the Next Five Years Will

Mehr

NetScaler Integration bei Hellmann Worldwide Logistics. Benjamin Kania IS Enterprise Services Manager Hannover, 13.10.2011

NetScaler Integration bei Hellmann Worldwide Logistics. Benjamin Kania IS Enterprise Services Manager Hannover, 13.10.2011 NetScaler Integration bei Hellmann Worldwide Logistics Benjamin Kania IS Enterprise Services Manager Hannover, 13.10.2011 Agenda Firmenporträt Das Projekt Details zur Umsetzung Fazit Fakten & Zahlen Mitarbeiter

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Einfache GUIs mit Python und Qt Qt lernt JavaScript

Einfache GUIs mit Python und Qt Qt lernt JavaScript Angriffe über USB: Der unsichere Serial Bus >>> S. 54 Deutschland 6,50 Österreich 7,00 Schweiz sfr 13,40 www.entwickler-magazin.de Juli/August 4.2011 Mai/Juni 3.2013 Qt Einfache GUIs mit Python und Qt

Mehr

Die Eclipse Rich Client Plattform - eine alternative Client-Technologie für Business Process Management Systeme Java Forum Stuttgart, Juli 2006

Die Eclipse Rich Client Plattform - eine alternative Client-Technologie für Business Process Management Systeme Java Forum Stuttgart, Juli 2006 Die Eclipse Rich Client Plattform - eine alternative Client-Technologie für Business Process Management Systeme Java Forum Stuttgart, Juli 2006 Dirk Günther Teammanager R&D e-business d.guenther@cenit.de

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel VS12 Slide 1 Verteilte Systeme Vorlesung 12 Sebastian Iwanowski FH Wedel Mögliche Plattformen für Web Services VS12 Slide 2 VS12 Slide 3 Java-Software für verteilte Systeme J2EE: Java 2 Enterprise Edition

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server

Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server Benutzung von Eclipse zur Entwicklung von Java EE 5 Anwendungen mit dem JBoss Application Server Starten und Auswahl des Workspaces Starten Sie Eclipse als die Entwicklungsumgebung. Wählen Sie als Workspace

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

ESB - Elektronischer Service Bericht

ESB - Elektronischer Service Bericht Desk Software & Consulting GmbH ESB - Elektronischer Service Bericht Dokumentation des elektronischen Serviceberichts Matthias Hoffmann 25.04.2012 DESK Software und Consulting GmbH Im Heerfeld 2-4 35713

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Gemeinsam mehr erreichen.

Gemeinsam mehr erreichen. Gemeinsam mehr erreichen. Oracle ESS 12c Client Application mit ADF ADF Spotlight 6. März 2015 Ihr Ansprechpartner Carsten Wiesbaum Principal Consultant carsten.wiesbaum@esentri.com @CWiesbaum Schwerpunkte:

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

Java Desktop Anwendungen

Java Desktop Anwendungen 5 1 Java Desktop Anwendungen das Problem: Desktop-Anwendungen werden mit Hilfe der Swing- Bibliothek programmiert, aber die Swing-Bibliothek ist riesig und unübersichtlich es gab kein Programmiergerüst

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

SpringSource Enterprise & Application Platform: Wo geht die Reise hin?

SpringSource Enterprise & Application Platform: Wo geht die Reise hin? SpringSource Enterprise & Application Platform: Wo geht die Reise hin? Eberhard Wolff Regional Director & Principal Consultant SpringSource Copyright 2007 SpringSource. Copying, publishing or distributing

Mehr

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Portlets Was sind Portale? Aufgaben von Portalsystemen Integration unterschiedlicher Anwendung Schwerpunkt liegt auf der Präsentationsebene Ermöglichung personalisierter

Mehr

Securing SOAP e-services

Securing SOAP e-services Securing SOAP e-services Nilson Reyes Sommersemester 2004 aus: E. Damiani, S. De Capitani di Vermercati, S. Paraboschi, P. Samarati, Securing SOAP e-sservices, IJIS, Ausgabe 1 (2002), S.110-115. Gliederung

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

anaptecs JEAF Plattform JEAF Developer Guide

anaptecs JEAF Plattform JEAF Developer Guide anaptecs JEAF Plattform JEAF Developer Guide : JEAF Framework Die technische Grundlage für Applikationen auf Basis der JEAF Plattform bildet das JEAF Framework. Dabei handelt es sich um ein leichtgewichtiges

Mehr

SE2-10-Entwurfsmuster-2 15

SE2-10-Entwurfsmuster-2 15 Architektur und Skalierbarkeit SE2-10-Entwurfsmuster-2 15 Skalierbarkeit Skalierbarkeit bedeutet die Anpassung einer Software an wachsende Last: Interaktionsfrequenz Nutzerzahl Anpassung durch Hinzufügen

Mehr

Application Development Framework (ADF) Teil 1: Überblick Autor(en): Kersten Mebus, Jürgen Menge Oracle Deutschland GmbH

Application Development Framework (ADF) Teil 1: Überblick Autor(en): Kersten Mebus, Jürgen Menge Oracle Deutschland GmbH Application Development Framework (ADF) Teil 1: Überblick Autor(en): Kersten Mebus, Jürgen Menge Oracle Deutschland GmbH Die Entwicklung von Java/J2EE Anwendungen wird durch den Einsatz von Design Pattern

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

- Architektur & Integration - Security in ADF Anwendungen (Essentials)

- Architektur & Integration - Security in ADF Anwendungen (Essentials) - Architektur & Integration - Security in ADF Anwendungen (Essentials) Markus Lohn Head of Technology Consulting, esentri AG E-Mail: markus.lohn@esentri.com +++ Bi%e wählen Sie sich in die Telefonkonferenz

Mehr

Tier-Konzepte. Vertiefungsarbeit von Karin Schäuble

Tier-Konzepte. Vertiefungsarbeit von Karin Schäuble Vertiefungsarbeit von Karin Schäuble Gliederung 1. Einführung 3. Rahmenbedingungen in der heutigen Marktwirtschaft 3.1 Situation für Unternehmen 3.2 Situation für Applikationsentwickler 4. Lösungskonzepte

Mehr

Portale Sicherheitsaspekte bei der Anwendungsintegration. Juri Urbainczyk iteratec Architektur Workshop 2006

Portale Sicherheitsaspekte bei der Anwendungsintegration. Juri Urbainczyk iteratec Architektur Workshop 2006 Portale Sicherheitsaspekte bei der Anwendungsintegration Juri Urbainczyk iteratec Architektur Workshop 2006 Themen der Anwendungsintegration Die Anwendung ist im Portal aufrufbar Anwendung und Portal bilden

Mehr