What I found and what I know about Microsoft Dynamics NAV
Today I prepared some stats about network traffic in NAV 2009 RTC client. You can compare the results with C/Side client (classic client).
Measuring: for measuring I have used the Microsoft Network Monitor for catching the NAV communication between client and DB Server/Service tier. Than I create sum of Frame Length, TCP Payload length and count of frames for the communication for each process. The results are not exact, because there are many things I didn’t take into account (cold/warm buffers, transfers of objects into classic client, used another order for measuring etc.). It means take the stats as example, how it can look like, but not as precise bandwidth measuring. Sizes are in Bytes.
Start of client (Role center with data on RTC, Navigation Pane only on Classic)
Opening list (different size of window, in Classic opening first card and F5 on card)
Open order card
Nothing to post
Closing order card
Order confirmation preview
Open departments page
Only in RTC
Adj. cost - item entries
Post cost to G/L
Processing + printing
Add line on Sales Order (filled fields Item no., location, quantity, price)
Form the table you can see the effect of 3-tier system. When you are processing some data, RTC is much better, because no raw data are transfered. Classic client needs to read all data to process them. But problem for RTC are Reports. When you want to print something in RTC, the client need to transfer the Flat Table structure with all the data to process them in the Reporting System Client. And this table can be big. One page with order confirmation took 1MB of data. I do not want to see some 100page report… and I am not talking about bitmaps on the report (e.g. Company logo). But because printing is not critical operation in most cases in NAV, it is OK, because critical things like data processing are 90% of whole application. When you create sum for whole data transferred for both clients, classic client transferred around 10MB and RTC only 5.5MB. Still, RTC is much better with the transfers and this difference will be much bigger in real live when you are mostly posting and sometime printing. Another difference is the Frame count. RTC is sending much less frames but they are bigger. It can lead to change in performance too. But this is question for some Network specialist.
What is you opinion? Are you happy that I created this table? Was it helpful for you?
I am waiting for your comments…
Yes I think its great. We need to start gathering these stats now to get a feel for what is going on. This will help developers to optimize their code.
I'm definitely happy with your work. I love reading your blogs! :-).
I don't get the "Post cost to G/L" though ... . Didn't you switch results?
No, it is correct, the data for the report are huge, the data processed during the posting are smaller, than result for printing... (I think it was 4 or 9 page report...). May be there is some error in measuring, I will try to make another measure when I will have some time.
At least it definitely shows it's a "thinner" client, but definitely not a "thin" client, is it... .
I think the numbers are great - and it is very clear what happens in the reporting scenario.
The report data is calculated on the server side and transferred in XML to the Client - this does give a large overhead.
In the other scenarios the XML overhead isn't visible because the packages have a size, where you normally don't run over the hardware packet size anyway.
I actually tried to run the RTC over the internet from Atlanta to a server in Redmond - and I did find that normal use of the Client works Ok - but reports are very slow.
But as you know, the RTC was never intended to be a thin Client - webservices and security are the main drivers of the servicetier not thinner client.
That doesn't mean that we won't consider making things better (clearly in reporting it would be nice).
BTW - reg. performance, take a look at the numbers when running NAV on SSD's on a server:
Any idea how these numbers change on 2009 R2 ?
I will try to find some time and make the measurements.... I am not expecting big change, but there are changes which cannot be covered with this, like change in report output delivering etc.