Saturday, September 12, 2009

Web Services Use in the Real World

Web Services are the preferred way for businesses to implement Service-Oriented Architectures. Below, I will describe a few of the real-world offerings by which businesses in a different industries operate using SOA both as publishers and subscribers as implemented by Web Services.

Logistics and Transportation Industry

One of subsidiaries in the business for which I work is a trucking company which hauls the majority of goods for other subsidiaries that distributes them to retailers. When a customer requests the trucking company to pick up a delivery and transport it to another location, a Freight Bill must be created within the Freight Billing application. The trucking industry was heavily regulated up until about twenty years ago and the way Freight is billed is still very backwards as a result of the regulation mentality.

Three vendors that offer web services for the logistics industry are SMC3, ALK Technologies, and UPS.

ALK Technologies offers a product called PCMiler that determines the standard distance between two points by way of zip code to zip code or address to address. You may ask why does a trucking company need to use some proprietary company for this rather than using Google Maps or Yahoo Maps. PCMiler provides distances that are standard to all trucking companies and freight customers and has been used for thirty years. They also provide the least cost routes to the trucking companies such as avoidance of toll roads and routing through roads which allows for the highest speed for the trucks to get to their destinations more quickly. PCMiler still offers their software as an installable application, but also provide Web Services for which Freight Billing applications can integrate. The Freight Billing application presents two zip codes to the web service and it returns the mileage between those points.

http://www.alk.com/pcmiler/web-services.asp

Once the Freight Billing application knows the mileage, it can utilize a second web service offered by SMC3 that allows one to lookup customized freight rates from freight rate tables maintained by SMC3. There are numerous freight rate tables containing carrier rates from Crete Carriers to Yellow Trucking and they maintain rates from the 1970's to today. The trucking company may need a Less Than Load rate for three pallets of pillows and one pallet of Lead Weights for Old Dominion 1993 between Atlanta, GA 30339 and Sylvester, GA 31791, so they will submit the a request to the web service offered by SMC3 with this information and receive an amount to charge the customer. In addition to freight rating, there could be additional accessorial charges that need to be priced such as hazardous materials, special handling, etc. All of these conditions can be submitted to the web service for consideration in rating the load.

http://www.smc3.com/solutions/CarrierLTLPricing.asp?nav=products/TopLevel.asp

Now that all of the information needed to bill the customer has been gathered, a freight bill can be printed and handed to the customer upon delivery of the goods.

UPS also offers web services. The most prevalent is the shipment tracking web service which many online retailers subscribe in order to provide on-page updated tracking information without having to re-direct the user to UPS' website.

http://www.ups.com/bussol

Medical and Dental Health Industry

Both the Medical and Dental Health industries tie codes to individual procedures. On the Medical side, CPT codes are given to specific medical procedures and on the Dental side, CDT codes are given to specific dental procedures. Traditionally, these codes have been available in large books or written into tables within practice management software. Now, web services are provided by various web companies or insurance companies to allow for code and fee schedule retrieval. ICD codes are used by the medical community for coding specific diagnoses. One very simple service is found at webservicex.net and allows for the cross reference of ICD version 9 to ICD version 10 codes and vice-versa.

http://www.webservicex.net/icd9toicd10.asmx

HR-Solutions Industry

Finally one-unique web service that I came across dealt with background checks. Applicant Insight Limited offers a web service to subscribers that will allow someone to present to it the identification of a person and in turn will provide you with background information to aid in hiring decisions. Using this service, an employer could instantly receive background check information. This type of service would eliminate the two to three day wait process that some companies have when submitting for this information from local, state, or federal law enforcement.

http://www.applicantinsight.com/services_backgroundChecks.htm


6 comments:

  1. My question to you would be:

    In these examples, why does it matter if it is a web service. To me, your examples are showing me things that could be done simply with some other form of communication between two vendor's machines... not necessarily web.

    ReplyDelete
  2. Cool kids, I am think you can view this in two ways. First, these applications are not just for two vendors. Web services are based on standards so it is much more open and scalable to include more parties. Second, although any form of communication will work, web service (which is based on the web) infrastructure has taken care of many infrastructural functions (such as lower level conversation, security, state, etc.) that free application developers so they can concentrate on application level development. Just my two cents.

    ReplyDelete
  3. David, I think this is really a very informative blog. Thanks for sharing your experience. I can add one more industry that is the stock trading: many offer web services to deliver stock quotes and trading information (but not many are free out there).

    ReplyDelete
  4. I definitely left room for explanation, I wasn't docking the implementation.

    "Web services are based on standards so it is much more open and scalable to include more parties."

    I don't think I can agree with this statement. Web applications/services may or many not follow a standard... just like any other application. It really depends on if the implementer is good enough to follow standards vs just shooting at a solution.

    "although any form of communication will work, web service infrastructure has taken care of many infrastructural functions"

    I completely 100% agree with this part of your sentence

    "that free application developers so they can concentrate on application level development."

    But not that part.
    Free application developers? Assuming you mean free applications made by developers and not developers that are free, I don't think these applications are meant for mashups or bolt on web services... Those examples are extremely proprietary data.

    Even for UPS, in order to tap into their API, you need to know the tracking code before hand... you can't just find all shipments to southeast GA with a flick.

    If this were talking about yellowpages opening up their data to the web to allow people to mashup on top, or yelp giving you information on geolocation of the restaurants... then you start to make sense

    ReplyDelete
  5. In response to the "Cool Kids" post,

    If you're talking data-wise, there are only two trucker mileage vendors in the United States that are recognized as having "correct road miles", ALK is one and Rand-McNally is the other. So, if you talking data, you're right to some degree but it's an either-or situation.

    If you're talking architecture-wise, I agree with you, why not use a different method of communication of the data? The only rebuttal I could give is possibly ease. Installing the data locally every quarter to keep up-to-date data is a pain, so that obviously is not the best option. Using a socket connection to retrieve the data from the vendor has it's ups and downs, too. The web services route is simply an ease of connection choice. No official connection has to be made since it's assumed the customer already has internet access. If a vendor devises an easier way of retrieving the data remotely, then that method will likely trump web-services.

    We can argue about technology pros and cons all day long, but at the end of the day, business leaders could care less about IT's opinion on the many different ways of retrieving data. The "bottom line" (pun intended) question is, is it a reliable way of data retrieval and does the cost-savings of the service using the new method out-weigh the cost of your labor to implement it? If you answer "yes", then the choice is the right one. If you answer "no", you may want to reflect upon why you went with the choice you did. Was it because the technology was the latest, greatest, and the most cool? That really doesn't matter to the business in the real world, especially if it costs the company more money to use it over another alternative.

    DB

    ReplyDelete
  6. I still do not see web services to be reliable. we have many examples we have when web services have failed us(Amazons break down)
    I find them to be more complex, with much dependence on integrators and vendors. And I also read somewhere that use of SOAP causes some brittleness in used systems. The ability of tool kits for SOAP to make it simple to make changes for remote interactions, which is not in liking of application authors(SOAP stack authors) as the changes in interface classes of client interfaces may not take these changes well.
    I also read about the concerns of using XML as messaging format.

    ReplyDelete