Difference between revisions of "3 FORMS OF Web Application Architecture"

From Morphomics
Jump to: navigation, search
(Created page with "Such terms as ''web app'', ''front-end architecture'', ''Web 2.0'', and ''HTML5 apps'' have recently become trendy. Unfortunately these terms tend to be found in a misleading...")
 
m
Line 1: Line 1:
Such terms as ''web app'', ''front-end architecture'', ''Web 2.0'', and ''HTML5 apps'' have recently become trendy. Unfortunately these terms tend to be found in a misleading context which doesn't think about the full specificity of implementation and usage of web app architecture. [https://app.box.com/s/cqc260969opehwd7upeja0jd5l92e4o0 reformas integrales valencia] 'll look for out more about the forms of web application architecture in the light of the most recent web trends and key conditions that matter to software owners.<br /><br />We'll outline 3 main forms of web architecture and discuss their advantages and drawbacks for three points of view: software owner, software contractor (developer) and person. There can be other types but they basically come down to these three as their subtypes.<br /><br />First we'll define a web application: it's a client-server application - there exists a browser (the client) and a web server. The logic of a web application is distributed among the server and the client, there's a channel for information exchange, and the data is stored mainly on the server. Further details be determined by the architecture: different styles distribute the logic in different ways. It can be positioned on the server as well as on the client side.<br /><br />It's near to impossible to judge these very different architectures impartially. But we'll try to, using several criteria of evaluation:<br /><br />User:<br /><br />Responsiveness/Usability. Updates of data on pages, switching between pages (response time). Such qualities of interface as richness and intuitiveness in use.<br /><br />Linkability. Capability to save bookmarks and links to various parts of the website.<br /><br />Offline work. Speaks for itself.<br /><br />Developer:<br /><br />Speed of development. Addition of new functional features, refactoring, parallelizing the development process between developers, layout designers, etc.<br /><br />Performance. Maximum speed of response from the server with minimum usage of computation power.<br /><br />Scalability. Capability to increase computation power or disc space under increases in levels of information and/or amount of users. In case the allocated scalable system is used, one must definitely provide data consistence, availability and partition tolerance (CAP theorem). It's also worth noting that the case, once the number of features/screens of the client app is increased at the program owner's request, depends on the framework and implementation as opposed to the type of web architecture.<br /><br />Testability. Possibility and easiness of automated unit testing.<br /><br />Software owner:<br /><br />Functional extendability. Adding functionality within minimal time and budget.<br /><br />SEO. Users must be able to find the application through any internet search engine.<br /><br />Support. Expenses on app infrastructure - hardware, network infrastructure, maintenance staff.<br /><br />Security. The software owner must be sure that both business data and information about users are kept secure. As the main security criterion we'll think about the chance for changes in functionality of app behavior on your client side, and all associated risks. Standard dangers are the same for the compared architectures. We usually do not consider security on the 'server-client' channel, because all these architectures are equally exposed to break-ins - this channel can be the same.<br /><br />Conversion: site - mobile or desktop application. Possibility to publish the application form on mobile markets or even to make a desktop application from it with minimal additional costs.<br /><br />Some of these criteria might seem inaccurate, but the reason for the article is not to show what's good and what's bad. It's more of an in depth review that shows the possible options of preference.<br /><br />Let's outline three main types of web applications according to the roles performed by the server and your client browser.<br /><br />Type 1: Server-side HTML<br /><br />Probably the most widespread architecture. The server generates HTML-content and sends it to your client as a full-fledged HTML-page. Sometimes this architecture is called ''Web 1.0'', because it was the first to appear and currently dominates the web.<br /><br />Responsiveness/Usability: 1/5. Minimal optimal value among these architectures. It's so because there is a great amount of data transferred between the server and the client. An individual has to wait before whole page reloads, giving an answer to trivial actions, for instance, when only a section of the page should be reloaded. UI templates on the client depend on the frameworks applied on the server. Because of the limitations of mobile internet and large sums of transferred data, this architecture is hardly applicable in the mobile segment. There are no method of sending instant data updates or changes instantly. If we consider the chance for real-time updates via generation of ready chunks of content on the server side and updates of your client (through AJAX, WebSockets), plus design with partial changes of a full page, we'll go beyond this architecture.<br /><br />Linkability: 5/5. The best of the three, since it is the easiest implementable. It's because of the fact that by default one URL receives particular HTML-content on the server.<br /><br />SEO: 5/5. Rather easily implemented, much like the previous criterion - the content is known beforehand.<br /><br />Speed of development: 5/5. Here is the oldest architecture, so it is possible to choose any server language and framework for particular needs.<br /><br />Scalability: 4/5. If we have a look at the generation of HTML, under the increasing load comes the moment when load balance will be needed. There's a much more complicated situation with scaling databases, but this task is the same for these three architectures.<br /><br />Performance: 3/5. Tightly bound to responsiveness and scalability with regards to traffic, speed etc. Performance is relatively low just because a big amount of data must be transferred, containing HTML, design, and business data. Therefore it's necessary to generate data for the whole page (not only for the changed business data), and all of the accompanying information (such as design).<br /><br />Testability: 4/5. The positive thing is that there surely is no need in special tools, which support JavaScript interpretation, to test the front-end, and this content is static.<br /><br />Security: 4/5. The application behavior logic is on the server side. However, data are transferred overtly, so a protected channel may be needed (that is basically a tale of any architecture that concerns the server). All the security functionality is on the server side.<br /><br />Conversion: site - mobile or desktop application: 0/5. Normally it's simply impossible. Rarely there's an exception (more of exotics): for example, if the server is realized upon node.js, and you can find no large databases; or if one utilizes third-party web services for data acquisition (however, it's a more sophisticated variant of architecture). Thus one can wrap the application form in node-webkit or analogous means.
+
Such terms as ''web app'', ''front-end architecture'', ''Web 2.0'', and ''HTML5 apps'' have recently become trendy. Unfortunately these terms tend to be found in a misleading context which doesn't consider the full specificity of implementation and usage of web app architecture. Today we'll look for out more about the forms of web application architecture in the light of the latest web trends and key conditions that matter to software owners.<br /><br />We'll outline 3 main forms of web architecture and discuss their advantages and drawbacks for three points of view: software owner, software contractor (developer) and end user. There can be other types but they basically drop to these three as their subtypes.<br /><br />First we'll define a web application: it is a client-server application - there exists a browser (the client) and a web server. The logic of a web application is distributed among the server and the client, there's a channel for information exchange, and the info is stored mainly on the server. Further details be determined by the architecture: different ones distribute the logic in various ways. It can be positioned on the server as well as on the client side.<br /><br />It's near to impossible to judge these very different architectures impartially. But we'll try to, using several criteria of evaluation:<br /><br />User:<br /><br />Responsiveness/Usability. Updates of data on pages, switching between pages (response time). Such qualities of interface as richness and intuitiveness in use.<br /><br />Linkability. Ability to save bookmarks and links to various parts of the website.<br /><br />Offline work. Speaks for itself.<br /><br />Developer:<br /><br />Speed of development. Addition of new functional features, refactoring, parallelizing the development process between developers, layout designers, etc.<br /><br />Performance. Maximum speed of response from the server with minimum usage of computation power.<br /><br />Scalability. Capability to increase computation power or disc space under increases in amounts of information and/or amount of users. In case the allocated scalable system can be used, one must provide data consistence, availability and partition tolerance (CAP theorem). It is also worth noting that the case, when the number of features/screens of your client app is increased at the program owner's request, depends upon the framework and implementation rather than the type of web architecture.<br /><br />Testability. Possibility and easiness of automated unit testing.<br /><br />Software owner:<br /><br />Functional extendability. [https://www.adsolutionsincorp.com/activity/p/402401/ New York architects] within minimal time and budget.<br /><br />SEO. Users must be in a position to find the application through any search engine.<br /><br />Support. Expenses on app infrastructure - hardware, network infrastructure, maintenance staff.<br /><br />Security. The software owner should be sure that both business data and information about users are kept secure. Because the main security criterion we'll think about the possibility of changes in functionality of app behavior on the client side, and all associated risks. Standard dangers are the same for the compared architectures. We usually do not consider security on the 'server-client' channel, because all these architectures are equally exposed to break-ins - this channel could possibly be the same.<br /><br />Conversion: site - mobile or desktop application. Possibility to create the application on mobile markets or to make a desktop application from it with minimal additional costs.<br /><br />Some of these criteria might seem inaccurate, but the reason for the article is not to show what's good and what's bad. It's more of an in depth review that presents the possible options of preference.<br /><br />Let's outline three main forms of web applications based on the roles performed by the server and the client browser.<br /><br />Type 1: Server-side HTML<br /><br />Probably the most widespread architecture. The server generates HTML-content and sends it to your client as a full-fledged HTML-page. Sometimes this architecture is named ''Web 1.0'', because it was the first ever to appear and currently dominates the web.<br /><br />Responsiveness/Usability: 1/5. The least optimal value among these architectures. It's so because there is plenty of data transferred between the server and the client. An individual has to wait until the whole page reloads, responding to trivial actions, for example, when only a the main page has to be reloaded. UI templates on the client depend directly on the frameworks applied on the server. As a result of limitations of mobile internet and large sums of transferred data, this architecture is hardly applicable in the mobile segment. You can find no means of sending instant data updates or changes in real time. If we consider the possibility of real-time updates via generation of ready chunks of content on the server side and updates of your client (through AJAX, WebSockets), plus design with partial changes of a full page, we'll exceed this architecture.<br /><br />Linkability: 5/5. The best of the three, since it is the easiest implementable. It's because of the fact that by default one URL receives particular HTML-content on the server.<br /><br />SEO: 5/5. Rather easily implemented, much like the previous criterion - the content is known beforehand.<br /><br />Speed of development: 5/5. This can be the oldest architecture, so it is possible to select any server language and framework for particular needs.<br /><br />Scalability: 4/5. If we take a look at the generation of HTML, beneath the increasing load comes as soon as when load balance will be needed. There's a much more complicated situation with scaling databases, but this is the same for these three architectures.<br /><br />Performance: 3/5. Tightly bound to responsiveness and scalability in terms of traffic, speed etc. Performance is relatively low because a big amount of data must be transferred, containing HTML, design, and business data. Therefore it's necessary to generate data for the whole page (not only for the changed business data), and all of the accompanying information (such as for example design).<br /><br />Testability: 4/5. The positive thing is that there's no need in special tools, which support JavaScript interpretation, to test the front-end, and this content is static.<br /><br />Security: 4/5. The application behavior logic is on the server side. However, data are transferred overtly, so a protected channel may be needed (which is basically a story of any architecture that concerns the server). All the security functionality is on the server side.<br /><br />Conversion: site - mobile or desktop application: 0/5. Usually it's simply impossible. Rarely there's an exception (more of exotics): for example, if the server is realized upon node.js, and there are no large databases; or if one utilizes third-party web services for data acquisition (however, it's a more sophisticated variant of architecture). Thus one can wrap the application in node-webkit or analogous means.

Revision as of 05:19, 23 February 2022

Such terms as web app, front-end architecture, Web 2.0, and HTML5 apps have recently become trendy. Unfortunately these terms tend to be found in a misleading context which doesn't consider the full specificity of implementation and usage of web app architecture. Today we'll look for out more about the forms of web application architecture in the light of the latest web trends and key conditions that matter to software owners.

We'll outline 3 main forms of web architecture and discuss their advantages and drawbacks for three points of view: software owner, software contractor (developer) and end user. There can be other types but they basically drop to these three as their subtypes.

First we'll define a web application: it is a client-server application - there exists a browser (the client) and a web server. The logic of a web application is distributed among the server and the client, there's a channel for information exchange, and the info is stored mainly on the server. Further details be determined by the architecture: different ones distribute the logic in various ways. It can be positioned on the server as well as on the client side.

It's near to impossible to judge these very different architectures impartially. But we'll try to, using several criteria of evaluation:

User:

Responsiveness/Usability. Updates of data on pages, switching between pages (response time). Such qualities of interface as richness and intuitiveness in use.

Linkability. Ability to save bookmarks and links to various parts of the website.

Offline work. Speaks for itself.

Developer:

Speed of development. Addition of new functional features, refactoring, parallelizing the development process between developers, layout designers, etc.

Performance. Maximum speed of response from the server with minimum usage of computation power.

Scalability. Capability to increase computation power or disc space under increases in amounts of information and/or amount of users. In case the allocated scalable system can be used, one must provide data consistence, availability and partition tolerance (CAP theorem). It is also worth noting that the case, when the number of features/screens of your client app is increased at the program owner's request, depends upon the framework and implementation rather than the type of web architecture.

Testability. Possibility and easiness of automated unit testing.

Software owner:

Functional extendability. New York architects within minimal time and budget.

SEO. Users must be in a position to find the application through any search engine.

Support. Expenses on app infrastructure - hardware, network infrastructure, maintenance staff.

Security. The software owner should be sure that both business data and information about users are kept secure. Because the main security criterion we'll think about the possibility of changes in functionality of app behavior on the client side, and all associated risks. Standard dangers are the same for the compared architectures. We usually do not consider security on the 'server-client' channel, because all these architectures are equally exposed to break-ins - this channel could possibly be the same.

Conversion: site - mobile or desktop application. Possibility to create the application on mobile markets or to make a desktop application from it with minimal additional costs.

Some of these criteria might seem inaccurate, but the reason for the article is not to show what's good and what's bad. It's more of an in depth review that presents the possible options of preference.

Let's outline three main forms of web applications based on the roles performed by the server and the client browser.

Type 1: Server-side HTML

Probably the most widespread architecture. The server generates HTML-content and sends it to your client as a full-fledged HTML-page. Sometimes this architecture is named Web 1.0, because it was the first ever to appear and currently dominates the web.

Responsiveness/Usability: 1/5. The least optimal value among these architectures. It's so because there is plenty of data transferred between the server and the client. An individual has to wait until the whole page reloads, responding to trivial actions, for example, when only a the main page has to be reloaded. UI templates on the client depend directly on the frameworks applied on the server. As a result of limitations of mobile internet and large sums of transferred data, this architecture is hardly applicable in the mobile segment. You can find no means of sending instant data updates or changes in real time. If we consider the possibility of real-time updates via generation of ready chunks of content on the server side and updates of your client (through AJAX, WebSockets), plus design with partial changes of a full page, we'll exceed this architecture.

Linkability: 5/5. The best of the three, since it is the easiest implementable. It's because of the fact that by default one URL receives particular HTML-content on the server.

SEO: 5/5. Rather easily implemented, much like the previous criterion - the content is known beforehand.

Speed of development: 5/5. This can be the oldest architecture, so it is possible to select any server language and framework for particular needs.

Scalability: 4/5. If we take a look at the generation of HTML, beneath the increasing load comes as soon as when load balance will be needed. There's a much more complicated situation with scaling databases, but this is the same for these three architectures.

Performance: 3/5. Tightly bound to responsiveness and scalability in terms of traffic, speed etc. Performance is relatively low because a big amount of data must be transferred, containing HTML, design, and business data. Therefore it's necessary to generate data for the whole page (not only for the changed business data), and all of the accompanying information (such as for example design).

Testability: 4/5. The positive thing is that there's no need in special tools, which support JavaScript interpretation, to test the front-end, and this content is static.

Security: 4/5. The application behavior logic is on the server side. However, data are transferred overtly, so a protected channel may be needed (which is basically a story of any architecture that concerns the server). All the security functionality is on the server side.

Conversion: site - mobile or desktop application: 0/5. Usually it's simply impossible. Rarely there's an exception (more of exotics): for example, if the server is realized upon node.js, and there are no large databases; or if one utilizes third-party web services for data acquisition (however, it's a more sophisticated variant of architecture). Thus one can wrap the application in node-webkit or analogous means.