Kom ihåg mig?
Home Menu

Menu


Flytta databasgränssnitt från webben till

Ämnesverktyg Visningsalternativ
Oläst 2007-03-18, 21:05 #1
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
Jag ansvarar för ett webbaserat orderhanteringssystem åt ett företag. Jag utvecklade det själv för ett par år sedan, och har kontinuerligt utökat och underhållit det. Det är i sin nuvarande version skrivet i php och bygger på databaser i MySQL. Kunderna kan via en hemsida lämna ordrar och företagets personal kan via en annan sida expediera ordrarna och se diverse statistik och information. Så långt inget märkvärdigt på något sätt.

Jag har nu funderat på om det vore möjligt att låta företagets gränssnitt till systemet vara ett fristående program istället för en websida. Eftersom kunderna fortfarande lämnar ordrar via hemsidan skulle databasen ligga kvar på webhotellet, så programmet behöver komma åt den där. Jag har gjort en del i Java och C# tidigare, men inte använt JDBC (som jag tror behövs i det här fallet).

I dagsläget är motiveringen för det hela främst att slippa begränsningen av att det är websidor (antingen behöver man använda sessionsvariabler, eller skicka en massa saker med POST, och det blir lätt väldigt rörigt om man skulle råka klicka på webläsarens bakåtknapp m.m.) samt - inte minst - att själv lära mig mer om databaser tillsammans med fristående applikationer.

Kanske finns det bättre sätt, men i det nuvarande systemet öppnar jag en anslutning till databasen varje gång en php-sida "körs", och utför alla SQL-kommandon, stänger anslutningen, och visar resultatet i html.

Hur skulle det fungera i ett fristående program? Måste man öppna en anslutning och stänga den igen för varje gång programmet vill köra en SQL-fråga? Eller räcker det att öppna en anslutning när programmet startar och stänga denna när programmet avslutas? Eller är det timeout på databasen på servern då?

Krävs det speciella inställningar i databasen för att tillåta SQL-anrop från ett annat ip-nummer än den egna servern? Eller räcker det att logga in som en användare med tillräckliga rättigheter?

Alla tankar och tips som kan leda mig vidare tas tacksamt emot!
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-18, 21:30 #2
Tetsou Tetsou är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2005
Inlägg: 18
Tetsou Tetsou är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2005
Inlägg: 18
MSHTML läs mer om det här: http://blog.sc.tri-bit.com/archives/163

Tror detta är den enklaste lösningen
Tetsou är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-18, 21:53 #3
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
Måste säga att jag inte förstår hur du menar, Tetsou...
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-18, 22:09 #4
Charlie Charlie är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 701
Charlie Charlie är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 701
Tetsou pratar om att lägga in en IE-komponent i din applikation. Så att dina användare öppnar en vanlig applikation som i sin tur innehåller ett nedskalat internet explorer som öppnar samma sida som vanligt.

Jag ser inte hur det skulle kunna lösa dina problem.
För att besvara dina andra frågor.
Citat:
Hur skulle det fungera i ett fristående program? Måste man öppna en anslutning och stänga den igen för varje gång programmet vill köra en SQL-fråga? Eller räcker det att öppna en anslutning när programmet startar och stänga denna när programmet avslutas? Eller är det timeout på databasen på servern då?
Du behöver inte öppna en ny anslutning för varje fråga. Du öppnar anslutningen -> Gör vad du vill -> Stänger anslutningen. Jag vet inte hur det fungerar med timeouts, förmodligen beror det på vilken databasmotor och ramverk du använder.

Citat:
Krävs det speciella inställningar i databasen för att tillåta SQL-anrop från ett annat ip-nummer än den egna servern? Eller räcker det att logga in som en användare med tillräckliga rättigheter?
Varje användare i MySQL har en inställning för varifrån de får ansluta.
Charlie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-18, 22:10 #5
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Jag tror att han försöker berätta för dig att han tycker du ska köra allt på webben i fortsättningen också och kommunicera via en inbäddad IE i din applikation. Ignorera honom då han uppenbarligen inte läst ditt inlägg och verkar tro att du vill göra en stand-alone app för att kunden vill ha det medans du ju i själva verket vill något annat.

Att du pratar om JDBC tolkar jag som att du tänkt använda Java. Hur det funkar där vet jag inte, men i .Net får du en connectionpooling kopplad till connectionsträngen så du öppnar/stänger förbindelser i din kod precis som om du bara behövde dem just då och .Net frameworket kommer hålla en förbindelse öppen om det behövs. Att ha en öppen förbindelse till databasen är knappast avgörande prestandamässigt så det är bara att jobba "som vanligt".

Ja din MySQL server måste tillåta access för en databasanvändare från ett annat IP än bara localhost. Det kan ju vara samma användare som du använder nu om du vill, men IP:t måste tillåtas. Se GRANT kommandot i mysql.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-18, 22:34 #6
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
Citat:
Jag tror att han försöker berätta för dig att han tycker du ska köra allt på webben i fortsättningen också och kommunicera via en inbäddad IE i din applikation. Ignorera honom då han uppenbarligen inte läst ditt inlägg och verkar tro att du vill göra en stand-alone app för att kunden vill ha det medans du ju i själva verket vill något annat.
Precis, weblösningen fungerar bra idag, men jag är nyfiken på andra alternativ.

Förstår att databasanslutningarna ligger i en pool, men antag att jag i min applikation skulle vilja köra en sql-fråga var tionde sekund. Är det rätt uppfattat att bästa sättet är att öppna/hämta anslutningen från poolen, köra frågan och lämna tillbaka anslutningen varje gång? Ska jag göra på samma sätt om frågan skulle köras varje sekund istället?

Är det för övrigt någon som har tips på tutorials eller liknande för att läsa från/skriva till befintliga databaser från Java (eller C#). De tutorials jag har hittat hittills har tagit allt från början och försökt förklara vad en databas är och hur sql-kommandon används. Det blir lite tröttsamt...
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-22, 09:52 #7
knivstawebhotell.se knivstawebhotell.se är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2007
Inlägg: 4
knivstawebhotell.se knivstawebhotell.se är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2007
Inlägg: 4
Citat:
Originally posted by etanders@Mar 18 2007, 22:05
I dagsläget är motiveringen för det hela främst att slippa begränsningen av att det är websidor (antingen behöver man använda sessionsvariabler, eller skicka en massa saker med POST, och det blir lätt väldigt rörigt om man skulle råka klicka på webläsarens bakåtknapp m.m.) samt - inte minst - att själv lära mig mer om databaser tillsammans med fristående applikationer.
Om inte dina kunder har efterfrågat en migrering bort från websidor så skulle jag i ditt ställe noga överväga om detta är värt besväret eller inte. Har kunderna behov av dessa program från olika plattformar eller är det bara en plattform? Websidebaserad lösning är ju himla smidig i portabilitetshänseende.

Varför blir det rörigt om man klickar på bakåtknappen? Kan du inte designa det hela så att det inte blir rörigt?
knivstawebhotell.se är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-23, 19:15 #8
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
Citat:
Om inte dina kunder har efterfrågat en migrering bort från websidor så skulle jag i ditt ställe noga överväga om detta är värt besväret eller inte. Har kunderna behov av dessa program från olika plattformar eller är det bara en plattform? Websidebaserad lösning är ju himla smidig i portabilitetshänseende.
OK, jag formulerar om mig lite. Det nuvarande systemet fungerar bra och kunden är nöjd. Men det finns lite funktionalitet som ännu inte är implementerad. Det är inte något högprioriterat i stunden, utan mer sådant som eventuellt skulle kunna läggas till inför nästa säsong i verksamheten.

Min tanke var att implementeringen av detta skulle vara enklare för mig som utvecklare om jag slapp allt vad hemsidor heter (sessionsvariabler, html-formulär, POST, och annat jobbigt) och kunde skriva det som ett "vanligt" program. Dock skulle jag fortfarande behöva ha åtkomst till MySQL-databasen på webhotellet.

Detta program skulle användas hos kunden på <10 datorer, och portabilitet är inget som behöver tas särskild hänsyn till i detta specifika fall.
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-23, 20:22 #9
knivstawebhotell.se knivstawebhotell.se är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2007
Inlägg: 4
knivstawebhotell.se knivstawebhotell.se är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2007
Inlägg: 4
Citat:
Originally posted by etanders@Mar 23 2007, 20:15
Min tanke var att implementeringen av detta skulle vara enklare för mig som utvecklare om jag slapp allt vad hemsidor heter (sessionsvariabler, html-formulär, POST, och annat jobbigt) och kunde skriva det som ett "vanligt" program. Dock skulle jag fortfarande behöva ha åtkomst till MySQL-databasen på webhotellet.
Det finns en mängd olika API:er för att kommunicera med MySQL. Om brandväggen hos ditt webhotell tillåter åtkomst till databasen samt om användarna på databasen har åtkomsträttigheter från "nätet" så borde implementeringen i det "vanliga" programmet vara det enda återstående jobbet...
knivstawebhotell.se är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 08:33.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017