Applejuice
Encyclopedia
Applejuice is a semi-centralized peer-to-peer
Peer-to-peer
Peer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...

 file sharing
File sharing
File sharing is the practice of distributing or providing access to digitally stored information, such as computer programs, multimedia , documents, or electronic books. It may be implemented through a variety of ways...

 network similar to the original eDonkey network
EDonkey network
The eDonkey network is a decentralized, mostly server-based, peer-to-peer file sharing network best suited to share big files among users, and to provide long term availability of files...

.

Architecture

Applejuice offers server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...

 and client software for Applejuicenet. The network is not managed by one company, organisation, or server, but is decentralized over many servers. The servers however, are central points for all users. Users of the Applejuice client connect to an Applejuice server, search for and find files, also locate files with a given hash from links, and then download them directly from other clients (or "peers"). The servers don't store any files. All files are served by the clients. The servers index these files, and the clients exchange the files. The clients are actually servent
Servent
In general a servent is a peer-to-peer network node, which has the functionalities of both a server and a client. This is a portmanteau derived from the terms server and client; it is a play on the word "servant"....

s (P2P), regarding file sharing services. The used terms describe the role in the file searching services.

For locating resources, the Applejuice network uses a client–server system. However, the servers are also connected one to another, so while on "Server A" an individual can locate files from users on "Server B" (server-server). Clients directly exchange information about servers and files.

The topology is comparable to IRC. Clients have to connect to a server, so it is somewhat centralized. However, there are many servers in each network, and there are also many networks. Client-client communication is similar to IRC's DCC.

Credit system

The network is based on credits. For 1 byte
Byte
The byte is a unit of digital information in computing and telecommunications that most commonly consists of eight bits. Historically, a byte was the number of bits used to encode a single character of text in a computer and for this reason it is the basic addressable element in many computer...

 upload individuals will receive 2 byte credits plus a 10% bonus of the Powerdownload, if the downloader activates the Powerdownload. One byte download costs 1 byte credit without Powerdownload. With activated Powerdownload individuals pay correspondingly more credits.

Other notes on the credit system include:
  • Closing the core will result in all credits resetting to 0.
  • Having less than 0 credits prohibits individuals from activating the Powerdownload, and the download won't rise above 15 kbyte
    Kilobyte
    The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...

    /s. Furthermore the download won't be higher than your upload.
  • The Powerdownload stays disabled if no credits are available to pay for it.
  • For incomplete chunk uploads the earned credits will be cancelled. An incomplete chunk can not be used and wastes of bandwidth
    Bandwidth (computing)
    In computer networking and computer science, bandwidth, network bandwidth, data bandwidth, or digital bandwidth is a measure of available or consumed data communication resources expressed in bits/second or multiples of it .Note that in textbooks on wireless communications, modem data transmission,...

    . A chunk can break, if the settings aren't configured correctly (e.g. the maximum upload in the AJ options is set much too high). If the chunk upload stops for more than 150 seconds a chunk will break.

Powerdownload

Clients which have enough credits can use the so called "Powerdownload". With activated Powerdownload a client will get a better place in the upload queues from the other users and your download speed will rise (it works like an auction
Auction
An auction is a process of buying and selling goods or services by offering them up for bid, taking bids, and then selling the item to the highest bidder...

). Users only have to "pay" for the next higher Powerdownload ranking, from the bidding of the second highest user (e. g. another user set his powerdownload ratio to 3,5 and you set the powerdownload ratio to 4,8 than you only pay 3,6 kbyte credits per 1 kbyte download - one step above the second highest bidding).

Structure of Client

The Client consists of 2 elements:
  • Core - the part which will do all operations, written in Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

  • GUI
    Gui
    Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

     - a graphical user interface (C++,.NET, Java, PHP, Perl, ..)


The elements are connected over a network (TCP/IP). The Core listens on a specific port, and the GUI connects and gets status information/sends requests.

The protocol for communication between core and GUI is open. Every application which implements it can be used as GUI. Currently, there are native Windows GUIs, an official Java GUI, a PHP-Webinterface and also a Linux-based GUI.

The core also runs without a connected GUI. Thus, you can close the GUI and go on swapping, or also shut down your local computer if the core runs on a server.

Usage

The Applejuicenet is used for content distribution with a given Hashlink. The system has also a built-in search to search servers for keywords, however this feature is only efficient if you're using the current snapshot core (version >=0.31.149.110) in combination with the Java-GUI 0.71.0_1 . Furthermore you have to enable/forward the core-port in your firewall/router. The Java-GUI 0.71 CVS-Build requires the Java-Runtime-Environment 6.0. If you are longer away - the core can also up-/download without the GUI and it saves CPU-bandwidth). Certainly there are also Community Linksites exchanging clickable hashes and some information about the files.

External links


GUIs

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK