Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus
Was ist CBVE Technik im Hintergrund Erfahrungen Vorführung 2
Zentraler Server Lokale Terminals Zugriff via Web 3
Bücher, Zeitschriften, CDs, DVDs, Spiele Themenbasiertes Ordnungssystem Verlage, Autoren Kundendaten Ausleihdaten 4
Administration Kundenverwaltung Medienanlage Suche von Medien 5
Mediensuche online möglich Keine Anmeldung erforderlich 6
Architektur Datenbank RMI Messaging EJB Webservice 7
Schichtenmodell ◦ Wenig Verquickungen zwischen den Schichten ◦ Einfacher Austausch der Benutzerschnittstelle ◦ Leichte Migration auf andere Datenbank ◦ Wiederverwendbarkeit der Geschäftslogik 8
Oracle Hibernate Transfere Objects 9
Oracle Datenbank bei der FHV Zugriff via VPN Datenbankmodell 10
Datenbankzugriff Bekanntes Framework 11
Data Access Object Dozer-Framework 12
erste Implementierung der Use Cases Observer Pattern 13
erste Implementierung der Use Cases ◦ Use Case Factory beim Server 14 if (_usecases.containsKey(usecase)) try { return (T) _usecases.get(usecase).newInstance(); } catch (Exception e) { throw new RemoteObjectNotFoundException( "An error occured while loading the remote object.", e); }
erste Implementierung der Use Cases ◦ Client fordert einen Use Case an 15 UseCaseFactory useCaseFactory = (UseCaseFactory) Naming.lookup(ClientProperties.getInstance().getUrl()); m_loginController = useCaseFactory.get( LogIn.class, CbveSession.getInstance().getSessionKey());
Observer Pattern ◦ Remote Interface 16 public interface IRemoteObserver extends Remote{ public void update(Object argument) throws RemoteException; }
Observer Pattern ◦ Klassen EjbObservable EjbObserver RemoteObserver RemoteObserverObservable ServerObservable ServerObserverRegistration 17
Task Bearbeitung wurde mit einer JMS Queue realisiert Alle Nachrichten werden in einer Queue abgelegt Keine Message-Driven-Bean, da kein Workflow angestoßen werden muss 18
EJB in CBVE Authentifizierung Authorisierung Erfahrungen 19
Version 3.1 ORB auf Glassfish JMS Administrative Objects auf Glassfish RMI Remote Interfaces -> EJB Business Interfaces 20
Server ◦ UseCaseController = SessionBeans ◦ Jeder Client bekommt eigenen UseCaseController für Daemon-Prozesse Client ◦ Laden der EJB über lookup ◦ Realisiert mittels Factory 21
Erfolgt über Glassfish LDAP Realm Durch Container überwacht Ausgeführt bei EJB Aufruf Principals in SessionContext Geschützte Beans in sun-ejb-jar.xml definiert 22
Realisiert mittels Interceptors Ermöglicht Berechtigungen auf Methodenebene LDAP: Klassenname#Methodenname 23
Server ◦ Wenn Infrastruktur steht -> einfache und schnelle Entwicklung von verteilten Systemen Client Injection nur in Container Managed Classes Main class Callback class (definiert in application-client.xml) 24
Server: Axis2 Client: Axis2 Testen wegen Komplikationen nicht möglich 25
Bekannte Frameworks Neue Technologien Sehr Zeitintensiv 26
27
Vielen Dank für Ihre Aufmerksamkeit Fragen? 28