Organizational Needs: In this section of project(AdventureWorks is an organization you have to develop needs for architecture, components, and requirements), you will analyze the needs of AdventureWo

A. Architectural requirements needed for implementing a client/server system within this organization

For a company to have multiple users across globe and work with multiple databases, a 3-tier network architecture model is highly recommended. It consists of 3 layers

Layer -1 - Presentation Layer - This is the client facing side of the application, which sends content to browsers in the form of HTML/JS/CSS and handles user interactions. Frameworks like React, Angular, Ember can be used depending on application.

Layer- 2 - Application Layer - This is application server layer, which processes the business logic for the application, handles transport of data between database and user can be used in conjunction with identity management software. PHP, Python, JAVA are some of the languages which can handle heavy usage scenarios and are highly recommended.

Layer -3 - Data Layer - This is where the database management system is installed and provides access to application data and saves all user input. Depending on the budget and the level of scalability MSSql, Mysql, Oracle RDBMS can be used, and all of these provide Redundancy options in case of server failure.

As we are dealing with 2 databases in conjunction, any transaction which is happening one server should be reflected on the other. So, setting their database to replication can help sync the transactions as soon as they happen.

B. Component requirements needed for implementing a client/server system within this organization

A client/server network has three main components: workstations, servers and the network devices that connect them.

Workstations - These are the computers that are at the client’s location. They don’t need to be powerful, as most of the heavy lifting is done by the server itself, these should have enough power to drive all the clients I/O devices.

Servers - These are the hard workers in Client/Server Architecture as they have many functions as a central repository of files, programs, databases and management policies. Servers are of two types namely App servers and Database servers. App servers where all the runtimes are installed and are tasked with the logic operations and the others are the Database servers, which have a single task of Storing and Retrieving of data. The Database servers can in turn have extra layer of storage servers in case of high data intensive applications. The organization should have multiple servers spread across multiple geographic locations to act as redundancy and load balancers.

Network devices - These play a key role and whole user experience depends on these devices as they are solely responsible for moving data to and from servers to users. In any network, there are modems, Routers and access points.

  • Modems- These act as an endpoint for server to the open internet. Modems have internal firewalls to protect the server from eternal attacks which try to bring server down.

  • Routers - Routers connects to the modem and allows multiple devices to use that connection at the same time by sending the all the requests from clients as if originated from router and after getting the return data, they send it back to the original device which requested data. It also direct traffic inside the Network, so the devices can talk to each other inside network.

  • Access Points - Access points are used in places where wired connections are not optimal, they generate the Wi-Fi signal your device attaches to — allowing you connect wirelessly to the network.

C. In order to meet the architectural requirements and the needs of the organization, I would suggest the following Components

1. Architectural components - Use Html5/JS based UI running on an AngularJS framework with multiple app servers running python along with MySQL Database (Opensource) running in live Replication.

2. Physical Components -

  • Workstations - Windows Thin client-based machine for the user side, with minimum requirements to run a browser and support most I/O.

  • Servers- Multiple Linux based machines running in a Multi CPU Configuration to handle many connections at once and provide redundancy in case one goes down.

  • Network Devices - Modems with software and hardware-based intrusion protection systems, Gigabit speed routers for connecting all the workstations to the network with Enterprise grade access points with best in class encryption methods. I would also choose a best Identity management software to decide how much data a user can access at any given time.

References:

(n.d.). Retrieved from techopedia.com: https://www.techopedia.com/definition/23813/three-tier-clientserver

Jayaram, P. (2018, September 11 ). SQL Server replication: Overview of components and topography. Retrieved from sqlshack.com: https://www.sqlshack.com/sql-server-replication-overview-of-components-and-topography/

What’s the Difference Between A Modem, A Router and an Access Point. (n.d.). Retrieved from ct-networks: https://blog.ct-networks.io/what-s-the-difference-between-a-modem-a-router-and-an-access-point-64f2a2865721