mardi 12 mai 2009

Open ERP Web - What's going on?

Most of you, if following the latest development on Launchpad project area, might be aware of the big changes with Open ERP Web Client. We migrated the web client to CherryPy3 droping the TurboGears completely and migrated Kid templates by faster Mako templates as a major step to make the Web Client much more faster and easier to deploy.

All the Kid templates are converted to faster Mako templates, i18n/l18n features have been partially reimplemented using Python Babel, CherryPy2 (TG is built on top of CP2) was replaced with CherryPy3, the latest, much better version of CherryPy Server.

This greatly reduced the pain of getting started with and deploying of Open ERP Web client. Now the number of third party dependencies are reduced to 3-4 pure Python libraries which you can install within the local lib dir with the help of `populate.sh` script, found under the same lib directory. Just get the source from Launchpad, run the populate.sh and launch the web client...

The initial test results are very impressive. We have seen almost 3-5 time speed improvement. Here are the benchmark results of the latest trunk version against the stable 5.0 branch which is running over TurboGears.

The benchmark test was done using Apache Benchmark Tool against relatively bigger Customer Invoice Form view. The command was used like this:

$ ab -C session_id=$session -n 100 "http://localhost:8080/form/edit?model=account.invoice&id=1"

where $session should be replaced with session id (you can use firebug to see the session id).

Here is the comparison between before and after improvements in Open ERP web client

Result of Open ERP Web 5.0 (TurboGears + Kid)

Result of Open ERP Web Trunk (CherryPy3 + Mako)

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient).....done


Server Software: CherryPy/2.3.0
Server Hostname: localhost
Server Port: 8081

Document Path: /form/edit?model=account.invoice&id=1
Document Length: 79965 bytes

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient).....done


Server Software: CherryPy/3.1.2
Server Hostname: localhost
Server Port: 8080

Document Path: /form/edit?model=account.invoice&id=1
Document Length: 90394 bytes

Concurrency Level: 1

Concurrency Level: 1

Time taken for tests: 166.323 seconds

Time taken for tests: 42.054 seconds

Complete requests: 100

Complete requests: 100

Failed requests: 0

Failed requests: 0

Write errors: 0

Write errors: 0

Total transferred: 8022000 bytes

Total transferred: 9063400 bytes

HTML transferred: 7996500 bytes

HTML transferred: 9039400 bytes

Requests per second: 0.60 [#/sec] (mean)

Requests per second: 2.38 [#/sec] (mean)

Time per request: 1663.228 [ms] (mean)

Time per request: 420.543 [ms] (mean)

Time per request: 1663.228 [ms] (mean, across all concurrent requests)

Time per request: 420.543 [ms] (mean, across all concurrent requests)

Transfer rate: 47.10 [Kbytes/sec] received

Transfer rate: 210.47 [Kbytes/sec] received

Connection Times (ms)

Connection Times (ms)

min mean[+/-sd] median max

min mean[+/-sd] median max

Connect: 0 0 0.0 0 0

Connect: 0 0 0.0 0 0

Processing: 1556 1663 71.3 1663 1856

Processing: 382 420 27.7 415 523

Waiting: 1555 1662 71.3 1662 1855

Waiting: 381 420 27.7 415 522

Total: 1556 1663 71.3 1663 1856

Total: 382 420 27.7 416 523

Percentage of the requests served within a certain time (ms)

Percentage of the requests served within a certain time (ms)

50% 1663

50% 416

66% 1681

66% 418

75% 1695

75% 420

80% 1715

80% 424

90% 1775

90% 436

95% 1801

95% 512

98% 1829

98% 520

99% 1856

99% 523

100% 1856 (longest request)

100% 523 (longest request)


Conclusion

You can see significant performance boost in second test result. We observed 3-5 time speedup. There are still room to improve the performance further. Like reducing RPC calls, catching results of some computationally heavy functions. Implementing a way to directly call server methods if web client and server are installed on the same system (completely eliminating TCP layer).

What's next?

Besides this, we also planned to make web client modular implementing plugin system which let you create your own plugins to extend the functionality of the web client. We appreciate your ideas and suggestions in this regards.

Also, we have planned for a better main menu & tabified interface (similar to GTK client) where you always have access to the main menu and all views will be opened in tabs inside the same html page instead of utilising browser tabs. We had discussion about such interface previously, you can search the forum for a very good mockup implementation.

We are also thinking of writing some automated unit tests using CP3 testing API. We already wrote some basic tests to check how to proceed. You can run all tests by launching `run-tests.py` script...

We greatly appreciate you ideas, suggestions in this regards...

Thanks and regards to all contributors

Open ERP Team

Save time/money with Open ERP web client.

21 commentaires:

  1. Interesting post. I have been wondering about this issue,so thanks for posting. I’ll likely be coming back to your blog. Keep up great writing.

    Travel News | Free Song Lyric | A Love to Kill | Learn Indonesia Language | cari rumah | jual rumah | rumah dijual | Laptop Price List | New Blackberry | Health & Jewerly

    RépondreSupprimer
  2. Great post! I’m searching for this information for long time and I have found it here. Kontes Seo Kerja keras adalah energi kita Pertamina | Tutorial seo

    RépondreSupprimer
  3. Ce commentaire a été supprimé par l'auteur.

    RépondreSupprimer
  4. I was so thankful that there are some companies that update the open source tehnology.
    inbound call center
    Outbound Telemarketing
    http://www.welive2care.com/2009/08/20/virtual-assistant-services/

    RépondreSupprimer
  5. Lowongan kerja 2010
    Di situs bursa lowongan kerja 2010 anda bisa mendapatkan apapun yang anda inginkan yang terkait dalam bidang lowongan pekerjaan seperti informasi lowongan kerja oktober 2010 maupun hingga informasi tentang lowongan kerja september 2010. Bahkan jika anda ingin memasang iklan tentang lowongan pekerjaan, anda pun bisa mem posting iklan lowongan kerja tersebut dengan gratis.

    Di situs ini anda bisa mencari informasi tentang lowongan kerja agustus 2010 dan juga lowongan kerja april 2010. Dari berbagai situs lowongan kerja yang online sekarang, lowongan kerja desember 2010 adalah tempat terbaik untuk mencari info lowongan pekerjaan Desember 2010. Tapi jika yang anda cari adalah lowongan di bulan februari 2010, maka lowongan kerja februari 2010 adalah tempat yang tepat.

    Di situs lowongan kerja januari 2010 ini ada berbagai macam iklan lowongan kerja yang menarik. Salah satu diantaranya adalah lowongan kerja juli 2010, Pokoknya apapun lowongannya, jangan lupa kunjungi situs kami di lowongan kerja juni 2010. Ada juga di bahas pada situs ini mengenai perencanaan karir, busana kerja dan lainnya, pokoknya lowongan kerja maret 2010 emang top deh.

    Bagi anda yang mau cari contoh-contoh surat lamaran kerja bisa anda dapatkan di lowongan kerja mei 2010, nah kalau yang anda butuhkan adalah contoh CV maka anda dapat ambil dari lowongan kerja november 2010. Sedangkan jika anda ingin contoh resume anda bisa cari di situs lowongan kerja ini juga.

    RépondreSupprimer
  6. Good info thanks for sharing with us.
    Nice information, valuable and excellent, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which we all need, thanks for all the enthusiasm to offer such helpful information here.

    best regard

    Berita Terkini | Tps FB|Tourism and Vacation Destinations |Home Improvement|Furniture and Home decoration

    RépondreSupprimer
  7. NegeriAds.com Solusi Berpromosi
    NegeriAds.com Solusi Berpromosi
    NegeriAds.com Solusi Berpromosi

    RépondreSupprimer
  8. NegeriAds.com Solusi Berpromosi
    NegeriAds.com Solusi Berpromosi
    NegeriAds.com Solusi Berpromosi

    RépondreSupprimer
  9. Rent A Smile is a professional lifestyle management and time saving service for busy people worldwide. Our Virtual Personal Assistants are highly effective and will help you to reduce stress, save time and be more productive. We offer a personal service, tailored to the individual needs of our clients. Whether you are travelling for business or pleasure, Rent A Smile can make all the arrangements you need for any trip.

    When you know of your travel plans, turn that information over to Rent A Smile with specific instructions on preferred flight times, travel classification, any airlines to avoid, hotels of choice, type of accommodation, and any special instructions for anything you might want close to the hotel. Once your Rent A Smile virtual assistant has the information, he/she can call and research the airlines and hotels in the area and find your best deals. They can send you the results of their search for you to choose what meets your needs and desires.

    After you make those choices, you can email that back to your Rent A Smile Virtual Assistant. He/she can make the reservations, make sure you get your reward points, guarantee everything with your credit card, and email your itineraries and receipts to you. After you double check everything to be sure it meets your satisfaction, you are set for all the trips you plan to take.

    If you are planning a holiday with your family, you can have your Rent A Smile Virtual Assistant plan activities for your children or you by giving them a list of things you want to do. Relax, unwind, refresh yourself and return ready to pursue your dreams with new enthusiasm.

    RépondreSupprimer
  10. we are still practicing with the ERP's here on Telemarketing Call Center. I'm not that good with it!

    RépondreSupprimer
  11. I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting
    insulated delivery bags

    RépondreSupprimer
  12. This is a really good read for me, is to admit that you are one of the best blogger I ever saw.Thanks publication of this informative article.
    celebrity hair transplant

    RépondreSupprimer
  13. Preservation and promotion of health is achieved through a combination of physical, mental and social well-being, sometimes called "the triangle of health." Health is a positive concept focuses on the social and personal resources, as well as physical capacities.
    see Natural Supplements

    RépondreSupprimer
  14. This piece was an inspiration for me to share with everyone I know. I must congratulate the author and the place and coming up with a beautiful creature like this.
    post free classified | indian top classified website

    RépondreSupprimer
  15. I think this is explained in such a nice way so that anyone can understand.
    purchase avapro online from online store.

    RépondreSupprimer
  16. i have seen approximately 3-5 time speed development,

    msc dissertation sample

    RépondreSupprimer