Architecture is the layered assembly of hardware and software that determines the performance, cost, security and other properties of a system. The components are structured to account for inter-dependencies and conflicts amongst them.
-
System architecture
-
Describes the system as a whole and as to how the components, sub-systems and low level software are organised.
-
-
Software architecture
-
High level structure that defines the solution to meet the technical, operational and performance requirements while optimising security and manageability. This usually is the top level of code.
-
The following are three types of architectures with their advantages and disadvantages:
-
Client-server
“Two tier architecture” is a design which divides the function into a presentation layer and a data layer. The data layer is referred to as the server, and it keeps all the data, depending on the type of client the presentation can change.
Techopedia.com (Two-Tier Architecture)
Advantages
Client-server architecture has the ability to update data centrally without any action needed from the client, ease and availability of the website without the need to have many nodes.
Disadvantages
The cost of setup and the constant need to maintain security (which can be outsourced if using a cloud based server service)
-
Multi-tier architecture
The client server model can be sub-divided to different tiers. A server can be divided into many parts depending on the function and its properties. Middleware can be used at separate points. Multi-tier architectures can have any number of layers usually denoted by “N” in N-tier.
Advantages
Scalability – Having functions separated and specialised, allows for key components to be updated where there are bottlenecks; enhanced or replaced in order to scale.
Enhanced security – In this architecture sensitive processes can be placed in secure zones logically and geographically depending on its criticality.
Resilience and redundancy – Critical processes can be further divided or clustered logically and or geographically allowing for fail safes and a more resilient build.
Disadvantages
Performance - Many of the components used in such networks are third party services which can have incompatibilities, vulnerabilities and data flow issues. The geographic element and cloud computing make the network become vulnerable to ISP I/O flows.
Higher investment – Adding components, additional functionality, set up costs and maintenance are expensive. Especially if third party cloud computing is not being relied on.
-
Network and distributed architectures
“Service-oriented architecture” is one of two distributed architectures. This architecture lends itself to further breaking down tasks into sets of smaller tasks that are then performed by small independent chucks of software.
Advantages
Service reusability – Small self-contained pieces of functionality, this has broad ranging benefits. One of those is the ability to repurpose the same services to other business functions.
Greater reliability - Since SOA applications are small they are used in a variety of apps they can be rigorously tested.
Increased productivity – Developer can reuse existing apps to build additional functionality saving in development time and cost.
Disadvantages
Increase overheads – Input validation is needed between services. This increases the load and requires time affecting network’s overall performance.
Complex service management – As the tasks are so many, so are the interactions between services and their requirements which add to the complexity of managing such a network.
On the internet an attack is possible; this can be partial or render the site completely unusable and/or extracting confidential information. The security on our site has the following features.
“ISITSAFETORUN” is a variable the core page checks before the particular file is executed, this makes it harder for potential attackers to run individual files (part) to learn about the vulnerabilities of the site.
Data validation is done on two levels on the client-side and the server-side. On the client-side a limitation are placed by not allowing the user to enter data of a different format, this can keep potential attackers from entering code. However JavaScript can be disabled on the browser by the user. Further validation is done on the server side where html-special characters are checked, there is far more of a limitation on data entry and without the possibility of it being disabled. This can mitigate injection attacks where the attacker tries to input SQL commands in the input fields or the URL to get access to the information on the database.
Other attacks for which we can enhance our site are:
Man in the middle attacks intercept the traffic in and out of the website, gathering private information on the client and also identifying some of the systems. To mitigate this type of attack vector we install an SSL certificate that will change our site’s URL to start with “HTTPS” instead of “HTTP”.
Brute Force Attack uses trial and error to guess the login and password. This is done by specially designed programs that can try many times per second. To mitigate this, two-factor authentication can be used. This also puts a requirement on the user to set up 2FA.
Cross-Site Scripting (XSS) is a method where the user is the target, the attacker adds on code to a website in order to trick the user into giving their personal information. To mitigate this risk websites can use a web application filter (WAF), these come by default on web hosting services.
Bibliography
Lithmee (2018) What is the Difference Between System Architecture and Software Architecture, pediaa.com. Available at: https://pediaa.com/what-is-the-difference-between-system-architecture-and-software-architecture/ (Accessed: 16 January 2021).
What is Geocoding? – Definition from Techopedia (no date). Available at: https://www.techopedia.com/definition/467/two-tier-architecture (Accessed: 17 January 2021).
N-Tier Architecture: Tier 2, Tier 3, and Multi-Tier Explained – BMC Blogs (July 26, 2017). Available at: https://www.bmc.com/blogs/n-tier-architecture-tier-2-tier-3-and-multi-tier-explained/ (Accessed: 18 January 2021).
Advantages and Disadvantages of Service-oriented Architecture (SOA) - Tech Spirited (no date). Available at: https://techspirited.com/advantages-disadvantages-of-service-oriented-architecture-soa (Accessed: 19 January 2021).
5 Benefits of a 3-Tier Architecture - Izenda (no date). Available at: https://www.izenda.com/5-benefits-3-tier-architecture/ (Accessed: 19 January 2021).
JavaScript Form Validation | Different Types of javascript form validation (no date). Available at: https://www.educba.com/javascript-form-validation/ (Accessed: 19 January 2021).
What are Injection Attacks and Their Types? (no date). Available at: https://www.esds.co.in/blog/what-are-injection-attacks-and-their-types/ (Accessed: 20 January 2021).
-
The Most Common Website Attacks (How to Protect Yourself) (DEC 20, 2020). Available at: https://www.tripwire.com/state-of-security/featured/most-common-website-security-attacks-and-how-to-protect-yourself/ (Accessed: 21 January 2021).