Speak in Tongues!
Development Services -Our Technologies of Choice

At ARANYA, we stress standards and consistency.  After years of experience, we do not necessarily choose the most popular technologies.  Rather we employ reliable, widely understood and used technologies.  We thoroughly test all new technologies before recommending them to clients.  We are also constantly vigilant- researching technologies as they change and evolve so that our applications continue to progress and grow.



Database: PostgreSQL

PostgreSQL is a lot like Oracle.  It was recently (within the last few years) considered the most standards compliant database available.  It is open source but there are many companies that provide commercial versions or support for PostgreSQL.  Additionally, the development community is very engaged in the support of the database and responds quickly to questions.

We write our applications to be as standards compliant as possible.  As such, switching from one database to another requires only a very minimal amount of changes.  Recently we converted from PostgreSQL to Microsoft SQL Server and it only took about 4 hours to convert a full web application.

PostgreSQL supports foreign keys which are critical to ensure data integrity and aid in documenting the database structure.  They also aid reporting tools in creating reports quickly and accurately.

PostgreSQL also supports views and subqueries.  These help speed up data mining and reporting.  Until recently, MySQL did not support subqueries which was a significant barrier to creating robust and full featured reporting.

PostgreSQL supports triggers, stored procedures and functions.  While we do not use a lot of these features (they are usually not standards compliant), they do make it easier to maintain and build off of a bug free application.  We use these only when they make the application easier to build and maintain.


Server Language: Java with Tomcat

While Java has a reputation for being slow, Sun Microsystems has done a great job of addressing the issues of speed.  In many recent benchmarks, Java has even been found to be faster than rival technologies.  Furthermore, it is much easier to write a web site as a fully connected application in Java while PHP tends to be a bunch of disjointed pages that work independently.

PHP is great for a small application that needs to run in a shared hosting environment.  Java is best suited for more serious applications that need high performance tuning by well trained and experienced developers.  Java typically does best on servers that are dedicated to Java applications.  Java does not lend itself well to the shared hosting environments or to simple and quickly built web sites.

We choose Java for medium to large companies (or companies that intend to get large) as it is highly scalable and easy to build upon.  It is easier to debug and we have wonderful tools to help automate the process of building, testing and deploying Java applications to their destined servers.


Electroserver

Electroserver is a Java based server side engine that is designed to feed data to and from Flash clients and a server.  It is perfect for applications that need to send data directly to a Flash client whenever that data is available.  It was designed for chat applications and is used for a lot of multi-player web site games.  It will facilitate collaboration between users of your web site as well as interaction with the server’s database.


Application Language: Java

The data feed is a very small program that will need to collect the data and feed it to the server.  Our expertise is in Java and since we generally write servers in Java (web site and Electroserver code), it makes sense to keep everything in one language.

Java can run on Linux, Windows and Mac.  


Standard Libraries:

Struts

Struts has been around since the late 1990’s and is a very solid platform.  It is one of the most widely used Java web application frameworks.  We have evaluated many other technologies including Spring, Tapestry and Java Server Faces and are confident that Struts is, if not better, at least as good as each of these alternatives.  Struts is also the most common to find when looking for experience on resumes for Java developers.

JDBC

Every Java application that talks to a database uses JDBC.  It allows you to write a application that can talk to any database by simply swapping out a single library file and changing a single line in a configuration file.  This is what allows us to easily switch between PostgreSQL, MS SQL Server, Oracle, DB2, Sybase and MySQL (almost every database has a JDBC driver that works with that database).


Log4J

In order to debug and monitor for errors in production, it is very important to use a strong logging tool.  We incorporate Log4J, one of the most widely used Java logging utilities, for all our applications.  We also have a simple plug in that helps us monitor for and fix bugs in development as well as production.

JUnit

As applications grow, automated testing becomes imperative.   We use JUnit to help automate testing.  Right now our use of JUnit is restricted to the biggest and hardest things to test but this will become more thorough as our Software Factory grows over the next 12 months.

 

Web Server: Apache

Apache is used to handle HTTPS/SSL connections to the web site and to help manage simple requests to the web server.  This application is mostly used as a pass through to Tomcat and many people say it is not needed but we have found it useful to provide simple solutions to problems that Tomcat is not build to handle well.

Apache is one of the most widely used web servers available, outdistancing even Microsoft’s popular IIS web server by a wide margin.  Apache is very stable and configurable, takes very little memory and is fast.  When you have performance problems there are ways to leverage apache to scale your web site up.  When you have high bandwidth usage, there are plug ins to help eliminate bandwidth waste.  Apache contains a lot of logging capabilities.  There are also dozens if not hundreds of Apache plug ins that can be downloaded and hooked directly into Apache.  It is simply the best web server available.


Web Client: Skinable HTML/CSS

For the last three years, Aranya has worked hard to come up way to change the overall look and feel of a website with just a few simple tweaks.  This allows quick and easy skinning of the web sites including the change of colors, fonts, images and even the overall layout of components for the web site.  We do this through HTML and CSS which are industry standards.  We follow principles defined by popular web sites like CSS Zen Garden.  We also have developed our own styling guide to help create highly browser compatible CSS styles.


Multimedia: Flash and ActionScript

Flash has become the standard on the web for multimedia and animation.  It is almost an expected component for any professional web site.  It generally runs on low resources within a browser.

ActionScript is the language used if your Flash needs any programming.  Any Flash programmer will know ActionScript.  It is a lot like JavaScript so knowing one makes it easy to learn the other.  Additionally, Adobe (the company responsible for Flash) has made it publicly known that they intend to eventually merge ActionScript with JavaScript.


Admin: JavaScript and AJAX

We use only a minimum amount of JavaScript in our applications and try to restrict that to the administrative interface.  Web applications today use a lot of JavaScript.  However, JavaScript is hard to debug and maintain except in small scripts.

Using JavaScript (and AJAX which is just a form of JavaScript) is advantageous because it helps make a more dynamic and user friendly web site.  We use JavaScript to enhance the user experience and try to use publicly available JavaScript libraries.


Server OS: Linux (but will work on Windows and Mac)

For the server, we prefer to use Linux as it has a very low overhead, is unlikely to crash or need a reboot and it is free.  There are also a number of tools and command line capabilities we use to help maintain our servers.

We do develop all our applications on a Windows platform.  Since we use Java, we rarely have difficulties getting the applications to run on Linux and if we do have issues, it is a simple configuration issue that is easily fixed.


Evolve Your Real Estate
Web Site Development

Get Exactly What You Need
Custom Software Development

Experience Deliverance!
Software Project Management

Enlist a Yenta!
Systems Integration

Forge Your Framework
Database Development and Architecture

Speak in Tongues!
Development Services

Rock Our Mad Skills!
Software Solutions