The direct product is a common operation in mathematics that nicely extends the cartesian product onto many different mathematical structures, so that a direct product of two groups is a group, the direct product of two rings is a ring, the direct product of two topologies is a topology, and so on.
Given two structures (group, ring, topology, etc.) of the same type over a set A and a set B, the direct product A × B is the "natural" structure of the set A × B, if such a structure can be defined.
For example, the direct product of two groups (A, *A) and (B, *B) can be made a group (A×B, *A×B) by defining the direct product's binary operation as (a, b) *A×B (c, d) = (a *A c, b *B d). In this case, the "natural" way to define the operation is to "distribute" the old operations across each element in the ordered pair.
Direct products also tend to come with projection maps that "forget" all but one factor. Typically the projection A1×A2×... → Ai is called πi. For example, if A and B are groups, then the map πA could be expected to be the map A×B → A defined as πA(a, b) = a.
Infinite direct products of non-empty structures, as with infinite cartesian products of the same, are non-empty only by virtue of the axiom of choice, which immediately causes hangovers when one tries to deal with such obnoxious beasts.
For fun, here's a picture of Z3×Z3:
(2, 1) - (2, 2)
.\ .. / *
. \ ../
. \ / ..
. (2, 0) ...
. / \ ..
. / \ ..
* . / \ ..
(0, 2) - (0, 0) - (1, 0) - (1, 1)
\ . / \....../
\ . / ...... \ /
\. /...... \ /
(0, 1) (1, 2)
*
Forgive me, but the final triangle is a bit difficult to draw, so I marked the connected elements with asterisks.