Stephen Smith's Blog

Musings on Machine Learning…

Posts Tagged ‘deployment

Installing and Deploying Sage ERP Accpac 6.0A

with 23 comments

We’re only a month or two away from the launch of Sage ERP Accpac 6.0A (for details see: https://smist08.wordpress.com/2010/09/25/preparing-for-the-sage-erp-accpac-6-0a-launch/). A major goal of this release is to provide a smooth upgrade transition from 5.x to 6.x. There has been some concern that the new Web based components will make the product harder to install or increase the hardware requirements of the product. This blog posting will go into some detail of the parts that are the same, the parts that are new, what is optional and what you need to watch out for. We’ve put a lot of effort into the Accpac installation program to make the process as transparent and simple as possible. But sometime it’s helpful to know what’s going on behind the scenes and what is being setup for you.

Accpac Classic

If you don’t want to worry about the new Web technologies, you don’t have to. From Accpac’s installation screen you can de-select the “Portal” feature and install just like you always have.

Of course you can always add the Portal feature at any later time.

Accpac Web Portal

Whether you are doing a Workstation Setup, Terminal Server or Local programs installation, you only want to install the portal in one place on the server that will be your IIS Web Server. On all other computers if doing a full installation, be sure to un-check the Portal as an installation option. If you want to run VB UIs from the new Portal, you do need to have the ability to run the classic Windows Desktop via a workstation setup or local install.

Hopefully you will want to use the new Web Base Portal with all the new functionality available there. If you have worked with SageCRM 7.0 then much of the deployment and installation is the same. We both use a combination of IIS and Apache Tomcat to process Web Requests. In fact, when we wrote our installation script, we copied all the sections for Tomcat, Jakarta and IIS from the SageCRM installation script and just modified them for Accpac. So much of the installation is actually field tested since it has been used for many SageCRM installations.

Below is a diagram showing the main components involved in a Web Portal deployment.

IIS

If you are installing the new Web Based Portal or using Quotes to Orders from SageCRM, you need a Web Server. Hopefully you already have such a server being used as a file server or as a SageCRM server. You will install the Accpac Portal here. On this server computer you need to install IIS before you install Accpac. Since IIS is a Windows component, we can’t do that for you from our installation program. You need to either add this as a role to your server or add the Windows component from the control panel. Note that this excludes you running the new Portal on a laptop running Windows Home edition, since it does not have IIS as an option.

You don’t need to do anything beyond adding IIS, our installation program will add all our components to IIS and will configure IIS to work with Accpac. This is true if you are running internally, if you expose this Web server to the Internet or you want better internal security then you have to do a small amount of work to configure the Web Server for HTTPS and add a digital certificate to correctly identify the server to clients.

Below are the virtual directories and application pools added by the Accpac and SageCRM installation programs to IIS.

Tomcat

Our new SData services that process the various SData Web Service requests are programs written in Java (https://smist08.wordpress.com/2009/11/24/sdata-in-sage-erp-accpac-6/). To run this Java program we require a Java Application Server, which is a program that receives web requests and passes them to Java classes to be processed. The Java application server that we use is Apache Tomcat (http://tomcat.apache.org/). Behind the scenes our installation program installs Tomcat in C:\Program Files (x86)\Common Files\Sage\Sage Accpac\Tomcat6 and adds it as a Windows Service. Hopefully you never need to know this program is even here. Hopefully it is all setup perfectly and you will never need to touch it.

Below is the Windows Services dialog showing our usual service for handling .Net Remoting requests and our the new service that is the Accpac instance of Apache Tomcat.

Jakarta

Our installation program adds another component called Jakarta to connect IIS up to Tomcat. All the installation and configuration of this component is done automatically by the installation program and you don’t even have to know it is there. Basically we want IIS to serve up all static web content like HTML pages, JavaScript pages, cascading style sheets and various bitmaps. But we want any SData requests passed on to the Apache Tomcat Java application server running the Accpac SData processor.

Portal Database Configuration

The new Accpac Web Portal has its own database that it uses to store various information like you shortcuts and preferences. So you need to configure this database from Database Setup which now has a “Portal…” button which leads to the following dialog.

HTTPS

If you want to expose your Accpac Portal to the Internet or just want extra internal security then you should configure IIS to use HTTPS rather than HTTP. To do this you add an https binding to the default web site bindings. When doing this it wants a digital certificate to identify the server. You need to get this issued from Verisign (www.VeriSign.com)  or another vendor. Otherwise the Browser will complain about accessing this site, since it won’t be able to prove who it’s talking to. Additionally you will then want to disable HTTP so access only happens through a secure connection. Then you would follow all the other security best practices for managing a Windows Server (like be behind a firewall and have all unused services turned off). Often it’s worth running a tool like NMap/Zenmap (http://nmap.org/zenmap/) to confirm that you aren’t running anything unexpected that could be hacked.

Summary

Hopefully this gives some idea of the various issues and considerations installing Sage ERP Accpac 6.0A. If you are familiar with SageCRM 7.0 then this should all be old hat. Otherwise give it a try; it’s not nearly as hard as it might look.

Written by smist08

October 2, 2010 at 4:15 pm

Sage ERP Accpac 6 Deployment

with 17 comments

With the next version of Sage ERP Accpac, we are moving to the Web. What does that mean for deployment? For workstations that’s easy, there is none, you just need the URL to point the Browser at. For Servers it’s a bit more complicated. This will all be setup for you by the Accpac Installation, but what are the components running now? What Web Servers and Middleware are we going to be using?

First which Web Server will we be using? Accpac itself isn’t dependent on the Web Server and will run with most Web Servers; however, SageCRM depends on Microsoft’s Internet Information Server (IIS). Hence we will be installing and supporting Sage ERP Accpac 6.x on IIS.

However Accpac doesn’t run from IIS like SageCRM does. SageCRM was developed from the ground up as an IIS add-in called an ISAPI add-in. This means SageCRM is a DLL that integrates directly into IIS and uses the IIS API for support. Sage ERP Accpac 6.x has been developed based on the Google Web Toolkit. This tool kit works best if the Server side of things is written in Java. IIS does not directly support running Java programs. To run Java programs to answer requests from the Web you need a Java Application Server. The function of a Java Application Server is to connect a set of Java classes up to URL’s, so when a Browser enters a URL that goes to the Java Application Server, this server provides the middleware to figure out which Java class to call and to call it in an appropriate manner. The Java Application Server that we are using is Apache Tomcat. However, again we haven’t done anything that ties us to this Java Server over any other, we just need to pick one to install and support, and Tomcat seems to work really well for us.

So how do Web Requests originating as URLs entered into a Browser make it to Accpac? The Apache foundation has created an IIS ISAPI add-in called Jakarta that will forward any requests meant for Tomcat received via IIS directly to Tomcat. It has a very high speed low overhead way of doing this to keep performance high. Basically Jakarta is configured with a set or URL patterns to forward and then it does this. Jakarta also can maintain multiple instances of Tomcat and act as a foundation for load balancing.

The URL requests, which we saw previously, are using the SData protocol. These SData requests are received into the Accpac Java Servlet (or program) that processes SData. This program running inside Tomcat then parses and processes the SData requests which are translated into Accpac Business Logic Layer (or View) calls. Calls to the Views are made through a Java Native Interface (JNI) Layer to execute as normal. JNI is the mechanism inside Java to allow calls to underlying operating system DLLs (or SOs in the Linux case). And then the Views call through to the database in the normal Accpac manner.

Below is a simple diagram of the main processes involved.

Since IIS is receiving the Web Requests, it is IIS’s job to handle the security of the connection between the Web Browser and the Web Server. Usually IIS will be configured to only accept connections via TLS (Transport Layer Security, previously known as Secure Socket Layer (SSL)). That means the Web Server will require a digital certificate to properly identify itself and avoid many Browser warnings. Fortunately setting up TLS for IIS is quite simple and with modern computers the overhead of this encrypted communication isn’t too bad.

Otherwise Accpac is installed on the Web Server as a normal server install and the installation of the database (probably SQL Server to share with SageCRM) is the same as previous versions of Accpac.

IIS and SQL Server will need to be installed first. Accpac’s installation program will install and configure Tomcat, Jakarta and all required Java components. The SQL Server can be the same or a different server from the IIS server depending on the server load.

Hopefully this give a taste for how Sage ERP Accpac 6.x will be deployed for all the new Web based screens.

Written by smist08

January 30, 2010 at 9:02 pm

Posted in Uncategorized

Tagged with , , ,