<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>let x=x &#187; weblogic</title>
	<atom:link href="http://www.crazymcphee.net/x/tag/weblogic/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crazymcphee.net/x</link>
	<description>programming idiom and methodology</description>
	<lastBuildDate>Tue, 13 Jul 2010 21:56:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>The Ordeal of Installing Oracle Service Bus on a Windows-based developer workstation</title>
		<link>http://www.crazymcphee.net/x/2010/07/12/the-ordeal-of-installing-oracle-service-bus-on-a-windows-based-developer-workstation/</link>
		<comments>http://www.crazymcphee.net/x/2010/07/12/the-ordeal-of-installing-oracle-service-bus-on-a-windows-based-developer-workstation/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 07:30:12 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[esb]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[osb]]></category>
		<category><![CDATA[poorly attempted humour]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[weblogic]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=570</guid>
		<description><![CDATA[This is a genuine installation procedure which I wrote, but you might want to read it for its other values. Overview OSB installation in a development environment consists of a completely separate Weblogic instance and yet another &#8216;special installation&#8217; of Eclipse. You can&#8217;t use existing Eclipse installations. Nor is it recommend to use one of [...]]]></description>
			<content:encoded><![CDATA[<p>This is a genuine installation procedure which I wrote, but you might want to read it for its other values.</p>
<h2>Overview</h2>
<p>OSB installation in a development environment consists of a completely separate Weblogic instance and yet another &#8216;special installation&#8217; of Eclipse. You can&#8217;t use existing Eclipse installations. Nor is it recommend to use one of the five other existing Weblogic instances that Oracle products thoughtfully demand their own copy thereof (SOA Suite, I am looking at you).</p>
<h2>Installation process</h2>
<p>This is the procedure for installing OSB development environment.</p>
<p>As network firewall policy prevents the downloading of files, you will need to use installation media located within &lt;companyname&gt; network. Take the files conveniently stored on network server &lt;location redacted&gt; and copy them into a directory on your local computer. This directory is hereafter referred to as &#8216;installation files directory&#8217; below.</p>
<h3>Install Weblogic</h3>
<ol>
<li>Go to the installation files directory.</li>
<li>Run the executable file wls1033_oepe111150_win32.exe</li>
<li>This action launches the Oracle Installer for the Weblogic instance. It takes some time to run so contemplate the meaning of your life for a few minutes while it does. Maybe get a cup of tea. Stretch your legs. Think about lunch or your next holiday. File a support request for more memory. You should get at least 8GB.</li>
<li>Okay that&#8217;s it, you&#8217;ll finally see the Oracle Weblogic 10.3.3.0 installer. Think about the fact that Oracle sees fit to put &#8220;instructions&#8221; on the first screen telling you what the &#8220;Next&#8221; button does. This is advanced JEE server technology you&#8217;re installing, and potentially, Oracle think you don&#8217;t know what the &#8220;Next&#8221; button does. Maybe this reflects the level of experience inside Oracle, or perhaps it is indicative of the depth of respect in which Oracle holds their customers.</li>
<li>Press the &#8220;Next&#8221; button. The next screen you will see  is very important. If you fsck it up you&#8217;ll have to uninstall and start over. It does not have any instructions, but that&#8217;s OK, we&#8217;ve done it here in this wiki page for you. Pay attention.</li>
<li><strong>DO. NOT. ACCEPT. THE. DEFAULT.</strong> Especially if you installed SOA Suite or some other Oracle product before you installed this one. Double especially if you still want that product to work.</li>
<li>SELECT &#8220;Create a new Middleware Home&#8221; (THIS IS VERY IMPORTANT)</li>
<li>TYPE a name of an Appropriate Directory. I used &#8220;C:\Oracle\OSB_Middleware&#8221;</li>
<li>PRESS The &#8220;Next&#8221; button. Use the &#8220;Back&#8221; button if you need to see the instructions about how to use the &#8220;Next&#8221; button that Oracle conveniently provided for you on the first Screen. No, don&#8217;t do that. If you do that you&#8217;ll probably have to do this proceedure again and it will just make this entire experience last longer than it needs to. This is not a recommended practice.</li>
<li>The next screen demands that you give Oracle your Email Address to get &#8220;security updates&#8221;. It also wants a thing called your &#8220;My Oracle Support Password&#8221; (I suspect this is what might have been known as Oracle TechNet). As we both know, the best possible security measure is not to give out your password to strange programs that demand it.</li>
<li>As I planned on giving them my &lt;workcompany&gt; email, and as my Technet sub doesn&#8217;t use that Email address, I also unchecked the &#8220;I wish to receive security updated via My Oracle Support&#8221; check box.</li>
<li>Are you Sure? YES I&#8217;M VERY SURE. I would like to be &#8220;ignorant of security updates&#8221; and also Oracle spam. Ignorance is Bliss.</li>
<li>Look at that, I can&#8217;t give them my email address after all, what they really meant was &#8220;type your Oracle Support user id&#8221;. Press &#8220;Next&#8221;.</li>
<li>Now you have to choose whether you want a &#8220;Typical&#8221; installation or a &#8220;Custom&#8221; one. I chose &#8220;Typical&#8221;, which, being an Oracle installation, I expect to require an 8-core 64GB RAM 2TB SAN SSD -based supercomputer with a external 4-way Oracle RAC for configuration (&#8220;infrastructure&#8221;) DB in order to have enough grunt to service about 3 requests a minute. Press &#8220;Next&#8221;.</li>
<li>There&#8217;s a lot of choices here about the various subdirectories under the Middleware Home Directory that you created further back. I recommend accepting the defaults, but you can probably cause yourself countless of fun trolling on the My Oracle Support forums as you get ever-more-desparate for a solution to a very obscure problem that the phone support have no idea about and that was likely caused by you mucking about these defaults, causing the support personel to simply recommend you to reinstall the product, if you really feel the need to change them here.</li>
<li>If you can remember the instruction about the use of the &#8220;Next&#8221; button at step 4, then Press &#8220;Next&#8221;.</li>
<li>Now you can choose whether you want to put the shortcuts for &#8220;All users&#8221; or just you (&#8220;Local user&#8221;). If you are the BOFH I recommend &#8220;All Users&#8221;. As this is the default, we can all safely assume that the BOFH works for Oracle and is now responsible for designing their installation processes. Accept the default, and press &#8220;Next&#8221;.</li>
<li>The next screen is a summary of what you&#8217;ll be installing. You can also select each item and see a summary of what it does. Ponder the mystery of Oracle, and press &#8220;Next&#8221;.</li>
<li>Keep pondering that mystery while Oracle Weblogic Server 11g Release 1 (10.3.3.0) is installed. It takes a little bit of time. While it does that, you might to book that Holiday, get another cup of tea, or chase up that support request for the additional RAM you&#8217;ll be soon needing.</li>
<li>Congratulations! Installation is complete.</li>
<li>I opted to leave the &#8220;Run Quickstart&#8221; option checked.</li>
<li>Press &#8220;Done&#8221;. There are no onscreen instructions for this button.</li>
<li>Quickstart will run. It&#8217;s just a link farm.</li>
</ol>
<h3>Install Oracle Enterprise Pack for Eclipse (OEPE aka &#8220;Special Eclipse&#8221;)</h3>
<ol>
<li>Go to the installation files directory</li>
<li>Extract the file oepe-galileo-all-in-one-11.1.1.5.0.201003170852-win32.zip &#8230; I used 7zip and made sure to put it into a subdirectory of the installation files directory.</li>
<li>It&#8217;s kind of pretty big, takes a cople of minutes.</li>
<li>Just like a regular version of Eclipse, once this is unzipped, it&#8217;s installed. However it&#8217;s not a regular version of Eclipse. It is a &#8220;special&#8221; Eclipse that went to &#8220;special&#8221; school.</li>
<li>Although this directory can <em>probably</em> live anywhere, it&#8217;s a good idea to copy this directory into the new Oracle Middleware Home that you created when you installed Weblogic. Look I really have no idea why this is the case, however, it&#8217;s not good to anger the Oracle by using you regular development directories. ORACLE_HOME sweet ORACLE_HOME it is then.</li>
</ol>
<h3>Install OSB and OSB Dev Tools</h3>
<ol>
<li>Go to the installation files directory.</li>
<li>Extract the file ofm_osb_generic_11.1.1.3.0_disk1_1of1.zip &#8230; again I used 7zip and made sure to put it into a directory underneath the installation files directory.</li>
<li>Enter this directory. Enter the directory &#8220;osb&#8221; that will be created underneath it. Note that even though the file said &#8220;disk1_1of1&#8243; in the file name that underneath here there&#8217;s two directories, Disk1 and Disk2.</li>
<li>Go into the directory &#8220;Disk1&#8243;</li>
<li>Run the executable file &#8220;setup.exe&#8221;</li>
<li>A DOS window opens which asks you for the location of a JRE in order to use Oracle Universal Installer. Probably. Exactly why the Weblogic installer didn&#8217;t need to know where the JDK was, I do not know. Probably it used a sensible installer rather then the Oracle Universal Installer. I don&#8217;t ever think I&#8217;ve ever seen an machine with two Oracle installations on it that didn&#8217;t also have two or more installations of the Oracle Universal Installer also installed on it. Its name perhaps means that it installs itself universally, rather than it is a product which has a universal use for installing other software. Ponder the mystery of the Oracle.</li>
<li>A JRE will be located in the original Oracle Middleware Home that you created when you installed Weblogic. In fact there&#8217;s at least two (Sun JDK and JRockit). Use the Sun JDK. For example, my value for the JDK was &#8220;C:\Oracle\OSB_Middleware\jdk160_18&#8243;. Press Enter.</li>
<li>Now the Universal Installer will actually attempt to install something. It says &#8220;You are about to install the Oracle Service Bus (OSB) and may install the Oracle Service Bus IDE and Oracle Service Bus Examples (OSBE). Before proceeding, make sure that you have installed and configured Oracle WebLogic Server 11g. If you want to design OSB applications in Eclipse, make sure Oracle Enterprise Package for Eclipse (OEPE) is installed.&#8221; Which is all true if you&#8217;ve been following this guide.</li>
<li>Press &#8220;Next&#8221;. There&#8217;s no instructions in this program for the use of the &#8220;Next&#8221; button. Someone ought to file a change request for that.</li>
<li>Now you can choose whether you want a &#8220;Typical&#8221; installation or a &#8220;Custom&#8221; one. Typically, choose &#8220;Typical&#8221;.</li>
<li>Press &#8220;Next&#8221;. I tried looking for online help here about the use of the &#8220;Next&#8221; button but I did not find anything.</li>
<li>It does a prerequisite check. It should pass, and if it doesn&#8217;t, you are probably screwed. If it does, you will be able to Press &#8220;Next&#8221;</li>
<li>At this next screen <strong>DO NOT ACCEPT THE DEFAULTS</strong>.</li>
<li>Choose the Oracle Middleware Home that you installed the Weblogic into at the first part of this installation procedure. E.g. I chose &#8220;C:\Oracle\OSB_Middleware&#8221;.</li>
<li>Once you do the previous step, ff you followed the instructions for the Special Eclipse (OEPE), it will have found it automatically. If not, choose the location where you installed the Special Eclipse (OEPE Location). For example, my value was &#8220;C:\Oracle\OSB_Middleware\oepe-galileo-all-in-one-11.1.1.5.0.201003170852-win32&#8243;</li>
<li>Press &#8220;Next&#8221;. Did you know that the Oracle at Delphi was a priestess called the &#8216;Pythoness&#8217; who answered your question using gibberish verse. A Male Attendant of the Pythoness interpreted her raving mad gibberings and told you what they meant. For a fee. Does this sound familiar?</li>
<li>Review the installation details. When you are sure they are correct, press &#8220;Install&#8221;.</li>
<li>OSB will now install. It takes a little time so run those errands, go to lunch, get a coffee, dream of the Holiday you just Booked. I&#8217;d tell you to install the new 8GB of memory that you ordered before which surely has arrived by now, but that would mean turning your computer off. Best to wait until it&#8217;s finished then.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2010/07/12/the-ordeal-of-installing-oracle-service-bus-on-a-windows-based-developer-workstation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Glassfish is doomed in the &#8216;department&#8217;</title>
		<link>http://www.crazymcphee.net/x/2010/02/04/glassfish-is-doomed-in-the-department/</link>
		<comments>http://www.crazymcphee.net/x/2010/02/04/glassfish-is-doomed-in-the-department/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 10:25:18 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[weblogic]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=508</guid>
		<description><![CDATA[There&#8217;s been lots of discussion the past six months about the fate of MySQL under the ownership of Oracle. Now that the purchase of Sun is complete, I&#8217;m much more concerned about the fate of the excellent JEE platform Glassfish. For example some people think that superior technology will prove to Oracle that Glassfish is [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been lots of discussion the past six months about the fate of MySQL under the ownership of Oracle. Now that the purchase of Sun is complete, I&#8217;m much more concerned about the fate of the excellent JEE platform <a href="http://glassfish.dev.java.net/">Glassfish</a>. For example some people think that superior technology will prove to Oracle that Glassfish is worth pursuing (see the <a href="http://java.dzone.com/news/oh-yes-sun-not-set-yet">comments on this dZone thread about Kenai.com</a>).</p>
<p>The problem for Glassfish, as <a href="http://www.theserverside.com/news/thread.tss?thread_id=59317">the  second sentence of this ServerSide article states</a> (see it straight from Oracle&#8217;s mouth <a href="http://blogs.sun.com/arungupta/entry/glassfish_strategy_by_oracle_sun">here</a>, and see also <a href="http://www.infoworld.com/d/open-source/oracle-reveals-strategy-glassfish-mysql-openoffice-and-solaris-914">here</a>) is that Oracle  view it as being used for &#8220;non-mission critical department apps&#8221;. Glassfish&#8217;s superior technology (or otherwise) just doesn&#8217;t come into it. It&#8217;s not a factor (as it rarely every is).</p>
<p>Not so long ago Oracle spent a <em>big</em> wad of money acquiring an app server (Weblogic) and then a stack of <em>more</em> money porting all its other products into it and branding the resulting <span style="text-decoration: line-through;">mess</span> platform &#8220;Oracle Fusion Middleware 11g&#8221;. Now not only do they have their <em>third</em> app server (OC4J/OAS, Weblogic and Glassfish), but the Sun product suite includes products that compete with various Fusion Middleware 11g products (portals, ESBs, and so on).   So on one hand you&#8217;ve got a &#8220;departmental&#8221; application server, which you can either licence for free by downloading the open-source version, or buy support for the fancier &#8216;Enterprise&#8217; version, and on the other, an expensive, full-stack-integrated (all the way to the IDE), fully-branded <em>strategic platform</em> that Oracle just invested a vast amount of money into, and have been pushing like crazy onto customers the past six months. And it is the same sales team that will sell both this licensed &#8220;departmental&#8221; Glassfish. Therefore if you say the magic words like &#8220;need a cluster&#8221; or maybe &#8220;we might build a portal&#8221;, or &#8220;we are considering adopting a service-orientated architecture&#8221;, lo and behold you&#8217;ll find the molto-dinero &#8220;Fusion Middleware&#8221; based solution installed all over your sorry arse quicker than you can say &#8220;<em>can you please explain this per-core with special CPU-architecture-loading-factor licencing schema to me once again and why is it a different price if I upgrade my hardware without adding any additional cores???</em>&#8220;.</p>
<p>Let&#8217;s dissect those &#8220;key points&#8221; of Oracle&#8217;s strategy announcement:</p>
<blockquote>
<table cellpadding="10">
<tr>
<th width="50%">
Key Point
</th>
<th width="50%">
What they meant to say
</th>
</tr>
<tr>
</tr>
<tr valign="top">
<td>GlassFish continues as the Java EE reference implementation and as an open source project.</td>
<td>
We see it as the way to dominate the direction of Java EE for at least two years, but for Larry&#8217;s sake don&#8217;t try to use it <em>in production</em>.
</td>
</tr>
<tr valign="top">
<td>Oracle&#8217;s strategic application server, Oracle WebLogic Server, together with GlassFish, provide world class Java EE infrastructure.</td>
<td>
Oracle&#8217;s strategic application server, Oracle WebLogic Server something something something provide world-class something something infrastructure.
</td>
</tr>
<tr valign="top">
<td>GlassFish Enterprise Server and WebLogic Server expected to share core components.</td>
<td>
We are the Borg. Resistance is futile. You will be assimilated.
</td>
</tr>
<tr valign="top">
<td>Oracle plans to add GlassFish Enterprise Server all WebLogic offerings.</td>
<td>
Hey, look at this cute free &#8220;reference implementation&#8221; thingy that comes free with Weblogic! You could use that to run your departmental Wiki instead of having to pay us another fortune for more Weblogic licences. Did you say &#8220;WIKI&#8221;? Did we tell you all about the great wiki-like Enterprise 2.0 features available in the Oracle Fusion Middleware 11g offering? How many test environments did you say you needed licences for?
</td>
</tr>
<tr valign="top">
<td>GlassFish Web Stack maintained for existing customers.</td>
<td>
Not available for sale.
</td>
</tr>
<tr valign="top">
<td>GlassFish Message Queue remains as the GlassFish messaging infrastructure.</td>
<td>
We&#8217;re not expecting to sell any licences of this. Just use Oracle Fusion Middleware&#8217;s SOA Suite 11g already. We&#8217;re fairly sure that&#8217;s got a message queue in it.
</td>
</tr>
<tr valign="top">
<td>Oracle plans to license GlassFish Enterprise Server and Java System Web Server with all WebLogic Server offerings.</td>
<td>
See above.
</td>
</tr>
<tr valign="top">
<td>GlassFish also available as standalone offering.</td>
<td>
Are you sure you didn&#8217;t mean to say &#8220;Weblogic&#8221;? No? Can you call back next Thursday at 2pm and ask for Fred? We&#8217;re reasonably certain he might know something about that Glassthingy.
</td>
</tr>
<tr valign="top">
<td>GlassFish will continue to be supported and maintained for an extended time period for customers current on support.</td>
<td>
Well, the lawyers said we had to. We know how to do this. Ask any 10g customer.
</td>
</tr>
<tr valign="top">
<td>GlassFish open source projects thrive</td>
<td>
As long as we will let them.</td>
</tr>
</table>
</blockquote>
<p>I know I&#8217;m a completely cynical bastard about these things, but I will wager within a few months that even if you deliberately ask for Glassfish Enterprise <em>directly</em> that you&#8217;ll have to fight off the Weblogic borg absolutely <em>tooth and nail to the last man</em> as they repeatedly try to board your IT department brandishing their integrated-wizard-driven <em>Red Stack</em>. I predict that, basically, after a year of not even <em>trying</em> to sell any Glassfish licences &#8211; because if you ask for any of the features that are in the licenced version and not the open-source one, you&#8217;ll be pushed to Weblogic (and anyway, at ten times the price they&#8217;ll prefer to sell you Weblogic as a default position, after all &#8220;Glassfish comes free with Weblogic&#8221;) &#8211; Oracle will announce, &#8220;there&#8217;s no sales in it&#8221;, then probably ditch the licenced Glassfish version completely, leaving only the open source version. Finally sometime after that they&#8217;ll cut the open source funding off and it will have to limp along without hardly any of the resources it formerly had. Maybe they&#8217;ll donate it to the ghetto of an Apache incubator project where it can die unnoticed a couple of years after that.  It&#8217;s a pity because IMHO Glassfish is ten thousand times a better app server than anything Oracle ever produced, or even bought before this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2010/02/04/glassfish-is-doomed-in-the-department/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>GUI builders, modern development practices, and vendor lock-in</title>
		<link>http://www.crazymcphee.net/x/2009/02/14/gui-builders-modern-development-practices-and-vendor-lock-in/</link>
		<comments>http://www.crazymcphee.net/x/2009/02/14/gui-builders-modern-development-practices-and-vendor-lock-in/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 02:22:34 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[tools and techniques]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[weblogic]]></category>
		<category><![CDATA[wizards considered harmful]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=176</guid>
		<description><![CDATA[The Paranoid Engineer has declared &#8216;Screw All Gui Builders&#8216;, with an excellent example of the genre of code that can be produced by one such tool, contrasted against the much nicer hand-written code. Now I can certainly sympathise with his pain. The thing that really gets my goat up, and the subject of this post, [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://paranoid-engineering.blogspot.com/">Paranoid Engineer</a> has declared <a href="http://paranoid-engineering.blogspot.com/2009/02/screw-all-gui-builders.html" target="_blank"><em>&#8216;Screw All Gui Builders</em></a>&#8216;, with an excellent example of the genre of code that can be produced by one such tool, contrasted against the much nicer hand-written code. Now I can certainly sympathise with his pain. The thing that really gets my goat up, and the subject of this post, is when vendors use a GUI builder to lock the poor developer and the target <span style="text-decoration: line-through;">victim</span> sorry, enterprise, into their <em>entire product suite</em>.</p>
<p>My case-in-point <em>du jour</em> is Oracle&#8217;s new <a title="Oracle Rich Enterprise Applications" href="http://rea.oracle.com/" target="_blank">Rich Enterprise Applications</a> site and the associated technology.  On that site you will find a flash presentation of their technology around delivering and I quote:</p>
<blockquote><p>multi-channel capable applications that deliver desktop quality, highly interactive user experiences that are pre-integrated to enterprise class server technology.</p></blockquote>
<p>That sounds pretty good, might be of interest to me. Lets investigate further. Now, a lot this technology is built on top of standards, like JSF, and other commonly used technology like AJAX. The earlier version of the ADF component technology was donated to Apache where it lives as the <a title="Apache Trinidad" href="http://myfaces.apache.org/trinidad/index.html" target="_blank">Apache Myfaces Trinidad</a> project. The new components are built on top of these open sourced components. So far, so much is OK.</p>
<p>But, the kick in the tail can be seen in   even just in the quoted sentence above: <em>&#8220;pre-integrated to enterprise class server technology&#8221;</em> &#8211; they certainly don&#8217;t mean <em>Tomcat</em>, right? The point of the presentation is induce <em>lock in</em>. However I&#8217;m still willing to cut them some slack on this particular point. Of course, if you are thinking about using Oracle&#8217;s JSF technology, you probably are already committed to Oracle&#8217;s middleware technology anyway &#8211; and Weblogic is a perfectly good application server, if you need such advanced capabilities (and whether you actually do is another question for another day).</p>
<p>But what absolutely does my head in, is the insistence the only way to develop for this technology is to write it using their proprietary, non-standard developer technology, aka <em>JDeveloper</em>. This is the point where I have to say, I&#8217;m sorry Oracle, but &#8230; <em><strong>FAIL</strong></em>. <em>I actually don&#8217;t even care if your IDE is even the world&#8217;s best!</em> Or even if it comes as an Eclipse plugin. My beef with this sort of IDE integration is the total mind-set that it embodies. The IDE might have all the <em>drag-and-drop interface-building mojo</em> in all the world, but the code it produces will never, ever, stand up to a hand coded model driven off the target domain, using modern agile development techniques that are designed to ensure the most cost-effective, best-quality development delivering timely business process transformation (aka <em>value</em>) that the enterprise prioritises and chooses. Just look at the <a title="Oracle ADF FAQ" href="http://wiki.oracle.com/page/Oracle+ADF+FAQ?t=anon" target="_blank">ADF FAQ on the Oracle Wiki</a>.  Half the questions are related to the <em>IDE</em>. Here&#8217;s a <a title="Introduction to Oracle's ADF Faces" href="http://java.dzone.com/news/introduction-oracles-adf-faces" target="_blank">tutorial style introduction</a> that just assumes JDeveloper as the default way to get access to the Oracle JDF components.<em> </em></p>
<p><em>No, no a thousand times NO!</em></p>
<p>The biggest insult is the way that developers are treated as mere <em>commodities</em> in this whole process. They are just the warm bodies occupying the chair driving the interface. Much like the continually failed dream of <a title="Programmerless programming is just a mirage" href="http://www.crazymcphee.net/x/2009/01/17/programmerless-programming-is-just-a-mirage/" target="_self">developerless development</a>, their primary skill is seen as not &#8220;being a programmer&#8221; but &#8220;being a driver of a software package&#8221;. If I said, my financial skills and experience include 10 years Excel and 5 years MYOB &#8211; <em>I can haz CFO jobz now</em>? NO?! <em>Why not?</em> It&#8217;s insulting, that&#8217;s why not.</p>
<p>Software development is a profession, or at the very least a <em>craft</em>, and software developers should be able to choose their own tools. Obviously, some agreement has to be made organisationally, or at least across a single team or a whole project, to use a certain common toolset. Here&#8217;s one possible checklist:</p>
<blockquote><p>We&#8217;re writing a Java app, check. Deploying onto Weblogic, check. Database is Oracle 11g, check. We have <a href="http://www.crazymcphee.net/x/tag/scrum/">Scrum</a> as our process framework, check. <a href="http://www.crazymcphee.net/x/tag/test-driven-design/">TDD</a> is in our list of favoured engineering disciplines, check. Maven is our chosen build tool, check. Using Subversion for version control, check. Hudson for a continuous integration server, check. Writing the interface with Oracle ADF, check. Using Crossfire to deliver our web services, check. Spring for application wiring, check. Hibernate for persistence, check.</p></blockquote>
<p>Each of these things has to be agreed upon at an architectural and organisational level (and obviously I don&#8217;t mean to say that each of the above is the only choice for each type of item, I&#8217;m just giving <em>examples</em>).</p>
<p>You should note one very deliberate omission from that list, the IDE. <em>Architects</em> might impose a certain application server, a particular approach to application layering, and so on. The <em>developers</em> &#8211; at least the senior ones &#8211; have to choose and agree, for example, on whether to use Ant or Maven, CVS or SVN, Cruisecontrol or Hudson. But what they do not do, is force developers to favour Eclipse or IntelliJ or Netbeans or JDeveloper. What is the point of taking someone who is super-productive with a particular IDE&#8217;s keystrokes and  then forcing them to spend six months learning a whole new set, a new environment? That&#8217;s not productive! A developer needs to have the IDE <em>get out of the way</em>, become second nature &#8211; they need to be thinking about <em>code</em>, not where the menu is for the rename-method refactoring because they are unfamiliar with the keystrokes of the unfamiliar IDE. Keystrokes are <em>muscle memory</em>. You just think, <em>rename this method</em> and your fingers are already on the keys you need to press, without breaking your all-important <em>flow</em>. That&#8217;s how a developer is as <em>productive</em> as they can be. A productive development team should have a <em>mix</em> of IDEs (I&#8217;d propose that this would be statistically in proportion to the usage patterns of the common IDEs). Then we have the specific example of JDeveloper. I won&#8217;t even go into it except to say I&#8217;ve never heard a developer do anything but <em>curse</em> it, or maybe <em>laugh</em> at it. But it&#8217;s the laughter of the condemned man.</p>
<p>It&#8217;s something that vendors really need to get serious about. Rather than presenting me with a seamlessly integrated vision, from developer&#8217;s screen, through application server, to user&#8217;s screen, their technology presentations ought to think <em>discrete</em>. Each piece of technology ought to live and die on it&#8217;s own merits, something I&#8217;m sure Oracle&#8217;s ADF is perfectly capable of &#8211; without JDeveloper. If it&#8217;s not capable of being developed productively without JDeveloper, it&#8217;s already in the reject pile as far as I am concerned.</p>
<p>This essential information needs to be right up front. Don&#8217;t bury the information a thousand web sites deep in your developer portal. <em>Put it right there in the first presentation!</em> Separate the selling of the developer tooling from the selling of the user presentation frameworks and the server technology. Show me how I integrate Oracle ADF into TDD, into continuous integration, into the IDE of the developer&#8217;s choice. Because if you don&#8217;t, <em>you&#8217;ve already lost me as a potential customer</em>. This is the <em>real</em> future of software development. Look at where the major thought leaders of software development are taking development &#8211; open source frameworks, inversion of control, TDD, Domain Driven Design, Domain Specific Languages, Agile Methods, delivering real process transformation and business capability as early as possible &#8211; not <em>drag and drop with wizards</em>. FFS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/02/14/gui-builders-modern-development-practices-and-vendor-lock-in/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>JSR286 and vendor sales teams</title>
		<link>http://www.crazymcphee.net/x/2009/01/25/jsr286-and-vendor-sales/</link>
		<comments>http://www.crazymcphee.net/x/2009/01/25/jsr286-and-vendor-sales/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 01:06:27 +0000</pubDate>
		<dc:creator>Scot Mcphee</dc:creator>
				<category><![CDATA[infrastructure and frameworks]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[jsr168]]></category>
		<category><![CDATA[jsr286]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[tapestry5]]></category>
		<category><![CDATA[weblogic]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=94</guid>
		<description><![CDATA[Eric Spiegelberg recently speculated that the new Java portal specification JSR286 was at the edge of irrelevance. And others agree. I think it&#8217;s worse than irrelevant &#8211; it&#8217;s a solution in search of a problem. I&#8217;ve worked on a successful (JSR168) portal implementation, just last year. I truly don&#8217;t see what the concept of &#8216;portal&#8217; brings [...]]]></description>
			<content:encoded><![CDATA[<p>Eric Spiegelberg recently speculated that the new Java portal specification JSR286 was at the <a title="The edge of irrelevance" href="http://today.java.net/pub/a/today/2009/01/20/jsr-286-portlet-irrelevance.html" target="_blank">edge of irrelevance</a>. And <a title="In response to JSR286" href="http://www.andypemberton.com/portal/in-response-to-jsr-286-the-edge-of-irrelevance/" target="_blank">others agree</a>. I think it&#8217;s worse than irrelevant &#8211; it&#8217;s a solution in search of a problem.</p>
<p>I&#8217;ve worked on a successful (JSR168) portal implementation, just last year. I truly don&#8217;t see what the concept of &#8216;portal&#8217; brings to a web application beyond what could be simply programmed into a customised web application. We used Spring MVC Portal running under Websphere Portal and calling back-end services deployed on a BEA Weblogic server using Spring remoting (note: not WSRP which would have probably massively increased complexity). The reason this mix of platforms (Websphere and Weblogic) was used was <em>political</em>, not technical. I believe the whole use of portals in general tends to follow organisation&#8217;s political and not technical needs.</p>
<p>Despite all that, overall the custom portlets and the project as a whole was quite successful and the customer satisfied with the result. However I felt the most difficult aspects of the project were the parts of the deployment that were left to the portal container to provide. These are the things that are touted as the &#8216;advantage&#8217; using a portal container over a simple custom-built web application. Content management features caused the team members delivering these enormous headaches (and late nights) and the same can be said of the authentication and authorisation mechanisms employed. I felt we could have easily delivered these components using known JEE development APIs with all the customisation required by the customer in at least an equal amount of time.</p>
<p>As a contrast, we used Tapestry 5 to develop (actually, completely rewrite from an earlier phase one version in dire need of improvement) an administration component as a straight web application deployed into the Weblogic server. This took a pair of us less than two weeks to write using a functional-test-driven approach and delivered a very nice web app.</p>
<p>The issue of portal containers and standards being a political rather than a technical concern is particularly pertinent to me at the moment because it looks likely in the near future I&#8217;ll be working on another portal implementation for another client. I can&#8217;t be more specific regarding this but this particular client had already bought the portal server from a vendor and then approached consultants in order to get an actual implementation completed. Of course, no requirements gathering or analysis was done to determine if the portal solution was indeed the right one &#8211; the vendor&#8217;s sales team effectively provided the assurances of product suitability. Because the money is already spent and reputations already staked on the portal platform there&#8217;s no possible way a better solution can be suggested by any technical expert at this stage.</p>
<p>In my view, that&#8217;s the &#8220;relevance&#8221; of portal servers in the Java world. Vendor sales teams love to sell them.</p>
<h4>Update</h4>
<p><span style="color: #000000; "><span style="text-decoration: none;"><a title="JSR286 versus reality" href="http://www.jroller.com/holy/entry/are_portlets_dead_jsr168_and" target="_blank">Jakub Holý makes an excellent observation</a></span></span> about validity of the <em>concept</em> of a portal server:</p>
<blockquote><p>It&#8217;s a pity that portals and portlets aren&#8217;t easier to use and haven&#8217;t made it into the mainstream, the abilities of content aggregation, personalization, uniform security etc. are promising and as we can see in the rise of personal mashups like iGoogle, the fundamental ideas behind portals are still valid and extremely attractive. I hope that some mashup technology will soon provide a viable, light-weight alternative to portals.</p></blockquote>
<p>That&#8217;s an important point: <a title="iGoogle" href="http://google.com/ig/" target="_blank">iGoogle</a> is the most widely used example of a &#8220;portal&#8221; architecture. The modern trend towards the &#8220;mashup&#8221; (especially in social software) also shows the idea to aggregate different web applications under a common view, with security and other features is a valid one: it&#8217;s just the bloated, slow specification process, and predatory vendor sales departments that are stopping real innovation in this space in the Java area. Hopefully some light weight technology will soon emerge from among something like Spring, Tapestry, and GWT to produce a &#8220;portal&#8221; server that delivers actual value, and ease of development, deployment and usage, in a corporate context.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazymcphee.net/x/2009/01/25/jsr286-and-vendor-sales/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
