Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


"Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 09:40:40 - Björn Johansson, i forum c# (c-sharp), Tråden har 11 Kommentarer och lästs av 834 personer

Lite kryptisk rubrik kanske, men det var svårt att hitta nått passande.

Vad jag vill uppnå är ungefär följande:
Har byggt en serverkomponent som var 5:e sekund läser in realtidsdata (GPS) från COM/USB port samt kombinerar lägesinformationen med några andra uppgifter (som ID mm). Så långt inga problem.
Frågan är då hur jag skall lagra denna information på ett sånt snabbt och resurssnålt sätt (både för servern och klienten) så att informationen blir tillgänglig att använda från en webbsida (asp.net i c#).

Det rör inte om stora mängder data alls men eftersom uppdateringen sker (minst) var 5:e sekund och skall vara tillgänglig för många klienter som läser informationen samtidigt bör det inte vara så tungrott.

Som jag gjort nu skrivs informationen till en XML-fil på servern. Webbapplikationen läser således i sin tur mot denna XML-fil var 5:e sekund för att få den senaste uppdaterade informationen.

Frågan är då vad som egentligen är smidigast (snabbast)?
Alternativet är att helt enkelt använda en text-fil för ändamålet, TextReader i C# är ju rätt snabbt och resurssnålt (eller?).
Har även tillgång att göra en databaslösning med Oracle. Detta kanske inte är så resurssnålt och snabbt i alla lägen men det finns anda fördelar med en databaslösning.

Så för att summera det hela en aning.
Vill alltså att min serverkomponent skall "strömma" ut informationen och att alla som besöker en webbsida skall komma åt den kontinuerligt uppdaterade informationen med, säg, 5 sekundersintervall.

Tacksam för synpunkter och förslag!


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 10:01:59 - Ulf Elfving

Har precis sjösatt ett nästan exakt liknande projekt

Använd Cache objektet för att lagra det du vill spara för att spara resurser

Kollla mitt sista inlägg i [Lagra datatabell i Cache?] (Iofs VB.NET och SQLServer, men det kanske inte är så lurigt att översätta)

Angående textfiler så använder jag vanliga textfiler som jag sätter in i cachen med FileDependency, vilket gör att cachen uppdateras när filen ändras (Lite om det hade jag i [Sätta/hantera Cacheobjekt i klassfil?] ) Men koden för SetCacheData hade jag utelämnat där, så jag lägger till den här:

<code>
Private Sub SetCacheData(ByVal FileName As String, ByVal ChacheName As String)


Dim strText As String
Dim sr As StreamReader
Dim arrSchemaValues As Array
Dim i As Integer

' Kontrollera att filen finns
If File.Exists(FileName) Then

'Maxgräns för antal loopningar 20 * 250 ms = 5 sekunder
For i = 0 To 20

Try
' öppna filen

sr = File.OpenText(FileName)
' läs in hela innehållet i strText
strText = sr.ReadToEnd()

' stäng StreamReader
sr.Close()

' Ersätt " och vbcrlf, det som återstår är data som är tabbseparerad
strText = strText.Replace("""", "")
strText = strText.Replace(vbCrLf, "")

' Lägg in värdena i array
arrSchemaValues = Split(strText, vbTab)

' Lägg till array i Cache och bind den till filen
Current.Cache.Insert(ChacheName, arrSchemaValues, New CacheDependency(FileName))

' om vi kommer hit har läsning fungerat och vi bryter oss ur loopen
Exit For

Catch e As Exception

'Ett fel uppstod så vi låter sidan sova 0,25 sekunder för att sedan anropa samma sub
System.Threading.Thread.Sleep(250)
'Call SetCacheData(FileName, ChacheName)

End Try

Next

End If

End Sub

</code>

Anledningen till att jag har parametern ChacheName i funktionsanropet är att jag "labbar" med 5 stycken filer, och sätter då olika Cache-objekt beroende på filens namn.


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 11:34:42 - Björn Johansson

Jag måsterkänna att jag inte riktigt hänger med var text-filerna kommer in i bilden i ditt fall.
Det är alltså i databasen som den uppdaterade information hela tiden först lagras i?

Men tackar så mycket för förslaget, skall helt klart kolla upp det hela.


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 11:58:59 - Ulf Elfving

Vi har en "dubbel-lösning"

Jag hämtar data från en databas (Oracale i produktion/SQLServer i testmiljön) och från textfiler.

Textfilerna skrivs ner till en undermapp på webservern av ett externt program som hämtar data ur en annan Oracledatabas.

Textfilerna uppdateras var 30 minut, och datat i databasen var 5 sekund.
Data ur databasen hämtar jag bara var tionde sekund för närvarande eftersom det räcker.


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 15:49:31 - Björn Johansson

Ok, då är jag med =)

Då lutar det nog mer åt en databaslösning (Oracle) eftersom det kanske kan vara uppåt 50-100 användare som skall komma åt realtidsinformationen samtidigt var 5:e sekund under, säg, 10 minuter i snitt (grovt uppskattat).
Oracle är väl liksom byggt att klara anstormningar av det här slaget (?).
Fast å andra sidan är det inte så värst stor mängd (antal poster) som skall hämtas varje gång.


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 15:53:18 - Ulf Elfving

Skulle tro att du lätt klarar dig med textfiler som uppdateras, iom att du använder cachen och dom bara uppdateras när filen skrivs.

Men frågan är ju lite prestandamässigt vad som tar mest tid. Att skriva ner data till disk (fil) och hämta data därifrån, eller att hämta datat direkt från databasen. Skulle nog tro att direkt kontakt med databasen är att föredra för prestandan i slutändan ändå.

Jag kommer att ha ca 600 samtidiga användare med mitt system, och det märks knappt i databasen att jag hämtar data var femte sekund.


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 16:00:38 - Björn Johansson

Men då läser alltså dina ca 600 samtidiga användare från textfilerna om jag uppfattat det hela rätt?
Det är liksom där skon klämmer känns det som. Vad är bäst, låta flera hundra användare läsa från en text-fil på servern eller en Oracletabell var 5;e sekund?

I mitt fall rör det sig som sagt om ca 100 (kan iofs bli 600 också) användare som under en relativt lång stund skall titta på när "datat" ändrar sig.


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 16:14:34 - Ulf Elfving

Nej det är det som är det fina med Cacheobjeketet

Jag cachar hela datatabellen (nja, de kolumner som jag behöver) i mitt CacheObjekt

Det mot databasen har jag tidbegränsat till 10 sekunders "levnadstid"

Det innebär att den första request som kommer till sidan så läser jag från db, lagrar allt jag behöver i Cache
Nästa request som kommer inom 10 sekunder läser från cache eftersom den ännu inte "dött"
Det gör att om jag har 1 miljon hits på sidan / 10 sekunders intervall, görs bara en läsning från databasen.

Vad gäller filer så "dör" cachen där när filen får ett nytt timestamp, filen skapas på nytt eller ändras.
Det gör precis samma sak som mot db, inga mer läsningar mot filen så länge den inte är förändrad.

Hoppas jag förklarat så att du förstår


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 16:24:10 - Björn Johansson

Jajjemänn, nu fick jag absolut svar på det jag ville veta.
Ska läsa på lite om cache objekt.
Tackar och bockar för hjälpen.

Är ursprungligen från Luleå så jag vet att en pitbo alltid är att lite på... ;)


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-13 17:20:52 - Ulf Elfving

Hehe! (Är iofs ingen ursprunglig Pitbo, men känner mig mer hemma här nu efter ett antal år "nere vid Pite-älva")
Är det nåt du undrar över så bara hojta =)


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-15 17:03:16 - Joacim Ahlberg

Blev nyfiken..... Hur har du löst kommunikationen mellan ditt mätobjekt och servern? GPRS? ..

mvh
/Jocke


Svara

Sv: "Realtidsdata" till tunna klienter (webbläsare)...

Postades av 2004-07-17 12:28:17 - Björn Johansson

Jo, om/när allt skall köras skarpt är tanken GPRS, alternativt andra källor som i sin tur får lägesinformationen genom GSM/GPRS.
Under utveckling används "fejkade" rutter.
Mycket jobb och en del frågetecken återstår...speciellt eftersom systemet skall kunna hantera flera (mät)objekt såklart...

Om du (jocke) själv har erfarenhet utav detta får du gärna dela med dig utav dessa ;)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
985
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies