Skip to main content

Make your objects available everywhere

Project description

HEROS - Highly Efficienct Remote Object Service

heros logo heros logo

HEROS is a decentralized object sharing service. In simple words it makes your software objects network transparent. To be fast and efficient, HEROS relies on the minimal overhead eclipse-zenoh protocol as a transport layer. It thus supports different network topologies and hardware transports. Most notably, it can run completely decentralized, avoiding a single point of failure and at the same time guaranteeing low latency and and high bandwidth communication through p2p connections.

HEROS provides a logical representation of software objects and is not tied to any specific language. Even non-object oriented programming languages might provide a collection of functions, variables, and events to be accessible as an object in HEROS.

Very much like a Dynamic Invocation Infrastructure (DII) in a Common Object Broker Architecture (CORBA), HEROS handles objects dynamically during runtime rather than during compile time. While this does not allow to map HEROS objects to be mapped to the language objects in compiled languages, languages supporting monkey-patching (python, js, ...) are still able create proxy objects during runtime.

Find the HEROS documentation under https://atomiq-project.gitlab.io/heros

Paradigms

Realms

To isolate groups of HEROs from other groups, the concept of realms exists in HEROS. You can think of it as a namespace where objects in the same namespace can talk to each other while communication across realms/namespaces is not easily possible. Note that this is solely a management feature, not a security feature. All realms share the same zenoh network and can thus talk to each other on this level.

Objects

An object that should be shared via HEROS must inherit from the class LocalHero. When python instantiates such an object, it will parse the methods, class attributes, and events (see event decorator) and automatically generate a list of capabilities that describes this HEROS object. The capabilities are announced and a liveliness token for the object is created. HEROSOberserver in the network will thus be notified that our new object joined the realm.

When the object is destroyed or the link gets lost, the liveliness token disappears and any remote object will notice this.

Capabilities

A HEROS object is characterized by the capabilities it provides. There are currently three types of capabilities:

  • Attribute
  • Method
  • Event

Metadata

A HERO can carry metadata that allows for easier classification in environments with many HEROs. In addition to a list of tags, the metadata can also carry information on what interfaces a HERO provides. This allow a HERO to signal that it can seamlessly be used as an object of a certain class.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

heros-0.5.9.tar.gz (279.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

heros-0.5.9-py3-none-any.whl (37.9 kB view details)

Uploaded Python 3

File details

Details for the file heros-0.5.9.tar.gz.

File metadata

  • Download URL: heros-0.5.9.tar.gz
  • Upload date:
  • Size: 279.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for heros-0.5.9.tar.gz
Algorithm Hash digest
SHA256 5137a7df8161716945a039fe9014181025df8c5938ba5b9eeded17c47386fd02
MD5 2cd2dcb69cee4100e7916e25b64247c2
BLAKE2b-256 3282658efa3740be6ae5dfce6fb1c22ecef0e914a8c37bc805ef9f3c1bf60a49

See more details on using hashes here.

File details

Details for the file heros-0.5.9-py3-none-any.whl.

File metadata

  • Download URL: heros-0.5.9-py3-none-any.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for heros-0.5.9-py3-none-any.whl
Algorithm Hash digest
SHA256 3dc935efa5c6560c8ccc2e22c420aab6de8e3afe8a5305b8db32356dee6367af
MD5 695a4c61ffdcf5596d97354fc7255aeb
BLAKE2b-256 a01cbcbd20aef8fc1a1c0c5d3161647bf37a0c7749e56902be0a25e825549fc9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page