Кіріспе

Ашық кодты теңдестік протоколы

JXTA (Juxtapose) – 2001 жылы Sun Microsystems компаниясы бастаған ашық кодты теңдестік протоколының сипаттамасы. JXTA протоколдары – желіге қосылған кез келген құрылғыға хабар алмасуға және желі топологиясына тәуелсіз ынтымақтастық құруға мүмкіндік беретін XML хабарламалары жиынтығы ретінде анықталған. JXTA ашық XML протоколдары жиынтығына негізделгендіктен, оны кез келген заманауи компьютер тілінде жүзеге асыруға болады. Java SE, C/C++, C# және Java ME үшін нұсқалары жасалды. C# нұсқасы C++/C түпнұсқалық байланыстарын пайдаланды және толыққанды қайта іске асырылмады. JXTA теңдестіктері виртуалды жабын желісін құрайды, бұл теңдестіктерге және ресурстардың кейбіреулері өрт қабырғалары мен NAT-тердің артында немесе әртүрлі желілік тасымалдаушыларды қолданғанда да, басқа теңдестіктермен өзара әрекеттесуге мүмкіндік береді. Сонымен қатар, әрбір ресурс Java байлауында 160 биттік SHA 1 URN бірегей идентификаторы арқылы анықталады, сондықтан теңдестік өз орналасқан жерін өзгерте алады, бірақ тұрақты идентификациялық нөмірін сақтайды.

Мәртебе

2010 жылдың қараша айында Oracle JXTA жобаларынан ресми түрде бас тартқанын жариялады. 2011 жылдың тамызына дейін JXTA жобасы әлі жалғастырылмады және оның жұмысын сақтап қалу туралы да хабарлама жоқ. Сонымен қатар, оның Басқармасын құру туралы да шешім қабылданбады, ал Oracle бастапқы кодты Apache лицензиясының 2-ші нұсқасына көшіру туралы сұранысқа жауап берген жоқ.

Теңдестердің санаттары

JXTA екі негізгі теңдес санатын анықтайды: шеттік теңдестер және супер теңдестер. Супер теңдестерді кездесу теңдестері мен эстафеталық теңдестерге бөлуге болады. Әрбір теңдес JXTA теңдес моделінде нақты белгіленген рөлге ие. Шеттік теңдестер әдетте уақытша, төмен өткізгіштікке ие желілік қосылысқа ие теңдестер ретінде анықталады. Олар көбінесе Интернет шекарасында, корпоративтік өрт қабырғаларының артында жасырынып немесе арнайы емес қосылымдар арқылы желіге қосылады. Кездесу теңдесі – бұл JXTA желісіндегі теңдестерді үйлестіруді және хабар тарату үшін қажетті көлемді қамтамасыз ететін арнайы мақсаттағы теңдес. Егер теңдестер әртүрлі кіші желілерде орналасса, онда желіде кем дегенде бір кездесу теңдесі болуы тиіс. Эстафеталық теңдес өрт қабырғалары немесе NAT жүйелерінің артында орналасқан теңдестерге JXTA желісіне қатысуға мүмкіндік береді. Бұл HTTP сияқты өрт қабырғасын өткізе алатын протокол арқылы іске асырылады. JXTA желісіндегі кез келген теңдес, қажетті деректемелерге немесе желілік/сақтау/жад/процессор талаптарына ие болғанда, кездесу немесе эстафеталық теңдес бола алады.

Жарнамалар

Реклама – P2P желісіндегі кез келген ресурсты (төрелер, топтар, арналар, қызметтер және т.б.) сипаттайтын XML құжаты. JXTA-дағы байланысты желі арқылы бір немесе бірнеше жарнама алмасу ретінде қарастыруға болады.

Теңдестер тобы

Теңдестер тобы хабар таратуға мүмкіндік жасайды және теңдестерді логикалық түрде топтастыруға болады. JXTA жүйесінде әрбір теңдес NetPeerGroup деп аталатын әдепкі топтың мүшесі болып табылады, бірақ берілген теңдес бір уақытта көптеген кіші топтардың мүшесі бола алады. Теңдес әртүрлі топтарда әртүрлі рөлдерді атқара алады; бір топта ол шеткі теңдес рөлін ойнаса, екіншісінде – кездесу ортасы болып табылады. Әрбір топта кемінде бір кездесу ортасы болуы керек, ал екі топ арасында хабар алмасу мүмкін емес.

Кездесу желісі

Rendezvous түлегі бағдарлаудың оңтайландырылған механизміне ие, бұл оларға қосылған шеттік түлектер арқылы жіберілетін хабарламаларды тиімді таратуға мүмкіндік береді. Бұл бос жүйелі желі арқылы жүзеге асырылады. Әр Rendezvous түлегі Rendezvous Peer View (RPV) –ді, Peer ID бойынша реттелген белгілі кездесу түлектерінің тізімін сақтайды. JXTA желісіндегі барлық RPV-дің сәйкестігін қамтамасыз ететін механизм жоқ, сондықтан берілген RPV басқа кездесу түлектерінің уақытша немесе тұрақты сәйкессіз көрінісін көрсетуі мүмкін. Төменгі айналым деңгейі болғанда, яғни тұрақты желіде түлектер жиі қосылмай немесе кетіп қалмайтын жағдайда, әр түлектің RPV тізімі бірігеді, себебі әр кездесу түлегі белгілі бір уақытта басқа кездесу түлектерімен RPV-нің кездейсоқ бөлігін алмасады. Edge peer жарнама жариялағанда, осы жарнаманың индексі Shared Resource Distributed Index (SRDI) деп аталатын жүйе арқылы Rendezvous-қа жіберіледі. Содан кейін Rendezvous Таратылған хэш кестесі (DHT) функциясын қолданады, осылайша индексті RPV тізіміндегі басқа түлекке жібере алады. Көбейту үшін ол осы индексті RPV тізіміндегі таңдалған Rendezvous түлегінің көршілеріне жібереді. Іздеу процесі осы индексті сақтауға жауапты Rendezvous түлегін табу үшін сол DHT функциясын пайдалануды қажет етеді. Rendezvous-қа сұраныс жеткен кезде ол оны жарнаманы жариялаған шеттік түлекке жібереді, ал бұл түлек сұраныс білдірген түлекпен байланысады. Егер DHT функциясы жарнамаға жауапты түлек таппаса, сұрау RPV тізімінде сәйкес нәтиже табылғанша, сұрау тоқтатылғанша немесе RPV тізімінің шегіне жеткенше жоғары және төмен қарай жіберіледі. Бұл процесс кездейсоқ серуендеу (random walk) деп аталады.