SAGA C++ Reference Implementation - Architecture

Architecture

SAGA is designed as an object oriented interface. It encapsulates related functionality in a set of objects, that are grouped in functional namespaces, which are called packages in SAGA. The SAGA core implementation defines the following packages:

  • saga::advert - interface for Advert Service access
  • saga::filesystem - interface for file and directory access
  • saga::job - interface for job definition, management and control
  • saga::namespace - abstract interface (used by advert, filesystem and replica interfaces)
  • saga::replica - interface for replica management
  • saga::rpc - interface for remote procedure calls client and servers
  • saga::sd- interface for service discovery in distributed environments
  • saga::stream - interface for data stream client and servers

The overall architecture of SAGA follows the adaptor pattern, a software design pattern which is used for translating one interface into another. In SAGA it translates the calls from the API packages to the interfaces of the underlying middleware. The SAGA run-time system uses late binding to decide at run-time which plug-in (middleware adaptor) to load and bind.

Read more about this topic:  SAGA C++ Reference Implementation

Famous quotes containing the word architecture:

    It seems a fantastic paradox, but it is nevertheless a most important truth, that no architecture can be truly noble which is not imperfect.
    John Ruskin (1819–1900)

    Art is a jealous mistress, and, if a man have a genius for painting, poetry, music, architecture or philosophy, he makes a bad husband and an ill provider.
    Ralph Waldo Emerson (1803–1882)

    All architecture is great architecture after sunset; perhaps architecture is really a nocturnal art, like the art of fireworks.
    Gilbert Keith Chesterton (1874–1936)