Kleines Aktienspiel, Problem: Persistenz

Status
Nicht offen für weitere Antworten.
L

lohr

Gast
Hallo,


Also ich habe ein kleines Client - Server Spiel entworfen, der Server soll eigentlich nur die LoginDaten managen, zusätzlich die Aktien und ihre Kurse.
Der Client kann sich einloggen, soll seine Aktien angezeigt bekommen und die die noch verfügbar sind mit den Kurswerten(das ganze erstmal auf Textbasis, Grafik kommt später, alles schön schrittweise^^).
Nun mein Problem, zur Zeit spiele ich damit rum die Objekte in normale Dateien (txt) zu mappen, welches ich selben im Konstruktor der jeweiligen Klassen tue. Ich schätze mal das dies einfach nicht Gang und Gebe ist und würde mich interessieren welche Verfahren es noch gibt.
Beziehungsweise meint ihr das mein Server mit der ganzen Filehandling Sache ziemlich schnell "down" geht?
Er ist Multi Threaded programmiert (jeder Login bekommt seinen eigenen Thread).

Würde mich über eure Antworten und Tipps freuen.


Gruß Alex
 

DamienX

Aktives Mitglied
Hallo!

Die Frage habe ich mir auch einmal gestellt und ich kann dir nur empfehlen NICHT
die Serialisierung zu wählen.

Der Hauptgrund ist die serielle ID... solltest du irgendetwas an deinem alten "Dateiformat" ändern
stimmen die Checksums nicht mehr zusammen. Damit musst du die Methoden zum schreiben
und lesen ändern und zusätzlich sind (zumindest bei ObjectStreams) deine gesammelten Daten auch
Schrott.

Ich habe daraufhin eine Embedded Datenbank benutzt...
HSQLDB glaub ich war das! MySQL Lite ist glaub ich auch was in der Richtung.

Grüße Alex
 
L

lohr

Gast
Danke für die fixe Antwort.
Also aus der Richtung hab ich das ganze noch gar nicht gesehen...Was ich aber noch nicht ganz verstehe, die serielle ID bleibt ja immer gleich(sollte sie^^), jedenfalls in einem Lebenszyklus des Obejktes, warum verändert sich dann die Checksumme(sollte man die Dateistruktur ändern, müßte man doch zwangsweise "nur" einen Server Restart machen der dann die Objekte anhand der neuen "Regeln" mapped).

Werd mir mal die embedded SQL Dinger anschauen, was genau hab ich darunter zu verstehen?

Gruß Alex
 

DamienX

Aktives Mitglied
Die Sache ist die:

Wenn du Objekte in Dateien schreibst bekomm diese eine serielle ID zugewiesen...
Solltest du jetzt in deine Klasse ein neues Feld einfügen (was durchaus denkbar ist)
stimmt deine Klasse nicht mehr mit dem Objekt in der Datei zusammen und du wirst deine
Daten nicht mehr lesen können...

könnte mir vorstellen dass man dies umgehen kann indem man bei jeder Änderung des Klasse
die Klasse neu ableitet und dann die Alte konvertiert aber das wär mir persönlich zu umständlich.

Embedded DBs sind nix anderes als Datenbanken für die du keine Server brauchst....
Das heisst du verbindest deinen Server mit einer DB (muss auch nich unbedingt embedded sein)
und schreibst da deine Daten rein. Nebenbei hast du den Vorteil dass dein DBMS auf deine Daten
aufpasst.
 

DamienX

Aktives Mitglied
Ich weiß nicht wie weit du dich mit DB-Systemen auskennst aber falls du nicht viel Erfahrung
damit hast:

- sich in DB-Systeme und SQL einzuarbeiten mag ein Aufwand sein...
- aber wenn du einmal Datenbanken designen und einrichten kannst ist
das für komplexe Anwendungen eine seeehr gut genutzte Investition
deiner Zeit

Ein kleiner Tip vllt...
such dir wenn du in Datenbanken nicht bewandert bist ein einsteigerfreundliches System..
MySQL zb... da es hier viele Tutorials gibt. Die SQL Dialekte wandern auch leicht auseinander!

Ich benutze Oracle... liegt aber daran dass ich beruflich damit zu tun habe!

Grüße Alex
 
M

maki

Gast
Warum MySQL?

Hat eine der größten Abweichungen vom SQL Standard, in der Standard Konfiguration werden nicht mal Relationale Tabellen erzeugt sondern MyISAM Schrott... gibt doch soviele freie RDBMS...
 

DamienX

Aktives Mitglied
Gut bin mit MySQL noch nicht wirklich in kontakt gekommen aber wenn du das sagst glaub ich dir das =)
 
L

lohr

Gast
Okay also ihr habt mich überzeugt.
Was benötige ich dafür alles?
Ich schätze mal ab:
- Eine SQL Datenbank (zb MySQL)
- Treiber?
- zusätzliche API?

Hätte jemand noch ein gutes Tutorial?
Vielen Dank für eure Hilfe schonmal und wenn ich mit SQL auf die Fresse falle seid ihr schuld ^^

Gruß alex
 

DamienX

Aktives Mitglied
Hier der Artikel:

http://www.galileocomputing.de/open...22_001.htm#mj2fcd0f3478c5d311ea4f6aea90175960

JDBC heisst das Stichwort...
In dem Java Insel Artikel wird das (leider zwar leicht oberflächlich) eigentlich schön erklärt.
Hier wird auch HSQLDB benutzt.

Du brauchst:
- die JDBC API + Driver (je nach Datenbanksystem)
- ein DBMS (Database Management System) ... quasi deine Datenbankplattform
- paar SQL Grundkenntnisse

Sieht schlimmer aus als es ist...
 
L

lohr

Gast
Also jungs vielen Dank für eure Hilfe :)
Ich werd mich übers Wochenende mal dransetzen und euch dann mal am Laufenden halten, hoffe mal das funzt alles :)
 
L

lohr

Gast
So jungs, also das mit SQL war nen super tipp, ist leichter als gedacht ^^
Arbeite jetzt mit MySQL, JDBC und phpmyadmin.

Ich hätte ne kurze Design Frage.
Würdet ihr bei einer Client - Server Anwendung nur dem Server Zugriff auf die SQL Daten erlauben oder würdet ihr auch den direkten Zugriff vom Client zur Datenbank erlauben?

Client Anfrage -> Server -> SQL -> Server -> Client Antwort
Client Anfrage -> SQL -> Client Antwort

Durch die zweite Lösung hätte ich halt das Problem das ich das SQL Passwort in einer Klasse speichern muss die dem User mitgegeben wird...
 
G

Gast

Gast
mal abgesehen von dem sicherheitsproblem, bleibst du wesentlich flexibler, wenn die clients nur mit deinem applikations server kommunizieren und nicht direkt mit der datenbank.
 

Chimaira

Mitglied
in einem Spiel werden aber keinen vertraulichen Daten verwendet. Somit ist ein Sicherheitsproblem primär nicht wichtig.

Mfg Chimaira
 
G

Gast

Gast
Den Client direkt mit der Datenbank komunizieren lassen würd ich nicht machen.
Oder wie soll das laufen wenn zwei Clients auf die selben Daten schreibend zugreifen?
 

DamienX

Aktives Mitglied
Nein von direkten Datenbankzugriffen der Client Seite kann ich dir nur abraten.
Jeder normale Mensch der auf diesem Gebiet arbeitet würde dir das gleiche erzählen.

Frag die Daten am Server ab und gib sie an den Client weiter. Das is zwar ein Aufwand
aber so läuft der Prozess gesteuert ab.

Dass verschiedene Benutzer auf die gleichen Daten zugreifen wollen passiert auf großen
Systemen ständig. Das ist solange unkritisch bis du Transaktionen offen lässt.

Kurze Erklärung:

Wenn du eine Transaktion öffnest (UPDATE, INSERT INTO etc.) sperrt dein DBMS die
Daten für andere Zugriffe. Diese Sperre löst sich sobald du die Änderungen commitest oder
einen Rollback machst.

Tipp: Egal wann und wieso du deine Daten auf der DB änderst...
Sollte EGAL WO ein Fehler aus welchen gründen auch immer auftauchen ist
das erste was du tust einen Rollback zu machen.

Solltest du zb eine MessageBox als hinweiß vor den Rollback stellen und
der jenige welcher die MessageBox erhält nicht "wegdrückt" bleibt der Datensatz einfach gesperrt
und niemand kann auf die Daten und Referenzen des Datensatzes zugreifen.

Grüße
 
L

lohr

Gast
Ok vielen Dank für eure Antworten!
Sowas in der Richtung hab ich mir schon gedacht...wollte gerne noch eure Rat hören :)

Was mich weiter zur Datenbank Architektur bringt.
Also ich habe folgendes Modell vor:

Datenbanken
User
Enthält die Login-Informationen wie allgemeine Sachen(Geld, Erstellungsdatum, email, nick, pw...)
xxxxx_Aktien
Nun möchte ich für jeden neuen User eine eigene Tabelle anlegen mit dem Namen: Nick_Aktien.

Somit ist eine Datenbank alleine für die Account Daten verantwortlich die anderen für die Aktien des Users. Kann man das so machen?
Mein Problem war das ich nicht weiß wieviele Aktien ein einzelner User hat und somit kann ich keine Felder wie "Aktie1" "Aktie2"...in der User Tabelle mitaufnehmen.

Gruß lohr
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
M Kleines Spongebobspiel / Hilfe gesucht Spiele- und Multimedia-Programmierung 2
Kenan89 Kleines Game Spiele- und Multimedia-Programmierung 26
Kenan89 Kleines Projekt für Java Spiele- und Multimedia-Programmierung 5
D [JOGL 2.0] Kleines Problem mit freier Flugsteuerung Spiele- und Multimedia-Programmierung 3
U [JOGL 1.1.1a]Kleines Problem mit Text Overlays: Spiele- und Multimedia-Programmierung 19
R Netzwerkstruktur für ein kleines Spiel Spiele- und Multimedia-Programmierung 8
J Brauche denkanstoß für kleines grafikframework Spiele- und Multimedia-Programmierung 3
J Tips für ein kleines Pong-Applet Spiele- und Multimedia-Programmierung 4
Steev Performancetest: Kleines Spielchen Spiele- und Multimedia-Programmierung 25
L Kleines RTS Game -> Netzwerkproblem Spiele- und Multimedia-Programmierung 5
E Kleines Multiplayer-Beispiel für jPCT Spiele- und Multimedia-Programmierung 20
Apo Kleines Graphenspiel Spiele- und Multimedia-Programmierung 3
A Kleines Denksportspiel Spiele- und Multimedia-Programmierung 6
M Testet mal mein kleines Memory Spiel ... Spiele- und Multimedia-Programmierung 14
DEvent ein kleines Billiard Spiel und die bewegungen der Kugeln Spiele- und Multimedia-Programmierung 3
A [HILFE] - Minecraft-Problem! Spiele- und Multimedia-Programmierung 1
C Plugin Problem Spiele- und Multimedia-Programmierung 2
J JLayer Problem Spiele- und Multimedia-Programmierung 1
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
G Low Poly 3D LWJGL Shader Problem Spiele- und Multimedia-Programmierung 4
O Problem beim Aufrufen des Spiels von einem Menü Spiele- und Multimedia-Programmierung 7
G LIBGDX Texturen Problem Spiele- und Multimedia-Programmierung 1
G LIBGDX Problem beim resizen des Frames Spiele- und Multimedia-Programmierung 3
C AutoClicker Problem Spiele- und Multimedia-Programmierung 2
S OOP Logik Problem Spiele- und Multimedia-Programmierung 5
G LIBGDX Viewport Problem Spiele- und Multimedia-Programmierung 3
J Problem mit Game Of Life Spiele- und Multimedia-Programmierung 3
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
C Minecraft Minecraft Plugin Problem Spiele- und Multimedia-Programmierung 17
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
V Problem mit BufferStrategy Spiele- und Multimedia-Programmierung 2
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
E A-Stern Algorithmus Problem und Implementierung einer Map Spiele- und Multimedia-Programmierung 6
T LWJGL 2.9.2: Seltsamer Effekt beim Rendern (VertexShader Problem?) Spiele- und Multimedia-Programmierung 3
W Generelles Problem: Entscheidungsfindung Spiele- und Multimedia-Programmierung 4
T Problem bei Kollisionsabfrage Spiele- und Multimedia-Programmierung 4
C Vier Gewinnt Problem mit Ordnerstruktur Spiele- und Multimedia-Programmierung 2
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Sound Problem Spiele- und Multimedia-Programmierung 3
T Problem beim Aufbau des Spielfelds Spiele- und Multimedia-Programmierung 18
M Sound Engin Problem 2 Spiele- und Multimedia-Programmierung 2
J Problem bei der GUI - Zu viele Spielbretter Spiele- und Multimedia-Programmierung 2
D LWJGL gluLookAt "Umschauen" Problem Spiele- und Multimedia-Programmierung 0
D Problem mit Würfelanimierung in LWJGL Spiele- und Multimedia-Programmierung 7
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
0 Boxen übereinander stapelt Problem Spiele- und Multimedia-Programmierung 5
D Textfield im Game ,Problem: while-Schleife Spiele- und Multimedia-Programmierung 3
R 2D platformer - enemy damage -> TIMER PROBLEM Spiele- und Multimedia-Programmierung 3
S LWJGL Kamera Problem - Alles verzerrt Spiele- und Multimedia-Programmierung 4
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
Seikuassi LWJGL-Problem Spiele- und Multimedia-Programmierung 2
L Minecraft Minecraft Plugin programmieren (Craftbukkit 1.7.2) Problem Spiele- und Multimedia-Programmierung 4
B Minecraft mehr Ram zuweißen Problem Spiele- und Multimedia-Programmierung 0
K Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 3
Y Problem mit repaint() in run() Spiele- und Multimedia-Programmierung 2
T Problem mit Kollisionsabfrage der NPC Spiele- und Multimedia-Programmierung 1
J Minecraft Problem mit dem JRE - Minecraft Spiele- und Multimedia-Programmierung 3
TheSorm Problem mit 2 classen NullPointerException Spiele- und Multimedia-Programmierung 1
S Problem mit 4 gewinnt(MinMax Algorithmus) Spiele- und Multimedia-Programmierung 2
N Problem in der Main.class Spiele- und Multimedia-Programmierung 1
J Blöcke, Hitboxen, Koolisionsabfrage - Problem Spiele- und Multimedia-Programmierung 8
S Problem mit 3d-Polygon Spiele- und Multimedia-Programmierung 2
A Problem mit Sound Spiele- und Multimedia-Programmierung 5
C Nxt Duell Problem Spiele- und Multimedia-Programmierung 4
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
ruerob Problem bei Fade-Out von Sounds Spiele- und Multimedia-Programmierung 3
L [Slick2D] Problem bei Speicherfreigabe Spiele- und Multimedia-Programmierung 2
M Bukkit Plugin Problem Spiele- und Multimedia-Programmierung 22
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
J Problem bei pixelgenauer Kollisionsabfrage Spiele- und Multimedia-Programmierung 10
F Problem mit dem Abspielen von byte[] (Audioprogrammierung) Spiele- und Multimedia-Programmierung 2
C Problem mit Abspielen von Audio-Dateien Spiele- und Multimedia-Programmierung 3
R Problem bei Farbe ändern/4Gewinnt Spiele- und Multimedia-Programmierung 5
R StringIndexOutOfBoundsException - Problem Spiele- und Multimedia-Programmierung 2
S Problem mit Sichtfeld/Licht in einem Raster Spiele- und Multimedia-Programmierung 5
G Acht-Damen-Problem HILFE! Spiele- und Multimedia-Programmierung 11
A TileMap KeyListener - Problem Spiele- und Multimedia-Programmierung 2
J Problem mit Threads Spiele- und Multimedia-Programmierung 8
N Problem mit Kollisionsabfrage beim Fallen Jump & Run Spiele- und Multimedia-Programmierung 5
S Problem mit Zeitsteuerung der Game Loop Spiele- und Multimedia-Programmierung 4
Fu3L Problem mit 3D Noise Spiele- und Multimedia-Programmierung 4
L Problem beim Rätsellöser Spiele- und Multimedia-Programmierung 3
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
T Problem bei LinkedList / JPanel Spiele- und Multimedia-Programmierung 4
T Problem mit ClassLoader und LWJGL Spiele- und Multimedia-Programmierung 5
M Scrolling Repaint Problem Spiele- und Multimedia-Programmierung 2
Samake03 [Problem] layeredPane bzw. Viewport Spiele- und Multimedia-Programmierung 3
Helgon glTexParameter / glTexImage2D Problem Spiele- und Multimedia-Programmierung 11
T Jmonkey opengl problem Spiele- und Multimedia-Programmierung 13
M Problem mit Kamera (glMultMatrix (OpenGL/ LWJGL)/ Quaternionen) Spiele- und Multimedia-Programmierung 5
M Problem mit Gameserver / Datensynchronisation Spiele- und Multimedia-Programmierung 10
G Mein erstes minigame -> problem mit Methode Spiele- und Multimedia-Programmierung 3
X Geometry Wars Clone Problem Spiele- und Multimedia-Programmierung 4
H Problem mit JMonkeyEngine3 und OgreXML Spiele- und Multimedia-Programmierung 3
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
T Problem mit JnR-Steuerung / KeyListener Spiele- und Multimedia-Programmierung 6
D Problem Mit Miensweeper Clone & rekursive Methode Spiele- und Multimedia-Programmierung 4
M Performance Problem bei BufferedImage Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen

Neue Themen


Oben