Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.

28
CBVE Computerunterstützte Bibliotheksverwaltung Team E Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus

Transcript of Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.

CBVEComputerunterstützte

Bibliotheksverwaltung Team E

Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus

2

Was ist CBVE Technik im Hintergrund Erfahrungen Vorführung

Agenda

3

Zentraler Server Lokale Terminals Zugriff via Web

Was ist CBVE

4

Bücher, Zeitschriften, CDs, DVDs, Spiele Themenbasiertes Ordnungssystem Verlage, Autoren Kundendaten Ausleihdaten

Zentraler Server

5

Administration Kundenverwaltung Medienanlage Suche von Medien

Lokale Terminals

6

Mediensuche online möglich Keine Anmeldung erforderlich

Zugriff via Web

7

Architektur Datenbank RMI Messaging EJB Webservice

Technik im Hintergrund

8

Schichtenmodell◦ Wenig Verquickungen zwischen den Schichten◦ Einfacher Austausch der Benutzerschnittstelle◦ Leichte Migration auf andere Datenbank◦ Wiederverwendbarkeit der Geschäftslogik

Architektur

9

Oracle Hibernate Transfere Objects

DATENBANK

10

Oracle Datenbank bei der FHV Zugriff via VPN Datenbankmodell

Datenbank - Oracle

11

Datenbankzugriff Bekanntes Framework

Datenbank - Hibernate

12

Data Access Object Dozer-Framework

Datenbank – Transfere Objects

13

erste Implementierung der Use Cases Observer Pattern

RMI

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

19

EJB in CBVE Authentifizierung Authorisierung Erfahrungen

EJB

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

25

Server: Axis2 Client: Axis2

Testen wegen Komplikationen nicht möglich

Webservice

26

Bekannte Frameworks Neue Technologien Sehr Zeitintensiv

Erfahrungen

27

Vorführung

28

Vielen Dank für Ihre Aufmerksamkeit

Fragen?

CBVE