Platform: environment in which a software application is executed

  • hardware: processing (clock frequency, instruction set, …) and I/O capabilities (sensors, actuators, …)
  • middleware: drivers, operating system, …
  • higher level: APIs, cloud computing support, …

Web platforms

  • Highly available (distributed) information storage
  • Worldwide connectivity (addressing, routing)
  • Stateless (or cookies)

Multi-tier archiecture: flexible scaling and updates

  • Presentation layer - frontend (HTML + CSS / AJAX / Angular, React, … )
  • Business layer - backend:
    • web servers (Apache / nginx / … )
    • frameworks: (Django - Python / ASP.NET - C# / Node.js - JavaScript / … )
  • Data layer:
    • relational databases (PostgreSQL / MySQL / … )
    • non-relational databases (MongoDB / Cassandra / … )

MEAN (MongoDB - Express.js - Angular - Node.js): current standard (JavaScript for frontend and backend)

Mobile platforms

Hardware enables:

  • context awareness (sensors - gyroscope, accelerometer, … )
  • wireless connectivity (WiFi, LTE, NFC, … )

Operating systems:

  • Symbian: discontinued (poor UX and DX)
  • iOS:
    • Darwin core, runs on specific hardware
    • iOS SDK, Cocoa Touch UI, Swift / Objective-C
  • Android:
    • Linux kernel, runs on different hardware platforms
    • Android SDK, Material Design, Kotlin / Java / C++
    • Google services built-in, but OS is opensource possible modifications

Embedded platforms

98% of computers are embedded
Hardware:

  • sensors and actuators: interactions with environment
  • wireless communication
  • memory & energy constraints

Operating systems:

  • None (Arduino bootloader loads your flashed firmware)
  • Real-time OS (FreeRTOS - microkernel)
  • Specifics (TinyOS - low-power wireless sensor networks)

Programming:

  • low-level programming (C / Assembly / … )
  • real-time OS guarantees task handling times
    • low priority tasks execte in infinite loop
    • hight priority event preempts the current task and executes the interrupt routine

Gaming platforms

High-processing, high-quality graphics