Re: Client Server Architecture versus Multi Tier Architecture



Thank you guys for your input. You guys are terrific and I appreciate
all your input.I agree that if we were to decide to eliminate Citrix
server we will have to pretty much re architect the current
application.

I am encouraged to hear that Eduardo is also using citrix server for
client server application? with databases as big as 80GIG, I am
interested to know how many users are accessing that database, just so
that I get an idea, in our case it could be upto 1000 users and the
database size would also probably be around 80 Gig.

Guillem, you asked me what our communication requirements are, let me
try to answer this, as far as our cuurent application majority of the
processing is done on the SQL Server after the processing is done we
send the result back to the clinet in most cases its certain values
that are sent back to the client to populate the fields in the client
screen in cases of reports we actually send result sets back to the
client which could be several thousands of rows depending on the
report. Let me know if that is what you meant by communication
requirement. I agree I am asking a very wide question and I dont
expect a yes or a no, but just a general idea to determine if we were
to eliminate Citrix server wouldnt a three tier architecture be the
solution?

Guillem you also asked me about the software requirement, and the
requirement is our application will have to support users from
different parts of USA to access the aplication and right now it is
being done with the help of citrix servers and the users connect to the
citrix server and run our client server application but they do not
want to use Citrix server any longer.

Our current software is a thick client witten in Delphi, if we were to
change the architecture what are the different software tools that we
need to look at for turning this thick client to thin client. .net
comes to my mind, however we would like to use something that could be
easily converted or do we pretty much have to scrap the existing client
side coding and start over.

Finally, there were some article in the internet where it said client
server application is best suited for upto 100 users, is that correct?
And I was also curious if you guys had any ideas on if the number of
users increases what would be the best thing to do in client server
environment to make it better.
Thanks
Guillem wrote:
shubtech@xxxxxxxxx wrote:

Thank you for for responding to this.

Let me ask you this, since this (current) client server application
will have to be accessed from different regions of USA, is it even
possible to pull it off with a client server architecture.
Right now it is being done with the help of citrix server.

it depends a lot on your app architecture and communication
requirements. There is no magical answer for that...


Doesn't that requirement alone pretty much requires us to make it a 3
tier web application where the users could access the application
through browsers?

Not sure about what requirement we are speaking about here. Still, a
middle-tier makes it easier to program web apps that would access the
database, since they do not need to also program the logic to handle
the data, only to present it.


What are the limitations of a client server architecture?



In regard to multi-tier? The major limitation is you need to program
everything, from presentation to data handling from scratch (well,
unless you reuse code). Also the client isn't as thin as it could be in
a multi-tier environment, roles are not as separated as they could be,
etc.

You could consider the analogy of networks. Why is their architecture
separated in layers (tiers)? Because:

- having a physical layer allows the link layer to simply send and
receive the information between nodes, without having to concern about
how the electrical signal should be sent.

- having a link layer allows the network layer to simply send and
receive the information from/to origin/destination, without having to
concern about how to send the information to the next node.

- having a network layer allows the app layer to simply tell it what
information and where to send it, without having to concern about
routing and so on.


Multi-tier is more or less the same idea, i.e.,

- you have a database layer/tier, which stores and serves the
information. It really has no idea what the client or the middle-tier
do with it.

- you have a middle-tier which retrieves the information from the
database layer and serves it to the client as needed. Ergo all the
logic involved in communicating with the database is controlled by the
middle-tier. It's the only part that knows about both the client and
the database existence. Still, it does not know what the client does
with it.

- you have a client tier which presents the information to the user and
allows interaction as needed. It knows absolutely nothing about the
database layer and really does not need it. It needs no code to work
with the database, thus becoming thinner.



However, what Eduardo said is also true. Using a middle-tier implies
you'll need connection pooling and load balancing. There are already
some solutions out there which provide you with it, some of them even
free (Midware from Francois Piette comes to my mind).


--
Best regards :)

Guillem Vicens Meier
Dep. Informática Green Service S.A.
www.clubgreenoasis.com
--
Contribute to the Indy Docs project: http://docs.indyproject.org
--
In order to contact me remove the -nospam

.



Relevant Pages

  • Re: Help with first VB application - Data Entry form
    ... I assumed a desktop / winform client application ... time' stamp from the database machine - control machine ... ... problem solved - web server is control system. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Help with first VB application - Data Entry form
    ... I assumed a desktop / winform client application ... time' stamp from the database machine - control machine ... ... problem solved - web server is control system. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Remobjects v KBM
    ... >> client query components) follow from that. ... Then, connections can be created to say SQL Server, Oracle, Interbase and ... can then be created from the abstract dataset definition in 'customers' to ... implicitly - this makes your code not be database connection specific). ...
    (borland.public.delphi.thirdpartytools.general)
  • Re: Help with first VB application - Data Entry form
    ... stamp from the database machine - control machine ... ... unnecessary data to the client ... ... and when building a database independent UI / Client - Server application, ... JavaScript, for example) and thus, will get the time from the web server, ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Opinions needed about the best "Middleware suite" kbmMW vs. RODA
    ... kbmMW supports cross db in such way that all you need to do in your application is to set one property to switch to ... What one have to concentrate about is minimizing the amount of data moved from the app server to the client. ... C/S setup's usually have a quite active chatter going on between the client and the database, ...
    (borland.public.delphi.thirdpartytools.general)