| <html> |
| <HEAD> |
| <TITLE>Welcome on Board NetBeans Air</TITLE> |
| <meta NAME='keywords' CONTENT="Boeing,netbeans,platform,RCP,partner,framework,rich client application"> |
| <meta NAME='description' CONTENT="Tim Boudreau met the platform specialist Tom Wheeler to chat about Tom's latest |
| 'little' project: He ports applications that analyse mass properties of aircraft for Boeing."> |
| <link rel="stylesheet" type="text/css" HREF="../../netbeans.css"> |
| </HEAD> |
| |
| <BODY> |
| |
| <h1>Welcome on Board NetBeans Air!</h1> |
| |
| <p><a href="../../images_www/articles/boeing-platform/masstk_ss_full_01.png"><img |
| src="../../images_www/articles/boeing-platform/masstk_ss_thumb_01.jpg" |
| alt="colorcoded wireframe of aircraft" border="0" width="180" |
| style="float:left;padding:10 20 20 0;"></a></p> |
| |
| <blockquote><em>Tim Boudreau met the platform specialist Tom Wheeler to chat about Tom's latest |
| "little" project: He ports applications that analyse mass properties of aircraft for Boeing.</em> |
| </blockquote> |
| |
| <br style="clear:both" /> |
| |
| <h2>Tom, what kinds of applications did you port for Boeing, and why?</h2> |
| |
| <p /><p /> |
| In 2005, we began a project to consolidate several applications |
| that had been developed internally over the years. |
| Each did some type of mass properties analysis on aircraft. |
| But since they were created by different people at different times, |
| they didn't necessarily share data easily. |
| |
| <div style="width:200px;float:right;padding:0 0 10 10;font-size:120%;font-weight:bold">“Instead |
| of writing a whole program from scratch, |
| we'd simply create a module and it would automatically |
| take advantage of algorithms, components and other features of the framework.”</div> |
| <p /> |
| Consequently, the engineers who used these programs would constantly have to switch |
| between them and find ways to export data from one application that could be read by the next. |
| There was also a fair amount of duplication between them. |
| <p /> |
| So we wanted to "port" these applications into a single integrated framework |
| that used the best features of each, |
| yet made it easier to solve problems than it was with several individual tools. |
| <p /> |
| Not only would this approach practically eliminate code duplication, |
| it would also reduce the amount of time needed to create new applications in the future. |
| Instead of writing a whole new program from scratch, |
| we'd simply need to create a new module and it would automatically |
| take advantage of algorithms, components and other features of the framework. |
| <P /> |
| Even though integration projects like this sometimes grow too large, |
| we've found that NetBeans modularity also makes it easy |
| to pick and choose exactly what's included in the application. |
| |
| <h2>Tell us more about the application, what exactly was it?</h2> |
| |
| <p /><p /> |
| |
| <div style="width:200px;float:right;padding:0 0 10 10;font-size:120%;font-weight:bold;">“While |
| Crays are obviously very fast machines, Java on modern PCs |
| is more than fast enough for this application. ”</div> |
| <p /> |
| The application I mentioned is called <b>Mass Toolkit</b>. |
| As I mentioned before, it integrates many of our older tools, most of which were written in Java. |
| <p /> |
| However, we've also got an application that runs natively on a Cray supercomputer, |
| and Mass Toolkit should eventually replace that as well. |
| While Crays are obviously very fast machines, |
| Java on modern PCs is more than fast enough for this application. |
| <P /> |
| More importantly, Mass Toolkit's ability to visualize the input and output data |
| graphically — in 3D space — is something our users are excited about. |
| <p /> |
| |
| <div style="padding:10 20 10 20;background-color:#EEEEFF;font-size:90%; |
| margin-right:auto;margin-left:10px;width:550px"> |
| <h3>Info: The Mass Properties Toolkit (MassTk)</h3> |
| <br /> |
| <p><a href="../../images_www/articles/boeing-platform/masstk_ss_full_02.png"><img |
| src="../../images_www/articles/boeing-platform/masstk_ss_thumb_02.jpg" |
| alt="aircraft fuel distribution graphic" border="0" width="180" |
| style="float:left;padding:10 20 20 0;"></a></p> |
| <p>The MassTk is an engineering analysis application by Boeing. It incorporates the functionality |
| from several legacy mass properties analysis applications that |
| were originally written in Java, Fortran, C, and even Perl.</p> |
| <p>MassTk is built on top of the NetBeans Platform 6.0. |
| It provides a rich GUI with custom editors for all business objects including 2D & 3D visualization.</p> |
| <p>Boeing uses MassTk to perform |
| payload balance solutions, loadability analysis, fuel management analysis, |
| fuel mass property analysis, and mass distribution to finite element models. |
| MassTk vastly improved pre- and post-processing of analyses, |
| it has a shallower learning curve, and lower maintenance costs.</p> |
| </div> |
| |
| <h2>Inside Boeing, are there more applications in production that are NetBeans platform based?</h2> |
| |
| <p /><p /> |
| Yes. This January, another development team inside Boeing approached me |
| to ask about my experiences with the NetBeans platform. |
| They are supporting an in-house application called <b>CSW</b> |
| used by hundreds of engineers for structural analysis. |
| <p /> |
| I described the pros and cons of the NetBeans platform, |
| explained what alternatives exist, and finally showed Mass Toolkit to them. |
| Eventually we decided that our applications had a lot in common. |
| About half of Mass Toolkit's modules are general purpose libraries for |
| plotting, XML, mathematics and reusable user interface components, |
| so they'd be useful to CSW as well. |
| <p /> |
| I decided that instead of building Mass Toolkit on the NetBeans platform, |
| I could factor out these common parts into a new platform that extends the NetBeans platform. |
| |
| <div style="width:200px;float:right;padding:0 0 10 10;font-size:120%;font-weight:bold;">“I |
| was able to train him on basic platform concepts and help him port his prototype |
| to the platform in less than two days.”</div> |
| <p /> |
| In other words, I moved several modules upstream, |
| and also added some additional build and branding enhancements. |
| And now Mass Toolkit and the new version of CSW |
| are built from the result, which we call the <b>Boeing Shared Platform</b>. |
| <p /> |
| Soon after I created the Boeing Shared Platform, |
| another developer needed to write a new application called <b>SIFT</b>. |
| He was interested in creating SIFT on top of the platform, |
| and though he's a very competent programmer, |
| this was his first exposure to the platform. |
| I was able to train him on basic platform concepts |
| and help him port his prototype to the platform in less than two days. |
| <p /> |
| Now SIFT has all of the platform features, including the window system, |
| declarative actions, service registration and dependency management. |
| <p /> |
| We expect Mass Toolkit and SIFT to be released for production this summer, |
| though both applications have already released several versions for user testing. |
| The next version of CSW, which is also built on the Boeing Shared Platform, |
| is still in early stages of development. |
| <p /> |
| |
| |
| <h2>What made Boeing choose the NetBeans platform?</h2> |
| |
| <p /><p /> |
| We started this project with a pretty blank slate. |
| We had functional requirements, but how we met them was largely up to the development team. |
| |
| <div style="width:200px;float:right;padding:0 0 10 10;font-size:120%;font-weight:bold;">“NetBeans |
| ultimately won because it would easily integrate |
| with all the Swing and Java3D code we already had.”</div> |
| <p /> |
| I first made a list of about twenty features that the ideal platform would provide, |
| looked at what was available and tracked what each one offered. |
| I quickly narrowed the list down to the NetBeans Platform and the Eclipse RCP. |
| <p /> |
| While each platform had advantages, NetBeans ultimately won |
| because it would easily integrate with all the Swing and Java3D code we already had. |
| |
| <br style="clear:both"> |
| |
| <h2>What has the experience been like working with the NetBeans platform?<br /> |
| How has it impacted productivity?</h2> |
| |
| <p /><p /> |
| Frankly, we got off to a slow start because 2005 was the worst possible time |
| to begin learning and using the platform: |
| The 4.1 IDE had just been released and it lacked support for creating platform applications. |
| There also wasn't much current documentation available. |
| |
| <div style="width:200px;float:right;padding:0 0 10 10;font-size:120%;font-weight:bold;">“The |
| Matisse form editor helped speed up development.”</div> |
| |
| <p /> |
| In 2006, the NetBeans 5.0 IDE was released, and it was a huge benefit for us. |
| The <a href="https://netbeans.org/kb/trails/platform.html">API support</a> |
| features of the new IDE made it simple to create new actions and TopComponents. |
| The <a href="../../kb/55/quickstart-gui.html">Matisse form editor</a> also helped speed up development. |
| Like most people, we'd previously been writing GUI code by hand in Java. |
| <p /> |
| It's also a lot easier to find <a href="http://platform.netbeans.org/">documentation and examples</a> |
| now, plus the openide mailing list is a great resource where developers can help one another. |
| |
| <h2>What are the plans for the future with the NetBeans Platform?</h2> |
| |
| <p /><p /> |
| We're now moving towards the 6.0 IDE and platform. |
| We would have certainly appreciated new features for building platform application |
| in the new version, but we hope that will be forthcoming. |
| Meanwhile, we're looking forward to the new editor in the 6.0 IDE and |
| we're also pleased that the new <a href="https://netbeans.org/books/rcp.html">platform |
| book</a> is now available. |
| <p /> |
| We'll continue refining the Boeing Shared Platform and perhaps be able |
| to port additional applications to it in the future. |
| <p /> |
| |
| |
| <div style="padding:10 20 10 20;background-color:#EEEEFF;font-size:90%; |
| margin-right:auto;margin-left:10px;width:550px"> |
| <h3>Info: The Boeing Shared Platform (BSP)</h3> |
| <br /> |
| <p><a href="../../images_www/articles/boeing-platform/masstk_ss_full_00.png"><img |
| src="../../images_www/articles/boeing-platform/masstk_ss_thumb_03.jpg" |
| alt="aircraft payload loading diagram" border="0" width="180" |
| style="float:left;padding:10 20 20 0;"></a></p> |
| <p>The Boeing Shared Platform is a logical outgrowth of building MassTk on top of the NetBeans Platform: |
| BSP is a feature-rich platform created by factoring out the modules from MassTk |
| that are not specific to mass properties analysis, |
| but are useful to engineering analysis applications in general. </p> |
| <p>In addition to the NetBeans Platform, the BSP includes a number of |
| third-party open-source libraries, as well as a number of Boeing-developed modules. </p> |
| <p>Currently there are a total of four applications being built with the BSP.</p> |
| </div> |
| </body> |
| </html> |