Das weit gefächerte Angebot an Diensten, die man mittels Jini an Clients verteilen lassen kann, wird auf die Grundidee von Dienstleistern, die Dienstleistungen anbieten, heruntergebrochen. Idee: Das Gerät X bietet einen Dienst Y an.
Dazu benötigen alle teilnehmenden Geräte einen Netzzugang sowie entsprechende Zusatzfunktionen, die die Kommunikation im Netz ermöglichen.
Über einen Lookup-Service können Dienstleister ihre Dienste anbieten, aber auch Dienstleistungen abfragen. Ein Lookup-Service ist ein zentraler Service, an den sich ein Dienstanbieter, der einen Dienst anbietet, wendet. Er sendet dem Lookup-Service die Informationen welchen Dienst er anbietet sowie einige zusätzliche Eigenschaften seines individuellen Service-Angebotes, zum Beispiel, daß er sich im 2. Stock des Gebäudes X befindet.
Ein Dienstsuchender kann einem Lookup-Service eine Anfrage nach einem speziellen Dienst senden. Diese Anfrage enthält den Typ des Dienstes sowie einige 'Wunschparameter', z.B. daß der Dienst sich im 2. Stock des Gebäudes X befinden soll. Dieses Feature ist beispielsweise bei Druckern in weitläufigen Gebäuden hilfreich. Der Lookup-Service sendet dem Client alle nötigen Informationen zu dem gesuchten Dienst zurück. Nun kann der Client direkt mit dem Dienst kommunizieren und ihn nutzen.
Als 'nötige' Informationen wird hier nicht nur eine Adresse und Service-Beschreibung verstanden, sondern auch konkreter Code, der die Schnittstelle zum Server enthält. Der Client bekommt sozusagen den Treiber geliefert. Dies ist möglich, da Jini auf der Basis von Java realisiert ist und somit Programminformationen im allgemein gültigen Java-Byte-Code übertragen werden und verwendet werden können.
Dieser Code enthält das in Java programmierte Interface des Services sowie alle Methoden die Nutzer und Applikation aufrufen müssen um den Service zu nutzen. Weiterhin enthält er alle anderen den Service beschreibenden Attribute.
Die Möglichkeit, Code vom Service Provider zum Lookup Service zu transportieren und von dort zum Client, gibt dem Service Provider große Freiheiten bezüglich der Kommunikation zwischen Client und Service; er kann sie gestalten, wie er es für richtig hält, mit Verschlüsselung, ohne Verschlüsselung, mit einem anderen Protokoll, welches speziell auf die Übertragung der jeweiligen Datentypen abgestimmt ist oder mit einem bereits verbreiteten Protokoll.
Zusätzlich ist es möglich, den Status eines Dienstleisters zu erfahren und ggf. passend zu reagieren. Z.B. der Drucker meldet, daß eine Inspektion fällig ist oder daß das Papier in Schacht 3 verbraucht wurde.
Voraussetzung dafür ist natürlich, daß jeder teilnehmende Dienstleister das Protokoll Jini implementiert hat.
Jini bietet Mechanismen um Devices, Services und User in ein bestehendes Netzwerk zu integrieren. Sich an ein Jini-System anzubinden oder wieder abzukoppeln, ist oft ein vollautomatischer Vorgang.
Das Herzstück von Jini ist ein Protokollpaar: discovery und lookup. Discovery und lookup werden zu unterschiedlichen Zeitpunkten verwendet.