When the customer installs the two cassettes, the tax cassette calls into the home banking cassette. The home banking cassette looks at the list of roles in the tax cassette's directory and upon finding and verifying the TaxReport role, passes the tax cassette access to methods that allow the tax cassette to read the relevant tax information in the home banking cassette. You might recall the discussion in Part One on roles, tickets, gates, and permits, which are the coding elements that define and enable fine-grained interactions of this type between cassettes. You might want to review that section before going on to learn how to implement gates and permits. The level of trust you have with another party is reflected in your security code, and likewise, the level of trust another part has in you is reflected in their security code.
Every cassette has one or more gates through which the cassette data or resources can be accessed.
The gate is accessed by other cassettes to retrieve permits. A permit gives the requesting cassette the ability to access certain specific methods in the other cassette. The JCC loads the first cassette and its role, loads the role into a ticket, and passes the ticket to the gate of the second cassette. The code for the second cassette's gate is shown below. The first cassette does not need any code to explicitly access the gate in the second cassette.