Microservices Expo Authors: Liz McMillan, Pat Romanski, Elizabeth White, Stackify Blog, Andreas Grabner

Related Topics: Microservices Expo

Microservices Expo: Article

Web Services Made Sense!

Web Services Made Sense!

Kazoo's CEO, Joseph Cardoza, was asked by Colliers' CIO, Jon Green, to propose a solution for a problem that had been haunting the Colliers IT department for a while.

The problem was "speed." Requesting a commercial real estate report from a computer system should never be a "Project" that requires coffee making and donuts to be consumed while waiting.

The system was ASP based and connected to MS SQL Server 2000 to query commercial real estate properties. The reporting portion of the system was just thrown together! The agents at Colliers requested that the reports be in PDF format. Well, that's good except getting there from an ASP page is not as easy as advertised.

Adobe Acrobat allows for PDF creations, but for more control over the output, format, and content, Crystal Reports was chosen to control the output because of their ability to construct the output in PDF format. At that point, we felt we were almost there, but not quite.

The COM wrapper for the Crystal engine to be called from the ASP page to do the job was "single threaded": that means if 10 agents hit the site and start printing reports, they will be worked on one at a time, causing a jam and complete dissatisfaction, especially if Agent 005 wants to print all the available properties in California. You get the picture.

We found a solution by developing a Borland Delphi-based COM server that receives the printing requests first and multithreaded them to instances of the Crystal engine. Did I mention Web services yet? Bear with me.

The solution worked, everybody felt relieved that reports were moving along, no jams, and they got the job done.

The reality of the matter was that we didn't do anything. We just fixed something that was supposed to work right from the start. The real problem was: How could we get Colliers Agents to be more productive on the go?

If I am a customer requesting knowledge of commercial real estate availability from a Colliers agent, the process is for that agent to print a log of available properties in that area and hit the road. What happens when I, the customer, have a question about a specific property that is not on the printout? What happens when I choose to change the location of the search halfway through? Do we have to go back to the office for more printouts? What a waste of time.

The goal was to spice up the current framework to allow for easy access to this information on the road. Plugging in a laptop on the road and hitting the site was not my idea of "spice up."

At the time, I wanted to use the SOAP framework built in Delphi 6 to wrap the COM requests we built into the framework and allow access to the data over HTTP from any platform or device worldwide. It was extremely easy to build this server using Delphi 6, the only commercially available SOAP framework at the time. All the SQL queries were routed straight back to the transaction server already built using COM and MTS and the responses were all driven back to the requester using SOAP (XML over HTTP).

Portable Data Access
"Okay, now that we have a solution, how are we going to apply it for data access on the road?"

We chose the PocketPC route; it was the best choice for wireless development. We bought several iPAQ 3650s, embedded VC++ for PocketPC and MS SQL for CE and started playing. We decided to use the PocketSOAP framework (www.pocketsoap.com) to provide the client code on the devices for accessing the Delphi 6 Web service we had just created. It was amazing how fast everything was put together, and it worked!

One final problem we were facing was the choice of hardware for wireless access.

When we started this project, Ricochet was still alive and was our first choice; when they went under, we had a larger problem on our hands because of two major issues:

1.   We needed something that worked as well as Ricochet, speedwise, because SOAP was not the fastest animal on the block. It was still TEXT over HTTP.

2.   It needed to be financially equivalent to operate (or even better) to get the approval for nationwide use of the technology.

Well, first there was nothing even close to Ricochet. The wireless modems that we experimented with were at least 10 times slower, unreliable, and extremely expensive to operate monthly with heavy usage.

Then we started to consider two different approaches: wireless 802.11b technology for internal use in all Colliers offices via an Access Point and Sierra Wireless AirCard 555 for external usage. It worked great!

As part of a pilot program, agents were able to retrieve property information and query their data wirelessly anywhere in the Bay Area.

Return on Investment
But we still had a major question: "How can Colliers make money out of Web services?" This is a question a lot of companies have asked, and they've fallen short of finding a business case where Web services can generate revenue.

That idea started the second phase of our project. Jon had explained to Joe and I the essence of collaboration between companies in the commercial real estate business. It was definitely different from regular real estate. Visiting company XYZ on the Web and requesting views of properties in special areas renders only properties handled, owned, or contracted by company XYZ. Bearing in mind that Colliers International is the biggest commercial real estate company in the world, a lot of other commercial real estate companies would really find it advantageous to tap into a properties inventory like Colliers'.

The original Web service was modified to allow logging, authenticating, and charging of data access to the requesting party. It was based on the same model as a regular Colliers agent, except a flag was introduced in the database to identify the agent as a competitor, which linked in another table that identified the charge per listing.

So, a potential buyer visits www.xyz.com (commercial real estate company) and requests a search of properties of a minimum of 10,000 square acres in the Alameda area. XYZ only has two listings in that area but has a contract with Colliers to access their inventory. A Web service call is made into the Colliers system to authenticate and retrieve the information. If the contract with Colliers states, for example, that each listing will cost 10 cents, the SOAP dataset returned is counted, logged, and saved.

A Linux Mirror
Just before we released the pilot program for the new system, Borland Software Corporation announced the release of Kylix 2.0, a Linux-based RAD development tool identical to Delphi. Knowing the power of Linux on the server side and its cost effectiveness, I was given the green light to experiment with mirroring the Web service solution under Kylix 2.0 for Apache hosting.

I would have liked to mention that we worked hard on this task or even contributed much to this effort, but the truth is that Kylix 2.0 did all the work. It took two hours to convert the SOAP server and that's because we had to mirror the MS SQL Server to Interbase.

It was a pleasant conversion, which almost never happens in real life. Kazoo Software continues to support Colliers' efforts to make technology a tool to make everydays tasks simple, fast, and elegant.

With the Delphi and Kylix solutions developed by Kazoo, Colliers supports its internal team with state-of-the-art applications designed for speed, flexibility, and performance.

Side Bar
About Kazoo
Founded in 2000, Kazoo is considered one of the fastest growing companies in Silicon Valley. Using its exclusive and proven consulting process, Kazoo utilizes a wide range of talents that come together to develop customized solutions that fit customers' needs. Kazoo is your partner for powerful business solutions that help your organization increase efficiency, productivity, and profitability.

More Stories By Alain Tadros

President & CTO of Kazoo Software Inc. Lino is a frequent speaker at software development conferences
throughout the world and a former software engineer on the Delphi and C++Builder development teams at Borland Software Corporation. He is recognized internationally for his expertise in the areas of COM, XML, SOAP and Internet development, has published articles in several
software development periodicals and technically reviewed five books on
software development.
Lino sits on the Boards of Directors of four Software & Internet
companies in the Silicon Valley and is a Borland Certified Developer &
Trainer on Delphi, Kylix, C++Builder and JBuilder.
Lino was honored with the prestigious award of "Trainer of year 2002" at
Anaheim, CA from Borland.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Microservices Articles
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and co...
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, discussed why containers should be paired with new architectural practices such as microservices rathe...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace....
SYS-CON Events announced today the Kubernetes and Google Container Engine Workshop, being held November 3, 2016, in conjunction with @DevOpsSummit at 19th Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA. This workshop led by Sebastian Scheele introduces participants to Kubernetes and Google Container Engine (GKE). Through a combination of instructor-led presentations, demonstrations, and hands-on labs, students learn the key concepts and practices for deploying and maintainin...
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
As software becomes more and more complex, we, as software developers, have been splitting up our code into smaller and smaller components. This is also true for the environment in which we run our code: going from bare metal, to VMs to the modern-day Cloud Native world of containers, schedulers and micro services. While we have figured out how to run containerized applications in the cloud using schedulers, we've yet to come up with a good solution to bridge the gap between getting your contain...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
DevOps is speeding towards the IT world like a freight train and the hype around it is deafening. There is no reason to be afraid of this change as it is the natural reaction to the agile movement that revolutionized development just a few years ago. By definition, DevOps is the natural alignment of IT performance to business profitability. The relevance of this has yet to be quantified but it has been suggested that the route to the CEO’s chair will come from the IT leaders that successfully ma...
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, will discuss why containers should be paired with new architectural practices such as microservices ra...