Platform architectures

What is a platform?

A platform is a business model that creates value by facilitating exchanges between two or more independent groups, usually consumers and producers.

Platform ecosystem

Platform ecosystems are product platforms defined by core components made by the platform owner and complemented by applications made by autonomous companies or individuals.

  • A platform-based ecosystem consists of two major elements a platform and complementary app.

  • Unlike tradtional software development, platforms are designed leverage the expertise of a diverse developer community.

  • An app refers to an add-on software subsystem or software service that connects to the platform to extend its functionality.

b1504729.png

  • Apps are complementary goods for platforms
  • Platforms are functionally more desirable when there are a wide variety of apps available to them

003572d7.png

Platform architecture

Ecosystem architecture

Platform ecosystem can be envisoned as composed of many interacting subsystems Ecosystem architecture can be thought of as comprised of two levels:

  • (1) The architecture of the platform itself (platform architecture)
  • (2) The arcitecture of an app, which we refer to as that app’s microarchitecture.

Platform architecture includes:

  • Core platform
  • Its interface: Platform architecture should tell apps both what the platform does and how to use the platform

App microarchitecture:

  • Architecture of individual apps within the same platform can vary from one app to another
  • The four functional elements inside an app. Any software app’s internal functionality can be decomposed into four functional elements

67c0808a.png

  1. Presentation logic: where almost all of the interaction with the end-user occurs, handle receiving inputs from the end user and representing the application's output to the end-user
  2. Application logic: The second function is the core work performed by the application that is distinctive to it. This encompasses the functionality of the app that makes it uniquely valuable to its end-users. For example, a video conferencing app’s core application logic is the video streaming between two client devices.
  3. Data access logic: The third function is the processing required to access and retrieve data from storage
  4. Data storage: Most apps require data to be stored somewhere in order to be retrieved. This can be a small text file or a dedicated database server.

Each individual functional element can be flexibly partitioned between the app and the platform f4dc611a.png

An app’s designer has considerable freedom in choosing how much of an app’s functionality to pull from the platform and how much to build himself

Application microarchitecture

1. Standalone microarchitecture

  • All four functional elelents are on the client side and nothing resides on the server side. Internet connectivity is therefore unnecessary for the app to function.
  • This is the model for applications that dominated in the era that preceded Internet-enabled computing beginning in the 1990s.

2. Cloud microarchitecture

  • All four functional elements reside on the server side. The client device then simply becomes a “dumb” terminal that serves only to accept user inputs and display outputs

  • Example: web-based app Gmail, Search engine b1b5d776.png

  • Advantages:

    • Economy of scale
    • All functionality of the app is managed in one centralized location
    • Rolling out new features and functionality is easier because little or no upgrades are required on the client side.
    • Being potentially more secure because all of the app’s functionality is centralized on the server side.
  • Downsides:

    • All of the work of the app must be done on the server side. As user demand and usage intensity grows, the server side can become overloaded and slow to respond to requests from the client side.

3. Client–server microarchitecture

  • Is similar to standalone architectures with the exception that the data storage function is placed on the server side. 2ff92c0f.png
  • Data access logic and data storage reside on the server side
  • Resentation and application logic reside on the client side
  • In practice, the application logic is often split between the client and server

Advantage:

  • This design balances processing demands on the server by having the client do the bulk of application logic and presentation.
  • Reduces the network intensity of an app bylimiting the data flowing over the Internet

Downside:

  • Different types of client devices must be designed to invoke the data access logic on the server side in compatible ways.(Web based app, mobile app)

4. Peer-to-peer microarchitecture

8a643463.png

Tiering in app microarchitectures

17acbc30.png

  • The upsides:

    • it increases scalability of the app.
    • provides app developers the future flexibility to more easily move one tier of the app from being app developer-owned to being platform-based or vice versa.
  • Downsides:

    • data now must travel along more paths, the network bandwidth intensity and the risk of sluggish performance both increase with tiering

Four desirable properties of platform architecture

1. Simple

  • Be simple enough to be comprehensible at least at a high level of abstraction.
  • Should be conceptually decompoasble into its major subsystem
  • Interaction between the platform and apps should be well defined and explicit

2. Resilient

  • One defective app should not cause the entire ecosystem to malfunction
  • Apps are weekly coupled with the platform through interfaces that do not change over time
  • Keep platform–app dependencies to a minimum makes the entire ecosystem more stable in its performance

3. Maintainable

  • It should be possible to cost-effectively make any changes within the platform without inadvertently “breaking” apps that depend on it
  • This is accomplished through partitioning it into standalone subsystems and then linking them using standardized interfaces.

4. Evolvable

  • Means the capacity to do things in the future that it was never originally designed to do.
  • The key to evolvability is stable yet versatile platform interfaces that ensure autonomy between the platform and apps

Modularity of architectures

Modularization refers to reducing interdependence among the subsystems means that changes in one subsystem do not create a ripple effect on the rest of the complex system.

  • Massively distributed innovation: enables a platform owner to leverage the distinctive capabilities of loosely coupled, independent, hungry app developers
  • Increased variety of apps:

Downsides:

  1. Modularity is not free: Modularization is not free for platform owners. The upfront costs are usually much higher than those for more monolithic platform architectures.
  2. Technical performance takes a hit: Modular architectures pay a modularization performance tax

Tow mechanisms for modularization

  • Decoupling(or loose coupling): changes within one component do not affect others in the ecosystem.

Platform Source Deliverables

References

https://www.amazon.com/Platform-Ecosystems-Aligning-Architecture-Governance/dp/0124080669

How to manage platform architecture

Last updated on