Whatever they say, but today’s computing world is focused mainly on networked applications. These applications are based on a modified client-server architecture. The so-called three-tier architecture. Its distinctive feature is the presence of an application on the server side. In fact, it implements the business logic in the application server environment. The application communicates with the database server on one side and with the remote client. It is usually executed in a web browser or GUI application environment with dataxdev – outsource net development.
The proliferation of the three-tier architecture has led to the creation of two competing technologies – J2EE and COM +. Both are application servers, where most of the logic needed to provide connectivity is implemented. Each of these servers provides the programmer with a set of rules that he must follow when implementing the application logic. In other words. A modern application server is a repository of components implemented according to certain rules.
Why do you need an application server at all and why can’t you provide direct user access to data?
There are at least three reasons for this.
First of all, for data caching, which can significantly reduce the load on the database server. And, accordingly, on the computer that is the physical storage of your data. Of course, this works as long as the application server is installed on a different computer.
The second reason why this technology is so popular today is the ability to both isolate business logic from the client application. And it helps to avoid writing complex stored procedures on the server side. Of course, today the various SQL dialects implemented on database servers allow you to do everything or almost everything with the data. In practice, these are quite powerful procedural languages based on ANSI SQL92.
But there are at least three drawbacks to implementing logic using stored procedures.
The first and main drawback is that you need a programmer who is familiar with a particular SQL dialect in order to keep the business logic of your application under control. Among other things, SQL scripts are hard enough to understand – even if you wrote them yourself just a couple of days ago. As you know, SQL code is poorly structured and has very limited support for code reuse, so it is easier to write and maintain business logic in a more powerful modern object-oriented language.
The second reason: no matter how powerful the SQL dialect is, the logic implemented in it will still work tens or even hundreds of times slower than the logic implemented in Java, C ++ or C #.
Another reason: poor portability of non-standard SQL code. By writing business logic on the north side, you actually cut yourself off from using other databases, or make it very costly. It is much easier to convince the client later that the DBMS used in your application is better than the one he already has (well, if he has nothing at all). Than to rewrite your logic for another database server. Sometimes this is simply not possible.
That is, to put it simply, an application built according to a modern architecture should use the database in ANSI SELECT / UPDATE mode and not have significant client-side logic. All logic must be implemented in a middleware layer called the application server with outsource java development.
When deciding to use a three-tier architecture, the next question to consider is which application server to use. You can even implement your own application server – and this approach has recently become more and more used.
Naturally, if there is a rigid binding to the UNIX platform, then the choice of an application server or platform. They are for its implementation today can be considered already predetermined. This is Java2. If a decision is made to use a ready-made application server, a J2EE standard server will be selected. It is obvious that the implementation of the internal business logic components will be performed using Java2.
The conclusions below are very general in nature. And in order to make the right decision regarding the choice of the platform, you will need to draw your own conclusions. Take advantage of the results of this test and modify it to more accurately reflect your subject area. Do not forget also about the laboriousness of this or that solution. If a server application needs to meet a high fault tolerance requirement, then you will need to provide a mechanism for saving business object data to disk at regular intervals. The higher the intensity of this process, the more reliably your application will take care of saving client data.
Considering that the time spent on searching for data in a collection can be reduced by using the “sorting – binary search” link. And also that the time spent on saving data to disk is much higher than the time spent on working with objects in memory. Then for for most server applications, the Java2 platform is the preferred choice.
However, the author does not exclude the possibility of implementing his own mechanisms. It’s for saving data to disk for applications implemented using C #. Ultimately, it all depends on your project budget. If you need to build a real-time application, where you need, first of all, the speed of reaction to signals. And the stability of the data does not matter much, then the best choice is to use C #. Of course, in this case, developing an application in C ++ will give the best results if you have enough money and time. Another plus in favor of C # is that where you have problems with the performance of the C # system, the code can be easily replaced with C ++ code. Of course, this is also possible in Java, but the labor costs will be immeasurably higher.