This book will explore Web Architecture from the ground up to the current level of Streaming Architectures and beyond. It means this book will explore how we reached these architectures from the Analytical Engine.
There are different eras where a certain set of technologies, we used in current systems, got a major push. Each era gave us advancement in a certain direction to reach where we are right now. Some advancement becomes obsolete and some become core that we now consider as obvious. It is like Human Evolution stages/eras,
- Stone Age
- Fire Usage
- Cooking
- Clothes
- Speech
- Modern humans
We now don't consider Fire, cooking, clothes, speech, etc as a major achievement. Since that become core of humans. Now, we are concentrating more on Intelligence, where computers are part of eco-system. Of course, the Era of Computers or Computing is the only fraction of Modern humans.
However, we now have more documentation to look at things closely and then learn fast and then adopt those changes from learning and then documenting those learning and changes along the way. If Modern humans Era is an era of Intelligence building than we are into later stages of that Era and now evolving to create Intelligence in machines.
The different Eras/Stages of Computing hardware gave us some milestones for the next era.
- Pre-20th century
- First General-purpose Computer
- Digital Computers
- Mobile Computers
- IoT (Internet of Things) specialized hardware
Before looking at these in more details. Let's digress slightly to focus on one thing that add more value to the overall book. In this book, we also discuss value, either monetary or otherwise, of the solutions. The value of a solution is what derive humans to achieve that success and evolution of humans as a society.
Humans always have fond of computing devices because they eased up records keeping, transactions' calculations, astronomical calculations and navigational calculations. If you look at earlier computing tools like Tally sticks that were used to record number and other information that help in bilateral trades and debts. The value addition that brought by Tally sticks were related to trades/debts ledger. Not mentioning money here as money might not be present in that era of human evolution. However, if you look back that in today's perspective that adds value in monetary terms.
Abacus was another computing device that eases out arithmetic tasks. Value addition of Abacus was in ways like counting important things for record-keeping, frequent trades in large numbers, etc. Progression from Abacus to Calculators involved computing advances to ease out calculations.
Timekeeping devices were also evolved from Looking at Sun and Moon to Stonehenge to Sundials to Hourglass to Clock towers to Wristwatch to Electric clock to Atomic clock. All of these involved major computing advancements in different fields over the periods of centuries. The value those enhancements brought in was from better coordination to better farming to better fishing etc. That leads us to Universal Coordinated Time (UTC) and different time-zones and daylight saving times. Time zones to coordinate things locally to region or country. Daylight saving times to better utilize local daylight. UTC to coordinate things across the globe e.g International Air travel coordination, Ships coordination, etc. It still looks like a mess to many programmers but coordination at that scale leads to some in-efficiencies and managing that is also getting more and more streamlined.
We will not go into details of all the pre-20th Century advancements since that will be a waste of time. In the pre-20th Century, two things are worth mentioning Difference engine and Analytical Engine. Difference engine was the marvel of its time. The time of complex mathematics getting solved by machines for specific purposes. Difference engine was the automatic polynomial solver of that time. That idea of Difference engine led Charles Babbage to the idea of Analytical Engine which was the idea of General-purpose computer.
Analytical Engine has an Arithmetic logic unit, Control flow with Conditional branching and Loops, and memory, making it the first design for a general-purpose computer that could be described in modern terms as Turing-complete. In other words, the logical structure of the Analytical Engine was essentially the same as that which has dominated computer design in the electronic era.
Ada Lovelace was the first person to publish an algorithm intended to be executed by Analytical Engine.
In the early 20th Century, Scientists were using different kinds of mechanical devices built for specific tasks. Specific tasks devices keep the hardware at minimal. In the early 20th century, Hardware was Mechanical devices and those were huge. These Mechanical devices or Analog Computers needed high precision and highly skilled workers needed for precision forging. Still, error rates were high and that one of the reasons for increased costs. Maintenance of those mechanical devices was also high. Also, the size of these mechanical devices was enormous.
Starting of 20th Century was also quite unstable, two World Wars happened in that period and because of these scenarios funding to build smaller and efficient devices were enormous. To cater to these needs with funding available, Electromechanical Analog devices built-in late 1930s. Electromechanical Analog devices were possible by the invention of Diode (first Vacuum Tube) in 1904 by John Ambrose Fleming. A vacuum tube consists of two or more Electrode in a vacuum inside an airtight envelope.
German engineer Konrad Zuse was able to create Z3, the world first working programmable digital computer in 1941, which was General purpose programmable computer based on vacuum tubes.
- Average calculation speed: addition – 0.8 seconds, multiplication – 3 seconds
- Arithmetic unit: Binary Floating-point, 22-bit, add, subtract, multiply, divide, square root
- Data memory: 64 words with a length of 22 bits
- Program memory: Punched celluloid tape
- Input: Decimal floating-point numbers
- Output: Decimal floating-point numbers
- Input and Output was facilitated by a terminal, with a special keyboard for input and a row of lamps to show results
- Elements: Around 2,000 relays (1,400 for the memory)
- Frequency: 5.3 hertz
- Power consumption: Around 4,000 watts
- Weight: Around 1 tonne (2,200 lb)
Konrad Zuse also introduced the world's first commercial computer, Z4 in 1945.
- Frequency: (about) 40 hertz
- Average calculation speed: 400 ms for an addition, 3 seconds for a multiplication. Approximately 1000 floating point arithmetic operations on average an hour.
- Programming: holes in 35 mm film stock, punched on a programming machine
- Input: Decimal floating point numbers, punch tape
- Output: Decimal floating point numbers, punch tape or Mercedes typewriter
- Word length: 32 bits floating point
- Elements: (about) 2,500 relays, 21 step-wise relays
- Memory: Mechanical memory from the Z1 and Z2 (64 words, 32 bit)
- Power consumption: (about) 4 kW
These were the incredible machine of its time. The memory of Z4 was mechanical i.e. punch tape. Z3 and Z4 were Turing Complete machines.
These advancements happened in the era of uncertainty and wars. These early computers either used for encryption/decryption of sensitive information, accurate attacks to moving targets, scientific calculations by scientists for the weapon of mass destruction including Nuclear to defense mechanism, etc.
The Manchester Baby was the world's first Stored-program computer. It was designed to use Williams tube as a digital storage device. Manchester Baby was small and primitive from that era standards also. Design of Machester baby led to the design of more usable computer Manchester Mark 1. Grace Hopper was the first person to develop a compiler for programming language.
In 1947, Transistor was invented. It took 7-8 years for transistors to start replacing Vacuum Tubes. Compared to vacuum tubes, transistors have many advantages: they are smaller and require less power than vacuum tubes, so give off less heat. This era is called "second generation" of computers.
The Third Generation of Computers were made possible by Integrated Circuits. The first practical ICs were invented by Jack Kilby at Texas Instruments and Robert Noyce at Fairchild Semiconductor. This led to an explosion in the usage of Commercial and Personal Computers. The Fourth Generation of Computers were made though Microprocessors that we are using till date. Microprocessors incorporate the functions of a central processing unit on a single Integrated circuit (IC).
After the introduction of Microprocessors, they more and more powerful every 2 years. Moore's law is the observation that the number of transistors in a dense Integrated circuit, doubles about every two years. Intel led this generation of Computers through its processors along with AMD.
With Moore's law, heat and power utilization were also increased significantly. To make whole computer portable heat and power need to be minimal since Mobile is what user carry around. ARM architecture was the solution to these problems and ARM holdings have Intellectual Property ownership of ARM architecture.
Nokia with Symbian OS was the first major commercial success. iPhone was another milestone in the commercial success of Mobile computers with touchscreen and Apps ecosystem.
With the advancement of computing power and ubiquity of Mobiles, next step for advancement in computing hardware is Internet of Things or IoT. If you observe closely computing hardware always there for assisting humans to do intelligence work whether its Abacus or Early Calculators or Computers or Mobile. The only thing that changes over time is their adaptability by masses. From a few abacus users to a few million analog devices users to billions of Mobile users. According to a survey in the starting of 2019, penetration of Mobiles was 67% of the overall population of the world.
How computing devices/hardware will get increased? The answer is Smart devices or IoT (Internet of Things). Most of these devices don't have full microprocessor as Mobile phones. These devices contain specialized hardware for few things that device suppose to do. This approach brings down cost, complexity, power consumption, and size that is always required for smart devices like smartwatches, smart thermostats, smart lights, smart refrigerators, etc.
By assumption, This will increase overall computing devices adoption by general public to around 80% in next 3-5 years. Then what will be the next big change? For answer to this question read till end of the book.
Do you wonder, why are we discussing Human Evolution or Hardware Evolution? Since this book is about Web Architecture Evolution not about Human Evolution or Hardware Evolution. If you are not wondering about this then think before reading further.
Human Evolution is a well-known thing. And, Darwin's theory of evolution by natural selection is tought at school level by many countries. So, possiblity is you already know the concept of Human Evolution.
This will help to streamline thoughts of evolution going forward in this book. You need to understand what value Stones, Fire, Cooking, Clothes, Speech and Intelligence brings to Evolution. And, these all are progressive in nature. You can't have intelligence of masses without Speech and you con't have Speech without social stability provided by Stones, Fire, Cooking and Clothes. Everything is connected when you look in the reverse direction.
We discussed Hardware Evolution to make thoughts of evolution more relevant to Web Architecture. Hardware and Software are related, Software become more relavant when hardware could do many things and can be controlled. That's why Software become popular as soon as General-purpose computers came.
Web Architecture Evolution is small part of software evolution. Software evolution is small part of Harware evolution. Hardware evolution is small part of Human Evolution. Human Evolution is small part of Evolution that Darwin's theory of evolution by natural selection covers. Theory of evolution is small part of our Solar system Evolution. Solar system Evolution is small part of Galaxy Evolution. Galaxy Evolution is small part of Universe Evolution. Universe Evolution started with Big Bang, which might have its own evolution story.
As you already see you need to ask Why of everything to get to What of everything. We are trying to solve very tiny piece of puzzle that is created by Universe for us. Author of this Book is no way Authority not Knowlegable enough to know about everything even in Web Architecture space. He is just trying to bring part of his knowledge through this book.
This book will try to cover evolution of individual technologies that are involved in current Web Architectures. Book will also cover combination of those technologies and what evolution they bring to the Web Architecture Domain.
This book will try to cover Web Architecture as well as perspective to how we reached to that Architecture itself. This book will help you to develop your own Web Architectures or components in Web Architectures rather than using pre-defined Web Architectures. This book will also help you to know short-comings of your architectures and where they excel at.
If you like gist of the things but not whole story of why those things then this book is not for you. If you don't ask question about why am I doing this or Why am I suppose to do thing in certain way then this is not the book for you.
- History of computing hardware: https://en.wikipedia.org/wiki/History_of_computing_hardware
- The Abacus: A Brief History: https://www.ee.ryerson.ca/~elf/abacus/history.html
- Difference engine: https://en.wikipedia.org/wiki/Difference_engine
- Analytical Engine: https://en.wikipedia.org/wiki/Analytical_Engine
- Turing Completeness: https://en.wikipedia.org/wiki/Turing_completeness
- Computer: https://en.wikipedia.org/wiki/Computer