Secrets to Building a 'Customer-Service' Web Service
Developers from Extreme Logic used a combination of Microsoft.Net technologies with a Service-Oriented Architecture (SOA) approach, to build JoeAuto.com, an Internet-based auto repair business. The result is that consumers can go online to conduct a variety of operations -- schedule maintenance, receive a diagnosis, obtain pricing information, make service appointments, choose a loaner car, view repairs and even make payments. Learn the techniques you can apply to your business from Extreme's CTO Keith Landers.
An Atlanta-based applications consulting and integration firm Extreme Logic is finding increased demand from customers for developers that know how to build flexible and integratable software projects.
IDN interviews Extreme's CTO Keith Landers, who explains how developers can tap into this demand -- even in a stone-cold CapEx spending economy. Landers also shares his successes with one such client, JoeAuto.com, an Interet-based auto repair firm that is using web services to redefine cutsomer-oriented development projects.
Growing Need for "Integration-Aware" Developers
Landers says that languages that have an object- or class-oriented structure (such as C#, VB.NET and Java) are taking on a much more extended role. Rather than a language environment for a straight vertical silo, these [languages] "are becoming the tools and languages for an end-to-end service architecture or a 'grid model' of computing," Landers says.
A case in point is the work Extreme did for JoeAuto.com, an internet-based auto repair business headquartered in Houston that was built from the ground-up to give consumers more visibility and control throughout the whole painful process of getting their car back on the road Using a combination of Microsoft.Net technologies and a disciplined Service-Oriented Architecture (SOA) approach,
Extreme Logic developers built a system for JoeAuto.com.com that allows consumers to schedule maintenance, receive a diagnosis, obtain pricing information, make service appointments, choose a loaner car, view repairs and even make payments online.
Landers experience in enterprise development, and his new knowledge of XML-driven web services, provided a great mix of insight and experience for solving the JoeAuto.com challenge.
Before coming to Extreme Logic, Landers served 5 years at Coca Cola head of application development architecture. From that perspective of supply chain, code reuse efficiencies and inventory/commerce tie-ins, Landers in convinced that today even departmental developers should begin look differently at their projects.
In an SOA State of Mind
Rather than look at them as vertical applications that need data, business rules and GUIs, Landers says developers should consider these tiers as separate component layers that should not be breeched. "Developers need to start thinking of these three components as discreet assets that will need to be shared, exchanged and integrated across an entire enterprise -- not just vertically stacked together for a local application."
The implication of this kind of thinking brings developers in direct contact with the Service-Oriented Architecture (SOA) model, which Landers said resembles the grid delivery system used by a conventional power generation plant.
"Once you consider your software assets as the 'power' of the power plant, then you can see that you need to put a 'service grid' in place to deliver, monitor and manage that power to the different nodes," he said. So, on top of that grid Landers maintains that developers need to think about the plug-ins they'll need to help tie their nodes together, as well as some security and quality-of-service elements throughout the grid. "A service grid based on a simple object-oriented process makes that happen," Landers said.
Inside JoeAuto.com -- A Case in Point
JoeAuto.com wanted to deploy a workflow solution to integrate vital processes from auto check-in to cash-out. . Providing customers online efficiencies would be key to the JoeAuto.com business model, as studies had shown that more than two-thirds of the time a vehicle is in the shop is spent not on actually working on the repair -- but in the collection and distribution of information.
"JoeAuto.com wanted a highly interoperable solution, enabling them to connect disparate systems and to integrate supplier vendors. They also wanted a reliable real-time capability for notifying customers instantly when repair-related events occurred in the shop," Landers said. The company selected Microsoft's BizTalk Server 2000 as an EAI server to efficiently and seamlessly tie together line-of-business, point-of-sale, and corporate financial systems and the databases they rely on.
For example, at JoeAuto.com the BizTalk server uses a message queue to send messages between the solution and an Anderson BDG VAST POS (point of sale) system. The server also provides the mechanism for orchestrating event-based messages between the solution and the Great Plains Software accounting package as well as the transformation and mapping of the requisite data. BizTalk 2000 also integrates the solution with invoicing systems and enables communications with a customer-notification component and a parts component supporting the direct order and delivery of parts to the technicians.
With JoeAuto.com, Hernacki said, Extreme decided to use XML-based documents. This approach would enable different "services" to extract and update data they needed using a Biztalk server as the framework for taking data (from EDI, relational or flat file) and mapping it to the internal XML schema of the documents.
"We have found that when a system needs data from multiple sources, especially legacy sources, utilizing XML makes passing that data from service to service much more efficient with fewer errors," Hernacki added.
The Power of "Layered Development"
In less than six months, Extreme Logic designed, developed, and deployed a workflow application that tracks vehicles as they progress through the JoeAuto.com system. To make the application easy to scale out as the company grows, the Extreme Logic project team used a multi-tier architecture: (1) presentation; (2) business logic; and (3) data. Each layer used different tools and languages, and was worked on by a discreet development group.
The key in developing an end-to-end system is the separation of the interface, business logic and data layers, said Paul Hernacki, another Extreme Logic designer/developer who also worked on the JoeAuto.com project. Once these layers are separated in the development process -- and stay that way -- it is a lot easier to stick to a plan to develop common services that can then be reused.
The Payoff at JoeAuto.com
Dividing the JoeAuto.com project into discrete, reusable components -- that can easily talk to one another -- has resulted in a surprising number integrated features for the customer, and easy management for the developer/IT management team that maintains the JoeAuto.com system, and the repairmen that rely on it internally to do their jobs.
For example, a customer can sign up for service on the Web and JoeAuto.com will pick up the car, provide an hourly rate loaner vehicle while the car is in service, and enable the customer to see the car being worked on via Web cams stationed in any of the shop's 27 service bays.
Running on desktop PCs for office staff, the solution also is available on Compaq PCs on carts in the service bays that technicians use to update their progress and to order parts that are then hand-delivered to them while they work. the solution includes online knowledge systems that provide customers real-time information, both text-based and through the Web cams, on the status of work being done.
The solution also keeps vehicle repairs and maintenance on schedule by alerting individuals and team leaders when a repair is at risk of falling behind. Plus, it tracks time actuals and enables reporting that allows JoeAuto.com to differentiate itself to investors in terms of productivity and cost-effectiveness.
To reap SOA benefits, not all developers have to be SOA architects, Landers says. (In fact, fewer than 10% of developers today really know all the intricacies of building an integratable solution from the ground up. There are some simple design steps developers can take that will help them contribute code that can become building blocks for an SOA or grid-based framework.
Step One -- Never Break the Titanium Wall
Landers says despite the temptation to hand craft a completely integrated vertical application, developers should never break what he called "The Titanium Wall" between the three tiers of application components -- UI, business logic and data. "You want strong walls between each of these three elements," Landers said. This allows better scalability and reuse of code.
And there's another less obvious reason to not break the Titanium Wall.
Step Two -- Think Service Levels
In an end-to-end world, the ability of your application and/or data to deliver a result is not the result of local processing on a local server. A successful outcome is likely dependent on successful interactions with neighboring systems.
So, "service levels" need to be an on-going concern as developers build their components. A question developers should ask themselves would be "Will my components be able to share status, information, inheritance easily with neighboring systems?" Landers puts it this way: "Your underlying services, such as error management, QS and application mentoring can work without being tied to a specific element of the application."
This approach also gives IT departments more flexible and less-costly ways to cope with the ever-changing status of key end-to-end transaction standards for web services -- such as session (or state) management, and security that are all lacking in the current set of web services standards and tools, Lander said. Lacking a clear outcome on standards, more and more companies are saying 'I won't be just on one side [of the standards debate]', and this approach provides the ability to more quickly adjust your enterprise to whatever standards finally emerge, he added.
Step Three -- XML Supports "Patterns and Blueprints" Best Practices
The more developers know about the native features and capabilities of XML, the more they will be able to build in better support for the exchanges, updates, and transfers that must occur between nodes, Landers said.
To Landers, XML is a key element of the glue needed to build an architecture that delivers of two basic elements: (1) a scalable underpinning for data/rules/UI sharing across an enterprise; and (2) creation of a firm Titanium Wall between the development environments for business rules, data, and UI.
Along with XML, Landers said his architecture approach uses business process server controllers to bring together different services and data.. This technique builds a brokering server environment that enables the services to create a relationship among one another. (In Landers' case, he has settled on Microsoft BizTalk for this function). This gives Landers a relationship between a service request and a UI, or the rules that can be custom configured for the employee based on his job role -- or even for the end user based on their account information and access privileges.
So, is there traction out in the market for such an integration-driven approach to applications development? Well, Landers says his customers like it, and the company is poised to hire as many as 70 developers in the coming few months.
The biggest reason for why Extreme is enjoying growth in IT demand, while most of the industry is in a spending chill, Landers said, is that needs of the customer dictate a more flexible and cost-effective approach to ntegration.
"Bottom line, practically 100% of everything we do now is about integrating back end systems together, or bringing them to work with other databases or front-end systems. But customers are also demanding the solution be flexible enough that it will scale and can be changed when standards or tools get better." That's something traditional EAI and middleware firms just don't offer, and something an SOA approach can begin to address, he said.