.net - Remote Management and Data Capture: WCF, SQL Sync, SyncFramework, BITS or something else? -


we have few thousand windows xp client machines on various customer sites running interactive software instrumented collect anonymous usage data. client machines use old, old, old client-server software uploads data internet-based server, pushes configuration info down them , can ask clients tasks reboot.

in essence, have following features (in pseudo c#/idl):

interface iclienttoserver {   void logusage(clientmachinename, anonymoususerid, pair[] usagedata, starttime, endtime);   void logerror(clientmachinename, errormessage);   void loguptime(clientmachinename, boottime);   datetime syncclock(clientmachinename, timezone); }  interface iservertoclient {   void updatesettings(pair[] settings);   bitmap getscreenshot();   void reboot();   string execute(cmdline); } 

..but code has reached end of life (fragile, unmaintainable due lack of skills).

we embark on greenfields, start-with-a-clean-slate project rework software using modern tools, sdks , frameworks.

we have functional requirements, are:

  1. .net based environment due available engineering resources.
  2. firewall-friendly - can talk 'out' client sites our internet-based server on http/80 , internet access flaky relatively poor client bandwidth. vpns unpopular our customer base.

we rather overwhelmed sheer number of technologies leverage here: .net remoting, .net web services, wcf, sync framework, sql pub-sub, sql sync, bits, etc.

we use insight technology choices best suit design here.

is there 'natural' fit?

i'd go wcf. configure use basic http. when needed can change bindings @ either end, can use different protocol communication. makes flexible. can choose host wcf service in way suites needs (iis, nt service, or other .net process can come with). also, wcf setup , .net gives tools need communication, don't have little plumbing possible.


Comments

Popular posts from this blog

ruby - When to use an ORM (Sequel, Datamapper, AR, etc.) vs. pure SQL for querying -

php - PHPDoc: @return void necessary? -

c++ - Convert big endian to little endian when reading from a binary file -