WBEA HTML5 Desktop Application wrapper.
Posted: Wed Jan 05, 2011 12:29 pm
I'm sorta surprised that our kindly host here (Marshall Greenblatt) has not tooted his own horn
about the WBEA AsterClick Desktop Component he put together for
our Asterisk PBX project, so I'll play a few notes of gratitude for him
and tell you all about our project and the role that CEF is playing in it.
The Asterisk PBX (for those who don't know) is a server application that turns a computer into a
a powerful telephone switchboard system capable of routing VOIP and land line phone calls ,
operating phone queues , teleconferencing and all sorts of other nifty stuff.
About a year ago we set about developing the AsterClick system, which is an interface that allows the
creation of robust Asterisk PBX applications using nothing more than HTML5. We have finally achieved an Alpha
version of the AsterClick server and we are pretty excited about it.
What really makes AsterClick unique is that all the communications are based upon HTML5 webSockets that
afford Javascript applications a continuously connected bi-directional communications channel. Prior
to webSockets event driven web applications for Asterisk were impossible and those web applications that did
exist relied on polling , where the browser applications had to make constant and repeated requests
to the server and could often miss events.
Now while HTML5 support (especially webSockets) is really good in Chrome, other browsers (as expected) are
a hit and miss proposition in their implementation of those standards. Of course for other reasons (including securing of code)
some sorta resist the idea of developing Asterisk and other applications in a browser.
When we first started considering the idea of somehow using CEF to support the AsterClick project, the idea had
some drawbacks as while CEF is indeed a great tool , our goal was to make developing AsterClick executable
desktop applications accessible to the masses , and developing with CEF did not exactly fit that goal.
So we had Marshall create WBEA for us as a happy middle ground and thus far it looks to be just about everything
we and potential AsterClick developers could hope for. It provides a fairly naked generic desktop application where
everything is stripped away to the bare bones.
Small extensions to Javascript allow the HTML5 applications to manipulate that bare bones application window
so as to populate and respond to the application menu bar, close the application and things of that nature.
The WBEA is also setup so that one can rename it from the default "wbea.exe" to whatever cool name they like
To protect the HTML5 related source code from prying eyes , the WBEA system uses an externally encrypted .zip file to hold the HTML5 application and decrypts the file into memory at run time. The use of encryption is optional
but an important selling point for folks wanting to protect their work. that .zip file shares the same base filename
as whatever the developer renamed the "wbea.exe" to, so one can have as many WBEA based applications as they
like without them running into each other.
Marshall has done a great job for us on this and kept the coding clean enough that WBEA
not only runs on Windows , but also runs well on Linux. I'm sure we'll be back for upgrades as time goes on.
While the WBEA application was commissioned specifically for the AsterClick project , there is nothing in it
specifically related to AsterClick or Asterisk development , so it has a great deal of value as a generic Desktop Application tool
for any HTML5 based application. For many it could present an interesting middle ground allowing the creation of desktop executables without all the hassles of full blown C++ development.
I'm just finishing up the documentation for WBEA on the AsterClick site and as soon as that is done I'll be making
the WBEA source and binaries available to everyone.
about the WBEA AsterClick Desktop Component he put together for
our Asterisk PBX project, so I'll play a few notes of gratitude for him
and tell you all about our project and the role that CEF is playing in it.
The Asterisk PBX (for those who don't know) is a server application that turns a computer into a
a powerful telephone switchboard system capable of routing VOIP and land line phone calls ,
operating phone queues , teleconferencing and all sorts of other nifty stuff.
About a year ago we set about developing the AsterClick system, which is an interface that allows the
creation of robust Asterisk PBX applications using nothing more than HTML5. We have finally achieved an Alpha
version of the AsterClick server and we are pretty excited about it.
What really makes AsterClick unique is that all the communications are based upon HTML5 webSockets that
afford Javascript applications a continuously connected bi-directional communications channel. Prior
to webSockets event driven web applications for Asterisk were impossible and those web applications that did
exist relied on polling , where the browser applications had to make constant and repeated requests
to the server and could often miss events.
Now while HTML5 support (especially webSockets) is really good in Chrome, other browsers (as expected) are
a hit and miss proposition in their implementation of those standards. Of course for other reasons (including securing of code)
some sorta resist the idea of developing Asterisk and other applications in a browser.
When we first started considering the idea of somehow using CEF to support the AsterClick project, the idea had
some drawbacks as while CEF is indeed a great tool , our goal was to make developing AsterClick executable
desktop applications accessible to the masses , and developing with CEF did not exactly fit that goal.
So we had Marshall create WBEA for us as a happy middle ground and thus far it looks to be just about everything
we and potential AsterClick developers could hope for. It provides a fairly naked generic desktop application where
everything is stripped away to the bare bones.
Small extensions to Javascript allow the HTML5 applications to manipulate that bare bones application window
so as to populate and respond to the application menu bar, close the application and things of that nature.
The WBEA is also setup so that one can rename it from the default "wbea.exe" to whatever cool name they like
To protect the HTML5 related source code from prying eyes , the WBEA system uses an externally encrypted .zip file to hold the HTML5 application and decrypts the file into memory at run time. The use of encryption is optional
but an important selling point for folks wanting to protect their work. that .zip file shares the same base filename
as whatever the developer renamed the "wbea.exe" to, so one can have as many WBEA based applications as they
like without them running into each other.
Marshall has done a great job for us on this and kept the coding clean enough that WBEA
not only runs on Windows , but also runs well on Linux. I'm sure we'll be back for upgrades as time goes on.
While the WBEA application was commissioned specifically for the AsterClick project , there is nothing in it
specifically related to AsterClick or Asterisk development , so it has a great deal of value as a generic Desktop Application tool
for any HTML5 based application. For many it could present an interesting middle ground allowing the creation of desktop executables without all the hassles of full blown C++ development.
I'm just finishing up the documentation for WBEA on the AsterClick site and as soon as that is done I'll be making
the WBEA source and binaries available to everyone.