Payment and Negotiation for the Next Generation Grid and Web

advertisement
Payment and Negotiation for the Next Generation
Grid and Web
Jeremy Cohen, John Darlington, William Lee
London e-Science Centre, Imperial College London, South Kensington Campus, London SW7 2AZ, UK
Email: lesc-staff@doc.ic.ac.uk
Abstract. We present a proposal for a next-generation Internet based on chargeable Web
Services and Utility Computing realised by a series of open but interacting markets. We
demonstrate through the UK e-Science project “A Market for Computational Services” the
development of some of the fundamental building blocks to enable such a computational
marketplace for the Grid. This paper describes the motivation behind this restructuring
of the Internet and Web-based activities as a series of markets and how Grid Computing
technologies can contribute towards this goal. The paper details the work undertaken at
the London e-Science Centre to build a framework to create and support negotiable and
chargeable Web Services.
1
Introduction
Computational Grids consist of large numbers of
resources that may be distributed over a wide
area and owned by many organisations. Given
that these resources – including computational
and storage resources as well as instruments –
may be highly expensive to own and operate,
it is an unsustainable vision that organisations
will share their resources altruistically or simply allow trusted parties to utilise their excess
capacities when utilisation is low. There is a
clear need to charge and account for service access and the supporting mechanisms to transfer
funds between entities.
The UK e-Science/DTI funded project “A
Market for Computational Services” [9] set out
to investigate and develop mechanisms to support markets in computational Grids. This included research on negotiation and brokering of
Grid services along with the development of accounting and payment mechanisms for services.
These aspects would be demonstrated through
a set of e-Science exemplars. In this paper we
present the services produced at the London eScience Centre, in co-operation with a Glasgowbased IT consultancy firm, Real Time Engineering Ltd, to develop a negotiation and payment
framework for Web Services.
Grid computing is a potentially revolutionary technology in that it could make high-end
resources accessible to a much wider community.
However its development and deployment will
be hampered unless a proper economic model,
addressing the supply and use of such services
can be developed.
The adoption, by the e-Science community of
standard Web Services, for both its middleware
and application framework, had radical implications for the Markets for Computational Services project. It changed the emphasis of the
project from providing accounting and charging
mechanisms for Grid Services in an academic
context to exploring the creation of a new public market in chargeable Web Services and utility computing. In this arena, chargeable Web
Services would form the basis for the Next Generation Internet [5].
The application and adoption of e-Science
and Grid computing technologies on the public
web would provide new opportunities, whereby
the creativity and inventiveness that has been
demonstrated on the current Web could be applied to the creation and making of even more
complex and useful computational services.
Section 2 sets out the case for a market
in Web-based services. We examine the stakeholders and conditions for the development of
such a market. Section 3 details the negotiation
framework that has been developed. Following
negotiation, consumers need to pay for their services. The architecture and API of the payment
service are introduced in Section 4 with the Web
interface and user-view of the service being detailed in Section 5.
2
A Market in Services
As computational Grids are being developed,
the Grid community has been moving increasingly towards standardised Web Services tech-
nologies to support a service-oriented architec- each entity has only a single area in which to
ture of Grid Computing with enhanced inter- concentrate (see Figure 1).
operability and simplicity. The Computational
Markets project initially utilised Grid technologies such as OGSI but subsequently recognised
the advantages of in shifting to an interoperable and vendor-supported subset of Web Service
standards.
In tandem with this technological shift, increasing emphasis has been put on outsourcing
and managed services within business. Utility
computing providers and services are appearing
such as the Sun Grid [12] and HP’s Utility Rendering Service [7]. Businesses are realising that
the cost, both in terms of the hardware and the
maintenance, of managing their own computing
resources may be reduced by buying in capacity
on resources that are hosted and managed elsewhere. The cost and risk of operating large-scale
computing centres can be amortised among a
varied portfolio of clients. Resources are depreciating increasingly rapidly and utility computing can provide for transparent technology refresh as well as simplicity. Add to this the use of
managed services and applications, avoiding the
costs of internal sofware management, and the
cost of computing can be reduced dramatically.
Existing Grid middleware provides limited
support for the dynamic deployment of applications securely across organisational boundaries.
These have resulted in more efficient utilisation of computational power. The lower overall costs presented by the use of managed services in utility computing environments lead us
to predict the development of an open, composable market in services that we refer to as the
Next Generation Internet [5]. Figure 2 depicts
the stake-holders in such a market. To support
this, we have been working to prototype a framework that will support negotiation and payment
for access to remote use-on-demand, pay-per-use
services.
The decoupling of processes into clearly
defined elements brings about specialisation
within the market. Software providers can specialise in producing software services. They can
divert resources that would have have been used
for managing hardware and networking to aid
faster and more advanced development. In turn,
hardware providers can specialise in developing,
operating and maintaining their hardware resources in order to provide a more reliable and
efficient execution environment for use by the
software providers. The process of specialisation
should in turn drive increased innovation since
Fig. 1. Drivers in a Service-oriented market
Services may take the form of general execution provision, offering a service-based frontend for the execution of traditional HPC applications. These applications generally utilise
large amounts of CPU time but with a relatively small job count. A pay-per-use, use-ondemand model for services also suits low value,
high-throughput services. These are the services
that would not normally have access to expensive HPC resources. They are accessed by many
different users in different locations and their
throughput may be erratic. Obtaining a dedicated large-scale resource would generally be too
expensive for the service provider since the resource may be idle for a large proportion of the
time. However, when a large number of requests
are received at once, the service provider may
be unable to service the demand, users receive
poor quality of service and the service provider’s
reputation may be damaged. Using a managed
service model, the provider can pull in resources
when required in order to service demand and
pay only for the time that is used on those resources.
The creation of services and their deployment onto remote resources can be achieved using existing tools. One of the major barriers to
a service economy is the asymmetric information flow between the sellers and the buyers.
Buyers cannot reliably assess the value of the
goods being offered and the quality of the goods
traded are forced down (the Lemons Hypothesis). There is, therefore, a clear need and hence
a market opportunity, especially in the Internet economy, for brokers to intervene to act as
intermediaries between users and services. Such
brokers, by their reputation and longevity, could
organise and safeguard payments and provide
a level of trust for the market to operate efficiently.
Another barrier to a service economy is the
issue of payment. There are two sides to this
problem. How the price of a service is determined and how payment is actually made. We
introduce the concept of a chargeable service,
a service that, in addition to its general functionality, has a wrapper that manages charging
for its usage. Chargeable services may provide
straightforward functionality at a fixed price. In
the case of more complex services, for example,
an SME wanting to carry out some 3D rendering, the array of options for service operation
may be substantial and a personalised quote
would be most appropriate to ensure that both
the provider and consumer know what they are
getting and what it will cost. Auctioning and online exchange are popular price formation models because of their simplicity and well-known
economic characteristics.
parameters of a complex managed service provision. In a highly competitive market, where
many services claim to offer the same product,
a consumer may want to survey the offers from
all available providers in order to select the best
one. To this end, the negotiation interface is
seen as both something end-users may choose
to interact with directly, as well as a connector
through which brokers will communicate with
services in order to find the best deal for their
clients.
The Southampton e-Science Centre and
Swansea University have produced a chargeable Meshing Service, based on work from the
GEODISE project [6], as an exemplar for the
negotiation and payment framework. The Meshing Service is a complex, computationally intensive service used for generating 2D meshes for
use in engineering design and optimisation. It
has several negotiable parameters that affect the
amount of compute time required for its generation and the quality of the mesh produced.
3.1
Negotiation API
The negotiation API provides server and clientside tools to make an existing J2EE Web Service negotiable. We utilise Web Service standards including Web Service Description Language (WSDL) for describing services and the
Simple Object Access Protocol (SOAP) over
HTTP or HTTPS for transmission of messages
between services and their clients.
Fig. 2. Stake-holders in a Internet service market
Server-side The NegotiationPortType is an
additional port added to a service interface to
signal to potential users that the service is negotiable. The NegotiationPortType and the accompanying protocol allows the client to hold
a conversation with the negotiable service. A
client wishing to obtain a quote from a negotiable service would initiate a negotiation session with the service by passing a set of requirements in the constraints document. The constraints document describes a set of terms and
their relationships, for example:
In the remaining sections of the paper, we
will focus on a one-to-one negotiation model for
service access and the incorporation of payment urn:economic:Price = 3.54 and
urn:image:Quality > 45 and
that accounts for service usage.
urn:economic:Bundle <= 5
3
Negotiation
Negotiation is a practical mechanism to enable
providers and users to agree on the operating
Terms are identified by the URNs. A set of
common terms have been defined in the markets
toolkit to convey economic parameters, such as
Fig. 3. Negotiation client GUI
price, number of invocations, bundling and quality of service parameters. It is envisaged that
domain-specific terms would be defined in a
shared ontology, standardised by experts in the
particular application domain.
The Negotiable Service replies with a set
of refined constraints taking into account the
posted requirements. The client might refine
the constraints further by continuing the ongoing conversation with the service. The client
might eventually abandon the offers or commit
to the agreed terms proposed by the service. The
client would then be issued with an electronically signed token that will be used as a ticket
of entry along with payment confirmation when
the service operation is invoked before the expiry time.
ified to ensure that when the service is invoked,
it takes into account the negotiated parameters
for service use. The Negotiation engine API provides a series of assertion statements that can
be instrumented into the service code to ensure
agreed constraints are not violated at run-time
(e.g. number of iterations in an optimisation
loop).
Client-side Client-side use of the negotiation
API is significantly simpler than enabling a service for negotiation. The negotiation client API
manages the session with a negotiable service
and the security support in contacting and storing the secured token. From the API, a service’s negotiable parameters and their descriptions can be accessed and proposals can be made
for accessing the service. As part of the offer acceptance, the Payment Service is contacted to
ensure that the user has the means to pay the
agreed charge and a payment authorisation token is generated (see Section 4.1).
The Markets Toolkit allows service providers
to augment an existing J2EE compliant Web
Service implementation with negotiation capability. A configuration file, defining the set of
negotiable terms and the negotiation strategy,
is fed into the negotiation engine API. This represents the service provider’s private constraints
on how pricing is calculated. The existing framework adopts a simple constraints optimisation
module, which optimises on the service conA negotiation client GUI (see Figure 3) has
straints while attempting to satisfy the client been produced to allow manual negotiation with
requirements.
services. This has been used in the demonstraOnce the negotiation parameters are speci- tions of the prototype framework and example
fied, the code of the service itself must be mod- services.
4
Payment Service
The Payment Service is a J2EE compliant Web
Service that allows payments to be made, programatically, between entities that are known to
the service. The ability to make programmatic
payments means that complex HPC computations and brokering operations can take place
without user interaction, provided the user has
given their permission for this. In addition to
the Payment Web Service and client-side API
for making payments, we provide a web interface similar to an online banking service. This
enables users to register for accounts, view their
account statement and credit money to their account. An important aim of this work has been
to allow the transfer of real money rather than
simply using virtual funds. The service has been
linked to PayPal [10] using PayPal’s Web Services API. Users can credit real funds from their
PayPal account into their account in the Payment Service and, when accessing chargeable
services, payment is remitted to the PayPal account of the service provider.
4.1
Payment Service Architecture
Payment Protocol The Payment protocol
that is being used for this service was originally
presented in [4]. Payment is managed using tokens. A payment token is generated following a
request from one party to make a payment to another. This request may be generated from the
negotiation framework, alternatively it may be a
direct request through the Payment API. A set
of authorisation/authentication tests are carried
out on the payment authorisation request. If
these tests are successful, a unique token is generated representing the specific payment that
the user has requested. Within a given time limit
– determined when the token is generated – the
token may be submitted to the Payment Service with a request to complete payment. If the
requirements of this request are accepted, the
transfer of funds takes place.
Figure 4 shows the interactions involved in
the negotiation, authentication and completion
of a payment. Following the negotiation process
to agree a price, the payment is carried out as
follows:
1. The client creates an XML document that
details the requested transaction. This includes the source account (this must belong
to the client), the destination account, the
payment amount and a description of the
transaction. This message is signed using
the client’s private key. The client creates a
secure connection with the Payment Service
and sends the authorisation request.
2. The Payment Service evaluates the client’s
request. It first checks the signature on the
message. If the signature is valid, it checks
that the source account belongs to the person who signed the message. This check ensures that, unless a private key has been
compromised, no user within the system can
request the transfer of money from an account they do not own. If either the source
or destination account does not exist, an
error is generated. The service then checks
that the source account has sufficient funds
for the requested payment. If this check is
successful, a unique transaction identifier is
generated and an XML response document
is created. The Payment Service signs this
document in case the client wishes to check
that it has genuinely been communicating
with the Payment Service. This response
document is the token that can be presented
to the Payment service to complete the payment at a later time. The token contains
an expiry time, after which any attempt to
complete the payment will fail. This expiry
time may be specified by the client in the
original request.
3. The user eventually may wish to make use
of the Web Service for which they have obtained an authorisation token. They present
this token to the Web Service in the SOAP
header, along with a request to invoke it.
The Web Service then generates a payment
completion request document that wraps
the authorisation token and is specific to the
payment model being used (see Section 4.2).
The Web Service creates a secure connection
to the Payment Service and passes it the
completion document in a signed request.
The Payment Service will try and make the
transfer of funds and return a response to
the Web Service detailing the transaction
result. If the transaction is successful, the
Web Service can return its results to the
end-user. The digital signatures on the message ensure that the source and destination
accounts and amount stored within the token are secure. If this information is altered,
the digital signature verification will fail and
the Payment Service will refuse to transfer
the funds.
Fig. 4. Interaction diagram for payment negotiation, authentication and completion procedure
Implementation The implementation of the
Payment Service has been created using J2EE
1.4 compliant Web Services hosted on the Sun
Application Server Platform Edition 8. We have
used existing standards where possible and have
paid particular attention to security and crossplatform interoperability. All code has been
written in Java.
Security is an important issue in any distributed system, but particularly those where
transfer of money is involved. In order to secure the payment service, all users are identified by an X.509 certificate. All communications with the Payment Web Service are encrypted using SSL connections with mutual authentication, with the user’s X.509 certificate
identifying them. For negotiation, either transport or message-level security may be used. We
have produced example services that demonstrate both forms of security and have used
a Java WS-Security implementation to provide
message-level security.
We are currently using the Pointbase
database that is provided as part of Sun’s J2EE
Server to provide persistence for account information. The service implementation is compatible with other JDBC compliant databases,
such as Oracle. To ease the Interaction with the
relational database, the Enterprise Java Beans
(EJBs) abstraction has been adopted.
4.2
Payment Models
The Payment Service currently supports three
different payment models in order to provide
flexibility for service providers. Various other
models may be appropriate in different situations and the service may be modified in future
to support other payment models. The models
currently supported are:
– Standard Payment: The payment is authorised for a fixed amount and a token representing this amount is produced. When
payment is to be completed, the token is
presented to the Payment Service and the
authorised amount is transferred between
the source and destination accounts. A token may only be presented to the Payment
Service once.
– Variable Usage Payment: This payment
model is particularly suited to the purchase
of execution time. The exact amount of time
required on a resource may be difficult to
judge prior to the computation taking place.
Payment Authorisation can be made for an
amount that represents a cap on the maximum amount that can be spent. Once the
final amount is determined, the payment can
be completed. The authorisation token is
presented to the Payment Service along with
the final amount that is to be paid. Providing this amount is less than or equal to the
authorisation amount, the funds are transferred. Once the token has been presented
it has been used and is invalid. This is the
case even if the funds transferred are less
than the original authorisation amount.
– Partial Payment: The partial payment
model allows a payment to be authorised for
a particular amount but to be completed in
several stages. This is the one model of payment where a token may be presented multiple times. This model is useful for users purchasing multiple invocations of a fixed price
service. Unlike a pre-pay scenario, where
consumers pay up front a given sum, this
method allows a token to be generated that
will allow a given amount of money to be
transferred within a given time period. The
token can be presented multiple times, each
time specifying the amount to transfer. The
token becomes invalid when all the authorised funds attached to that token have been
transferred, or when the validity window is
passed.
transfers to other accounts registered with the
Payment Service. The account statement lists
all transactions along with their unique transaction identifier, the transaction date and time
and amount (see Figure 5).
6
Further Work
Integration with real-world payment systems
has been investigated in the development of the
prototype but is acknowledged to be a complex
issue. The integration with PayPal has allowed
transfer of real funds but integration with a system such as WorldPay, allowing direct credit or
debit card payments, would be valuable.
Simplification of the framework to allow services to be automatically wrapped for negotiation and charging would help adoption of such
a system. The aim would be to develop a utility
that can take existing Web Services, a set of negotiable parameters and domain of values and
then wrap the service automatically.
7
Related Work
Groups investigating problems related to the
economics of computational Grids include Rajkumar Buyya, University of Melbourne [3, 1]
and the IBM Zurich Research Laboratory [8].
Although there is much work surrounding this
area, there is little that has been focussed to5 Payment Service Interface
wards the practical issues relating to payment
for Grid Services. We therefore feel that our
The Payment Service Web Interface provides work and that of our partners within the Market
a browser-based interface for users to register for Computational Services project is of particand manage their accounts with the Payment ular value to the field of Grid Economics.
Service. When accessing the interface, a user
must have their certificate embedded in their
browser – they are identified using SSL Mutual 8 Conclusion
Authentication. To obtain an account with the
service, a user visits the payment interface us- With computational Grids becoming more coming their browser. From their certificate Distin- mon and their power becoming increasingly
guished Name (DN) they are identified and, if clear to both software and hardware providers,
they are not already registered, a registration the prospect of an open Grid market in services
page is displayed. The user enters their regis- is becoming more realistic. With Grids traverstration details which are stored in the database ing organisations and providing the means for
and a new account is generated. On subsequent resource owners to recoup some of the cost of
visits to the payment interface, users are pre- expensive equipment, a secure way to automatsented with a list of all the accounts they hold ically transfer funds between entities is imporand can select an account to view the account tant.
management page.
We have demonstrated a framework for supThe account management page displays a porting some of these needs, along with invesstatement for the account and enables users tigations into service negotiation and pricing to
to credit money into the account from the ac- support a market in distributed services. Our
count holder’s PayPal account and make manual work has provided a base upon which other
Fig. 5. Payment Service Web Interface account statement
project partners have been able to build exemplar services to demonstrate the power of a managed Web Service environment, as well as other
fundamental building blocks, such as resource
usage and accounting services.
Developments in the e-Science programme
have helped to erode many of the differences
and divisions that have separated various sectors and disciplines. Many of the products and
mechanisms of the e-Science programme have
potential applications in the public domain.
Complex e-Science or HPC methods, suitably
encapsulated, could become consumer-oriented
commercial services. We envisage virtual service
providers will make use of third-party services
to provide value-added products that might include highly complex methods requiring large
computational resources. These are currently
out-of-reach for most small to medium sized organisations who cannot afford to maintain such
an IT infrastructure. Advances in Grid computing technologies and innovative charging models could produce a radical change in the provisioning and use of information technology across
academia, business and society.
9
2.
3.
4.
5.
6.
7.
Acknowledgements
8.
We would like to thank the UK e-Science Core
Programme and the DTI who have funded the
“A Market for Computational Services” project.
References
1. R. Buyya, D. Abramson, J. Giddy, and
H. Stockinger. Economic models for resource
management and scheduling in grid computing. Special Issue on Grid Computing Environ-
9.
10.
11.
12.
ments, The Journal of Concurrency and Computation: Practice and Experience (CCPE),
14(13-15):1507–1542, December 2002.
R. Buyya, D. Abramson, and S. Venugopal. The
grid economy. In Manish Parashar and Craig
Lee, editors, Special Issue on Grid Computing,
Proceedings of the IEEE, volume 93, pages 698–
714. IEEE Press, New York, USA, March 2005.
Rajkumar Buyya. Economic-based Distributed
Resource Management and Scheduling for Grid
Computing. PhD thesis, Monash University,
Melbourne, Australia, April 2002.
J. Cohen, W. Lee, A. Mayer, and S. Newhouse.
Making the Grid Pay - Economic Web Services. In Building Service Based Grids Workshop, GGF11, Honolulu, Hawaii, USA, June
2004.
J. Darlington, J. Cohen, and W. Lee. An architecture for a next-generation internet based
on web services and utility computing. Technical report, London e-Science Centre, Imperial
College London, London, UK, 2005.
Grid Enabled Optimisation and Design Search
for Engineering (GEODISE) Project. http:
//www.geodise.org/.
Hewlett-Packard Development Company, L.P.
Servicing the animation industry: Hp’s utility
rendering service provides on-demand computing resources. http://www.hpl.hp.com/se3d/
whitepaper-urs.pdf, 2004.
Chris Kenyon. IBM Zurich Research Laboratory: Grid Economics. http://www.zurich.
ibm.com/grideconomics/.
London e-Science Centre. A Market for Computational Services. http://www.lesc.ic.ac.
uk/markets/.
PayPal (Europe) Ltd. Paypal. http://www.
paypal.co.uk.
Spring
Framework.
http://www.
springframework.org/.
Sun Microsystems, Inc. Sun grid. http://www.
sun.com/service/sungrid/overview.jsp.
Download