290 likes | 394 Views
CBVE Computerunterstützte Bibliotheksverwaltung Team E. Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus. Agenda. Was ist CBVE Möglichkeiten, Einsatzgebiet, Komponenten, etc Technischer Hintergrund Architektur, DB, etc. Erfahrungen Vorführung. Was ist CBVE.
E N D
CBVEComputerunterstützte Bibliotheksverwaltung Team E Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus
Agenda • Was ist CBVE • Möglichkeiten, Einsatzgebiet, Komponenten, etc • Technischer Hintergrund • Architektur, DB, etc. • Erfahrungen • Vorführung
Was ist CBVE • Cbve – ComputerunterstützteBibliotheksverwaltung • Verwaltung von Medien • Verwaltung von Kundendaten • Service für Kunden
Komponenten • Zentraler Server • Lokale Terminals • Webapplikation • Webservice • DB • Corba-Schnittstelle
KomponentenLokale Terminals • Administrationstätigkeiten • Kundenverwaltung • Medienverwaltung • Suche • Ausleihe • Verlängerungen • Reservierungen • Aufgabenverwaltung
KomponentenWebapplikation • Für alle zugängliche Webapplikation keine Authentifizierung nötig • Bisher Mediensuche umgesetzt • Einfach erweiterbar
Technik im Hintergrund • Architektur • Datenbank • RMI • Messaging • EJB • Webservice
Architektur • Schichtenmodell • Wenig Verquickungen zwischen den Schichten • Einfacher Austausch der Benutzerschnittstelle • Leichte Migration auf andere Datenbank • Wiederverwendbarkeit der Geschäftslogik
DATENBANK • Oracle • Hibernate • Transfer Objects
Datenbank - Oracle • Oracle Datenbank bei der FHV • Zugriff via VPN • Datenbankmodell
Datenbank - Hibernate • Datenbankzugriff • Bekanntes Framework
Datenbank – Transfer Objects • Data Access Object • Dozer Framework
RMI • erste Implementierung der UseCases • Observer Pattern
RMI • erste Implementierung der UseCases • Use Case Factory beim Server if (_usecases.containsKey(usecase)) try { return (T) _usecases.get(usecase).newInstance(); } catch (Exception e) { thrownewRemoteObjectNotFoundException( "An erroroccuredwhileloadingthe remote object.", e); } }
RMI • erste Implementierung der UseCases • Client fordert einen Use Case an UseCaseFactoryuseCaseFactory = (UseCaseFactory) Naming .lookup(ClientProperties.getInstance().getUrl()); m_loginController = useCaseFactory.get( LogIn.class, CbveSession.getInstance().getSessionKey());
RMI • Observer Pattern • Remote Interface publicinterfaceIRemoteObserverextends Remote{ publicvoid update(Objectargument) throwsRemoteException; }
RMI • Observer Pattern • Klassen • EjbObservable • EjbObserver • RemoteObserver • RemoteObserverObservable • ServerObservable • ServerObserverRegistration
Messaging • 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
EJB • EJB in CBVE • Authentifizierung • Authorisierung • Erfahrungen
EJB in CBVE • Version 3.1 • ORB auf Glassfish • JMS Administrative Objects auf Glassfish • RMI Remote Interfaces -> EJB Business Interfaces
EJB in CBVE • Server • UseCaseController = SessionBeans • Jeder Client bekommt eigenen UseCaseController • @Schedule für Daemon-Prozesse • Client • Laden der EJB über lookup • Realisiert mittels Factory
Authentifizierung • 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
Authorisierung • Realisiert mittels Interceptors • Ermöglicht Berechtigungen auf Methodenebene • LDAP: Klassenname#Methodenname
Erfahrungen • Server • Wenn Infrastruktur steht -> einfache und schnelle Entwicklung von verteilten Systemen • Client • @EJB Injection nur in Container ManagedClasses • Main class • Callback class (definiert in application-client.xml)
Webservice • Server: Axis2 • Client: Axis2 • Testen wegen Komplikationen nicht möglich
Erfahrungen • Bekannte Frameworks • Neue Technologien • Sehr Zeitintensiv