In the previous chapter, when implementing our Grid Service we had to create a Java class which extended from GridServiceImpl:
public class MathImpl extends GridServiceImpl implements MathPortType
This is an implementation approach known as implementation by inheritance, because we get all the basic functionality of a Grid Service from a base class. The Globus Toolkit 3 offers another approach: implementation by delegation (or Operation Providers, in the GT3 jargon). If you're familiar with object-oriented design patterns, you might already know about this approach (also, if you've worked with CORBA, this is the approach used in the CORBA Tie mechanism). If you have no idea what 'implementation by delegation' is, don't worry: we'll talk about it briefly in the next page.