Wednesday, September 30, 2009

Challenges to Web Service Implementations

There were a few topics that we did not get a chance to cover in class simply due to our time constraints.  I'd really like to highlight 1 of those issues since I've got a little time on my hands.

Considerations and Challenges In Implementing Web Services

  1. Web service implementation adds to the complexity of your organization's architecture.
    • You are adding an additional layer to your architecture that requires additional development time and maintenance.  Ongoing maintenance must be performed, of course.
    • Due to the very nature of web services - namely, the integration of different systems/data in the background - you add complexity.
  2. There are additional requirements for time and resources devoted to testing the web service functionality.
  3. In this modern "web age", high availability is expected (24 hours a day of possible activity). 
    • Thus, you must ensure that your web services are implemented in such a way as to minimize any downtime. 
    • Any downtime of these services can negatively impact the image that your "consumers" will have of your organization's.
  4. There must be continuous monitoring of the web services for reliability.
    • People expect the services to operate efficiently and effectively, according to their published descriptions.  Thus, it will be important to conduct periodic monitoring to ensure that they are meeting expectations.
  5. Due to the extra web exposure, your services could become corrupted.  You will need to implement additional security measures.

Web Services Presentation Slides

Thank you again for your attention during last night's presentation. I hope that each of you found something educational - if not entertaining - about the topic of dicussion.

You can access the slides at the link below:

http://davidbowles.info/SOA_Web_Services2.zip

David Bowles

Monday, September 28, 2009

Web Services: An Overview and Practical Applications

On Tuesday, September 29, Team Analyst will be presenting on the topic of Web Services from both an overview and practical applications perspective. The presentation will contain high-level discussions on the architecture of the technology, technical detail of how to create and use web services, and present a business case on web services in production. Following the presentation will be a discussion on how to find web services available to you as well as a short demo on how to construct web services. Throughout the presentation, Team Analyst will involve the audience in thought-provoking discussions about the topics covered. The team believes the outcome of this presentation will provide the audience with entry-level knowledge about web services, where to go to find web services available for subscription, and an understanding at a high level on how to integrate web services into a portal technology which involves "click-and-drag" implementation.

David Bowles


References:

SOA Terminology Overview

http://www.ibm.com/developerworks/webservices/library/ws-soa-term1/

Internet News.com
http://www.internetnews.com/ec-news/article.php/3837186

ZDNet
http://blogs.zdnet.com/service-oriented/?p=2753

Computer World
http://www.computerworld.com/s/article/9032099/Honors_Program_Social_Security_Administration

AIS Health
http://www.aishealth.com/Bnow/hbd070209.html

W3C
http://www.w3.org/2002/ws/Activity

RogueWave Software – WeatherSummary WSDL
http://www2.roguewave.com/support/docs/leif/leif/html/soapworxug/6-2.html

WebserviceX.Net
http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=35

Paragon Corporation
http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=13

Business Wire
http://findarticles.com/p/articles/mi_m0EIN/is_2003_April_1/ai_99455958/

Healthcare IT News
http://www.healthcareitnews.com/news/icd-10-and-hitech-compliance-key-issues-medical-billers

Developer.com
http://www.developer.com/services/article.php/3665831/Web-Service-Testing-in-a-Service-Oriented-Architecture.htm

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


Do Small Business and Smaller Mid-Sized Businesses Need ERP?

I started this as a response to Michael Morgan's comment to the last blog entry on September 1st, however the response became too verbose to post as a comment. It's a great question, but one that deserves a complete explanation.


Small businesses to smaller mid-sized businesses need software that will keep business functioning. Everyone must admit this is a true statement. Let's take a simple case to prove the previous statement and answer the question whether or not ERP systems are needed by these same types of businesses. The smallest business that needs a computer system is a Doctor's office.

This type of business typically has fewer than 10 employees. The only way the doctor can get out of having a computer system (in this day and age) is to not accept insurance and to track revenues and expenses on a paper ledger (not too pretty). I can say this because I saw the migrations started happening in the early-to-mid 2000's. Some doctors who were older in age would actually sell their practice to a young doctor just so that he/she would take on the responsibility.

A doctor is not likely to refuse to accept insurance, so instead, the doctor is likely to invest in a practice management system or an accounting package like Peachtree Accounting or QuickBooks.


Medical Office Practice Management systems now come complete with A/R, A/P, G/L, payroll, medical coding, insurance clearinghouse, and integrations to national medical lab testing organizations. Even a software product like Peachtree Accounting and/or QuickBooks has some of this functionality, i.e. A/R, A/P, G/L, payroll, logistics, and inventory management.


If you purchase OneWorld, SAP, Dynamics AX, BAAN, SAGE, or one of the 1000 other offerings for ERP software, and you only buy A/R, A/P, G/L, and Payroll, is it still an ERP system? The answer is yes.


ERP is a misnomer. ERP was derived from MRP systems (Materials Resource Planning) when financials, HR, and project management modules were injected into the system. MRP systems would process what is on order with vendors, what is in stock, what is being produced (if applicable), and what is being ordered by the customer. Based upon these bits of information, it would tell the operations department whether it would be cheaper to build or to buy to meet the demand of the customer (if demand was not already met) or what to build or buy in order to maintain appropriate stock quantities to eliminate the possibility of "stock-outs" or backorders.


So if an ERP system is still an ERP system although it only contains bare-minimum modules for accounting, then isn't a system like a Peachtree Accounting or Quickbooks an ERP system, too? Both software packages come with the option of buying some other integrations like EDI processing. The point is ERP in this day has grown to mean a system that has multiple interrelated, expandable, and customizable modules that allows your business to run from a single set of programs that not only share data but also share "look-and-feel" similarity. How you use the system, whether it is using 100% of the available functionality or only 10% is up to the user to decide.


Finally, now that we have equated ERP systems to accounting systems (or Accounting Information Systems as known in academia), let's discover why small to mid-sized businesses must move to this type of software. Looking at ERP systems from an I.T. perspective, what is an ERP system's greatest attribute? The ability to quickly customize software for the business' needs and it reduces the cost of I.T. systems programmers because it is a software that everyone knows. (I will admit here that this is a stretch today because ERP has not saturated the market, but when it does it will drastically reduce wages in I.T. development and until then I will continue to ride the gravy train - think programming a VCR in the 1980s versus programming a DVR today.) What is the greatest attribute of the ERP system from the perspective of the C-Level leadership? Can it help the business become more profitable, can it be agile enough to meet the demands of changing business models, can the familiarity of the system reduce my overall cost of labor because the labor pool contains workers with experience using it, and can I realize a significant return on investment by purchasing it?


Going back to the case of the doctor's office, if the doctor is running an ERP system and the health care system of the United States is nationalized, how difficult is it going to be for he/she to move towards using whatever payment system the government devises and tracking and reporting on the First Doctor Visit Resolution metric that will be a major part of the plan? This will not be difficult at all because there will be multiple businesses with the same problem existing using the same software. Either the maker of the ERP product will develop a solution or a third-party will. If that same doctor had a home-grown COBOL system that tracks limited data and will only allow the reporting of limited data, how easily will it be for the doctor to find someone who is not only a COBOL programmer but one who is familiar with the interfaces to the new national health system?


In closing, yes small to mid-sized business need ERP systems, but not just for the sake of running an ERP system. Businesses need ERP system to reduce their costs and have universally known systems for the end-user, management, and developers. An ERP system is an insurance policy in many regards. It not only ensures that your business can be agile, but it ensures that as long as you maintain updates, someone will always be around to support it.

Tuesday, September 1, 2009

Systems Integration

I have worked within the I.T. industry for over 11 years in positions ranging from support, development, systems administration, and management. My current position requires me to do all four to some extent, however, the majority of my days are focused on development. Without systems integration, my company would not function. While many companies are striving to migrate to ERP systems which boast a single solution for all the organization's needs, the reality is ERP systems cannot solve all problems. As a result, integration is needed to some extent. Even if your company operates off of a single solution and they work with vendors and/or customers who require tight integration of supply chain systems, chances are your systems take advantage of integration.

In my career, developing for integrations consisted of supply chain document passing such as Purchase Orders, Sales Orders, Advance Shipment Notices, and Invoices. While these documents are traveling usually inter-organization, some integrations that I have developed relied upon intra-organization software communicating between the them. For instance, I worked for a dental practice management company where we developed two products: one for the dental practice patient and accounting database and another product for the imaging system. In order to reduce the amount of keying and updating patient records, integration existed between the systems where the practice management system could pass the patient record to the imaging system. The dental staff would then see the images instantly appear when the program opened without having to lookup the patient's data a second time.

In terms of databases, I have also worked to link multiple Microsoft SQL databases together as well as link them to MySQL databases, too.

David Bowles