logo





GradeBook released!
Oct, 2008
Solstice adds a grade book to its toolkit!

New Versions!
April, 2008
A new version of all our software is available!

CommonView Released
April, 2008
Check out our latest collaborative tool.

RESTful Web Services
Jan, 2008
Solstice provides support for RESTful development.

How to use ImplementationManager

Inter-application Communication

ImplementationManager is Solstice's way to communicate from app to app.

Example:

Lets say we have a web application for sharing files. In our application we allow people to create groups for authorization. Solstice has a rich group API and has a stand alone tool(GroupManager) which allows the user to edit and create groups. GroupManager can edit all groups, even those created in other applications. So what happens to our file sharing if a user deletes the group using GroupManager? This is where ImplementationManager comes in handy.

When the user deletes his group the web application should immediately ask all installed tools if they need to do any work, and then do the work of those tools that require it. To accomplish this we can harness the ImplementationManager API:

Perl
my $implementation_manager = Solstice::ImplementationManager->new(); my $list = $implementation_manager->createList({ "method" => 'groupDeleted', "args" => [$self], });

This code has the effect of calling the groupDeleted method in every ImplementationManager, for every application you have installed. If the method is not present, it is not called.

Another important thing to note about the code snipet above is the callback. ImplementationManager gives you a Solstice::List object back when you call the createList method. This list can contain whatever objects make sense for your task and gives a lot of power to the programmer.

Check out our open source version of UMail to see an example ImplementationManager implementation.