JXTA: Ашық бастаулы, құпиялылықты сақтайтын протокол. Sun Microsystems жасаған, XML хабар алмасу арқылы құрылғылардың тәуелсіз байланысын қамтамасыз етеді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Ашық кодты теңдестік протоколы
An open source peer to peer protocol
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 бірегей идентификаторы арқылы анықталады, сондықтан теңдестік өз орналасқан жерін өзгерте алады, бірақ тұрақты идентификациялық нөмірін сақтайды.
JXTA (Juxtapose) was an open source peer to peer protocol specification begun by Sun Microsystems in 2001. The JXTA protocols were defined as a set of XML messages which allow any device connected to a network to exchange messages and collaborate independently of the underlying network topology. As JXTA was based upon a set of open XML protocols, it could be implemented in any modern computer language. Implementations were developed for Java SE, C/C++, C# and Java ME. The C# Version used the C++/C native bindings and was not a complete re implementation in its own right. JXTA peers create a virtual overlay network which allows a peer to interact with other peers even when some of the peers and resources are behind firewalls and NATs or use different network transports. In addition, each resource is identified by a unique ID, a 160 bit SHA 1 URN in the Java binding, so that a peer can change its localization address while keeping a constant identification number.
Мәртебе
2010 жылдың қараша айында Oracle JXTA жобаларынан ресми түрде бас тартқанын жариялады. 2011 жылдың тамызына дейін JXTA жобасы әлі жалғастырылмады және оның жұмысын сақтап қалу туралы да хабарлама жоқ. Сонымен қатар, оның Басқармасын құру туралы да шешім қабылданбады, ал Oracle бастапқы кодты Apache лицензиясының 2-ші нұсқасына көшіру туралы сұранысқа жауап берген жоқ.
"In November 2010, Oracle officially announced its withdrawal from the JXTA projects". As of August 2011, the JXTA project has not yet been continued or otherwise announced to retain operations, neither a decision was made on the assembly of its Board nor an answer by Oracle regarding a pending request to move the source code to Apache license version 2.
Теңдестердің санаттары
JXTA екі негізгі теңдес санатын анықтайды: шеттік теңдестер және супер теңдестер. Супер теңдестерді кездесу теңдестері мен эстафеталық теңдестерге бөлуге болады. Әрбір теңдес JXTA теңдес моделінде нақты белгіленген рөлге ие. Шеттік теңдестер әдетте уақытша, төмен өткізгіштікке ие желілік қосылысқа ие теңдестер ретінде анықталады. Олар көбінесе Интернет шекарасында, корпоративтік өрт қабырғаларының артында жасырынып немесе арнайы емес қосылымдар арқылы желіге қосылады. Кездесу теңдесі – бұл JXTA желісіндегі теңдестерді үйлестіруді және хабар тарату үшін қажетті көлемді қамтамасыз ететін арнайы мақсаттағы теңдес. Егер теңдестер әртүрлі кіші желілерде орналасса, онда желіде кем дегенде бір кездесу теңдесі болуы тиіс. Эстафеталық теңдес өрт қабырғалары немесе NAT жүйелерінің артында орналасқан теңдестерге JXTA желісіне қатысуға мүмкіндік береді. Бұл HTTP сияқты өрт қабырғасын өткізе алатын протокол арқылы іске асырылады. JXTA желісіндегі кез келген теңдес, қажетті деректемелерге немесе желілік/сақтау/жад/процессор талаптарына ие болғанда, кездесу немесе эстафеталық теңдес бола алады.
JXTA defines two main categories of peers: edge peers and super peers. The super peers can be further divided into rendezvous and relay peers. Each peer has a well defined role in the JXTA peer to peer model. The edge peers are usually defined as peers which have transient, low bandwidth network connectivity. They usually reside on the border of the Internet, hidden behind corporate firewalls or accessing the network through non dedicated connections. A Rendezvous peer is a special purpose peer which is in charge of coordinating the peers in the JXTA network and provides the necessary scope to message propagation. If the peers are located in different subnets then the network should have at least one Rendezvous peer. A Relay peer allows the peers which are behind firewalls or NAT systems to take part in the JXTA network. This is performed by using a protocol which can traverse the firewall, like HTTP, for example. Any peer in a JXTA network can be a rendezvous or relay as soon as they have the necessary credentials or network/storage/memory/CPU requirements.
Жарнамалар
Реклама – P2P желісіндегі кез келген ресурсты (төрелер, топтар, арналар, қызметтер және т.б.) сипаттайтын XML құжаты. JXTA-дағы байланысты желі арқылы бір немесе бірнеше жарнама алмасу ретінде қарастыруға болады.
An Advertisement is an XML document which describes any resource in a P2P network (peers, groups, pipes, services, etc.). The communication in JXTA can be thought as the exchange of one or more advertisements through the network.
Теңдестер тобы
Теңдестер тобы хабар таратуға мүмкіндік жасайды және теңдестерді логикалық түрде топтастыруға болады. JXTA жүйесінде әрбір теңдес NetPeerGroup деп аталатын әдепкі топтың мүшесі болып табылады, бірақ берілген теңдес бір уақытта көптеген кіші топтардың мүшесі бола алады. Теңдес әртүрлі топтарда әртүрлі рөлдерді атқара алады; бір топта ол шеткі теңдес рөлін ойнаса, екіншісінде – кездесу ортасы болып табылады. Әрбір топта кемінде бір кездесу ортасы болуы керек, ал екі топ арасында хабар алмасу мүмкін емес.
A peer group provides a scope for message propagation and a logical clustering of peers. In JXTA, every peer is a member of a default group, NetPeerGroup, but a given peer can be member of many sub groups at the same time. A peer may play different roles in different groups; it may act as an edge peer in one group, but a rendezvous in another. Each group should have at least one rendezvous peer and it is not possible to send messages between two groups.
Кездесу желісі
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) деп аталады.
The Rendezvous peers have an optimized routing mechanism which allows an efficient propagation of messages pushed by edge peers connected to them. This is achieved through the use of a loosely consistent network. Each Rendezvous peer maintains a Rendezvous Peer View (RPV), a list of known rendezvous peers ordered by the Peer ID. There is not any mechanism to enforce the consistency of all RPVs across the JXTA network, so a given RPV can have a temporary or permanent inconsistent view of the other rendezvous peers. As soon as there is a low churn rate, that is, a stable network where peers don't join or leave too frequently, the RPV list of each peer will converge as each rendezvous peer exchange a random subset of its RPV with other rendezvous peers from time to time. When an edge peer publishes an Advertisement, the index of this advertisement is pushed to the rendezvous through a system called Shared Resource Distributed Index (SRDI). After that, the rendezvous applies a Distributed Hash Table (DHT) function so that it can forward the index to another peer in the RPV list. For replication purposes, it will send this index to the neighbours of the chosen rendezvous peer in the RPV list. The lookup process requires the use of the same DHT function to discover the rendezvous peer which is in charge of storing that index. Once the rendezvous peer is reached it will forward the query to the edge peer which published the advertisement and this peer will get in touch with the peer which issues the query. If the DHT function cannot find a peer which is in charge of the advertisement then the query will be forwarded up and down the RPV list until a match is found, the query is aborted, or it reaches the limits of the RPV list. This process is called random walk.