code: def register(self, name, description, obj, plugin):
          
          if name in self._shared_objects.keys():
              raise SharedObjectExistException("Shared Object %s already registered by %s"
                                               % (name, self._shared_objects[name].plugin.name))
  
          new_shared_object = SharedObject(name, description, obj, plugin)
          self._shared_objects[name] = new_shared_object
          self.log.debug("Shared object registered: %s" % name)
          return new_shared_object
docs: Registers a new shared object.
  
          :param name: Unique name for shared object
          :type name: str
          :param description: Description of shared object
          :type description: str
          :param obj: The object, which shall be shared
          :type obj: any type
          :param plugin: Plugin, which registers the new shared object