Good morning people, today we are launching the week at ProgSchedule with this topic: the Web Layers. More than devising the difference between concepts, it is important to know the role and little of history about each of this components. The design, the programming and the architecture conventions complement the one another and make possible to have a nice experience in the Web.
THE CLIENT-SERVER MODEL
To get started, we should understand the basic structure of a network: the client-server model. This model describes the relationship between two computer programs, in which the one known as the client makes a request and the other, known as the server, receives and answers to it.
This is analogical to the communication scheme that separates the actors involved in the process of transferring a message into a sender and a receiver. Imagine all the process as a chat between a tribe of small computers turning to the wise server.
communication scheme vs client-server model
THE WEB 1.0, HTTP, HTML… and web Design
Fine. So this small clients write small HTTP requests and the wise server answers with a professional Hyper-Text Markup Language (HTML) letter, with words wrapped into a layout with margins, a touch of colour and some info-graphics.
This is an approximation of how the Web 1.0 was made of: content and a bit of design. In fact, Web Design was born here.
THE WEB 2.0, client and server side Programming + CSS
Soon after the wise servers of the baby Web 1.0 got overloaded of work, small clients were too nosy and required a bunch of attention each; the mailman was getting tired of such a come and go, and forget about that endless comment of “the connection is too slow”!
So grandpa said: okay okay, I will prescript some instructions here, so all this bunch of cyclic processes can be executed by them selves and I can get to concentrate in other things. I will include some attachments to your pretty HTML, so you can play awhile with no need to come and see me.
Web Design evolved with this together and CSS was one it’s most remarkable progresses by officially separating the Content from the Style. So we write HTML somewhere and specify the header’s colour, the body’s font-style, the picture’s margin and so on in a separate recipe.
THE WEB 3.0, Dabases, Higher level concepts and… Web Architecture.
Grandpa was still having difficulties -since when do I have so many grandchildren?- he had torrents of papers lost everywhere, he had to fabricate a library (a Database, tadaaa!) to put an order to all this.
Web Architecture was naturally born with Web 3.0. It is all the logistics that have to be taken in order to make all this divisions work: the Design module with it’s branches of content and style, the Programming separated also in two parts (one for the client, other for the server) and a new place called the Model of data, which is usually separated into the Database and a space that works as an “index” for this DB.
Some higher-level concepts had a boom here, heading semantics and artificial intelligence, but I will not talk about them in this moment.
New tools known as API/frameworks came to the rescue, each of this specialized in the executing of one Server-Side Language. There are APIs for PHP, Python, Ruby, Perl, Java, Scala… This APIs stablish a place for each of this components we’ve talked about and delegate them selves to the task of making it all work.
We have seen a great variety of topics in this post in order to understand were is Design, Programming and Architecture. As you might have seen, it’s all about evolution. See you soon in ProgSchedule.