5.3 EJB Security. Client/Server-Komponententechnologie basierend auf Java. Enterprise Java Beans sind Komponenten der Geschäftsapplikation.

Größe: px
Ab Seite anzeigen:

Download "5.3 EJB Security. Client/Server-Komponententechnologie basierend auf Java. Enterprise Java Beans sind Komponenten der Geschäftsapplikation."

Transkript

1 5.3 EJB Security Client/Server-Komponententechnologie basierend auf Java. Enterprise Java Beans sind Komponenten der Geschäftsapplikation. Applikations-Server führen EJBs in Containern aus. Applikations-Server interagiert mit Systemressourcen (z.b. Datenbank) und verteilten Beans auf anderen Servern. Der Applikations-Server handhabt die Sicherheitseinstellungen. Enterprise Java Beans (EJB) sind eine Client/Server-Komponententechnologie für die Entwicklung und das Deployment verteilter Komponenten basierend auf der Java-Plattform. Enterprise Java Beans sind Komponenten der Geschäftsapplikation, z.b. Kunde, Auftrag, Rechnung etc und werden von Applikations-Servern in Containern ausgeführt. Der Applikationsserver bzw. der Container interagiert mit den Systemressourcen (z.b. Datenbank) und übernimmt auch die Interaktion mit verteilten Beans in anderen Servern. Außerdem kontrolliert der Applikationsserver die Sicherheitseinstellungen. 1

2 5.3 EJB Security Es gibt drei Arten von EJBs Session Bean: Bearbeitet Anfragen eines Clients in einer Session. Ist nicht persistent. Es wird zwischen Stateless Session Beans ( keinem speziellen Client zugeordnet) und Stateful Session Beans (einem Client zugeordnet) unterschieden. Entity Bean: Geschäftsobjekt-Komponente die persistent gehalten wird (z.b. in Datenbank) Message-Driven Bean: Reagiert auf Nachrichten und wird erst beim Eintreffen einer Nachricht aktiv. Es gibt prinzipiell drei Arten von Enterprise Java Beans: Session Bean: Führt Anfragen eines Clients während einer Session aus und beschäftigt sich ausschließlich mit dem Client. Es existiert nur für die Zeit der Session (nicht persistent). Es kann Schritte und Daten der Interaktion zwischenspeichern (z.b. Einkaufswagen). Entity Bean: Eine Geschäftslogik-Komponente, die persistent gehalten werden muss (meist mit Datenbanken über JDBC). Message-Driven Beans: Werden nicht über Schnittstellen angesprochen, sondern reagieren auf Nachrichten. Die Bean wird nur beim Eintreffen einer Nachricht aktiv. 2

3 5.3 EJB Security Zum Erstellen eines EJBs ist folgendes zu tun: Remote Interface Schnittstelle mit den Operationen, die ein Client aufrufen kann. Home Interface Operationen zum Lifecycle-Management (Erzeugen, Zerstören etc.). Dient als Factory. Bean Implementation Implementiert die Operationen des Remote Interface. Deployment-Deskriptor (in XML) Defniert das Bean mit den Informationen, die für das Deployment des Bean relevant sind. Um eine EJB zu erstellen, müssen folgende Java-Dateien erstellt werden: Remote Interface definiert die Operationen die von Clienten aufgerufen werden können. Das Home Interface dient als Factory. Es enthält beispielsweise Operationen für das Lifecycle-Management der Bean wie seine Erzeugung oder Zerstörung. Der EJB Container erzeugt dann die Instanzen der Bean. Die Bean implementation implementiert die Operationen, die im Remote Interface spezifiziert sind. Außerdem muss die Bean im XML-Deployment-Deskriptor definiert werden. Der Deployment-Deskriptor enthält relevante Informationen für das Deployment der Bean auf dem EJB-Server. Der Deskriptor ist als XML-Datei implementiert. 3

4 5.3 EJB Security 1: frage nach Home Object Reference Client Naming Service 3: erzeuge EJB Object 5: EJB Reference 6: Methodenaufruf 2:Home Object Reference Home Interface Remote Interface EJB Container/Server Home Object 4: erzeuge EJB Object EJB Object Die Folie zeigt den grundlegenden Aufbau für den Aufruf von EJB Komponenten. Eine Client- Anwendung benutzt einen Namensservice (naming service) zum Aufruf eines EJBs, welches sich in einem EJB-Container befindet. Der EJB-Container stellt eine Laufzeitumgebung für EJBs zur Verfügung. Der Standard-Ablauf beim Aufruf eines EJBs auf dem Server sieht wie folgt aus: 1. Der Client erhält die EJB Home Object Reference mittels des Naming Service, der üblicherweise vom Applikationsserver zur Verfügung gestellt wird. 2. Der Naming Service gibt die EJB Home Object Reference zurück, die vom Client benötigt wird, um eine EJB Instanz zu erzeugen. 3. Nachdem das EJB Home Object bekannt ist, erzeugt der Client eine Instanz des EJBs durch einen Aufruf der entsprechenden Operation des Home Interfaces. 4. Das EJB Home Object erzeugt das EJB Object. 5. Eine Referenz auf das EJB Home Object wird dem Clienten zurückgeliefert. 6. Nachdem das EJB Object erzeugt wurde, kann der Client die Methoden des EJBs mittels des EJB Object Remote Interfaces aufrufen. 4

5 5.3 EJB Security Remote Interface HelloWorld.java package helloworld; import javax.ejb.ejbobject; import java.rmi.remoteexception; // remote interface for `HelloWorld' EJB. public interface HelloWorld extends EJBObject { public void sayhello() throws RemoteException; } Auf den folgenden Folien ist ein Hello World Beispiel gezeigt, welches die Schritte zur Erstellung eines Stateless Session Beans zeigt. Zunächst wird das Remote Interface definiert. In diesem Beispiel gibt es eine Schnittstellenoperation sayhello(). Remote Interfaces sind immer von EJBObject abgeleitet. 5

6 5.3 EJB Security Home Interface HelloWorldHome.java package helloworld; import java.io.serializable; import java.rmi.remoteexception; import javax.ejb.createexception; import javax.ejb.ejbhome; // Home interface for the HelloWorld EJB. public interface HelloWorldHome extends EJBHome { // Creates an instance of the HelloWorldBean class on the server. HelloWorld create() throws RemoteException, CreateException; } Das Home Interface enthält nur eine Operation zum Erzeugen eines HelloWorld-Beans. Das Home Interface erweitert immer EJBHome. 6

7 5.3 EJB Security Bean Implementation - HelloWorldBean.java package helloworld; import java.rmi.remoteexception; import javax.ejb.sessionbean; import javax.ejb.sessioncontext; public class HelloWorldBean implements SessionBean { public void sayhello() { System.out.println("Hello World"); }... Die Operationen des Remote Interfaces werden in der Bean Implementation Klasse implementiert. Da wir nur die Operation sayhello() im Remote Interface haben, ist auch nur diese zu implementieren. Wir implementieren die Bean als Session Bean. Das die Session Bean stateless ist, wird erst im Deployment Descriptor angegeben. Neben den Operationen im Remote Interface müssen möglicherweise weitere Operationen implementiert werden (z.b. muss für jede create() Operation im Home Interface die Operation ejbcreate() und ejbpostcreate() implementiert werden). 7

8 5.3 EJB Security Deployment Descriptor ejb-jar.xml <ejb-jar> <description>helloworld example EJB</description> <display-name>helloworld EJB</display-name> <enterprise-beans> <session> <ejb-name>helloworld</ejb-name> <home>helloworld.helloworldhome</home> <remote>helloworld.helloworld</remote> <ejb-class>helloworld.helloworldbean</ejb-class> <session-type>stateless</session-type> </session> </enterprise-beans> </ejb-jar> Der Deployment Descriptor (ejb-jar-xml) ist eine XML-Datei, die die Informationen zu den Enterprise Beans zusammenfasst, die zum Deployment auf dem Applikations-Server notwendig sind. Die Informationen zu einem EJB werden innerhalb des Elements <enterprisebean> spezifiziert. Dazu gehört der Name, unter dem die Bean im Container bekannt sein soll (<ejb-name>), das Home Interface (<home>), das Remote Interface (<remote>) und die Implementierung der Bean (<ejb-class>). Bei session beans kann auch der Session-Typ angegeben werden (als Wert des Elements <session-type>, entweder stateless oder stateful). 8

9 5.3 EJB Security Client package helloworld; import javax.naming.initialcontext; import javax.rmi.portableremoteobject; import helloworld.helloworld; import helloworld.helloworldhome; public class HelloWorldClient { public static void main(string[] args) { try { // Get a naming context InitialContext jndicontext = new InitialContext(); Nachdem die Bean auf dem Applikations-Server installiert wurde, können sich Clienten an den Server wenden und auf die Bean zugreifen. Dazu muss sich der Client erst den Namenskontext holen, um von dort eine Referenz auf das Bean Home Interface zu erfragen. 9

10 // Get a reference to the Bean's Home interface Object ref = jndicontext.lookup("helloworld"); HelloWorldHome home = (HelloWorldHome) PortableRemoteObject.narrow(ref, HelloWorldHome.class); // Invoke creation of remote Bean-instance HelloWorld helloworld = home.create(); // call the method sayhello() helloworld.sayhello(); } catch (Exception e) { System.out.println(e.toString()) }; Nachdem der Client den Namenskontext hat, fragt er nach der Referenz auf das Home Interface der Bean. Dazu benutzt der Client den Namen der Bean, der im Deployment Descriptor im Element <ejb-name> angegeben ist. Da der Namenskontext nur eine Referenz vom Typ Object liefert, wird diese noch zum richtigen Typ umgewandelt. Auf dem Home Interface kann der Client dann die Operation zum Erzeugen einer Bean-Instanz aufrufen. Auf dieser Instanz können dann die Operationen des Remote Interface aufgerufen werden. In diesem Beispiel ruft der Client die Operation sayhello() auf. 10

11 5.3 EJB Security Beteiligte am Lebenszyklus eines EJBs: Bean Provider: Programmiert das Bean. Application Assember: Stellt aus Beans eine Anwendung zusammen. Bean Deployer: Konfiguriert einen Applikationsserver mit dem Bean Beteiligte haben verschiedene Aufgaben bzgl. Sicherheit. Die EJB-Spezifikation sieht prinzipiell drei Beteiligte am Lebenszyklus eines EJBs vor. Der Bean Provider programmiert die Bean, der Application Assembler stellt aus den Beans eine Anwendung zusammen und der Bean Deployer legt die Bean auf einen Applikationsserver, auf dem sie ausgeführt werden kann. Diese drei Beteiligten haben verschiedene Aufgabengebiete in Bezug auf die Systemsicherheit. 11

12 5.3 EJB Security EJB Sicherheitsarchitektur hat eine Trennung zwischen Sicherheitsund Anwendungslogik. Application Assembler definiert Rollen (security roles) für die Anwendung und weist Methoden-Aufrufrechte (method permissions) zu deklarativ im Deployment-Deskriptor Deployer ordnet den Rollen Principals zu. Ein Principal ist ein Serverseitiges Objket, das an authentifizierte Benutzer gebunden wird. Client darf Methode eines EJBs aufrufen, wenn der zugeordnete Principal eine entsprechende Rolle hat. Container Provider muss die Sicherheitsstrategie durchsetzen. Generell kann man sagen, dass die EJB-Architektur die Sicherheitslogik von der Anwendungslogik trennt, d.h. der Bean Provider soll die Sicherheitsstrategie nicht in die Anwendungslogik integrieren. Der Application Assembler definiert die Sicherheits-Rollen der EJB-Anwendung. Eine Rolle ist (wie im RBAC-Modell definiert) eine Gruppierung von Rechten, die ein Benutzer braucht, um die Anwendung auszuführen. Der Application Assembler definiert (deklarativ in einem Deployment Descriptor) die Methoden-Erlaubnisse (method permissions) für jede Rolle. Der Deployer ist dafür verantwortlich die Principals (oder Gruppen von Principals) zu den vom Application Assembler definierten Rollen zuzuordnen. Ein Principal ist ein Server-seitiges Objekt, dass mit dem authentifizierten Benutzer verbunden wird. Der Principal ist in der Regel der Aufrufer (caller) der Methode. Zur Laufzeit wird einem Clienten nur dann erlaubt eine Methode aufzurufen, wenn der mit dem Clienten verbundene Principal mindestens eine Rolle hat, die ihm die Erlaubnis zum Aufruf der Methode gibt bzw. der Application Assembler hat keine Zugriffsschutzbeschränkungen für die Methode spezifiziert. Der Container Provider ist dafür verantwortlich die Sicherheitsstrategie zur Laufzeit durchzusetzen. 12

13 5.3 EJB Security Sicherheitsaufgaben des Bean Provider Soll möglichst wenig mit Sicherheit konfrontiert werden, Konzentration auf Geschäftslogik. Sicherheitslogik soll nicht hart im Code eingebettet werden. Aber: Einfache Schnittstellen zum Zugriff auf den Sicherheitskontext des EJBs. Der Bean Provider soll so wenig wie möglich mit Sicherheitsfragen belangt werden und die Sicherheitspolitik soll nicht hart im Code des Beans eingebettet werden. Der Bean Provider soll sich auf die Umsetzung der Geschäftsabläufe konzentrieren. In bestimmten Fällen kann es jedoch vorkommen, dass Sicherheitsaspekte im Bean implementiert werden müssen. Für diesen Fall ist es dem Bean Provider über einfache Schnittstellen möglich, auf den Sicherheitskontext eines EJBs zuzugreifen. 13

14 5.3 EJB Security Schnittstelle javax.ejb.ejbcontext besitzt zwei Methoden zum Zugriff auf Sicherheitsmethoden public interface javax.ejb.ejbcontext { java.security.principal getcallerprincipal(); boolean iscallerinrole( String rolename ); } Die Schnittstelle javax.ejb.ejbcontext besitzt zwei Methoden, die es dem Bean Provider erlauben, Sicherheitsinformationen über den Aufrufer (caller) des EJBs zu erlangen. Mit dem Aufrufen der Methode getcallerprincipal() innerhalb einer EJB-Methode kann der Principal bestimmt werden, der die EJB-Methode aufgerufen hat. Mittels der Methode getname() des Objektes java.security.principal kann dann der Name des Principals bestimmt werden. Eine EJB-Methode kann mit der Methode iscallerinrole() testen, ob der Aufrufer der EJB-Methode eine bestimmte Rolle besitzt. 14

15 5.3 EJB Security Beispiel für getcallerprincipal() public class EmployeeServiceBean implements SessionBean { EJBContext ejbcontext; public void changephonenumber(...) {... Context initctx = new InitialContext(); Object result = initctx.lookup("java:comp/env/ejb/emplrecord"); EmployeeRecordHome emplrecordhome = (EmployeeRecordHome) javax.rmi.portableremoteobject.narrow(result, EmployeeRecordHome.class); // obtain the caller principal. callerprincipal = ejbcontext.getcallerprincipal(); Ein Beispiel für den Einsatz der Operation getcallerprincipal() zeigt diese Folie. Im Beispiel wird die Telefonnummer des Aufrufers der Methode geändert. Zunächst wird mit der Operation getcallerprincipal() der Principal des Aufrufers der Methode betsimmt. 15

16 // obtain the caller principal s name. callerkey = callerprincipal.getname(); // use callerkey as primary key to EmployeeRecord finder EmployeeRecord myemployeerecord = emplrecordhome.findbyprimarykey(callerkey);...}} // update phone number myemployeerecord.changephonenumber(...); Danach wird der Name des Principals mittels der Operation getname() ermittelt. Dieser Name dient als primärer Schlüssel in einer Datenbank und ein Bean für das zum primären Schlüssel gehörende Datenbank-Tupel wird erzeugt. Auf diesem kann dann die Operation zum Ändern der Telefonnummer aufgerufen werden. 16

17 5.3 EJB Security Beispiel für iscallerinrole() public class PayrollBean... { EntityContext ejbcontext; public void updateemployeeinfo(emplinfo info) { oldinfo =... read from database; // The salary field can be changed only by callers // who have the security role "payroll" }} if (info.salary!= oldinfo.salary &&!ejbcontext.iscallerinrole("payroll")) { throw new SecurityException(...); } Ein Beispiel für den Einsatz der Operation iscallerinrole() zeigt diese Folie, bei dem der Wert für das Gehalt geändert werden kann. Dies ist nur möglich, wenn der Principal die Rolle payroll hat. 17

18 5.3 EJB Security Bean Provider kennt keine systemweiten Rollen, da er die Anwendung nicht kennt, in der die Beans eingesetzt werden. Bean Provider muss die im Code benutzten Rollen im Deployment-Deskriptor deklarieren Application Assembler bildet diese Rollen später auf die tatsächlichen Rollen der Anwendung ab. Da vom Standpunkt des Bean Providers aus noch keine systemweiten Rollen eingeführt wurden, muss der Bean Provider alle im Code des EJBs benutzten Rollen im Deployment Descriptor deklarieren. Dies geschieht mit den <security-role-ref >-Elementen. Dies erlaubt dem Application Assembler oder dem Deployer, diese Namen später mit den Rollen zu verbinden, die in der Anwendung definiert werden. 18

19 5.3 EJB Security <enterprise-beans>... <entity> <ejb-name>aardvarkpayroll</ejb-name> <ejb-class>com.aardvark.payroll.payrollbean</ejb-class>... <security-role-ref> <description> This security role should be assigned to the employees of the payroll department who are allowed to update employees salaries. </description> <role-name>payroll</role-name> </security-role-ref>... </entity> Die Folie zeigt ein Beispiel für die Spezifikation einer Rollenreferenz im Deployment Descriptor. Das Element <security-role-ref> enthält den Namen der Rollenreferenz (<rolename>) und eine optionale Beschreibung (<description>). Im <role-name>-element muss der Name der Rolle stehen, wie sie als Parameter in der Methode iscallerinrole() benutzt wurde. In unserem Gehalts-Beispiel einige Folien zuvor war dies die Rolle payroll. 19

20 5.3 EJB Security Sicherheitsaufgaben des Application Assemblers Definiert Sicherheitssicht auf die EJBs mittels eine Menge von Sicherheits-Rollen (security roles) Für jede Sicherheits-Rolle definiert er die zugehörigen Rechte (method permissions). Bildet die vom Bean Provider definierten Rollen- Referenzen auf Sicherheits-Rollen ab. Der Application Assembler definiert eine Sicherheitssicht auf die EJBs im Deployment Descriptor. Die Sicherheitssicht besteht aus einer Menge von Sicherheits-Rollen, welche eine semantische Gruppierung von Erlaubnissen zum Aufruf von EJB-Methoden sind. Der Application Assembler definiert die Erlaubnisse (method permissions) für jede Sicherheits- Rolle. Wenn der Bean Provider Rollen mittels der <security-role-ref>-elemente im Deployment-Deskriptor beschrieben hat, muss der Application Assembler diese Rollen- Referenzen auf die von ihm definierten Sicherheits-Rollen abbilden. 20

21 5.3 EJB Security Definition von Sicherheitsrollen ist optional. (Es gibt dann keine Sicherheitsinstruktionen an den Deployer) Sicherheitsrolle wird im Deployment-Deskriptor definiert. <security-role>: definiert eine Sicherheitsrolle <role-name>: Definiert den Namen der Rolle <description>: Die Rolle kann optional eine Beschreibung bekommen. Die Definition von Sicherheitsrollen im Deployment-Deskriptor ist optional für den Application Assembler. Definiert er keine Sicherheitsrollen, so entschließt sich der Application Assembler dazu, keine Sicherheits-Deployment-Instruktionen an den Deployer zu übergeben. Wenn der Application Assembler jedoch eine Sicherheitsrolle definiert, so muss er/sie folgendes tun: Definiere die Sicherheitsrolle mittels des <security-role> Elements. Benutze das <role-name> Element, um den Namen der Sicherheitsrolle zu spezifizieren. Optional kann das <description>-element benutzt werden, um eine Beschreibung der Sicherheitsrolle zu geben. 21

22 5.3 EJB Security <security-role> <description> This role includes the employees of the enterprise who are allowed to access the employee self-service application. This role is allowed only to access his/her own information. </description> <role-name>employee</role-name> </security-role> <security-role> <description> This role includes the employees of the payroll department. The role is allowed to view and update the payroll entry for any employee. </description> <role-name>payroll-department</role-name> </security-role> Die Folie zeigt ein Beispiel der Sicherheitsrollendefinition im Deployment Descriptor. 22

23 5.3 EJB Security Method Permission definiert eine Erlaubnis zum Aufruf einer EJB-Methode. Method Permission werden im Deployment- Deskriptor als binäre Relation Sicherheitsrollen x EJB-Methoden definiert. Paar (R,M) bedeutet, dass die Sicherheitsrolle R die EJB-Methode M aufrufen darf. Nachdem der Application Assembler die Sicherheitsrollen definiert hat, kann er/sie die Erlaubnisse (method permissions) für die Aufrufe von EJB-Methoden den Rollen zuordnen. Die Method Permissions werden im Deployment Descriptor als binäre Relation auf der Menge der Sicherheitsrollen und der Menge der EJB-Methoden definiert. Ein Paar (R,M) in der Method-Permission-Relation bedeutet dann, dass die Rolle R die Methode M aufrufen darf. 23

24 5.3 EJB Security Method Permissions werden wie folgt definiert: <method-permission>: Definiert eine Liste von Sicherheitsrollen und EJB-Methoden. Sicherheitsrollen werden mittels <role-name> identifiziert. EJB-Methoden werden mittels <method> identifiziert, welches den EJB-Namen (<ejb-name>) und den Methodennamen (<method-name>) enthält. Alle aufgelisteten Rollen dürfen alle Methoden aufrufen. Eine optionale Beschreibung kann hinzugefügt werden (<description>) Die Method Permissions werden im Deployment Descriptor mit dem Element <methodpermission> definiert. Jedes <method-permission> -Element definiert eine Liste einer oder mehrerer Sicherheitsrollen und eine Liste von einer oder mehreren EJB-Methoden. Alle aufgelisteten Sicherheitsrollen dürfen alle aufgelisteten Methoden aufrufen. Jede Sicherheitsrolle in der Liste wird mittels des <role-name>-elements identifiziert und jede EJB- Methode wird über das <method>-element identifiziert. Eine optionale Beschreibung kann dem <method-permission>-element zugeordnet werden (mit dem <description>-element). 24

25 5.3 EJB Security <method-permission> <role-name>employee</role-name> <method> <ejb-name>aardvarkpayroll</ejb-name> <method-name>findbyprimarykey</method-name> </method> <method> <ejb-name>aardvarkpayroll</ejb-name> <method-name>getemployeeinfo</method-name> </method> </method-permission> <method-permission> <role-name>employee</role-name> <method> <ejb-name>employeeservice</ejb-name> <method-name>*</method-name> </method> </method-permission> Die Folie zeigt ein Beispiel für eine <method-permission>-spezifikation. Für die Methodennamen können auch Platzhalter (z.b. *) benutzt werden. Dies bedeutet, dass die Rolle alle Methoden der Bean aufrufen darf. 25

26 5.3 EJB Security Method-Permission-Relation ist die Vereinigung aller methodpermission Elemente Sicherheitsrolle oder EJB-Methode kann in mehreren methodpermission Elementen auftreten. Mit <exclude-list> können Verbote spezifiziert werden. Bei Konflikten (d.h. Methode steht in exclude-list und methodpermission) haben Verbote Priorität. Sind für EJB-Methoden keine Zugriffsrechte spezifiziert, muss der Deployer die Zuordnung zu Sicherheitsrollen vornehmen oder sie als unchecked deklarieren. Die Method-Permission-Relation ergibt sich dann als die Vereinigung aller Method Permissions in den <method-permission>-elementen. Eine Sicherheitsrolle oder EJB- Methode kann in mehreren <method-permission>-elementen auftreten. Der Application Assembler kann zusätzlich mittels des <exclude-list>-elements eine Menge von EJB- Methoden definieren, die nicht aufgerufen werden dürfen. Der Deployer muss dann dafür sorgen, dass kein Zugriff auf eine Methode erfolgt, die in der exclude-list enthalten ist. Wenn eine EJB-Methode sowohl in der exclude-list als auch in der Method-Permission-Relation steht, so muss der Deployer dafür sorgen, dass kein Zugriff erlaubt ist (d.h. Verbote haben eine höhere Priorität als Erlaubnisse). Sind Methoden weder einer Sicherheitsrolle zugeordnet noch in der exclude-list, liegt es in der Verantwortung des Deployers, Method Permissions zu definieren. Dies kann durch Zuordnung der unspezifizierten Methoden zu Sicherheitsrollen geschehen oder der Deployer entschließt sich dazu, dass diese Methoden bei einem Zugriff nicht auf Autorisierung geprüft werden müssen (spezifiziert durch unchecked). 26

27 5.3 EJB Security Application Assembler ordnet die Rollenreferenzen Sicherheitsrollen zu. Spezifiziert im Deployment-Deskriptor mittels <rolelink> Wert von <role-link> muss ein Wert eines <rolename> Elements sein. Muss auch gesetzt werden, wenn die Werte für <rolelink> und <role-name> identisch sind. Definiert der Application Assembler Sicherheitsrollen im Deployment Descriptor, so muss er/sie allen Rollenreferenzen in den <security-role-ref>-elementen eine Sicherheitsrolle zuweisen. Dies erfolgt mittels des <role-link>-elements. Der Wert des <role-link>-elements muss dabei der Name einer Sicherheitsrolle sein (d.h. der Name muss in einem <role-name>- Element auftreten). Ein <role-link>-element muss auch dann explizit benutzt werden, wenn die Werte für <role-name> und <role-link> identisch sind. 27

28 <enterprise-beans>... <entity> <ejb-name>aardvarkpayroll</ejb-name> <ejb-class>com.aardvark.payroll.payrollbean</ejb-class>... <security-role-ref> <description> This role should be assigned to the employees of the payroll department. Members of this role have access to anyone s payroll record. The role has been linked to the payroll-department role. </description> <role-name>payroll</role-name> <role-link>payroll-department</role-link> </security-role-ref>... </entity>... </enterprise-beans> Die Folie zeigt ein Beispiel. Hier wird die vom Bean Provider definierte Rollenreferenz payroll der vom Application Assembler definierten Sicherheits-Rolle payroll department zugeordnet. 28

29 5.3 EJB Security Sicherheitsaufgaben des Deployers Abbilden der Sicherheitssicht auf die Zielumgebung. Zuweisen von Principals zu Sicherheitsrollen. Rollenreferenzen (benutzt im Bean Code) sind über den Link zu Sicherheitsrollen Principals zugeordnet. Muss die fehlenden (optionalen) Aufgaben des Application Assemblers ausführen (z.b. Sicherheitsrollen und Method Permissions definieren) Der Deployer muss die vom Application Assembler definierte Sicherheitsicht auf die Zielumgebung abbilden. Dies beinhaltet die Zuweisung von Principals zu den im Deployment Descriptor definierten Sicherheitsrollen. Der Application Assembler hatte alle Sicherheitsrollen-Referenzen, die im Bean Code benutzt wurden, mit Sicherheitsrollen verbunden. Der Deployer weist daher keine Principals zu Rollen-Referenzen, da die zu den Sicherheitsrollen zugewiesenen Principals automatisch zu den verbundenen Rollen- Refenrenzen zugeordnet sind. Da die Sicherheitsinformationen im Deployment Descriptor für den Application Assembler teilweise optional sind (z.b. die Definition der Sicherheitsrollen), muss der Deployer die vom Application Assembler nicht durchgeführten Aufgaben übernehmen (z.b. Definition der Sicherheitsrollen und Method Permissions). 29

30 5.3 EJB Security Das Rollenmodell von EJB entspricht RBAC 0 RBAC 0 User Rollen Rechte Sessions Principals, denen autorisierte Benutzer zugeordnet sind. Sicherheitsrollen Method Permissions EJB Client/Server-Aufruf, bei dem ein Benutzer einem Principal zugeordnet wird und damit Sicherheitsrollen besitzt. Abschließend kann man feststellen, dass das bei EJBs verwendete Rollenmodell am ehesten dem RBAC 0 Modell entspricht. Die Benutzer (User) im RBAC 0 Modell entsprechen den Principals in EJB, welche einem autorisierten Benutzer zugeordnet werden. Die Rollen im RBAC 0 Modell sind die vom Application Assembler definierten Sicherheitsrollen und die Rechte im RBAC 0 Modell sind die Method Permissions, die Rollen zugewiesen werden. Bei den RBAC 0 Sessions ist die Zuordnung nicht ganz so offensichtlich. Man kann aber einen Client-Aufruf als Session ansehen, bei dem dem Clienten ein Principal zugeordnet wird. Dieser Principal bekommt dann eine Menge von Rollen zugeordnet, die zur Ausführung der Anfragen des Clienten an den Server ausgewertet werden. 30

31 5.3 EJB Security Es gibt bei EJBs keine Rollenhierachien und keine Constraints. Daher weder RBAC 1 noch RBAC 2. EJBs bieten jedoch weder die Möglichkeit Rollenhierarchien zu definieren noch Constraints aufzustellen. Daher ist das in EJB verwendete Rollenmodell weder RBAC 1 noch RBAC 2 (und damit auch nicht RBAC 3 ). 31

32 5.4 CORBA Security CORBA (Common Object Request Broker Architecture) ist eine Spezifikation der OMG (Object Management Group) Ziel ist die Integration von Anwendungen in heterogenen Umgebungen und die Förderung von Objektorientierung. CORBA ist nur eine Spezifikation, keine eigene Implementierung. CORBA (Common Object Request Broker Architecture) wurde von der OMG (Object Management Group) spezifiziert. Die CORBA-Spezifikation hat die Integration von Anwendungen in heterogenen Umgebungen unter Verwendung der Objektorientierung zum Ziel. Grundvoraussetzung für dieses Ziel ist die Interoperabilität der Softwarekomponenten und der Objekte, aus denen sich Anwendungen zusammensetzen. 32

33 5.4 CORBA Security CORBA Objektmodell Objekte haben eine Identität, eine Lebenszeit und eine Schnittstelle (bestehend aus Methoden und Attributen). Objektaufrufe sind nur über definierte Schnittstellen möglich. Trennung schafft Unabhängigkeit von der Implementierung. Im CORBA-Objektmodell haben Objekte eine Identität und eine Lebenszeit (d.h. Objekte werden erzeugt und können auch wieder zerstört werden). Objekte werden über Schnittstellen beschrieben, die aus Attributen und Methoden bestehen. Die Kommunikation zwischen den Objekten erfolgt dann nur über diese definierten Schnittstellen. Dies schafft eine Unabhängigkeit von der Implementierung der Objekte, was in heterogenen Systemen eine wichtige Anforderung ist. 33

34 5.4 CORBA Security Object Management Architecture Applikationsobjekte CORBA Services Common Facilities ORB (Object Request Broker) Domain Objects Die in der CORBA-Spezifikation vorgestellte Architektur, die sogenannte Object Management Architecture (OMA), besteht aus dem Object Request Broker (ORB), Domain-Objekten, CORBA Services, Common Faciclities und Applikations-Objekten. 34

35 5.4 CORBA Security Verteilte Objekte kommunizieren über den ORB plattformunabhängig. Schnittstellen der CORBA-Objekte werden in programmiersprachenunabhängigen Schnittstellenbeschreibungssprache (Interface Definition Language, IDL) beschrieben. ORB sucht die passende Objekt-Implementierung zu einer Client-Anfrage, überträgt die Aufrufparameter, ruft die zur Anfrage passende Methode auf dem Server- Objekt auf und liefert die Ergebnisse zurück. Der ORB bildet das Rückgrat einer verteilten CORBA-Anwendung. Ein ORB ist ein Software- Bus, auf dem sich CORBA-Objekte registrieren lassen können, um so ihr Dienste anderen Objekten zur Verfügung zu stellen. CORBA-Objekte kommunizieren über den ORB plattformunabhängig, d.h. die von einem CORBA-Objekt angebotenen Dienste werden in einer programmiersprachenunabhängigen Interface Definition Language (IDL) beschrieben. Der ORB ist verantwortlich für das Auffinden des zur Anfrage passenden Server-Objekts, für die Übertragung der Aufrufparameter, für den Aufruf der Methode auf dem Server-Objekt und die Rückgabe des Ergebnisses zum Client. 35

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

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien CORBA Beispiel einer Middleware-Plattform Christian Fass WS 2013/14 Software Engineering: Basistechnologien Allgemeines Common Object Request Broker Architecture Middleware: Vermittelt zwischen Obekten/Prozessen

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

Modul Software Komponenten 10 Komponentenarchitektur

Modul Software Komponenten 10 Komponentenarchitektur Modul Software Komponenten 10 Komponentenarchitektur Teil 3 Peter Sollberger Eine erste CORBA Anwendung Inhalt Dienstag, 4. November Object Request Broker CORBA Architektur und Komponenten (Teil 1) Übung:

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme II Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

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

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

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

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Enterprise JavaBeans Basics Enterprise JavaBeans (EJB) Enterprise JavaBeans (EJB) Komponenten sind wohl definiert verteilt (MI-based) serverseitig Sie dienen

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

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO)

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO) Client/Server-Programmierung WS 2007/08 CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO) Version 1.2, 28.11.07 Schritt 1: Erstellung der IDL Zuerst muß eine IDL (Interface Definition Language)-Datei erstellt

Mehr

Hello World from CORBA

Hello World from CORBA Hello World from CORBA ein erster Überblick Aufruf einer Objekt-Methode Client gettemperature() Thermometer Objekt- Implementation Thermometer th = new Thermometer(); double t = th.gettemperature(); th

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

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

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

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

Corba. Systemprogrammierung WS 08 / 09. 21.01.09 Roginer - Fontana - Heinisch 1

Corba. Systemprogrammierung WS 08 / 09. 21.01.09 Roginer - Fontana - Heinisch 1 Corba Systemprogrammierung WS 08 / 09 21.01.09 Roginer - Fontana - Heinisch 1 Gliederung Definition Historie RPC Eigenschaften Architektur IDL-Beispiel Anwendungen OMA Services Facilities Client-Server

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

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

Grundlagen und Implementation. Jan Kraft

Grundlagen und Implementation. Jan Kraft Grundlagen und Implementation Jan Kraft Gliederung 1 die OMG 2 Was ist CORBA? 3 Funktionsweise 3.1 die Interface Definition Language 3.2 Objekt Adapter 3.3 weitere Komponenten des ORB 3.4 InterORB Protokolle

Mehr

Enterprise Java Beans (EJB)

Enterprise Java Beans (EJB) silbergrau Consulting & Software GmbH Enterprise Java Beans (EJB) Fachhochschule Hagenberg WS 2002 / 2003 Silbergrau Consulting & Software GmbH Dr. Andreas Erlach Inhaltsübersicht Application Server J2EE

Mehr

Middleware. Einführung in CORBA. Middlewareplattform CORBA. CORBA: Eigenschaften

Middleware. Einführung in CORBA. Middlewareplattform CORBA. CORBA: Eigenschaften Middleware Einführung in CORBA Kay Römer Institut für Pervasive Computing ETH Zürich Infrastruktur für verteilte Systeme Unterstützt Enwickler bei Behandlung der Probleme verteilter Systeme Erleichtert

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

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

explizite, orthogonale Interaktion Verteilte Anwendungen und Middleware uniforme / nicht-uniforme Interaktion implizite, nicht-orthogonale Interaktion

explizite, orthogonale Interaktion Verteilte Anwendungen und Middleware uniforme / nicht-uniforme Interaktion implizite, nicht-orthogonale Interaktion Verteilte Anwendungen und Klassifikation von Interaktionsformen explizit implizit orthogonal nicht-orthogonal uniform nicht-uniform transparent nicht-transparent explizite, orthogonale Interaktion weit

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

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

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

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

7.1.1 Grundzüge der Fernaufruf-Implementierung

7.1.1 Grundzüge der Fernaufruf-Implementierung 7.1.1 Grundzüge der Fernaufruf-Implementierung = Aufrufbeziehung Aufrufer Vertreter (proxy, client stub) Fernaufrufdienst A d a p t e r Treiber (skeleton, server stub) Fernaufrufdienst Aufgerufener (Modul,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

11. Enterprise Java Beans Grundlagen der Programmierung II (Java)

11. Enterprise Java Beans Grundlagen der Programmierung II (Java) 11. Enterprise Java Beans Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

CORBA Implementierung von Client und Server

CORBA Implementierung von Client und Server CORBA Implementierung von Client und Server J. Heinzelreiter WS 2003/04 Implementierung des Clients Initialisierung und Freigabe des ORBs. Mapping von Interfaces. Behandlung von Objektreferenzen. Verwaltung

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

Enterprise JavaBeans Überblick: 17. Enterprise Information System Schicht

Enterprise JavaBeans Überblick: 17. Enterprise Information System Schicht Enterprise JavaBeans Überblick 1. Überblick Komponententechnologien 2. Einführung 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

Projekt RACCOON. Hauptseminar Softwaretechnologie Quality of Service für Softwarekomponenten

Projekt RACCOON. Hauptseminar Softwaretechnologie Quality of Service für Softwarekomponenten Projekt RACCOON Hauptseminar Softwaretechnologie Quality of Service für Softwarekomponenten Lehrstuhl Softwaretechnologie,Technische Universität Dresden Wintersemester 2001/2002 Manja May mm681188@inf.tu-dresden.de

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

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

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

3. Die CORBA Dienste. Seite 2 von 11

3. Die CORBA Dienste. Seite 2 von 11 Vortrag: CORBA CORBA Common Object Request Broker Architecture 1. Einleitung Moderne Programmiersprachen haben den objektorientierten Ansatz in die strukturierte Berechnung in einem einzigen Betriebssystemprozess

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

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Client-Server-Praktikum: Aufgabe 1 CORBA Naming Service

Client-Server-Praktikum: Aufgabe 1 CORBA Naming Service Client-Server-Praktikum: Aufgabe 1 CORBA Naming Service CORBAservices sind eine Sammlung von Diensten auf Systemebene, die CORBA-Objekte um mehrere nützliche Eigenschaften ergänzen bzw. den Umgang mit

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

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

CORBA (Überblick, IDL)

CORBA (Überblick, IDL) Friedrich-Alexander-Universität Erlangen-Nürnberg Konzepte von Betriebssystemkomponenten CORBA (Überblick, IDL) Radu Vatav 1. Geschichte Die Object Management Group (OMG), 1989 gegründet, hatte das Ziel

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

Zustandsgebundene Webservices

Zustandsgebundene Webservices Zustandsgebundene Webservices Präsentation ausgewählter Problemstellungen der Informatik Markus Oertel oer@uni-paderborn.de Universität Paderborn 25. September 2005 Zustandsgebundene Webservices Seite

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

Technische Universität Dresden Prof. Hußmann Softwarekomponenten. 3.3 Enterprise JavaBeans-Technologie

Technische Universität Dresden Prof. Hußmann Softwarekomponenten. 3.3 Enterprise JavaBeans-Technologie Gliederung 1. Software-Komponenten: Grundlegende Begriffe 2. Systematischer Entwicklungsprozess für Komponenten-Software mit UML 3. Java-Komponenten-Technologien 3.1 JavaBeans-Technologie 3.2 Web-Komponenten

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

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

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

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

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

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

Programmierung mit Komponenten

Programmierung mit Komponenten Programmierung mit Komponenten Andreas Zeller Lehrstuhl für Softwaretechnik Universität des Saarlandes, Saarbrücken 2006-01-16 Grundidee: Teile und Herrsche Das Aufteilen eines Ganzen in wohldefinierte

Mehr

Der Einsatz von CORBA in verteilten EDA-Tools

Der Einsatz von CORBA in verteilten EDA-Tools Der Einsatz von CORBA in verteilten EDA-Tools Frank Grützmacher Technische Universität Ilmenau Fakultät für Elektrotechnik und Informationstechnik Fachgebiet Mikroelektronische Schaltungen und Systeme

Mehr

Mufid Sulaiman mufidsulaiman@web.de

Mufid Sulaiman mufidsulaiman@web.de Mufid Sulaiman mufidsulaiman@web.de Überblick Frameworks Applikationsentwicklung mit Frameworks Komponentenbasierte Frameworks Einführung in Enterprise JavaBean Einführung in SanFrancisco Vergleich Enterprise

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Komponentenmodelle II

Komponentenmodelle II Komponentenmodelle II DCOM / CORBA Detlef Streitferdt Technische Universität Ilmenau DCOM Architektur Client Proxy Stub Component CoCreateInstance Security Provider DCE RPC Protocol Stack Security Provider

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

Client-Server-Praktikum: Aufgabe 1 CORBA

Client-Server-Praktikum: Aufgabe 1 CORBA Client-Server-Praktikum: Aufgabe 1 CORBA In diesem Tutorial werden Sie die CORBA-Spezifikation kennenlernen und grundlegendes Wissen darüber sammeln. Am Ende des Tutorials sollten Sie in der Lage sein,

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

6. Java Java Beans und Enterprise Java Beans

6. Java Java Beans und Enterprise Java Beans 6. Java Java Beans und Enterprise Java Beans Peter Sturm Universität Trier Java Einführung Erfolgreicher virtueller Maschinenansatz der Gegenwart Vorbilder IBM: Virtualisierung der gesamten Rechnerhardware

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Traditione le Entwicklung: Anpassung und Auslieferung von Software Produkten. Prof.Dr.Frank M.Thiesing Frank.Thiesing@FH-Dortmund.de 30.

Traditione le Entwicklung: Anpassung und Auslieferung von Software Produkten. Prof.Dr.Frank M.Thiesing Frank.Thiesing@FH-Dortmund.de 30. Traditione le Entwicklung: Anpassung und Auslieferung von Software Produkten Prof.Dr.Frank M.Thiesing Frank.Thiesing@FH-Dortmund.de 30.März 2004 Seminar Komponentenorientierte Softwareentwicklung und Hypermedia

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

Grundlagen des Grid Computing

Grundlagen des Grid Computing Grundlagen des Grid Computing Webservices und Grid Computing Globus Toolkit 4 - Grundlagen ICA Joh.. Kepler Universität t Linz Eine Typische Grid-Applikation (Beispiel) VO Management Service Resource Discovery

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

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

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Corba. Common Object Request Broker Architecture. Von: Oliver Spiegel SoSem 2004. Seminar: Komponentenorientierte Softwareentwicklung

Corba. Common Object Request Broker Architecture. Von: Oliver Spiegel SoSem 2004. Seminar: Komponentenorientierte Softwareentwicklung Corba Common Object Request Broker Architecture Von: Oliver Spiegel SoSem 2004 Überblick Client/Server Technik Integration von bestehenden Softwaresystemen und Anwendungen Java-Unterstützung, um mobile,

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 2 05.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Das

Mehr

17 Komponentenbasiertes Software-Engineering

17 Komponentenbasiertes Software-Engineering 17 Komponentenbasiertes Software-Engineering 17.0 Einführung Lernziele Grundlagen, Prinzipien und Probleme des CBSE 17.1 Komponenten und Komponentenmodelle Komponenten und ihre Eigenschaften Komponentenmodelle

Mehr

4 EJBs & J2EE: Schnelleinstieg *

4 EJBs & J2EE: Schnelleinstieg * 19 4 EJBs & J2EE: Schnelleinstieg * Auch ohne bereits umfassende Kenntnisse über den Aufbau verteilter Anwendungen und die Feinheiten der J2EE-Architektur zu besitzen, soll an dieser Stelle ein erster

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

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Methodische Entwicklung

Methodische Entwicklung Methodische Entwicklung sicherer CORBA-Anwendungen Jan Jürjens Software & Systems Engineering Informatik, TU München juerjens@in.tum.de http://www.jurjens.de/jan Jan Jürjens, TU München: Entwicklung sicherer

Mehr

Auszug aus Axis2 Schulung

Auszug aus Axis2 Schulung Auszug aus Axis2 Schulung Dieses Dokument ist ein Auszug aus unserem Skript zur Axis2- Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Hauptstraße 33 75050 Gemmingen Mehr

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

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

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

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

Komponentenbasierte Softwareentwicklung

Komponentenbasierte Softwareentwicklung Seminar WS04 Komponentenbasierte Softwareentwicklung Karl Pauls Software-Komponente A software component is a unit of composition with contractually specified interfaces and explicit context dependencies

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

Modellierung von Sicherheitsaspekten mit UML. Hauptseminar Softwaretechnologie Modellierung von Sicherheitsaspekten mit UML Florian Heidenreich 2004

Modellierung von Sicherheitsaspekten mit UML. Hauptseminar Softwaretechnologie Modellierung von Sicherheitsaspekten mit UML Florian Heidenreich 2004 Modellierung von Sicherheitsaspekten mit UML 1 1 Übersicht 1 Übersicht 2 Einführung / Motivation 3 Mechanismen zur Erweiterung der UML 4 UMLSec 5 SecureUML 6 Unterstützung durch Tools 7 Zusammenfassung

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

.NET Security. Proseminar Objektorientiertes Programmieren mit.net und C# Bulwahn Julian. Institut für Informatik Software & Systems Engineering

.NET Security. Proseminar Objektorientiertes Programmieren mit.net und C# Bulwahn Julian. Institut für Informatik Software & Systems Engineering .NET Security Proseminar Objektorientiertes Programmieren mit.net und C# Bulwahn Julian Institut für Informatik Software & Systems Engineering Motivation 23.12.11.NET Security 2 Inhalt Code Access Security(CAS)

Mehr

Design im Softwareentwicklungsprozess. Stand der Dinge & Designziel. fachliche & technische Architektur. generelles Vorgehen bei Grob-Design

Design im Softwareentwicklungsprozess. Stand der Dinge & Designziel. fachliche & technische Architektur. generelles Vorgehen bei Grob-Design Design im Softwareentwicklungsprozess traditionell Geschäftsprozessmodellierung Requirements Engineering Analyse Design Implementierung Tests Design 1 test-getrieben: nur 1. Design top-down hier testgetrieben

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

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

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) Hier soll ein Überblick 1 über die RMI-Technologie der Java 2 Plattform gegeben werden. Inhaltsverzeichnis 1.Überblick...3 2.RMI Architektur...6 2.1.Überblick...6 2.2.RMI

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr