ercizMedlem sedan maj 20011 826 inlägg Funderade lite på att göra ett klient-server-program, där det kan vara ett flertal klienter som opererar mot samma databas.
Hur gör man ett sånt system på bästa sätt?
Alternativen är väl:
-
Kommunikation som Web services över http och ha en webbserver som server.
-
Göra ett eget kommunikationsprotokoll och skriva ett serverprogram som hanterar kommunikationen.
-
Flytta all logik till klienterna och bara installera databasen på servern, t.ex. MySQL.
Alternativ 3 borde väl vara lättast? Finns det nackdelar? Alternativ 2 känns svårast men mest prestanda-effektiv, och Alternativ 1 känns som mest modern just nu. Hur hade ni gjort?
Ge f*n i 3)! Det är en direkt säkerhetsrisk. Även om du kör med en inloggning av npgot slag innan man kommer åt databasen så kan vem som helst som har dessa uppgifter också komma åt hela databasen, och snoka eller ställa till med oreda därefter.
- verkar bäst, då du enkelt kan skriva om klientkoden, om du ser till att servern bara har grundläggande funktionalitet, och du använder något ramverk för XML-kommunikationen. Självklart ska all säkerhet ligga på serversidan, som att kolla att användaren verkligen har tillgång till det data som den försöker komma åt.
ercizMedlem sedan maj 20011 826 inlägg
nitro2k01 skrev:
Ge f*n i 3)! Det är en direkt säkerhetsrisk. Även om du kör med en inloggning av npgot slag innan man kommer åt databasen så kan vem som helst som har dessa uppgifter också komma åt hela databasen, och snoka eller ställa till med oreda därefter.
Ah, det förstår jag. Men i det här fallet handlar det om ett klient-server-program där alla delar finns på ett LAN bakom en brandvägg och alltså inte är åtkomliga utifrån.
Min första tanke var att börja med 3) för att enkelt få igång ett system, och sen vidareutveckla till 1), det behöver inte betyda så stora skillnader i klientkoden, bara i de metoder som ska hantera kommunikationen med servern/databasen. Men det kanske är en dålig lösning iallafall, har själv ingen erfarenhet av en sån implementation.
Men finns det något bra alternativ att lösa det på förutom de tre som jag räknade upp? CORBA och Java RMI och liknande är väl i princip ersatta av web services nu, eller?