<?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>kominetz &#187; jython</title>
	<atom:link href="http://kominetz.com/tag/jython/feed/" rel="self" type="application/rss+xml" />
	<link>http://kominetz.com</link>
	<description>Software, Technology, Productivity</description>
	<lastBuildDate>Thu, 22 Mar 2012 21:12:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>An Aspect of My Disappointment</title>
		<link>http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/</link>
		<comments>http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 21:39:30 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Aspects]]></category>
		<category><![CDATA[D6]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[jython]]></category>

		<guid isPermaLink="false">http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/</guid>
		<description><![CDATA[I found EMC&#8217;s webinar, Leveraging Composer and Aspects, informative given the format and one hour time limit. Composer is the Eclipse plug-in and looks good overall. An aspect is a software design technique which could revolutionize Documentum data architecture. How &#8230; <a href="http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>I found EMC&#8217;s webinar, <em>Leveraging Composer and Aspects</em>, informative given the format and one hour time limit.  Composer is the Eclipse plug-in and looks good overall.  An <a href="http://en.wikipedia.org/wiki/Aspect_%28computer_science%29" title="Aspect (Computer Science) -- wikipedia.org" target="_blank">aspect is a software design technique</a> which could revolutionize Documentum data architecture.  How EMC implemented aspects, however, repeats their architectural mistake with DBOF.  Oh well.</p>
<p>Composer looks competently-enough done to be a welcome replacement to the persnickety Documentum Application Builder (DAB).   The look and feel (and clutter) is pure Eclipse&#8211;no sexy Apple minimalist influence here.  The win here is one-stop shopping:  Developers won&#8217;t split their attention (nor workstations their resources) across two programs.  That&#8217;s definitely a Good Thing.</p>
<p>Aspects in theory are great.   They allow per-instance extension of both state and behavior, so objects get what they need when they need it.  The reduction in type bloat alone is worth it.  There&#8217;s no need for all those &#8220;optional attributes&#8221; just in case a particular instance becomes a document of record or gets included in a submission.  Fabulous.  In happy wonderful fantasy land, I&#8217;d scrap dm_document completely for a true lightweight object, then staple on versioning, lifecycles, web content, retention, and whatever as needed.</p>
<p>Aspects bring some real architectural benefits, too.  Adding an aspect at runtime doesn&#8217;t require ALTER TYPE activity which can crap out the database on some really big (or really underpowered) docbases.   Older docbases will also benefit from this easy way to add <em>and remove</em> new functionality without the potential dangers of hacking around the existing type hierarchy.  Documentum architects now have a built-in way to do composition, a technique that is largely replacing inheritance in OOP design theory because it keeps the design open and adaptable.</p>
<p>Aspects in practice aren&#8217;t so great.  My fear that aspects would use the DBOF model of requiring Java code client-side has been confirmed, although they made an effort to minimally support DQL since attributes are involved.  (No word on DQL limitations imposed by aspects yet.)  Turning the docbase into a JAR pusher has improved the deployment situation, but it&#8217;s still pushing functionality too far up the stack for my liking.  More moving parts mean more things can fail, get out of sync, or confound.</p>
<p>This design flaw will persist for as long as EMC is swinging their Java hammer, even on screws like scripting. Perhaps <a href="http://developer.emc.com/developer/articles/using_jython_with_dfc.htm" title="Using Jython to connect ... -- developer.emc.com" target="_blank">EMC catching onto jython</a> a few months back means they&#8217;re reaching back into the toolbox.  Funny how they had to make a simple script look so big with all the extraneous print statements&#8211;very Java of them.  If only there were another way to pass messages from a client to Documentum without the DFC.  Hmmm.</p>
<p>Here&#8217;s what I&#8217;m thinking:  All custom client applications and integrations should use DFS going forwrd&#8211;assuming it doesn&#8217;t have its own issues.  DFC programming should be restricted to the uber-server, that big  box drawn around the <em>real</em> docbase servers, webtop servers, DFC servers, full-text indexing servers, site caching servers, etcetera.  Only push DARs&#8211;yes, they had to go there&#8211;to Documentum application servers.  What goes on in the uber-server stays in the uber-server&#8211;including every single line of DFC code.</p>
<p>Aspects are too useful to discount for a few architectural missteps&#8211;as long as you&#8217;re careful where you walk.</p>
<p>Tech Deep Dive:  Exploring Documentum Architecture &#8212; Leveraging Composer and Aspects<br />
Available soon on <a href="http://www.emc.com/events/ondemand-events.esp" target="_blank" title="EMC Events On Demand">EMC Events On Demand</a> (developer access may be required)</p>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2008%252F02%252F28%252Fthe-aspects-of-my-disappointment%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22An%20Aspect%20of%20My%20Disappointment%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

