Geeignete Plattform für Projekt (JSP, PHP, Java-Anwendung)

Status
Nicht offen für weitere Antworten.

Urs Liska

Mitglied
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
 

Bleiglanz

Gesperrter Benutzer
Urs Liska hat gesagt.:
...
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.
....
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).
Mach entweder eine Desktop ODER eine Webanwendung, wozu das ganze zweimal entwickeln?

zu 2: Hä? Ha? Willst du im ernst eine "Offline-Anwendung" mit "Synchronisationsfeature" entwickeln? Das ist verdammt schwierig, weil wenn 5 Benutzer alle eine Woche lang offline arbeiten -> wie willst du den Zeugs dann zusammenführen?? Oder sollen die nur lesen

setzt mal lieber eine Internetverbindung voraus!

[Unter ACCESS gabs sowas mal, mit Master-Datenbanken und Replikation und "Zusammenführen" => ziemlich übler Zeugs]


Würde dir eher zu einen reinen Webanwendung raten (vor allem wegen 1 und 3) und die CD-ROM ad hoc rausschreiben (von mir aus mit Javascript + festem Suchindex + evtl. einem Applet)
 

AlArenal

Top Contributor
Synchronisation ist in der Tat immer ein kniffliges Thema. Da wäre es nicht schlecht zu wissen was du wie und von wem wohin synchronisiert haben möchtest.

Für den Offline-Betrieb scheiden Server-Technologien natürlich aus. Drum würde ich auch drüber nachdenken eien reine Java-Anwendung für alle draus zu machen, die eben zwischen einem Online- und einem Offline-Modus unterscheidet. Im Online-Modus (bei euch im Netz) wird auf den Server zugegriffen, also auf Live-Daten. Im Offline-Modus wird über eine lokale SQL-Datenbank (hsqldb) zugegriffen, die eben bei Bedarf mit der Haupt-DB synchronisiert wird.
 

AlArenal

Top Contributor
Sehr sinniger Kommentar.. "Produkt XYZ, das seit 10 Jahren entwickelt word, hat dies und jenes toll umgesetzt. Dummerweise ist der Quellcode nicht verfügbar, ..."

Schön, das wir drüber gesprochen haben...
 

KSG9|sebastian

Top Contributor
woargh das war nur so ne kleine Anmerkung à la "Du kannst dir ja mal die Funktion von Produkt ABC anschauen und dir überlegen, welche Funktionen realisierbar sind und welche nicht"
 

Grizzly

Top Contributor
KSG9|plak hat gesagt.:
woargh das war nur so ne kleine Anmerkung à la "Du kannst dir ja mal die Funktion von Produkt ABC anschauen und dir überlegen, welche Funktionen realisierbar sind und welche nicht"
Wobei die Replikation in Lotus Notes relativ billig gelöst ist: Jeder Datensatz besitzt einen Array, in dem das letzte Änderungsdatum steht. Gibt es bei einer Synchronisation ein Problem, weil die jeweilige Kopie zu anderen Daten (Mehrzahl von Datum ;) ) geändert wurden, wird der Datensatz als sogenanntes "Konfliktdokument" gespeichert.
 

Bleiglanz

Gesperrter Benutzer
Das Access - Merge funktioniert genauso (mit Zeitstempel); interessant ist auch das Handling von Autoinkrement Primärschlüsseln, die werden nämlich in den "offline Kopien" beim Erzeugen von Datensätzen einfach mit einer Zufallszahl gefüllt - in der Hoffnung, dass dann beim Merge alles gut geht....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Online-Plattform für Essensbestellungen mit der momentanen Bestellverfolgung Softwareentwicklung 1
M Plugins entwickeln für ein CMS welches unter der GPL V3 steht Softwareentwicklung 1
I Datenbankschema für Versionierung der Tabellen Softwareentwicklung 9
R Datenstruktur für einen rätselhaften Namen Softwareentwicklung 10
Rahim Post Conditions für InsertAt und remove Softwareentwicklung 1
P Thema für meine Projektarbeit die etwas mit Webautomatisierung zu tuen haben soll? Softwareentwicklung 1
H Entwurfsmuster für den Client der Rest API Softwareentwicklung 0
D Welche Technologien für App und web? Softwareentwicklung 3
Thallius oAuth2 und ClientCredentials für API sinnvoll? Softwareentwicklung 3
S Welche Programmiersprache für eine 3D-Software? Softwareentwicklung 6
N Technologie Grundlagen für eine "App" Softwareentwicklung 12
OnDemand Welches Tool für Planung Softwareentwicklung 2
B Sprache für 3D Physics Engine? Softwareentwicklung 3
K Maßnahmen für Softwarequalität Softwareentwicklung 2
N Graphenalgorithmen: Best Practice für Knoten-/Kanten-Attribute Softwareentwicklung 5
Z Analysemuster - Welches nehme ich für diese Problem? Softwareentwicklung 0
L Softwareentwicklung für Embedded Systems Softwareentwicklung 1
T Gibt es eine Software die Texte für Skype automartisch (automassage) sendet ? Softwareentwicklung 4
S Suche: (Versionierungs)Tool für Klassenaustausch mit Kollegen, die auch an dem Projekt arbeiten Softwareentwicklung 5
R UML-Diagramm für mehrere JFrames Softwareentwicklung 0
S Algorithmus für perfekte Kombination Softwareentwicklung 2
U Individualsoftware - eine Gefahr für Kunden oder die günstigere Alternative? Softwareentwicklung 7
J Grafiken für eigene Apps ? Softwareentwicklung 2
V [Klassendesgin] Verhalten von Subklassen für Aufgabenteilung benutzen. Softwareentwicklung 2
KranzKrone Architektur für einfaches Gui Programm Softwareentwicklung 6
R freie Engine für IOS, Android, Blackberry Softwareentwicklung 11
T SMART für USB Sticks? Softwareentwicklung 9
BinaryLogic Software für Projektplanung und -Entwicklung Softwareentwicklung 19
A MVC & getter für GUI Komponenten Softwareentwicklung 5
S Abstractes/Schnittstellen für Objekte Softwareentwicklung 8
fastjack Welches Tool für Agile Softwareentwicklung? Softwareentwicklung 6
C Wiki für ein Uni - High Level Design Softwareentwicklung 5
S Design Pattern für zwei abhängige Klassen Softwareentwicklung 8
Mike90 Lizenz für eigene software Softwareentwicklung 9
V Welche Programmisprache für den Desktop? Softwareentwicklung 17
V Zeitplanung für JUnit-Tests? Softwareentwicklung 9
Jay_030 Checkstyle: Lösungsvorschläge für Design for Extension Softwareentwicklung 7
B Allgemeine Fragen für eigenes Projekt Softwareentwicklung 4
P Sensibilität für Codequalität fördern Softwareentwicklung 17
B Empfehlung für Datenbankschulung? Softwareentwicklung 2
D Beispiele für Patterns Softwareentwicklung 3
K Aufwandsabschätzung für User Stories Softwareentwicklung 8
Torres SDK für automatische Bildkorrektur Softwareentwicklung 3
martin82 Tool für IT-Requests Softwareentwicklung 5
Z Welche Software für Web Anwendungen/Spiel Softwareentwicklung 3
Quaxli Suche Tutorial für Jasper Report - speziell iReport Softwareentwicklung 8
Outsourcer Webservertechnologie für Objekterkennung Softwareentwicklung 7
Landei SSH für VMware GSX mit Windows? Softwareentwicklung 2
ARadauer jetzt wirds zeit für Delphi Softwareentwicklung 6
X JavaScript Plugin für Eclipse Softwareentwicklung 3
sparrow Welche Lizenz für ein offenes Programm Softwareentwicklung 2
ARadauer Code Konvention für Datenbanken Softwareentwicklung 5
G Suche Programm für Masken Design für Pflichtenheft Softwareentwicklung 5
S Wie weiter gehen und tutorial für MVC Softwareentwicklung 20
G Pattern für Datenbank Anwendung Softwareentwicklung 22
m@nu Anti-Spam-System für Blog bauen Softwareentwicklung 3
B Was ist besser für Grafiken? Java oder C#? Softwareentwicklung 9
N Brauche Hilfe für Onlineshop Aufgabe für OOP Grundlagen Softwareentwicklung 4
N Für und Wieder von Java und .NET (primär C#) | Performance Softwareentwicklung 6
G 1 Benutzeroberfläche für 3 einzelne Programme! Softwareentwicklung 9
D Programme für UML Softwareentwicklung 3
A Was ist die richtige Lizenz für mich? Softwareentwicklung 2
R Tool für Anforderungsermittlung, Bugtracking und Test Softwareentwicklung 4
V Antwort bewerten (Nur etwas für Experten!) Softwareentwicklung 15
D cheat für ein spiel fixen Softwareentwicklung 19
F IDE für VB Softwareentwicklung 4
K Design Pattern für einen simple Rechenmaschine Softwareentwicklung 18
S Beispiel für MVC gesucht Softwareentwicklung 53
F Kleines Programm für Windows Softwareentwicklung 2
K Buch oder Online-Tutorium für Programmentwicklung (Anfänge) Softwareentwicklung 5
G Bitte Hilfe für mySQL in einem Query Softwareentwicklung 7
J Beispiel für Besuchermuster Softwareentwicklung 6
M Übersetzer für Programmhilfe gesucht Softwareentwicklung 2
M Disclaimer für eigene Programme? Softwareentwicklung 3
S Open Source Software für UML Softwareentwicklung 8
R Ein Thread für eine Methode Softwareentwicklung 2
S Hilfe für anfänger Softwareentwicklung 7
I regualar expression für Konstruktoren Softwareentwicklung 4
T Brauche für meinen Java-Code dringend Hilfe Softwareentwicklung 4
B Wo bekommt man fertige Java-Programme (z.B. für Lsg LGS) Softwareentwicklung 3

Ähnliche Java Themen

Neue Themen


Oben