Did you know that more than one-third of small businesses still have no website? This news is almost as incomprehensible as the fact that a strawberry is not a berry, but a banana is one, and that an oyster can change its gender back and forth four times a year.
On a more serious note, online presence has an array of benefits. Let’s name a few:
If your business still doesn’t have a website because it seems too expensive and complicated to get, here’s good news for you: experienced software development teams know how to craft a robust web solution within a given timeframe and budget.
Further, you’ll get a web architecture 101: learn about its origin types and models.
According to Technopedia, “Website architecture is the planning and design of the technical, functional, and visual components of a website – before it is designed, developed, and deployed. It is used by website designers and developers as a means to design and develop a website.”
The earliest computing models were inconvenient. Every application had to be separately installed on every user’s PC. Furthermore, the components of each application were tightly bound to the definite operating system and computer architecture.
The world wide web (www) was realized in the 1990s so that people and machines could communicate with each other within a certain space (network). At first, the web consisted predominantly of static websites based on HTML. Later, JavaScript and CSS enabled dynamic websites.
There are three types of web architecture:
Another name for this application is Web 1.0 since it was the first to appear. This is the most widespread web application architecture where the server generates HTML content and sends it to the client as a full-fledged HTML-page.
Linkability is the highest among the three types due to the fact that by default one URL receives particular HTML-content on the server.
SEO. The content is known beforehand, so SEO is easily implemented.
Development speed. Engineers can choose any server language and framework for particular needs.
Testability. Software testers don’t need special tools, which support JavaScript interpretation, to test the front-end as the content is static.
Usability. The user has to wait until the whole page reloads, responding to trivial actions. The architecture is not applicable in mobile development, since the limitations of mobile internet and huge amounts of transferred data. There are no means to send instant data updates or make changes in real-time.
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 at once.
Offline work. Available if a browser supports HTML5 specifications. If not, the user will see only a cached page.
Conversion into a mobile application. In most cases, it’s impossible.
The difference from the first type is that the page displayed in the browser consists of widgets (functionally independent units). Data is uploaded from the server to these widgets through the AJAX query.
Separated functionality of widgets. A particular widget is in charge of a part of the page, so partial changes will not affect the whole page.
Performance. The time and resources spent on the generation of HTML content are minor.
Responsiveness. It’s higher than in the first type, but since a page is a set of widgets, the choice of UI templates in this way of web application development is limited by the chosen UI framework.
Linkability. Here, you need special tools and mechanisms, such as Hash-Bang.
SEO. Also, special mechanisms are required. For example, you can predefine the list of promoted pages and make static URLs for them.
Development speed. Software engineers need to know server-side technologies, as well as use JavaScript frameworks on the client side.
Testability. Testing engineers will need to test separately the server side, the client code, and the web service which returns the data to update widgets.
Offline work. Updating or caching the data displayed on the widget has to be implemented additionally.
With this type of web architecture, you download a single page only once. There’s a JavaScript layer on the client side that communicates with web services on the server. Using the data from web services, a web page makes real-time updates to itself.
Responsiveness. The volume of data transferred for updates is minimal.
Performance. The server only has to give the JavaScript application to the browser.
Conversion into a mobile application. With the help of special platforms like PhoneGap, such websites become mobile applications.
Offline work. This is a full-fledged application that can work offline. It’s possible to save separate data, using any storage (even the local one), and switch data storage and management to the offline mode.
Linkability. Here, you’ll also need special tools and mechanisms, as with the second type.
SEO. It is hard to promote the solution unless the entire app is promoted directly. You’ll need special tools to do it for a part of the application.
Development speed. The architecture is relatively new, so there aren’t many time-tested tools, frameworks, and approaches.
Testability. Engineers will need to test web services and the client JavaScript code.
Security. The app logic is shifted to the exposed client side which can be relatively easily modified by an intruder.
There are three web architecture models:
This model uses a single server as well as a single database that’s why a web app built on such a model will go down as soon as the server goes down. It isn’t much reliable and is mostly used for running test projects.
Here, the web server doesn’t store any data. It gets information from a client, processes it, and writes it to the database, which is managed outside of the server.
At least 2 web servers are required for this model to avoid failure. All requests made will be redirected automatically to the new server if the first one goes down. However, if the database crashes the web app will follow to do the same.
It is the most efficient model as neither the web servers nor the databases have a single point of failure. There are two options for this type of model: to store identical data in all the employed databases or distribute it evenly among them. When the scale is large (more than 5 web servers or databases), load balancers are installed.
A web application gives out maximum performance when the following factors are taken into consideration:
It may seem difficult for a business owner to get a handle on all the web architecture types and models. The good news is that you don’t have to do it, as long as the company providing you with software development services does. The right model and type of web architecture majorly determine the robustness, responsiveness, and security of your solution. So before launching the development project with a contractor, take a closer look at your business needs and evaluate all possible options.