Available at: http://www.openp2p.com/pub/a/p2p/2000/11/24/shirky1-whatisp2p.html
What has changed with Internet?
Who's who?
Available at: http://www.openp2p.com/pub/a/linux/2000/09/22/p2psummit.html
The paper summarizes the conclusions of the first peer-to-peer summit organized by O'Reilly.The message
Peer-to-peer is fundamental to the architecture of the Internet.
Peer-to-peer is the end of the read-only Web.
Peer-to-peer allows you to participate in the Internet again.
Peer-to-peer: steering the Internet away from TV.P2P limitations
Barriers to peer-to-peer
- Peer-to-peer is probably not appropriate when it's important for everybody to know all the current data at the same time.
- Peer-to-peer systems seem to contain an inherent fuzziness. Gnutella, for instance, doesn't promise you'll find a file that's hosted on its system. It relies on the notion of a "horizon" beyond which you don't know what is available. The host for a particular resource may be there one minute and gone the next.
- Peer-to-peer seems to reward large communities.
- Peer-to-peer is good if you have a strong idea what you're looking for (an author, for instance) but have no idea where it is. A centralized system like Yahoo! is better if you have only a vague idea what you're looking for, but possess some confidence that you can find it at a particular site.
- Data is easy to find if it's easy to categorize. Metadata, once again, proves key to the future of peer-to-peer.
- Domain Name System is a barrier to end-to-end addressing.
- Systems that use proprietary systems of addressing can't interoperate.
- Regulation: early peer-to-peer systems happen to be associated with violations of intellectual property.
Barriers to entryThings that currently make it hard for users to start a peer-to-peer service need to be attacked by the
peer-to-peer developers themselves. Among these:
- Services may require the user to download, install, and configure a new program.
- Users are forced to learn a system of metadata and apply a lot of tags.
- Prospective users may have to upload material before doing any downloads.
Available at: http://www.openp2p.com/pub/a/p2p/2001/08/20/shirky.html
Features of P2P
- Client-server is an attitude about transactions, not about machines. A machine can as easily be a client in one second and a server in the next, or indeed a client and a server at the same time.
- A shift from machine-centrism to content-centrism, or service-centrism, or people-centrism. What the peer-to-peer world has shown us is that all kinds of things can have addresses. And that when you point to Napster, of course you're going to end up with a content-centered model. But when you point to ICQ, you're getting a people-centric model. And if you're going to start ending up in a world where Web services are offered over, say, Jabber, you're going to end up with a service-centric model and so forth
- The legacy that is going to fundamentally change the landscape: address spaces no longer have to be tied to machines, but they don't have to be tied to content either. It may be content or people or any resource that can be named or addressed.
- Massive redundancy of inexepensive and unreliability versus high reliability with very rare machines. P2P adopts the first strategy. Idea: good content propagates in the system and bad content falls out.
Available at: http://glis.hpl.hp.com/techpubs/2002/HPL-2002-57.html
Available at: http://www.jxta.org/project/www/white_papers.html
Available at: http://www.jxta.org/project/www/docs/DomainFAQ.html
Available at: http://www.openp2p.com/pub/a/p2p/2001/04/25/jxta_position.html
Quick presentation of JXTA and a comparison to .NET and Hailstorm.
Available at: http://www.jxta.org/project/www/white_papers.html
Available at: http://www.microsoft.com/myservices/services/userexperiences.asp
As part of the Microsoft .NET initiative, Microsoft is introducing a user-centric architecture and set of XML Web services, Microsoft .NET My Services (formerly codenamed "HailStorm"). .NET My Services will make it easier to integrate the silos of information that exist today. .NET My Services is oriented around people, instead of around a specific device, application, service, or network. It puts users in control of their own data and information, protecting personal information and providing a new level of ease of use and personalization. .NET My Services takes advantage of the Microsoft .NET-based technologies and architecture that make it possible for applications, devices, and services to work together. These services make user consent the basis for who can access user information, what they can do with it, and how long they have permission.
With .NET My Services, booking a flight using an online travel reservation
service becomes much
simpler because with the user's consent, the travel service automatically
access the user's preferences and payment. If you're traveling on business
and your company has travel policies you need to adhere to, your individual
affiliation with your company's .NET My Services group identity will make
it possible for the travel service to automatically show you only the choices
that meet both your preferences and your
company's requirements. Once you've chosen your flight, the travel service
can use .NET My Services, with your explicit permission, to figure out
which calendaring service you use and automatically schedule the itinerary
onto your calendar, automatically updating that itinerary and notifying
you if your flight will be late. And through .NET My Services, you
can share that live flight itinerary with whomever you're going to
visit so that they will also know when and where to expect you. The information
in your Microsoft .NET Calendar can then be accessed through your PC, someone
else's PC, a smart phone, a PDA, or any other smart connected device.
Architecture
.NET Profile. Name, nickname, special dates, picture, address.
.NET Contacts. Electronic relationships/address book.
.NET Locations. Electronic and geographical location and rendezvous.
.NET Alerts. Alert subscription, management, and routing.
.NET Presence. Online, offline, busy, free, which device(s) to send alerts
to.
.NET Inbox. Inbox items like e-mail and voice mail, including existing
mail
systems.
.NET Calendar. Time and task management.
.NET Documents. Raw document storage.
.NET ApplicationSettings. Application settings.
.NET FavoriteWebSites. Favorite URLs and other Web identifiers.
.NET Wallet. Receipts, payment instruments, coupons, and other transaction
records.
.NET Devices. Device settings, capabilities.
.NET services. Services provided for an identity.
.NET Lists. General purpose lists.
.NET Categories. A way to group lists.
Available at: http://www.openp2p.com/lpt/a//p2p/2001/05/30/hailstorm.html
Features
- HailStorm, which launched in March [2001] with a public announcement and a white paper, is Microsoft's bid to put some meat on the bones of its .NET initiative. It is a set of Web services whose data is contained in a set of XML documents, and which is accessed from the various clients (or "HailStorm endpoints") via SOAP (Simple Object Access Protocol). No Microsoft runtime or tool is required to call them Hailstorm services.
- Concurrent to Sun's JXTA.
- An attempt to re-visit the original MS-DOS strategy: Microsoft writes and owns the basic framework, and third-party developers write applications to run on top of that framework.
- While decentralizing client-code, Microsoft centralizes the three core aspects of the service:
- Identity (using Passport)
- Security (using Kerberos)
- Definitions and Descriptions (using HailStorm's globally standardized schema)
PhilosophyTruly ubiquitous software will have to run on non-MS devices. The world has shifted from "software as product" to "software as service," where software can be accessed remotely and paid for in per-use or per-time-period licenses. HailStorm asks both developers and users to pay for access to HailStorm, though the nature and size of these fees are far from worked out.
Authentication-Centric
In a distributed model, it is the user and not the hardware that needs to be validated, so user authentication becomes the core attribute -- not "Is this software licensed to run on this machine?" but "Is this software licensed to run for this user?"
HailStorm is thus authentication-centric, and is organized around Passport. HailStorm is designed to create a common set of services which can be accessed globally by authenticated users, and to this end it provides common definitions for:
Descentralization
- Identity (using Microsoft Passport)
- Security (using Kerberos MS)
- Definitions and Descriptions (using Hailstorm's globally standardized schema)
- They have made accessing HailStorm services on non-Microsoft clients a core part of the proposition.
- Open access model: all services are XML, SOAP.
HailStorm offers a way for Microsoft to sell software and services on devices that aren't using Microsoft operating systems.
CentralizationBecause they have decentralized their support of the client, they must necessarily make large parts of HailStorm open, but always with a caveat: while HailStorm is open for developers to use, it is not open for developers to build on or revise. Microsoft calls this an "Open Access" model -- you can access it freely, but not alter it freely.
Any changes made to HailStorm must be approved by Microsoft, a procedure they call "Open Process Extensibility".
With HailStorm, Microsoft is shifting from a strategy of controlling software to controlling transactions.
Passport:
- An Internet user without a Passport will not exist within the system, and will not be able to access or use Passport services.
- Because users pay to participate in the HailStorm system, in practice this means that Microsoft will control a user's identity, leasing it to them for use within HailStorm for a recurring fee.
- It's not clear how open the Passport system will be. It appears that all issuing and validation of Passports will be centralized under Microsoft's control.
Security:
- Authentication of a HailStorm user is provided via Kerberos, a secure method developed at MIT for authenticating a request for a service in a computer network.
- It is not clear if interoperability with the Microsoft version of Kerberos is required to participate in HailStorm.
Definitions and descriptions:
- Microsoft wants to create a schema which describes all possible user transactions, and then copyright that schema, in order to create and manage the ontology of life on the Internet.
- All entities, methods, and transactions will be defined and mediated by Microsoft.
CommentsBy adopting open standards such as XML and SOAP, Microsoft hopes to attract the world's application developers to write for the HailStorm system now or soon, and by owning the authentication and schema of the system, they hope to be the mediator of all HailStorm users and transactions, or the licenser of all members of the HailStorm federation.
Drawbacks:
- Using HailStorm requires a Microsoft-hosted identity.
- You cannot use a non-Microsoft copyrighted schema to broker transactions within HailStorm.
- Developers might not be able to write HailStorm services or clients without using the Microsoft-extended version of Kerberos.
Hailstorm will not be launching in any real way until 2002.
November 2000
Available at: http://oceanstore.cs.berkeley.edu/publications/papers/pdf/asplos00.pdf
OceanStore is an infrastructure designed to span the globe and provide continuous access to persistent information.
Two goals:
Support nomadic data: data can be cached anywhere, anytime (promiscuous caching).
Overview
Applications
Architecture details
Implementation
Available at: http://oceanstore.cs.berkeley.edu/publications/papers/pdf/ieeeic.pdf
The paper describes the mechanisms for storage-level management in OceanStore (i.e. the set of operations required to maintain data integrity and access performance without reference to the data semantics).
Routing. Tapestry uses redundant neighbor pointers when detecting primary route failure while routing. Several root nodes exist for a given object, to provide redundancy. Queries are sent to each root in parallel.
Data. Objects are divided into blocks and blocks are erasure-encoded and redundantly distributed over the network.
Update commitment. The update protocol uses a modified Byzantine agreement protocol, tolerating the failure of less than third of the inner ring nodes.Updates are transmitted by the inner ring nodes to secondary nodes.
Routing. A node can disapper, in which case its neigbors detect its absence and update routing tables accordingly. Alternatively, a node can use back pointers to indicate it will disapear and notify object servers for which it stores location information or nodes which rely on it for routing.
Data. Server can periodically verify the integrity of the fragments it stores and restore fragments in case an error is found. Also, when the redundancy level for an object has dropped below a critical level, new fragments can be created.
Update commitment. Under Byzantine aswsumption, the inner ring nodes can be replaced dynamically without affecting the system functionality.
Several clients are under construction, including an NTFS file system and an HTML gateway.
April 2001
PhD Qualifying examination proposal, available at: http://www.cs.berkeley.edu/%7Eravenben/tapestry/Tapestry_quals.pdf
The paper gives an overview of Tapestry, OceanStore's routing layer. It justifies the main design decions, especially with respect to the use of redundancy for fault tolerance (storage AND routing), but also for performance stability. The paper introduces Tapestry's API and some metrics used to evaluate the system. It also presents some preliminary evaluation figures for a prototype and a comparison with respect to other concurrent systems, like Chord, CAN and Pastry.
SPAA 2002
Available at: http://www.cs.berkeley.edu/~ravenben/publications/pdf/SPAA02.pdf
The paper presents the algorithms used by Tapestry, OceanStore's routing layer. Algorithm properties are presented together with proofs. This is a theoretical paper.
Goals
The main interesting property targeted and achieved by Tapestry is that objects which exist in the system should be located. This is never guaranteed by other P2P systems.
Tapestry's primary goal is to provide "location-independent routing", i.e. the ability to route queries to object names in a changing environment, where objects can move. Two properties are targeted.
Details
Tapestry uses as a starting point the "PRR"scheme, a distributed data structure with good properties of routing locality and storage load balance. Tapestry extends this approach:
Both PRR and Tapestry garantee that they perform location-independent routing: if a query is sent to an object, the query is first sent to the roots and then are re-directed to the objects as soon as a pointer is encountered. The algorithm guaranteed that such a pointer is always encountered if the existing redundancy allows a route to be found from the qurying node to the route and from an encountered pointer to the corresponding publishing server.
Routing is achieved via a prefixed-based, nearest-neighbor scheme in a logical routing mesh, by solving one digit at a time.