{"id":323,"date":"2006-08-23T14:44:15","date_gmt":"2006-08-23T21:44:15","guid":{"rendered":"http:\/\/www.redmonk.com\/cote\/wp\/?p=323"},"modified":"2006-08-23T14:44:15","modified_gmt":"2006-08-23T21:44:15","slug":"more-on-nvision-softwares-appvision","status":"publish","type":"post","link":"https:\/\/redmonk.com\/cote\/2006\/08\/23\/more-on-nvision-softwares-appvision\/","title":{"rendered":"More on nVision Software&#039;s AppVision"},"content":{"rendered":"<p>I talked with <a href=\"http:\/\/www.nvisionsoftware.com\/\">nVision Software&#8217;s<\/a> Juan Cabezas and Ted Hulick yesterday afternoon to get a more in-depth technical overview of how <a href=\"http:\/\/www.redmonk.com\/cote\/archives\/2006\/07\/coffee_with_jua.html\">nVision&#8217;s AppVision<\/a> works. (Thanks to both of them for making the time ;&gt;)<\/p>\n<p>Ted seemed quite passionate about systems management and, having been in the industry for for a while, is very eager to &#8220;do things right this time.&#8221; Technical passion for systems management can be hard to find, and it&#8217;s key for up-and-coming companies: otherwise, you might end up with the same old thing.<\/p>\n<h2>Beyond Instrumenting<\/h2>\n<p>\n<a href=\"http:\/\/www.flickr.com\/photos\/cote\/200547889\/\" title=\"Photo Sharing\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.flickr.com\/57\/200547889_251e0c43e2_o.png\" width=\"294\" height=\"531\" alt=\"nVision Functionality\" \/><\/a><\/p>\n<p>Here are some highlights:<\/p>\n<ul>\n<li>From the discussion that we had, it seems like it&#8217;s technologically quite clever. On the Java side, there&#8217;s classloader magic that allows AppVision to do light-weight instrumentation, in runtime, or VMs. The .Net technology is a bit thornier apparently as .Net runs with more security options on by default (most Java apps don&#8217;t go hog-wild with <a href=\"http:\/\/www.jaasbook.com\"><code>SecurityManager<\/code><\/a>) and there&#8217;s apparently more hidden voodoo in .Net than Java.<\/li>\n<li>Relevant to <a href=\"http:\/\/www.redmonk.com\/cote\/archives\/2006\/08\/more_on_open_so.html\">the current open sourcing Java discussion<\/a>, Ted said that access to the Java source over the years (before it being technically &#8220;open source&#8221;) has been great.<\/li>\n<li>Their overall systems management philosophy was along the lines of the New Systems Management think that I&#8217;ve been seeing. In the words of Ted: &#8220;no metrics.&#8221; There&#8217;s, of course, over-statement in that. The point isn&#8217;t that there are absolutely no measurements or measuring going on. The point is more to value judgments and conclusions over raw data.<\/li>\n<li>There&#8217;s an emerging world of non-traditional devices, like VoIP phones which are essentially just little computers &#8212; that are beefy enough to run Java and .Net. Meaning, there are new types of devices to monitor and manage.<\/li>\n<li>While <a href=\"http:\/\/jakarta.apache.org\/bcel\/\">BCEL<\/a> is &#8220;fine,&#8221; nVision wrote their own byte-code library to get complete control over that core part of their stack.<\/li>\n<li>AppVision is built on a plugin architecture.<\/li>\n<li>The &#8220;symbiont&#8221; (the code that AppVision runs in the host VM or CLR) can be cut down to a few 100K. This is important, of course, for using less than, as Ted said, 5% or less of the host&#8217;s resources. With that AppVision to target not only desktops and servers, but the wider range of devices mentioned above in addition to realtime systems.<\/li>\n<li>Along those performance lines, AppVision doesn&#8217;t do method-level tracking. Instead, it pays attention to explicit error states (like exceptions) and only instruments key parts of the application (like the <code>main()<\/code> method\/class).<\/li>\n<li>We talked a fair amount about scaling at the database level and scaling in general. That&#8217;s encouraging, of course, because scale is the mid-life crisis of all systems management tools and platforms.<\/li>\n<\/ul>\n<p>We of course covered more detail. The <a href=\"http:\/\/www.nvisionsoftware.com\/html\/appvision_5_0.htm\">AppVision 5.0 page<\/a> actually goes into a fair level of detail as well.<\/p>\n<h2>In the Labs<\/h2>\n<p>Overall, my theory is that AppVision would be a great &#8220;debugging in the field&#8221; tool. <a href=\"http:\/\/www.redmonk.com\/cote\/archives\/2006\/05\/help_spread_net.html\">I&#8217;ve longed for a &#8220;headless profiler&#8221; for sometime<\/a>, and the approach that AppVision has taken might shoe-horn into that. We&#8217;ll see.<\/p>\n<p>As the use of the word &#8220;theory&#8221; implies, all of this discussion comes with the disclaimer that it&#8217;s just been discussion up to this point, I can&#8217;t vouch for nVision and AppVision beyond that. Also, I still haven&#8217;t tried the application out on my own, but I should be getting an evaluation\/demo copy sometime soon. I&#8217;d be interested in any &#8220;tests&#8221; or &#8220;scenarios&#8221; you, dear readers, have in mind.<\/p>\n<p><!-- technorati tags start --><\/p>\n<p>Tags: <a href=\"http:\/\/www.technorati.com\/tag\/.net\" rel=\"tag\">.net<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/bytecode\" rel=\"tag\">bytecode<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/instrumentation\" rel=\"tag\">instrumentation<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/java\" rel=\"tag\">java<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/nvision\" rel=\"tag\">nvision<\/a>, <a href=\"http:\/\/www.technorati.com\/tag\/profilers\" rel=\"tag\">profilers<\/a><\/p>\n<p><!-- technorati tags end --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I talked with nVision Software&#8217;s Juan Cabezas and Ted Hulick yesterday afternoon to get a more in-depth technical overview of how nVision&#8217;s AppVision works. (Thanks to both of them for making the time ;&gt;) Ted seemed quite passionate about systems management and, having been in the industry for for a while, is very eager to [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,34],"tags":[],"class_list":["post-323","post","type-post","status-publish","format-standard","hentry","category-java","category-systems-management"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/comments?post=323"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/323\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/media?parent=323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/categories?post=323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/tags?post=323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}