In the last several years, it has become very common to use third-party Web services in our applications. Third-party Web services allow us to do a lot of things very easily with no maintenance on our part. Third-party Web services also allow us to have additional options in our business models. Instead of purchasing expensive components from third parties, we can use their services on a usage basis or a subscription basis. At the same time, moving away from libraries and towards Web services carries some risk. Here are the kinds of things you need to think about when selecting a Web service provider.
1: Ensure the vendor offers reliable service levels
One of the biggest concerns when selecting a Web service vendor is determining how reliable they're going to be. The cloud has become quite popular, but there have also been a number of high-profile failures with the cloud. Issues such as uptime and latency are real concerns.
When you pick a web service provider, make sure their service levels are at least equal to the service levels your application guarantees. In addition, you want to see how the vendor responds to downtime. For example, some vendors maintain a blog or Twitter account showing expected and unexpected downtime and the current status. Look for a vendor that does this, and examine past incidents to get an idea of what to expect from the vendor. If the vendor does not do this at all, you should be very cautious about them.
2: Confirm the Web service truly meets your needs
All too often the Web service that looks good in its marketing material does not really work as advertised. Do not commit to a Web service until you're absolutely sure that it does what you need. Many Web services should allow you to do a trial period, or to use a limited-use developer account to create your application. Take advantage of this offer to put together a small proof of concept application.
3: Work with vendors that version their services
Another thing to look at is the vendor's past history, especially regarding the issue of compatibility and versioning. You want to work with a vendor that does version its service, and the longer old versions are supported, the better. In my experience, some vendors do not version their service at all, and you can be badly burned when the vendor decides to make a breaking change, and you do not have the chance to update your application in time.
4: Be cautious about free Web services
It is tempting to use free Web services -- after all, they're free. The problem with free Web services is when the vendor tries to monetize them. Because you're not paying for the service, you have little leverage with the vendor regarding how they make their money. Some vendors will decide to shut down the service entirely. One vendor who is particularly bad about this is Google. In the past several years, Google shut down many of its Web services and APIs. Facebook has also changed its APIs many times. Remember, these companies are in business to make money for themselves, not to make money for you. When these vendors provide something for free, it is because they hope to make money from it somehow, which may be done in a way that does not work well for you.
5: Test the vendor's customer service and tech support options
I've had some bad experiences with third-party vendors in the past, where I loved the product but hated the company. After a while, you become pretty miserable. The better the support, the happier you will be in the long run.
Let us know in the forums about your criteria and tips for selecting a third-party Web service vendor.
Justin James is the Lead Architect for Conigent.