Professional Documents
Culture Documents
I. INTRODUCTION
Every organizational technical issue in terms of network Desktop Application
setup and challenges may have several solutions that fits and/or
not. This is one of the important decision makings that needs to
done by the software architects during early stage or analysis phase ODBC
of software development. Considering the customer constraints
such as networks issues or available IT infrastructure is necessary.
Leaning to a full cloud solution has equivalent trade-offs that on-
premises servers can provide. And on the other-hand, inclining to DB
full on-premises server setup has trade-offs that cloud solution can
provide. Some organizational problems can be solved by full cloud
solutions, on-premise, or hybrid. To help readers understand the Fig 1: Application using Client-Server Design Pattern
how experience architects decides which approach are taken by the
development team, this paper defines and compares the With N-Tiered/Layered Architecture is the improvement
differences, pros and cons between on-premises servers and cloud of Client-Server design pattern where Clients are desktop or mobile
server setups. browsers using HTML/CSS technology and connects to web-
servers using PHP/Apache, JSP/Tomcat, ASP/.NET that serves
II. Definitions application server by hosting HTTP protocol and source its data
from remote or local database that usually relational database such
as PostgreSQL, MySQL. See Fig 2.
A. On-Premises Servers
In software architecture, application of design principles In an On-premise server setup, has scalability issue
such as SOLID principles [3] to address non-functional especially with desktop application using Client-Server design
requirements such as modularity, scalability, usability, and security approach. Multiple instances of client applications that connects to
are necessary. single relational database thru ODBC connector. With instances of
having higher traffic of database connections to the database
causing higher number DB session in the database. Relational
A. Modularity databases are designed to multiple DB sessions by implementing
With modularity, also known as Separation of Concern transactional approach but performance is also sacrificed causing
(SoC) or Single-Responsibility-Principle (SRP) in SOLID too much consumption on memory (RAM). Increasing the memory
principles which states that every module or function in a computer capacity of the database would not address it.
ICT 273 Information Technology Management
The performance or memory issue caused by too many server adds more layer of security on application layer by having
DB connections can be address in layered architecture by using authorization and authorization mechanism.
singleton database connection on web-server or application server. In cloud computing using microservice architecture,
In this application serves and middle layer that has the only access additional layer of security is handled by API gateway,
to the database which minimizes the memory load of database microservices under the API gateway are freed from burden on
server. But these setup increases the workload of application handling security measures except security management for
servers. For some organizations, such as school institutions with database connections such as relational database. Microservices are
manageable traffic on-premises with layered architecture is only accessible via single API gateways that handles security and
acceptable. orchestration of information thus minimize the negative effects of
tighter security.
But cloud servers with information systems that cater
huge number of traffic such as social media sites such as YouTube,
Facebook, and Google. The need scale in web-service layer and
III. COST IN DEVELOPMENT,
database layer is necessary to be clustered in different geographical DEPLOYMENT AND MAINTANCE
locations.
Cost refers the resources necessary to be accomplished
for the development, deployment and maintenance of a software
C. Usability
application. The cost differs whether it is done, on-premise or on-
Usability refers to the quality of a user's experience when cloud.
interacting with products or systems, including websites, software, On-premise server setup has higher cost at start but does
devices, or applications [6]. Usability is a quality attributes that not have reoccurring maintenance cost. Cloud services on the other
relates to another quality attribute efficiency. Usability is mostly hand is cheaper at start but comes with reoccurring maintenance
realized on UI on multiple dimensions that includes intuitive cost. In business perspective, going cloud is better because
design, culture, satisfaction and others. consumers have the options to continue or discontinue
subscriptions to cloud subscriptions and expenses cloud
In an On-premises servers with desktop applications that subscriptions can be charged from revenue of the company.
uses client-server design, it has issue on cross-platform
functionality and with higher risk for future technology deprecation In software development, going cloud is almost free.
being outdated from support and trends. These issues about cross- GitHub for examples, open their services to private organizations
platform and technology-proof can be minimized by using layered host private repositories, with CI/CD support via GitHub Actions
architecture where UI is implemented using browser web elements for free with some integration limitations. For development
using HTML5. Development of SPA UI frameworks such as servers, VMs with VMWare or VirtuaBox can be used.
Angular, React, and Vue and the standardized UX element with Containerized server setup with docker which is easier to setup
Materials Designs developed by Google have addressed mostly than VM is also possible for free.
usability issues.
In deployment, On-premises is free of charge, but could
In cloud computing, usability by efficiency is even more be costly in time if managing big enterprise application setup. Thu,
improved by packaging applications into different platforms such this can be minimized by establishing CI/CD setup for your
iOS (IPA), android (APK), progressing-web-application (PWA). enterprise application.
With PWA, web application can be used by the end-users IV. CONCLUSION
online and can install the web-application to his/her machine that
works even in offline-mode. With HTML5, it can support local In conclusion, the decision of using on-premise server or
caching of information by the use local database thru localstorage cloud server depends on business needs and constraints that the
and/or indexedDB which are NoSQL databases that allows PWA consumers or end-users have. For organizations like school
application to run fully offline. institutions and/or retail institution where importance of
availability quality attributes of the system is very high, the use of
on-premises or hybrid is necessary. For end-users with limited
D. Security
internet connections, cloud solutions could be possible with PWA
Security refers to providing a protection system to applications similar to Messenger App of Facebook that works
computer system resources such as CPU, memory, disk, software even offline and synchronizes to the cloud when it gets online
programs and most importantly data/information stored in the again.
computer system.
In my experience in the IT industry, I have worked with
In an on-premise server using desktop application that system in retail industry, for retails stores like super-markets on-
uses client-server architecture. The database security is handled by premises or hybrid is used. But on specialty retail stores like
the relational database itself. This approach is critical for possible boutique cloud platform is used.
security bridges since the database is expected to cater multiple
database connections, and is difficult to determine malicious access None of the two is perfect for every problem, the best
to the database with proper firewall setup. But even with strict solution I could think of in the perspective architectural approach
firewall setup, security bridges to the database is still at risk. combination of both (hybrid).
[4] Gartner
Information Technology Glossary > Scalability
https://www.gartner.com/en/information-
technology/glossary/scalability
[5] IONOS
On-premises: the license model for server-based software
https://www.ionos.com/digitalguide/server/know-how/what-
is-on-premises.