1) Architectural Foundations Flashcards
What is the internet best understood as?
A network that connects many computers
The term ‘internet’ is a portmanteau of ‘interconnected network’ (Pomaska, 2005)
How does the classic home network differ from the internet?
The classic home network connects computers locally, while the internet connects them on a global scale
What role do switches play in a local network?
They connect individual computers to each other
Can users join the internet freely?
No, organized access must be provided
What is an ISP?
Internet Service Provider
What does an ISP provide to the end user?
Hardware components and software for internet access
Example hardware includes routers
What is the function of repeaters in a wireless network?
To increase the range of internet access by amplifying the signal
What types of cables are typically used to connect to the provider’s core network?
Copper cable or fiber optic connections
Fiber optic connections are more modern than copper cables.
What is the purpose of NAT in a local home network?
To convert a local IP address into a public IP address
NAT stands for Network Address Translation.
What happens to a local computer’s request once it is sent through the router?
It is forwarded to the responsible servers using the public IP address
The request can also be directed to servers reachable via IP addresses.
How does a router handle the response from the responsible server?
Exchanges the public IP address for the local IP of the requesting computer and forwards the response
This process ensures that data is directed back to the correct local device.
Fill in the blank: The local computer’s request is forwarded to servers by means of the _______.
public IP address
What is the purpose of standardization in internet communication?
To establish a common procedure for interacting and exchanging data
Standardization is typically done through protocols.
What are the most commonly used protocols on the internet?
Internet Protocol (IP) and Transmission-Control Protocol (TCP)
TCP can be used both on the internet and locally in private networks.
Why is it not efficient to transmit a data packet in one piece over long distances?
It would take up an unnecessary amount of resources for too long
Even if the data packet is very small.
What is the maximum size of a TCP/IP segment data packet?
1,500 bytes
This is also the maximum size for Ethernet connections.
What is the maximum size allowed for IP packets?
65,535 bytes
However, they are typically limited to 1,500 bytes for Ethernet transmission.
How much data is available for user data in a TCP/IP segment?
1,460 bytes
This is after reserving 20 bytes for the header.
What is the purpose of the destination address in data packets?
To indicate where each data packet should be sent
The destination address is the IP address.
What format does an IPv4 address typically take?
Four blocks of three digits each, with values from 0 to 255
For example, 10.155.124.214.
What is the definition of a 32-bit address?
An IPv4 address
It consists of four blocks of numbers.
What is the process called when data packets are forwarded via different nodes?
Routing
This process ensures packets reach their destination.
What happens to data packets once they reach the recipient?
They are combined back into the original message
This is then displayed to the end user.
How are IPv4 addresses structured?
IPv4 addresses are divided into four blocks of three digits each, with leading zeros neglected.
How many possible IPv4 addresses are there?
There are a total of 4,294,967,296 possible IP addresses that can be assigned.
Why is the supply of IPv4 addresses exhausted quickly?
The supply is exhausted quickly because more than 20 billion internet-capable devices were in use in 2018, each assigned a new IP address when connecting to the internet.
What is the significance of IoT technology in relation to IP addresses?
IoT technology is still in its infancy, leading to an increase in internet-capable devices as home automation and intelligent networking become more widespread.
What is the purpose of expanding the IP space from IPv4 to IPv6?
The IP space was expanded from 32 bits to 128 bits to accommodate the growing number of devices.
How are IPv6 addresses represented?
IPv6 addresses are specified in a hexadecimal representation, e.g., 2001:0db8:85a3:08d3:1319:8a2e:0370:7344.
What is the increase in address space from IPv4 to IPv6?
The address space increases from 2^32 addresses (IPv4) to 2^128 possible addresses (IPv6).
How many individual addresses can IPv6 allow?
IPv6 allows for approximately 3.4 x 10^38 individual addresses (340 sextillion).
What is assigned to each computer and server for identification?
An IP address is assigned to each computer and server for identification.
Why do we use the domain name system (DNS)?
The DNS is used to assign a domain to an IP address, making it easier to address servers.
What is an example of an internet address?
An example of an internet address is ‘www.iu.org’.
What is a top-level domain (TLD)?
A top-level domain (TLD) is the last part of a domain name, such as .org, .de, or .com.
What is the second-level domain (SLD) in ‘iu.org’?
The second-level domain (SLD) in ‘iu.org’ is ‘iu’.
What is the term for ‘iu.org’?
‘iu.org’ is called a domain.
What does the domain name system (DNS) do?
The DNS translates the entered domain into the IP address of the server hosting the website.
How can the domain name system (DNS) be described?
The DNS can be thought of as a kind of database or table with corresponding assignments.
What structure do domain addresses follow?
Domain addresses follow a tree structure.
What are corresponding subdomains?
Corresponding subdomains are located on a lower hierarchy level and can be assigned to their respective top-level domains, such as ‘com,’ ‘org,’ and ‘net’ in the form en.wikipedia.org.
What is dynamic DNS (DDNS)?
Dynamic DNS (DDNS) allows for the updating of the assignment database so that a server without a statically assigned IP address can still be associated with a static web address.
What is a typical application of DDNS?
A typical application of DDNS is the operation of a private server at home that can be connected to the internet and accessed via its IP address.
What problem arises with private servers and IP addresses?
The problem is that most privately accessible providers regularly interrupt the internet connection, resulting in a reassignment of the IP address.
How does DDNS help with dynamic IP addresses?
DDNS maps the dynamic IP address to a static IP address, ensuring the server is permanently accessible.
What security concerns arise from using DDNS?
Using DDNS makes it easier for attackers to find and attack a server that may have configuration weaknesses.
What is a uniform resource locator (URL)?
A URL is an address entry of the generic form: protocol://server.domain-name/folder/file.
What is a frequently used protocol for URLs?
HTTP (hypertext transfer protocol) is a frequently used protocol, which also exists in encrypted form as HTTPS.
What does a URL specify?
A URL specifies a location for a resource on a server.
What is the purpose of the server in a URL?
The server organizes files like a local computer, with a folder structure.
What happens when you call a domain in a URL?
Calling the domain directs you to the server’s ‘home’ directory, which may contain other folders.
What is the output file when accessing a folder in a URL?
The file ‘index.htm’ or ‘index.html’ is output automatically and displayed in the browser.
What is a uniform resource name (URN)?
A URN identifies a resource or a scheme with a freely assigned name.
What is the relationship between URL, URN, and URI?
Both URL and URN fall under the generic term uniform resource identifier (URI).
What is a web page?
A web page is one page of a website displayed in a browser and located as a file on a server.
What is a server?
A server is a program that runs on a computer, such as ‘Apache’ or ‘nginx.’
What is HTML?
HTML, or hypertext markup language, is a markup language that describes how a web page should be displayed.
What is the purpose of CSS?
CSS, or cascading style sheets, is a file that contains different style sheets and determines how HTML elements like headings or paragraphs are displayed in the user’s browser.
What is XML?
XML, or extensible markup language, is a metalanguage for defining markup languages and can store data that is logically organized.
What is a document type definition (DTD)?
A DTD defines the syntax and meaning of individual expressions in XML.
How can XML data be converted?
Data stored in XML can be converted into HTML using a blueprint and extensible style language (XSL).
What are client-side web applications?
Client-side web applications are programmed to execute calculations and display a web page primarily in the end user’s browser.
What are static web pages?
Static web pages are fixed on the server and are not generated and transmitted to the end user on a request-specific basis.
What are server-side web pages?
Server-side web pages are based on the server performing calculations to render the web page and execute database queries.
What are hybrid web applications?
Hybrid web applications combine both client-side and server-side approaches.
What are static web pages?
Static web pages deliver the same output to the user’s browser every time they are accessed.
An example is a Word document stored on a hard disk.
How are changes made to static web pages?
Changes are made by direct modification of the HTML file by a developer.
What is client-side dynamics?
Client-side dynamics refers to extending an initially static web page with technologies like JavaScript.
What can JavaScript do on a web page?
JavaScript can accept user input, change the appearance of the HTML document, perform arithmetic operations, and generate return values.
Where is JavaScript executed?
JavaScript is executed directly in the user’s browser, not on the server.
How is JavaScript integrated into a web page?
JavaScript code is integrated directly into the HTML web page as a tag.
What is server-side dynamics in web development?
Server-side dynamics refers to processes generated on the server, as opposed to client-side dynamics. It includes using script languages and programs to communicate with the server through mechanisms like CGI or server extensions like PHP.
What are CGI and how do they work?
CGI (Common Gateway Interface) is a communication protocol between the server and an application. It allows servers to execute scripts written in various programming or script languages, facilitating server-side interaction.
How can PHP be used for server-side dynamics?
PHP is a server-side scripting language integrated into HTML files. It processes data, performs calculations, and generates HTML output, which is then sent back to the client or browser.
What are the key factors driving the need for different web development architectures?
The increasing demand for higher availability, flexibility, fault tolerance, reliability, scalability, and ease of deployment are key factors. These are essential for businesses to remain agile and align their web applications with business goals and market opportunities.
Why is it important to understand architectural patterns and trends in web development?
Understanding architectural patterns and trends helps developers choose the best design or architecture for solving specific problems, ensuring that web applications meet performance, scalability, and business requirements. It also helps stay aligned with industry updates and best practices.
What are the common architectural styles in the web industry?
The common architectural styles include monolithic, service-oriented, microservices, and serverless architectures. These styles cater to different application needs and offer varying benefits and trade-offs.
What is a Multi-Page Application (MPA)?
An MPA (Multi-Page Application) is a traditional web application where each user request results in a new page being rendered and sent back to the browser. This means the entire page, including HTML, scripts, styles, and templates, is reloaded with each page change.
What is the main advantage of Multi-Page Applications (MPAs)?
The main advantage of MPAs is fast initial page loading. Since the content is rendered on the server-side and then sent to the client, the first page load is quick and efficient.
What is a major drawback of Multi-Page Applications (MPAs)?
A major drawback is the cost of server-side round trips, which can increase bandwidth usage. Although AJAX and other techniques have alleviated this issue, it still adds complexity to development and deployment.
What is a Single-Page Application (SPA)?
A Single-Page Application (SPA) is a client-side web application that renders content dynamically in the browser using JavaScript, Angular, or Bootstrap. Unlike MPAs, SPAs do not require page reloads during use.
What is a key benefit of Single-Page Applications (SPAs)?
SPAs offer faster performance after the initial load because only data is sent between the client and server. This eliminates the need to reload the entire page, improving the user experience.
What are some examples of Single-Page Applications (SPAs)?
Examples of SPAs include Gmail, Google Maps, AirBNB, Netflix, Pinterest, PayPal, Facebook, and GitHub. These platforms provide smooth, scalable user experiences by utilizing SPA architecture.
What is a drawback of Single-Page Applications (SPAs)?
A drawback of SPAs is slower initial load time, as resources like CSS, JavaScript, and HTML templates are loaded all at once at the beginning. This can cause delays, especially for large SPAs.
What is microservice architecture?
Microservice architecture emerged to address the shortcomings of monolithic and service-oriented architectures (SOA). It breaks an application into small, independent services that can be developed, deployed, and scaled independently.
What is monolithic architecture?
Monolithic architecture is a software design where the application is built as a single piece of code and deployed on a single machine. All components are interconnected and interdependent, resulting in tightly coupled code.
What are the advantages of monolithic architecture for small applications?
The advantages of monolithic architecture for small applications include:
- Better performance
- Easier deployment due to simpler architecture
- Easier testing and debugging despite tightly coupled logic
- Easier scaling (by running multiple instances of the same application)
What are the disadvantages of monolithic architecture as the application grows in size and complexity?
As applications grow, the disadvantages of monolithic architecture include:
- Difficult to maintain (changes in one part affect others)
- Hard to introduce different technologies or programming languages (since it’s a single unit)
- Challenges in distributing functionality and responsibility among multiple teams (changes by one team can impact others)
What is Service-Oriented Architecture (SOA)?
Service-Oriented Architecture (SOA) is a design approach where an application is broken into services that communicate with each other and meet user requirements. It is the foundation for microservices, with each service performing a specialized task.
What are the advantages of Service-Oriented Architecture (SOA)?
Key advantages of SOA include:
- Flexibility: Teams can work on different services without affecting each other.
- Loose coupling: Services are independent, allowing for updates without affecting other services.
- Easy testability: Each service can be tested independently.
What is a drawback of Service-Oriented Architecture (SOA)?
One drawback is that SOA still deals with large services, leading to difficulties similar to those in monolithic applications, such as deployment issues, maintenance, and scalability challenges.
What is the concept behind microservices architecture?
Microservices extend SOA by dividing services into smaller, fine-grained web services, with each service being single-purpose and performing one task optimally. Microservices are loosely coupled, independent, and can be developed, tested, deployed, and managed as individual sub-applications.
What is the key difference between SOA and microservices?
The main difference is the granularity of the services: Microservices are smaller, single-purpose, and more focused than SOA services, which tend to handle multiple tasks and are larger.
What are the advantages of using microservices architecture?
Advantages of microservices include:
- Easier scalability: Each service can be scaled independently.
- Quick and easy deployment: Services can be deployed independently without modifying the entire application.
- Faster updates: New features or updates can be deployed quickly and independently.
- Independent testing: Services can be tested separately without impacting each other.
What are some challenges of microservices architecture?
Challenges include:
- Distributed complexity: Managing a distributed system introduces complexity in identifying failures and troubleshooting.
- Difficulty in decomposition: Deciding the right microservices for a complex system can lead to an overwhelming number of services.
- DevOps dependency: Managing multiple services requires strong DevOps practices to ensure availability and monitoring of all services.
What does “serverless” architecture mean?
Serverless architecture allows developers to build and run applications without managing infrastructure. While the application still runs on servers, cloud service providers handle server management and scaling dynamically.
What are some cloud providers that offer serverless architecture services?
Major cloud providers offering serverless architecture services include Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, and IBM.
What is one key advantage of serverless architecture?
One key advantage is freedom from infrastructure planning, allowing developers to focus on building core products without worrying about server management or infrastructure.
How is serverless architecture cost-effective?
Serverless architecture is cost-effective because you only pay for the actual compute resources used, as code is executed on-demand, reducing the need for maintaining minimum infrastructure levels.
What makes serverless architecture scalable and flexible?
Serverless architecture can automatically scale compute capacity up or down based on demand, avoiding the need for excess servers during off-peak periods or shortages during peak demand.
What benefit does serverless architecture offer to developers in terms of technologies?
Serverless architecture allows developers to choose the best languages and runtimes based on functionality, and provides flexibility to experiment with different technologies as cloud providers expand their offerings.
What are some challenges of serverless architecture?
Challenges of serverless architecture include:
- Vendor-based limitations (e.g., time limits on function execution)
- Vendor lock-in (difficulty moving between providers)
- Difficulties with debugging and monitoring
- Multitenancy issues (security and performance concerns when sharing servers)
- Immaturity (lack of well-established standards and best practices)
What is a vendor-based limitation in serverless architecture?
Vendor-based limitations include restrictions on function execution time. For example, Amazon imposes a five-minute execution limit per function, which makes serverless unsuitable for tasks like video processing or constant traffic applications.
What is vendor lock-in in the context of serverless architecture?
Vendor lock-in occurs when migrating from one serverless provider to another is complicated, requiring refactoring due to differences in formats and deployment methods between providers.
What are some challenges with debugging and monitoring in serverless architecture?
Debugging and monitoring are difficult in serverless architecture due to a lack of control over execution performance and resource use. However, this is improving with better monitoring tools being integrated into platforms.
What are multitenancy issues in serverless architecture?
Multitenancy issues arise when different clients share the same server. Problems include security risks (e.g., one client accessing another’s data) and performance issues (e.g., heavy load from one client affecting others).
Why is serverless architecture considered immature?
Serverless architecture is considered immature because it evolves quickly, and standards and best practices are still being established compared to other more mature software architectures.