Web development models and technologies have evolved a lot in the last decade, there are many applications, frameworks, libraries, architectures and publishing systems in different versions that in turn receive changes or improve over time.
Progress has also taken place in relation to system administration, hosting services, scalability techniques, monitoring and management of data process centers.
This evolution has resulted in the convergence of a large number of technologies , tools and architectural styles to develop websites in Canberra and applications, we tell you the most important aspects related to them, and the way in which they interact with each other.
Basic architecture of a web application
In order for a website or web application to work by showing itself to the public, an architecture that has at least the following elements is necessary:
The browser: Represents the client concept by making requests requesting resources from different web servers through URL.
The Server: Stores the structure of the information on the website in an organized way to serve the contents in relation to the browser’s requests.
The http protocol: It is the protocol based on TCP / IP through which the browser makes requests to the server to respond.
HTML: It is the basic format of the documents that make up the web pages, is based on tags and is used to structure the way of displaying the contents of the pages.
CSS: Cascading style sheets serve to aesthetically favor structured elements and content through HTML tags, giving them personality in terms of design, shape and colors.
In addition to meeting the basic requirements to operate a website or web application can be created using different technologies that fall into two broad categories:
Server technologies: They allow to implement web application behaviors on the server, the most used programming languages are Java EE, .NET, PHP, Ruby on Rails, Python, Django, Groovy, Node.js, etc.
Web architectures of static or dynamic content
It is said that the content that shows a certain page or website completely is static content when it does not allow user interaction in any way, on the contrary the pages that invite to interact with the visitor through different elements such as forms, buttons; maps, etc, offer dynamic content.
Static client and static server: In this model the browser makes a request to the server through the http protocol, the server transforms the URL to disk path and returns the file to the browser that draws or renders it showing the structure of the page in HTML and its content as photos and videos, also the aesthetics of its design thanks to CSS styles.
Static client and dynamic server: This model consists of 3 layers, since the browser and the web server are involved, but also a database associated with the latter.
When the server receives a request, returns disk content or executes code to generate the resource dynamically, this code normally makes inquiries to the database to retrieve the information, generating the HTML page and contents dynamically.
Standard client side technologies
The W3C (World Wide Web Consortium) is an international community that develops open standards that ensure long-term web growth, such as HTML5 & CSS, Scripting and AJAX, accessibility standards, graphics, audio and video, semantic web, XML and many more.
HTML: (Hypertext Markup Language) provides structured information in sections, paragraphs, title, images, etc. The current HTML5 version, and offers many advanced libraries for the insertion of multimedia content, canvas, communications and concurrency.
CSS: (Cascading Style Sheets) is responsible for the distribution of the elements and their style with colors, fonts, backgrounds, effects, etc … in HTML documents, XML, SVG or even user interfaces of other technologies.
There are many libraries (APIS) for web and application development, but the most used are JQuery and Underscore.js.
DOM: It is the document object model (Document Object Model) and consists of a library (API) to manipulate the HTML document loaded in the browser, allowing event management, or the insertion and deletion of elements.
Non-standard technologies for web development
For a long time the lack of open technologies to perform different actions associated with behaviors and multimedia content made some proprietary technologies occupy this gap, always at the initiative of software development companies, below we highlight some of the best known.
Adobe Flash: This is a technology used to embed interactive multimedia content in web pages that prevailed for a long time, free for the user but proprietary and closed for developers, who must pay license to use it, the main reason why It is increasingly obsolete.
Java Applets: Java Applets were the precursors of Flash, but due to anti-competitive practices from Microsoft and Sun Microsystems, it was more focused on application servers, so it has long been deprecated.
Microsoft Silverlight: It was for a long time Microsoft’s bet to compete with Adobe Flashs, but support was very limited on platforms other than Windows.
The standards are very important in web browsers (client) since it is important that the web is compatible with any device, however these standards are not necessary on the server, because each organization will develop its server with the technology they deem convenient.
Proprietary or open technologies are used in the server for the development of web applications, there are many of them, among them the most used are PHP, Java EE and ASP.NET, and the least used Ruby on Rails, Grails (Groovy), Django (Phyton), Perl, ColdFusion, there are many more, but among them we comment below the most prominent.
Java EE: It is a Java-based technology developed by a coalition of companies led by Oracle, IBM, Red Hat, etc … widely used at the enterprise level, most implementations and tools for development are free software, and there are communities of developers and Companies that make accessories.
PHP: It is a technology with its own language, developed by the PHP Group and with a free license. It is the server-side technology with which more servers have been implemented on the Internet, it is cross-platform and is normally integrated with Apache and MySQL in Linux environments thanks to a package called LAMP.
ASP.NET: This is an advanced version of the classic ASP, is integrated into the Microsoft .NET technology together with the C # language, has proprietary license and Windows platforms and developer community má limited than other alternatives.
The most popular databases used for the development of web applications are relational databases . There are many commercial and free software relational databases such as MySQL, Derby, Oracle, MS SQL Server, PostgreSQL.
Currently the most used database management system is MySQL, it is multiplatform and developed in C, it has an open source GPL license and consists of an interactive tool to make queries and create databases, as a whole it has become very popular in web development
Web applications are in need of scalability and fault tolerance, which is why a new family of databases called NoSQL is being made hollow , among which are Cassandra, mongoDB, riak, redis.
Content management systems
Content management systems or CMS (Content Management System) have been imposed for a long time, which are pre-designed web applications and initially configured to create and manage online content.
CMS jointly use several of the technologies described above, and have evolved to become a new website development model, configuring and adapting modules through a web interface.
The system also allows the design and content to be managed independently, modifying its structure through templates or themes.
The design and development of websites and online applications entails the choice and knowledge of the technologies that are decided to be used, in order to favor their implementation and ensure maintenance.
Content managers are an ideal alternative to create complete websites avoiding the cost of developments “from 0” or starting from the use of a framework, but the choice depends on the way to approach each project according to its characteristics or singularities.
We design and develop websites using different technologies, if you doubt about which one will be the most appropriate to create the website associated with your activity get in touch , we are at your service to advise you.