Jini provides facilities for dealing with some of the Fallacies of Distributed Computing, problems of system evolution, resiliency, security and the dynamic assembly of service components. Code mobility is a core concept of the platform and provides many benefits including non-Protocol dependence. The Jini team at Sun Microsystems has always stated that Jini is not an acronym. Some have joked that it meant Jini Is Not Initials, but it's always been just Jini. The word "Jini" means "the devil" in Kiswahili; this is a loan from an Arabic word for a mythological spirit, which is also the origin of the English word 'genie'. One of the goals of Jini is to shift the emphasis of computing away from the traditional disk-drive oriented approach, to a more network oriented approach. Thus resources can be used across a network as if they were available locally. Jini is based on Java, and is similar to RMI but more advanced. Jini allows more advanced searching for services, through a process of discovery of published services (making Jini more similar to the SOA concept). There are three main parts to a Jini scenario. These are the client, the server, and the lookup service. The service is the resource which is to be made available in the distributed environment. This can include physical devices (such as printers or disk drives) and software services (for example a database query or message service). The client is the entity which uses the service.