Alpha Anywhere Application Server for IIS – an Overview by Kurt Rayner

Any overview by Kurt Rayner, VP of Research and Development at Alpha Software Corp

Kurt Rayner drives product architecture in areas including object modeling, language, code generation, and database integration. With more than 25 years of experience, Kurt’s passion is creating architectures for tools that empower developers to build sophisticated, cost-effective business applications. Prior to joining Alpha, Kurt ran a software development consultancy, directed the development team for PowerBuilder at Sybase Inc., and developed software and managed development teams at Boston Financial Data Services, Cullinet Software, and Foxboro. He holds master’s degrees in computer science from Boston University, and education counseling from Boston State College, and a bachelor’s degree in psychology from Barrington College.

The development team at Alpha Software is constantly looking for better ways to create, publish and deploy database applications for business.

The development team at Alpha Software is constantly looking for better ways to create, publish and deploy database applications for business.  If you are a long time Alpha  customer, you saw your applications evolve from dBase DBF tables to industry standard SQL databases.  Alpha Five added custom support for many database vendors as well as portable SQL to eliminate the need for porting between databases.  When web applications became commonplace, Alpha Five applications moved to the web and the rebranded Alpha Anywhere product line now embraces mobile devices as first class citizens.  From web services to geospatial facilities, our goal has always been to embrace and integrate enterprise grade technology while making development and deployment easier, faster and more cost effective!

One of the most recent innovations from Alpha Software is the Alpha Anywhere Application Server for IIS.

This new product merges the application server that currently runs your web applications with Microsoft Internet Information Services (IIS); replacing our own proprietary HTTP page server component with an industry standard.Alpha Anywhere Application Server for IIS integrates tightly into the IIS pipeline architecture.  This means that authentication, authorization, session management, secure communication (SSL/TLS) and thread and process management are all handled by IIS.  The Alpha Anywhere engine continues to run your web applications, access data sources, generate pages and respond to AJAX calls from clients just as it has before.

Microsoft Internet Information Services

Web applications running under Microsoft Internet Information Services (IIS) are robust, secure, scale-able, flexible, and maximize machine utilization.  Let’s look at each of these benefits.

IIS automatically manages a robust ecosystem of processes and threads for multiple deployed web sites.

IIS starts and manages one or more processes for a single application.  If a process fails, IIS automatically restarts it.  There are options for periodically restarting processes based on time, number of requests and so on.  If the application configuration changes, new processes can be brought on line without terminating existing processes until they finish responding to requests.  This makes updates relatively painless.An IIS server can host multiple web sites.  These web sites can contain multiple applications.  To protect applications from interference by other web applications running on the same machine, they are assigned to what is called an “application pool”.  An application pool runs one or more web applications and can be configured to run one or more processes.  If an application causes a process to hang or fail, other processes and application pools will continue to run.  IIS will automatically start a replacement process for the failed instance.  Application pools can also be assigned unique identities (in effect – users) further limiting access to system and application resources.

Session state management under IIS is very flexible; something made possible by using pluggable providers. For the simplest configuration you can choose in-process sessions.  When the server stops, the sessions go away.  If you are running more than one server for your application, you need to be able to share session state between those servers.  For multi-server configurations you will want to use the IIS Session State Server, SQL database providers or, even better, providers for products such as CouchBase and Redis to maximize performance.

Authentication and authorization under IIS are also very flexible.

Secure communication (SSL/TLS) is managed by IIS using certificates installed into the Windows certificate store, or from a shared configuration.  Keeping your windows server current on updates will help reduce the risks inherent in doing business on the internet.

We’ve already talked about the multi-process feature of IIS called “web gardens”.  Although we won’t discuss it here in any detail, there is also a “web farm” facility that scales a single configuration (and deployed applications) over multiple machines.  Alpha Anywhere Application Server for IIS can take advantage of that service as well.

Transitioning from Application Server to Application Server for IIS 

Flexibility and complexity often seem to go hand in hand.  The more options you have, the more you have to get right.  IIS is no exception, but we believe that the tools and the environment Microsoft provides make this a great choice for your deployments.If you are running your application on a single server, you may be tempted to use the classic Alpha Anywhere Application Server instead of Alpha Anywhere Application Server for IIS.  While this may initially be the right choice, most production installations end up adding products such as AlwaysUp™ along with load balancers and multiple instances of Alpha Anywhere Application Server and it can only get more complicated from there.Once the load for a web application exceeds the capacity of a single application server instance, the configuration becomes more complicated.  Adding a load balancer is required to support multiple processes or multiple machines.

Alpha Anywhere Application Server for IIS eliminates the need for add-on products like AlwaysUp™ and load balancers for single machine deployments.

While you can change the number up or down, we default to 5 processes per application pool.  You get multiple, robust instances without the configuration hassles.  If you run multiple machines, you will still need a load balancer, but you only need to forward the primary ports to each machine. If you have multiple web sites, you can also service them from a single IIS configuration using a feature called Server Name Indication (SNI).Alpha Anywhere now recognizes IIS as a publication target.  There are a number of options for importing and publishing security information as well as deploying directly to IIS, and using Microsoft WebDeploy™ services. This can make iterative development even easier.

And finally, by fully utilizing each physical or virtual machine you deploy, you can reduce overall cost.  This includes the purchase, care and feeding of the machines, but can also reduce the number of licenses you need to purchase.

Licensing

Alpha Anywhere Application Server and Alpha Anywhere Application Server for IIS are licensed by machine (virtual machines count as machines).  The price of the license is determined by the number of CPUs Microsoft Windows™ reports to Alpha Anywhere (note that on hyper-threaded machines from Intel, the CPU count is double the number of cores).  You must purchase a license that supports at least the number of CPUs reported by Windows™.

If you are scaling across multiple machines, especially in the cloud, your server instances may be started and stopped as load varies.  To simplify management of licensing in these environments the Alpha Anywhere activation system includes multi-machine licenses.  Both Alpha Anywhere Application Server and Alpha Anywhere Application Server for IIS automatically reactivate at tunable intervals so that as one machine is taken out of service and replaced with another one, the new server picks up the activation.

Closing Thoughts

We are very pleased with the early experience our customers and we ourselves have had with Alpha Anywhere Application Server for IIS.  In fact, we are so confident of the strategic value of this product that we are building our upcoming cloud product on Alpha Anywhere Application Server for IIS.  For all of the reasons discussed above, we chose to, and we believe you will want to deploy even the simplest applications, but especially scale-able production applications, on Alpha Anywhere Application Server for IIS.

Be sure to check out these related blog posts re the Alpha Anywhere Application Server for IIS