⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lib0109.html

📁 j2ee架构师手册
💻 HTML
字号:
<html>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<title>Open Source Alternatives</title>
<link rel="STYLESHEET" type="text/css" href="images/xpolecat.css">
<link rel="STYLESHEET" type="text/css" href="images/ie.content.css">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td><div STYLE="MARGIN-LEFT: 0.15in;"><a href="toc.html"><img src="images/teamlib.gif" width="62" height="15" border="0" align="absmiddle"  alt="Team LiB"></a></div></td>
<td align="right"><div STYLE="MARGIN-LEFT: 0.15in;">
<a href="LiB0108.html"><img src="images/previous.gif" width="62" height="15" border="0" align="absmiddle" alt="Previous Section"></a>
<a href="LiB0110.html"><img src="images/next.gif" width="41" height="15" border="0" align="absmiddle" alt="Next Section"></a>
</div></td></tr></table>
<br>
<div class="chapter">
<a name="ch16"></a>
<div class="section">
<h2 class="first-section-title"><a name="526"></a><a name="ch16lev1sec4"></a>Open Source Alternatives</h2><p class="first-para">Open source alternatives have blossomed over the past couple of years, so much so that searching for open source alternatives for a given need has become a complicated task. One good place to start is the Open Source Developer's Kit at <a target="_top" class="url" href="http://www.osdk.com/">http://www.osdk.com/</a>. This site lists and categorizes open source components to simplify your task of locating one that fits your need.</p>
<p class="para">Many organizations are wary of using open source products. The perception is that these products are essentially unsupported. And while the price of open source technologies will fit into any corporate budget, many <a name="527"></a><a name="IDX-218"></a>organizations like the security of having a technical support number to call when problems come up. There are really two issues here. The first is the practical issue of being able to solve technical problems with an open source product to get your applications working, and keep them working. The second is having someone else to blame if your product selection decision turns out to be a bad one. Usually, companies with anti-open source policies are more worried about blame assignment.</p>
<div class="section">
<h3 class="sect3-title">
<a name="528"></a><a name="ch16lev2sec1"></a>Resolving Technical Issues</h3>
<p class="first-para">The following are some steps I've gone through to solve problems with open source component software. Step 1 is the simplest solution. If that doesn't work, you'll need to perform step 2 before trying any of the remaining steps, which are listed in order of simplicity.</p>
<p class="para">
<b>Step 1: Search news groups.</b> True, many open source products don't have formal support organizations. But because they are free, open source products tend to have a large user base. Consequently, it's highly likely that someone else has experienced the same problem you're dealing with and consulted a news group about it. Your support mechanism is the Google search engine (<a target="_top" class="url" href="http://www.google.com/">http://www.google.com/</a>), which is nice enough to make all the news groups searchable. In fact, I use Google to solve problems with commercial components before calling the support organization because it's usually faster. More often than not, I find the answer in a response to someone else's post.</p>
<p class="para">
<b>Step 2: Replicate the problem.</b> This helps you get through the remaining steps quickly. Preferably, you would want to be able to replicate the problem in your development environment. Your test case illustrating the problem should be locally debuggable.</p>
<p class="para">
<b>Step 3: Upgrade to the latest version.</b> If a newer version of the product is available, a good time to try it out is when you're trying to resolve a technical issue. Maybe the problem is the result of a bug that someone caught and fixed. Often, the work involved in upgrading is just including a more recent jar(s) in your classpath.</p>
<p class="para">
<b>Step 4: Evaluate competing products.</b> I look for competing open source products that do the same thing. If I can easily switch products, I'll try that. I once had an issue with an open source Java FTP client API that had a memory leak. When a news group search didn't reveal an answer to my problem, I switched to another open source FTP client API.</p>
<a name="529"></a><a name="IDX-219"></a>
<p class="para">
<b>Step 5: Debug your test scenario.</b> Although this isn't a pleasant task, it invariably enables you to determine the root issue. Once you know what the problem is, you can start looking for a way to work around it.</p>
<p class="para">
<b>Step 6: Modify component code to fix the problem.</b> This should be treated as an option of last resort. If you use an altered version of an open source product, you'll be on your own for problem investigations after that. You'll never know if the problem you're experiencing was a result of a product bug or the result of your change. If you have to modify the code, take the trouble to report the bug to the developers that produced the component. Most developers of open source products would release a new version with a bug fix. As soon as you can get to an unaltered version of the component, you should do it.</p>
</div>
<div class="section">
<h3 class="sect3-title">
<a name="530"></a><a name="ch16lev2sec2"></a>Mitigating Political Risk</h3>
<p class="first-para">The second issue surrounding the use of open source component software is the corporate need to have someone to blame if the choice of open source product doesn't work out as well as intended. I can't think of a way to completely solve the issue, but I can think of many ways to mitigate the risk.</p>
<p class="para">
<b>Suggest a commercial software component along with open source alternatives and keep any documentation of the decision.</b> This tactic effectively makes the component decision a group effort. If an open source decision is ever questioned, you can frame the issue as a group decision and point to budgetary advantages.</p>
<p class="para">
<b>Track which open source products you use and keep source as well as binary distributions.</b> You won't want to find out at the time you're having trouble that the source for the version you're using is no longer available. As a last resort, you can try to fix the problem yourself.</p>
<p class="para">
<b>Identify competitors to the open source product.</b> This shortens the time it takes to switch components should you need to do so.</p>
</div>
</div>
</div><br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td><div STYLE="MARGIN-LEFT: 0.15in;"><a href="toc.html"><img src="images/teamlib.gif" width="62" height="15" border="0" align="absmiddle"  alt="Team LiB"></a></div></td>
<td align="right"><div STYLE="MARGIN-LEFT: 0.15in;">
<a href="LiB0108.html"><img src="images/previous.gif" width="62" height="15" border="0" align="absmiddle" alt="Previous Section"></a>
<a href="LiB0110.html"><img src="images/next.gif" width="41" height="15" border="0" align="absmiddle" alt="Next Section"></a>
</div></td></tr></table>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -