Sitter och skissar på ett distribuerat system och är allmänt förvirrad kring huruvida jag fastnat i ett gammalt tänk som anser att remoting, webservices och SOA känns mer problematiskt än givande. Jag tycker spontant att SOA med Webservices i Dotnet vore en bra lösning. Skriv mycket komponentbaserat och bryt ut funktioner i mindre delar. Nu kan du lätt koppla på WinClient/Webb-applikation. Okej att XML är lite pratigt men min erfarenhet är att en sådan lösning presterar bra och du kommer inte få skumma problem med lösningen i framtiden. T ex problem med brandväggar osv. Kryptering får du till på ett enkelt sätt med IIS/Https. Du bör också innan du börjar ta en ordenligt titt på WCF http://wcf.netfx3.com/ >...är att serversidan ska vara tillgänglig över Internet. Ska ta en kik på WCF lite mer grundligt och vilka krav som ställs på en sådan serverlösning (servern får utöver OS inte ha några extra licenskostnader). Klienten ska vara en WinForm applikation som ska kunna köras över Internet mot serverdelen, givetvis även på LAN. WCF har möjlighet att pusha ut information till redan uppkopplade klienter, så det låter som det är det du vill använda. jo, och det funkar för det mesta, sitter som bäst och meckar med en sån lösning och slåss med fallen när det inte riktigt funkar.. (förhoppningsvis är det bara jag som missat nån liten detalj.. WCF är sist och slutligen rätt stort med massa konfigurationsmöjligheter...)Remoting... eller kanske klassisk TCP?
Beskrivning av mitt system:
Kärnfunktionen är ett administrativt program som hanterar textinformation (entiteter som speglar verksamheten) och filer (skicka/ta emot från serverdelen). Utöver detta tillkommer exempelvis Instant Message-funktioner (IM) samt olika typer av notifieringar som enbart påverkar vissa grupper av klienter/användare. Någon form av session-hantering och kunskap huruvida en användare är inloggad eller ej är alltså viktig.
Mina tankar:
...är att klienten ska utvecklas med C# (WinForms) framför J2SE pga. bättre integration med Windows.
...är att lösningen inte kommer att kommunicera med andra lösningar (i dagsläget).
...är att serversidan ska vara tillgänglig över Internet.
...är att all kommunikation sker krypterad.
Mina funderingar:
Jag har bland annat tittat på remoting. Anser att denna metod fungerar utmärkt för kärnfunktionaliteten där klienten hela tiden anropar "servern" vid behov. Men servern har också behov av att kontakta klienterna, dessutom specifika klienter i olika situationer och här känner jag att delegates blir en väldigt förvirrande lösning. Av den anledningen går mina tankar tillbaka i tiden och en traditionell client/server-lösning över TCP känns relevant, i C# eller i Java som jag tycker har utmärkt hantering av TCP.
Jag behöver vägledning! :) Har jag missat någon självklar lösning här eller tänker jag helt fel?Sv: Remoting... eller kanske klassisk TCP?
Sv: Remoting... eller kanske klassisk TCP?
på bilket sätt?
Det viktiga är ju mer om än hur... :-) Ex Om tillgängligheten med serversidan skall nås över internet
så är OM en websida? Då blir hur ev en WebService då det är smidigt och enkelt.
Men OM är win32 app eller andra mer slutna apps m.m. skulle iof en webservice fungera bra men
även vanlig tcp remoting... Allt handlar ju oxå om prestanda/antal användare m.m.
Kör med Windows Communication Fundation så har du ökad flexibilitet om du vill ändra kommunikationskanal.
Val av teknisk speglar alltid kraven... Både servermiljäns krav på brandvägg o portar samt applikationens krav ut mot kunden eller användaren...
Så att ge ett direkt konkret svar på sina fråga anser jag lite svår... Och att bara använda nått för att någon säger använd bla för det är blö... så är mitt tips. Kolla mer på kraven, kanske du har ett krav som tvingar dig att använda webserivce, eller kanske ett krav gör att du inte kan använda webservice m.m.
Mvh JohanSv:Remoting... eller kanske klassisk TCP?
När det gäller WebServices ser jag ett problem där: Servern måste kunna, på eget initiativ, skicka info till klienterna och då specifika mottagare. Där ser jag att man skulle kunna använda Remoting, men att det kanske blir lite rörigt med många delegates/events... Men det är ju en designfråga.
Tittade lite på en MQ lösning igår men såg ingen direkt vinst i det.
Tack för feedback, ska ta och kika lite mer på WCF.Sv: Remoting... eller kanske klassisk TCP?
Sv:Remoting... eller kanske klassisk TCP?