Memoria Investigaciones en Ingeniería, núm. 24
(2023). pp. 117-128
https://doi.org/10.36561/ING.24.9
ISSN 2301-1092 • ISSN (en línea) 2301-1106
In defense of extreme database-centric architecture
En defensa de una
arquitectura extrema centrada en la base de datos
Em defesa de uma arquitetura extrema centrada
em banco de dados
Alfonso Vicente[1]
Recibido: 28/05/2023 Aceptado: 28/05/2023
Summary. - A famous aphorism in computer science goes:
"All problems in computer science can be solved by another level of
indirection", often expanded by the humorous clause "except for the
problem of too many levels of indirection". After 30 years of applying the
first aphorism, multi-tier architectures (i.e.
architectures with many levels of indirection) have become the de facto
standard for web applications, leaving little room for alternative
architectures. But in the industry, there is a product to develop and run web
applications that follows a different architecture, centered on the RDBMS to
the extreme of not needing any other component to function. There are not many
papers in academia that addresses RDBMS-centric architectures in general, and this
extreme architecture in particular has not been
considered. In recent works I have analyzed the case of an extreme
database-centric architecture, which I have called RDBMS-only architecture.
This article defends the relevance and analyzes opportunity cases of this
approach.
Keywords: RDBMS,
Web Application Architecture, Database-Centric Architectures.
Resumen. - Un aforismo famoso en ciencias de la computación
dice: "Todos los problemas en ciencias de la computación pueden resolverse
con otro nivel de indirección", a menudo ampliado con la cláusula
humorística "excepto por el problema de tener demasiados niveles de
indirección". Después de 30 años de aplicar el primer aforismo, las
arquitecturas de varios niveles (es decir, arquitecturas con muchos niveles de
indirección) se han convertido en el estándar de facto para las aplicaciones
web, dejando poco espacio para arquitecturas alternativas. Pero en la industria
existe un producto para desarrollar y ejecutar aplicaciones web que sigue una
arquitectura diferente, centrada en el RDBMS al extremo de no necesitar ningún
otro componente para funcionar. No hay muchos artículos académicos que aborden
las arquitecturas centradas en RDBMS en general, y esta arquitectura extrema en
particular no se ha considerado. En trabajos recientes he analizado el caso de
una arquitectura extrema centrada en bases de datos, a la que he llamado
arquitectura RDBMS-only. Este artículo defiende la
pertinencia y analiza casos de oportunidad de este enfoque.
Palabras clave: RDBMS,
Arquitectura de aplicaciones Web, Arquitecturas centradas en la Base de Datos.
Resumo. -
Um famoso aforismo em ciência
da computação diz:
"Todos os problemas em ciência da computação podem ser resolvidos por outro nível de indireção", frequentemente expandido pela cláusula humorística "exceto pelo problema de muitos níveis de indireção". Após 30 anos aplicando o primeiro
aforismo, as arquiteturas multicamadas
(ou seja, arquiteturas com muitos níveis de indireção) tornaram-se o padrão de fato para aplicativos da Web, deixando
pouco espaço para arquiteturas alternativas. Mas na
indústria existe um produto para desenvolver e rodar aplicações web que segue uma arquitetura diferenciada,
centrada no RDBMS ao extremo de não
precisar de nenhum outro componente para funcionar. Não há muitos
artigos acadêmicos que abordam arquiteturas centradas em
RDBMS em geral, e essa arquitetura extrema em particular não
foi considerada. Em trabalhos
recentes, analisei o caso
de uma arquitetura extrema
centrada em banco de dados, que chamei de arquitetura RDBMS-only. Este
artigo defende a relevância
e analisa casos de oportunidade
dessa abordagem.
Palavras-chave: RDBMS,
arquitetura de aplicativos da Web, arquiteturas centradas em banco de dados.
1. Introduction. -This article defends the hypothesis that a web application architecture
physically contained in a Relational Database Management System (RDBMS), which
has been called an RDBMS-only architecture, is a valid alternative, with
advantages and disadvantages compared to the well-established multi-tier
architectures.
It is important to clarify that this hypothesis is not inconsistent with
the well-established theory that argues that multi-tier architectures
constitute an adequate conceptual framework for the design of web
applications, since they provide many important advantages. However, the
hypothesis would be inconsistent with a theory that argues that multi-tier
architectures are the only suitable conceptual framework for web
application design, leaving no room for alternative architectures. Although
this latter theory has not been explicitly affirmed, it has sometimes been
implicitly assumed, and the little available literature that presents
alternatives will also be discussed.
Furthermore, as this work summarizes previous publications, an article
[1] and a master's thesis [2], its focus is to defend the relevance of the
approach and analyze the opportunity to use it in certain use cases. It might
appear that defending an argument implies bias. However, I believe this is not
the case. From an empirical and historical point of view, multi-tier
architectures have come to be seen as the only viable alternative. A whole
generation of software engineers has been trained according to this idea, and
there is almost no dissenting literature.
This article attempts to put the "extreme" database-centric
architecture on an equal footing with the "extreme"
middleware-centric architecture. The advantages of the latter have been extensively
analyzed, but the advantages of the former have not.
Sections 2 and 3 provide a theoretical framework for understanding the
validity of a database-centric architecture from conceptual and historical
perspectives, respectively. Section 4 briefly presents the extreme
database-centric (or RDBMS-only) architecture. Section 5 argues in defense of
this architecture, explaining its advantages and the best possible cases of
application. Finally, section 6 presents some conclusions and reflections.
2. Web application
architectures from a conceptual point of view. - This section will discuss the
relationship between layers, understood as portions of code with well-defined
responsibilities, and tiers, understood as physical and/or technological
components of an information system.
At a conceptual
level, information systems are typically designed with three layers: 1) the presentation
layer, 2) the application logic layer or business logic layer, and
3) the resource management layer or data access layer. The presentation
layer is responsible for managing the display and collecting information from
and to the end-user, usually through a Graphical User Interface (GUI). The
business logic layer handles the processing related to the specific business
application, while the data access layer executes database functions such as
retrieval, addition, deletion, and modification of records [3].
In real systems,
these conceptual layers can be combined and distributed across separate tiers,
often involving different servers and specialized technologies. Many modern web
applications employ a three-tier architecture, commonly known as 1) the
client-tier, 2) the middle-tier, and 3) the data-tier. In most cases, there is
a one-to-one correspondence between layers and tiers. Specifically, the
business logic layer typically aligns with the middle-tier, which is positioned
"in the middle" between the client and data tiers, constituting a
physical middle-tier. This situation explains why the terms "business logic
layer," "middle layer," and "middle tier" are
sometimes used interchangeably, and there are even specialized technologies
referred to as "middleware". However, it is important to understand
that the business logic layer is not necessarily limited to residing in the
middle-tier.
How can the layers
be distributed across tiers? Since layers are simply code components with
specific responsibilities, it could be argued that the question is poorly
formulated because the code comprising a single layer could be distributed
across multiple tiers. However, for the purpose of modeling the problem, it is
simplified by assuming that a layer is atomic.
Modern web
applications must be accessible through web browsers without the need for
plugins, a concept known as thin client. In other words, the
majority of the code for the three layers must be distributed across two
tiers: the middle-tier and the data-tier. According to the loft principle, at
least two layers should coincide in a single tier. However, it is also possible
for all three layers to coincide in one tier.
There are several
theoretical approaches to analyzing the possible alternatives for organizing
the architecture of an application in tiers. One of these approaches is Koppelaars' classification, which categorizes the eight
theoretical combinations of three-tier systems, considering both a thin version
("little code") and a fat version ("lots of code") for each
tier [4]. It's worth noting that in practice, there are only seven relevant
combinations, as the thin/thin/thin case holds no genuine interest. A
thin/fat/thin architecture (or Thick Middleware) implies that the code is
predominantly in the middle-tier, whereas a thin/thin/fat architecture (or
Thick Database) means that the code primarily resides in the data-tier[2].
According to Koppelaars' classification, the majority
of modern web applications have a thin/fat/thin architecture (or Thick
Middleware). However, Middleware is not the only tier that can be enriched with
business logic. Web applications require thin clients, but the use of a thick
middleware tier, while common, is neither necessary nor universal. There is an
alternative approach to locate complex business logic: the data-tier. In this
case, as Koppelaars points out, a thin/thin/fat
combination is theoretically possible and, in some cases, may be advantageous.
He refers to this case as the database-centric architecture. The terms
database-backed, RDBMS-backed, database-centric, and database-driven are
typically used interchangeably to describe web architectures where the RDBMS
plays a vital role. In database-backed websites, content is dynamically
generated by querying the database, and there is no application server [5].
Another way to
interpret this classification is as the possible distributions of the layers
across levels. Thus, a common distribution aligns each layer with a tier
(presentation layer in the client-tier, business logic layer in the
middle-tier, and data access layer in the data-tier). Using the notation: P for
the presentation layer, BL for the business logic layer, and DA for the data
access layer, this architecture can be denoted as the ordered triad (P, BL,
DA), where the order corresponds to the client, middle, and data tiers.
Following this nomenclature, and adopting the idea of
using "thin" when there is little code, two possible distributions of
a thin/fat/fat architecture could be (thin, P+BL, DA) and (thin, P, BL+DA). It
is also common for the "lots of code" that implement the
presentation, business logic, and data access layers to all be situated in the
middle-tier (thin, P+BL+DA, thin). Conversely, although less frequent, it is
also possible for the "lots of code" to be located
in the data-tier, encompassing the presentation, business logic, and
data access layers (thin, thin, P+BL+DA), as presented graphically in Figure I.
|
Figure I. A
database-centric architecture |
Thickening the data tier with presentation and
especially with business logic code, could be possible when the RDBMS
implements a Database Programming Language (DBPL). This architecture is
feasible whether it is referred to as thin/thin/fat, (thin,thin,P+BL+DA), database-centric, or Thick
Database. However, couldn’t this database-centric architecture be more extreme?
Without the need for middleware, the thin/zero/fat combination is possible.
This alternative will be addressed in Section 4, following the historical
discussion in Section 3.
3. Web application
architectures from a historical point of view. - The decade of the nineties was marked by the
advent of the Web, which made its debut in 1991. Tim Berners-Lee's invention
had three fundamental components: URLs, which enabled access to the entire Web
in a "flat" manner; the stateless HTTP protocol, which standardized
communication; and the HTML language, which simplified the creation of web
pages. This era also witnessed the development of graphical browsers such as
Mosaic and Netscape. Netscape, in particular, introduced
features like Secure Sockets Layer (SSL) for secure information transmission
and cookies for tracking user information [6].
From the early days, there was a recognized need for creating
database-backed websites, where content could be generated dynamically from
information stored in a database. In 1993, the industry proposed a solution
called the Common Gateway Interface protocol (CGI), which outlined how web
servers could interact with external programs known as CGI scripts, and how these
scripts could return dynamic pages to the web server [7].
Although it was technically feasible to develop a "web
listener" that would allow the entire application to be implemented in a
Database Programming Language (DBPL) as shown in Figure II, this approach was
not pursued at the time due to the lack of mature DBPLs. Instead,
Object-Oriented Programming (OOP) gained popularity during this period [8].
Object-Oriented Database Management Systems (OODBMS) were not widely adopted by
the industry and did not reach maturity [9]. As a result, most web application
architectures followed a typical pattern of having an object-oriented
middle-tier and a relational data-tier.
|
Figure II. The
web listener of an RDBMS as a protocol adapter |
This introduced a challenge: persisting objects in a relational format
was not straightforward due to the object-relational impedance mismatch. To
overcome this challenge, a dedicated component called Object-Relational Mapping
(ORM) was introduced. These components have evolved over time to simplify data
access and hide much of the complexity. In this scenario, the Thick Middleware
architecture, where the middle-tier contains the bulk of the code, became the
norm for web applications.
Oracle, in contrast
to the prevailing trend, historically embraced a database-centric architecture
with its products Forms and Application Express (APEX), leveraging its DBPL
called PL/SQL [10, 11]. However, the feasibility of this approach does not
depend on any particularity of the Oracle RDBMS; any RDBMS implementing a DBPL
can serve as the foundation for an RDBMS-only architecture. This notion has
been demonstrated in other works [1, 2].
APEX, which follows
an extreme database-centric architecture, exemplifies the thin/zero/fat combination,
or what I refer to as the RDBMS-only architecture, where an entire application
resides within the RDBMS. In fact, even the web server can be contained within
the RDBMS using the Embedded PL/SQL Gateway (EPG). Alternatively, the web
listener component can be deployed as an Apache module or a Java application.
Regardless of the deployment method, the focus of the architecture remains
exclusively on the RDBMS. When Oracle describes the APEX architecture as
"simple," it pertains to the physical view. However, it is important
to note that while the physical view of the RDBMS-only architecture simplifies
by consolidating all the complexity into a single component, it introduces
increased logical complexity within that component, which raises design considerations.
An interesting
historical question arises: why did Oracle choose to pursue a path that
seemingly contradicted the prevailing trend, and why did others not follow
suit? While definitive answers to these questions may be elusive, several hypotheses
can be considered: a) the evolution of APEX was largely unplanned, and b) the
APEX architecture went unnoticed by academia and the industry.
The first
hypothesis can be justified by recognizing that APEX did not originate as a
purpose-built solution for its current objectives. Instead, its conception was
incremental. From the outset, the Oracle RDBMS was designed to handle HTTP
requests, which laid the groundwork for the architecture, at least in practice.
However, initial expectations regarding the capabilities of this technology
were modest, limited to the potential use for developing reports and replacing
spreadsheets. It was only over time and through experimentation that APEX's
capabilities expanded to enable the development of stateful applications
and the provision of an Integrated Development Environment (IDE) built on the
same technology. The evolution of APEX can be seen as a spontaneous order—an
outcome of human action but not human design. In retrospect, the decision made
by APEX architects proved to be fruitful, providing Oracle's clients with an
alternative to building enterprise web applications without the need for
additional technologies.
To justify the
second hypothesis, it is helpful to distinguish between two types of novelty:
true novelty, which entails genuinely new ideas, and novelty of arrangements,
where the novelty arises from the combination of existing ideas. In this
context, APEX represents a novelty of arrangements by combining preexisting
capabilities of a DBPL within an RDBMS with the use of HTTP as a communication
protocol. While this form of novelty of arrangements is indeed novel in
practice, it does not rely on any published original idea. Additionally,
compacting an entire enterprise application into a single physical tier appears
to contradict the current trend of multi-tier separation, service-oriented
architectures, and decoupled components running on containerized platforms.
Furthermore, Oracle has not made any efforts to publish specific details about
the APEX architecture at an academic level, limiting its description to aspects
relevant to application administrators, developers, and its technical circles.
Consequently, due to its status as a novelty of arrangements, its divergence
from prevailing trends, and Oracle's limited interest in conducting and
publishing research papers on the subject, it is understandable why the APEX
architecture has gone unnoticed by academia and the wider industry.
4. The extreme
database-centric architecture. - This section presents the proposed extreme
database-centric architecture, which can be seen as a simple shift in emphasis
from multi-tier architectures. Instead, a multi-layered architecture is
proposed, but with these layers being logical layers within an RDBMS. The
simplification is physical and technological, but the complexity does not
disappear and is evident in the development and process views of the
architecture [2].
Figure III
illustrates the logical view of the architecture. On the right side are the
layers of user applications. Each layer's code is only allowed to interact with
objects and invoke code residing in the immediate lower layer. The Data Logic
(DL), Business Logic (BL), and User Interface (UI) Code layers follow the Koppelaars classification. However, a new Service Interface
(SI) Code layer is introduced at the same level as the UI Code layer.
Additionally, the Interface Wrapper layer aims to separate the input and output
of data from the specificities of both the graphical interface and web
services. On the left side is an "engine" that does not adhere to the
layered architecture of user applications. The engine is responsible, among
other things, for executing the application flow.The innermost layer is not depicted in Figure
III, as it represents the layer of the RDBMS itself, where database objects
such as tables and indexes are located, and where the specific SQL dialect of
the RDBMS executes SELECT, INSERT, UPDATE, and DELETE statements.
|
Figure III.
Logical view of the extreme database-centric architecture |
The DL Code layer
encompasses stored procedures and/or functions that allow the use of SQL
statements. This layer provides an interface to the upper layer for manipulating
database relations as if they were an Abstract Data Type (ADT). It is worth
noting that this layer can be automatically generated and kept synchronized
with the database schema, and a catalog of existing functions can be maintained
for use by the outer layer. It could also provide a standard RDBMS-independent
interface if a standard DBPL existed. The absence of such a language at present
does not imply that it cannot be developed in the future.
The BL Code layer
represents the domain logic, which utilizes the functionalities provided by the
previous layer. This is the most complex layer responsible for implementing use
cases and ensuring transactional design. This layer can be further subdivided
according to specific needs, either into more internal and external layers or
into segments for cross-cutting functionalities. The interface of this layer to
the outside provides high-level operations in a procedural format with
RDBMS-specific data types.
In the Interface
Wrapper layer, high-level operations are consumed and offered back to the upper
layers, but with inputs and outputs in a standard format independent of both
the RDBMS data types and the interface itself, such as Extensible Markup
Language (XML) or JavaScript Object Notation (JSON).
Finally, the UI
Code and SI Code layers include two different output formatting options: one
designed for end clients through a web browser, and the other designed for web
services. It is important to note that in this context, "interface"
does not solely refer to graphical interface elements. This allows the
treatment of domain layer functionalities in a symmetrical manner, whether it
is a human user requiring an HTML interface or another system invoking a web
service. As long as there are no interface elements in
any of the underlying layers, maintaining the interface in these layers should
be easier since it is confined to these layers. It should be noted that the
architecture is a theoretical proposal, and variants may make sense depending
on implementation decisions. For example, if it is decided to use PostgreSQL as
the RDBMS and adopt a product like PostgREST to
simplify the automatic provision of a REST API from the stored procedures of
the BL Code layer, the Interface Wrapper layer could be eliminated.
In this analysis,
the discussion of the specificities of the engine and the Integrated
Development Environment (IDE) is beyond the scope of this document. However,
perhaps I should mention one aspect of the interface design that Koppelaars and the APEX designers seem to have arrived at
independently: the conception of a GUI as a network of pages, where each page
contains a hierarchy of interface elements and navigation rules to other pages
that are triggered by certain events. An essential element of this navigation
is that the status of each session must be maintained in the database.
5. Defense of the extreme database-centric architecture. - In another work, I conducted a
systematic comparison between two technologies using two versions of the same
application. One version was implemented using the RDBMS-only architecture,
while the other version utilized a middleware, with the ISO 25010 standard
serving as the framework [2].
In this section, I aim to
defend the extreme database-centric architecture itself, rather than advocating
for a particular technology. I will identify the theoretical advantages it
offers over a multi-tier architecture. Although this focus on advantages does
not imply that the approach is without disadvantages, the software engineering
community will readily and fully identify the latter.
The most apparent savings can be
observed in terms of technology. The RDBMS is the only required component,
eliminating the need for a middleware technology. This can result in savings in
computing and communication time in many cases, regardless of whether it leads
to savings in licenses. Moreover, this technological simplicity reduces the
number of components, thereby minimizing potential points of failure or
vulnerability. These technology savings subsequently translate into process and
personnel savings.
Process savings manifest in various
forms, as multiple processes must be performed within each component of a
solution. By reducing the number of components, there
are fewer elements to monitor, update, back up, recover in the event of an
incident, or integrate into configuration and change management processes. Many
routine and exceptional processes are simplified by confining them to a single
technology type.
Personnel savings primarily
involve reducing the requirement for specific skills. Some companies or
departments may possess individuals with advanced database skills but lack
expertise in middleware technologies. In such cases, a database-centric
approach can serve as an enabler. In the event of an incident, for instance,
there is no need to determine the involved components initially. The
troubleshooting process remains consistent, starting with the analysis of stored
procedures and proceeding to the analysis of other stored procedures and
eventually SQL statements.
However, it is important to
note that this architecture may not be suitable for every case. For example, I
am not suggesting its use for e-commerce sites with high write concurrency.
Nonetheless, many systems do not have such demanding write concurrency
requirements. Additionally, most RDBMSs offer relatively simple and transparent
solutions to achieve high read scalability.
Therefore, the database-centric
architecture could be applied in scenarios such as ticketing systems in small
and medium-sized companies, in-house applications, or systems with low write
but high read activity, like documentation systems or web logs. Furthermore, it
can be an excellent alternative for converting desktop applications to web
applications, especially when the existing architecture is already
database-centric, and the business logic layer is implemented using a DBPL
within the RDBMS.
Investing in the
implementation of business logic in the DBPL of an RDBMS also proves to be a
favorable option when presentation and middleware technologies are expected to
change more frequently in the long term compared to RDBMS technologies.
Moreover, the technological simplicity offered by this approach has the
potential to reduce IT operating costs.
6. Conclusions. - The
APEX case could represent an anomaly for following an architecture that does
not meet expectations about how a web application should be structured.
Those expectations are usually tacit, arising from continuous exposure to
papers, textbooks and technologies that propose, describe
and follow very different architectures.
When the web was invented, object orientation
already existed. After the first experiences with technologies such as CGI,
objects were a dominant trend in web applications, and along with objects at
least three-tier architectures and middleware. These trends could be seen as a
true paradigm in the sense of Kuhn's scientific paradigm[3], where a new paradigm replaces the previous one [12]. The limitations
of CGI could have been seen as evidence of a crisis of the "structured
programming paradigm", and in that sense the new "object-oriented
paradigm" was not simply an alternative but an overcoming. These ideas,
explicitly or implicitly, may have dominated in both the academic and industry
communities, and may perhaps explain the scarcity of works focused on
database-centric architectures, and the uniqueness of APEX as an extreme
database-centric architecture.
As far as I know, no one has postulated the
following historical conjectures: 1) the trend of using object-oriented
middleware was historically conditioned (I don't say determined) by the
difference in maturity between OOP and DBPLs, 2) that trend was never
explicitly challenged theoretically, even as DBPLs matured into a reasonable
alternative, 3) Oracle's development of APEX was largely unplanned and is
little known outside the APEX specialist community, and 4) no one has cautioned
that APEX represents in practice a theoretically valid alternative.
While it is understandable historically why the
alternative of an extreme database-centric architecture was not considered,
conceptually it is a valid alternative, and there is at least one product in
the industry that provides at least a glimpse of its possibilities. Moreover,
there is no reason to think that Oracle has exploited all the possibilities of
the architecture, or that the internal design of its product is the best
possible.
In my master thesis I hope to have demonstrated
that the development of a technology such as APEX does not depend on any
particularity of the Oracle RDBMS. With any RDBMS that has a mature DBPL it is
possible to build a similar technology, and the architecture of web applications
developed with such technology have a number of
inherent advantages that make them attractive for some use cases.
If I am correct in the
aforementioned, it would be more appropriate to consider the extreme
database-centric architecture not as a paradigm superseded in the sense of
Kuhn, but rather as an underexplored yet progressive research programme in the sense of Lakatos[4] [13].
It would be reasonable to invest efforts in
this alternative research programme to ascertain
whether the theoretical development of the programme
precedes empirical development that could yield numerous benefits. This is the
main reason why, in this scenario, a defense seemed timely.
1. References
[1] Vicente, A., Etcheverry, L. and Sabiguero, A; An RDBMS-only architecture for web
applications, 2021 XLVII Latin American
Computing Conference (CLEI). IEEE, 2021.
[2] Vicente, A; La
arquitectura RDBMS-only: una arquitectura database-centric para aplicaciones Web, Tesis de maestría.
Universidad de la República (Uruguay). Facultad de Ingeniería, 2021. [Online]. Available: https://hdl.handle.net/20.500.12008/31620
[3] Scourias, J; Aspects of client/server
database systems, University of Waterloo, 1995.
[4] Koppelaars, T; A Database-Centric Approach
to J2EE Application Development, Oracle Development Tools Users Group (ODTUG),
2004.
[5] Greenspun, P; Database Backed Web Sites:
The Thinking Person’s Guide to Web Publishing. Ziff-Davis Publishing Co., 1997.
[6] Ceruzzi, P; Computing: a concise history,
MIT press, 2012.
[7] T. A. S. Foundation; Rfc 3875 - the common
gateway interface (cgi) version 1.1, 2004. [Online].
Available: https://tools.ietf.org/html/rfc3875
[8] Nielsen, J; Noncommand user interfaces,
Communications of the ACM, vol. 36, no. 4, pp. 83–99, 1993.
[9] Kim, W; Object-Oriented Database Systems: Promises, Reality, and
Future, in VLDB, vol. 19, 1993, pp. 676–692
[10] Cimolini, P; Oracle Application Express
by Design: Managing Cost, Schedule, and Quality. Apress,
2017.
[11] Llewellyn, B; NoPlsql versus ThickDB, 2016. [Online]. Available: https://web.archive.org/web/20170909164923/https://blogs.oracle.com/plsql-and-ebr/noplsql-versus-thickdb
[12] Kuhn, T; The structure of
scientific revolutions. University of Chicago press, 2012.
[13] Lakatos, I; Falsification and the methodology of scientific
research programmes, in Lakatos I. and Musgrave A.
Criticism and the growth of knowledge, Cambridge University Press, 1970
[14] Lakatos, I; History of science and its rational reconstructions, PSA: Proceedings of the biennial meeting of
the philosophy of science association. Vol. 1970. D. Reidel Publishing, 1970.
Nota
contribución de los autores:
1.
Concepción y diseño del estudio
2.
Adquisición de datos
3.
Análisis de datos
4.
Discusión de los resultados
5.
Redacción del manuscrito
6.
Aprobación de la versión final del manuscrito
AV
ha contribuido en: 1, 2, 3, 4, 5 y 6.
Nota
de aceptación: Este artículo fue aprobado por los editores
de la revista Dr. Rafael Sotelo y Mag. Ing. Fernando
A. Hernández Gobertti.
[1] Magíster
en Informática. Facultad de Ingeniería, Universidad de la República (UDELAR), Uruguay, avicente@fing.edu.uy, ORCID iD: https://orcid.org/0000-0003-3575-5326
[2]This classification,
however, does not make it clear how the "lots of code" of each layer
would be distributed in the middle and data tiers of a thin/fat/fat
architecture. For this reason, an alternative that allows these distinctions to
be made is presented below.
[3]Many have quoted
Kuhn applying his idea of paradigms to technology, without realizing that Kuhn
was referring to science. The guiding principle of technology is not truth, but
utility, and for a "technical paradigm" to replace another, the
latter should constitute an overcoming according to all possible criteria. To
what extent one can speak of "technical paradigms" and what scope
they might have, is a work that, I believe, remains to be done.
[4]Again, it should be
noted that Lakatos speaks of scientific (and not technological) research programmes. It is far from obvious what, mutatis mutandi, can be preserved by moving from the realm of
science to the realm of technology. In any case, I think the idea I am trying
to convey is clear: if in the realm of science where (generally) truth is
considered the guiding principle, it is reasonable to work in parallel on
alternative research programmes, how much more
reasonable should it be to do the same in the realm of technology where the
main guiding principle is utility?