Archive for January 2010
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.
SData is Sage’s new Web Services standard. It is documented in full at http://sdata.sage.com/. For Sage ERP Accpac 6.x, SData is the interface used by the browser based UI pages to communicate with the Server. Like in Accpac 5.X where the Accpac COM API was the interface used for all UI to Business Logic communication, this role is taken over by SData in 6.x. This means that there is a complete robust REST based Web Services interface to the Sage ERP Accpac application. Anything that can be done from an Accpac User Interface Web Page can also be done via any other program making SData Web Services calls.
REST based Web Services are very simple in how they are constructed, they are built using current Web Standards such as HTTP and Atom. For instance the screen shot below shows typing:
into the URL field for the Chrome Browser.
This URL is an SData request, it is sent to the server bcraccdemo and the application SDataServlet running there. The rest of the URL is then processed by the Accpac SData provider to return the correct data for customer 1200 (Ronald Black) in XML Atom format, which is then displayed in the Browser window. As you can see, no special infrastructure or programming libraries were required to make this Web Service call. All that was needed was the ability to send an HTTP request and receive the response.
SData is also self describing. Below is a screen shot of asking for the schema of the XML response given above.
When doing update or insert calls you need to provide an XML payload of data similar to the response above of the data to be updated or inserted. There is also a standard interface for doing services which in Accpac includes things like reporting, day end and posting.
The example above was for customer 1200, however if the (‘1200’) part was removed, SData would have returned all the customers in A/R. In this case you can specify a filter to say return all customers greater than some point or specify which fields to sort the returned data by. SData will also page the data returned, it will return a block of records with links to the previous and next blocks.
Basically SData is a fairly simple protocol to use that should be accessible to almost any programming system. It is rich enough to support all UI operations required by Accpac. And ISV’s can be confident that it is complete enough, since all Accpac UIs rely on it. It is standards based on HTTP, Atom and other Web Standards allowing standards based tools to be used. Generally a very powerful Web Based Interface to greatly enhance Accpac’s intergratability and extensibility. Since SData is being adopted by all Sage Business Applications, learning and using SData with Accpac will teach you how to use SData for any SData equipped application, such as Sage CRM.
Sage ERP Accpac 5.6A recently shipped with:
- New Serialized Inventory, Lot Tracking
- Improved Bank Reconciliation
- Sage Accpac Intelligence
- Simplified Installation and Data Activation
- Free Training
- Built in A/R Inquiry Tool
- Many other great features.
Now we can look ahead to Sage ERP Accpac 6.0A and 6.1A. In previous blog posts I’ve talked about many of the features individually, but here I just want to summarize and present the current roadmap.
The main goal of Sage ERP Accpac 6.0A is: Solving Customer Requests with Web Technology
Usability: Improve Productivity
- Role Based, Personalized Portal
- Task Oriented Navigation
- Contextual User Assistance
Reporting: Faster Information Access
- Integrated Dashboards/KPI’s
- Ad-hoc Inquiry Tool – Quick Information Lists
Integration: Streamline Processes
- Enhanced Quote-to-Order Workflow for SageCRM Users
- Elimination of Lanpak Requirement for SageCRM User for Order Entry
- SageCRM 7.0 Support
Then the main goal of Sage ERP Accpac 6.1A is to bring all the Accpac Accounting Application screens to the Web. The Views (Accpac’s Business Logic), Reports and Database Schema will be largely the same as previous versions. The big change will be moving the User Interface forms from a Visual Basic Windows Desktop program to becoming a true Web Based application.
User Interface -> Modernized with “Web 2.0” Experience
- Improved Productivity for Faster Data Entry
- Improved Learnability
- Financials: General Ledger / Accounts Receivable / Accounts Payable / Bank Services / Tax
- Operations: Order Entry / Inventory Control / Purchase Order
The look of the product and all the screens is quite updated; see my previous blog postings for screenshots and fuller descriptions. Below is the current product roadmap slide with the mandatory disclaimer.