Inter Component interaction

  • Thread starter Thread starter richard
  • Start date Start date
R

richard

Hi,

I am about to start developing an n-tier system. And was hoping to get an
insight into the best ways of doing this.
Inparticular, I want to know how I can develop classes/component to be
deployed on different servers which will interact with eachother. What is
the best mode of interaction? i.e. remoting or web services or other? If I
go ahead and deploy the layers on separate servers am I right in thinking
that scalability will increase but speed will depreciate?

Regards,
Richard
 
Hi david,

At the moment I am weighing up the ads/disads of passing Datasets. As I
havent undertaken this kind of interaction b4 I was wondering how I can get
the two to communicate - Remoting , Web services or other?

I anticipate that I will use windows integrated security.
No Firewall - but what would I have to do if there was one?

cheers
Richard

David Williams said:
This is a failly hard question to answer. What kind of data will you be
passing back and forth? Will you be crossing a firewall? What kind of
security do you require? And I am sure that I missed a number of other
issues that need to be resolved before the question can truely be answered.
Oh, and yes, there will be a preformance hit of some kind. However,
depending on the hardware and communication setup due to scaling reasons,
you may see an increase in preformance. Hard to tell.
 
Ok, let's see.

Remoting is good if your are sure that you will be on the same side of a
firewall. If a firewall is in place, then you have to either a) punch
holes in the firewall to allow the data to pass back and forth
(Sometimes quite hard to do, depending on your [or your clients] IT
department) or b) use ports that are already open for your use.
(Normally not a good idea as these are defined for other usage - IE
browsing the web.) Remoting does not require IIS installed on the
server.

Web Services are good if you are behind a firewall. Uses XML normally
wrapped in SOAP for transport. Requires IIS on the server. I believe
that they (Web Services) run under the ASPNET user, and if that is so,
then there is a number of security issues that may have to be solved to
allow file system access if that is needed.

Other means that I have used or looked at include MSMQ (message queues).
Very good if you need to insure that the data gets there, regardless
of network failures. Typically you will not want to pass a lot of data
in either direction when using MSMQ. Can be hard to set up correctly.
Does require (for the normal programmer) a slightly different approach
to the way you design your application to get the full benefits from,
but can handle hugely scalable systems when done correctly. In my
opinion is the most robust means of interprocess communications, but not
one that I use regularly due to the overhead and prelim design
requirements.

Datasets can be used if you are not carrying a lot of data. You do not
normally want to push huge amounts of data over the network for
performance reasons. Datasets are nice as they are a pre-defined
object, and often have the functionally that one wants built in.
However, in a lot of cases, they are overkill. There is a fair amount
of processing required to use Datasets. If the application(s) do not
already use them, they can add more burden than they relieve.


HTH

David
 
Back
Top