To build a the whole system for a company, many layers and systems are used.

Enterprise architecture levels

  • to abstract from software, hardware, functions, processes etc.
  • in a company we have domains (sales, HR, finance, production…)
    • each domain uses a application (CRM = customer relationship management, OMS = order management system etc.)
    • different abstract applications and systems that make up the whole enterpise system in the company
      • all these systems require software, hardware and be connected to other systems
    • each application is used by different roles within the company (or customers) and their needs have to be satisfied
  • different roles for architects
    • Enterprise architect
      • manages the whole enterprise system and their connection
    • Solution architect
      • manages the specific domain to satisfy the business needs
    • Technical architect
      • manages the specific technical part (API, Cloud, Security etc.)

Software architecture

  • centralised - with a central server and their clients
    • SPoF = single point of failure
    • mostly the solution for enterprise systems
      • enhanced with P2P principles (such as messaging systems)
  • P2P (decentralized) systems = peer to peer systems
    • decentralized, if one node fails, other nodes can take up it’s function
    • highly scalable
    • use of messaging systems in enterprise systems
Integration issues
  • when all applications are connected together (one action depend on another, one affects data and another act by it etc.), many integration issues can arise - they are solved by:
    • standard interfaces (or mediators/adapters)
    • message exchange formats, common and understandable data representation
    • standardization of semantics of the data (this is often difficult)
    • orchestrating of processes and functions
Separation of concerns
  • the system needs to be separated into layers, which should not overlap
    • Návrh architektury aplikace
      • separation to presentation, application, data
      • thick client = presentation + application
          • database on a server (data layer)
      • thin client = presentation
          • app server + database server
      • multi-tier client/server
        • additional layers of middleware (value added to the communication)
      • thin client + microservices Microservices
        • there has to be a service orchestration layer (Kubernetes, clusters)
    • GRASP - Nízká provázanost = loose coupling
  • layer communicate through interface
    • Části interface
      • = “Agreement (contract) between two or more layers during communication”
      • defines: data formats, functions available, process interface (state transitions), technical interface (HTTPS, ports, authentications)