<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-1503906774231900424</id><updated>2009-10-16T18:37:49.912-07:00</updated><title type='text'>RM's WebCafe'</title><subtitle type='html'>'Spicy Web Recipes'</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rmwebcafe.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default'/><link rel='alternate' type='text/html' href='http://rmwebcafe.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>RM's WebCafe'</name><uri>http://www.blogger.com/profile/14087259851957804987</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1503906774231900424.post-1847187693608085599</id><published>2008-05-07T00:50:00.000-07:00</published><updated>2008-05-08T01:28:31.554-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='middlegen on iseries'/><category scheme='http://www.blogger.com/atom/ns#' term='middlegen'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='middlegen for hibernate'/><title type='text'>Using Middlegen on iSeries/AS400</title><content type='html'>&lt;span style="font-weight: bold;"&gt;What is Middlegen?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Middlegen is an open source code generation framework that provides a general-purpose database-driven engine using various tools such as JDBC, Velocity, Ant and XDoclet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Preparing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a working directory where you install and store all related files. In this tutorial we'll use C:\Java as working directory. If you want to store it somewhere else, then you'll have to replace every occurrence of "C:\Java" throughout the tutorial by the desired directory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What is Ant?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apache Ant is a Java-based build tool.Currently, the only way to start Middlegen is from Ant. The middlegen.jar file contains an Ant task you should use to run Middlegen.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Download and install Ant&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.Surf to the &lt;a href="http://ant.apache.org/bindownload.cgi"&gt;Ant download page&lt;/a&gt;.&lt;br /&gt;2.Pick the &lt;a href="http://archive.apache.org/dist/ant/binaries/"&gt;Ant binary&lt;/a&gt; (For this tutorial apache-ant-1.6.2 is used)&lt;br /&gt;3.Unzip Ant binary to C:\Java&lt;br /&gt;4.Rename apache-ant-1.6.2 to ant (C:\Java\ant)&lt;br /&gt;5.Install Ant on Windows&lt;br /&gt;Assume Ant is installed in c:\Java\ant\. The following sets up the environment:&lt;br /&gt;&lt;br /&gt;set ANT_HOME=c:\Java\ant&lt;br /&gt;set JAVA_HOME=c:\Java\jdk1.5&lt;br /&gt;set PATH=%PATH%;%ANT_HOME%\bin&lt;br /&gt;&lt;br /&gt;6.Run ant in command prompt&lt;br /&gt;Type ant, you should get a msg 'build.xml does not exist!' This means you are ready to use ANT now.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What is the relationship to Hibernate?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Middlegen design includes a plug-in architecture which facilitates particular aspects of a target system. Existing plugins include, simple java classes, EJB, JDO and now (close to) complete support for Hibernate. The hibernate plugin focuses on the generation of the mapping configuration files. Hibernates' excellent native hbm2java tool can be used to generated the domain classes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download and install Middlegen-Hibernate plugin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.Surf to &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=40712"&gt;Middlegen-Hibernate plugin download page&lt;/a&gt;&lt;br /&gt;2.Pick hibernate-middlegen&lt;br /&gt;3 Unzip to C:\Java Now it is C:\Java\Middlegen-Hibernate-r5&lt;br /&gt;4.Using command prompt change directory to C:\Java\Middlegen-Hibernate-r5 and type ant&lt;br /&gt;5.A gui opens to show tables in hsqldb&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_4IIhfsv4ie8/SCFjgGEerzI/AAAAAAAAAEE/2Ecgk0LIs40/s1600-h/airline_small.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_4IIhfsv4ie8/SCFjgGEerzI/AAAAAAAAAEE/2Ecgk0LIs40/s320/airline_small.gif" alt="" id="BLOGGER_PHOTO_ID_5197544847998627634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;6.Click Generate to generate metadata-mapping files&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Middlegen-Hibernate plugin directory structure&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Middlegen-Hibernate plugin consists of the following directory layout:&lt;br /&gt;&lt;br /&gt;Middlegen-Hibernate-r5&lt;br /&gt; |&lt;br /&gt; +--- build // contains the generated source&lt;br /&gt; |   +--- gen-src // contains the built mapping-metadata files&lt;br /&gt; |&lt;br /&gt; +--- lib  // contains necessary dependencies&lt;br /&gt; |&lt;br /&gt; +--- config // contains database mapping&lt;br /&gt; |      +--- database  // contains various database mapping xml files&lt;br /&gt; |&lt;br /&gt; +---- middlegen-lib // contains Middlegen-Hibernate plugin jars&lt;br /&gt; |       &lt;br /&gt; +--- src&lt;br /&gt; |   +--- sql // contains SQL scripts&lt;br /&gt; |&lt;br /&gt; |--- build.xml // Ant build file&lt;br /&gt; |&lt;br /&gt; |--- build.properties // defines build properties&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configuring Middlegen-Hibernate plugin&lt;/span&gt;&lt;br /&gt;1.On iSeries build a test Schema HMP.&lt;br /&gt;2.Place &lt;a href="https://sourceforge.net/projects/jt400"&gt;jt400.jar&lt;/a&gt; in lib.&lt;br /&gt;3.Build database mapping file as db2_as400.xml&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_4IIhfsv4ie8/SCFnjmEer0I/AAAAAAAAAEM/3MsM5kJ2deA/s1600-h/dbas400.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_4IIhfsv4ie8/SCFnjmEer0I/AAAAAAAAAEM/3MsM5kJ2deA/s320/dbas400.png" alt="" id="BLOGGER_PHOTO_ID_5197549306174680898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;4.Build SQL script file as airline-db2_as400.sql&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_4IIhfsv4ie8/SCFn2WEer1I/AAAAAAAAAEU/ak6HonXfv7Y/s1600-h/db400sql.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_4IIhfsv4ie8/SCFn2WEer1I/AAAAAAAAAEU/ak6HonXfv7Y/s320/db400sql.png" alt="" id="BLOGGER_PHOTO_ID_5197549628297228114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;5.Modify build.xml&lt;br /&gt;5.1 Replace db2_as400.xml in doctype declaration&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_4IIhfsv4ie8/SCFoKWEer2I/AAAAAAAAAEc/n4bX12jewWM/s1600-h/builddoc.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_4IIhfsv4ie8/SCFoKWEer2I/AAAAAAAAAEc/n4bX12jewWM/s320/builddoc.png" alt="" id="BLOGGER_PHOTO_ID_5197549971894611810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;5.2 Remove catalog&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4IIhfsv4ie8/SCFoj2Eer3I/AAAAAAAAAEk/ZQnzE4Fon_E/s1600-h/buildcat.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_4IIhfsv4ie8/SCFoj2Eer3I/AAAAAAAAAEk/ZQnzE4Fon_E/s320/buildcat.png" alt="" id="BLOGGER_PHOTO_ID_5197550409981276018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6.Rename build.properties.sample to build.properties&lt;br /&gt;7.Uncomment database.script.file and replace&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4IIhfsv4ie8/SCFo02Eer4I/AAAAAAAAAEs/-ZMzqdrK2to/s1600-h/buildprop.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_4IIhfsv4ie8/SCFo02Eer4I/AAAAAAAAAEs/-ZMzqdrK2to/s320/buildprop.png" alt="" id="BLOGGER_PHOTO_ID_5197550702039052162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Running Middlegen-Hibernate plugin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.Open command prompt as C:\Java\Middlegen-Hibernate-r5 and type ant create-table&lt;br /&gt;2.A message SQL statements executed successfully is shown.&lt;br /&gt;3.Now type ant.&lt;br /&gt;2.A gui is shown listing tables.&lt;br /&gt;3.Click Generate to generate metadata-mapping.&lt;br /&gt;4.Mapped-metadata files are generated under C:\Java\Middlegen-Hibernate-r5\build\gen-src.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Specifications&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Product&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="font-style: italic;"&gt;Version&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DB2 UDB for AS/400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;05.04.0000 V5R4m0&lt;br /&gt;Ant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.6.1&lt;br /&gt;Hibernate Core&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hibernate-2.1.7c&lt;br /&gt;Hibernate Extension&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hibernate-extensions-2.1.3&lt;br /&gt;jt400.jar&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.2.0.2&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ant.apache.org/"&gt;Ant&lt;/a&gt;&lt;br /&gt;&lt;a href="http://boss.bekk.no/boss/middlegen/index.html"&gt;Middlegen&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.hibernate.org/98.html"&gt;Middlegen-Hibernate plugin &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Play with Middlegen&lt;br /&gt;Ratnesh&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1503906774231900424-1847187693608085599?l=rmwebcafe.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmwebcafe.blogspot.com/feeds/1847187693608085599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1503906774231900424&amp;postID=1847187693608085599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/1847187693608085599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/1847187693608085599'/><link rel='alternate' type='text/html' href='http://rmwebcafe.blogspot.com/2008/05/using-middlegen-on-iseriesas400.html' title='Using Middlegen on iSeries/AS400'/><author><name>RM's WebCafe'</name><uri>http://www.blogger.com/profile/14087259851957804987</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13440171324534144741'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_4IIhfsv4ie8/SCFjgGEerzI/AAAAAAAAAEE/2Ecgk0LIs40/s72-c/airline_small.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1503906774231900424.post-1365985463115199754</id><published>2008-05-02T00:09:00.000-07:00</published><updated>2008-05-02T01:22:02.057-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='iseries'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate with iseries'/><category scheme='http://www.blogger.com/atom/ns#' term='as400'/><title type='text'>Using Hibernate with iSeries/AS400</title><content type='html'>&lt;strong&gt;Configuring hibernate.cfg.xml&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Hibernate version : 3.2.6 GA&lt;br /&gt;&lt;br /&gt;jt400.jar&lt;br /&gt; &lt;br /&gt;Specification-Version: 5.2.0.2&lt;br /&gt;Implementation-Version: JTOpen 3.3&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_4IIhfsv4ie8/SBrAL2EeryI/AAAAAAAAAD8/bfF6c8vKYlM/s1600-h/2008-05-02_125347.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5195676429850685218" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: left" alt="" src="http://2.bp.blogspot.com/_4IIhfsv4ie8/SBrAL2EeryI/AAAAAAAAAD8/bfF6c8vKYlM/s320/2008-05-02_125347.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;system-name&lt;/strong&gt;&lt;/em&gt;    127.0.0.1&lt;br /&gt;&lt;em&gt;&lt;strong&gt;database&lt;/strong&gt;&lt;/em&gt;            ASDB&lt;br /&gt;&lt;em&gt;&lt;strong&gt;properties&lt;/strong&gt;&lt;/em&gt;          naming=system;libraries=QTEMP ASDB ASDBA SFG&lt;br /&gt;&lt;br /&gt;Complete URL&lt;br /&gt;&lt;br /&gt;jdbc:as400://127.0.0.1/ASDB;naming=system;&lt;br /&gt;libraries=QTEMP ASDB ASDBA SFG;translate binary=true;prompt=false;user=GUEST;&lt;br /&gt;password=LOGIN&lt;br /&gt;&lt;br /&gt;Note : properties are separated by ';'.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/jt400"&gt;Download jt400.jar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A list of supporting dialect&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.3/doc/hibernate/Hibernate_Reference_Guide/Optional_configuration_properties-SQL_Dialects.html"&gt;Supporting dialect&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Play with iseries........!&lt;br /&gt;Ratnesh&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1503906774231900424-1365985463115199754?l=rmwebcafe.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmwebcafe.blogspot.com/feeds/1365985463115199754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1503906774231900424&amp;postID=1365985463115199754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/1365985463115199754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/1365985463115199754'/><link rel='alternate' type='text/html' href='http://rmwebcafe.blogspot.com/2008/05/using-hibernate-with-iseriesas400.html' title='Using Hibernate with iSeries/AS400'/><author><name>RM's WebCafe'</name><uri>http://www.blogger.com/profile/14087259851957804987</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13440171324534144741'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_4IIhfsv4ie8/SBrAL2EeryI/AAAAAAAAAD8/bfF6c8vKYlM/s72-c/2008-05-02_125347.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1503906774231900424.post-1067478268568220728</id><published>2008-04-25T00:06:00.000-07:00</published><updated>2008-04-25T00:35:58.407-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tapestry'/><category scheme='http://www.blogger.com/atom/ns#' term='web frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='iBatis'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='dwr'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='thinwire'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='struts'/><category scheme='http://www.blogger.com/atom/ns#' term='cayeene'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>Web Frameworks</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Open Source AJAX Frameworks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Google Web Toolkit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Google Web Toolkit (GWT) makes it easier to write high-performance AJAX applications. You write your front end in the Java programming language and GWT compiles your source into highly optimized JavaScript. Writing web apps today is a tedious and error-prone process. You spend 90% of your time working around browser quirks, and JavaScript's lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.&lt;br /&gt;&lt;a href="http://code.google.com/webtoolkit/"&gt;&lt;br /&gt;http://code.google.com/webtoolkit/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ThinWire&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ThinWire® is an LGPL open source, free for commercial use, development framework that allows you to easily build applications for the web that have responsive, expressive &amp; interactive user interfaces without the complexity of the alternatives. While virtually any web application can be built with ThinWire®, when it comes to enterprise applications, the framework excels with its highly interactive and rich user interface components. Use ThinWire® to handle the view-layer of your Java EE (J2EE) application and you'll be able to provide an unparalleled user experience, while at the same time completing your project faster than ever.&lt;br /&gt;&lt;a href="http://www.thinwire.com/"&gt;&lt;br /&gt;http://www.thinwire.com/&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Direct Web Remoting&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DWR allows Javascript in a browser to interact with Java on a server and helps you manipulate web pages with the results.&lt;br /&gt;&lt;br /&gt;DWR is Easy Ajax for Java&lt;br /&gt;&lt;a href="http://getahead.org/dwr"&gt;&lt;br /&gt;http://getahead.org/dwr&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Open Source J2EE/Web Frameworks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Spring&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Spring Framework, the leading full-stack Java/JEE application framework. Led and sustained by SpringSource, Spring delivers significant benefits for many projects, increasing development productivity and runtime performance while improving test coverage and application quality.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.springframework.org/"&gt;http://www.springframework.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;AppFuse&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;AppFuse is an open source project and application that uses open source tools built on the Java platform to help you develop Web applications quickly and efficiently. It was originally developed to eliminate the ramp-up time found when building new web applications for customers. At its core, AppFuse is a project skeleton, similar to the one that's created by your IDE when you click through a wizard to create a new web project.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://appfuse.org"&gt;http://appfuse.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Struts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apache Struts is a free open-source framework for creating Java web applications.&lt;br /&gt;&lt;br /&gt;Web applications differ from conventional websites in that web applications can create a dynamic response. Many websites deliver only static pages. A web application can interact with databases and business logic engines to customize a response.&lt;br /&gt;&lt;br /&gt;Web applications based on JavaServer Pages sometimes commingle database code, page design code, and control flow code. In practice, we find that unless these concerns are separated, larger applications become difficult to maintain.&lt;br /&gt;&lt;br /&gt;One way to separate concerns in a software application is to use a Model-View-Controller (MVC) architecture. The Model represents the business or database code, the View represents the page design code, and the Controller represents the navigational code. The Struts framework is designed to help developers create web applications that utilize a MVC architecture.&lt;br /&gt;&lt;br /&gt;The framework provides three key components:&lt;br /&gt;&lt;br /&gt;    * A "request" handler provided by the application developer that is mapped to a standard URI.&lt;br /&gt;    * A "response" handler that transfers control to another resource which completes the response.&lt;br /&gt;    * A tag library that helps developers create interactive form-based applications with server pages.&lt;br /&gt;&lt;br /&gt;The framework's architecture and tags are buzzword compliant. Struts works well with conventional REST applications and with nouveau technologies like SOAP and AJAX.&lt;br /&gt;&lt;a href="http://struts.apache.org/"&gt;&lt;br /&gt;http://struts.apache.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;JSF&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;JavaServer Faces technology simplifies building user interfaces for JavaServer applications. Developers of various skill levels can quickly build web applications by: assembling reusable UI components in a page; connecting these components to an application data source; and wiring client-generated events to server-side event handlers.&lt;br /&gt;&lt;a href="http://java.sun.com/javaee/javaserverfaces/"&gt;&lt;br /&gt;http://java.sun.com/javaee/javaserverfaces/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Tapestry&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tapestry divides a web application into a set of pages, each constructed from components. This provides a consistent structure, allowing the Tapestry framework to assume responsibility for key concerns such as URL construction and dispatch, persistent state storage on the client or on the server, user input validation, localization/internationalization, and exception reporting. Developing Tapestry applications involves creating HTML templates using plain HTML, and combining the templates with small amounts of Java code using (optional) XML descriptor files. In Tapestry, you create your application in terms of objects, and the methods and properties of those objects -- and specifically not in terms of URLs and query parameters. Tapestry brings true object oriented development to Java web applications. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://jakarta.apache.org/tapestry/"&gt;http://jakarta.apache.org/tapestry/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Open Source Persistence Frameworks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Cayenne&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apache Cayenne is an open source persistence framework licensed under the Apache License, providing object-relational mapping (ORM) and remoting services.With a wealth of unique and powerful features, Cayenne can address a wide range of persistence needs. Cayenne seamlessly binds one or more database schemas directly to Java objects, managing atomic commit and rollbacks, SQL generation, joins, sequences, and more. With Cayenne's Remote Object Persistence, those Java objects can even be persisted out to clients via Web Services. Or, with native XML serialization, objects can be even further persisted to non-Java clients - such as an Ajax-capable browser.&lt;br /&gt;&lt;a href="http://objectstyle.org/cayenne/"&gt;&lt;br /&gt;http://objectstyle.org/cayenne/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;iBATIS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The iBATIS framework will help to significantly reduce the amount of Java code that is normally needed to access a relational database. This framework maps JavaBeans to SQL statements using a very simple XML descriptor.&lt;br /&gt;&lt;br /&gt;Every iBATIS implementation includes these basic components...&lt;br /&gt;&lt;br /&gt;The iBATIS Data Mapper provides a very simple and flexible means of moving data between your Java and .NET objects and a relationaldatabase. Use the full power of real SQL without a single line of JDBC or ADO.NET code!&lt;br /&gt;&lt;br /&gt;iBATIS Data Access Objects is an abstraction layer that hides the details of your persistence solution and provides a common API to therest of your application.&lt;br /&gt;&lt;br /&gt;PetStore is a fully functional web application based on iBATIS open source persistence layer products, including theSQL Maps and Data Access Objects frameworks.&lt;br /&gt;&lt;a href="http://ibatis.apache.org/javadownloads.cgi"&gt;&lt;br /&gt;http://ibatis.apache.org/javadownloads.cgi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hibernate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hibernate is a powerful, ultra-high performance object/relational persistence and query service for Java. Hibernate lets you develop persistent objects following common Java idiom - including association, inheritance, polymorphism, composition and the Java collections framework. Extremely fine-grained, richly typed object models are possible. The Hibernate Query Language, designed as a "minimal" object-oriented extension to SQL, provides an elegant bridge between the object and relational worlds.&lt;br /&gt;&lt;a href="http://www.hibernate.org/"&gt;&lt;br /&gt;http://www.hibernate.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Further Reading&lt;/span&gt;&lt;br /&gt;&lt;a href="http://java-source.net/"&gt;&lt;br /&gt;http://java-source.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1503906774231900424-1067478268568220728?l=rmwebcafe.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmwebcafe.blogspot.com/feeds/1067478268568220728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1503906774231900424&amp;postID=1067478268568220728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/1067478268568220728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/1067478268568220728'/><link rel='alternate' type='text/html' href='http://rmwebcafe.blogspot.com/2008/04/web-frameworks.html' title='Web Frameworks'/><author><name>RM's WebCafe'</name><uri>http://www.blogger.com/profile/14087259851957804987</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13440171324534144741'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1503906774231900424.post-2152940152876002669</id><published>2008-04-09T22:14:00.000-07:00</published><updated>2008-04-24T05:38:27.742-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>Configuring PHP on Tomcat</title><content type='html'>&lt;strong&gt;Preparing&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;PHP Version 5.2.5&lt;br /&gt;Tomcat Version 5.5.25&lt;br /&gt;&lt;br /&gt;Let's assume that your current Tomcat install can be found in c:\Tomcat5\&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Download PHP and PECL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.&lt;br /&gt;&lt;br /&gt;1. Surf to &lt;a href="http://www.php.net/downloads.php"&gt;http://www.php.net/downloads.php&lt;/a&gt; and download the current version of PHP for Windows machine.&lt;br /&gt;2. Download the corresponding PECL modules.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Configure Tomcat&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. Create a c:\Tomcat5\php\ directory and unzip the PHP zip file in it.&lt;br /&gt;2. Rename php.ini-dist, in c:\Tomcat5\php\, to php.ini&lt;br /&gt;3. Extract php5servlet.dll from the PECL zip file to c:\Tomcat5\php\&lt;br /&gt;4. Create a directory under c:\Tomcat5\webapps\; in our case: phptest&lt;br /&gt;5. In c:\Tomcat5\webapps\phptest\, create a subdirectory: WEB-INF&lt;br /&gt;6. In c:\Tomcat5\webapps\phptest\WEB-INF\,&lt;br /&gt;create web.xml with the following content:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_4IIhfsv4ie8/SBAUsmEernI/AAAAAAAAACA/S7sOSZdq1n4/s1600-h/php-tomcat-web_xml.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_4IIhfsv4ie8/SBAUsmEernI/AAAAAAAAACA/S7sOSZdq1n4/s320/php-tomcat-web_xml.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5192673126724316786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7. Rename php5servlet.dll to php5srvlt.dll.&lt;br /&gt;8. Copy c:\Tomcat5\php\ php5srvlt.dll and c:\Tomcat5\php\php5ts.dll to c:\windows\system32\&lt;br /&gt;9. Create a test page in c:\Tomcat5\webapps\phptest\test.php with this contents:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_4IIhfsv4ie8/R_2quxnr6PI/AAAAAAAAAAg/xkSiYmT_u1U/s1600-h/testphp.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_4IIhfsv4ie8/R_2quxnr6PI/AAAAAAAAAAg/xkSiYmT_u1U/s320/testphp.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5187490066371176690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;10. (For Tomcat 4.x copy phpsrvlt.jar c:\Tomcat4\php to c:\Tomcat4\lib)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Run PHP in Tomcat&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Start Tomcat and go to &lt;a href="http://localhost:8080/phptest/test.php"&gt;http://localhost:8080/phptest/test.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1503906774231900424-2152940152876002669?l=rmwebcafe.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmwebcafe.blogspot.com/feeds/2152940152876002669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1503906774231900424&amp;postID=2152940152876002669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/2152940152876002669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/2152940152876002669'/><link rel='alternate' type='text/html' href='http://rmwebcafe.blogspot.com/2008/04/configuring-php-525-on-tomcat-5525.html' title='Configuring PHP on Tomcat'/><author><name>RM's WebCafe'</name><uri>http://www.blogger.com/profile/14087259851957804987</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13440171324534144741'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_4IIhfsv4ie8/SBAUsmEernI/AAAAAAAAACA/S7sOSZdq1n4/s72-c/php-tomcat-web_xml.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1503906774231900424.post-6459712334000282862</id><published>2008-01-21T21:08:00.000-08:00</published><updated>2008-04-24T05:55:50.565-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='versions'/><category scheme='http://www.blogger.com/atom/ns#' term='compatible'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='technologies'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>Web Technologies and Compatible Versions</title><content type='html'>&lt;table class="MsoNormalTable" style="border: medium none ; margin-left: -27pt; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style="height: 28.5pt;"&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; width: 86.25pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 28.5pt;" valign="top" width="115"&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="border-style: solid solid solid none; padding: 0in 5.4pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; width: 0.95in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 28.5pt;" valign="top" width="91"&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;Tomcat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; padding: 0in 5.4pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; width: 87.3pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 28.5pt;" valign="top" width="116"&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;J2SE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; padding: 0in 5.4pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; width: 56.45pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 28.5pt;" valign="top" width="75"&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;Servlet&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; padding: 0in 5.4pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; width: 69.75pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 28.5pt;" valign="top" width="93"&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;JSP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; padding: 0in 5.4pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; width: 84.65pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 28.5pt;" valign="top" width="113"&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;J2EE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; padding: 0in 5.4pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; width: 65.6pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 28.5pt;" valign="top" width="87"&gt;   &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;JSF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 14.25pt;"&gt;   &lt;td style="border-style: none solid solid; padding: 0in 5.4pt; width: 86.25pt; height: 14.25pt;" valign="top" width="115"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 0.95in; height: 14.25pt;" valign="top" width="91"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;6.0.x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 87.3pt; height: 14.25pt;" valign="top" width="116"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;5/6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 56.45pt; height: 14.25pt;" valign="top" width="75"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;2.5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 69.75pt; height: 14.25pt;" valign="top" width="93"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;2.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 84.65pt; height: 14.25pt;" valign="top" width="113"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 65.6pt; height: 14.25pt;" valign="top" width="87"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 14.25pt;"&gt;   &lt;td style="border-style: none solid solid; padding: 0in 5.4pt; width: 86.25pt; height: 14.25pt;" valign="top" width="115"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 0.95in; height: 14.25pt;" valign="top" width="91"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;5.5.x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 87.3pt; height: 14.25pt;" valign="top" width="116"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 56.45pt; height: 14.25pt;" valign="top" width="75"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;2.4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 69.75pt; height: 14.25pt;" valign="top" width="93"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;2.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 84.65pt; height: 14.25pt;" valign="top" width="113"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 65.6pt; height: 14.25pt;" valign="top" width="87"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 14.25pt;"&gt;   &lt;td style="border-style: none solid solid; padding: 0in 5.4pt; width: 86.25pt; height: 14.25pt;" valign="top" width="115"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 0.95in; height: 14.25pt;" valign="top" width="91"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;4.1.x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 87.3pt; height: 14.25pt;" valign="top" width="116"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 56.45pt; height: 14.25pt;" valign="top" width="75"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;2.3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 69.75pt; height: 14.25pt;" valign="top" width="93"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 84.65pt; height: 14.25pt;" valign="top" width="113"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 65.6pt; height: 14.25pt;" valign="top" width="87"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.0/1.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 14.25pt;"&gt;   &lt;td style="border-style: none solid solid; padding: 0in 5.4pt; width: 86.25pt; height: 14.25pt;" valign="top" width="115"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 0.95in; height: 14.25pt;" valign="top" width="91"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;3.3.x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 87.3pt; height: 14.25pt;" valign="top" width="116"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 56.45pt; height: 14.25pt;" valign="top" width="75"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;2.2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 69.75pt; height: 14.25pt;" valign="top" width="93"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 84.65pt; height: 14.25pt;" valign="top" width="113"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;1.2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; padding: 0in 5.4pt; width: 65.6pt; height: 14.25pt;" valign="top" width="87"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Tahoma;font-size:11;"  &gt;-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1503906774231900424-6459712334000282862?l=rmwebcafe.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmwebcafe.blogspot.com/feeds/6459712334000282862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1503906774231900424&amp;postID=6459712334000282862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/6459712334000282862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/6459712334000282862'/><link rel='alternate' type='text/html' href='http://rmwebcafe.blogspot.com/2008/01/web-technologies-and-compatible.html' title='Web Technologies and Compatible Versions'/><author><name>RM's WebCafe'</name><uri>http://www.blogger.com/profile/14087259851957804987</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13440171324534144741'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1503906774231900424.post-1422827198785744985</id><published>2007-10-11T06:27:00.000-07:00</published><updated>2008-04-24T05:39:53.284-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web cafe'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Web Cafe'</title><content type='html'>&lt;span style="font-family:arial;"&gt;Most Web applications share a basic architecture consisting of three basic tiers:&lt;br /&gt;A &lt;strong&gt;Web Server&lt;/strong&gt; to serve static content such as images, JavaScript files, and style sheets.&lt;br /&gt;An &lt;strong&gt;Application layer&lt;/strong&gt; - process business logic, like accepting orders or choosing content to display.&lt;br /&gt;A &lt;strong&gt;Back-end data store&lt;/strong&gt; - that holds persistent information and provides access to it based on privileges and rules.&lt;br /&gt;A good metaphor is to describe these roles in the Café’ scenario.&lt;br /&gt;The &lt;strong&gt;Web Server&lt;/strong&gt; is the &lt;strong&gt;&lt;em&gt;Waiter&lt;/em&gt;&lt;/strong&gt;. When a customer places an order, the waiter goes off and returns it. He can return something "static" like a&lt;br /&gt;fork, or he can return something "prepared" on demand, such as a ham and cheese sandwich.&lt;br /&gt;The &lt;strong&gt;Application layer&lt;/strong&gt; is the &lt;strong&gt;&lt;em&gt;Cook&lt;/em&gt;&lt;/strong&gt;. He or she accepts requests from the waiter to prepare something on behalf of a diner, and may need to&lt;br /&gt;consult other resources to get information on how to prepare the dish.&lt;br /&gt;The &lt;strong&gt;Database &lt;/strong&gt;serves as the &lt;strong&gt;&lt;em&gt;Cookbook&lt;/em&gt;&lt;/strong&gt;. It stores recipes and organizes them by category and index.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1503906774231900424-1422827198785744985?l=rmwebcafe.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rmwebcafe.blogspot.com/feeds/1422827198785744985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1503906774231900424&amp;postID=1422827198785744985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/1422827198785744985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1503906774231900424/posts/default/1422827198785744985'/><link rel='alternate' type='text/html' href='http://rmwebcafe.blogspot.com/2007/10/web-cafe.html' title='Web Cafe&apos;'/><author><name>RM's WebCafe'</name><uri>http://www.blogger.com/profile/14087259851957804987</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13440171324534144741'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>