Shared Knowledge
Shark is an acronym for Shared Knowledge. The project was started in the early years of the 21 century. At first it was a vision in opposite to the WWW which already ruled the world.
WWW is a marvelous technology. It changed the world fundamentally. WWW became a synonym of Internet. That’s comparison is flawed, though.
Internet is a network of independent computers – let’s call them peers. WWW comprises clients and server. A server stores data which clients can access. Clients depend on server. What’s the problem at all? Not much as soon as we entered the age of Web 2.0.
Social network applications store personal information on server. We all know the discussions about if, when, who and for what private data should be used. Most of these discussions are useless because data can be misused by application providers themselves and intruders. Some provider chose another way: Users have to permit providers a more or less unlimited right for exploitation of their private data if they want to use their services. Some application provider are a massive market force as their price in the stock market illustrates. Little clients like most of us are hardly recognized in this game.
Client- server based applications can be blocked, e.g. be refusing clients to access theses server. It’s daily business of a number of players in the Net.
Client-server architecture was firstly introduced in the 60th last century with mainframes. These huge computers used to be very expensive and needed a lot of attention administrators. Cheap clients got access to the big expensive machines.
Internet was invented in the 1970th. It overcome disadvantages of client-server architectures. WWW was strongly inspired by FTP and gopher and is a pure client-server system using the more flexible Internet. In some aspects, WWW brought back problems of the 1960th. An amazing step.
Shark was a vision. What if we’d take the Internet concepts (P2P) and create a system similar to the web. What is the WWW? Distributed hyper documents. What if we’d store documents not on a server but on each peer. What if each peer would communicate with other peers directly and not indirectly via a server? Does it even work if a peer doesn’t have to run a WWW server or a similar entity?
In a PhD was proved that such a distributed P2P systems can be build. Finally, we have build a system implementing these concepts. A Shark peer stores its data locally. It can exchange data with other peers. In contrast to WWW, each peer most be interested in communicating: It’s not sufficient that user Alice wants to get data from user Bob. Bob must also be interersted in sending data to Alice. Shark gives users their autonomy back. Each user can decide under which circumstances s/he is willing to communicate with whom. And each communications is a direct communication.
P2P systems have an principle drawback compared to server based systems. Server are well-known. Most of us know the URL of the favorite search engine or social network web page. We can hardly remember all web pages of our friends. Moreover, it’s pretty easy to write algorithms on a server that finds people who have something in common and should communicate. Finding interesting new people is the killer feature of any social applications.
It is far more tricky in a P2P system. How does a peer find another peer with similar interests? We solved it by means of semantic data structures and a distributed negotiation protocol.
Yes, social networks can be build as P2P systems. Now we should do it.
To make it clear: We love the WWW. It is a marvelous system that improved life of literally billions including ours. And obviously, you are reading a WWW page right now. WWW isn’t perfect for any application, though. In some applications classes, P2P systems are better than client-server systems, especially applications that deal with private data.
With Shark we could prove that social networks can be created based on P2P infrastructure. Shark concepts are stable. Implementations are not. We have a programming framework (SharkFW) and a social application SharkNet. We are about coming out of the lab and could use some help to make it a stable system.
Shark is open source under LGPL. We don’t plan to make any business with it. We would like to help you using or even selling it. We are a little group at a university in Berlin/Germany.