struments on the merchant server so the shopper can choose the mode of payment. The JCC framework sends the JCM, which contains other information about the transaction, to the client machine where the correct cassettes are loaded (or installed and loaded) to execute the transaction. The four steps to writing a cassette are as follows: 1.Implement a CassetteControl class and create a Java Commerce Message (JCM) file. This step is covered below. 2.Implement the operation, protocol, or instrument commerce Bean to go with the CassetteControl class. 3.Implement gates and permits. 4.Sign the JAR file with roles. The JAR file bundles the compiled CassetteControl class, commerce Bean class, and other related files into a cassette. teControl Class Every cassette must have exactly one CassetteControl class that extends java.commerce.cassette.Cassette. This class is the first class loaded by the CassetteClassLoader. The installer uses this class to install the registry database for registering operations, protocols, and instruments. The cassette runtime uses this class to update the cassette with new software versions. The code below implements a CassetteControl class for a cassette that handles a purchasing operation. The operation cassette works with one or more protocol cassettes, which in turn work with one or more instrument cassettes. The CassetteControl methods are called by the JCC framework during cassette installation based on information provided in the installed Java Commerce Message (JCM), which is created in the second part of Step 1 below. Note that cassettes can only interoperate with cassettes upon which they have a designated dependency as specified in the JCM for the operation. This dependency information is returned by the get*Identifier methods. import java.net.URL;import.java.util.Date;import javax.commerce.*;import javax.com.sun.commerce.*;public final class CassetteControl extends Cassette { private static final CassetteId...