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


Kommunikation mellan applikationer

Postades av 2005-05-05 12:46:14 - Tony Tomasoni, i forum c# (c-sharp), Tråden har 9 Kommentarer och lästs av 647 personer

Jag har två fristående applikationer som använder samma databas. Jag vill att de ska utbyta information till varandra då någon har uppdaterat databasen. Tex app1 informerar app2 att app1 lägger in en ny post i databasen och vice versa. Vilken är den bästa lösningen?


Svara

Sv: Kommunikation mellan applikationer

Postades av 2005-05-05 14:17:27 - Andreas Håkansson

Tony,

Hmm "bästa lösningen" är svårt att säga då det finns många metoder för att göra detta. Några exempel på hur man kan göra är

* Använd sockets för att skicka meddelande (kan vara tcp/ip eller udp)
* Sätt upp och använd en meddelande kö med MSMQ (Microsoft Messaging Queue)
* Använd MailSlot (kommer kräva p/Invoke till Win32). Beskrivningen på en MailSlot är

"A mailslot is a mechanism for one-way interprocess communications (IPC). Applications can store messages in a mailslot. The owner of the mailslot can retrieve messages that are stored there. These messages are typically sent over a network to either a specified computer or to all computers in a specified domain. A domain is a group of workstations and servers that share a group name.

* Använd Pipes (kommer kräva p/Invoke till Win32). Beskrivningen på Pipes är

"A pipe is a section of shared memory that processes use for communication. The process that creates a pipe is the pipe server. A process that connects to a pipe is a pipe client. One process writes information to the pipe, then the other process reads the information from the pipe. This overview describes how to create, manage, and use pipes."

* Använd en delad fil. Lägg en fil på ett, för dina program, känt ställe och övervaka den för förändringar med hjälp av en FileSystemWatcher (finns en klass med det namnet i .NET). På så sätt kan man trigga en förändring.

* Använd .NETs inbygga Inter Process Communication (IPC) mekanism som heter Remoting

* Skicka custom windows meddelande mellan applikationerna..

Det finns fler sätt att göra det på, men jag är övertygad att något av de ovanstående metoderna kommer uppfylla dina behov.


Svara

Sv:Kommunikation mellan applikationer

Postades av 2005-05-05 16:16:29 - Tony Tomasoni

Tack, ska läsa in mig på förslagen. Som jag misstänkte så finns det många varianter. Det hade varit fint med lite tips om en bra lösning. Det är inte mycket information som ska skickas endast att typ ett "event" har inträffat.

Tanken är att man så småningom även ska kunna uppdatera databasen från webben. När databasen är uppdateras ska applikationerna hämta ny information från den. Uppdateringarna kommer att ske oregelbundet dvs de kan komma tätt eller dröja flera timmar mellan dem.


Svara

Sv: Kommunikation mellan applikationer

Postades av 2005-05-05 19:21:02 - Andreas Håkansson

Tony,

Om det är två .NET applikationer så hade jag definitivt tittat på remoting


Svara

Sv: Kommunikation mellan applikationer

Postades av 2005-05-05 21:52:48 - Simon Dahlbacka

det beror väl också lite på vad du använder för databas. Tex så om jag inte minns helt fel så har Firebird (databasen, inte webbläsared som förr hette så) stöd för nån sorts events.


Svara

Sv:Kommunikation mellan applikationer

Postades av 2005-05-05 23:24:11 - Tony Tomasoni

Det är inte databasen som ansvara för informationsöverföringen utan det ska ske på applikationsnivå.


Svara

Sv: Kommunikation mellan applikationer

Postades av 2005-05-06 08:35:59 - Magnus Gladh

Bästa lösningen är nog att se över designen/aritekturen och se om du inte kan bryta ut din dataaccess att placeras som en central services. Typ en SOA lösningen där servicen har som ansvara att sköta alla kommunikation mot databasen. Nu tänker många att det är onödigt att använda sig av webservices för detta, men en SOA lösning måste inte bygga på webservices utan kan mycket väl bygga på både Remoting eller DCOM/COM+ om man vill det istället.

Mitt förslag till lösning blir alltså att bygga en DataAccess service som ligger som en egen centralt placerad service på en maskin någonstans (Windows NT Service är ett utmärkt ställe att hosta den i). Denna service har sedan en del event som alla dina applikationer kan lyssna på, typ UpdatetDataEvent, InsertedDataEvent och/eller DeletedDataEvent. Så länge du är inom samma nätverk så är .NET Remoting vägen att lösa det på, då den har bra stöd för event hanteringen.

Om du sedan använder dig av en O/R Mapper i din dataaccessservice så blir det enkelt för dig att bygga i en caching mekanism i servicen så du spara lite prestanda mot databasen, samt att du faktiskt får en bättre prestanda över Remoting istället för att använda dig av DataSet/DataTables. Datareader är en NO NO att skicka vidare över remoting.

Om du inte kan bryta ut din dataaccess från de olika applikationern så skulle jag nog implementera löst kopplade event i COM+ för att lösa problemt eftersom du då inte får en stark bindning mellan dina 2 applikationer.

- M


Svara

Sv:Kommunikation mellan applikationer

Postades av 2005-05-06 16:24:53 - Tony Tomasoni


Låter som en bra lösning, det är kanske så det ska gå till.
Är den någon som har ett förslag på en bra O/R Mapper.


Svara

Sv: Kommunikation mellan applikationer

Postades av 2005-05-06 16:45:45 - Magnus Gladh

Det finns en del, både gratis och kommerciella, jag har skrivit min egen (väldigt enkel) som inte kan allt som de kommerciella men som täcker mina behov. Kul samt lärorikt.

Men vilken som är bäst vet jag inte, tyvärr..


Svara

Sv:Kommunikation mellan applikationer

Postades av 2005-05-06 17:16:59 - Andreas Håkansson

NPersist www.npersist.com väldigt trevlig och enkelarbetad.


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 165
27 952
271 704
1 270
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