Currency Server Software vs. Web Services
Software-based and service-based solutions offer
possible advantages, disadvantages and opportunities
for synergistic interaction in terms of:
- Ease of deployment
- Performance
- Reliability
- Control
- Scalability
- Maintenance
- Administration
- Cross-platform integration
- Total cost of ownership
The business model for the
Currency System
family of products and services revolves around
the belief that a combination of currency-enabling
software and service (traditional data feed, or
Web service) can provide superior results compared
to a service-only approach.
The most obvious requirement in any currency-related
solution is that exchange rates fluctuate, and therefore
require updates. The decision to support multiple
currencies, however, normally has several additional
implications which need to be addressed. While official
reference rates usually change once a day, there
are different events with occur both at a lower
frequency (e.g. a few times per year) and at a higher
frequency (e.g. for each conversion transaction).
For example, exchange rates are not the only variable
part in the equation: currencies split, merge, change
their code or name, are replaced by other currencies,
join or abandon unions, etc. When a currency joins
a regime such as the EMU,
triangulation has to be used instead of a simple
division or multiplication to convert to and from
non-EMU currencies. When converting currency amounts,
local rounding rules have to be taken into consideration
too: some countries use cents, others use different
types of fractional parts, others use only integer
amounts which are a multiple of 50, etc. On systems
converting currency amounts, triangulation and rounding
have to be performed for each transaction, and in
consideration of all variables. Monitoring and notification
procedures have to be in place to detect both normal
events (e.g. a currency ceasing to be legal tender)
and anomalies (e.g. unusual fluctuations, or a data
feed not updating one or more exchange rates, etc.)
while continuing to provide functionality.
As even a service-only approach requires some
code to fetch and use the data, the choice is not
between using or not using any software at all,
but rather it is about:
- The extent of the functionality that can
be outsourced to a remote Web service provider
without a negative impact on performance, reliability
and overall quality. For example, should only
daily rates come from the remote system, or
should the remote functionality also be invoked
for each conversion transaction? What if any
of the two is slow, or fails?
- How much of the remaining local functionality
can and should be developed in-house (also see
"Currency Server vs. in-House
Development").
Approaches
The Currency Server
software can be used both to access a third-party
Web service or data feed and to provide a Web service
via its .NET and SOAP interface, thereby making
available some of the best aspects of both approaches.
As such, Currency Server can act as a powerful Web
service proxy, increasing the performance and reliability
of an external service and adding sophisticated
local administration options, while exposing a unified
interface which is independent of the provider of
exchange rate data.
When you decide to subscribe to a Web service,
you decide to trust the operator of the Web service,
you accept its limitations of liability and usage
restrictions, and you make a long term investment
in this relationship. When you purchase Currency
Server, you choose a piece of software designed
to put you in control of everything, including a
responsibility which a third-party service provider
may not be willing or able to undertake. These two
approaches can be used to achieve a synergistic
effect, or you can choose to rely only on one of
the two.
Within the
Currency System family you also have the option
to choose a Web service subscription, powered by
Currency Server and managed by the Currency System
platform, which can
later be replaced with your own Currency Server
software deployment without needing to rewrite the
Web service access code.
With Currency Server you can:
- Use a variety of official and free providers
of exchange rate data (cost: one-time software
license, no subscription costs)
- Use a subscription-based provider of exchange
rate data while being shielded from its custom
Web service interface (cost: one-time software
license plus recurring subscription costs)
- Change provider of exchange rate data with
one click of the mouse and without changing
a single line of code (which can save you a
lot of time, money and trouble)
- Remain fully operational even while the
data feed is unavailable (imagine the effect
of suddenly losing access to both current and
historical rates)
- Not only get exchange rate data, but also
perform thousands of currency conversions per
second, taking into account local triangulation
and rounding requirements
- Be in control of the monitoring and notification
of unexpected conditions, such as extreme exchange
rate fluctuations, lack of updates, etc.
- Be notified when important events occur
(e.g. unavailable data feed, changes of currency
names, changes in the European Economic and
Monetary Union, etc.)
- Avoid being subject to some of the contractual
restrictions and limitations of third-party
service providers
With a third-party Web service:
- No software purchase and installation are
required (cost: initial and recurring service
subscription fees, no software purchase is required)
- No guaranteed quality of service: functionality
and performance depend on status of remote server,
remote network, internet and local network (predictable
cost when everything works well, unpredictable
cost as soon as a single link in the chain degrades
or fails)
- As different Web service providers make
available different functionality levels and
APIs, changing provider usually requires changes
in code (i.e. time and money, because you are
not in control of the Web service API and functionality
of each provider)
- A quick change of Web service provider,
to respond to an unexpected need, is in general
not an option
- Recurring subscription costs may not be
competitive with one-time software license cost
(when used with free and official sources of
exchange rate data)
With the Managed Services provided by
Currency System:
- Similar considerations as for third-party
Web services apply
- The interface does not change if you eventually
decide to deploy the Currency Server software
locally, thereby preserving your code investment
while increasing performance, reliability and
control
Local Software vs. Remote Service
It is certainly true that a Web service does not require
installation or maintenance, however Currency Server takes
only about 5 minutes to set up. The maintenance roles and tasks
which are clearly documented and implemented in
Currency Server are not software-specific, but rather
they are related to the needs of organizations which
decided to support multiple currencies. A Web service
managed by an external entity may shield you from
the same administrative events which Currency Server
was designed to bring to the attention of your administrators,
however we believe that this is an added advantage
offered by Currency Server, and we are confident
that your accounts, finance, euro changeover and
quality management departments will agree. Even
more so if you are the sole person in charge of
currency-enabling your system, Currency Server gives
you the information and options which you need in
order to be in charge of the situation.
While currency Server has been hardened to handle
a variety of worst case scenarios, including a lost
connection with the data feed, Web services are
as fragile as the weakest link in the chain connecting
the client to the server. Even if you only need
to fetch a set of exchange rates once a day, Currency
Server can send clear and helpful information messages
to your administrator(s) should a problem occur,
whereas a non-functioning Web service may only get
noticed by its "silence".
Performance is another factor: a Web service
which uses the internet as a transmission channel
cannot in general compete with the speed of a local
in-process server DLL. If you need to convert product
prices then you need to support triangulation and
rounding (it's not just a matter of performing simple
exchange rate multiplications and divisions). If
you delegate such price conversion transactions
to the Web service, then you may experience a performance
penalty (and introduce a dependency on an external
entity). If you do the price conversions yourself,
your interface to the Web service becomes more complex,
as you need to handle not only updates to exchange
rate data, but also updates to EMU status information
and smallest currency units, not to mention possible
changes to currency names, codes, etc., which are
all supported by Currency Server. As the complexity
of the Web service increases, so does the cost of
a possible change of provider, should this become
necessary. Currency Server offers a dual advantage
on this front, by exposing a single and unified
Web service interface, and by offering a high performance
COM interface in addition to the Web service
interface.
Conclusion
We believe that Web services provided by external
entities may be an acceptable entry level choice in
best-case scenarios. Within this context, Currency System's Managed Services may represent an
ideal solution, also in consideration of the fact
that it is based on the same interface as the Currency
Server software, thus allowing for smooth upgrades.
As everyday needs get more demanding, and in
consideration of possible adverse circumstances,
we believe that the Currency Server software can
become an indispensable component of a currency-enabling
strategy. By integrating with system administration,
quality and euro-related organizational procedures
and roles, Currency Server puts your organization
in control of currency-related matters. By exposing
its own Web service interface, Currency Server not
only shares the advantages of other services, but
it provides you with an added freedom of choice:
you can use the same interface with multiple providers,
and you can deploy additional local copies of Currency
Server if your volume of transactions demands more
performance.
Additional keywords: ISO 9000, ISO 9001,
ISO 17799, QOS, QMS,
TCO.
|