Discussion:
Distributed application
(too old to reply)
Joris Dobbelsteen
2005-10-01 17:27:03 UTC
Permalink
Dear,

I have some considerations I need to take designing a distributed
application (it's for a school project). Basically I'm looking for some
reference or guidiance material/literature and advises on (potential) issues
I should take caution for.

The design involves a distributed simulation application. It simulates
sheeps in a pasture, together with dogs, wolves and shepherd. The pastures
contain grass. There are also multiple pastures with gates between them.
This requires a lot of computations and there are some requirements for the
subject. Therefor the application needs to be distributed.
We decided to use dotNET for the project together with dotNET remoting.
Basically the application needs to have the pastures divided over multiple
systems. The pastures are connected with gates and creatures in it can look
into other pastures when they are close enough to the edge. A open
consideration is how the creatures should be distributed over the systems as
there exists the risk of all creatures ending up in a single pasture. It's
also an open question who is going to do the calculations. There is no
intend to use a database server.
It seems that the design of the application is very critical for the rest of
the project and I'm looking for any references or advice on desiging such an
distirbuted application. Moreover since it seems to be so different form
many distributed business applications where storage is mostly central.
Next I'm worried how good dotNET remoting is up the task in these kind of
designs.

Any help is highly appreciated,

- Joris
Duane Arnold
2005-10-01 20:25:33 UTC
Permalink
Post by Joris Dobbelsteen
Dear,
I have some considerations I need to take designing a distributed
application (it's for a school project). Basically I'm looking for
some reference or guidiance material/literature and advises on
(potential) issues I should take caution for.
The design involves a distributed simulation application. It simulates
sheeps in a pasture, together with dogs, wolves and shepherd. The
pastures contain grass. There are also multiple pastures with gates
between them. This requires a lot of computations and there are some
requirements for the subject. Therefor the application needs to be
distributed. We decided to use dotNET for the project together with
dotNET remoting. Basically the application needs to have the pastures
divided over multiple systems. The pastures are connected with gates
and creatures in it can look into other pastures when they are close
enough to the edge. A open consideration is how the creatures should
be distributed over the systems as there exists the risk of all
creatures ending up in a single pasture. It's also an open question
who is going to do the calculations. There is no intend to use a
database server. It seems that the design of the application is very
critical for the rest of the project and I'm looking for any
references or advice on desiging such an distirbuted application.
Moreover since it seems to be so different form many distributed
business applications where storage is mostly central. Next I'm
worried how good dotNET remoting is up the task in these kind of
designs.
Any help is highly appreciated,
- Joris
ISBN 1-59059-145-3 and there is one for C# too I have used them both. You
can download the CSLA Framework put it together and do the project, which
you can look under the hood and see how .NET Remoting and other .Net
features can be used for distributed applications on the Internet,
Intranet or LAN. You have to have Win 2k Pro, XP Pro workstation or Win
2K3 Server, because the project is using IIS and COM+. You could use
MySQL as the database instead of MS SQL Server. You should use some kind
of database for your *Cow* project. :)

A .Net Remoting book wouldn't hurt either.

Duane :)
Lloyd Dupont
2005-10-02 01:40:14 UTC
Permalink
Post by Joris Dobbelsteen
The design involves a distributed simulation application. It simulates
sheeps in a pasture, together with dogs, wolves and shepherd. The pastures
contain grass. There are also multiple pastures with gates between them.
is the grass eat by the sheep?
and slowly replenish?
looks funny hey!
Post by Joris Dobbelsteen
This requires a lot of computations and there are some requirements for
the subject. Therefor the application needs to be distributed.
I guess distribution is more for fun. unless you've got over a few million
sheeps, that is.
Post by Joris Dobbelsteen
We decided to use dotNET for the project together with dotNET remoting.
good choice.
Post by Joris Dobbelsteen
Basically the application needs to have the pastures divided over multiple
systems. The pastures are connected with gates and creatures in it can
look into other pastures when they are close enough to the edge. A open
consideration is how the creatures should be distributed over the systems
as there exists the risk of all creatures ending up in a single pasture.
It's also an open question who is going to do the calculations. There is
no intend to use a database server.
well what calculation exactly are you speaking of?
from what I guess from what you said I will say: sheeps and pasture are
associated with one computer.
if 1 sheeps is one other's computer's pasture it is still managed by its own
computer,

anyway that's really a question only you could answer after carefully
considering your project.
just mae it flexible enough so you could experiment different configuration.
Post by Joris Dobbelsteen
Next I'm worried how good dotNET remoting is up the task in these kind of
designs.
on one hand .NET remoting is certainly slower than home made protocol over
socket.
but:
1. if each iteration requires millions of exchange of information even low
level socket communication won't work
2. otherwise .NET be remoting should be fast enough and, above all, you will
be able to experiment different method over the wire in 5 mimunte of
programing instead of 5 days every time you want to change just 1 thing....
3. you might have to do a special .NET Remoting - UDP broadcasting stuff,
though..
Joris Dobbelsteen
2005-10-02 12:08:04 UTC
Permalink
Post by Lloyd Dupont
Post by Joris Dobbelsteen
The design involves a distributed simulation application. It simulates
sheeps in a pasture, together with dogs, wolves and shepherd. The
pastures contain grass. There are also multiple pastures with gates
between them.
is the grass eat by the sheep?
Yes
Post by Lloyd Dupont
and slowly replenish?
Yes
Post by Lloyd Dupont
looks funny hey!
You got no idea.... This is the most fun thing I will be doing the coming
months.
Mostly it involves that the sheep die and reproduce too...
Post by Lloyd Dupont
Post by Joris Dobbelsteen
This requires a lot of computations and there are some requirements for
the subject. Therefor the application needs to be distributed.
I guess distribution is more for fun. unless you've got over a few million
sheeps, that is.
Somewhat yes, its a required part of the subject. The most important part
Post by Lloyd Dupont
Post by Joris Dobbelsteen
We decided to use dotNET for the project together with dotNET remoting.
good choice.
Post by Joris Dobbelsteen
Basically the application needs to have the pastures divided over
multiple systems. The pastures are connected with gates and creatures in
it can look into other pastures when they are close enough to the edge. A
open consideration is how the creatures should be distributed over the
systems as there exists the risk of all creatures ending up in a single
pasture. It's also an open question who is going to do the calculations.
There is no intend to use a database server.
well what calculation exactly are you speaking of?
Computing the simulation steps, such as replentishing grass, letting sheeps
walk, eat, reproduce, die. Letting dogs, sheppard and wolves walk en such.
These computations are dependend on the state of the sheep and the
surroundings.
Post by Lloyd Dupont
from what I guess from what you said I will say: sheeps and pasture are
associated with one computer.
if 1 sheeps is one other's computer's pasture it is still managed by its
own computer,
anyway that's really a question only you could answer after carefully
considering your project.
just mae it flexible enough so you could experiment different
configuration.
Post by Joris Dobbelsteen
Next I'm worried how good dotNET remoting is up the task in these kind of
designs.
on one hand .NET remoting is certainly slower than home made protocol over
socket.
1. if each iteration requires millions of exchange of information even low
level socket communication won't work
2. otherwise .NET be remoting should be fast enough and, above all, you
will be able to experiment different method over the wire in 5 mimunte of
programing instead of 5 days every time you want to change just 1 thing....
3. you might have to do a special .NET Remoting - UDP broadcasting stuff,
though..
Loading...