Chapter 1 Platform Technologies
Chapter 1 Platform Technologies
Platform technology is now the answer to major three questions of what barriers
exist for effective technology reuse, how to organize technological knowledge, and how
to assess the feasibility of a planned case of technology reuse.
Secondly, complexity; to deal with this complexity of our technology paradigm will
require a move from the standalone solutions of today, into a world of systems where
smaller technologies are nested within larger ones in a plug and play, flexible, modular,
service-oriented architecture.
Lastly, this platform allows the end-users to draw upon underlying services so that
they do not have to reinvent them each time and can thus develop and deploy their
buildings more rapidly. Fast-paced technology change and the demands of a new
innovation-driven economy require constant product evolution and much shorter
technology development cycles for which the platform model can prove well suited.
PLATFORM TECHNOLOGIES DEFINED
During the past few decades, with the rise of the Internet platforms, such as the
App Store or eBay, have proven to be some of the most dynamic, innovative, and fastest
growing services. But of course, the platform model to systems architecture has always
been there since the invention of farms and factories to the making of Lego building
blocks. When many people see a new technology at work, they don’t usually consider all
the pieces that went into its creation. They simply see the amazing capabilities and never
give it much thought. However, within advanced industrial economies, many products and
services are enabled by the power of abstraction. They are remixes, built out of services
from platforms that enable the endless bundling and re-bundling of different components.
Computers use specific central processing units (CPUs) that are designed to run
specific machine language code. In order for the computer to run software applications,
the applications must be in that CPU’s binary-coded machine language. Thus, historically,
application programs written for one platform would not work on a different platform.
POWER OF INTEROPERABILITY
See the case of a smartphone that would not be very valuable if it could not connect
to the internet or run other people’s applications on it. Most of the value that the end-user
gets from their smartphone is not created by the original technology developer, but
instead by other people connecting into that platform and building things on it, or that
system connecting to others. With information technology, we can build once and deploy
many times, almost anywhere at a very little cost per extra unit.
The typical example is Facebook they can build their software platform once and
through the internet, it can be accessed and used as a service at extremely little extra
cost, per person, to them. Interoperability and collaboration between systems are the key
ingredients, and platforms facilitate this by allowing different technologies to plug into
each other and seamlessly draw upon their services. A platform technology architecture
– being open – is optimized for user-generated systems
The most successful technology providers of tomorrow will be those who are able
to harness this mass of new capacity and capabilities on the long tail by providing them
with the tools, know-how, methods, and connectivity to participate, and the platform model
is ideal for this.
CAPACITY OF BUNDLING
We can explain this idea as mentioned here, within just a few weeks, one could
create a new service by building a web application that draws upon services from Twitter,
for user identity, Ethereum for secure transactions, Alibaba for sourcing materials,
Upwork for staffing, etc. The fact that you don’t have to build all of these core components
yourself, you are just plugging them together means that you can easily and quickly
reconfigure them when needed. At the heart of the platform, a model is a distinction
between the basic functionalities of the technology and how those functions are
composed.
3. Database Platforms - Cloud platforms for deploying and managing various types
of database such as relational, NoSQL and in-memory databases.
4. Storage Platforms - Platforms for scalable storage of objects and files including
APIs and value added services such as resilient storage that is backed up in
multiple locations.
7. Web Platforms - Platforms that provide services that are useful to websites and
web-based software as a service such as web servers, web application servers,
content delivery networks and edge computing.
9. Media Platforms - Platforms for media publishing and analysis with tools such as
video transcoding, streaming and recognition.
10. API Platforms - Cloud platforms for deploying APIs that are typically built around
an API gateway that performs functions such as load balancing, latency reduction
and rate limiting.
11. Analytics Platform - Services for capturing, processing, analyzing and visualizing
data. This may include tools for ingesting, processing, querying and managing big
data.
12. Security Platform - Security services such as firewalls, identity & access
management, directory services, certificates, compliance reporting, encryption,
key management and threat detection.
13. Robotics Platform - Robotics platforms may include an operating system for
robots with a framework for developing and deploying backend systems and
services for robots on cloud infrastructure.
14. Internet of Things (IoT) - Internet of things platforms may include an operating
system for devices and a cloud platform with specialized APIs for internet of things
in areas such as device management, IoT security and analytics.
15. AI Platforms - Services that are based on AI such as a voice synthesis service
and tools for building your own AI such as a machine learning API. This may also
include environments for running your AI that are optimized for machine learning
such as a machine learning database.
16. Game Platform - Environments that are optimized for running game services such
as backends for mobile games or massively multiplayer online games. These may
include services such as 3D game engines, AR and VR APIs.
Lesson 2: Foundation of Platform Technologies
ABSTRACTION
In the auto industry, for example, a car platform is a shared set of common design,
engineering, and production models from which many different specific models can be
created. In this way the car companies have abstracted away from any specific type of
car to create a two-tiered system; one level being generic the other specific to any
instance of that model. This is a central aspect of the platform model, the creation of a
generic form or set of services, on the underlying platform level, and then on the
application level these services are bundled into different configurations and customized
to the specific needs of the end-user. In such a way a finite amount of reusable abstract
building blocks can be bundled and re-bundled on the application layer.
This use of abstraction works to remove the complex for the application
developers. By moving core services down to the platform level application developers
can simply plug into these services and build their applications on top of it, thus working
to greatly simplify the complexity they encounter. We can think about a house as a
platform, once there are common protocols, IoT platforms for houses will be built where
any device, technology or item that enters into the house can then connect into the
platform and become an application, the house platform can then manage these
applications, providing them with infrastructure services and present them as an
integrated solution to the house occupants.
This core idea of abstraction is very powerful and can be applied to our entire
technology landscape, with smaller more specific technologies sitting on top of others that
work as the platform supporting them which, in turn, may also sit on top of others that
support them. For example, smart cities will become platforms with houses being
applications that draw upon the common physical and information resource made
available - such as parking, water, electricity etc - but also the house itself will be a
platform for all of the technologies within it delivering services to them. Each layer in the
hierarchy bundles the resources provided to it from that below and delivers those
resources as a service to the applications that sit on top of it.
LEVELS OF ABSTRACTION
Probably the clearest and best example of platform technologies are personal
computers. Let’s spend some time taking one of this computers to pieces to better
understand the different level of abstraction into a platform technology.
The platform, in this case, is the computer’s operating system. But before we can
get to the platform that’s doing all the great work, we need a foundation for it to sit on,
that is, a set of enabling technologies.
In this case, our foundation layer is our computer hardware and all the low-
level firmware that interfaces between it and the operating system. But within a
business, our foundation layer might be the economic system it is a part of, the
public services such as security, rule of law and maintenance of natural resources
that would enable our business to function. The same would be true of a city. It
rests upon and is enabled by a national infrastructure system.
2. Platform Layer (Operating System)
The next layer up from the foundations or hardware is the platform itself,
the computer’s operating system in this case. It essentially manages the
computer’s resources and services that will be required by applications. The
platform takes the resources available to it from the infrastructure and creates the
Lego blocks that we will be used to build things with. These resources are
presented to producers on the application level through APIs, or application
program interfaces.
3. Application Layer
On top of the operating system lies the application layer. Developers draw
on the services provided by the operating system and bundle them in various
different combinations to deliver a finished application to the end-user. Apps in the
App Store, the cars coming off of our production line, the buildings in a city or the
financial products offered by a bank are examples of the application layer, endless
configurations, and reconfigurations in response to the perceived needs and
feedback of the end-user.
Lastly, the user interface layer. When the end-user switches on their
computer, they don’t want to see 0’s and 1’s or lines of code. They want to see
things they understand, pictures of files, and nice drop down menus. The majority
of people who interface with the systems we are architecting will do so, so as to
get the maximum functionality out with the minimum input of effort. In order for
them to do this, we need a layer that translates the internal logic of the system into
a language they understand. This interface might be the dashboard on our car or
the receptionist in our hospital telling people where to go. Whatever it is, it is all
about the end-user, the language they speak, what they need, and how to translate
the systems functionality into a solution that involves the participation of the end-
user.
In continuing with our analogy from the world of I.T. we might call this a solution
stack, the full set of subsystems and layers of abstraction to provide the platforms full
functionality without dependencies. An important thing to note is that as we go up each
level of abstraction towards the end-user, we are simplifying the complexity and level of
engagement required. Those working on the platform level require a deep understanding
of the system and have to deal with its full complexity but are relatively unconstrained.
Those who engage with the system on the application and user level are
constrained by what the platform providers have designed, but being enabled by this
technology they will be able to do more with less input and engagement.
The net result is that we should get an amplification effect as we go up the solution
stack due to the increased ease of engagement. Thus, there will be many more
application developers than there are operation systems developers, and there will, in
turn, be many more end-users than there are application developers, and this should be
the case wherever we are using this platform model to systems architecture.
Why should we care about platform technologies? There are a number of reasons
this architecture should be of benefit to us. Firstly, by distributing the system across
multiple layers, we can abstract away the complexity that users or producers of the
service have to deal with. Everything gets its own space. Secondly, we can avoid
redundancies by having the platform provide the common services required by all
components. We can reduce the need for each component on the application layer to re-
invent the wheel. Thirdly, platforms are the ideal architecture for creating user-generated
systems. Thus, we can leverage the amplification effect we discussed earlier to do more
with less, helping to maintain an agile core system. And lastly, the platform architecture
is ideal for building flexible, adaptive, and evolutionary systems. Given its independence
from fixed instances, the system can stay innovating on the application level to continue
regenerating itself.