The importance of good architecture
We take so much for granted these days. Think about this; at the touch of a button, you can look up the address of any place on earth, on a map, on your smartphone while walking down the street shopping. Amazing! However, how much engineering went into providing this value to you?
- Mapping engines were developed to visualize the streets and places around you.
- Databases were implemented and populated with Point of Interest data.
- Satellites were engineered and launched to provide your cellphone with an estimate of its location on earth.
- Cloud technologies ensure that you and other smartphone users can use the service simultaneously.
It took billions of engineering and research dollars to bring you the value of being able to search for that shop on your smartphone. Yet, we all take it for granted.
The combination of satellites, cloud servers, smartphone apps, and their interactions is called the system’s architecture. Think about how an architect designs and defines the structure and foundations of a house; your location lookup feature is possible not just because of these individual engineering feats but also by the architecture that combines them into a system.
In this article, I will not discuss the architecture of satellite systems or database engines. Instead, I will explore the different options and architectures to build and deploy software for visually analyzing big location data sets. Why? Because that is what we are building with xyzt.ai. In this whitepaper, I will share the considerations we made (and are still making) at xyzt.ai with our technology and architecture.
I have been a Computer Graphics professional for over 20 years and have seen many technologies emerge to visualize and analyze location data. Each of these technologies has its pros and cons. Interestingly, few tools scale while still allowing interactive analysis and visualization of all data.
To put things in perspective, I will outline the key design considerations we put forward when founding xyzt.ai:
- Bring your own device (BYOD). Our technology should be accessible on any device, ranging from laptops to your iPad and even smartphones in your pocket.
- Our technology should scale to billions of location records because our customers are dealing with this amount now, and data aggregation will only increase in the future.
- Our solution should be interactive, easy to use, and beautiful to look at.
Designing an architecture that fulfills each of these individually is one thing, but we aim to achieve all three together. This means running on your iPhone, for billions of location records, with smooth and interactive interaction.
A fourth, more technical consideration is that we set out to fulfill these three together without needing a vast distributed server farm. Instead, our solution should scale to at least two billion data points on a single 4-core, 32Gb computer in the backend.
There are several dimensions to explore when defining and implementing an architecture for big data location visual analytics. Below are the top three that I will discuss in this article.
- Client-side versus server-side visualization and analysis
- Browser-based or dedicated clients
- GPU acceleration or software implementation
Client-side versus server-side visualization and analysis
This is probably the most important architectural consideration. The architect can put algorithms to work server-side or client-side in a SaaS cloud-based visual analytics solution. This is the case for analysis and visualization. The pros and cons of each approach are outlined in the below matri
Going back to our three considerations (any device, billions of records, smooth and interactive user experience), you can see that these will influence the choice between server-side or client-side implementations. More on that in the next section but first to our second consideration - browser-based versus dedicated client implementations.
Browser-based or dedicated clients
When using Office 365, you probably use many of its tools in your browser but often switch to a dedicated desktop application. Even in these cloud-enabled times, we employ dedicated client software.
What option do you choose for a visual analytics tool or big data location intelligence architecture? The answer depends, and it is also related to the first dimension.
The final key dimension we discuss is considering whether to use GPU acceleration.
GPU acceleration or software implementation
The Graphics Processing Unit (GPU) has become powerful and can be used for visualization and analytics . These days, all our devices have a GPU, from your laptop to your smartphone. Many so-called big data visualization tools claim they can handle big data because of the GPU. The unfortunate truth is that it is the opposite; they often cannot handle big data because their solution is using the GPU . I’ll explain why, but first the matrix:
A visual analytics tool is not a big data tool because it uses a GPU. GPUs are limited as well, and in fact, they are quite limited for big data visualization. Tools that rely on the GPU client-side often claim to be big data visualization tools, but they crumble under a load of a couple of millions of data points. It needs more than a GPU to handle big location data sets.
To conclude, it is clear that the choice in architecture and tools is influenced by the pros and cons of the three dimensions above. Still, it is also clear that there is an interplay between the different dimensions.
The xyzt.ai architecture
How does xyzt.ai handle billions of records on your iPhone with smooth interaction when navigating and filtering your data? Did we choose for server-side or client-side, for browser-based or dedicated clients, for GPUs or not?
The answer is it is a mix. The xyzt.ai architecture is as follows:
- We perform analytics and visualization close to the data. This means (mainly) server-side.
- We use a browser-based client.
- We use software implementations server-side and GPU implementations client-side.
Keeping the algorithms close to the data allows us to scale to billions of records without overloading the network or your devices with gigabytes or terabytes of downloads.
By using a browser-based implementation, we can run on your laptop and your iPhone.
Using server-side software implementations, we can be cost-effective and provide an affordable solution to your location analytics needs.
By using client-side GPU visualization, we can provide smooth and interactive UIs.
Does this hybrid architecture mean we need to make compromises? How can we keep interactivity when performing the computations and visualizations server-side? Well, that is where our expertise comes in. We developed custom data structures and algorithms specifically for time-based location data of the form (x, y, z, t, attributes) that allow us to handle billions of records while maintaining interactivity on any device.
Need advice on deciding on a big data visual analytics architecture? Get in touch.