Open-source Software & Big Data and Web Architecture


Learning Intentions

  • Students will understand the core principles of open-source software, including its transparency and decentralisation.
  • Students will explore the ethical and community-driven benefits of open-source software in modern development.
  • Students will analyse how open-source software fosters collaboration and cost-effective solutions in web development​.

Syllabus Outcome

SE-12-05: Explains the social, ethical, and legal implications of software engineering on the individual, society, and the environment​.

Open-Source Software (OSS)

Open-source software (OSS) refers to software whose source code is freely available for anyone to view, modify, and distribute. Unlike proprietary software, where only the creator has control, open-source software fosters collaboration and transparency by allowing users from all over the world to contribute to its development. This collaborative model is built on key principles such as transparency, where all code changes and communication are public, and decentralisation, meaning no single entity owns or controls the software​.

The core freedoms of open-source software provide users with the ability to:

  • Use the software for any purpose, whether personal or commercial.
  • Modify the source code to suit specific needs.
  • Distribute both the original and modified versions to others​.
Significance in Web Development

Open-source software has had a profound impact on web development, shaping many of the tools and technologies we use today. Widely-used platforms such as Linux, Apache, and Node.js are built on open-source principles, offering flexibility and customisability for developers. By using and contributing to open-source projects, developers benefit from the collaborative efforts of global communities, which often results in faster bug fixes, regular updates, and innovative solutions. This decentralised approach has driven much of the innovation in web development, enabling faster, more scalable applications​.

Source: What is Open Source Software (OSS)?

Open-source software (OSS) has revolutionised web development by providing developers with cost-effective, flexible, and secure solutions. Below are the key benefits of using open-source in web development.

Cost-Effectiveness

One of the most attractive aspects of open-source software is that it is typically free to use. For individuals and businesses, this eliminates licensing fees associated with proprietary software, significantly reducing the overall cost of development. Startups, educational institutions, and even large organisations benefit from the financial savings OSS provides, allowing them to allocate resources elsewhere​.

Flexibility and Customisation

Open-source software allows developers to modify the source code to suit their specific project needs. This flexibility means developers are not locked into the constraints of proprietary tools and can tailor software to create unique features and functions. Whether it’s adjusting small details or overhauling an entire framework, OSS provides the freedom to innovate without the limitations imposed by vendor restrictions​.

Community Support

Open-source projects are supported by vast global communities of developers who collaborate, share knowledge, and contribute improvements. This results in faster bug fixes, regular updates, and a wealth of documentation available for free. Developers can rely on the experience and contributions of others, accelerating development and improving the quality of the software​.

Transparency and Security

The open nature of OSS fosters transparency, as anyone can review the code. This transparency allows developers to identify and address security vulnerabilities quickly. Since the code is peer-reviewed by many contributors, OSS often has stronger security protocols compared to proprietary software, where code can be hidden from public scrutiny​.

These benefits make open-source software an essential component in modern web development, offering cost savings, flexibility, community-driven support, and enhanced security.

Source: Everything You Need to Know About Open Source Development – GeeksforGeeks

As students, you’re already experiencing the advantages of open-source software through tools like Visual Studio Code, Python, and Node.js. These powerful, free-to-use tools are widely adopted in the industry and provide flexibility and community-driven support. By using these open-source tools, you’re gaining hands-on experience with the same technologies that professionals use every day.

In the world of web development, open-source technologies are the backbone of many projects, offering powerful tools that are free to use, highly customisable, and supported by large communities of developers. Below are some key open-source technologies that are essential in modern web development.

Web Servers: Apache and Nginx

Two of the most widely used web servers are Apache and Nginx. Apache is known for its flexibility, extensive modules, and ability to handle various types of web traffic, making it a popular choice for hosting websites. Nginx, on the other hand, is lightweight and excels at handling high-traffic websites with efficiency, often used for load balancing and as a reverse proxy server.

Source: Apache vs Nginx: Practical Considerations | DigitalOcean

Databases: MySQL and PostgreSQL

For data storage, MySQL and PostgreSQL are leading open-source relational databases. MySQL is valued for its speed and ease of use, making it a popular choice for small to medium-sized web applications. PostgreSQL is renowned for its advanced features, such as support for complex queries and transactions, and is often favoured for applications requiring more robust database management.

Source: PostgreSQL vs. MySQL: What’s the Difference? | IBM

Programming Languages and Frameworks

Open-source programming languages and frameworks are essential for building web applications:

  • PHP, a server-side scripting language, powers many web applications, with Laravel being a popular framework that simplifies tasks such as routing and authentication.
  • Python, known for its readability and efficiency, is widely used in web development with frameworks like Django, which offers rapid development and a clean, pragmatic design.
  • JavaScript Frameworks like React and Vue.js are crucial for front-end development, allowing developers to build interactive, dynamic web pages with ease.

In a future lesson you will cover Git, a version control system that is a large part of open-source development practices.

Open-source software comes with a variety of licenses that dictate how the software can be used, modified, and distributed. Understanding these licenses is crucial to ensure compliance with legal requirements and to maintain the freedom to build upon and share open-source projects.

Common Licenses
  • MIT License: This is a permissive license, meaning it allows users to use, modify, and distribute software with minimal restrictions. The main requirement is that the original copyright and license notice must be included in any distributed copies​.
  • GPL (General Public License): This is a strong copyleft license, meaning any modified versions of the software must also be open-source and distributed under the same GPL license. It ensures that derivative works remain open-source​​.
  • Apache License: Similar to the MIT License, the Apache License allows for free use, modification, and distribution of software. It also includes provisions for patent rights, providing greater legal protection for users and contributors​.

Importance of Compliance

When using open-source software, it is vital to comply with the license terms. Failure to do so can result in legal consequences, such as lawsuits or monetary penalties. For web developers, understanding the specific requirements of each license—such as whether source code must be disclosed or whether modifications can be distributed under a different license—ensures that projects remain legally compliant and respectful of the open-source community’s values​.

Start-ups, students, freelancers, and just about anyone tries to avoid for paying for things, so often people will go on the hunt for alternatives. Sometimes companies make choices, such as those Zthat dominate the market like Adobe, when for a brief moment a change to their policy enrages their users, and they look for alternatives.

A number of sites like, OpenAlternative and Open Source Alternatives, contain collections of alternative open-source (and free) alternatives for many applications. Some people take to Reddit, to create infographic like images to spread awareness of the alternatives.

Source: Open source and free alternatives to expensive software. : r/coolguides

Big Data and Web Architecture

Learning Intentions

  • Students will understand the defining characteristics of big data, including volume, velocity, and variety.
  • Students will explore the role of data mining and metadata in managing large datasets.
  • Students will analyse the impact of big data on web architecture, focusing on scalability and real-time data processing​.

Syllabus Outcome

SE-12-03: Analyses how current hardware, software, and emerging technologies influence the development of software engineering solutions​

Lesson Activity

Activity: Learning Git

Big data refers to extremely large and complex data sets that traditional data processing methods are unable to handle effectively. These data sets come from various sources, such as social media, sensors, or website interactions, and can provide valuable insights when properly analysed. Big data is often characterised by the three “Vs”: Volume, Velocity, and Variety​.

  • Volume: Big data involves handling massive amounts of data, often in the range of terabytes or even petabytes. This volume of data is often low-density and unstructured, meaning it lacks a clear format, like social media posts or sensor data​.
  • Velocity: Data in big data systems arrives at high speed, often in real-time. For instance, data from sensors or online transactions need to be processed and analysed quickly to provide timely insights​.
  • Variety: Big data includes many different types of data, from traditional structured data in databases to unstructured formats such as text, audio, video, and more. The challenge is to process this diverse range of data to extract meaningful insights​.

These characteristics make big data a powerful tool for improving business decisions and developing web applications that can analyse user behaviour and predict trends.

Source: What Is Big Data? | Oracle Australia

Data mining is the process of analysing large datasets to discover patterns, relationships, and useful insights. By applying various algorithms and techniques, data mining extracts valuable information that can be used for decision-making, predicting trends, and identifying hidden patterns in vast amounts of data​. In the context of web development, data mining can analyse user behaviour, improve customer experience, or enhance targeted marketing efforts.

Impact on Web Architecture
  1. Need for Scalable Storage: As data mining involves analysing large datasets, web applications require scalable storage solutions. This means having databases or cloud-based storage that can grow as the volume of data increases, ensuring that the system can handle the storage demands of big data​.
  2. Increased Processing Power: Data mining requires significant computational resources to process and analyse large datasets. Web applications performing data mining need robust back-end systems with increased processing power to ensure real-time or near real-time data analysis and insights​.

Data mining enables businesses to make more informed decisions and optimise their web platforms based on user data and interaction patterns.

Source: Web Mining – GeeksforGeeks

Data Mining vs Artificial Intelligence

Data mining and artificial intelligence (AI) are closely connected, especially in how AI relies on data mining to function effectively. Data mining focuses on extracting patterns and useful information from large datasets, which AI then uses to make decisions, learn, and adapt over time. In web development, data mining helps identify patterns in user behaviour, which AI systems use to personalise user experiences, such as content recommendations. While data mining aims to find hidden insights, AI applies these insights to create intelligent, adaptive systems that enhance web applications. Essentially, data mining lays the groundwork by processing raw data, which AI leverages to achieve higher-level decision-making​.

Source: Data Mining vs Artificial Intelligence – Javatpoint

Metadata refers to descriptive or structural information that provides additional context about data, helping to organise, manage, and understand that data more effectively. Often described as “data about data,” metadata plays a significant role in multiple domains, including digital files, libraries, websites, and databases​.

Examples of Metadata

Metadata varies based on the type of data it describes:

  • In digital photography, metadata might include the date and time the photo was taken, GPS coordinates of the location, and information about the photographer.
  • In a document context, metadata can describe the author, the title, the creation date, and the keywords used.
  • In web development, metadata includes information like page titles, meta tags, and descriptions that help search engines understand and index web content​.
Types of Metadata

There are various types of metadata that serve different purposes:

  • Descriptive Metadata: This type provides detailed information about the content itself, such as titles, authors, keywords, and summaries. For example, metadata in a book might include chapter titles, headings, and index terms, helping users find and understand the content​.
  • Technical Metadata: This includes technical details, like file formats, encoding specifications, and resolutions, often used to manage and process digital content across different platforms​.
  • Administrative Metadata: This type governs data management and lifecycle, often detailing ownership, access permissions, and file history​.
How Metadata Enhances Data Organisation and Retrieval

In web systems, metadata significantly improves the efficiency of data retrieval and management. By offering detailed descriptions of data, it enables search engines to understand the content of webpages better, which in turn improves search accuracy and ranking. For example, meta tags used in HTML help search engines index web pages accurately, ensuring that users find the right content when performing searches.

Furthermore, metadata is critical for organising large datasets. By categorising content with metadata, developers and data managers can easily locate and manage digital assets, ensuring quick access to the right information when needed. For instance, in digital libraries or content management systems, metadata allows for structured navigation, making it easier to search and retrieve specific files or pieces of data​.

By offering these structured details, metadata supports everything from search engine optimisation (SEO) in web development to data preservation and compliance in larger digital systems. Its importance in managing data across a variety of domains makes it a fundamental tool for both web developers and digital content managers.

Source: What is Metadata? – GeeksforGeeks

Streaming data refers to the continuous flow of data that is generated in real-time from a variety of sources, such as IoT devices, application logs, or social media platforms. Unlike traditional batch processing, where data is collected and processed in large, time-separated intervals, streaming data is processed as it arrives. This real-time processing allows for immediate insights and actions, making it essential for industries that rely on up-to-the-second information, such as live video streaming, financial trading, and real-time analytics​.

Examples of streaming data include live video feeds, sensor data from connected devices, or clickstream data from websites. By analysing this data as it flows, organisations can react to changes or anomalies in real time. For instance, streaming data from social media can help businesses track public sentiment about their brand or detect trends as they emerge​​.

Impact on Web Architecture

One significant impact of streaming data on web architecture is the need for real-time data processing capabilities. To process streaming data efficiently, web applications must be able to ingest and analyse data with minimal delay, ensuring that decisions and actions can be taken immediately. This often requires web systems to be equipped with powerful computing resources and scalable architectures capable of handling the large and unpredictable data volumes typical of streaming environments​.

Additionally, the architecture must support high availability and fault tolerance to ensure that data streams are processed continuously without interruption, even during high traffic or system failures. For example, live streaming platforms like Netflix or Twitch must ensure low-latency streaming, while also being prepared to scale resources dynamically in response to sudden surges in viewership​.

These considerations make streaming data architectures complex but necessary for applications that demand real-time insights and actions. As more industries embrace real-time data, the ability to manage and scale web systems effectively for streaming data becomes a critical component of modern web architecture.