Hallo java-forum.
Ich bin auf der Suche nach den richtigen Techniken für die Realisierung eines längerfristigen Projekts und denke, dass ich da bei Java und Co. richtig liege.
Allerdings bin ich in Java noch ziemlich neu (habe bisher hauptsächlich mit Delphi unter Windows gearbeitet) und habe nicht den richtigen Überblick über die verschiedenen Techniken/Technologien, um sinnvoll entscheiden zu können, ob wir es mit Java realisieren sollen bzw. welche Komponenten wir dazu benötigen werden.
Ich habe eine gewisse Vorstellung davon, wie die Dinge zusammenarbeiten könnten und würde gerne um Stellungnahmen dazu bitten, ob das so ungefähr stimmt, wie ich es denke.
Für Anregungen, wie man das alles auch anders unter einen Hut bekommen könnte, wäre ich auch dankbar.
Im Wesentlichen geht es um eine klassische Datenbank- und eine klassische Web-Anwendung. Die Datenbankplattform wird Firebird sein, die Datenbank selbst in der Größenordnung von 50-100 Tabellen, wobei der Zugriff über Stored Procedures (etwa je 20-25 zum Lesen und Schreiben) geregelt werden dürfte.
Der Grund, weshalb ich nicht alles gleich mit Delphi machen kann liegt in folgenden Anforderungen verschiedener Anwendungsgebiete:
1)
Arbeit an der Datenbank (Dateneingabe und Recherche) im Haus.
Die Mitarbeiter (etwa 4-5) haben Macs und PCs und sind an ein Uni-Netzwerk angeschlossen, das wahrscheinlich unter Unix/Linux läuft. Ich weiß noch nicht, ob der Datenbank- und Webserver über das Rechenzentrum mitläuft oder ob wir einen eigenen Rechner konfigurieren dürfen.
Hierfür wäre eine (Java-)Desktop-Anwendung geeignet oder eine Browseranwendung mit einer Webserveranwendung (dabei habe ich an JSP gedacht, andererseits wäre auch PHP denkbar).
2)
Arbeit außer Haus auf Laptops oder Heimrechnern (etwa 15-20 verschiedene Nutzer).
Hier ist die Webserveroption nicht möglich, da die Laptops natürlich keine und die Heimrechner i.d.R. nur eine langsame (und auch noch privat bezahlte) Internetverbindung haben.
Hier wäre wieder eine (Java-)Desktop-Anwendung (mit Replikationsfunktionen) geeignet.
3)
Recherche (und gestaffelter Eingabezugriff) über öffentliches Internet.
Dafür kommt nur eine Webserver-Anwendung in Frage (JSP, PHP), die mit der Webserveroption von 1) nahe verwandt wäre (Loginmechanismus, je nach Benutzergruppe unterschiedliche Möglichkeiten).
4)
Evtl. auch die Möglichkeit, die Datenbank als reine Recherchedatenbank auf CD-ROM zu verteilen.
Auch hierfür kommt wiederum (wie bei 2) nur eine Desktop-Anwendung in Betracht, da man ja für so eine Datenbank-CD keinen Webserver installieren kann...
Also: Aus den Punkten 1-4 geht ziemlich klar hervor, dass wir auf jeden Fall mindestens eine Webserver- und eine Desktopanwendung benötigen. Die Desktopanwendung muss mindestens auf Mac und PC laufen, für den Webserver reicht ein Betriebssystem (das aber wahrscheinlich Unix/Linux ist).
Meine Vorstellung ist nun, dass es möglich sein müsste, eine selbständige Java-Anwendung und eine JSP-basierte Webserveranwendung zu realisieren, und dabei einen großen Teil des Codes gemeinsam zu verwenden.
Also die gesamte Geschäftslogik und DB-Anbindung in Klassen(bibliotheken) zu verpacken, so dass für die zwei Anwendungen relativ wenig spezifischer Code übrigbleibt, der separat gepflegt werden muss.
Wenn es dann auch noch möglich wäre, für den Server und den Desktop auf vorhandene Frameworks aufsetzen zu können (Struts?, NetBeans Framework?), sollte sich daraus doch eine relativ elegante Architektur entwickeln lassen.
Könnt Ihr mir jetzt sagen, ob ich mit meinen Gedanken ungefähr richtig liege?
Oder würde das alles überhaupt nicht so funktionieren?
Oder sieht jemand eine andere elegante Möglichkeit, die Lösung der Anforderungen geschickt zu kombinieren (auch nicht mit Java)?
MfG
Urs
Ich bin auf der Suche nach den richtigen Techniken für die Realisierung eines längerfristigen Projekts und denke, dass ich da bei Java und Co. richtig liege.
Allerdings bin ich in Java noch ziemlich neu (habe bisher hauptsächlich mit Delphi unter Windows gearbeitet) und habe nicht den richtigen Überblick über die verschiedenen Techniken/Technologien, um sinnvoll entscheiden zu können, ob wir es mit Java realisieren sollen bzw. welche Komponenten wir dazu benötigen werden.
Ich habe eine gewisse Vorstellung davon, wie die Dinge zusammenarbeiten könnten und würde gerne um Stellungnahmen dazu bitten, ob das so ungefähr stimmt, wie ich es denke.
Für Anregungen, wie man das alles auch anders unter einen Hut bekommen könnte, wäre ich auch dankbar.
Im Wesentlichen geht es um eine klassische Datenbank- und eine klassische Web-Anwendung. Die Datenbankplattform wird Firebird sein, die Datenbank selbst in der Größenordnung von 50-100 Tabellen, wobei der Zugriff über Stored Procedures (etwa je 20-25 zum Lesen und Schreiben) geregelt werden dürfte.
Der Grund, weshalb ich nicht alles gleich mit Delphi machen kann liegt in folgenden Anforderungen verschiedener Anwendungsgebiete:
1)
Arbeit an der Datenbank (Dateneingabe und Recherche) im Haus.
Die Mitarbeiter (etwa 4-5) haben Macs und PCs und sind an ein Uni-Netzwerk angeschlossen, das wahrscheinlich unter Unix/Linux läuft. Ich weiß noch nicht, ob der Datenbank- und Webserver über das Rechenzentrum mitläuft oder ob wir einen eigenen Rechner konfigurieren dürfen.
Hierfür wäre eine (Java-)Desktop-Anwendung geeignet oder eine Browseranwendung mit einer Webserveranwendung (dabei habe ich an JSP gedacht, andererseits wäre auch PHP denkbar).
2)
Arbeit außer Haus auf Laptops oder Heimrechnern (etwa 15-20 verschiedene Nutzer).
Hier ist die Webserveroption nicht möglich, da die Laptops natürlich keine und die Heimrechner i.d.R. nur eine langsame (und auch noch privat bezahlte) Internetverbindung haben.
Hier wäre wieder eine (Java-)Desktop-Anwendung (mit Replikationsfunktionen) geeignet.
3)
Recherche (und gestaffelter Eingabezugriff) über öffentliches Internet.
Dafür kommt nur eine Webserver-Anwendung in Frage (JSP, PHP), die mit der Webserveroption von 1) nahe verwandt wäre (Loginmechanismus, je nach Benutzergruppe unterschiedliche Möglichkeiten).
4)
Evtl. auch die Möglichkeit, die Datenbank als reine Recherchedatenbank auf CD-ROM zu verteilen.
Auch hierfür kommt wiederum (wie bei 2) nur eine Desktop-Anwendung in Betracht, da man ja für so eine Datenbank-CD keinen Webserver installieren kann...
Also: Aus den Punkten 1-4 geht ziemlich klar hervor, dass wir auf jeden Fall mindestens eine Webserver- und eine Desktopanwendung benötigen. Die Desktopanwendung muss mindestens auf Mac und PC laufen, für den Webserver reicht ein Betriebssystem (das aber wahrscheinlich Unix/Linux ist).
Meine Vorstellung ist nun, dass es möglich sein müsste, eine selbständige Java-Anwendung und eine JSP-basierte Webserveranwendung zu realisieren, und dabei einen großen Teil des Codes gemeinsam zu verwenden.
Also die gesamte Geschäftslogik und DB-Anbindung in Klassen(bibliotheken) zu verpacken, so dass für die zwei Anwendungen relativ wenig spezifischer Code übrigbleibt, der separat gepflegt werden muss.
Wenn es dann auch noch möglich wäre, für den Server und den Desktop auf vorhandene Frameworks aufsetzen zu können (Struts?, NetBeans Framework?), sollte sich daraus doch eine relativ elegante Architektur entwickeln lassen.
Könnt Ihr mir jetzt sagen, ob ich mit meinen Gedanken ungefähr richtig liege?
Oder würde das alles überhaupt nicht so funktionieren?
Oder sieht jemand eine andere elegante Möglichkeit, die Lösung der Anforderungen geschickt zu kombinieren (auch nicht mit Java)?
MfG
Urs