Each tool can be placed into many locations within the Sakai system. Each of these
placements acts as a different tool - it has a custom tool configuration, and keeps a
separate interaction session with each end user.
Tools can detect their tool placement by looking for the placement id in the request
attributes. They will also know about their placement from the placement configuration, also found in the request attributes.
The normal way to package a tool in Sakai is to let it have an HttpSession managed by
Sakai, and one that is scoped to the tool placement. This means the tool can use the
HttpSession to store interaction state with each end user, and be assured that Sakai keeps the sessions separate between different tool placements. Tools can also use the
ToolSession object placed into the request attributes, or ask the SessionManager
for the current ToolSession to get at the same set of information.
Placement id detection is the responsibility of the Sakai kernel (see the request processing document). Placement assignment and placement configuration management is the responsibility of the various Sakai navigation / portal components.