Upload
kai-kranz
View
237
Download
5
Embed Size (px)
Citation preview
CBVEComputerunterstützte
Bibliotheksverwaltung Team E
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus
4
Bücher, Zeitschriften, CDs, DVDs, Spiele Themenbasiertes Ordnungssystem Verlage, Autoren Kundendaten Ausleihdaten
Zentraler Server
8
Schichtenmodell◦ Wenig Verquickungen zwischen den Schichten◦ Einfacher Austausch der Benutzerschnittstelle◦ Leichte Migration auf andere Datenbank◦ Wiederverwendbarkeit der Geschäftslogik
Architektur
14
erste Implementierung der Use Cases◦ Use Case Factory beim Server
RMI
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); }}
15
erste Implementierung der Use Cases◦ Client fordert einen Use Case an
RMI
UseCaseFactory useCaseFactory = (UseCaseFactory) Naming .lookup(ClientProperties.getInstance().getUrl());m_loginController = useCaseFactory.get( LogIn.class, CbveSession.getInstance().getSessionKey());
16
Observer Pattern◦ Remote Interface
RMI
public interface IRemoteObserver extends Remote{ public void update(Object argument) throws RemoteException;}
17
Observer Pattern◦ Klassen
EjbObservable EjbObserver RemoteObserver RemoteObserverObservable ServerObservable ServerObserverRegistration
RMI
18
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
Messaging
20
Version 3.1 ORB auf Glassfish JMS Administrative Objects auf Glassfish RMI Remote Interfaces -> EJB Business
Interfaces
EJB in CBVE
21
Server◦ UseCaseController = SessionBeans◦ Jeder Client bekommt eigenen UseCaseController◦ @Schedule für Daemon-Prozesse
Client◦ Laden der EJB über lookup◦ Realisiert mittels Factory
EJB in CBVE
22
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
Authentifizierung
23
Realisiert mittels Interceptors Ermöglicht Berechtigungen auf
Methodenebene LDAP: Klassenname#Methodenname
Authorisierung
24
Server◦ Wenn Infrastruktur steht -> einfache und schnelle
Entwicklung von verteilten Systemen Client
◦ @EJB Injection nur in Container Managed Classes Main class Callback class (definiert in application-client.xml)
Erfahrungen