國立交通大學
網路工程研究所
碩士論文
整合 OpenID 的 P2P 拍賣系統
P2P Based Auction System Integrated with OpenID
研 究 生:鄭婷文
指導教授:袁賢銘 教授
整 合 OpenID 的 P2P 拍 賣 系 統
P2P Based Auction System Integrated with OpenID
研 究 生:鄭婷文 Student:Ting-Wen Cheng
指導教授:袁賢銘 Advisor:Shyan-Ming Yuan
國 立 交 通 大 學
網 路 工 程 研 究 所
碩 士 論 文
A ThesisSubmitted to Institute of Network Engineering College of Computer Science
National Chiao Tung University in partial Fulfillment of the Requirements
for the Degree of Master
in
Computer Science
June 2008
Hsinchu, Taiwan, Republic of China
I
整合 OpenID 的 P2P 拍賣系統
研究生:鄭婷文 指導教授:袁賢銘 國立交通大學網路工程研究所 摘要 網路服務被廣泛的使用,通常使用 Client/Server 架構來管理資料,資料流量 過大和儲存裝置不足接有其瓶頸。近年來,線上購物日趨頻繁,大型網站紛紛向 賣家收取刊登功能使用費、交易手續費、直購價設定費...等,讓小物賣家轉而尋 求其他方式來拍賣商品。近年來,點對點技術發展蓬勃,並可解決 Client/Server 架構的瓶頸,運用點對點技術建置拍賣網站,藉由點對點技術資源分享的能力及 高度的人機互動性,而新興的 OpenID 則以解決頻繁且多餘的網路身份認證而崛 起,並提供安全、統一的認證機制。本研究針對未來網路發展趨勢將點對點技術 整合 OpenID 技術為平台,建置點對點拍賣系統。II
P2P Based Auction System Integrated with OpenID
Student : Ting-Wen Cheng Advisor : Shyan-Ming Yuan
Institute of Network Engineering
National Chaio Tung University
Abstract
Network services are widely used in recent years. They often adopt the
architecture of server/client to manage information and this leads to some problems
such as bottleneck at server, mass data flow and storage not enough. Moreover, recent
years, it is common to purchase online, people get use to selling or buying product on
auction sites like Yahoo. And it is trend to charge fee. Therefore, our thesis based on
P2P technology and integrates with OpenID login to build a distributed environment
with consistent and secure authentication mechanism. And also provides the
functionalities just like the server based auction system. With peer to peer technology,
problems of server/client architecture could be solved. Along with OpenID login, user
III
Acknowledgements
首先,伴隨著碩士班兩年的學習、研究以及本論文的順利完成,我最要感謝 的是我的指導教授袁賢銘老師。從開始的題目的訂定,到最後論文的完成,老師 都提供給我非常大的學習空間,並且不時的給予適當的建議與指導,讓我在研究 過程中能夠順利解決各種問題,對於整體研究有非常大的助益。另外,我要感謝 三位口試委員:梁德容教授、洪振偉教授、謝筱齡教授,在口試中提供了許多有 用的評論與建議,對於研究主題的完整性有非常大的幫助。 此外,我也要感謝實驗室的鴻仁學長、辰璞學姐、家鋒學長、永威學長、牧 奇學長,以及諸位同學和學弟、妹,平日在實驗室裡共同營造了歡樂和諧的氣氛, 對於整體課業有莫大的裨益,兩年來的學習經驗更是充滿著美好的回憶。 最後,我要感謝我的父母平時的諄諄教誨,總是在背後默默的支持著我,一 路陪伴到我完成學業,謹以此篇論文獻給我摯愛的家人。IV
Table of content
摘要 ... I Abstract ... II Acknowledgements ... III Table of content ... IV List of Figures ... VI List of Tables ... VIIChapter 1 Introduction ... 1
1.1 Preface ... 1
1.2 Motivation ... 1
1.3 Objective ... 2
1.4 Outline of the Thesis ... 2
Chapter 2 Background and Related Work ... 4
2.1 Background ... 4
2.2 Related Work ... 10
Chapter 3 System Architecture ... 14
3.1 Overall Architecture ... 14
3.2 Auction System Overview ... 18
Chapter 4 Implement Details ... 24
V
4.2 Self-Define Pub/Sub content ... 28
4.3 System Flow ... 29
Chapter 5 Application Demonstration ... 36
5.1 Main Frame of P2P auction system ... 36
5.2 User Login ... 37
5.3 Functionalities of P2P auction system. ... 38
Chapter 6 Comparison ... 43
6.1 Comparison Between P2P Auction... 43
6.2 Comparison Between Server Based Auction ... 44
6.3 Comparison Between P2P Blog ... 45
Chapter 7 Conclusion and Future Work ... 46
7.1 Conclusion ... 46
7.2 Future Work ... 46
VI
List of Figures
FIGURE 2-2 THE FIRST FOUR STEPS SHOWS HOW OPENIDWORKS ... 8
FIGURE 2-3 THE REMAIN FIVE STEPS OF HOW OPENIDWORKS ... 9
FIGURE 2-4 ITSKARMA ... 11
FIGURE 2-5 EZBAS ... 12
FIGURE 3-1 THE OBSERVER PATTERN OF AUCTION SYSTEM ... 16
FIGURE 3-2 SYSTEM ARCHITECTURE ... 18
FIGURE 4-1 THE FUNCTIONALITIES OF P2P AUCTION SYSTEM ... 24
FIGURE 4-2 THE OVERALL WORK FLOW OF P2P AUCTION SYSTEM ... 31
FIGURE 4-3 THE WORK FLOW OF EVALUATION PROCESS ... 33
FIGURE 4-4 THE WORK FLOW OF INSTANT MESSAGE ... 35
FIGURE 5-1 THE OVERVIEW GUI OF P2P AUCTION SYSTEM ... 36
FIGURE 5-2 LOGIN PAGE AND OPENIDPROVIDER WEBSITE ... 37
FIGURE 5-3 ADD A NEW PRODUCT TO SELL ... 38
FIGURE 5-4 BID FOR THE SELLING PRODUCT ... 39
FIGURE 5-5 TO EVALUATING OTHERS ... 40
FIGURE 5-6 LEAVING A MESSAGE ... 41
VII
List of Tables
TABLE 1-DIFFERENCE BEWTEEN P2P AUCTION ... 43
1
Chapter 1 Introduction
1.1 Preface
On internet, users register on different site for different usernames and passwords.
It becomes bothersome to memorize all the information. And to register on different
site also means that user must fill in some personal information again and again.
Along with the widespread of internet, it is common to search information online.
Most of people may have online auction experience. The growth rate of online auction
keeps fifty percent every year. To buyers, online purchase saves a lot of time and to
sellers they can save the rent for opening the store or the salary for hiring a person.
Online store open twenty four hours a day and even a whole year. It almost likes
an independent economic entity and there are more and more people regard online
selling as a formal career. To network service provider such as Yahoo and EBay, they
provide “space” for user to selling product with fee. The rising of peer to peer (P2P)
technology affects network servers on the internet. Based on P2P technology, we can
regard every end user as a new type of server. Usually end user plays both the role of
receiving data and propagating data. Network service like blog has successfully built
on top of P2P technology. The remaining service will also turn into decentralized in
the future.
1.2 Motivation
With the widespread of internet and the popularity of online auction, the online
auction system is nearly mature. Due to the convenience of online auction, user can
bid for products at any place or any time as long as the user can go onto the internet.
2
communication between seller and buyer seen not smoothly, the credit and security
mechanism is not completely safe for buyers. To network service providers such as
Yahoo, the company will face bottleneck problems or insufficient of storages at server
side. And to sellers, the disadvantage is that Yahoo announce to charge seller for fee
at 2004[1]. Before the announcement, online auction doesn’t charge user for fee, so
many people sell some second hand product online to earn extra gains or even regard
online selling as a formal career. And now user must be charge for an announcement
of selling product or even some additional functionality. This makes the online selling
career not easy. Although there exist another online auction site (EBay) haven’t
charge user for fee, driving by the trend, it will charge for fee someday. As a result,
we provide another way for users to selling things. They can make their own decision
to choose the way suitable for them.
1.3 Objective
The thesis based on P2P technology builds an auction system on P2P network to
overcome the problem above and to provide a system like the current server based
online auction system. We provide another choice for seller to selling things. P2P
auction system provides basic operations of store management; subscribe some
products, list to memorize products, bid for products, message leaving or instant
message and evaluating process. Using network time protocol [20] to consist the time
on network and integrate with OpenID login which provides a consistent and secure
authentication mechanism.
3
In Chapter 2, we introduce the backgrounds and related works. In Chapter 3, we
show the overall architecture and system architecture including the description of
every component. Chapter 4 describes the system functionalities and depicts several
complicated system flows. Chapter 5 presents the demonstration of our system and
operations. Chapter 6 we give some comparison tables to show the difference between
our system and related work. Finally, in chapter 7 we describe the conclusion and
4
Chapter 2 Background and Related
Work
2.1 Background
2.1.1 Peer-to-Peer (P2P)
A coarse but intuitive definition of Peer-to-peer is given by Clay Shirkey [2] :
“Peer-to-peer is a class of applications that take advantage of resources storage, cycles, content, human presence available at the edges of the Internet. Because accessing
these decentralized resources means operating in an environment of unstable
connectivity and unpredictable IP addresses, peer-to- peer nodes must operate outside
the DNS and have significant or total autonomy of central servers.”
A Peer-to-peer (P2P) system has often been described as the counterpart of
client/server networks [3][4]. In client/server systems, centralized servers manage and
control the network, provide services and resources whereas the clients consume these
resources [5]. P2P systems have two main key characteristics:
i. Scalability: there is no algorithmic, or technical limitation of the size of the
system, e.g. the complexity of the system should be somewhat constant
regardless of number of nodes in the system.
ii.
Reliability: The malfunction on any given node will not affect the whole system (or maybe even any other nodes) [6].2.1.2 Peer-to-Peer (P2P) network
P2P network allows computers to communicate directly with one another rather
5
“There are two classes of P2P overlay networks: Structured and Unstructured” [7]. An unstructured P2P network is formed when the overlay links are established
arbitrarily. Such networks can be easily constructed as a new peer that wants to join
the network can copy existing links of another node and then form its own links over
time. Structured P2P networks have been widely used in file sharing [8][9], network
data storage [10], and distributed indexing [11]. Structured P2P networks usually
designed with four criteria: low degree, low diameter, greedy routing, and robustness
[12]. And it usually uses a distributed hash table that is using hash function to give
endpoint a hash value, and determine the endpoint to be responsible for which content
according to specific protocol. Many studies are published about DHT in the P2P
network, such as Pastry [13], Chord [14], CAN [15]. Structured P2P network employ
a globally consistent protocol to ensure that any node can efficiently route a search to
some peer that has the desired file, even if the file is extremely rare. Such a guarantee
necessitates a more structured pattern of overlay links [16].
The advantage of P2P network is to provide resources, including bandwidth,
storage space, and computing power. It also increases robustness because there is no
single point of failure in system. On the other hand, the disadvantages of
P2P network are decentralized which means no central repository for files and
applications.
2.1.3 Peer-to-Peer Publish/Subscribe
The publish/subscribe interaction scheme is receiving increasing attention and is
claimed to provide the loosely coupled form of interaction required in such large scale
settings. Subscribers have the ability to express their interests in an event or a pattern
of events, and are subsequently notified of any event, generated by a publisher, which
6
subscribers which have registered interest in the given event. The strength of this
event-based interaction style lies in the full decoupling in time space and
synchronization between publishers and subscribers. That is publisher is data
producer, which sends data using publication messages. And the subscriber is data
consumer, which has the capability of define its interest event and subscribe them.
Subscribers are usually interested in particular events or event patterns, and not
in all events. In the area of distributed systems and networks various pub/sub systems
with data models based on channels, topics and attribute-value pairs have been
developed over the years [17]. Systems based on attribute-value pairs are usually
called content-based because their data models are flexible enough to express the
content of messages in various applications. And the most widely used schemes are
topic-based and content-based publish/subscribe are describe as follow. Topic-based
publish/subscribe, which based on the notion of topics or subjects is extends the
notion of channels used to bundle communicating peers, with methods to characterize
and classify event content. Participants can publish events and subscribe to individual
topics, which are identified by keywords. Content-based (or property-based) [18]
publish/subscribe variant improves on topics by introducing a subscription scheme
based on the actual content of the considered events. In other terms, events are not
classified according to some pre-defined external criterion (e.g., topic name), but
according to the properties of the events themselves [19].
The main advantage of publish/subscribe model are loosely-coupled and scalable.
Publishers are loosely coupled to subscribers, and needn't even know of their
existence. This is different form client/server architecture, which client can’t post
message while server is not running. Publish/subscribe provides the opportunity for
better scalability than traditional client/server, through parallel operation, message
7
publish/subscribe model is that the side-effect of the advantages, that is the
decoupling of publisher from subscriber. The publish/subscribe system will give up
deliver message if it has try a while, this will not guarantee the message will always to
be deliver.
There are many deployments on P2P protocols, all of which have implemented
some function in common, such as queries and inserts data. The auction system uses
the P2P library, FreePastry to implement. FreePastry is an open-source
implementation of Pastry intended for deployment in the Internet. The initial release
of FreePastry is intended primarily as a tool that allows interested parties to evaluate
Pastry, to perform further research and development in P2P substrates, and as a
platform for the development of applications.
2.1.4 Network Time Protocol(NTP)
By far, the most widely used and accepted method for maintaining accurate time
across entire networks is an implementation of the Network Time Protocol (NTP).
The Network Time Protocol is a protocol which is used to synchronize timekeeping
among a set of distributed time servers and clients. NTP has undergone significant
evolution over the years since it was first proposed, cumulating in the most recent
NTP Version 3 described in RFC 1305 [20]. NTP is built on the Internet Protocol IP
[21] and the User Datagram Protocol UDP [22] , which provides a connectionless
transport mechanism. It is specifically designed to maintain accuracy and robustness,
even when used over typical Internet paths involving multiple gateways, highly
dispersive delays, and unreliable nets. There are many time servers at different
8
2.1.5 OpenID Authentication
OpenID is an open, decentralized, free framework for user-centric digital identity.
And up to Januarys first, 2009, there are over 35,000 unique OpenID relying parties.
The figures below show that how does OpenID works. There are nine steps to get
personalized content form OpenID relying party [23]. Figure 2 - 1 show the first four
steps of how OpenID works and the rest of five steps are shown in Figure 2 - 2.
Figure 2 - 1 the First Four Steps Shows How OpenID Works (1) Realm/RP Validation (2) Verify Signature OpenID Provider OpenID Relying Party (3) Authenticate User (4) Signed Auth Response (5) Personalize Content
9
Figure 2 - 2 the Remain Five Steps of How OpenID Works
The following are terms in OpenID protocol [24]:
i. Identifier: The URL or XRI chosen by the End User as their OpenID
identifier.
ii. End User: The person who wants to assert his or her identity to a site.
iii. Relying Party: The site that wants to verify the end user's identifier.
Sometimes it is simply called site.
iv. OpenID Provider: A service provider offering the service of registering
OpenID URLs or XRIs and providing OpenID authentication (and possibly
other identity services).
OpenID allows users to log onto many services with the same digital identity. An
OpenID is in the form of a unique URL, and is authenticated by the user's OpenID
OpenID Provider OpenID Relying Party (6) Present OpenID (7) Discover OP
(8) Establish Shared Secret
10
provider. The OpenID protocol does not rely on a central authority to authenticate a
user's identity.
OpenID Authentication uses standard HTTPS requests and responses, so it does
not require any special capabilities of the User-Agent or other client software.
OpenID doesn’t use cookies or any other specific mechanism of Relying Party or
OpenID Provider session management.
2.2 Related Work
The related applications, ItsKarma and EzBas are based on P2P technology, but they are not maintaining now. So here we only refer their basic information and their
GUI design. Besides, PeerMart is born to solve the centralize problem of double
auction. The typical circumstance is the stock markets. The reason for listing in
related work is that it is based on P2P technology and implement with FreePastry
which builds a decentralized auction-based pricing mechanism.
2.2.1 ItsKarma
ItsKarma releases on 2001 and it uses P2P technology to bring online auctions
into home. ItsKarma is returning the power back to users. Under the auction machine
format, users have to adhere to a strict set of rules and procedures if they are to have a
reasonable chance of having a successful sale. Users must choose a limited number of
days to present their item. They must relinquish control of the ultimate decision to
buy or sell, to a machine. To properly prepare an item for sale on an auction web site,
users must give a highly detailed description and attach digital photos. In other words,
the user has to put in a lot of work with no guarantee that the sale will be successful.
11
ItsKarma provide are seek, find, post, buy, sell, trade, auction. And the three feature
of ItsKarma are as follow [25].
i. There are no listing fees: you pay only on successful truncation.
ii. There are no restrictions to the amount of item you can list. Keep as many
items online as you can fit your hard drive.
iii. There are no time limits, keep things online for as it takes to sell them.
Figure 2 - 3 shows the Graphic User Interface (GUI) of ItsKarma.
Figure 2 - 3 ItsKarma
2.2.2 EzBas
EzBas is developing to cooperate with EzPeer. It is a direct trading platform;
users don’t need too much technique to build their own selling store. Seller can use EzBas to publish the information of the products, build customize store information,
12
information. The buyer can search for product on EzBas and don’t need to wait until
the product sell due. Buyer can contact seller immediately and make a deal. EzBas
break the tradition online selling model and provide faster marketing model [26]. The functionality of EzBas provides are search, subscribe, discuss, and store management. Figure 2 - 4 shows the Graphic User Interface (GUI) of EzBas.
Figure 2 - 4 EzBas
2.2.3 PeerMart
PeerMart[29] has been implemented as a prototype on top of FreePastry [32], an
open source implementation of Pastry and it is structured and redundant P2P overlay
network design which is applied to achieve scalability and robustness even in the
presence of malicious peers. The basic idea of PeerMart is to distribute the broker
load of an otherwise centralized auctioneer onto clusters of peers, each being
13
The core economic mechanism used in PeerMart’s design and subsequent implementation is the Double Auction which has also been adopted by “Toward
Peer-to-Peer Double Action” [27] and “A Peer-to-Peer Agent Auction” [28].
PeerMart is use in the circumstance such as stock markets. The main features that
PeerMart emphasize on are scalability and robustness [29].
The basic pricing mechanism in PeerMart works as follows, providers and
consumers which are interested in trading a particular good, initially send a price
request to the responsible broker. As described later on, brokers are realized by
clusters of peers. In the following, the term service is used to refer to the good being
offered by a peer, e.g., a content service. The responsible broker answers requests for
a particular service with the current bid price (ask price), which is the current highest
buy price (lowest sell price) offered by a peer. Based on this information, providers
and consumers send price offers to the broker, using a particular strategy which can
arbitrarily be chosen by the peer. Continuously, a broker runs the following matching
strategy:
Upon every price offer received from a provider (consumer), there is no match if the bid (ask) is lower (higher) than the current ask price (bid price).
However, the offer may be stored in a table for later use.
Otherwise, if there is a match, the offer will be forwarded to the consumer (provider) that made the highest bid (lowest ask).
The resulting price for the service is set to the mean price between the two
14
Chapter 3 System Architecture
3.1 Overall Architecture
Before we describe the auction system architecture, we talk about some overall
architecture that is components or concepts which are used all over in the system.
There are as follows: P2P pub/sub system, observer pattern and network time handler.
The P2P pub/sub system handles all quires which are about data store and retrieve on
the P2P network. Observer pattern is the concept use all over the system, and network
time handler implements network time protocol which uses to retrieve the consistent
time in the network.
3.1.1 P2P Pub/Sub System
The P2P system of manages the faculty of P2P network, that is builds a new
network or joins an existent network, maintains DHT table, communicates with other
peers on the P2P network and handles the file storage.
Our pub/sub system is implementing with FreePastry. The purpose of P2P
pub/sub system is to provide some basic operation such as storing data or retrieve data
on P2P network. The design of P2P pub/sub system is reference to the P2P pub/sub
architecture in paper, A P2P Blog System with OpenID Integration [30]錯誤! 找不到 參照來源。. The pub/sub system controls the functions of publish/subscribe. Users on the P2P network can obtain information via querying data, but pub/sub provides an
immediate and convenient way to retrieve data. If we want to use pub/sub
15
implementation libraries directly. Besides, pub/sub system sends and receives
messages, and the contents are different from P2P contents. Therefore, our application
defines a pub/sub content format, and it is convenient to subscribe and publish
messages.
3.1.2 Observer Pattern
Observer pattern is the most commonly used design pattern. It defines a
one-to-many dependency between a subject object and any number of observer
objects so that when the subject object changes state, all its observer objects are
notified and updated automatically.
In the system, the P2P library we adopted designs use “continuations” to avoid
that a system is blocked during doing lookup. “Continuations” allow us to continue
processing while receiving results. These behaviors create new thread, and cause that
the main system can’t easily obtain results in the multilayer architecture. For example,
class A implements observer and it has to implement update function. Whenever a
observable class which add class A as an observer. When they get the result, they will
notify all the observers which means the update function of class A will get the result
which the observable sent.
A class can implements observer or extends observable. The observer class has
to implement update function, so that when the observable class gets the query result
it will notify all observers. The class extends observable, here we depict as subject,
can call function build-in “addobserver” to add an observer class and when the class
16
Our auction system can divided into six components which are describe in the
next section, besides static data part and functionalities frames part which are used to
handle initialization of P2P related thing and get user input. The relations of the rest
four parts that use the concept of observer pattern are describing as follow. First of all,
graphic user interface (GUI) implements observer to get all results from the
observable class. Second, P2P data action functions and P2P pub/sub module extends
observable so that when they get the result they will notify observers. Finally, the web
server which is the one that receive OpenID provider’s message depict a user is login
or not. It extends observable so that when the message comes back it will notify the
observer which is the GUI. In short, the relation is shown in Figure 3 - 1.
17
3.1.3 Network Time Protocol Handler
On the Internet, the time of computer is adjust by the time zone that user has
selected. And they are ways to change the computers built-in time to satisfy user’s
need. For example users can manually change their system time by click the system
clock on the lower right corner of the operating system.
The auction system which built on top of client/server architecture has the
consistent bidding time, because all users must send request to the server, and the time
is determine by server. On the other hand, it is not easy to get the consistent time in
the auction system which is based on the architecture of P2P. The time is determined
by the system time of user’s computer. As a result, we need a way to get consistent
time on the Internet.
The network time handler solves the problem above. Implementing network time
protocol, the handler sends a datagram packet to the time server and gets a response
then translates it to network time protocol message which specified in RFC 2030[31].
Whenever call the network time handler, it will return the consistent time based on
time servers. And this makes the P2P auction system no longer has the problem of
18
3.2 Auction System Overview
Figure 3 - 2 System Architecture
The system architecture is shown in Figure 3 - 2. The system can divide into six
19
P2P network data action function, web server and browser and P2P pub/sub system
respectively. The details of the six components are described in the following section.
And the implementation detail will describe in next chapter.
3.2.1 Graphic User Interface (GUI)
The graphic user interface of auction system allows user to interact with it.
Graphic User Interface is the main part of the system and it consists of three mangers.
That are auction manager, search manager and chat manager. The auction manager
handle all requirements about sales such as post a product for selling, modify the
content of selling product, delete a selling product or set a auction to end. The search
manager handles all search requirements that user needs. There are three types of
search a user can use. First, user can search for already known OpenID and get the
entire selling product which the searched OpenID sells. Second, user can type an
upper bound and get all products in the range. Finally, user can use keyword search to
search for products user wants. When the transaction is concluded, buyer and seller
can use chat system to determine how to pay for the product, for example, they can
make an appointment at a place to exchange money and product. What user has to do
is to click discuss button invoke chat manager to list all sellers who are online and
click the OpenID, then they can start to talk.
3.2.2 Static Data
Static data stores information about user; it is a special class which all variables
20
feature of these variables is that the whole system needs just one copy of each; it is
similar to the existence of global variables. There are several static functions in Static
Data, most of them are invoke at the beginning of the system, the functionality of
them are to set or to retrieve P2P related operation. For example, Static Data gets
configuration file and retrieves default port value and beginning to binding port by
socket testing. Then invoke the function in Static Data to join into a P2P network.
The configuration file, config.properties, records some modifiable parameters.
For instance, it records web path of HTML page for user to enter OpenID or the web
server’s path which the system must call up to start web server. All these modifiable
parameters are related to join into P2P network or to start the web server.
3.2.3 Functionalities Frames
Functionalities frames act as an interface between GUI and P2P network data
action function. It contains all frames which auction system uses such as the chat
frame, selling frame, buying frame and evaluating frame. For example, when user
wants to sell a product, after clicking the button of sell product, auction system will
pop up a frame to let user input all the information about the selling product. The
three manager of GUI will not invoke P2P network data action function directly, only
functionalities frames can invoke the P2P network data action function.
3.2.4 P2P Network Data Action Function
P2P auction system has to put or to retrieve different data, such as the selling
21
update product condition at once. P2P network data action function achieves their
functionalities by using the functions in P2P pub/sub module. When GUI is triggered,
for example, user wants to publish a new product to sell, the GUI calls the
corresponding functionalities frame and after user has input all information about the
selling product, functionalities frame will invoke the corresponding P2P network data
action function to put data onto P2P network and publish to every node that has
subscribe the topic. All classes of P2P network data action function play not only
observer role but also observable role.
3.2.5 Web Server and Web Browser
A web server is a program that is responsible for handling HTTP protocol, such
as Apache or IIS. It accepts HTTP requests from client and sends HTTP responses.
Web browser is a program that displays documents in a web server, such as Internet
Explorer or Mozilla Firefox. OpenID standard uses HTTP protocol to contact with
each other. An OpenID provider offers service of registering OpenID URLs and
providing OpenID authentication. A site in the authentication process is central
website that user wants to login, but auction system can’t build a central website to let
users to login which will result in bottleneck at the website. The site also needs to
send absolute address of it to OpenID provider so that when getting authentication
from OpenID provider, it will also redirect the page to the site. Thus, we still need a
web site that can accept messages from OpenID Provider.
Based on the situation, our solution is to attach a light web server to user’s
computer. That is, user plays the role of “site” and “user” both. User login into our
22
direct user to the web page of openID provider; user has to input username and
password to get authentication from OpenID provider. Then the OpenID provider will
direct user back to web server in the auction system.
3.2.6 P2P Pub/Sub Module (FreePastry)
As describe in the previous section, our pub/sub system put the self-define
pub/sub content into P2P network through the implementation of P2P protocol. The
implementation of P2P protocol we use in auction system is FreePastry[32].
FreePastry is an open-source implementation of Pastry which describe in chapter 2.
The functionalities of P2P pub/sub module are initializing P2P environment,
building node, joining P2P network and some basic operation on P2P network such as
storing data, retrieving data, publish data.
In the auction system, static data retrieves form configuration file,
config.properties which records some modifiable parameters for P2P pub/sub module
to initiating P2P environment and joining into P2P network. To building a node and
joining P2P network need some element. We describe the steps as follow. First, while
building a node we need a port to handle all messages on P2P network, a port value is
specify in the configuration file. After a node is established, it needs a bootstrap
which is an existing node on P2P network to join into P2P network. If bootstraps do
not exist, the node will form a P2P network by itself. P2P pub/sub module also
consists of some basic P2P network operations such as store data, retrieve data, and
subscribe topics. All of which are achieved by some the functions of open source
23
In short, the difference between P2P network data action and P2P pub/sub
module is that P2P pub/sub module uses functions in FreePastry to build some basic
P2P network operations and P2P network data actions use the function in P2P pub/sub
24
Chapter 4 Implement Details
4.1 System Functionalities
All of functionalities work under the condition that a user is login successfully.
After user has login with their OpenID and the web server has get the authentication
correctly, then all functionalities will ready to work. Figure 4 - 1 shows the
functionalities of the system. And in the following sections, we describe the
functionalities of the system in details.
Figure 4 - 1 the functionalities of P2P auction system
Login My store management ( auction system ) Message system Index List management ( auction system )
Add new products to sell Modify selling product Delete selling product Set a selling product to due
Shopping arcade search Keyword search
Price range search OpenID search Instant message Leaving Message
Chasing list’s update/delete Bidding list’s update/delete Ending bid list’s update/delete
25
4.1.1 Auction System
Auction system consists of three parts. First is some basic operations to manage a
store. Second is three kind of lists to let user easy to memorize information about
products. Third is the bidding part which handles all bidding for products.
There are four basic store operations to deal with selling product. First, adding a
new selling product and put it on P2P network for other users to search. Second,
modifying the content of products, this operation will store the modified data on P2P
network. Third, user can delete a selling product. Finally setting a selling product due
which means the selling procedure is ended. Moreover, there are three types of lists in
the auction system which are chasing list, bidding list, and ending bid list. Chasing list
let user add some products into the list that user wants to keep track of, this make user
easy to memorize all products. Bidding list records all products that user has bid for,
this make user keep stay in touch with the latest information of products. Ending bid
list will refresh every time a new data is published, it will analysis products in the
bidding list, if any product is due and the highest bidder matches user’s OpenID, then
the product is move to ending bid list.
4.1.2 Bid System
The bidding part is an important feature of auction system. User can bid for what
user wants. Finally the highest bidder of products must complete the transaction.
The bid system in P2P architecture is just like the one in server based
architecture. User bid for products and the one who own highest price will get the
26
is where user sends request to. When someone has bid for a product, in server based
architecture what we need to do is just modify the data on server. But in P2P based
architecture, information of products is on P2P network, user needs to retrieve product
information from P2P network and modify the data then put it back to P2P network.
Finally publish the data to all subscribers and let the product owner retrieve the newly
update product information and set to his profile.
4.1.3 Search System
Like server based auction system, searching is an important part for auction
system. Users can find products by searching in the system. The difference between
server based and P2P based auction system is that the way to store data. Server based
auction system stores data in a centralize way, but P2P based auction system stores
data in a distributed way.
The P2P auction system support two types of search, one is text based search
which user need to key in terms to search for matching results and the other is
shopping arcade. User doesn’t need to input anything, just click the shopping arcade
button in system and get the list of all the stores on P2P network. There are three
kinds of text based search. The first is OpenID search; user can type OpenID of seller
to search for seller’s products. Second is keyword search; user can search for some
specific keyword. Third is price range search; user can type an upper bound of
affordable price and getting results back. The search system will not display products
27
4.1.4 Evaluation System
No matter what architecture the auction system is based on, users need to deal
with a strange person. A successful transaction needs both seller and buyer trusts each
other. As a result, evaluation system is very important, it build a fast and reliable way
to inspect the one user transact with. The evaluation is given by other people. From
the evaluation system, user can judge a transaction is safe or not.
The evaluating way in P2P auction system is special, unlike the server based
auction system, user can decide to evaluate others or not. P2P auction system makes
evaluation actively. Three days apart from product due date, the system will actively
ask user about the transaction they made. User can give four kinds of evaluation,
which are positive, negative, none and evaluate later. If user choose evaluate later, the
evaluating frame will appear the next time when user login. By this way user is forced
to give evaluation to every transaction. The work flow of evaluation system is shown
in Figure 4 - 3, and the work flow of evaluating process is described in the next
section.
The reason for three days is to leave enough time for seller and buyer to make a
transaction deal. If user hasn’t got the product three days after they made a transaction,
user can choose evaluation later or gives a negative evaluation in the evaluating
process. And if user chooses to evaluate later, every next time user login, P2P auction
system will ask the user to complete the evaluating process. So our evaluation system
takes a positive way to do evaluate and it always asking user to give a evaluation.
This will decrease the rate of not giving evaluation after a transaction.
28
4.1.5 Message System
Most sever based auction systems don’t support instant message; instead they
support message leaving system. To implement instant message is nature P2P
technology because it is born for peer to peer communication. The advantage of
leaving a message is to save personal space for both seller and buyer. On the other
hand the disadvantage is that transaction process becomes longer, user must wait for a
reply. This will make bad feeling for user who is eager to buy something.
In P2P auction system we support both instant message and message leaving
system. User can choose the way suitable for them to contact to each other. The
message leaving system let user choose to leave message with OpenID or nickname.
Using instant message user just clicks the OpenID user wants to talk to, and a talking
window will pop out. When finish talking, no matter which side of user close the
talking window, the other side of user will get a leaving message indicate the other is
leaving.
4.2 Self-Define Pub/Sub content
According to P2P protocol, every file has an unique identifier. The identifier is
produced by a hashing key. In other words, we can’t find a file without a key. In P2P
auction system there are two types of file that needed to store on P2P network. That is
user profile and product information file. It is refer to the paper ” A P2P Blog System
with OpenID Integration”[30]. We use user’s OpenID to be user identifier in P2P
29
serial number, that is to store in the format of useridentifier#N, where N stands for
serial number.
User profile stores all information about user, such as identifier, evaluation value,
serial number, subscribe list, bidding list and ending bid list. It records all the personal
data of user and whenever data is modified, the system will publish it out. For
example, every time when a transaction is evaluated, the evaluation result will store in
profile of user and publish to everybody. Product information file stores the
information about selling product, including product name, product description,
lowest bid price, due date of selling and picture of the product. The picture of product
can’t put onto P2P network directly, so we first reduce the size of picture which can
avoid memory overflow problem, and translate picture into a java imageicon object
via java I/O operation and finally put the product information onto P2P network with
the other information. To see selling products, P2P data action function needs to get
product information file on P2P network and transform java imageicon into the format
of jpg picture file. The transformed picture is stored in directory named TEMP_TMG.
And to avoid conflicts of picture name, we use seller’s identifier attach with picture
name. Every user’s identifier is unique, so there will be no picture name conflict.
4.3 System Flow
In this section we describe not only a overall work flow but also all
30
4.3.1 Overall Work Flow
The overall work flow depict the process of a user from starting P2P auction
system till the end of the system. The flow is shown in Figure 4 - 2. Starting the
system and user login with OpenID successfully then according to user’s OpenID, the
system gets user profile on P2P network. If user profile doesn’t exist, the system will
produce a new profile and store it on P2P network. After getting the profile, system
retrieves data and initializes variables in the system such as user identifier, subscribe
list, bidding list and etc. And if the user had made any transaction three days ago,
evaluating system will be triggered and pop out the evaluation frame to let user
evaluating the other. Finishing the evaluation process, the system is already set still
31
Figure 4 - 2 the overall work flow of P2P auction system
4.3.2 Evaluation System Work Flows
With evaluation system, user can view the evaluation value of others, just like
the server based auction system. Figure 4 - 3 shows the work flow of evaluation
User Login
[ Get Self Profile ] on P2P Network
[ Initialize Program Data ] According to the Profile
[ Evaluation System] Evaluate Transaction if
needed
[ Functionalities] 1. Auction System
Basic product related operation Three kinds of list
2. Search System
Text based search Shopping arcade 3. Message System
Instant Message
Message leaving system
[ User Logout ] Store User Profile on P2P
32
system. First is to check whether user is login or not. Then the system has to check
whether user have made a transaction three days ago. If it is after three days, the
system will retrieve the profile of the one user is transact with, then starting to
evaluate by popping out an evaluating frame. After getting user’s input, the system
will put the result on P2P network and the one who is been evaluated has to retrieve
33
Figure 4 - 3 the work flow of evaluation process
User login
Functionalities Frames
[P2P data action function] Put on P2P network [P2P data action function] Get user profile of the one
user transact to
The one user is transact with must retrieve his
evaluation value Exist transaction
three days ago
Yes
User input data
Evaluation Completed!
34
4.3.3 Chat System Work Flows
P2P auction system provides two ways of communications. One is leaving a
message and waiting for reply. The other is using instant message. The figure below
shows the work flow of using instant message. When user click “Discuss” button, P2P
auction system will send a self-define “Ping” messages to all profiles which are
retrieve form P2P network. By data records in a profile, P2P auction system can easily
connect to the address of others and start to communicate. And the one get a “Ping”
message, the system will sends a self-define “ACK” message automatically. As a
result, the system can list all users who are online. And just click the one user wants
to talk to, the system pops out a talking frame just like a chat room. And the work
35
Figure 4 - 4 the work flow of instant message
message
Click “Discuss” button
[P2P data action function] Send “Ping” message to all the profile gets on P2P
network
[Functionalities Frames] Display profile OpenID
on frame Talking Frame Receive message “ACK” message OpenID Frame Dispose Finish! Leave Button
Click Leave Button User click
36
Chapter 5 Application
Demonstration
5.1 Main Frame of P2P auction system
The figure below is a overview of P2P auction system. The GUI part can divided
into five areas to explain. We have indicate that the auction system consist of store
management and list management which are area 1 and area 2 respectively. Area 3 is
the login part, user click login button to invoke web server and web browser to login
user. The search system is in area 4 which has shopping arcade, search with OpenID,
keyword or price range. And finally to use instant message, user just have to click
discuss button which is area 5 to do the talking part.
Figure 5 - 1 the overview GUI of P2P auction system
Area 1
Area 2
37
5.2 User Login
In Figure 5 - 2 shows that after user click login button, the system invokes web
server and embedded web browser to let user key in his OpenID. And the system also
supports user to login with Yahoo OpenID. Due to Yahoo online auction is one of the
main auction system that used in Taiwan, supporting user login with Yahoo OpenID
will make our P2P auction system more easily to use. And after the system has
receives authentication from OpenID provider, web server and web browser will close
automatically, and user is directed to the GUI part again.
38
5.3 Functionalities of P2P auction system.
5.3.1 Auction System
When adding a new product to sell, user needs to click new product button and to
fill information about the product as shows in Figure 5 - 3. In the filling process, user
clicks the text field of upload picture, a file upload dialogue will appear automatically
to let user choose a proper picture to upload. To key in due date of product, there are
two ways to fill in the text field. One is to key in date directly; the system will check
type and rightness of what user types. The other is to click the button next to the text
field and a calendar will appear to let the user choose the date.
Figure 5 - 3 Add a new product to sell
5.3.2 Bid System
After adding a new product to sell, user can see the selling product showing at
the right side of main frame as shown in Figure 5 - 4. To bid for a product, user just
39
click the bid link shows in the figure, after a announce frame pops put, user can type
an affordable price to bid with others.
Figure 5 - 4 Bid for the selling product
5.3.3 Evaluation System
When a transaction is made three days ago, an evaluation frame will pop out to
ask user giving an evaluation to each other. And if the user hasn’t given an evaluation,
the same frame will pop put the next time user logins. This way force user to evaluate
each other when they have transaction, and by doing so make the evaluation of our
system more reliable. The evaluation figure is shown below. After user has given an
40
Figure 5 - 5 To evaluating others
5.3.4 Message System
There are two ways to communication to each other. One is leaving a message
and the other is to use instant message. These two are shown in Figure 5 - 6 and
Figure 5 - 7 respectively. To leave a message, user just clicks the comment link and
type messages in the message box. Then others can see the message immediately. To
using instant messages user can click the discuss button and choosing an OpenID to
talk to. Then both side of user will pop out a talking frame automatically. When
finishing talking, no matter which sides of user close the talking frame, the other side
41
42
Figure 5 - 7 Using instant messages
https://me.yahoo.com/ a/szc0PzQatOx1LLilrHsbqnFMvAJg2ec4b http://dcslab.pip.verisignlabs.com / Closed!! Closed!! Pop out Pop out
43
Chapter 6 Comparison
6.1 Comparison Between P2P Auction
P2P
auction system ItsKarma EzBas
Architecture Distributed
Registration OpenID Register on
ItsKarma Register on EzBas
Search for product keyword, range wanted, category keyword
Discussion Instant message,
Message leaving Instant message Instant message
Evaluation system Evaluation three
days after No evaluation No evaluation
Additional
software Custom windows application
Table 1 - Difference between P2P auctions
The table above lists the differences between P2P based auctions. Although
ItsKarma and EzBas are not use now, we can still take advantage of them. The main
difference between our P2P auction and others is that we have integrated OpenID
login into our system, this make our system real distributed. Using ItsKarma or EzBas
need to register an account and also need to verify username and password every time
user logins. This result in the login part isn’t base on P2P which causes same problem
as server based auction, the bottleneck at server. And another difference part is that
only our system implement evaluation process, this make the transaction more reliable,
user can query for other’s evaluation value in advance then user can decide to make a
transaction or not.
The feature worth mention in ItsKarma is it’s search part. ItsKarma support user
44
for all want articles on P2P network to sell things to others. ItsKarma can also use
category search. When adding a new product to sell, user must specify the category of
products so that the system can do category search.
6.2 Comparison Between Server Based Auction
P2P
auction system Yahoo E-bay
Architecture Distributed Server/Client Server/Client
Registration OpenID OpenID On server
Additional software
Custom windows
application none none
Cost Free Charge Free
Subscription Scribe RSS RSS
Table 2 - The difference between P2P auction and server based auction
The table above compare P2P based auction and server based auction. Their
architecture is completely different. P2P based architecture is born to solve the
problems of server based auction which are storage not enough and the bottleneck at
server side. P2P auction system integrates OpenID to make our system completely
distributed and the advantage of our P2P auction is that the process of selling product
is totally free. Although E-bay is also free, this doesn’t means it will never charge for
fee. It is trend for server based auction system to charge fee. As a result, E-bay has
high possibility to be the next server based auction system that charge user for fee. In
45
6.3 Comparison Between P2P Blog
The architecture of P2P blog system[30] and P2P auction system is similar. They
all implement with FreePastry and use OpenID to login. And in P2P auction system,
we have implement all the future work in P2P blog system, that is keyword search,
uploading picture, provides reference value to user (the evaluation value).The main
difference between our P2P auction system and the P2P blog system is the
functionalities, we not only adding new functionalities but also improve the originate
functionalities. The table below shows the functionalities of P2P blog and P2P
auction.
P2P Auction System Functionalities
P2P Blog System Functionalities
Personal information none Self profile
Functionalities to Management Objects on P2P network Product Article Post Post Modify Delete Set to End Way to Memorize Object List Bookmark
Product List Bookmark Article
Bid List
Finish Bid List
Subscribe Subscribe Product Subscribe Article
Communication Leaving Message Comment to Article
46
Chapter 7 Conclusion and Future
Work
7.1 Conclusion
In this thesis, we provide another way to selling products. The system has
overcome the problem of modern client /server based auction system. Based on P2P
technology, the architecture of P2P auction system is distributed. Besides, building
the system via P2P architecture is simpler than via client/server model because P2P
technology already has some essential mechanisms like file-backup. Moreover, the
system combine P2P network with OpenID authentication which makes the
application totally distributed. By using OpenID login, user who has a Yahoo account
can easily login with Yahoo OpenID. This makes the system easier to use because
user needn’t to apply for a new account. And it is a greatest attraction that the selling
process is totally free; unlike the server based one needs to charge seller for fee.
7.2 Future Work
For further extension, we shall settle the following problem in the nearest future.
First, in evaluation system we present is just seller part i.e. that we can only see seller’s evaluation value. But seller is also under the risk of buyer reject
the bid i.e. buyer may goes back on his/her word not buying product. The
system has record both sellers and buyers evaluation value. So just consider
representing both seller and buyer evaluation value with positive evaluation
47
Second, adding want articles which describe what user want and seller can contact with the user. Just like ItsKarma does.
Third, the search system has to be improved. The system can search for ended selling product for buyers to refer to it. And adding category search
or want article search like ItsKarma does. Moreover, we can add evaluation
search, user can specify a threshold of positive evaluation of a seller so that
to avoid bad transaction.
Fourth, the system can add functionality of edit self profile including store name and personal information. So that users can see store name instead of
user OpenID at shopping arcade.
Fifth, the can have its plug-ins. And regard plug-ins as a notifier which notifies the user when others have bid for a product or a selling product is
due.
Sixth, transform the system to running on both windows to linux. The system can’t run on linux just because the embedded browser can only run
Internet Explore. As a result, we replace embedded browser to the one
which can run firefox, for example, JxBrowser. By doing so, the system can
48
Chapter 8 Reference
[1] eBay follows Yahoo's lead with auction fees, January 16 2001, Retrieved from
http://news.cnet.com/.
[2] Karl Aberer, Manfred Hauswirth. "Peer-to-peer information systems: concepts
and models, state-of-the-art, and future systems", ACM SIGSOFT Software
Engineering Notes, vol. 26, Issue 5, pp 326 - 327, 2001.
[3] Anthony D. Joseph, Ralf Steinmetz, Ion Stoica, Klaus Wehrle. "Peer-to-Peer
Systems and Applications", Lecture Notes in Computer Science, Vol. 3485,
pp.9-16, 2005.
[4] Chonggang Wang, Bo L.. "Peer-to-Peer Overlay Networks: A Survey", , Tech.
Rep., Department of Computer Science, The Hong Kong University of Science
and Technology, Hong Kong, 2003.
[5] Jorn De Boever, "Peer-to-Peer Networks as a Distribution and Publishing
Model", Department of Communication Science, K.U. Leuven, Master's thesis,
2007
[6] Choon Hoong Ding, Sarana Nutanong, and Rajkumar Buyya. "Peer-to-Peer
Networks for Content Sharing", Tech. Rep, GRIDS-TR-2003-7, Grid Computing
and Distributed Systems Laboratory, University of Melbourne, Australia.,
December 2003.
[7] Eng Keong Lua, Crowcroft J., Pias M., Sharma R., Lim S.. "A Survey and
Comparison of Peer-to-Peer Overlay Network Schemes", Communications
Surveys & Tutorials, IEEE, vol. 7, Issue 2 , pp. 72-93, 2005.
[8] Y. Kulbak and D. Bickson. "The emule protocol specification", Tech. Rep, Leibniz
Center TR-2005-03, School of Computer Science and Engineering, The Hebrew
49
[9] J. Pouwelse, P. Garbacki, D. Epema and H. Sips. "The Bittorrent P2P File-Sharing
System: Measurements and Analysis", Proceedings of the IPTPS, pp. 205-216,
2005.
[10] Frank Dabek, M. Frans Kaashoek , David Karger, Robert Morris and Ion Stoica.
"Wide-area cooperative storage with CFS", ACM SIGOPS Operating Systems
Review, vol.35 , Issue 5, pp. 202-215, 2001.
[11] I. Stoica, D. Adkins, S. Zhuang, S. Shenker and S. Surana. "Internet indirection
infrastructure", ACM SIGCOMM Computer Communication Review,
vol.32 , Issue 4, pp. 73-86, 2002.
[12] J. Risson and T. Moors. "Survey of Research Towards Robust Peer-to-Peer
Networks: Search Methods", Computer Networks, vol. 5, Issue 17, pp.
3485-3521, 5 December 2006.
[13] A. Rowstron and P. Druschel, Pastry. "Scalable, distributed object location and
routing for large-scale peer-to-peer systems", IFIP/ACM International
Conference on Distributed Systems Platforms (Middleware), Heidelberg,
Germany, pp 329-350, November 2001.
[14] Ion Stoica , Robert Morris , David Karger , M. Frans Kaashoek , Hari Balakrishnan.
"Chord: A scalable peer-to-peer lookup service for internet applications",
Proceedings of the 2001 conference on Applications, technologies,
architectures, and protocols for computer communications, San Diego,
California, United State, pp.149-160, August 2001.
[15] Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, and Scott Shenker.
"A Scalable Content-Addressable Network". ACM SIGCOMM Computer
Communication, vol. 31 , Issue 4, pp. 161 - 172 , 2001,
[16] Wikipedia(n.d.). Peer-toper. , May 25 2008, Retrieved from
50
[17] Antonio Carzaniga, David S. Rosenblum , Alexander L. Wolf. "Design and
evaluation of a wide-area event notification service", ACM Transactions on
Computer Systems, Vol. 19, Issue. 3, pp. 332-383, August 2001.
[18] Antonio Carzaniga and Alexander L. Wolf. "Content-Based Networking: A New Communication Infrastructure", Revised Papers from the NSF Workshop on Developing an Infrastructure for Mobile and Wireless Systems, p.59-68, October 15, 2001
[19] Patrick Th. Eugster, Pascal A. Felber, Rachid Guerraoui, Anne-Marie Kermarrec.
"The Many Faces of Publish/Subscribe", ACM Computing Surveys (CSUR), vol.
35, Issue 2, pp. 114 - 131 , 2003
[20] D.L. Mills. “RFC 1305 : Network Time Protocol Version 3 Specication,
Implementation and Analysis”, March 1992.
[21] J.B. Postel ed. Internet Protocol RFC 791, September 1981. , Retrieved from
http://www.ietf.org
[22] J. B. Postel. User Datagram Protocol RFC 768, August 1980, Retrieved from
http://www.ietf.org
[23] George Fletcher. OpenID introduction, 2009, Retrieved from http://openid.net/
[24] David Recordon, Drummond Reed. "OpenID 2.0: a platform for user-centric
identity management", Proceedings of the second ACM workshop on Digital
identity management, Alexandria, Virginia, USA, pp. 11-16, 2006.
[25] ItsKarma, May 16, 2009, Retrieved from http://www.itskarma.com/.
[26] EzBas, May 16, 2009, Retrieved from http://www.ezbas.com/.
[27] Despotovic,Z.,Usunier,J.-C., Aberer,K.."Towards Peer-To-Peer Double
Auctioning", Proceedings of the 37th Hawaii International Conference on
51
[28] Ogston E., Vassiliadis S.. "A Peer-to-Peer Agent Auction", Proceedings of the
First International Joint Conference on Autonomous Agents and Multi-Agent
Systems (AAMAS), Bologna, Italy, pp. 151 – 159, July 2002.
[29] Haussheer, D.Stiller, B.. “Decentralized auction-based pricing with PeerMart”,
Integrated Network Management, 2005. IM 2005. 2005 9th IFIP/IEEE
International Symposium on, pp. 381-394, 2005.
[30] Chen-Pu Lin, Yung-Wei Kao, Shyan-Ming Yuan. “A P2P Blog System with OpenID
Integration”, Proc. of 2008 Int’l Conference on Convergence and hybrid
Information Technology (ICCIT08), Busan, Korea , pp.1064-1069, Nov. 11~13,
2008.
[31] Request For Comments(RFC) 2030, May 16 2009, Retrieved from
http://www.ietf.org/.