# Mehrere Applikationenen mit einer Anmeldung möglich?



## wegus (21. Okt 2005)

Hallo,
ich bin neu hier, daher ein paar Worte zum Hintergrund:
ich programmiere schon recht lange (PHP, auch C/C++), bin aber in Java recht neu unterwegs. Ich betreibe ein Intranet mit verteilten Anwendungen in PHP/Apache httpd (LINUX) und  mit nem Microsoft SQL-Server.

Da die Anforderungen an das Intranet permanent steigen und J2EE offenbar sowohl eine bessere Struktur als auch eine Reihe nützlicher Werkzeuge mitbringt (Struts, JSF, JDO,...), befasse ich mich gerade mit dem Gedanken eine komplett neue Web-Applikation zu erstellen. Auch in PHP müßte ich das, weil meine ältesten Module (8 Jahre alt), nicht mehr auf dem Stand der aktuellen PHP-Technik sind (Objekte in PHP).
Ich habe dazu einen Tomcat 5.5.9 Server installiert, verwende netbeans und versuche für mich Struktur in das Ganze zu bekommen (Mit JSP und Servlets hab ich schon einen Teil des Intranets erfolgreich portiert). Die DB-Anbindung ist einfach. Jetzt will ich noch die Anmeldung per LDAP testen. Da stellte sich mir eine Frage ( falls noch jemand mitliest):

Was mich an der Idee der J2EE-Applikation stört, ist das ich sie nur als ganzes starten/stoppen kann. Wenn ich die Software für Abteilung 1 austauschen will, muß ich alle Abteilungen stoppen, das neue *.war deployen und starten. Der Admin in mir sagt dann, teile es doch auf. Eine Applikation Abteilung1, eine für Abteilung2,...
Natürlich sind da immer einige Mitarbeiter, die ihre Tastaturen in mehreren Abteilungen haben  :wink: 
Da Sessions ja beim wechseln enden ( hab ich schon probiert aber auch so erwartet), müßten die Mitarbeiter sich da ja dann pro Applikation anmelden ( ==> nicht durchsetzbar). Ich möchte also eine eindeutge Anmeldung am Server ( per LDAP) um dann Zugriff auf n Applikationen zu haben.
Ich bin bestimmt nicht der erste mit der Idee und da ich noch viele J2EE-Begriffe sortieren muß, sehe ich vielleicht den Wald vor lauter Bäumen nicht? Hat jemand einen Tipp/Link wo/wie man so etwas macht ( oder auch warum man sowas nie machen sollte?).

Gruß Wegus
( der sicher noch öfter newbie Fragen stellen wird stellen müssen...)


----------



## Bleiglanz (21. Okt 2005)

Stichwort: SingleSignOn SSO, war schon öfters da: googlen oder die Forumssuche bemühen, das ist mit dem Tomcat nicht ganz einfach

(es gibt aber einen LDAP Realm, einfach mal in die doku schaun)

UND

du musst nicht den Server stoppen um ein .war zu redeployen, du könntest im mangager

stop
das war auswechseln
start
ggf. auch reload

(oder einfach das war erneut hochladen)

wenn du den Context entsprechend kofigurierst, dann gibts auch Hot-Deployment...


----------



## wegus (21. Okt 2005)

> Stichwort: SingleSignOn SSO, war schon öfters da: googlen oder die Forumssuche bemühen, das ist mit dem Tomcat nicht ganz einfach
> 
> (es gibt aber einen LDAP Realm, einfach mal in die doku schaun)



SingleSignOn ist also das Stichwort dazu. Danke!
Mit LDAP-Anbindung setz ich mich gerade auseinander. Mich stört halt, daß ich die Buchhaltung anhalten müßte, wenn ich ein Verkaufsmodul erneuern wollte ( als Beispiel). Das will ich vermeiden.
Gibt es den OpenSource Alternativen zu TomCat die geeigneter sind?


----------



## KSG9|sebastian (21. Okt 2005)

wg. anhalten:

Was meinst du damit genau ? Wie oft willst du denn das .war austauschen ? Zudem, normalerweise funktioniert (wie bg schon geschrieben hat) hot-deployment, dann hast du damit kein Problem


----------



## wegus (21. Okt 2005)

@KSG9:

vielleicht unterliege ich da ja auch ner Fehlannahme oder sehe ein Problem wo Keines ist. Mich stört einfach, daß ich beim ersetzen eines Bereichs (z.B. in der Buchhaltung), ein gesamtes .war austauschen muß das eben auch den verkauf enthält und Anderes. Als PHP-Mensch tausche ich schlicht das Verzeichnis in dem sich die Anwenung BuHa befindet; im Zweifelsfall sogar schlicht per symbolischem Link.
Mit einem J2EE-Server läuft ja dann eine permanente Applikation  ( was ja uach gerade ein Vorteil ist). Das einfache Austauschen von Segmenten ist jedoch damit passé. Daher habe ich überlegt Segmente in Form von Einzelapplikationen einzuführen.
Da ich aber J2EE Newbie bin ( und meine Java-Kenntnisse auch erst wieder aufwärmen muß) gehe ich eher davon aus, daß mein Lösungsansatz verkehrt ist. Bin halt noch in der Lernphase und noch nicht in der Migration.


----------



## Bleiglanz (21. Okt 2005)

du musst ja nicht das .war deployen, genauso gut kannst du ein Verzeichnis nehmen

beim Entwickeln macht man das am besten auch so, dass man in einer "explodierten" Webanwendung mit einfacher Ordnerstruktur direkt arbeitet: 

a) neu Übersetzen, oft reicht CTRL-S  (die IDE legt das bei richtiger Konfiguration gleich in WEB-INF/classes)

b) Context neu starten

c) alles fertig

Bei jsps reicht sogar einfaches speichern, wenn man die Entwicklungsmaschine so eingestellt hat, dass JSPs automatisch neu geladen werden

war Archive verwendet man iA nur in Produktivsystemen, wo man eh nicht jeden Tag fünfmal neu deployen muss/kann


----------



## wegus (21. Okt 2005)

Bleiglanz hat gesagt.:
			
		

> war Archive verwendet man iA nur in Produktivsystemen, wo man eh nicht jeden Tag fünfmal neu deployen muss/kann



Genau um die geht es mir! 
Die macht man aber in der Tat vielleicht einmal die Woche oder im Monat. Ist wohl eher ein emotionales Problem. Muß mich halt umgewöhnen und da prasselt ja gerade bei J2EE eine wahre Flut von Techniken und Strategien auf einen ein. Danke Euch erstmal für das feedback soweit.  Solche Orientierungspunkte sind am Anfang immer recht nützlich!

Gruß wegus


----------



## Bleiglanz (21. Okt 2005)

ist doch viel besser als bei PHP

neues war Archiv lokal herstellen und testen, dann deployen

kein gepriemel mehr mit Dateien, die "synchron" sein müssen und per FTP hin und her geschubst werden


BTW kann man (bei richtiger Programmierung und Konfiguration) Sessions auch persistent machen so dass sie einen Neustart überleben!


----------



## wegus (21. Okt 2005)

> BTW kann man (bei richtiger Programmierung und Konfiguration) Sessions auch persistent machen so dass sie einen Neustart überleben!



Schon klar! Dann darf das Cookie halt nicht temporär sein. Aber dann hätt ich hier schöne Verwechselungen. Wenn Mitarbeiter A als Kollege B verkauft und der dann die Provision kassiert nur weil die kurz mal die Plätze getauscht haben... Das gäb Verletzte :wink:

Und Du hast Recht. Es macht mir mehr und mehr Spaß!


----------



## Bleiglanz (21. Okt 2005)

Nein, das hat nichts mit der Cookie-Lebensdauer zu tun, ich rede von einer gerade stattfindenden Sitzung

(Bei PHP ist das BTW meistens trivial, weil da die Sitzungsdaten eh im Dateisystem gespeichert werden)


----------



## KSG9|sebastian (25. Okt 2005)

1. selbst mit .war-Archiven kannst du hot-replacen

Ich arbeit gerade mit WebSphere AppServer 5/PortalServer 6 und deploye meine Anwendung auch nicht immer neu.
Als .war exportieren, die war entpacken und per FTP/WinSCP o.ä. hochladen.
Im Produktivsystem wäre ich damit bissl vorsichtig, kommt immer auf Konfiguration an. Aber wenn der Server gut eingestellt ist, dann hast du damit keine Probleme

2. bg meint bissl was anderes was Sessions angeht. Bei Portalen gibts Portlet-Sessions, die werden persistent gespeichert (*nicht* Client-seitig). Dadurch hast du im Normalfall auch nach nem Server-Neustart noch alles so wie es war


----------



## wegus (27. Okt 2005)

Danke 

ich hangele mich so langsam rein ( es gibt so unendlich viel mehr an Frameworks als für PHP, daß wird ein langer Weg).

Spannend find ich auch das hier:

http://www.heise.de/newsticker/meldung/65460

da sind ja all meine Zauberworte schon enthalten (LDAP, MS SQL Server,...).  Aber ich werd OT...


----------

