The haggle Project

Source: Internet
Author: User

What is haggle (I am a user and do not understand all this technical jargon )?

Think of haggle as a system that makes it easy to exchange files between mobile devices, such as mobile phones. on the web, people can go to Google to find the information they want in the "online cloud" by typing in a few keywords. haggle tries to do the same for the "offline cloud" of people in social communities. imagine that you can type in a number of keywords into your mobile phone, and as you move about during the course of a day, you will receive content that match your keywords from the people you meet. the more precise the keywords are, the more accurate will also the content already ed be.

What do you mean by opportunistic communication?

Nowadays, people have powerful communication devices (e.g ., smartphones) with lots of content which they carry everywhere they go during the course of a normal day. while doing this, lots of communication opportunities occur that are not exploited, e.g ., one walks past an open access point, or meets another mobile device holding content of interest, and so forth. opportunistic communication is about devising mechanisms to exploit these opportunities in smart and efficient ways, by using any means possible.

Why shoshould I care about haggle if I am a developer?

You shoshould, If you have ever been frustrated by the following:

    • Mobile phones nowadays have a multitude of communication interfaces and content capabilities, but they suck at simple things such as exchanging data directly between themselves.
    • The "standard" synchronous communication APIs are overly complex and difficult to work with in a mobile environment where disconnections are common, and delays may be long.
    • To get some content you are interested in, you have to find a specific host to get it from rather than getting it automatically from the first person you meet and that carries it.

Why the name haggle?

Haggle is a play on the words Google and ad-hoc. haggle also meansBarterOrNegotiate, Which is exactly what mobile devices do with content when they meet and run haggle.

How does haggle relate to delay-tolerant networking (dtn )?

lets avoid some confusion by defining what is really meant by dtn. firstly, one can refer to dtns when one talks about the broad collection of network types that generally have very long delays (due to slow data links and frequent disconnections ), and use a postal-style store-carry-forward approach to data delivery. haggle can be seen as an architecture that generally works well with such networks. secondly, dtn can refer to the dtn Architecture -- an effort to standardize a set of protocols that works well with dtns when the Internet protocols do not. here we focus on the differences between haggle and the dtn architecture.

although both ubuntures target similar style networks, the approach taken and scenarios envisaged are quite different. in general, haggle focuses more on applications that inreceivate social aspects, have content-focus, and work on consumer devices such as mobile phones. dtn, on the other hand, focuses more on efficient communication in very challenged environments, such as in deep space and rural areas where no infrastructure is available. dtn sort of aims to create a virtual link to move data between two endpoints by using mobile data mules, while haggle aims to allow users to disseminate content using their mobile devices even though there is no infrastructure (or it is too costly and slow ).

On a technical level there are supported differences between the dtn architecture and haggle. for instance, while the dtn architecture has a traditional host-centric approach to addressing using end-point Identifiers (EIDS ), haggle has a data-centric addressing approach based on metadata (in the form of key-value pairs ). further, dtn encapsulates several application data itemsBundlesFor efficient delivery, while haggle does'Application layer framing'With its ownData ObjectFormat.

Isn' t haggle really a publish-subscribe system?

Well yes, in every ways it is a pub-sub system for dtns. but it is quite different from pub-sub systems that are created for the Internet. internet pub-sub systems typically use an overlay, such as a distributed Hash table (DHT), to disseminate events about where content matching a user's sub‑has been published. the subscriber can then choose to pull the content from one of the publishers. obviusly, this pull approach does not work in a disconnected dtn-style network. haggle instead disseminates a user's profile (called the node description ) in the network, and when the profile matches some data on another user's device, that device may try to push the matching data to the owner of the profile. this push approach works better without end-to-end paths, which are not always available in the networks that haggle targets.

A novelty of haggle, compared to other pub-sub systems, is how published data is matched against user interests (the subscriptions ). pub-sub systems generally use topic channels or filters to match content. both these approaches are Boolean -- either an item of data matches or it doesn' t. haggle instead uses a search approach to matching, similarly to Google. imagine going to Google and typing in a few keywords (the subdomains ). the result may be millions of hits, but usually only the top ten hits are of interest (which is also what is shown by default ). by using ranking, haggle does the exact same thing to match data against a user's profile, I. E ., there may be missing matches, but only the topNOnes are pushed to the owner of the profile.

Do I understand it correctly that haggle does epidemic dissemination of data?

Both yes and no. By default, haggle only disseminates data epidemically among the groups of people that have an interest in the data (Interest Group). This follows naturally as two devices that come in contact will exchange the data they have mutual interest in. when these two later meet other devices in the same group, they will further spread the data and so forth. the users that have no interested in a data item will hence not receive it. however, haggle also has a framework for supporting forwarding algorithms that can compute what we callDelegates, Which are people that carry the data on behalf of interest groups they are not part of themselves. thus, forwarding is useful to "Connect" otherwise segmented interest groups, or to just reduce the delay it takes to disseminate to the entire group.

What about security?

This is the omnipresent research question that certainly has validity also in the context of haggle. security issues related to opportunistic networking is researched broadly within the haggle EU project. the outcome of that research may or may not apply directly to the haggle architecture and implementation, and, in case it does apply, it may be integrated in the code.

haggle currently implements a basic security framework that allows data objects to be signed and verified. this is a proof of concept as we use our own self-Signed root-certificate, but it cannot strates the integration of security mechanisms in haggle. the Framework supports three security levels: low, medium, and high. these currently correspond to "accept all data objects", "accept only signed node descriptions but all other types of unsigned objects", and "all data objects must be signed ". we use the Medium setting by default as that protects the "subscriptions" in the network, but allows nodes to accept data even if they do not have the certificate of the person/entity that generated it.

The security philosophy we adopt in haggle is to be permissive about sharing and forwarding information, but to be restrictive about accepting information. the reason for this approach is that participating nodes rely on the services of each other for the communication to function. hence nodes shoshould be happy to give information to other nodes as that helps the dissemination of content in the network. if nodes require privacy, They shocould encrypt their data rather than being restrictive about disseminating it.

There is a haggle project on SourceForge as well. How does that project relate to this one?

Haggle is a EU funded research project, and the SourceForge page and this one are both part of that project. however, the Code on the SourceForge page is an implementation of an earlier version of the haggle architecture, which was developed by Intel Research Cambridge-a now defunct research lab that is no longer part of the project. that implementation was written in Java, and it is based on an architecture design that differs substantially from the later one found here, which has been developed by Uppsala University. to make a clean break, and to make clear the differences from the earlier implementation, we decided to create a new project page. further, we also like the cleaner design of the Google Code pages.

Which platforms does haggle run on?

Haggle runs on Linux, Mac OS X, Android, iPhone (limited functionality), Windows, Windows Mobile.

Which programming language is haggle written in?

Haggle itself is written mostly in C ++, with some bits in C. In addition to haggle itself, there is an application programming library calledLibhaggleWhich is written in C. Over libhaggle exists also language wrappers for C # and Java, which makes it possible to write applications in any of those versions ages.

I am starting a project that uses haggle, which platform wocould you recommend I work?

This is a tough question that depends on the nature of your project. A lot of work was put into making haggle work well done ss lower platforms, so our general recommendation is to follow that example and ensure that your project runs on as lower platforms as possible. however, if you are looking to do applications on mobile phones we wowould recommend Android, because it is very open and it is easy to write nice looking applications. people that are used to Windows may prefer Windows Mobile, however, and Visual Studio is quite easy to work.

When I run your code, I experience crashes or weird behavior?

That is very unfortunate. although we try to make releases as stable as possible, haggle is still experimental software that is primarily created for research purposes. therefore, we cannot maintain has cial quality code as we are continuously loading ing new grounds. we encourage you to file a bug report under "issues ". remember to describe your problem in detail, and preferably a way to reproduce it. we also gladly accept patches if you feel up to the task of fixing the problem yourself.

Technorati tags: haggle, dtn, pSN

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.