Basic Design, Terminology,and RequirementsHierarchiesOperations on contextsQuery by AttributeAttributes are string-valued, name-value pairsRequirements for Our Naming ServiceOur Use CaseFederation and ThreadingFederationThe Context InterfaceValue Objects Represent Sets and ListsPaths, Names, and Attributes Are All DistinctNull Arguments Are OkayAttributes Are Single ValuedContexts Are Handled by a Separate Set of MethodsContexts, When Bound as Contexts, Have No AttributesContexts Can Create Subcontexts DirectlyThere Are No Remote IteratorsThe Value ObjectsAttributeSetPath and ContextListContextImplNameAttributeSetPairRemoteHolderContextHolderContextImplBootstrappingVersion 2.0Switching Between Naming ServicesAdapting the Bank ExampleModifying the launch codeModifying the client codeThe Java Naming and Directory Interface (JNDI)The Context InterfaceUsing JNDI with the Bank Example