It’s no secret that manufacturing jobs are being outsourced over seas. The average North American worker just cannot compete with the wage and hours offered by even the most labor regulated third world nation. There’s also nothing new about the outsourcing of software products and technology research, the average developer in Canada with 3 years experience stands to make a yearly salary of $50 000 (www.payscale.com), that same developer will bring in $9000 a year in India (www.payscale.com) – how can we compete with that? The answer is a service based economy.
Every year we’re told that our economy is shifting to be primarily service based, but what does that mean? And how does it affect your company? That’s where Service Oriented Architecture (SOA) and Software as a Service (SAAS) come in. It relies on the principle that companies do not want the headache and cost of maintaining a software product. These often include having to employ a team of IT professionals to maintain application servers, backup systems, databases, and responsible for keeping up with software updates.
Instead, a software vendor will develop a gateway for various clients to use software for a fee. Traditionally, a company would pay big dollars to develop a large scale software solution, and then many more dollars to maintain that solution. With models like SOA and SAS, software vendor will license the use of their software, thereby providing a ‘service’ to their clients.
Let’s take an example, your client -- a financial services company has a database that contains detailed information on financial sector employees working for the government in over 100 countries. This company specializes in training these employees by working closely with central banks and government owned financial institutions, primarily of lesser financially developed nations. Employees are constantly changing positions, leaving their organizations etc. and due to legal reasons, your client must purge the data of an employee that has changed positions and rebuild it with the new information every time this occurs. With over 10 000 records in the database, this can become very cumbersome. Your client employ’s many people that interact with potential customers and are very in tune with their movements, however, they will never know how to run queries and commands to edit information in the database and for obvious reasons, your client does not want to hire technical people whose only job is to update the database to reflect constant re-occurring changes.
Your client needs a solution, enter SaaS and SOA. In the interest of keeping the example short, let’s assume that your client simply wants to delete records that have changed positions and create new records for potential students. Using Service Oriented Architecture, you build web services that give your client the ability to interact with data in database, from any computer connected to the network (intranet or internet). These web services are hosted on a secure server and their only job is to receive requests and send responses to desired consumers. Upon signing onto their secured site, the client is presented with two options, ‘Delete Users’ and ‘Create Users’. When the client clicks ‘Delete Users’ a message is passed to a web service hosted on your server that requests the list of users in the database. The web service then makes the necessary call to a data access layer that gets the list of users from your database, returns it to the web service which passes the list to the web site and then finally displays that list in a list box. Your client can now click on any name in that list and hit the ‘Delete’ button to pass a request to the web service with the user id of the person to be deleted. The web service sends the message to the data access layer and the deletion is confirmed. Likewise, a user is created by passing a message to the web service with all the information required to add a new record to the database. The web service passes along the message and the new record is added.
The traditional approach would be to develop a software solution that sits at the office and needs a team of people to maintain it and the accompanying database, your client can hook in to your system at any time, from anywhere and get all their work accomplished. You in turn can charge a monthly fee for the use of the system, the housing of the database and the maintenance that goes along with each. The beauty of this system, if it is done correctly lies in the reusability of the web services. Since web services don’t care who calls them, you can have many clients consuming the same web services, at no extra work for you, saving implementation costs, maintenance costs, updating costs etc. that would normally have to be done at each install point. The basic and often hacked together code developed by companies abroad could not compare to the services being offered by your company. No matter how much cheaper it is for a company to have their code developed overseas, it would never compare to paying a monthly fee for using a service that can be altered and updated to meet your client’s needs.