Algorithmic Sets
(Unterschied zwischen Versionen)
Mkurz (Diskussion | Beiträge) (→Definition Algorithmic Set) |
Mkurz (Diskussion | Beiträge) (→Algorithmic sets and Notifications) |
||
Zeile 22: | Zeile 22: | ||
* This means every Notification has an algorithmic set of receivers attached to it. | * This means every Notification has an algorithmic set of receivers attached to it. | ||
* How this algorithmic set of receivers is attached is not part of this article. | * How this algorithmic set of receivers is attached is not part of this article. | ||
+ | * For identifying a receiver, we introduce a ConnectedClientTupel of the form: | ||
+ | <pre> | ||
+ | public class ConnectedClientTupe{ | ||
+ | public Computer getComputer(); // Including the Platz. | ||
+ | public User getUser(); // Including the role. | ||
+ | } | ||
+ | </pre> | ||
* Every connected client queries its notifications via a REST interface. | * Every connected client queries its notifications via a REST interface. | ||
* If the amount of different algorithmic sets is relatively low (this is often the case), it makes sense to group | * If the amount of different algorithmic sets is relatively low (this is often the case), it makes sense to group |
Version vom 8. November 2014, 10:08 Uhr
Definition Algorithmic Set
- We want to define an algorithmic set via a Predicate deciding if an element is part of the set or not.
- In java we could use the functional interface Predicate<T>
public interface Predicate<T>{ // If test returns true, we consider the element be part of the algorithmic set. boolean test(T element); }
- Such a simple definition allows a polymorphic approach for defining set predicates.
- So if a new predicate is needed only a new implementation of Predicate<T> needs to be implemented.
- These Predicate<T> implementations can introduce configurable properties, for a more flexible solution.
- Definition: An algorithmic set is defined by its predicate instance.
Performance considerations
- This approach is only reasonable if all tested elements are in memory, querying them from a database would be at least suboptimal.
Algorithmic sets and Notifications
- We want to define the receivers of a notification with an algorithmic set.
- This means every Notification has an algorithmic set of receivers attached to it.
- How this algorithmic set of receivers is attached is not part of this article.
- For identifying a receiver, we introduce a ConnectedClientTupel of the form:
public class ConnectedClientTupe{ public Computer getComputer(); // Including the Platz. public User getUser(); // Including the role. }
- Every connected client queries its notifications via a REST interface.
- If the amount of different algorithmic sets is relatively low (this is often the case), it makes sense to group