Why are three tier client/server architectures better for the web?
146982
Back in the eighties when network equipment vendors first started to hawk their wares, the term client/server was used to conjure up a host of fancy capabilities offered by the new hardware. Today, client/server has a very specific meaning that has nothing to do with hardware at all. Even so, most folks still associate the term client with the physical computers they are using and the term server with some other physical computer to which they are connected. There's a glimmer of truth there, to be sure, but today client/server means much more.\n\nWe're going to cover the essentials of client/server computing. We'll define one-tier, two-tier, three-tier, and n-tier client/server program architectures; we'll explain the difference between a thin client and a fat client; and we'll discuss the middleware concept. But first, you need to understand a few things about general software architecture.\n\nMost application programs have three major layers. On top is the presentation layer, which provides the human/machine interaction (the user interface). The presentation layer handles input from the keyboard, mouse, or other device and output in the form of screen displays. In the middle is the application or business logic, the functionality that gives the application program its character. Application logic makes the difference between an order entry system and an inventory control system, for example; it is often called business logic because it contains the business rules that drive a given enterprise. The bottom layer provides the generalized services needed by the other layers, including such things as file services, print services, communications services, and, perhaps most important, database services.\n\nFor simplicity, we will confine this discussion just to those programs needing database services. That's what most architects first think of when they hear the term client/server, but the general rules apply to any kind of service.\n\nThe number of tiers in a client/server application is determined by how tightly or loosely the three program layers are integrated. A one-tier application is one in which the three program layers are tightly connected. In particular, the presentation layer has intimate and detailed knowledge of the database structure. The application layer is often interwoven with both the presentation layer and the services layer. All three layers, including the database engine, almost always run on the same computer.\n\nOne-tier applications are easy to design and write, especially with today's modern software tools. It's also possible to create a multiuser one-tier application by running the application on several PCs and having them share the database. The database can be stored either on one of the PCs (a peer solution) or on a file server. Note that each PC running the application has its own copy of the database engine; only the data is shared, not the database logic itself.\n\nMultiuser one-tier applications are okay until the number of users gets large. The problem is that all the database work is performed in each client. For example, if the program needs to list all clients with the last name of Smith, all the information (indexes and data records) needed to resolve that query to the database must be transferred over the network. For some complex queries, a significant amount of data must be examined, perhaps even the entire database. At a more technical level, it is difficult to manage independent database engines to be sure that no conflict arises when two clients attempt to access or update the same record. This is called the record-locking problem.\n\nThe solution for the performance and technical problems associated with multiuser one-tier programs is two-tier client/server architecture. This type of application is written in mostly the same way as a one-tier application, with the exception that the database service (engine) no longer runs with the client. Instead, it
588199
Well, it really depends on what sort of thin clients you are getting, or if you're getting more of a wise client.  Yes, thin clients are typically more limited, but this is desireable from an IT Professional standpoint.  What it translates to is that the end-users will be able to cause less trouble and still do what he/she needs for the purpose of the jobs.\n\nIf you have a powerful-enough server, that isn't over-burdened by too many clients, you should have fairly fast performance, depending on what exactly you are doing.  The machines shouldn't have much of a hard drive at all, and really only need a decent graphics card, and minimal RAM and processor speed.\n\nIn actuality, thin clients ARE NOT more expensive that PC bundles for several reasons.  First of all, you need very minimal system specs for these thin clients.  Secondly, upgrades are usually done on the server end, so your business really only needs to upgrade one machine.  The IT department saves lots of money by more easily deploying updates and maintainence from a central unit.  Also, depending on how your setup is, they can purchase far less software licenses, because it is only the servers that need the license.  This means that (MS Office for example) the software cost drops from $300 * 50 machines to just simply $300.  Of course, there is the cost of the server software, but if you have enough clients, the savings over time is quite lare.
295710
The main difference between a mainframe and a server is that a mainframe can run for years without a scratch, it's more secure, you can use any kind of software on it and much more. They are usually used inside huge companies because they cost a lot! The fact that some companies started prefering servers is only because they want to make more profit. I mean instead of buying 3 mainsframes they could buy 30 servers that could do the work for some time, and then if everything goes well they either change their mind and want to buy mainframes or servers again and again! I don't see any other reason!
964196
Doesn't the whole concept of 3-tier computing need it to exist?\nApplication layer = business rules - highly important
239149
short answer is yes.  The reason some companies have multiple servers is because they may have ALOT of exchange mailboxes and it is required.  There are tons of small businesses out there that have exchange, their web site, their applications, domain controller, etc, on one server.\n\nand security is an issue if you have multiple services on one computer, since you have to open up ports to that server for soem of them to work... ie 80 for web, 21 for ftp, smtp, etc
1184418
As stated, all of these technologies would be usable by you for free.  The java core technologies are free to use (as are a number of middle-tier / application servers you may need) and since you wouln't be redistributing any mysql components (or embedding it in anyway) I believe it would be cost-free for you to use as well.  \n\nAs for servers I currently use both 1&1 and Rackspace (though not cheap) with more than adequate results.
476724
There's no appreciable difference in the performance of ASP.NET 2.0 versus 1.1.\n\nHowever, you need to keep pace with changes in the .NET Framework; eventually, Microsoft will stop supporting older technologies.\n\nASP.NET 2.0 has a significantly better collection of layout controls; has very useful, cross-platform navigation controls; has significantly more convenient methods of data access and display; makes it far easier to create custom components and handlers; and has simplified many of the more common controls, such as those used for input and data handling.
748932
definitely, PHP. (If you have to choose from these three that is - otherwise, I would have voted for perl). \nWhen you talk about web, and/or text processing, php (or perl) is THE tool for you. Nothing comes close in ease of use, and effectiveness (of both run-time and development). \nSeveral pages of a C++ or java  program are usually translated to 2-3 lines of perl or php.\n... and no, there are no "security issues",  if your server is configured properly. And if it isn't, you've got issues regardless of language. To be viable, security must be provided by the web server, not by application. \n\nYour other choices have their problems.\nJava is cumbersome, ineffective, memory hungry, unstable... to name a few. You'd be really much better off with C++ than java, especially, since you already know it. Java doesn't have any advantages over C++, except for some perceived "simplifications", that are really just functional deficiencies - such as luck of memory management options or multiple inheritance.\n\n.NET... hmmm.... hope, you are not serious. All I can say, stay away from micro-soft stuff as much as you can. It can bring nothing but sorrow.
920254
They actually use many standard technologies that you and I would use (html, javascript, flash) but they also have proprietary languages which they themselves have developed. They often do this to meet special needs from their company such as improved performance, greater security, and better presentation.\n\nNow when I say proprietary I mean usually a language not built from scratch but one that is actually a new hybrid of existing technologies like maybe they mix cold fusion with C++ so that they could create a robust transaction system for adwords or something. \n\nIt costs a bit of money to build these hybrids which is why you only see the real major players being able to do this effectively (in general). To us as consumers see a nice layout and easy experience often times one transaction can include 4 different technologies (one for presentation, one for data capture, one for online processing and one for storage).\n\nBeing that most of these systems are unique, I don't think anyone can fully state all the technologies these companies use. However many of them do use mainstream languages as I mentioned earlier.... html, php, cold fusion, .net languages, flash etc.\n\nHope this helps answer your question.
65287
Hmmm not really... it depends on which applications you are gonna use with your computer, if you are gonna use it with newer applications then it may outweigh the benefits of it being a server computer. As the newer applications need more processing power. Which the new cheap pc's are available to do. But if you are going to use applications let say such as hosting for a simple dynamic website then it would still do the job. Also probably if it's a minor database... \n\nIt would be helpful if you know the specs too... that way you can know if it can handle the applications you bought it for
415880
1. Added complexity (one more potential point of failure).\n2. Requires client to have JavaScript installed/enabled.\n3. Increased bandwidth useage. (This is more of a concern for your server than for you clients). \n4. The framework and tool support is still immature.
192670
Most people think of it as software with a web-browser\ninterface and server-based computations.\n\nThere can be variations on that theme in that the UI\nmight be client-based Java or javascript (so that some\nof the computations are performed on the client).  But\nthe important distinction is that the user doesn't \nhave to buy/load/administer any client-side software.
1108203
Yes, with asp.net 1.1 and 2.0 you can build up applications following a 3-tier architecture concept.\n\nThe use of 3-tier architecture empowers you with the flexibility to adapt your application in a modular fashion, ie without having to change the all code just because, for example, you want to be able to connect to different database engines.\n\nBy the consequent implementation of data providers in asp.net, you don't have to mix up connection strings and data queries with your logic code.\n\nMore on this topic under:
658856
the below link explains the difference between web servers and streaming media servers
35994
I don't think either is any better. It all depends on the what you want to do and what environment you want to do it in.\n\nIf you want a more open source environment you might look at JSP running on an Apache web server for example. Otherwise, you might be leaning towards ASP.Net, which is a bit more proprietary and needs some version of IIS. I think I have heard of some plugin or extension that allows ASP.Net applications to run on an Apache server. As for PHP it will run anywhere with almost no setup.\n\nAll three languages are very flexible in terms of what you can do with them.\n\nPHP has been around for a long time and has become very robust. http://www.php.net hosts a magnificent library of the built-in functions that extend the PHP framework.\n\nJSP is based off of the Java language, which can sometimes be a bear to learn, but allows for a very interactive user experience. JSP also has a strong library of work that can be easily built off of.\n\nAll anyone really talks about when talking about ASP.Net is its framework. .Net has very robust framework that allows you to easily extend user controls as well as any built-in types or methods.\n\nIn terms of documentation, PHP and JSP have really good documentation because of its user base. So it is fairly safe to say that if you can't find it in the documentation is has probably can't be done. .NET, on the other hand, has a lot of documentation, but you are better off looking through a book or some forums for help.
253856
PHP is good if you only want DYNAMICS, but when you are talking of Business Logics and Web based Applications then you must opt for ASP.NET or JSP/Servlets
930685
You have to ask the right question.\n\nHow do your users use the LAN they are on? Server based applications? Internet access (ie. Mail, browsing, web apps, etc?)\n\nIf they use server based apps then file sharing is more important.\nIf they use the Inet then network apps is more important.\n\nIf you are the SysAdmin it is your job to make everything work for your user community. They are your customers!