Server Applications

Server Application Development by Info Rhino

This page is all about how server applications can help you. We will explain what a server application is, and the many ways you can benefit from it.
Info Rhino has developed numerous small applications for clients and for ourselves. We pay special attention to when an existing application can be adapted or used, versus when there is a need to develop something completely new.
 
Throughout our website, we have covered applications we can imagine people using. These people are generally not technology experts, some are power users, and are using this software to be more productive. We have to be honest and know that if there was a magical way for users to not need to interact with software - they rather wouldn't. How do we know, because our users tell us? We, ourselves, use software all the time and are always thinking of ways to avoid spending lots of time using it.
 
For customers in the past, we have developed Reporting Services reports (a report generator that runs on a web browser) for users and they say, "Can it be automatically produced"? Then, the user may say, actually, "I am too busy to read the reports some days, can you create a way to automatically send invoices to our customers?"
 
At Info Rhino, the bulk of our development work is to do with data, and most of that time is spent working with specialised vendor applications or building our own applications to do that.
 

Glossary on server applications

About server applications

A server is a computer, typically not accessed by end users, and performs specific tasks automatically.
Server applications can (not always) have graphical user interfaces, but they tend to be much more technical. Often, server engineers and other specialists will prefer to avoid using screens altogether and write code instructions instead.
For many people, it seems hard to imagine applications exist which possesses little or no end user interface. Most applications are not front-end user applications. Developing user interfaces is time intensive and therefore expensive, often, we want applications to run independently of user input.
 

Types of server applications

Command Line Interfaces

We know of these as .Net console applications. Typically, these are a simple dialogue box which is programmed to just run or react to user input. Often, the application is started and the user has the ability to set configurations. A simple example is to do the following;
copy "C:\Invoices\*.csv" "C:\PaidInvoices" . Somebody wrote a program to allow users to specify how to manage files on a computer.
At this point, we may wonder, what is a desktop application with a front-end - a Graphical User Interface (GUI)? It still starts life as a console application.

Services

Some applications need to be continuously awake and so applications have been written to run as services. This is not to say they cannot stop running or gracefully exit, but the intention is for services to exist long enough to be available to do things upon instruction.

Example server applications you may know about

Web server

Web servers are what produces and manages delivery of information over the web and intranet. A web server may accept users wanting to manage data in a database.

Database servers

Databases nearly always run as a service, managing interactions of users who are trying to Read, Create, Update, and Add data to databases. 

Email servers

Email servers, as it can be imagined, are to do with managing emails.

Common elements found in many server applications

Protocols

A familiar theme is emerging, there are always applications installed on a server communicates with other applications. Most typically, these server applications communicate using Protocols. A protocol is a common mechanism by which information can be transmitted and received between the same or multiple agents.
An example is the Simple Mail Transfer Protocol, which is one of the many protocols for email.

Security

There is, or should always be a focus on security wherever information/data is transmitted between server applications. One way to improve security is to encrypt data, use certificates to encrypt data, other mechanisms involves firewalls.

Logging and auditing

Because server applications are continuously doing work, acting upon instructions, waiting for commands, managing errors, it is vital for logs and auditing to be capable of recording these events that occurs.
 

Some examples of server applications we have built for clients

JIRA Data Warehouse Integration



Our client, a leading asset trading exchange wanted a mechanism to pass information between the Trade Analytics Engine and JIRA. We configured JIRA to accept specific fields and have certain screens. We wrote additional reports, and applications to maintain the state of the information and to prevent duplicate results being logged. One of the applications sent and received JSON objects with JIRA. These applications were written in .Net/C#.

Dynamic calculation engine



We were tasked with creating a library to allow dynamic aggregation of data to be undertaken as requests were made. This library was embedded into a larger system to give control to that system in deciding what to aggregate. A data model was added to the database to act as a store for this information to be used by additional calculation engines.

Log File Analytics Engine



A top ten global Investment bank wanted a log file analytics engine to allow them to understand the status of their price data feeds. We wrote a C# and SSIS application to allow for highly configurable extraction of text and information to be delivered to a database. In addition, we implemented a data warehouse, SSRS dashboards, SSRS Subscriptions, and cubes (SSAS) to permit complete oversight of their global data loading processes.
One of our highlights for sure.


Conclusion on server applications

This page was included to try and give you an overview on an area not really discussed that much by other solutions providers. Not a criticism against other providers, but we wanted to give you a basic overview of what server applications are.
This page is page is certain to raise some questions, so by all means, feel free to reach out here.