You just spent the last several hours in transit -- getting to the airport, going through security, maybe waiting out delays due to weather or air traffic. Now that you've finally arrived at your destination airport, you face one more hurdle before getting to that business meeting or starting a vacation -- the car rental.
To remove that "hurdle" from the last leg of a journey, Dollar Thrifty Automotive Group is turning to Web services and Microsoft's Windows Communication Foundation (WCF), a framework for building and running service-oriented applications that is part of the .NET Framework 3.0 in the recently released Windows Vista. WCF consolidates five technologies, ASP.NET Web Services (ASMX), Web Service Enhancements, .NET Remoting, Enterprise Services and System.Messaging, into this integrated architecture, programming model and runtime environment.
Specifically, Dollar is rearchitecting a Unix Cobol rental counter application in .NET. "Our biggest concern was reliability of the existing mainframe application," said Peter Osbourne, enterprise architect at Dollar Thrifty Automotive Group, Inc. in Tulsa, Okla. "When you're waiting for a car you don't want to hear the system is slow; you may be tired, you may be annoyed, and now you have to stand in line. The reliability of our system had to be higher."
Dollar Thrifty Automotive Group is a Fortune 1000 company, with 8,500 employees located mainly in North America. The company has two rental car brands, Dollar Rent A Car and Thrifty Car Rental. Osbourne said the company has been a leader in Web services, doing work in this area for the past six years. And the company has been working with .NET since the 1.0 version.
The rearchitecting was already under way when Osbourne asked his technical architect, Jim Arrowood, to see if WCF could add value to the project.
As it turns out, WCF was able to help with a major issue -- moving large amounts of information over a small pipe. "We have about 300 counter locations [pushing information] over a fairly thin pipe," Arrowood said. "We designed the system to be coarse-grained, or to push large amounts of information at once, such as an entire rental agreement. We had peak load constraints – many times customers end up at the counter at the same time, planes land at same time."
WCF allowed for a few things, Arrowood said. "We put a binary formatter around each end of the message transport, which dramatically reduces the size of the XML messages being passed. This means developers don't have to worry about the compression, they just expose their code as standard WCF services."
Another advantage to WCF is that it supports the creation of multiple end points with different types of communication bindings. This helps Dollar because the handheld devices used by greeters in the parking lot do not support the full WCF stack yet, but they can still communicate via standard SOAP services, Arrowood said.
"The greeters can use a handheld to close a rental agreement in the parking lot, but behind the scenes it's the same code. This is a major win for us – we have the flexibility of Web services in the back, but we can optimize to the end points, all without changing the code base," he continued. "With the flexibility of WCF endpoints, legacy consumers can still interact with the services with minimal effort. Developers can have multiple end points with different styles of communication and security."
Because WCF (formerly "Indigo") uses WS-* standards to transport, format and interpret messages, it can interoperate with any other messaging system that relies on these same standards.
"It was designed from the ground up to have a service-oriented approach," said Thom Robbins, director, .NET platform marketing, Microsoft. "Developers can set attributes that run, implement a set of security protocols like WS* and configuration files, and they can write one set of code and mirror it on two end points."
Although Dollar had already begun the project without WCF, Arrowood said the change was fairly simple. "When we got involved with WCF, we did it midstream. We had Web services we needed to migrate, but it wasn't that painful. We were able to reuse the code behind most everything," he said. "If you keep a clean separation between Web services and the business logic it's pretty painless. It's not as simple as throwing a tag on top of a method call, but at the same time it makes you think more architecturally."
With WCF, he said, developers don't have to think about things like the communication protocol, but rather the contract. Developers focus on building the messages that will flow to and from the services, not on ASMX or MSMQ, Arrowood said.
Nor do developers have to focus as much energy on security, Robbins said.
"You don't have to code separately for security," he said. "We provide that through a set of declarations; you don't have to do anything but turn on the declaration. It gives administrators more productivity because they can manage through configuration files. You don't have to change running code to repoint at a new address. You can switch from HTTP to TCP, or import messaging queuing, and you can do that automatically."
The model itself, Robbins said, allows developers to focus on writing application code and business logic rather than worry about the transport layer. "A lot of problems developers were having with the service-oriented model is they had to be concerned about what transport they were flowing over, what the end point was. [WCF] changes the model for how developers look at building service-oriented applications."
Overall, Arrowood said his team found WCF stable, but, he admitted, the framework does require a change in thinking. "Thinking about the design of the contract is the biggest hurdle, but it's a good hurdle because in the long run it makes the services more reusable and maintainable," Arrowood said.
Go with the workflow
Dollar has also been working with Windows Workflow Foundation (WF), another core technology in .NET Framework 3.0.
Arrowood said the company has a unique workflow need because rental agents work differently, so building a wizard-like application isn't possible. "One agent may start with 'What's your name?' and another may start with a great special. Those are our customers. We can't change the way they do business," he said. "It made a unique UI challenge for us because we also needed to validate what the agents entered as they moved through the system in different orders."
The company's WF application monitors the customer information that agents type in. "The workflow engine can peer into the partial rental agreement, and see that the agents have gathered enough information to do a particular validation, and, thus, the workflow can launch the appropriate validation realtime," Arrowood said. "It allows us to step back from the UI and look at the elements needing validation and then allows us to execute the validation activities. Validation results can then be bubbled back to the UI if there's an exception, but it's not directly tied to the UI."
Dollar has a team of more than 20 developers working on the rental application. The company plans a city-by-city deployment. And the company is moving toward a service-oriented architecture, which is all new work on is based on Web services, said Osbourne, Dollar's enterprise architect.
Added Arrowood, "We're like a lot of companies. We're trying to build a solid service foundation. We think of it in terms of the business – what does our business do, and how can we expose those actions through services? We've made a few small steps and we're planning more."