Foundations of System Development – week 11
Anatomy of Software
Web-based applications
Web-based applications are software applications that run on a web server and can be accessed via a web browser over the internet. These applications do not require installation on a user’s computer or device. Instead, they are hosted on a remote server and delivered to the user’s device over the internet.
Key characteristics of web-based applications
- Accessible Anywhere: These applications can be accessed from any location that has an internet connection, making them highly versatile and convenient for users.
- Uniformity: Web-based applications are designed to work uniformly across multiple platforms (Windows, macOS, Linux) and devices (computers, tablets, smartphones) because they run in a web browser.
- Uses standard IP protocols: Web-based applications communicate over the internet using standard Internet Protocol (IP) such as HTTP or HTTPS.
- Easier Updates: Since the software is hosted on a server, updates can be applied centrally by the provider, ensuring all users have access to the most recent version of the software.
Embedded software
Embedded software is a type of software that is embedded in hardware devices to control their functions. This software can range from basic firmware controlling a digital thermometer to complex real-time operating systems (RTOS) running an aircraft’s avionics system.
Key characteristics of embedded software
- Purpose-Built: Embedded software is designed specifically for the device it controls. It’s typically designed to perform a specific function or set of functions.
- Operates in Real-Time: Many embedded software systems need to process data and respond in real time. This is especially true for control systems in sectors like aviation, automotive, and industrial automation.
- Resource-Constrained: As embedded software runs on the device it controls, it often needs to work within the constraints of the device’s limited computing resources.
- Dependability: Given that embedded software often controls critical functions, it is typically designed to be highly reliable and stable.
Anatomy of Web Protocols
XML
XML, which stands for Extensible Markup Language, is a language used to store and transport data. If you’re familiar with HTML, the language used to create web pages, you can think of XML as a cousin. However, unlike HTML, which is used to display data and focuses on how data looks, XML focuses on what the data is.
Here are some key concepts about XML explained in a simple way:
- <pre><code>
Tags: Like HTML, XML uses tags (words or abbreviations enclosed in angle brackets, like <tag>). However, in XML, you can create and define your own tags based on the data you’re working with. For example, if you’re storing data about a book, you might use tags like <title>, <author>, and <year>. This is what we mean when we say XML is "extensible".
</code></pre> - Structure: XML is all about structure. It organizes data in a way that both humans and machines (like computers) can understand. Because of its simple, self-describing structure, it’s easy to see what kind of data is stored in an XML document just by looking at it.
- Transporting Data: One of XML’s main uses is to transport data between systems, even if those systems are different. Because XML is a standard format that’s widely accepted, it’s like a universal translator, helping different systems communicate.
- Not just for web: While HTML is primarily used for creating web pages, XML is not limited to web use. It’s used in a wide variety of applications, including databases, document storage, and more.
To sum it up, XML is like a box that you can custom design based on what you want to put in it. You can create compartments (tags) that are perfectly shaped for the items (data) you want to store. And this box is universally recognizable, making it easy to send its contents from one place to another.
Architectural Concepts
Technical Architecture (or Technology Architecture)
This refers to the organization and design of a system’s hardware components. It involves defining the types and specifications of hardware, such as servers, computers, network devices, and other physical devices that are required to support a system. This could include the brand and model of servers, the networking standards used, or the devices used for data storage, among other things. It’s like the blueprint for a house – it tells you what materials you need (wood, bricks, metal, etc.) and how they should be arranged and connected to build the house.
Software Architecture (or Application Architecture)
Software architecture is more about the organization and design of a system’s software components. It includes the identification and arrangement of different software applications, their interactions with one another and with users, and the rules and guidelines for these interactions. This could involve deciding what programming languages to use, how data is stored and accessed, or how different software components communicate with each other. In the house analogy, the software architecture is like the interior design – it’s about deciding where to put the furniture, what colors to paint the walls, and how to arrange the rooms for easy movement and function.
Software as a Service (SaaS)
SaaS, or Software as a Service, is a way of delivering software over the internet. Instead of buying a software program and installing it directly on your computer or device, you access the software and its features through a web browser. It’s like watching a movie on a streaming service like Netflix, as opposed to buying a DVD and watching it on your DVD player.
No software is installed on the user’s device
With SaaS, you don’t need to worry about system requirements, downloading software, or installing updates. Everything is managed by the service provider. All you need is a device with an internet connection and a web browser.
Application services are accessed remotely
The software isn’t on your computer; it’s hosted on the provider’s servers. This means you can access it from anywhere, on any device, as long as you have an internet connection. So if you’re using a SaaS application for work, for example, you could access your work files from your computer at the office, your laptop at home, or even your smartphone while on the go.
User data is isolated and stored on common servers
When you use a SaaS application, your data is stored on the provider’s servers, but it’s kept separate from other users’ data for security and privacy. If you’re using a SaaS app for your business, for instance, you don’t need to worry about another business being able to access your data.
Interoperability
Interoperability is the ability of different systems, technologies or software to communicate and work together effectively. To put it simply, it’s a bit like the game of telephone, but with computers or software applications.
Imagine you’ve written a letter in English, but your friend only speaks French. In order to understand your message, your friend would need a translator to convert your English letter into French. Similarly, interoperability in technology is like that translator – it allows one piece of software to understand and use information from another piece of software, even if they ‘speak’ different ‘languages’ or are designed in different ways.
For instance, if you create a document in Microsoft Word, but your friend uses Google Docs, interoperability would allow you to save your Word document in a format that Google Docs can open. This way, your friend can read and edit your document without having to use Microsoft Word.
So, interoperability is crucial in our interconnected world, because it allows different software and systems to work together, leading to increased efficiency, collaboration, and ease of use.
Network Diagram
A network diagram is like a map of all the different elements in a computer network. Think of it as a city map, where every building represents a computer, phone, printer, or another device, and all the roads connecting them represent the wires, WiFi, or other links that allow these devices to communicate with each other.
The map might also show things like traffic lights or roundabouts; in a network diagram, these would be equivalent to routers, switches, or firewalls that manage and control the flow of data around the network.
Just as a city map helps you understand how to get from one location to another, a network diagram can help you understand how data moves from one device to another. It can also help you see the layout of the network, locate potential problems, or plan for future growth.
Let’s say you have a computer in your bedroom and a printer in your study room. If you want to print something from your computer, the data needs to be sent from your computer to the printer. Your network diagram would show how this happens – it might involve going through a router, or it might be a direct wireless connection. By looking at the diagram, you can see the path that the data takes and understand how your network is set up.