Technologia połączeniowa Jini daje w miarę przejrzysty mechanizm, umożliwiający urządzeniom tworzenie pewnego rodzaju zaimprowizowanej „wspólnoty” – bez planowania, instalacji czy interwencji użytkownika. Każde urządzenie może świadczyć usługi, z których może korzystać inne urządzenie we wspólnocie.
Kiedy użytkownik podłącza do sieci nowe urządzenie zgodne z Jini, to wtedy rozgłasza ono komunikat, którym sygnalizuje swoją obecność. Z odpowiedzi dowiaduje się o innych urządzeniach. Usługa wyszukiwania rejestruje nowe urządzenie, zatrzymuje rekord jego atrybutów i wysyła zwrotną wiadomość do urządzenia Jini, informującą je, gdzie ma dotrzeć do usług wyszukiwania, gdyby potrzebowało pomocy. Kiedy na przykład zachodzi potrzeba drukowania, urządzenie odwołuje się do usługi wyszukiwania, znajduje to co niezbędne, i wysyła rezultaty do odpowiedniego urządzenia (nieco szerzej o tym na rysunku po prawej). Na razie Jini składa się w bardzo małej części z kodu Java, który funkcjonuje na komputerze lub urządzeniu.
Jini jest zbiorem różnych API oraz protokołów, które mogą pomóc w stworzeniu, a następnie w rozwoju systemów rozproszonych, zorganizowanych jak federacje usług. Usługa może być czymś, co rezyduje w sieci, i jest gotowa do wykonania przydatnej funkcji. Może to być urządzenie, oprogramowanie czy kanał komunikacyjny.
Przykładowo: dyskowe urządzenie pamięciowe mogłoby zaoferować usługę „pamiętanie” lub „magazynowanie”, a drukarka wyposażona w interfejs Jini – usługę „drukowanie”. Federacja usług jest w istocie zbiorem dostępnych usług, które klient może wykorzystać w jakimś określonym celu. Słowo klient jest tu rozumiane jako program, usługa lub użytkownik.
Jini definiuje też infrastrukturę wykonawczą, która rezyduje w sieci i dostarcza mechanizmy umożliwiające dodawanie, usuwanie i lokalizowanie usług.
Infrastruktura wykonawcza znajduje się w trzech miejscach sieci:
Kiedy nowe usługi stają się dostępne w sieci, wtedy rejestrują się w repozytorium usług (usługach wyszukiwania). A kiedy klient chce zlokalizować usługę, aby pomogła mu wykonać jakąś pracę, wtedy konsultuje się z usługami wyszukiwania.
Infrastruktura wykonawcza używa protokołu poziomu sieci, zwanego discovery (tu odnajdywanie), i dwóch protokołów poziomu obiektu, zwanych join (dołączenie) i lookup (szukanie). Discovery umożliwia klientom i usługom zlokalizowanie usług wyszukiwania. Join umożliwia usłudze rejestrowanie się w usługach wyszukiwania, a lookup umożliwia klientowi przepytywanie usług wyszukiwania w celu wybrania tej, która pomoże mu w wypełnieniu jakiegoś zadania. Discovery funkcjonuje w następujący sposób. Załóżmy, że użytkownik ma dyskowe urządzenie pamięciowe z zaimplementowanym Jini, oferujące usługi magazynowania danych. W chwili, kiedy użytkownik włączy to urządzenie do sieci, zacznie ono rozgłaszać wiadomość, w której powiadamia o swojej obecności. Odbywa się to za pośrednictwem pakietu multicast wysyłanego do dobrze znanego portu. W tej wiadomości będzie zawarty adres IP oraz numer portu, niezbędne do kontaktowania się z urządzeniem pamięciowym poprzez usługę wyszukiwania.
Usługi wyszukiwania monitorują dobrze znany port i odbierają pakiety rozgłaszające obecność. Kiedy usługa wyszukiwania otrzyma taki pakiet, otwiera go i przegląda. Pakiet zawiera informację, na podstawie której usługa wyszukiwania może się dowiedzieć, czy powinna nawiązywać kontakt z nadawcą tego pakietu, czy też nie powinna. Jeśli tak, to kontaktuje się z nim przez utworzenie połączenia TCP z adresem IP i numerem portu ze wspomnianego pakietu. Używając metody zdalnego wywołania RMI (Remote Method Invocation), usługa wyszukiwania wysyła do źródła pakietu obiekt zwany RS (Service Registrar) – sekretarz usługi. Jego powinnością jest uproszczenie dalszej komunikacji z usługą wyszukiwania. Przez wywołanie procedur w tym obiekcie nadawca pakietu rozgłoszeniowego może dołączać i przeszukiwać usługi wyszukiwania. W przypadku cytowanego urządzenia pamięciowego usługa wyszukiwania mogłaby utworzyć do niego połączenie TCP i wysłać RS. Dzięki temu to urządzenie mogłoby rejestrować usługę magazynowania przez proces join.