Understanding Software-as-a-Service (SaaS)

The world of software and information technology throws up jargon at an explosive rate today. It is hard to keep up with them and even harder to understand what they mean. One such term is SaaS or Software as a Service. Let me explain what it means and how it is important to you.

What is SaaS?

SaaS refers to a software that MANDATORILY has the following properties.

  1. The core of the service runs over the Internet on a server, while the user works with a bare-bones tool on his/her device.
  2. Usually nothing is installed on the user’s device and a browser is used to connect to the service. Even if something needs to be installed, it is just a small app with a user interface and a set of functions that connect to the Internet to exchange data with the service’s server. No service functionality resides inside the app.
  3. No storage happens on the user’s device. All of the user’s data is stored on the server securely.
  4. The user needs to connect to the Internet and login to an account in order to use the service and access his/her data.
  5. Due to the service being on the Internet, a user can access his/her data from any device from any location, be it on a smartphone from a car seat, on the home desktop computer or on a laptop from a resort.
  6. As a result, changes made from one device are almost immediately available on another device.
  7. Functionality can be extended on a daily basis because all the functional code is on the server. The user doesn’t have to install a new version on his/her device. In case of a web application via a browser, even the UI can be updated frequently without the user having to install anything.
The layers of SaaS
The layers of SaaS

This is contrast to a traditional desktop software application, where a huge software application with UI and all the functionality is installed on the device’s storage, all the files are stored locally on the device’s storage device and the user needs to remember to copy the files to a portable storage unit such as a thumb drive in order to transfer them from one device to another. Changes also need to be synced among devices every time. Changes to functionality are released as a new version of the application and they too need to be installed on the server.

Additional features

Apart from the above features which are mandatory, Saas MAY provide some of the following features

  1. Limited offline access to use the service when Internet is down.
  2. The ability to download files to local storage.
  3. The ability to connect one SaaS to another in order to use the features / content of one in another. E.g. Pixlr can use your Google Drive as storage.
  4. Ability to share your files with other accounts as read-only or read/write.

Examples of Saas and equivalent desktop applications

Real examples of Saas are as follows.

DesktopSaas
Microsoft WordGoogle Docs
Microsoft OutlookGMail
Adobe PhotoshopPixlr
Files and directoriesDropbox

Where SaaS fails

  1. The biggest failure of SaaS is when going for long periods of time without Internet. While some SaaSes allow you to edit your content offline, your content will not be synced to the server. So if another person makes changes to the same files from another device, there will be conflicts.
  2. An insecurely set up SaaS can cause a risk where contents can be snooped and even downloaded by unauthorised persons.
  3. All the data is in the hands of the company providing the SaaS and not in your control. A change of policy or an infrastructure collapse can lead to loss of your data.

What you need to build your own SaaS

If you are a company who wants to build your own SaaS, the following should be your technical know-how. There are further requirements such as strong policies and legal agreements which are beyond the scope of this post.

  1. Setting up your own server either in physical form or on a cloud service such as Linode, Rackspace, Amazon Web Services or Google Cloud Compute.
  2. Complete knowledge of HTTP protocol. The app on the device and the server communicate using HTTP.
  3. Securing your HTTP communications using HTTPS.
  4. Programming on the server side using one of NodeJS / Python / Java / Ruby / PHP / .NET.
  5. Using server side file system and databases for data storage.
  6. Using OAuth to validate users who log in and to reject users who are either no signed in or are using invalid credentials.
  7. Using OAuth to allow other apps and users to access a given user’s data.
  8. If you are making a web application for the user’s browser, then your knowledge of HTML, Javascript and CSS should be strong.
  9. If you are making platform-specific apps, then here are your requirements.
    1. Java / Kotlin programming for Android
    2. Swift programming for iOS
    3. .NET programming for Windows
    4. Cocoa application programming for MacOS.
    5. QT / GNOME using C++ or Python for Linux.
  10. Usage of Continuous Integration and Continuous Delivery to roll out new versions.
  11. System administration for the following requirements.
    1. Monitoring the server to make sure that things run smoothly.
    2. Frequent backing up so that data can be recovered.

Conclusion

Being the trendsetter of the last decade, SaaS is now commonplace since 2010 or so, when rich web applications, Android and iOS took the world by storm. There was a need to access apps and their data from anywhere to which SaaS provides the solution. And that need and the success of SaaS is not going away anytime soon.

Understanding home virtual assistants

Home virtual assistants have been a rage lately. Since the release of products like Google Home and Amazon Echo, many people dream about sitting on a beanbag or a couch and requesting… no, ordering… a virtual assistant to do things for them. While home virtual assistants cannot match up to i-Robot yet, they can be very capable. Let’s look at the current state of home virtual assistants today. Here’s a run-down on these state-of-the-art devices in the form of an FAQ.

What is a home virtual assistant?

A home virtual assistant is a small box, typically a speaker called a ‘smart speaker’, which can connect to your home’s WiFi network for Internet and respond to your voice requests by performing or activating an action. Home virtual assistants connect to a software called Virtual Assistant service which is an online service, in order to fulfill your request. A home virtual assistant listens for sound all day and activates itself when it hears the activation word. Following the activation word, it listens intently until you stop speaking. Then it connects to the online virtual assistant to understand your command, perform some activity and respond to you once the activity is done. Amazon Echo and Google Home are the leading home virtual assistants in the market today, but there are plenty more that are either already released or under development. Microsoft is soon coming up with Invoke.

What is activation word?

An activation is a word that the home assistant is programmed to listen to, so that it knows that the next sentence is a question or a request. For Amazon Echo, it is “Alexa”, for Google Home, it is “Ok Google”. Another famous voice activated assistant is Apple’s Siri activated by the word “Siri”.

What is a virtual assistant?

Sprache - Schall

Virtual Assistant is an online software service that parses questions and requests spoken in human language and converts them into something actionable in the digital world, such as an activity or an answer. The range of requests that can be issued to a virtual assistant is dependent on the company that produces the virtual assistant and how long and how well the software has matured. The notable virtual assistants are Google Assistant (powers Google Home, Android phones and tablets and Chrome browser), Amazon Alexa (powers Amazon Dot, Echo and related products), Apple Siri (powers iPhone and iPad) and Microsoft Cortana (powers Windows phones and Edge browser). A virtual assistant is only available online on the respective company’s servers and a home assistant device needs to be connected to the Internet in order to fulfill requests. Unlike a home virtual assistant hardware which is dependent on your voice commands, a software virtual assistant can fulfill typed requests as well. The typing interface is typically on a phone app or a web browser.

I like Amazon Echo Dot’s sleek look. It fits beautifully with the rest of my study table, but I prefer Siri engine. Can my Dot use Siri for answers?

No chance. Virtual assistants are very new and each company has approached them differently. There are no publicly established standards. Furthermore, voice recognition works correctly after a lot of research and effort, so every company files multiple patents. The technology is closed and proprietary. Each company’s product talks solely to its respective virtual assistant software only. If you like Siri, then you must wait for Apple to release their own home virtual assistant. Echo Dot can connect to Alexa only.

However, one company does stand out in terms of availability on multiple platforms. Google Assistant is not restricted only to Android devices. They have an app for iOS as well. So on iOS devices, you can use either Google Assistant or Siri.

What exactly can a home virtual assistant do for me?

The answer depends on the vendor. However here is a broad spectrum of what virtual assistants can do for you based on current technology.

  • Set alarms and reminders
  • Create to-do lists
  • Answer questions about time, calendar and weather
  • Read out the latest news from supported news services
  • Perform mathematical calculations like unit conversion, time zone and calendar conversion and currency conversion.
  • Play requested music from online music services such as Spotify.
  • Give you live sports updates when important moments happen. You can also ask for scores from finished games.
  • Activate a compliant smart TV to play a requested movie online using a movie service like Netflix.
  • Order food via online food ordering services like Zomato.
  • Reserve seats in restaurants, movies or theatres online.
  • Guide you through recipes and workouts by referring to online guides.
  • Control your smart electrical appliances (by Nest, WeMo, Phillips, etc) such as air-conditioner temperature, thermostat, smart dimmers, coloured lamps, etc.
  • Post messages on social media (Twitter, Facebook, LinkedIn)
  • Make calls over Internet using apps like Hangouts or Skype.
  • Use a service like IFTTT to use services not already covered by the home assistant’s core functionality.

Is a home assistant really useful?

This depends on your lifestyle. Always check the functionality of different assistants and make sure that at least 50% of what you do during your typical day is covered. A home assistant is supposed to make your life simpler by automating your lifestyle using simple commands. If the assistant doesn’t cover your needs or doesn’t work as advertised, then you have a problem. If the assistant has you barking more commands than necessary then your problems aren’t being solved. Similarly, if you are having to change your lifestyle so that you can use your home assistant better, then you are giving in to the whims of a particular technology solution and a particular company.

How can I get my hands on one?

You can check out Amazon Echo or Google Home, which are in the market right now. Alternatively you can browse through iotlist to find devices which may fit your need.

As a closing point, where is this technology headed?

This is anyone’s guess. But if you ask me, in future, there will be apps built around voice input and virtual assistants, just like mobile apps are being built today and the space will get its share of apps, some of them vanishing due to failure and some of them becoming a hit with the consumers. Prediction has not been a good way to gauge technology industry and as with everything else, we have to wait and watch.