Nebula Research and Development

Web Serivces & .NET, part 4

Examples

International Spectrum 07/2004

Article 3 of this series, "MultiValue Toolkits" profiled software to help Pick developers implement Web Services with existing applications. In this fourth and final installment of this series, I provide real-world examples of Web Services in the MultiValue world and elsewhere. Once again, I'll occasionally abbreviate "Web Services" as simply "WS", and I have asterisks* to indicate more material is available at http://Nebula RnD.com/Spectrum.

There are lots of WS implementations in the non-MV world, but alas, I've found very few in our MV world - so far. That was what sparked my interest in doing this series, to inform and encourage developers to add value to their software using popular technology. I hope these examples get your creativity flowing as you see how Web Services might benefit you. Please feel free to contact me at to brainstorm ideas for your environment.

Financial Industry

Patrick Payne works with Sierra Pacific Mortgage (SPM), with over 600 users running over D3 Linux and D3 AIX. SPM exchanges data with trading partners for loans, credit reports, flood certification, property searches, etc.. Like many companies, some of their trading partners set up web pages for SPM employees to input data to their systems, but now they're migrating to .NET-based Web Services solutions. Patrick explains how this evolved: "We have an underwriting application that proxies a vendor's web page into our application. The customer sees the vendor's page in my page, but all submits are to my Pick server which pulls all the variables and re-queries the vendor's web site using cURL*. The HTML response is then grabbed by Pick, the page is modified slightly and then merged into my web page. My vendors were at first amazed, and then after some more explanations realized the potential of what I was doing if the process was simplified. This is why we are now working with them to build an integrated SOAP version." Note that the servers are doing all the communication, the end-user clients are communicating with their MV server with a browser interface. The end-user has no idea how many servers are involved in their request processing - a fundamental premise of Web Services.

Patrick shares some lessons about his deployment experience: "The first thing you quickly learn is SOAP is just a packet transfer routine and what it transfers is up to you.* The biggest issue I run into with other vendors is that they are using packaged tools that attempt to define the internal structure of the SOAP call for you. The best thing is, I've been able to keep up to pace with some pretty knowledgeable .NET programmers and we have run into NO incompatibilities. In fact they tried to do this project with some other 'more modern shops' and have had much more luck with me."

"We have seen a huge Return On Investment," Patrick says. "As a Pick company we have been able to implement services much faster than any of our competitors. Most vendors are starting to come to me to build their SOAP plug-in tools."

Medical Applications

Capillary freeware was profiled in my last article. Steve Lake, author of Capillary, explained how that Web Service interface to D3 is being used.

"Kelvin is a 'measurement data archive' system.* Vital signs from patient monitors are captured by a PC and then sent using WS to the archive. A web browser can access these measurements using WS to reconstruct the signal. The PC acts as a translator for the semantics of the patient monitor interface and Kelvin holds measurements in an abstract format, with a dictionary used to describe what the measurements represent. This allows it to be configured to accept new patient monitor formats."

"AMREX is a clinical information system that holds details of patient episodes concerning the anesthetist*. It covers all interactions from Pre-Op Assessment to Post Op follow-up. It has Kelvin embedded to handle the patient monitor side. The interface is totally web based and communicates via WS. The main point is the WS interface to Kelvin allowed us to just use it inside AMREX."

Regional Affiliates

I'll provide another example from my own experience. Nebula R&D clients are mostly VARs. They have their own clients who present them with special needs and they come to me to satisfy those needs transparently and behind the scenes.

One of my clients is the Realtime Software Corporation* (RSC), specializing in Pick business and manufacturing control software. (Unfortunately I was not able to get a release* to use some company names here, so a few alias names are being used for end-user companies.) One of their clients, XVehicles, manufactures specialty trucks and service vehicles. They have regional distributors who take orders for custom configured vehicles, the orders must then be sent to a corporate office for processing. Here at Nebula R&D we wrote a Perl-based WS client which is invoked from the Realtime application. It logs into the XVehicles server with a user ID and password, sends order data, and gets a receipt in the response. Paul Ridgway of Realtime comments: "In the past the distributors would have to sign into the corporate website and hand key the purchase order, which was a very tedious duplication of effort. Now, in a matter of seconds after the user creates a purchase order in our application, the data is posted directly into the vendor's order system and the dealer has confirmation. If anything is wrong the user can review the errors and resubmit the order. The D3 side of the development was extremely simple with the way Nebula developed the interface for us."

Transactions are processed by end-users directly from a purchase order entry screen through to the remote server, but we architected it so that we don't hang the user session if the remote server is down. Transactions that can't be processed immediately are queued. Perl was chosen for development because it's cross-platform and easy to support. We wrote and tested the code over Windows even though the Realtime applications at XVehicles all run over Linux. Prior to this experience Realtime never dealt with Perl. Today they are able to install the entire interface to new turnkey environments with no assistance from us.

Big Customers Drive Change

Another interface I created for Realtime shares some code with the XVehicles interface. A large and well known computer company, referred to here anonymously as BigCo, conducts business with a large number of trading partners to provide their own products and services. One of their vendors, anonymously referred to as here as SupplyCo, uses the Realtime business application package to process hundreds of new transactions per day with BigCo, in addition to their other clients, and it was their requirement to interface with the BigCo systems. BigCo needs to know when its vendors receive and ship stock, and even when hardware moves through various stages in their vendor's processing plant. Realtime software easily tracks inventory, I was responsible for inbound and outbound communications with the application, totaling several thousand messages per day.

In this mission critical environment, timing is everything. According to Paul Ridgway: "If an order is issued from BigCo to our customer's application as late as 7:45pm, they must ship that order out the SAME day. Picking tickets are printed less than 10 seconds after the order is released from BigCo. Our customer is shipping several hundred overnight parcels a day to individual addresses with no margin for failure All of these orders get fed into Realtime from XML purchase orders with no operator intervention." BigCo has standardized on the WebMethods B2B server for it's XML communications. Another provider was contracted for the WebMethods connectivity between BigCo and SupplyCo, I was asked to do the connectivity from the WebMethods server in SupplyCo to D3 Linux with the Realtime software. Interfacing with this system wasn't a problem after we understood the specific XML to and from WebMethods. FlashCONNECT* is used as the data conduit from WebMethods to D3, cURL is used for outbound connections from D3 to WebMethods and other intranet processes. Paul comments "We have been extremely pleased with the FlashCONNECT product which can receive hundreds of XML transactions in a matter of seconds. In over a year of running live, D3 and FlashCONNECT have performed flawlessly."

Tiered Services

In his recent articles on SmartPhones, Nathan Rector profiled devices which both compute and communicate. Between the device and the software application you may find one or more Web Services. If you're wondering how to connect PDAs or smartphones to your system, consider Web Services. Try not to think of connectivity as a direct pipe from a device to a server. You can use one WS from the client to your public web server, one from there to your MV app, and another WS client from your MV app to other applications. With this architecture, you can make any device render data from many sources.

Mainstream Examples

In the non-MV world there are innumerable examples of Web Services, and more coming on-line every day. Here are some examples (links on our web site):

The "Big Three" are currently Google, Amazon, and eBay. These companies are now seen as more than product and service providers, but as "platforms" supporting a new generation of internet killer apps.* I have a link to an article for comparing and combining the services on my web site.*

The Microsoft MapPoint Web Service* allows developers to incorporate location-based services into applications and business processes. The interface uses SOAP, and of course can integrate directly with .NET, but doesn't necessarily need to.

CRM solutions provider Salesforce.com provides the "sforce" WS development tools to make their data and applications available as components in external applications. This is a great example for MV VARs of a business application being extended for use by other applications such as Intuit QuickBooks and Microsoft Business Solutions-Great Plains*.

Other public services are available* and listed at XMLRPC.Com, XMethods.Org, and other sites. Examples include a tourist operator interface for Prince Edward Island; Conversant information management groupware; a utility to distribute per-user customizations among a network of web servers; and Syndic8 which catalogs over 4500 sources of syndicated news headlines.

Should You Deploy Web Services?

Most sites can benefit from Web Services if there are multiple applications running over a network, or if there is a need to provide access from one software module to different user and program interfaces. Deploying publicly accessible services requires caution and some expertise to prevent intentional or accidental abuse. A site that is too small, or not prepared to work through security and stability requirements, should probably not deploy.

However, consumers and other paying clients will be asking for web-based services from providers of all forms of products, services, and application software. We are already seeing the demand and larger companies are positioning to benefit. Even smaller systems have data and functionality that may be useful if extended for new purposes. I encourage you to analyze your software assets, and check with your users and trading partners, to determine if remote application access via Web Services will be of benefit. I'll be happy to discuss with you how your offerings can be extended with Web Services for improved work-flow, software simplification, or to create new opportunities for revenue generation.

Thank you for your interest in this series. All articles are available on-line with *notes at http://Nebula RnD.com/Spectrum. Feel free to e-mail me at with requests for more articles of interest to the MV community.

Tony Gravagno is founder and chief software architect of Nebula Research and Development, specializing in software and services, including Web Services and .NET integration, that help developers and resellers add more value to their own offerings. Tony has been involved with the Pick market for over 20 years and has held the titles of QA Manager at Pick Systems and DBMS Product Manager at Raining Data.

 

© 2007 Nebula Research and Development

 
 

Home | About Us | News | FAQ | Products
Services | Articles | Contact Us | Search Site

E-mail for Product and Service inquiries.
Please report site issues to . Thank you!