Querying streams of data from the sensors or other devices requires several operators. One of the most important operators is called Windowing. Creating windows consists in grouping of tuples from data streams at a specific rate according to a certain pattern. A large variety of window patterns exist and reflect different data management semantics that are useful for different purposes. Prior arts mainly focused on simple windows, like landmark and sliding windows, and only a few properties were considered in the case of query rewriting. This paper goes one step forward by proposing an algebraic model for generic windows. Our proposed model supports temporal, positional and cross-domain windows. Window's creation time can be specified by a complex function. This proposal subsumes most popular system formalizations and extends the possibilities of window management. This paper also demonstrates associativity and transposition properties useful for algebraic rewriting in query optimization. The implementation of this model is briefly presented.