Re: Help with deceiding on best solution
- From: "Paul G. Tobey [eMVP]" <ptobey no spam AT no instrument no spam DOT com>
- Date: Mon, 28 Nov 2005 16:20:35 -0700
No, the client is always establishing the connection. Since you have no
fixed IP address, there's no way that the server, unless the client connects
first and 'registers', can possibly connect to the client; can't be done.
Well, it *will* establish a TCP connection to interact with a Web server.
HTTP is a TCP-based protocol. I'm not sure what you're getting at with
that, however. If you create a socket connection to, say, port 4000 on a
server, then try to talk to a Web server, you have to open another
connection, at the Web server is listening on port 80, not 4000. The
logical connection is between precisely one process on each end.
3. Even with TCP, it *will* be a lot more than 10 characters. The size of
the Ethernet header is 14 bytes, as I recall, and the TCP header layered on
top of that brings the total overhead to something like 48 bytes. So, if
you send 'a' byte, you're wasting a huge amount of bandwidth. This is why
the TCP stacks on every machine try to roll data into the largest packets
they can, delaying transmission of the first batch of data for a while,
unless it's already a big batch, in hopes of combining it with the next
batch into a single packet. You'd be much better off piling up all of the
data that you know you need to send and sending it with a single send()
operation. Yes, though, Web Services has a greater overhead and is a
text-based protocol, which you might not wish to use to minimize total bytes
sent.
That depends on the server's memory, mainly, and processor, I'd say. I've
never tried to maintain that many connections and you wouldn't want to
either, if some of them are GPRS connections. You want the client to
connect, get what it needs to get, transmit whatever data it has, then get
the heck off the network. If you run into a situation where a single
machine can't keep up with the continuous traffic level, you can probably do
some sort of load balancing and plug a couple of machines in. No doubt the
high-traffic Web sites do this.
Paul T.
"matvdl" <matvdl@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:950B716E-6F9E-421C-8E11-28DEAD92BEF8@xxxxxxxxxxxxxxxx
> Paul,
>
> Thanks very much for your help.
>
> The problem that I am still having is working out if WebServices can be
> two
> way e.g - the client makes a call to the server and the server responds
> with
> some information - and the server initiates a call to the client and the
> client responds with some information - remember that we don't have a
> fixed
> IP address.
>
> Is it possible to get the Client to establish a TCP connection and then
> use
> webservers over this connection?
>
> a very small delay would be up to 5-10 seconds(worst case)
>
> 3. Have had allot of trouble with this one - say if I want to transmit 1
> 10
> character string - using webservices I might do this by call a procedure
> and
> sending the character string. How much data would this send over the
> wire.
> If I do this in raw format over TCP I don't believe that it will be much
> more
> than 10 characters.
>
> As another side question - if 2-way coms was possible by establishing a
> TCP
> connection and maintaining it - do you have any idea what the limitations
> on
> a server if for maintain TCP connections - is 10, 100, 10,000???
>
> Thanks for the time you have already taken in answering my questions.
>
>
> --
> matthew
>
>
> "Paul G. Tobey [eMVP]" wrote:
>
>> I'm not familiar with WSE3, but I don't find WSE in the help for Windows
>> CE
>> 5...
>>
>> Based on your description, it seems to me that a central server, located
>> in
>> your office and with a registered domain name is the right way for
>> devices
>> to connect. That is, you have a server whose IP address is resolved from
>> www.energymanagement101.com. When a device wants to send an update of
>> some
>> data, it uses DNS to resolve this domain name into an IP address, then
>> connects a socket to a listening port (known to the devices), on your
>> server. You might use secure sockets to hide the content of the
>> messages.
>> In this arrangement, the devices are never contacted by any outside host,
>> so
>> they're very resistant to attack. As long as there is not a DNS spoof of
>> some sort, causing www.energymanagement101.com to map to a false server,
>> there's no way for someone to get in the way. Since the devices are
>> always
>> acting as clients and never as servers, the lack of a fixed IP address
>> for
>> each client is irrelevant.
>>
>> #3 is up to you!
>>
>> You must define what you mean by #5. What does "a very small delay"
>> mean?
>> That might mean ms, in which case, I think you're completely out of luck,
>> or
>> a few seconds, in which case, depending on where the devices are relative
>> to
>> the server and how loaded the Internet is between the two, should be
>> doable.
>> In any case, you can *never* count on some sort of deterministic reponse
>> over the Internet, so you must handle the case of loss of connectivity,
>> slow
>> data transmission, etc. If you can't handle that, you'll have to lease
>> dedicated lines from each location to your office to assure that some
>> sort
>> of denial of service attack can't slow you down.
>>
>> Paul T.
>>
>> "matvdl" <matvdl@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
>> news:BA8A3175-B7EE-42B4-B12B-E14565030755@xxxxxxxxxxxxxxxx
>> > Hello all,
>> >
>> > I am about to embark on a reasonably large project - I operate an
>> > energy
>> > management business and need to install remote controls at a large
>> > number
>> > of
>> > my clients sites.
>> >
>> > My plan is to utilise windows CE devices at the clients sites - they
>> > should
>> > be low in cost, reliable (as they have no moving parts) and the
>> > development
>> > process should be relatively straight forward - it should also make the
>> > communications to the devices simpler and allow me to extend the
>> > functionality well into the future.
>> >
>> > The devices will have a number of communication options - these include
>> > GPRS
>> > modem, clients internet connection via wireless of RJ45 - or GPS modem.
>> >
>> > The area that I still need to finalise is the method of communication
>> > and
>> > the technology to use. The following will be true
>> >
>> > 1. Communications will need to be over the internet
>> > 2. The internet connection will often use a clients internet
>> > connection
>> > therefore there will be no ability to have a fixed IP address on the
>> > devices
>> > 3. It must efficient - if the communication is over GPRS the costs of
>> > transmitting data will be high
>> > 3. There will be a large number of devices - the system needs to be
>> > scalable to 100,000's of devices
>> > 4. The remote devices will need to send information to our office
>> > 5. We will need to be able to send info to the devices with a very
>> > small
>> > delay
>> > 6. Communications must secure - it will be critical that no one can
>> > hi-jack
>> > and control the devices
>> >
>> > I have investigated the new WSE 3 and this sounds like a good option
>> > for
>> > communication?? It appears to have the security requirements and
>> > easily
>> > scalable to manage the communications for this many devices - can
>> > windows
>> > CE
>> > take advantage of the security features of WSE 3.
>> >
>> > Any help from those that may have some experience in these matters
>> > would
>> > be
>> > very appreciated.
>> >
>> > --
>> > matthew
>>
>>
>>
.
- References:
- Re: Help with deceiding on best solution
- From: Paul G. Tobey [eMVP]
- Re: Help with deceiding on best solution
- From: matvdl
- Re: Help with deceiding on best solution
- Prev by Date: Re: Interop technic withan array of Point ???
- Next by Date: Concurrency Violations in SqlCeDataAdapter
- Previous by thread: Re: Help with deceiding on best solution
- Next by thread: Strange SQL Server CE 2.0 Problem
- Index(es):
Relevant Pages
|