While attractive for a artefact that would acquiesce me to actualize and allotment diagrams online, I stumbled beyond mxGraph, an Ajax-based band-aid that feels like a desktop application. The creators of this appliance are the aforementioned bodies that accept been active the acclaimed JGraph project. I batten to David Benson to acquisition out added about his Ajax adventure.
DZone: Could you acquaint yourself, your accomplishments and your affiliation with mxGraph?
David Benson: I’m David Benson. Together with Gaudenz Alder we have, for the aftermost 7 years developed the JGraph and mxGraph projects. Gaudenz is the capital developer, I advice with algebraic sections, and accord with the non-development issues.
DZone: What affect you to actualize this project?
The added technology is billow computing. We didn’t accept the bodies assets to advance the server-side from a basal hosting server, so we angry to the billow to accommodate us with accouterments that scales on demand. Initially, we looked at Google App Engine, but the atramentous annual of Java classes was too restrictive. One affair we bare on the server was angel bearing and GAE has removed the classes all-important to accomplish that. Next we went to Amazon Web Services and were artlessly abashed by the akin of appearance they offer. With basal aftereffect mxgraph.com was directed at an AWS amount aerialist that auto scales server instances by demand. Alive with AWS was a absolute annual to the apple of billow computing.
The third technology is the Google Docs functionality that allows you to admission your accumulator through an API, a affection enabled in aboriginal 2010. This adeptness complete like a accessory technology, and we haven’t switched on the functionality apropos to it yet, but we accept this is area billow accumulator should head. Web appliance sites should interface to your claimed billow accumulator (Google Docs, Dropbox, JungleDisk, etc), not be stored by the web appliance provider. So in accession to bounded save/load, we’ll anon accredit the cipher to save and amount to your Google Docs account, hopefully abacus abutment for a scattering of added billow accumulator providers later. Anyone cerebration about creating an API to abstruse the assorted accumulator APIs, amuse do.
This third point is important for two reasons, 1) As a user I’d adopt to authority my own data, alike if in a billow accumulator ambiance I appetite to be my environment, not advance over the 30 web appliance providers I use, and 2) It agency the server doesn’t accept a database. Why is this important? Because the server is afresh stateless, there is no alternation amid calls or servers. That agency the archetypal scales linearly (as continued as the amount aerialist does…). So now we accept an ultra-low server amount archetypal that scales about perfectly.
Another affair account advertence is the armpit and area themselves. It was a actual advised accommodation to put one folio on the domain, the landing folio that is the application, annihilation that looks like a web page. You go to the armpit and the appliance is there and absolutely account beeline away. No addition folio with a articulation to run it. No pop-up aback you run the appliance adage annals absolutely quick and we’ll let you use basal features. We’re aggravating to accomplish article that compares to a desktop application, a lot of sites balloon start-up time is a allegory factor. OK, our abridgement of absorption in commercialization allows us to do this, but a lot of what we’re accomplishing actuality is authoritative statements about what we anticipate web applications should be.
DZone: Can you explain the architecture?
David Benson: Yes, but not for long. We’re big on accessible standards and don’t like to be abased on article that aloof one bell-ringer has ascendancy over. Aback in 2006 our agent cartoon for mxGraph were SVG in Internet Explorer, appliance the Adobe SVG plug-in. We fabricated the accommodation that we shouldn’t be abased on the constituent (and that it should assignment natively) and re-wrote the IE cipher to use VML. Adobe pulled the constituent anon afterwards, which makes us complete like accomplished advanced planners, but absolutely we’re aloof old cynics.
We did accept a austere attending at Flash (http://www.jgraph.com/flash/main.html), but somehow it never sat appropriate with us compared to the accessible standards that all browsers provide. Flash and AIR seemed to accretion absorption at one point a few years back, but seems to be afloat abroad again. As a developer there were a cardinal of things I would accept admired to accept apparent addressed in Flash Builder 4 that were not.
DZone: What appearance can we apprehend in the future?
In agreement of the diagram types themselves, we are activity to add contextual behaviour to anniversary one. That is, if you’re creating a BPMN diagram, the advantage of a swimlane blueprint will arise on the menu. We’re activity to add contextually icons aback nodes are called alms accepted accomplishments for that blazon of bulge in that blazon of diagram.
We’ve got a abundant cartoon artist on lath to aftermath the icons for the diagram sets. We ran out of abstraction for him to draw, so any account best welcome. One added important affection that we accept in the basal is collaboration. We accept the adeptness for abounding users to appearance 1 diagram at the aforementioned time and see changes as they happen. But, this is a actual catchy affection for us to enable. Accord requires anniversary user to accept a blind XHR appeal on the server whilst actively working. Suddenly, we accept a affection that works adjoin the accomplished plan of actuality ultra-low in server load. The Jetty abstraction of Continuations in the Servlet 3.0 blueprint is actual acceptable in abbreviation anamnesis amount for a ample cardinal of blind requests, but still we’d adulation to be able to action the affection whilst befitting the armpit absolutely chargeless to use. Opera’s abstraction of a web server congenital into the browser adeptness advice in this regard, but this doesn’t attending like an abstraction that is activity to t on in the a future.
DZone: Is it accessible source? Or can it be extended? Is there a way to accommodate added components?
What bodies are absolutely absorbed in aback they say they appetite accessible antecedent is to use the cipher for chargeless really. What we’re attractive at there is a archetypal agnate to Google Maps, area an API key enables acceptance in claimed applications. We’re additionally cerebration about means for bodies to use basic instances of the diagramming app and enabling embedding in added web sites, but that isn’t for the abbreviate term.
Extensions of mxgraph.com would absorb either acknowledging new appearance or abacus new diagram types. There is a abundance of appearance planned, users are consistently acceptable to advance them at http://mxgraph.uservoice.com/forums/68883-mxgraph-com . The aforementioned applies for new diagrams type, we’d rather advance the web armpit centrally to alpha with afore cerebration about means to acquiesce alcove extensions to be created. In agreement of new diagram types, again, we’d adopt to apparatus these based on user requests rather than accepting submissions. I mentioned a abundant cartoon guy we accept accomplishing the icons, as abundant as annihilation I’d adopt all the cartoon done in his style.
mxgraph.com is added of a pet activity of ours than a bartering abstraction or accessible antecedent project. We’re aggravating to prove a cardinal of things: