Sybase iAnywhere SQL AAnywhere Mobile and Embedded Database

Rows and Columns


SQL Anywhere perspective on technology

header image

The Various Degrees of Hosting

By Jason Hinsperger on February 20th, 2012

In talking with people about the differences in hosting options, I ended up with the following continuum view of various hosting models. I still need to think about it some more, but I present it here as a work in progress.


The following table illustrates what you, as an end user, would have to manage under each ‘level’ of service. Following that is a brief description of each level, and what it offers.

Hosting Level Hardware OS Software Data
self-hosted X X X X
co-location hosted partial X X X
co-location rented X X X
computing service provider X X
complete service provider


[Read more →]

Comments OffPosted in: Cloud · Commentary

SQL Anywhere OnDemand Tenancy Model

By Jason Hinsperger on February 13th, 2012

One of the more unique things about SQL Anywhere OnDemand is the tenancy model we are proposing in a SaaS environment – one database per customer. I wanted to give a brief overview of it here, and explain why we think it is the way to go for an ISV looking to offer a SaaS application to the market, compared with the more traditional approach that is currently available.

SQL Anywhere OnDemand, currently available in beta, takes a fundamentally different approach to database management for SaaS applications, based on the following key assumptions about ISV customers:

  • Customers running an ISV application usually have no relationship with each other
  • Customers running an ISV application usually do not want to share their data with other customers of that ISV
  • Different customers have different usage patterns, performance and service-level requirements

Most current database management offerings that support SaaS deployments, use a single database/server, and use replication, sharding and other methods to scale that database to match customer demands. However, this method is inherently flawed as a solution for ISVs looking to offer a SaaS application for several reasons:

  • A single database server model prevents an ISV from capitalizing on the key customer assumptions made above. For example, under the single database/server model, all tenants are impacted by any change made to your environment to address any change in requirements from a single tenant.
  • The complexity of this implementation is expensive and error prone.
  • Managed together, tenant data could potentially be exposed to other tenants in a variety of ways.

Worse yet is using a data-as-a-service provider – in addition the above problems, in this model ISVs have little or no control over the customer experience with their application, which makes it difficult (and sometimes impossible) to address entire classes customer problems and concerns (eg. performance problems).
In the end, using a single, monolithic database/server to manage all tenant database(s) in a SaaS environment does not make sense.

Given the above ISV customer assumptions, it does makes sense to have a single database for each of your customers. This allows you the maximum amount of flexibility in terms of

  • Keeping tenant data separate
  • Providing different levels of service (related to performance, availability, extra functionality etc…)
  • Dealing with the demands of those customers with larger databases without impacting other tenants.
  • Limiting the impact of infrastructure changes to a single tenant, or at most a small number of tenants

From a management perspective, having a single database for each customer means dealing with hundreds, or even thousands of individual tenant databases. Maintaining availability, doing backups, validating, etc… is a huge job. This is where SQL Anywhere OnDemand comes in. SQL Anywhere OnDemand allows an ISV to scale the database management layer by the number of databases. It provides an infrastructure layer that can help to manage thousands of individual tenant databases. This means that each tenant can have their own database, which provides many advantages, and allows the ISV to easily manage the administration of those databases.

By using the existing strengths of SQL Anywhere, the OnDemand console allows an ISV to manage each customer in an individual tenant database. Tenant databases can be managed individually or in groups, allowing you to do things like

  • Move a specific tenant database from a loaded server to one with less activity,
  • Send out an upgrade script to an entire group of tenants.
  • Backup and restore an individual tenant database
  • Bring new resources (hosts, database servers) online (and take them offline) as customer usage patterns and requirements change.
  • Restrict where a tenant database can be physically stored

The tenancy model of SQL Anywhere OnDemand is ideally suited for ISV’s looking to offer SaaS solutions to the market.

→ 3 CommentsPosted in: Cloud

SQL Anywhere Performance – “How can I make it faster?”

By Jason Hinsperger on February 6th, 2012

I hear the following questions at least once a week in some form from sales, support and customers:

“What changes should I make to my database to make it faster?”

“What should the specs be on my server machine that will run SQL Anywhere?”

“My application is slow. How can I make it faster?”

The answer to all of these questions is:
[Read more →]

Comments OffPosted in: Commentary · SQL Anywhere

Podcasts Make the Drive Less Boring

By Jason Hinsperger on January 30th, 2012

I have a long commute to work. Thankfully I do not have to sit in traffic when I’m on the road, but the drive does get monotonous (I have been doing it for almost 10 years now). It is completely worth it though, to be able to live in a place I love have a job that I (usually) love.
To make the time go by faster, and to give me the feeling that I am actually being a little bit productive on the way to/from work (and to stop myself from talking to myself…), I listen to Podcasts.
Here is a sample of some of what I consider work-related podcasts I listen to and have stuck with for a while now

  1. Buzz Out Loud – CNet’s news podcast. This used to be a daily tech. news show that has recently moved to weekly. The quality of content has suffered IMO, and I am not sure how much longer I will be listening to this one.
  2. HBR IdeaCast – weekly business analysis and advice podcast from Harvard Business Review.
  3. IT Conversations – A wide variety of technology focused topics, as recorded from conferences, radio shows, and interviews.
  4. Floss Weekly – A (usually) interesting weekly discussion of an open source project with the developers of the project. One of several TWIT network shows I like.
  5. Tech News Today – TWIT network daily news podcast. This has taken over as my goto news podcast since Buzz Out Loud went downhill. Not unrelated is the fact that one of the former Buzz Out Loud Hosts is the lead host for this program.
  6. This Week in Google/This Week in Tech/Windows Weekly – TWIT network weekly roundtable podcasts. I used to also listen to Security Now. But the signal to noise ratio got so bad that it drove me away (15 minutes of actual content vs. 45 minutes of off-topic random conversation)

All work and no play makes Jason a dull boy, so here are some of the less technical podcasts I listen to break up the tech. monotony.

  • Brainstuff/Techstuff/Stuff you Should Know – all awesome How Stuff Works podcasts.
  • Dr. Kiki’s Science Hour – Another TWIT network show, this is a weekly science podcast with a news segment followed by a detailed topic discussion with a subject matter expert.
  • Quirks and Quarks – A CBC podcast on various science and technology related topics.
  • Skeptoid – A weekly science podcast where the host analyzes and usually debunks popular myths and pseudoscience.
  • Freakonomics Radio – a great podcast on a variety of topics that really makes one think.
  • Gamespot – The Hotspot – weekly video game discussion podcast.
  • No Agenda – A political commentary podcast that (in my opinion) is half serious, half satire and usually entertaining.
  • Answer Bitch – an entertainment industry Q&A podcast that is usually humorous. Hey, I hear you judging! We all have our guilty pleasures, and one of mine is hearing about the vacuous lives of celebrities.
  • Slice of Sci-fi – obligatory sci-fi news podcast that mostly covers entertainment industry news related to sci-fi properties, but does occasionally discuss actual science news.

Comments OffPosted in: Commentary

Simple.Data and SQL Anywhere – First Impressions

By Jason Hinsperger on January 23rd, 2012

I was recently referred to the Simple.Data library by a SQL Anywhere user Richard Hopton (@richardhopton on twitter) who has created the Simple.Data.SQLAnywhere adaptor for Simple.Data. I’ve written down some of my impressions here after taking a look at it.
[Read more →]

Comments OffPosted in: Commentary · Development · SQL Anywhere

SVG support in SQL Anywhere

By Jason Hinsperger on January 16th, 2012

The support for spatial data in SQL Anywhere 12 includes the ability to generate result sets in the SVG (scalable vector graphics) format. This format is basically an xml representation of spatial data.
We leverage this support in DBISQL, to provide visual representations of result sets:
[Read more →]

Comments OffPosted in: Development · GIS · Spatial · SQL Anywhere

Who Needs a Client Interface?

By Jason Hinsperger on January 9th, 2012

The SQL Anywhere database server has had the ability to accept HTTP (and HTTPS) requests for a while now. It is a very cool feature that allows (among other things) the production and consumption of web services directly from the database server (ie. no web server required). While not designed to actually replace a web server, it can provide some of the same functionality without requiring you to go through the work of setting up, configuring and maintaining a web server like IIS or Apache.
The SQL Anywhere built-in HTTP server is simple on its surface – it can send and receive HTTP requests. It was introduced in version 9, but it was not until later versions that this feature has revealed itself to be extremely useful.
One particularly nice feature is along with the JSON support added to SQL Anywhere 11, it is possible to write client side applications without requiring any install of SQL Anywhere client drivers (ie. no ODBC, OLEDB, ADO.NET, etc…). All you need to do is start the database server with the http server enabled, create a couple of simple web service calls, and you are set to access the database from a variety of programming languages using their own built-in http libraries.

An example of this is the SQL Anywhere Server Monitor (available with the SQL Anywhere Developer Edition) which allows you to monitor the health and status of your SQL Anywhere and MobiLink database servers. The server monitor application is flashed based and resides inside a SQL Anywhere database. When you run the monitor application, it starts runs a local database server with the http option turned enabled and loads the server monitor database file, which makes a set of web services available. To access and use the monitor from any machine on your network, all you do is point your browser at the server.

→ 1 CommentPosted in: Development · SQL Anywhere

ISVs Can Improve Customer Satisfaction By Moving to the Cloud

By Jason Hinsperger on December 22nd, 2011

For an ISV, moving to a SaaS platform from traditional packaged software offers many benefits. One of these benefits is the opportunity to improve customer satisfaction. There are a few ways that this can be accomplished. Let me share 3 of them with you:
[Read more →]

Comments OffPosted in: Cloud · Commentary

ISVs Can Reduce Costs By Moving To the Cloud

By Jason Hinsperger on November 11th, 2011

For a change of pace, and to try something new, I decided to try my hand at writing a less technical post. Here goes nothin…
SQL Anywhere OnDemand Edition (codenamed “Fuji”, currently in beta) is designed to enable ISVs to take business applications to the cloud without compromising the functionality or quality of their products and services. However, as an ISV who has traditionally sold a packaged software solution to your customers, why would you want to move to the cloud at all?
[Read more →]

→ 3 CommentsPosted in: Cloud · Commentary · SQL Anywhere

Create a Heat Map with SQL Anywhere and SAP Crystal Reports

By Jason Hinsperger on March 2nd, 2011

There is a whole world of possibility available for visualizing your data spatially.
SAP Crystal Reports is a tool that helps you to create reports to visualize your data. Along with an intern, I was playing with it (or maybe ‘evaluating it to understand its capabilities with regards to SQL Anywhere’ would be a better way to phrase it…), and found that one of the things you can do is create ‘Heat Maps’, which is a simple way to visualize your data on a map without having to learn about or use spatial data in the database. Using Crystal Reports 2008 and SQL Anywhere 12, we were able to create a simple heat map report easily and quickly, allowing me to visualize the density of customers in the SQL Anywhere demo database across the US.
However, this was just the tip of the iceberg. You can move on from there to leverage spatial support in SQL Anywhere to create a variety of reports that help you to slice and dice your data in many different ways.

To plot the location density of customers on a USA map we first created some ranges, so that each geographic area (state) could be colour coded according to the number of customers in that state. That allows us to very quickly identify those states where we have a large presence, which can impact where we might plan roadshows and customer visits. It also shows us where we have relatively few customers, which may indicate untapped market opportunities.
You can imagine how you could use other metrics (like revenue) to derive similar kinds of insight from your data.

Using the Database Expert from the Standard Toolbar, I can open ODBC “SQL Anywhere 12 Demo” data source and see all of the tables in the database. Even though we aren’t actually using any spatial capabilities of SQL Anywhere, I used the SpatialContacts table because it has findable addresses in it.

Next I opened the map expert from the Standard Toolbar (Insert->Map)

I switched to the advanced layout and dragged the “State” column from the SpatialContacts table, into all three of the provided report fields (Geographic field, On Change of, and Map Values).
Then I selected “Ranged Map” from the Map Expert tab.

My report was now ready to preview (view->preview from the standard toolbar). Click for a larger image

Thats basically all there is to it. You can edit or modify the graph by right-clicking on it in the Preview tab; change the map or change the visible layers on the map (note that some layers like Ocean may cover other layers, preventing you from seeing your data).

→ 2 CommentsPosted in: Spatial · SQL Anywhere