def notify(correlation_id, components, args = None):
        """
        Notifies multiple components.

        To be notified components must implement [[INotifiable]] interface.
        If they don't the call to this method has no effect.

        :param correlation_id: (optional) transaction id to trace execution through call chain.

        :param components: a list of components that are to be notified.

        :param args: notification arguments.
        """
        if components == None:
            return

        args = args if args != None else Parameters()
        for component in components:
            Notifier.notify_one(correlation_id, component, args)