<?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' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7764201400658179581</id><updated>2012-02-02T11:34:50.686-08:00</updated><title type='text'>Tech Initiatives</title><subtitle type='html'>This blog is devoted to my search in the information technology realm.  Most things IT related including java, web services, Service Oriented Architecture, and software development processes.  Any opinions expressed on this site are in no way whatsoever intended to represent those of my company. Collin Smith</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>63</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-413886795197096868</id><published>2009-03-21T14:07:00.001-07:00</published><updated>2009-03-21T14:24:14.562-07:00</updated><title type='text'>Publishing/Deploying .NET 3.5 XAML applications</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_9sKUqr1J8tA/ScVa55N7uGI/AAAAAAAAFB8/TBPAUNQnahc/s1600-h/PublishXAML.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5315754885839042658" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 245px" alt="" src="http://2.bp.blogspot.com/_9sKUqr1J8tA/ScVa55N7uGI/AAAAAAAAFB8/TBPAUNQnahc/s320/PublishXAML.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;I did some investigation in how to deploy a .NET 3.5 XAML Application onto a network share drive. One can just put the dlls into a location on the share drive but deploying a new version when someone is running the application is problematic. This is because the user file locks the dlls.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;So in this entry I would like to present:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;1. How to publish a XAML application in Visual Studio 2008 to a share drive&lt;/div&gt;&lt;br /&gt;&lt;div&gt;2. Some thoughts on deployments through a dev, test, prod share locations passing various gates of developer and UAT approvals&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;1. Steps in deploying a XAML application in Visual Studio 2008&lt;/div&gt;&lt;br /&gt;&lt;div&gt;A. Open your XAML solution&lt;/div&gt;&lt;br /&gt;&lt;div&gt;B. Verify your Assembly name (Right click the WinForm project/Properties/ ensure the Assembly name is what you want vs. the default $safeprojectname$.Winform&lt;/div&gt;&lt;br /&gt;&lt;div&gt;You will need to update your references in your XAML files when you change this value as well&lt;/div&gt;&lt;br /&gt;&lt;div&gt;C. Go to Build/Publish (Assembly Name)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;D. Specify the UNC Path to where the XAML application will be deployed &lt;a href="file://sharedrive/XamlApp/"&gt;file://sharedrive/XamlApp/&lt;/a&gt; and click Next&lt;/div&gt;&lt;br /&gt;&lt;div&gt;E. Specify how users will install the application&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Select the "From a UNC path or file share" and the value should be the same path as the previous step and click Next&lt;/div&gt;&lt;br /&gt;&lt;div&gt;F. Will the application be available offline? &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Yes - A short cut added to the Start Menu and the application can be uninstalled via Add/Remove programs(Probably don’t want to do this, because it installs the application locally) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;No - Only available online (No short cut and run directly from publish location) &lt;/div&gt;&lt;br /&gt;&lt;div&gt;and click Next&lt;/div&gt;&lt;br /&gt;&lt;div&gt;G. Click Finish&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The publish will occur at the location of the UNC path specified.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;There will be a publish.htm file which will also be launched at the end of the deploy to run the application.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;This html page contains a link to the AssemblyName.application file that will launch the application.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The Application Files folder created will contain various versions of the application; each publish will create a new folder with an incremented version number.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Extra notes:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Publishing a new application version can be done without concern to users currently running the application.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Even if the files on the share are deleted and the user is running the application, the user will not notice&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Older version under the Application Files directory can be removed if disk space is a concern.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-413886795197096868?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/413886795197096868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=413886795197096868' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/413886795197096868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/413886795197096868'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2009/03/publishingdeploying-net-35-xaml.html' title='Publishing/Deploying .NET 3.5 XAML applications'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9sKUqr1J8tA/ScVa55N7uGI/AAAAAAAAFB8/TBPAUNQnahc/s72-c/PublishXAML.jpg' height='72' width='72'/><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-6363344789736838627</id><published>2009-01-11T19:24:00.000-08:00</published><updated>2009-01-18T12:18:50.713-08:00</updated><title type='text'>Connecting to the Business Objects CMS with .NET</title><content type='html'>Here is some sample code to connect to the Business Objects CMS (Central Management Server) with .NET&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip:&lt;/strong&gt;&lt;br /&gt;Please note that the QueryBuilder SQL will return a maximum of 1000 records even if there are more to be returned.  So logic should be included that if 1000 sorted records are returned, you should requery to retrieve missed records or until a recordset with less than 1000 returned records occurs.&lt;br /&gt;&lt;br /&gt;This sample is a .NET 3.5 application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Create a simple project and add references to&lt;/strong&gt;&lt;br /&gt;CrystalDecisions.Enterprise&lt;br /&gt;CrystalDecisions.Enterprise.Framework&lt;br /&gt;CrystalDecisions.Enterprise.InfoStore&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sample Code:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using CrystalDecisions.Enterprise;&lt;br /&gt;&lt;br /&gt;namespace ConsoleAConnection&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;class Program&lt;br /&gt;{&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;string query = "Select SI_ID,SI_KIND,SI_NAME,SI_PARENT_FOLDER FROM CI_INFOOBJECTS WHERE SI_KIND IN ('Folder','FavoritesFolder')";&lt;br /&gt;&lt;br /&gt;InfoObjects infoObjects = getCMCConnection().Query(query);&lt;br /&gt;if (infoObjects.Count &gt; 0)&lt;br /&gt;{&lt;br /&gt;foreach (InfoObject infoObject in infoObjects)&lt;br /&gt;{&lt;br /&gt;string siId = "" + infoObject.Properties["SI_ID"] + ":" + infoObject.Properties.Count;&lt;br /&gt;Console.WriteLine("SI_ID=" + siId);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;Console.WriteLine("No results found for " + query);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static InfoStore getCMCConnection()&lt;br /&gt;{&lt;br /&gt;SessionMgr sessionMgr = new SessionMgr();&lt;br /&gt;EnterpriseSession enterpriseSession = sessionMgr.Logon("UserName", "Password", "ServerName", "secEnterprise");&lt;br /&gt;EnterpriseService enterpriseService = enterpriseSession.GetService("InfoStore");&lt;br /&gt;InfoStore infoStore = new InfoStore(enterpriseService);&lt;br /&gt;return infoStore;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-6363344789736838627?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/6363344789736838627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=6363344789736838627' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6363344789736838627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6363344789736838627'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2009/01/connecting-to-business-objects-cms-with.html' title='Connecting to the Business Objects CMS with .NET'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-6191449869122860363</id><published>2009-01-08T22:38:00.000-08:00</published><updated>2009-01-08T22:45:54.170-08:00</updated><title type='text'>Software Estimation by Steve McConnell</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_9sKUqr1J8tA/SWbxZSbKOII/AAAAAAAAEso/6Eoprq_nRQY/s1600-h/softwareestimation.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5289180229138004098" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 177px; CURSOR: hand; HEIGHT: 216px" alt="" src="http://4.bp.blogspot.com/_9sKUqr1J8tA/SWbxZSbKOII/AAAAAAAAEso/6Eoprq_nRQY/s320/softwareestimation.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;I just finished "Software Estimation" by Steve McConnell.  This is a good book for covering exactly what the title indicates.&lt;/p&gt;&lt;p&gt;Steve McConnell is a well known author of software development books including "Code Complete".&lt;/p&gt;&lt;p&gt;This book starts with the difficulties experienced in software estimation and how hard it is indeed.&lt;/p&gt;&lt;p&gt;He then proceeds to cover approaches to develop more accurate estimates.  &lt;/p&gt;&lt;p&gt;Techniques which include:&lt;/p&gt;&lt;p&gt;- counting&lt;/p&gt;&lt;p&gt;- calibration with historical data&lt;/p&gt;&lt;p&gt;- expert judgment&lt;/p&gt;&lt;p&gt;- decomposition and recomposition&lt;/p&gt;&lt;p&gt;- estimatino by analogy&lt;/p&gt;&lt;p&gt;- proxy-based estimates&lt;/p&gt;&lt;p&gt;Coverage of expert judgment in groups, software estimation tools, handling multiple approaches, and standardizing estimating procedures.  The latter half of the book covers special issues in estimating.&lt;/p&gt;&lt;p&gt;All in all a good book to provide a thorough covering of software estimation.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-6191449869122860363?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/6191449869122860363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=6191449869122860363' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6191449869122860363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6191449869122860363'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2009/01/software-estimation-by-steve-mcconnell.html' title='Software Estimation by Steve McConnell'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9sKUqr1J8tA/SWbxZSbKOII/AAAAAAAAEso/6Eoprq_nRQY/s72-c/softwareestimation.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-8177156144563965293</id><published>2009-01-07T22:49:00.001-08:00</published><updated>2009-01-07T22:54:03.166-08:00</updated><title type='text'>ASP .NET 3.5 - Application Architecture and Design</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_9sKUqr1J8tA/SWWiILnrT-I/AAAAAAAAEsg/_p8RjTUgxio/s1600-h/ASPDotNet.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5288811598858375138" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 240px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://3.bp.blogspot.com/_9sKUqr1J8tA/SWWiILnrT-I/AAAAAAAAEsg/_p8RjTUgxio/s320/ASPDotNet.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;ASP .NET 3.5 - Application Architecture and Design&lt;/strong&gt; by Vivek Thakur is a great overview of architecture principles in the .NET 3.5 framework.  &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;This book is available at &lt;a href="http://www.packtpub.com/"&gt;http://www.packtpub.com&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Overview of major issues in application architecture with a perspective in regards to .NET 3.5. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Detailed explanation of the ASP.NET MVC framework!&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Lots of screen shots and code samples to document the architecture principles and how to apply them in .NET 3.5. Very straightforward review for anyone looking to get basic architecture principles in the .NET 3.5 framework.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;Chapter 1: Introduction to Architecture and Design&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Lays out the importance of architecture and design and the associated definitions.Outlining the difference between tiers(physical separation) and layers(logical separation).&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Chapter 2: 1-Tier 1-Layer Architecture in ASP.NET&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Overview of simplest ASP applications: aspx files with code-behind&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Chapter 3: ER Diagrams, Domain Model, and N-Layer Architecture&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Review of ER graphical notation for data representationsReview of Domain Model notation with a UML reviewReview of 3 Layer Architecture (Data Access Layer, Business Layer, UI Layer)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Chapter 4: N-Tier Architecture&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Reasons for N-Tier(Performance, Scalability, Reusability, Loose Coupling, better Plug and Play)5 Tier approach - Presentation, UI, Business, Data access, and Data tiers&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Chapter 5: Model View Controller&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Review of the Page Controller Pattern in ASP .NET(old style ASP .NET) and its problemsReview of the MVC Design or Model View Controller Detailed explanation of the ASP.NET MVC framework&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Chapter 6: Design Patterns&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Some review of useful design patterns as laid out by the "Gang of Four"Singleton, Factory, etc.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Chapter 7:SOA and WCF&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Review of Service Oriented Architecture and Windows Communication FoundationSOA: XML, building and consuming Web ServicesWCF: the bundling of everything required for web services including performance gains&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Chapter 8: Database Design&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Issues with designing, modelling with Visio, and creation of databases&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Chapter 9: Localization&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Making your .NET application usable in multiple languages&lt;br /&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-8177156144563965293?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/8177156144563965293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=8177156144563965293' title='160 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8177156144563965293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8177156144563965293'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2009/01/asp-net-35-application-architecture-and.html' title='ASP .NET 3.5 - Application Architecture and Design'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9sKUqr1J8tA/SWWiILnrT-I/AAAAAAAAEsg/_p8RjTUgxio/s72-c/ASPDotNet.jpg' height='72' width='72'/><thr:total>160</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-1375482650805955438</id><published>2008-12-14T19:43:00.001-08:00</published><updated>2008-12-14T19:46:25.057-08:00</updated><title type='text'>Domain Driven Design by Eric Evans</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_9sKUqr1J8tA/SUXSiJ2GcHI/AAAAAAAAEdE/ICAtZRnJWSg/s1600-h/ddd.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5279857622361993330" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 250px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://2.bp.blogspot.com/_9sKUqr1J8tA/SUXSiJ2GcHI/AAAAAAAAEdE/ICAtZRnJWSg/s320/ddd.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Domain-Driven Design by Eric Evans&lt;br /&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;This is a basic summary of the main points of this book. It provides some good tips on the software development process and some good pattern applications as well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;Premise of book&lt;/strong&gt;&lt;br /&gt;1. For most software projects, the primary focus should be on the domain and domain logic&lt;br /&gt;2. Complex domain designs should be based on a model.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Part I - Putting the Domain Model to Work&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 1 - Crunching Knowledge&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; Ingredients of Effective Modeling&lt;br /&gt;1. Binding the model and the implementation - crude model type created and changed iteratively&lt;br /&gt;2. Cultivating a language based on the model -explanations required between the software team and business&lt;br /&gt;3. Developing a knowledge-rich model - captures knowledge of various kinds&lt;br /&gt;4. Distilling the model - testing concepts and removing those which don't fit anymore&lt;br /&gt;5. Brainstorming and experimenting&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 2 - Communication and the Use of Language&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;When building your model use language that both sides(Development &amp;amp; Business) understand.&lt;br /&gt;This is called "Ubiquitous language"&lt;br /&gt;This helps make the model more useful for the conversation between development and business.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 3 - Binding Model and Implementation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A Domain Driven design calls for a model that doesn't just aid early analysis but is the very foundation for the design.&lt;br /&gt;Tightly relating the code to an underlying model gives the code meaning and makes the model relevant.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 4 - Isolating the Domain&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Give a Shipping Lane sample application with 4 tiers (User Interface, Application, Domain, and Infrastructure)&lt;br /&gt;Layers can communicate down but not up.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 5 - A Model Expressed in Software&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Introduce different types of objects&lt;br /&gt;Entity Objects - objects defined by their identity(ie. key), can change, change state&lt;br /&gt;Value Objects - objects that represent things that do not change, immutable (ie. an address)&lt;br /&gt;&lt;br /&gt;3 attributes of a good service&lt;br /&gt;1. operation relates to a domain concept that is not a natural part of an entity or value object&lt;br /&gt;2. interface is defined in terms of other elements of the domain model&lt;br /&gt;3. operation is stateless&lt;br /&gt;&lt;br /&gt;Modules(aka Packages, namespaces)&lt;br /&gt;grouping classes that are cohesive&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 6 - The Life Cycle of a Domain Object&lt;/strong&gt;&lt;br /&gt;Talking about Aggregate Objects&lt;br /&gt;Factories - Helping simpify the knowledge required to create complex objects&lt;br /&gt;- each factory operation should be atomic&lt;br /&gt;- the factory will be coupled to its arguments&lt;br /&gt;&lt;br /&gt;Repositories&lt;br /&gt;How to provide access to globally accessible objects&lt;br /&gt;Repositories advantages include&lt;br /&gt;- present clients with a simple model for obtaining persistent objects and managing their life cycle&lt;br /&gt;- decouple application and domain design from persistence technolgoy, database,....&lt;br /&gt;- communicate design decisions about object access&lt;br /&gt;- allow easy substitution of a dummy implementation, for use in testing&lt;br /&gt;&lt;br /&gt;Factory handles the beginning of an object's life; a Repository helps manage the middle and the end.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 7 - Using the Language: An Extended Example&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;An example of refinements in developing a Model-Driven Design via a Cargo Shipping System&lt;br /&gt;Isolating the Domain, Distinguishing Entities and Value Objects, Aggregate Boundaries&lt;br /&gt;&lt;br /&gt;Part III Refactoring Toward Deeper Insight&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 8 - Breakthrough&lt;/strong&gt;&lt;br /&gt;Each refinement of code and model gives devlopers a clearer view.&lt;br /&gt;This clarity creates the potential for a breakthrough of insights&lt;br /&gt;Work on refactoring may not show much progress initially but often eventually leads to a breakthrough&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 9 - Making Implicit Concepts Explicit&lt;br /&gt;&lt;/strong&gt;Listen to the language the domain experts use.  These are hints of a concept that might benefit the model.&lt;br /&gt;Scrutinize Awkwardness in language describing the model.&lt;br /&gt;There may be a missing concept&lt;br /&gt;Descibed patterns such as Specification - testing objects for certain criteria&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 10 - Supple Design&lt;/strong&gt;&lt;br /&gt;Intention-Revealing Interfaces - better expression&lt;br /&gt;Side-Effect-Free Functions - make safe and simple&lt;br /&gt;Assertions - make side effects explicit&lt;br /&gt;Standalone classes - Lower coupling, elimnate all other concepts from the picture&lt;br /&gt;Closure of Operations - where it fits, define an operation whose return typ is the same as the type of its arguments&lt;br /&gt;- this provides a high-level interface without introductin any dependency on other concepts&lt;br /&gt;Conceptual Contours - decompose design elements into cohesive units, taking into consideration your intuation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 11- Applying Analysis Patterns&lt;/strong&gt;&lt;br /&gt;Analysis patterns are groups of concepts that represent a common construction in business modelling.&lt;br /&gt;It may be releveant to only one domain or it may span many domains. [Fower 1997, p.8]&lt;br /&gt;-they help feed into the dynamo of knowledge crunching and refactoring toward deeper insight and stimulates development&lt;br /&gt;-when you use a term from a well-known analysis pattern, take care to keep the basic concept it designates intact&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 12 - Relating Design Patterns to the Model&lt;/strong&gt;&lt;br /&gt;Strategy - decoupling an algorithm via an interface which allows other algorithms to be interchanged&lt;br /&gt;Composite - treating individual objects and compositions of objects uniformly&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 13 - Refactoring Toward Deeper Insight&lt;/strong&gt;&lt;br /&gt;Focus on:&lt;br /&gt;1. Live in the domain&lt;br /&gt;2. Keep looking at things a different way&lt;br /&gt;3. Maintain an unbroken dialog with domain experts&lt;br /&gt;&lt;br /&gt;Part IV - Strategic Design&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 14 - Maintaining Model Integrity&lt;br /&gt;&lt;/strong&gt;Bounded Context - explicitly define the context within wich a model applies&lt;br /&gt;Continuous Integration - institute a process of merging all code and other implementation artifacts frequently&lt;br /&gt;Context Map - identify each model in play on the project and define its BOUNDED CONTEXT&lt;br /&gt;Shared Kernel - designate some subset of the domain model that the 2 teams agree to share&lt;br /&gt;Customer/Supplier Development Teams - establish a clear customer/supplier relationship between two teams&lt;br /&gt;Conformist - if there is an upstream/downstream relationship, the downstream should conform to the upstream group&lt;br /&gt;Anticorruption Layer - create an isolating layer to provide clients with functionality in terms of their own domain model.&lt;br /&gt;Separate Ways - declare a bounded context to have no connection to others at all(avoid cost of integration)&lt;br /&gt;Open Host Service - define a protocol that gives access to your subsystem as a set of Services&lt;br /&gt;Published Language - use a well-documented shared language that can express the necessary domain infomration as a common medium of communication&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 15 - Distillation&lt;/strong&gt;&lt;br /&gt;Core Domain - Boil the model down. Put most valuable and specialized concepts into the Core Domain, apply top talent to the Core Domain&lt;br /&gt;Generic Subdomains - identify cohesive subdomains that are not motivation for your project, leave no trace of project specifics there&lt;br /&gt;Domain Vision Statement - write short description of the Core domain ("value proposition"), statement to guide&lt;br /&gt;Highlighted Core - very brief document (3-7 pgs) that describes the core domain&lt;br /&gt;Cohesive Mechanisms - partition a conceptually cohesive mechanism into a separate lightweight framework(use intention revealing interface)&lt;br /&gt;Segregated Core - refactore the model to separate the core concepts from supporting players and strengthen the cohesion of the CORE while reducing its coupling to other code&lt;br /&gt;Abstract Core - Identify the most fundamental concepts in the model and factor them into distinct classes, abstract classes, or interfaces, place in own module&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 16 - Large Scale Structure&lt;/strong&gt;&lt;br /&gt;Devising a pattern of rules or roles and relationshiops that will span the entire system and that allows some understanding of each part's place in the whole&lt;br /&gt;Evolving Order - the conceptual large-scale structure evovolving with the application, possibly changing to a completely different type of structure along the way, avoid straight-jacketing&lt;br /&gt;System Metaphor - when a concrete analogy to the system emerges that captures the imagination of team members and seems to lead thinking in a useful direction, adopt it as a large-scale structure&lt;br /&gt;Responsibility Layers - look at conceptual dependencies in your model and the varying rates and sources of change of different parts of your domain, if you identify a natural strata in the domain, cast them as broad abstract responsibilities&lt;br /&gt;Knowledge Level - a group of objects that describes how another group of objects should behave, crate a distinct set of objects that can be used to describe and constrain the structure and behavior of the basic model&lt;br /&gt;Pluggable Component Framework - distill an abstract core of interfaces and interactions and create a framework that allows diverse implementations of those interfaces to be freely substituted&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 17 - Bringing the Strategy Together&lt;/strong&gt;&lt;br /&gt;Six essentials for Strategic Design Decision Making&lt;br /&gt;1. Decisions must reach the entire team&lt;br /&gt;2. The decision process must absorbe feedback&lt;br /&gt;3. The plan must allow for evolution&lt;br /&gt;4. Architecture teams must not siphon off all the best and brightest&lt;br /&gt;5. Strategic design requires minimalism and humility&lt;br /&gt;6. Objects are specialists; developers are generalists&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-1375482650805955438?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/1375482650805955438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=1375482650805955438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1375482650805955438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1375482650805955438'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/12/domain-driven-design-by-eric-evans.html' title='Domain Driven Design by Eric Evans'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9sKUqr1J8tA/SUXSiJ2GcHI/AAAAAAAAEdE/ICAtZRnJWSg/s72-c/ddd.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-1676611242745028285</id><published>2008-11-20T23:12:00.000-08:00</published><updated>2008-11-21T10:27:01.227-08:00</updated><title type='text'>Dynamic Checkerboard Code</title><content type='html'>An interesting problem is to draw a &lt;strong&gt;dynamic checkerboard or chessboard &lt;/strong&gt;with the constraints that the &lt;strong&gt;height and width of the board are variable &lt;/strong&gt;along with the fact that the dimension of the &lt;strong&gt;individual squares themselves have variable defining their own height and width&lt;/strong&gt;. The board must be &lt;strong&gt;drawn with a simple text output&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;The following java solution is proposed&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;/*&lt;br /&gt; * Create a function that can draw a checkerboard with boardwidth by boardlength where each square is squarewidth by squarelength.&lt;br /&gt; * It is to be drawn with System.out.prints only.&lt;br /&gt; */&lt;br /&gt;public class DrawCheckerBoard {&lt;br /&gt;&lt;br /&gt; public static void drawCheckerBoard(int checkerBoardWidth, int checkerBoardHeight, int squareWidth, int squareHeight)&lt;br /&gt; {&lt;br /&gt;  for (int i = 0 ; i &lt; checkerBoardHeight ; i++)&lt;br /&gt;  {&lt;br /&gt;   for (int j = 0 ; j &lt; squareHeight ; j++)&lt;br /&gt;   {&lt;br /&gt;    for(int k = 0 ; k &lt; checkerBoardWidth ; k++)&lt;br /&gt;    {&lt;br /&gt;       //determine character to draw for square&lt;br /&gt;       //based on the which checkerboard spot (i and k indices)&lt;br /&gt;       String character = "X";&lt;br /&gt;       if ((i+k)%2==0)&lt;br /&gt;       {&lt;br /&gt;      character = "O";&lt;br /&gt;       }&lt;br /&gt;       for (int l = 0 ; l &lt; squareWidth ; l++)&lt;br /&gt;       {&lt;br /&gt;      System.out.print(character);&lt;br /&gt;       }&lt;br /&gt;    }//end of line&lt;br /&gt;    System.out.println("");&lt;br /&gt;   }&lt;br /&gt;  }  &lt;br /&gt;&lt;br /&gt; }  &lt;br /&gt;&lt;br /&gt; public static void main(String[] args)&lt;br /&gt; {&lt;br /&gt;  &lt;br /&gt;  System.out.println("4 by 4 board with each square being 2 by 2");&lt;br /&gt;  drawCheckerBoard(4,4,2,2);&lt;br /&gt;&lt;br /&gt;  System.out.println("8 by 8 board with each square being 4 by 4");&lt;br /&gt;  drawCheckerBoard(8,8,4,4);&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-1676611242745028285?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/1676611242745028285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=1676611242745028285' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1676611242745028285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1676611242745028285'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/11/dynamic-checkerboard-code.html' title='Dynamic Checkerboard Code'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-3124571382240586663</id><published>2008-09-22T20:26:00.000-07:00</published><updated>2008-09-22T21:20:07.674-07:00</updated><title type='text'>COBIT Powerpoint Presentation</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_9sKUqr1J8tA/SNhjNOBbaII/AAAAAAAADa4/PqZmOmRWpCI/s1600-h/COBIT.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9sKUqr1J8tA/SNhjNOBbaII/AAAAAAAADa4/PqZmOmRWpCI/s320/COBIT.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5249054444453849218" /&gt;&lt;/a&gt;&lt;br /&gt;I researched to find out what COBIT was by reading &lt;a href="http://www.amazon.ca/Governance-Based-Cobit-4-1-Management/dp/9087531168/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1222140840&amp;sr=8-1"&gt;IT Governance Based on Cobit 4.1: A Management Guide (Paperback) &lt;br /&gt;&lt;/a&gt; by Koen Brand and Harry Boonen.&lt;br /&gt;&lt;br /&gt;COBIT is an IT Framework for Governance.  It has similarities to ITIL and some overlap.  One person told me that COBIT is what you build and ITIL is how you do it.&lt;br /&gt;&lt;br /&gt;Anyways, I made a brief powerpoint presentation on COBIT which may be viewed from &lt;a href="http://www.smithspicks.com/techinitiatives/COBITIntro.ppt"&gt;Here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Obviously very high level, but with pictures and some text, it will help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-3124571382240586663?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/3124571382240586663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=3124571382240586663' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3124571382240586663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3124571382240586663'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/09/cobit-powerpoint-presentation.html' title='COBIT Powerpoint Presentation'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9sKUqr1J8tA/SNhjNOBbaII/AAAAAAAADa4/PqZmOmRWpCI/s72-c/COBIT.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-4670916499722062096</id><published>2008-09-09T11:02:00.000-07:00</published><updated>2008-09-09T18:38:16.691-07:00</updated><title type='text'>Determining Leap Year in Oracle and Days in February</title><content type='html'>Recently, I was playing around with a leap year issue and the number of days in February.  I would like to share the following snippets of commands to help some people save some time.&lt;br /&gt;&lt;br /&gt;--2 ways to determine if it is a LEAP YEAR in ORACLE&lt;br /&gt;&lt;br /&gt;SELECT  2008 ,  Decode( mod(2008, 4), 0, decode( mod(2008, 400), 0, 'Yes', decode( mod(2008, 100),  0, 'No', 'Yes') ), 'No'  ) as LEAP_YEAR&lt;br /&gt;FROM DUAL;&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;SELECT DECODE(29, (SELECT to_date('01032008', 'DDMMYYYY') - to_date('01022008', 'DDMMYYYY')FROM DUAL),'LEAPYEAR','NOTLEAPYEAR')&lt;br /&gt;FROM DUAL;&lt;br /&gt;&lt;br /&gt;--2 ways to determine the NUMBER OF DAYS IN FEBRUARY in ORACLE&lt;br /&gt;&lt;br /&gt;SELECT (EXTRACT (DAY FROM LAST_DAY(ADD_MONTHS(TRUNC(TO_DATE('2008','YYYY'),'YYYY'),1))))&lt;br /&gt;FROM DUAL;&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;SELECT to_date('01032008', 'DDMMYYYY') - to_date('01022008', 'DDMMYYYY')&lt;br /&gt;FROM DUAL;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of course the input to these queries requires the year that you are inquiring about.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-4670916499722062096?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/4670916499722062096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=4670916499722062096' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4670916499722062096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4670916499722062096'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/09/determining-leap-year-in-oracle-and.html' title='Determining Leap Year in Oracle and Days in February'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-2145348021171686693</id><published>2008-08-30T10:12:00.001-07:00</published><updated>2008-08-30T10:21:24.946-07:00</updated><title type='text'>Powerpoint ITIL Presentation</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_9sKUqr1J8tA/SLl__atMGLI/AAAAAAAAC20/xPKOr7ya__c/s1600-h/itilimage.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5240360368899627186" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_9sKUqr1J8tA/SLl__atMGLI/AAAAAAAAC20/xPKOr7ya__c/s320/itilimage.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have recently done some research into ITIL including the reading of &lt;a href="http://www.amazon.ca/Foundations-Service-Management-Based-ITIL/dp/9087530579/ref=pd_bbs_sr_2?ie=UTF8&amp;s=books&amp;qid=1220116533&amp;sr=8-2"&gt;Foundations of IT Service Management Based on ITIL V3&lt;/a&gt; by Jan Van Bon, Arjen de Jong, and Axel Kolthof.&lt;br /&gt;&lt;br /&gt;ITIL is a very broad level topic about IT services and how to approach them.&lt;br /&gt;&lt;br /&gt;I did make a brief high level powerpoint presentation on an Introduction to ITIL.&lt;br /&gt;&lt;br /&gt;This presentation may be downloaded from &lt;a href="http://www.smithspicks.com/techinitiatives/ITILIntro.ppt"&gt;Here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is a basic high level presentation, it is difficult to present the topic without getting lost in the depth and breadth.  This presentation just presents a little background and a little overview of the lifecycle phases in Version 3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-2145348021171686693?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/2145348021171686693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=2145348021171686693' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2145348021171686693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2145348021171686693'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/08/introduction-to-itil.html' title='Powerpoint ITIL Presentation'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9sKUqr1J8tA/SLl__atMGLI/AAAAAAAAC20/xPKOr7ya__c/s72-c/itilimage.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5322839445628079921</id><published>2008-08-13T14:53:00.000-07:00</published><updated>2008-08-20T22:54:22.565-07:00</updated><title type='text'>Service Oriented Architecture with Java</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_9sKUqr1J8tA/SKNYB6Kh_SI/AAAAAAAACog/Unpa-joU_L0/s1600-h/soajava.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9sKUqr1J8tA/SKNYB6Kh_SI/AAAAAAAACog/Unpa-joU_L0/s320/soajava.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5234123981751188770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I recently read &lt;strong&gt;“Service Oriented Architecture with Java”&lt;/strong&gt; by Binildas CA, Malhar Barai, and Vicenzo Caselli.  This book, available at &lt;a href="http://www.packtpub.com"&gt;http://www.packtpub.com&lt;/a&gt;, provides a look at some of the tools in the java world that can be applied to support a Service Oriented Architecture.  &lt;br /&gt;&lt;br /&gt;There are 6 Chapters in all:&lt;br /&gt;&lt;br /&gt;Chapter 1: The Mantra of SOA&lt;br /&gt;This chapter reviews basic tiered architecture, EA and the basic points of benefit of SOA including better integration, business agility, asset re-use, increase ROI&lt;br /&gt;&lt;br /&gt;Chapter 2: Web Services and SOA&lt;br /&gt;Practically all current SOA implementations now are built upon web services.  XML over the Http protocol is covered. Representational State Transfer(REST) is covered. Main java implementations of web services are introduced including JAX-WS 2, Axis2, Spring-WS, and XFire/CXF 2.0.&lt;br /&gt;&lt;br /&gt;Chapter 3 : Web Service Implementations&lt;br /&gt;Code is presented for getting a web service up and running in JAX-WS2, Axis2, Spring-WS, and XFire/CXF 2.0  The coded examples are very easy to follow and can get a developer up and  running quickly.&lt;br /&gt;&lt;br /&gt;Chapter 4: Data and Services – All Roads Lead to Enterprise Service Bus&lt;br /&gt;This chapter reviews JDO(Java Data Objects) as an alternative to JDBC along with sample code and examples. Service Data Objects(SDO) are covered as a way to abstract data within and SOA.  Apache Tuscany DSO is covered with an example.  Service Component Architecture(SCA) is described along with a Tuscany SCA java example &lt;br /&gt;Benefits of MOM and ESB are also covered.  OpenESB is covered as an open source option for implementing an ESB.&lt;br /&gt;&lt;br /&gt;Chapter 5 – Traditional Integration Technology&lt;br /&gt;2 Case Studies are presented showing the advantages of an SOA based architecture over that of EAI.&lt;br /&gt;&lt;br /&gt;Chapter 6 – Goals We Can Achieve with SOA&lt;br /&gt;Loose Coupling, Reusability, Seamless Integration, Return on Investment(ROI)&lt;br /&gt;&lt;br /&gt;All in all this is a pretty good book.  It’s focus is definitely to provide information on a SOA implementation in a java oriented environment.  This book covers the basics of the open source options to getting java based web services and infrastructure.  I would strongly recommend this book to those trying to do open source SOA implementations in java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5322839445628079921?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5322839445628079921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5322839445628079921' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5322839445628079921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5322839445628079921'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/08/service-oriented-architecture-with-java.html' title='Service Oriented Architecture with Java'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9sKUqr1J8tA/SKNYB6Kh_SI/AAAAAAAACog/Unpa-joU_L0/s72-c/soajava.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7647372332762123576</id><published>2008-07-16T21:43:00.000-07:00</published><updated>2008-07-17T14:52:56.337-07:00</updated><title type='text'>Run .NET Code from a shared drive/directory</title><content type='html'>Security is an issue whenever running code from an untrusted source like a shared or network drive.  It would be nice to be able to put an application on a share drive to run whether it be in C# or VB .NET.&lt;br /&gt;&lt;br /&gt;Normally, when you try to run .NET code on a shared network drive you will get an exception like System.Security.Permissions.SecurityPermission .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There is a way to relax the security via the caspol.exe command(For .Net Framework 2.0 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CasPol.exe -s off").&lt;br /&gt;&lt;br /&gt;An application may be launched with one simple batch file as follows:&lt;br /&gt;&lt;br /&gt;AllInOne.BAT:&lt;br /&gt;&lt;strong&gt;@ECHO OFF&lt;br /&gt;&lt;br /&gt;REM Relax security constraints for .NET&lt;br /&gt;START C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CasPol.exe -s off&lt;br /&gt;&lt;br /&gt;REM Pause until first command has executed&lt;br /&gt;Set Count=1&lt;br /&gt;:LOOP&lt;br /&gt;Set /A Count=%Count%+1&lt;br /&gt;If %Count% lss 100 GoTo :LOOP&lt;br /&gt;&lt;br /&gt;REM Launch .NET application&lt;br /&gt;"""SomeExecutable.exe""" &lt;br /&gt;&lt;br /&gt;REM Remove relaxation of security constraints&lt;br /&gt;TASKKILL /im CasPol.exe&lt;br /&gt;&lt;br /&gt;@ECHO ON&lt;/strong&gt;&lt;br /&gt;*****************************&lt;br /&gt;&lt;br /&gt;A pause is required to allow caspol to start up before launching the .NET application.&lt;br /&gt;&lt;br /&gt;But of course this implementation does meet the requirements of launching the .NET application from the shared location but there are those DOS windows which are open and probably not that desirable.&lt;br /&gt;&lt;br /&gt;These can be avoided with 2 BAT files and 2 VBS files as follows.  This is just one way of doing it but there are probably better ways out there.&lt;br /&gt;&lt;br /&gt;launch.bat (Main file)&lt;br /&gt;****************&lt;br /&gt;&lt;strong&gt;@ECHO OFF&lt;br /&gt;REM Main Launch for .NET application on share drive&lt;br /&gt;REM VBS script used so there is not a DOS console opened up&lt;br /&gt;&lt;br /&gt;START launchtasks.vbs&lt;br /&gt;&lt;br /&gt;@ECHO ON&lt;/strong&gt;&lt;br /&gt;****************&lt;br /&gt;&lt;br /&gt;launchtasks.vbs&lt;br /&gt;****************&lt;br /&gt;&lt;strong&gt;On Error Resume Next&lt;br /&gt;&lt;br /&gt;CmdLine = """tasks.bat"""&lt;br /&gt;Params = ""&lt;br /&gt;CmdLine = CmdLine &amp; " " &amp; Params&lt;br /&gt;&lt;br /&gt;'Launch without window&lt;br /&gt;wscript.echo fShellRun(CmdLine)&lt;br /&gt;&lt;br /&gt;Function fShellRun(sCommandStringToExecute)&lt;br /&gt;' This function will accept a string as a DOS command to execute.&lt;br /&gt;' It will then execute the command in a shell, and capture the output into a file.&lt;br /&gt;' That file is then read in and its contents are returned as the value the function returns.&lt;br /&gt;Dim oShellObject, oFileSystemObject, sShellRndTmpFile&lt;br /&gt;Dim oShellOutputFileToRead, iErr&lt;br /&gt;Set oShellObject = CreateObject("Wscript.Shell")&lt;br /&gt;Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;sShellRndTmpFile = oShellObject.ExpandEnvironmentStrings("%temp%") &amp; oFileSystemObject.GetTempName&lt;br /&gt;On Error Resume Next &lt;br /&gt; oShellObject.Run sCommandStringToExecute &amp; " &gt; " &amp; sShellRndTmpFile, 0, True&lt;br /&gt; iErr = Err.Number&lt;br /&gt;On Error GoTo 0&lt;br /&gt; If iErr &lt;&gt; 0 Then &lt;br /&gt;  fShellRun = ""&lt;br /&gt;  Exit Function &lt;br /&gt; End If &lt;br /&gt;fShellRun = oFileSystemObject.OpenTextFile(sShellRndTmpFile,1).ReadAll&lt;br /&gt;oFileSystemObject.DeleteFile sShellRndTmpFile, True &lt;br /&gt;End Function&lt;/strong&gt;&lt;br /&gt;****************&lt;br /&gt;&lt;br /&gt;tasks.bat&lt;br /&gt;****************&lt;br /&gt;&lt;strong&gt;@ECHO OFF&lt;br /&gt;&lt;br /&gt;REM Relax security constraints for .NET&lt;br /&gt;REM Run this in VBS to avoid a DOS WINDOW&lt;br /&gt;START caspol.vbs&lt;br /&gt;&lt;br /&gt;REM Pause until first command has executed&lt;br /&gt;Set Count=1&lt;br /&gt;:LOOP&lt;br /&gt;Set /A Count=%Count%+1&lt;br /&gt;If %Count% lss 70 GoTo :LOOP&lt;br /&gt;&lt;br /&gt;REM Launch .NET application&lt;br /&gt;"""SomeExecutable.exe"""&lt;br /&gt;&lt;br /&gt;REM Remove relaxation of security constraints (The &gt;NUL is to avoid showing the info on the processes terminated)&lt;br /&gt;TASKKILL /im CasPol.exe &gt;NUL&lt;br /&gt;&lt;br /&gt;@ECHO OFF&lt;/strong&gt;&lt;br /&gt;****************&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;caspol.vbs&lt;br /&gt;****************&lt;br /&gt;&lt;strong&gt;On Error Resume Next&lt;br /&gt;&lt;br /&gt;'The command below will also depend on the .NET version of the application you are running&lt;br /&gt;&lt;br /&gt;CmdLine = """C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CasPol.exe"""&lt;br /&gt;Params = "-s off"&lt;br /&gt;CmdLine = CmdLine &amp; " " &amp; Params&lt;br /&gt;&lt;br /&gt;'New way without window&lt;br /&gt;wscript.echo fShellRun(CmdLine)&lt;br /&gt;&lt;br /&gt;Function fShellRun(sCommandStringToExecute)&lt;br /&gt;' This function will accept a string as a DOS command to execute.&lt;br /&gt;' It will then execute the command in a shell, and capture the output into a file.&lt;br /&gt;' That file is then read in and its contents are returned as the value the function returns.&lt;br /&gt;Dim oShellObject, oFileSystemObject, sShellRndTmpFile&lt;br /&gt;Dim oShellOutputFileToRead, iErr&lt;br /&gt;Set oShellObject = CreateObject("Wscript.Shell")&lt;br /&gt;Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;sShellRndTmpFile = oShellObject.ExpandEnvironmentStrings("%temp%") &amp; oFileSystemObject.GetTempName&lt;br /&gt;On Error Resume Next &lt;br /&gt; oShellObject.Run sCommandStringToExecute &amp; " &gt; " &amp; sShellRndTmpFile, 0, True&lt;br /&gt; iErr = Err.Number&lt;br /&gt;On Error GoTo 0&lt;br /&gt; If iErr &lt;&gt; 0 Then &lt;br /&gt;  fShellRun = ""&lt;br /&gt;  Exit Function &lt;br /&gt; End If &lt;br /&gt;fShellRun = oFileSystemObject.OpenTextFile(sShellRndTmpFile,1).ReadAll&lt;br /&gt;oFileSystemObject.DeleteFile sShellRndTmpFile, True &lt;br /&gt;End Function&lt;/strong&gt;&lt;br /&gt;****************&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7647372332762123576?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7647372332762123576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7647372332762123576' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7647372332762123576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7647372332762123576'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/07/run-net-code-from-shared-drivedirectory.html' title='Run .NET Code from a shared drive/directory'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-6802919448135084076</id><published>2008-06-22T10:50:00.001-07:00</published><updated>2008-06-22T10:55:24.915-07:00</updated><title type='text'>ITIL Introduction videos</title><content type='html'>It has been a while since I have blogged here.  My goal is to research a little into ITIL (Information Technology Infrastructure Libary)&lt;br /&gt;&lt;br /&gt;I read "Foundations of IT Service Management Based on ITIL V3" a few months back and am trying to group some materials on an introduction to ITIL.&lt;br /&gt;&lt;br /&gt;Let me say that up front the ITIL processes and lifecycle is very high level and hard to grasp at an implementation detail.  I guess the key is to focus on a small portion of it and grow it out from there.&lt;br /&gt;&lt;br /&gt;I found a couple youtube links that I think are easy to listen to.&lt;br /&gt;&lt;br /&gt;Synopsis of the ITIL(r) V3 Foundations class:&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/w_3cDbo90aQ&amp;hl=en"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/w_3cDbo90aQ&amp;hl=en" type="application/x-shockwave-flash" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EMC on ITIL:&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rSzps54b3vI&amp;hl=en"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/rSzps54b3vI&amp;hl=en" type="application/x-shockwave-flash" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-6802919448135084076?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/6802919448135084076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=6802919448135084076' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6802919448135084076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6802919448135084076'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/06/itil-introduction-videos.html' title='ITIL Introduction videos'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7130646740599612782</id><published>2008-05-12T20:05:00.001-07:00</published><updated>2008-05-12T20:23:58.709-07:00</updated><title type='text'>EA and Integration Summit</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_9sKUqr1J8tA/SCkFj1mS-SI/AAAAAAAAADU/RmQvypwNLqY/s1600-h/zachmansmith.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5199693358017214754" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_9sKUqr1J8tA/SCkFj1mS-SI/AAAAAAAAADU/RmQvypwNLqY/s320/zachmansmith.jpg" border="0" /&gt;&lt;/a&gt; I got back from the first day of the &lt;a href="http://www.eaandintegrationsummit.com/"&gt;Enterprise Architecture and Integration Summit&lt;/a&gt; in Calgary May 12-14th. There were lots of interesting topics, considering of course if Enterprise Architecture, Service Oriented Architecture, ITIL, TOGAF and other methodologies interest you!&lt;br /&gt;&lt;br /&gt;I recently finished my Master's Thesis which involved SOA, Zachman and TOGAF and how they can work together.  The conference was much more entertaining.  The first keynote was John Zachman and he revealed the new Zachman Framework 2 and handed out the new 6 x 6 matrix diagram.  Check out &lt;a href="http://zachmaninternational.com/2/standards.asp"&gt;http://zachmaninternational.com/2/standards.asp&lt;/a&gt; for info on the new framework.  It is very similar but they went to work with some linguists to make sure there are "no adjectives" in the matrix.  They wanted it to be more rigorous and easier to understand(clearer and "brushed up").&lt;br /&gt;&lt;br /&gt;After John Zachman spoke, I had a chat with him and thanked him for his work on the framework.  I was able to pose in a picture with him.  He seems to be very friendly and no nonsense.  Most of his talk was the view of "Architecture is Architecture is Architecture", the instance of the system is not architecture itself.&lt;br /&gt;&lt;br /&gt;The funniest moment was when he displayed the IT problems they faced in 1965 and compared them to 2008.  They were identical!  Also, he showed a slide that showed all of the technologies that did not solve the problems: COBOL, Fortran, mainframe, client server,......, agile programming, web services, .NET, SOA.  Technology does not solve these issues.  Architecture is important.&lt;br /&gt;&lt;br /&gt;Other talks I found interesting were Stan Locke talking about the new Zachman Framework, Bill Dupley spoke of HP's harnessing of ITIL for better management. It was pretty interesting and looking forward to tomorrow's session as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7130646740599612782?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7130646740599612782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7130646740599612782' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7130646740599612782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7130646740599612782'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/05/ea-and-integration-summit.html' title='EA and Integration Summit'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9sKUqr1J8tA/SCkFj1mS-SI/AAAAAAAAADU/RmQvypwNLqY/s72-c/zachmansmith.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5875823637771279508</id><published>2008-03-16T09:37:00.000-07:00</published><updated>2008-03-16T09:47:41.253-07:00</updated><title type='text'>Enterprise Architecture Framework Applications towards SOA</title><content type='html'>I am in the final stages of completing my Thesis requirement for my MSc. in Information Systems at Athabasca University.&lt;br /&gt;&lt;br /&gt;I am working through the final signoff but the latest version may be downloaded &lt;a href="http://www.smithspicks.com/techinitiatives/CollinSmithEASOA.pdf"&gt;Enterprise Architecture Framework Applications Towards Service Oriented Architecture&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ABSTRACT&lt;/span&gt;&lt;br /&gt;A large challenge facing today’s enterprises is the integration of their own disparate systems to be more competitive and react more strategically to market opportunities.  Service Oriented Architecture(SOA) is a style of architecture where the use of reusable and discoverable services are used as components to meet business requirements.  The promise of SOA is that the use of these services will allow the organization to increase business agility and reuse of software components.  There are some challenges to implementing a SOA.  One of the challenges is to present view from the enterprise perspective.  Typically, projects take only a view of individual business unit without concerns for the entire organization.  Enterprise Architecture(EA) describes the current business and IT processes and how they map together.  The two most popular EA Frameworks, Zachman Framework and The Open Group Architecture Framework(TOGAF), are designed to help the organization clarify the current IT Architecture and help provide a roadmap to the goal or future IT architecture.  It is with the enterprise view that these frameworks provide that SOA can be supported towards a more successful implementation.  There is work underway to determine the relationship between SOA and EA.  Whether by clarification from industry experts or direct modifications of the EA Frameworks, EA Frameworks are being used to help implement SOA.  It is through the enterprise view and architectural tools provided by the EA Frameworks that SOA can be supported.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5875823637771279508?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5875823637771279508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5875823637771279508' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5875823637771279508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5875823637771279508'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/03/enterprise-architecture-framework.html' title='Enterprise Architecture Framework Applications towards SOA'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-8487698588453104570</id><published>2008-03-09T21:42:00.000-07:00</published><updated>2008-03-09T22:00:37.053-07:00</updated><title type='text'>Getting 2 .NET applications to use different Oracle Clients</title><content type='html'>It is not necessarily evident how to get 2 .NET applications to use 2 different Oracle clients on the same server.  The following are some rough notes, but you should get the idea and hopefully save you some time as well.&lt;br /&gt;&lt;br /&gt;Information can be found at&lt;br /&gt;http://www.oracle.com/technology/tech/windows/odpnet/faq.html&lt;br /&gt;&lt;br /&gt;But I will document what I found.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Getting the .NET applications to use the appropriate clients on my development machine&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had to follow some steps to get the different .NET applications to use the appropriate Oracle client.&lt;br /&gt;&lt;br /&gt;http://www.oracle.com/technology/tech/windows/odpnet/faq.html&lt;br /&gt;&lt;br /&gt;Building a website with Oracle 92:&lt;br /&gt;1. Close Visual Studio&lt;br /&gt;2. Uninstall all Oracle Dlls to remove any 102 references&lt;br /&gt;3. Install only the 9.2 Oracle dlls to the GAC:&lt;br /&gt;4. Set Path with "C:\oracle\ora92\bin;" at the start of the Path environment variable&lt;br /&gt;5. Start Visual Studio and Add Reference the first OracleDataAccess dll (despite what the version # says) to the project&lt;br /&gt;6. Set the dll Copy Local to true for some reason then it compiles&lt;br /&gt;7. Run the app and verify that the right dll is being used&lt;br /&gt;Building a website with Oracle 102:&lt;br /&gt;1. Close Visual Studio&lt;br /&gt;2. Ensure that the 102 Oracle Dlls are in the GAC:&lt;br /&gt;3. Set Path with "C:\oraclexe\app\oracle\product\10.2.0\server\BIN\;" at the start of the Path environment variable&lt;br /&gt;4. Start Visual Studio and Add Reference the first OracleDataAccess dll (despite what the version # says) to the project&lt;br /&gt;5. Run the app and verify that the right dll is being used&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;uninstall All Oracle GAC dlls&lt;br /&gt;"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /u Oracle.DataAccess&lt;br /&gt;"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /u Policy.9.2.Oracle.DataAccess&lt;br /&gt;"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /u Policy.10.1.Oracle.DataAccess&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;10.2.0.1 GAC install&lt;br /&gt;"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /i C:\oraclexe\app\oracle\product\10.2.0\server\BIN\Oracle.DataAccess.dll&lt;br /&gt;"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /i C:\oraclexe\app\oracle\product\10.2.0\server\ODP.NET\PublisherPolicy\Policy.10.1.Oracle.DataAccess.dll&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9.2 GAC install only&lt;br /&gt;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\gacutil.exe /i C:\oracle\ora92\bin\Oracle.DataAccess.dll&lt;br /&gt;&lt;br /&gt;Your application can do a simple ""select count(*) on table" to verify functionality.  To find out which dll you are exactly using, you can use&lt;br /&gt;          Type ttt = typeof(OracleConnection);&lt;br /&gt;          mes += "\n ttt.Assembly.FullName";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Note that setting the path variables for Windows Server does not help out the same as on XP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The path can be set in the application via setting the DLL path in the application itself as follows:&lt;br /&gt;&lt;br /&gt;Inside Global.asax.cs:&lt;br /&gt;&lt;br /&gt;      [DllImport("kernel32.dll",SetLastError=true)]&lt;br /&gt;      static extern bool SetDllDirectory(string lpPathName);&lt;br /&gt;      protected void Application_Start(Object sender, EventArgs e)&lt;br /&gt;      {&lt;br /&gt;          string dllPath = ConfigurationSettings.AppSettings["DllPath"];&lt;br /&gt;          bool result = SetDllDirectory(dllPath);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Inside Web.config&lt;br /&gt;&lt;br /&gt;&amp;lt;appsettings&amp;gt;&lt;br /&gt;  &amp;lt;add key="DllPath" value="D:\oracle\Client_10g_1010\BIN"&amp;gt;&lt;br /&gt;&amp;lt;/add&amp;gt;&lt;br /&gt;&amp;lt;/appsettings&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-8487698588453104570?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/8487698588453104570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=8487698588453104570' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8487698588453104570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8487698588453104570'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/03/getting-2-net-applications-to-use.html' title='Getting 2 .NET applications to use different Oracle Clients'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-1394209082545584121</id><published>2008-03-07T12:57:00.001-08:00</published><updated>2008-03-07T13:00:13.008-08:00</updated><title type='text'>Scheduling a Task to run on a remote server</title><content type='html'>If you want to set up a scheduled task to execute remote code on another box you can do the following.&lt;br /&gt;&lt;br /&gt;Assuming the you have a job server and code server where the executable lives.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Create job.bat and job.vbs on the job server&lt;br /&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Create Scheduled Task to execute job.bat on a regular basis&lt;br /&gt;&lt;br /&gt;For more on Scheduling Tasks you can try&lt;br /&gt;&lt;a href="http://www.iopus.com/guides/winscheduler.htm"&gt;http://www.iopus.com/guides/winscheduler.htm&lt;/a&gt; or &lt;a href="http://www.google.com/"&gt;http://www.google.com&lt;/a&gt; for more details&lt;br /&gt;&lt;br /&gt;The files job.bat and job.vbs will reside on the job server and execute code living on the code server.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On the job server:&lt;br /&gt;&lt;br /&gt;You will have a&lt;strong&gt; job.bat&lt;/strong&gt; file to reference the job.vbs file:&lt;br /&gt;"C:\Jobs\job.vbs"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Which will call a &lt;strong&gt;job.vbs&lt;/strong&gt; file:&lt;br /&gt;&lt;br /&gt;On Error Resume Next&lt;br /&gt;&lt;br /&gt;Dim strComputer&lt;br /&gt;Dim strCommand&lt;br /&gt;Dim strUsername&lt;br /&gt;Dim strPassword&lt;br /&gt;&lt;br /&gt;'Configuration of Remote Server Location and credentials&lt;br /&gt;strComputer = "computername"&lt;br /&gt;strUsername = "username"&lt;br /&gt;strPassword = "password"&lt;br /&gt;&lt;br /&gt;'Task to execute on remote server&lt;br /&gt;strCommand = """C:\Code\program.exe"""&lt;br /&gt;&lt;br /&gt;'Script to execute remote command&lt;br /&gt;ExecuteCommand strComputer,strCommand, strUsername, strPassword&lt;br /&gt;&lt;br /&gt;Sub ExecuteCommand(strComputer,strCommand, strUsername, strPassword)&lt;br /&gt;&lt;br /&gt;'wscript.echo("Executing " &amp;amp; strCommand &amp;amp; " on " &amp;amp; strComputer)&lt;br /&gt;&lt;br /&gt;Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")&lt;br /&gt;Set objSwbemServices = objSWbemLocator.ConnectServer(strComputer,"root\cimv2", strUsername , strPassword)&lt;br /&gt;Set objSWbemObject = objSWbemServices.Get("win32_Process")&lt;br /&gt;&lt;br /&gt;errReturn = objSWbemObject.Create(strCommand,null,null,intProcessID)&lt;br /&gt;&lt;br /&gt;'if errReturn = 0 then&lt;br /&gt;' Wscript.Echo strCommand &amp;amp; " was started with a process ID of " &amp;amp; intProcessID &amp;amp; "."&lt;br /&gt;'else&lt;br /&gt;' Wscript.Echo strCommand &amp;amp; " could not be started due to error " &amp;amp; errReturn &amp;amp; "."&lt;br /&gt;'end if&lt;br /&gt;&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-1394209082545584121?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/1394209082545584121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=1394209082545584121' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1394209082545584121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1394209082545584121'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/03/scheduling-task-to-run-on-remote-server.html' title='Scheduling a Task to run on a remote server'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-2766699218733499327</id><published>2008-02-20T13:51:00.000-08:00</published><updated>2008-02-21T12:48:20.979-08:00</updated><title type='text'>SOA Approach to Integration</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_9sKUqr1J8tA/R7yhKs0hy8I/AAAAAAAAADM/tmJ0U7lMABA/s1600-h/SOAIntegration.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9sKUqr1J8tA/R7yhKs0hy8I/AAAAAAAAADM/tmJ0U7lMABA/s320/SOAIntegration.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5169183677516729282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was recently sent a copy of "SOA Approach to Integration" by Matjaz B. Juric, Ramesh Loganathan, Poornachandra Sarang, and Frank Jennings to review from the good people at &lt;a href="http://packtpub.com"&gt;http://packtpub.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It is a good overview of SOA concepts combined with Integration viewpoint.  Integration is handled within SOA.  SOA is about integration.  Process Oriented Architecture was a term that was introduced.  POA is about using BPEL to manage business processes with existing services.&lt;br /&gt;&lt;br /&gt;All in all, a good review of SOA issues including ESB, WS specifications, XML considerations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are 6 chapters:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.Integration Architecture, Principles and Patterns&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Review of different integration technlologies and types of integration&lt;br /&gt;overview of integration challenges, process is important&lt;br /&gt;SOA and its associated technolgies is a valid approach to integration &lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;2.Service and Process Oriented Architectures&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;POA is centered on the processes that "use" the services while SOA is about"providing" the services.&lt;br /&gt;POA is the approach from the business side of things. It is about business process and main standards include BPEL, WSCI, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3.Best Practices for Using XML for Integration&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Review of XML with tops and issues to watch out for.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4.SOA and Web Services Approach for Integration&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;SOA is not web services but web services are the specification/technology of choice in the arena.&lt;br /&gt;WS applies to both EAI and B2B as well as SOA.&lt;br /&gt;Included some on the specification process.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5.BPEL and Process-Oriented Approach&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Familiarization with BPEL and POA together.&lt;br /&gt;With a sample application of BPEL towards a Billing Process&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6.Service and Process Oriented Approach to Integration using Web Services&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Putting it all together with the Enterprise Service Bus(ESB).&lt;br /&gt;Discussion of the ESB and what it offers for Integration and SOA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-2766699218733499327?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/2766699218733499327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=2766699218733499327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2766699218733499327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2766699218733499327'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/02/soa-approach-to-integration.html' title='SOA Approach to Integration'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9sKUqr1J8tA/R7yhKs0hy8I/AAAAAAAAADM/tmJ0U7lMABA/s72-c/SOAIntegration.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5643937416108773194</id><published>2008-02-17T22:20:00.000-08:00</published><updated>2008-02-17T22:21:41.829-08:00</updated><title type='text'>Intro to SOA - InfoClipz</title><content type='html'>A great video on SOA, no fluff or buzzwords!&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-9zgeS9B2NE&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/-9zgeS9B2NE&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5643937416108773194?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5643937416108773194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5643937416108773194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5643937416108773194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5643937416108773194'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/02/intro-to-soa-infoclipz.html' title='Intro to SOA - InfoClipz'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7388143465687001858</id><published>2008-01-02T21:48:00.001-08:00</published><updated>2008-01-03T21:20:33.879-08:00</updated><title type='text'>Ram Charan's "What The Customer Wants You To Know"</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/What-Customer-Wants-You-Know/dp/B000Y76RTM/ref=sr_1_6?ie=UTF8&amp;s=books&amp;qid=1199423989&amp;sr=8-6"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9sKUqr1J8tA/R33B316p2OI/AAAAAAAAADE/buMMGTOhWzs/s320/customer.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5151486713891772642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ram Charan's publisher sent me a copy of his latest book "What The Customer Wants You To Know" which breaks down how to look at Sales and business development.  The process illustrated is Value Creation Selling(VCS).  &lt;br /&gt;&lt;br /&gt;This process where the salespeople lead a multidisciplined team to gather a deeper look at where value can be added for the customer.  Whereas the older views of sales competions are trying to beat one another on price alone.  This attempts to provide a better picture of customer's needs and how to generate business.&lt;br /&gt;&lt;br /&gt;There are 8 Chapters:&lt;br /&gt;&lt;br /&gt;1. The Problem of Sales&lt;br /&gt;Today is more competitive and a new way of finding opportunities is required.&lt;br /&gt;&lt;br /&gt;2. Fixing the Broken Sales Process&lt;br /&gt;Sales alone cannot do VCS it will require changes with Sales leading the efforts to collaborate with the customer on many levels within the client side and the vendor side.&lt;br /&gt;&lt;br /&gt;3. How to Become Your Customer's Trusted Partner&lt;br /&gt;Information is the heart of VCS.  Study the customer and the customer's competitors.  Know how decisions are made in the customer's organization.&lt;br /&gt;&lt;br /&gt;4. The Value Account Plan&lt;br /&gt;The VAP is a template completed by the salesperson to define the value propostion and business benefits the customer can expect to get from it.  "A company that is selling value-creating solutions uses value pricing, which is different". Salespeople may have a psychological blockage about premium pricing. They are used to customers driving hard on price--and losing deals because of it"  With value pricing,  the price can be determined at some point where both the client and vendor benefit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Developing the Value Creation Sales Force&lt;br /&gt;This will require great changes to the Sales force.  The salesperson will require affability, conceptualizing problems and solutions, leadership, tenacity and business acumen. Training, communicating successes and measuring progress will be required to ensure that VCS takes successfully.&lt;br /&gt;&lt;br /&gt;6. Making the Sale&lt;br /&gt;Once the VAP is made it must be presented carefully to the client.  Again, both technical and operational members will be required to provide the appropriate vision to the client.&lt;br /&gt;&lt;br /&gt;7. Sustaining the Process&lt;br /&gt;Drive the process with reviews and link compensation to success with VCS.&lt;br /&gt;&lt;br /&gt;8. Taking Value Creation Selling to the Next Level&lt;br /&gt;Keep on working with VCS, it is a difficult journey but those who make it will be amply rewarded.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Charan has provided a new look at sales than the old sales funnel approach which is multifaceted which seems to make sense to ferret out newer opportunities in today's highly competitive and complex market.  A disciplined and detailed approach should provide the vendor with better ways to serve the client's needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7388143465687001858?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7388143465687001858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7388143465687001858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7388143465687001858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7388143465687001858'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2008/01/ram-charans-what-customer-wants-you-to.html' title='Ram Charan&apos;s &quot;What The Customer Wants You To Know&quot;'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9sKUqr1J8tA/R33B316p2OI/AAAAAAAAADE/buMMGTOhWzs/s72-c/customer.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-6566774613737300001</id><published>2007-12-09T21:14:00.000-08:00</published><updated>2007-12-09T21:15:11.434-08:00</updated><title type='text'>John Zachman on EA</title><content type='html'>John Zachman on EA:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0beDi03csm4&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0beDi03csm4&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-6566774613737300001?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/6566774613737300001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=6566774613737300001' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6566774613737300001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6566774613737300001'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/12/john-zachman-on-ea.html' title='John Zachman on EA'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-2793486093341028044</id><published>2007-12-06T21:28:00.000-08:00</published><updated>2007-12-06T21:30:20.034-08:00</updated><title type='text'>David Linthicum talks SOA</title><content type='html'>Just thought I would include some clips of David Linthicum talking SOA:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0CbjUNzBV6I&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0CbjUNzBV6I&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HRXe3qVDqtg&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/HRXe3qVDqtg&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WSn-p581Y3k&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WSn-p581Y3k&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OPw6crS8lNg&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/OPw6crS8lNg&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-2793486093341028044?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/2793486093341028044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=2793486093341028044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2793486093341028044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2793486093341028044'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/12/david-linthicum-talks-soa.html' title='David Linthicum talks SOA'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-3543373069100082075</id><published>2007-11-01T22:50:00.000-07:00</published><updated>2007-11-01T22:56:55.412-07:00</updated><title type='text'>SOA and Enterprise Architecture</title><content type='html'>I really liked &lt;a href="http://www.biske.com/blog"&gt;Todd Biske&lt;/a&gt;'s description of Service Oriented Architecture:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SOA doesn’t replace Enterprise Architecture, it’s simply one view of the enterprise. Today, one could argue that most organizations view the IT landscape as a collection of applications. Efforts like application rationalization or application portfolio management reinforce this notion. So, you could also say that today we have application oriented architectures. The unit of composition is the application. This isn’t flexible enough, as it is too coarsely defined. If we break these applications into smaller units, we now get to service oriented architecture, which I feel is a better way of describing things. Is it the only way? Certainly not.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also, here are some links on the background of Enterprise Architecture that I think could offer some insight:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb466232.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb466232.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.enterprise-architecture.info/Images/Documents/Comparative_Survey_of_EA_Frameworks.pps"&gt;http://www.enterprise-architecture.info/Images/Documents/Comparative_Survey_of_EA_Frameworks.pps&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bptrends.com/publicationfiles/12-03%20NL%20Enterprise%20Architectures.pdf%20"&gt;http://www.bptrends.com/publicationfiles/12-03 NL Enterprise Architectures.pdf &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.e-cio.org/lea_presentations/11_models_framework_files/frame.htm%20"&gt;http://www.e-cio.org/lea_presentations/11_models_framework_files/frame.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-3543373069100082075?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/3543373069100082075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=3543373069100082075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3543373069100082075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3543373069100082075'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/11/soa-and-enterprise-architecture.html' title='SOA and Enterprise Architecture'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-3472710296242929009</id><published>2007-10-30T21:21:00.001-07:00</published><updated>2007-10-30T21:26:22.740-07:00</updated><title type='text'>Dynamically updating CSS Style attributes</title><content type='html'>Just having a little fun with CSS style attributes and came up with a demo page to demonstrate javascript dynamically changing the attributes of some text on the screen.&lt;br /&gt;&lt;br /&gt;Click &lt;a href="http://smithspicks.com/techinitiatives/StyleTester.html"&gt;here&lt;/a&gt; to see.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The javascript/CSS that makes this happens is:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;var DHTML = (document.getElementById || document.all || document.layers);&lt;br /&gt;&lt;br /&gt;if (!DHTML) return;&lt;br /&gt;var x = new getObj('divtext');&lt;br /&gt;&lt;br /&gt;document.getElementById('divtext').innerHTML = text;&lt;br /&gt;x.style.fontSize = fontsize;&lt;br /&gt;x.style.color = color;&lt;br /&gt;x.style.fontFamily = fontfamily;&lt;br /&gt;x.style.fontStyle = fontstyle;&lt;br /&gt;x.style.fontWeight = fontweight;&lt;br /&gt;x.style.backgroundColor = backgroundcolor;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getObj(name)&lt;br /&gt;{&lt;br /&gt; if (document.getElementById)&lt;br /&gt; {&lt;br /&gt;  this.obj = document.getElementById(name);&lt;br /&gt; this.style = document.getElementById(name).style;&lt;br /&gt; }&lt;br /&gt; else if (document.all)&lt;br /&gt; {&lt;br /&gt; this.obj = document.all[name];&lt;br /&gt; this.style = document.all[name].style;&lt;br /&gt; }&lt;br /&gt; else if (document.layers)&lt;br /&gt; {&lt;br /&gt;   this.obj = document.layers[name];&lt;br /&gt;   this.style = document.layers[name];&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A little break from SOA and EA Frameworks :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-3472710296242929009?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/3472710296242929009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=3472710296242929009' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3472710296242929009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3472710296242929009'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/dynamically-updating-css-style.html' title='Dynamically updating CSS Style attributes'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-2802660361612209918</id><published>2007-10-28T12:11:00.000-07:00</published><updated>2007-10-28T13:06:39.196-07:00</updated><title type='text'>Enterprise Architecture Definitions</title><content type='html'>As there are numerous definitions of SOA, there are also numerous definitions of &lt;span style="font-weight:bold;"&gt;Enterprise Architecture&lt;/span&gt;.  Like with SOA, one may derive a definition of EA from reading between some of the definitions provided in many of the popular EA/SOA books&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From these definitions, I get the idea that &lt;span style="font-weight:bold;"&gt;Enterprise Architecture is:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The current definition of an enterprise's business processes and the information technologies that aid in their execution.  The Enterprise Architecture is a dynamic form of documentation which is subject to change in the short and long term due to changes in both business and technology.  EA is a road map for the Enterprise concerning business process and technology to make IT a strategic asset.&lt;br /&gt;&lt;br /&gt;Two of the main EA Frameworks I have looked at deal with it in different ways.  The &lt;span style="font-weight:bold;"&gt;Zachman Framework&lt;/span&gt; seeks to classify the Enterprise by mapping Enterprise components into one of 36 classification squares.  &lt;span style="font-weight:bold;"&gt;TOGAF&lt;/span&gt; presents an ADM(Architectural Development Cycle) which is an iterative cycle of how to define the Enterprise Architecture.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The definitions below are taken from my research in to SOA and Enterprise Architecture.  I do not think it coincidence that so many of the SOA books mention Enterprise Architecture.  They do complement one another.  Maybe one could say that SOA is a style of architecture to help make Enterprise Architecture better. Or maybe Enterprise Architecture can tell the enterprise what to build with SOA.  The two concepts are apparently strongly linked.&lt;br /&gt;&lt;br /&gt;On Todd Biske's blog, he mentions a quote from David Linthicum on SOA and EA.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.biske.com/blog/?p=231"&gt;"Five years from now, we won’t be talking about SOA… It will all be folded back into EA." - David Linthicum&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Enterprise Architecture Definitions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;“The enterprise architecture is the organizing logic for business processes and IT infrastructure, reflecting the integration and standardization requirements for the company’s operating model. The enterprise architecture provides a long-term view of a company’s processes, systems, and technologies so that individual projects can build capabilities – not just fulfill immediate needs”1&lt;br /&gt;&lt;br /&gt;“In simple terms, an Enterprise architecture identifies the main components of the organization and the ways in which these components work together in order to deliver the product and achieve the business objectives at the same time”.2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;“You must recognize that the enterprise architecture is not static – it is constantly changing as business needs vary and technologies evolve.  The task of the enterprise architecture group is to guide this evolution. To do so requires that the group keep one eye looking toward the future and the other focused on the realities of the present, while continually striving to draw the two together.  Managing this evolution requires understanding the current state, articulating a vision for the future, and defining a roadmap for getting from here to there”3&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;“Enterprise Architecture is basically a discipline of IT architecture where we are concerned with IT in the context of the company as a whole – both IT and business”4&lt;br /&gt;&lt;br /&gt;“An architecture description is a formal description of an information system, organized in a way that supports reasoning about the structural properties of the system.  It defines the components or building blocks that make up the overall information system, and provides a plan from which products can be procured, and systems developed, that will work together to implement the overall system.  It thus enables you to manage your overall IT investment in a way that meets the needs of your business.”5&lt;br /&gt;&lt;br /&gt;“An enterprise architecture specification is to an organization what an urban plan is to a city.  Therefore, the relationship between an urban plan and the blueprint of a building are comparable to that of enterprise and application architecture specifications.” 6&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;1.&lt;span style="font-weight:bold;"&gt;Ross, Weill, Robertson,”Enterprise Architecture As Strategy”&lt;/span&gt;, 2006, p. 9&lt;br /&gt;2.&lt;span style="font-weight:bold;"&gt;Grigoriu, “An Enterprise Architecture Development Framework”&lt;/span&gt;, 2006, p.22&lt;br /&gt;3.&lt;span style="font-weight:bold;"&gt;Brown, “Succeeding with SOA”&lt;/span&gt;, 2007, p 115-116&lt;br /&gt;4.&lt;span style="font-weight:bold;"&gt;Bloomberg,Schmelzer, “Service Orient or Be Doomed!”&lt;/span&gt;, p.121&lt;br /&gt;5.&lt;span style="font-weight:bold;"&gt;The Open Group, TOGAF The Open Group Architecture Framework 2006 Edition&lt;/span&gt;&lt;br /&gt;6.&lt;span style="font-weight:bold;"&gt;Thomas Erl,”Service-Oriented Architecture(Concepts, Technology, and Design)”&lt;/span&gt;, 2006, p. 87&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-2802660361612209918?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/2802660361612209918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=2802660361612209918' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2802660361612209918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2802660361612209918'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/enterprise-architecture-definitions.html' title='Enterprise Architecture Definitions'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7189547918950935465</id><published>2007-10-28T00:00:00.000-07:00</published><updated>2007-10-28T00:25:43.016-07:00</updated><title type='text'>My Definition of SOA and others</title><content type='html'>I have been reading on SOA for just over a year now and am feeling more comfortable with it.  I know that SOA is not the same thing as web services although web services is probably the most commonly used technology, although SOA has been implemented in other technologies including CORBA.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;My first crack at the definition of Service Oriented Architecture:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An SOA is an architecture consisting of reusable interoperable services to help make the enterprise more agile(reducing time to market) and efficient(increasing component reuse).  Services should be discoverable, composable, provide an SLA and adequate security. An SOA is aided greatly by the use of an Enterprise Service Bus(ESB).  The ESB acts as an intermediary between the service consumer and service provider.  The ESB allows the service consumer and service provider to interact without knowing the location of the other, essentially avoiding any point to point integration problems.&lt;br /&gt;&lt;br /&gt;I welcome other viewpoints on the definition of SOA, please comment if you have other ideas or agree more with one of the defintions listed below.  Although, I think there is no true correct definition.&lt;br /&gt;&lt;br /&gt;Antony Kimber has a posting on the definition of SOA as well at &lt;a href="http://soaevolution.blogspot.com/2007/09/definitive-soa.html"&gt;http://soaevolution.blogspot.com/2007/09/definitive-soa.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My eventual goal is to look at the benefits of Enterprise Architecture Frameworks in implementing an SOA.  In particular, TOGAF and the Zachman Framework.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The following is a list of 9 SOA definitions from recent popular books on the subject or vendor websites:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;“SOA is a form of technology architecture that adheres to the principles of service-orientation.  When realized through the Web services technology platform, SOA establishes the potential to support and promote these principles throughout the business process and automation domains of an enterprise.” 1&lt;br /&gt;&lt;br /&gt;“With an enterprise architecture grounded in Service Orientation, we’re looking for a broad set of rules and practices that govern the design and evolution of organizations that leverage business resources as Services.  We call that set of rules and practices Service-Oriented Architecture”2&lt;br /&gt;&lt;br /&gt;“SOA is a conceptual business architecture where business functionality, or application logic, is made available to SOA users, or consumers, as shared, reusable services on an IT network. “Services” in an SOA are modules of business or application functionality with exposed interfaces, and are invoked by messages.”3&lt;br /&gt;&lt;br /&gt;“SOA is neither a technology nor a technology standard, but instead it represents a technology-independent, high-level concept that provides architectural blueprints, such as the ones outlined in the first part of this book.  These architectural blueprints are focusing on the slicing, dicing, and composition of the enterprise application layer in a way that the components that are created and exposed as services in the SOA are not only technically independent but also have a direct relationship to business functionality”4&lt;br /&gt;&lt;br /&gt;“SOA is supposed to provide clean, well-defined interfaces between business entitites – between service providers and service consumers”5&lt;br /&gt;&lt;br /&gt;“Service-Oriented Architecture (SOA) is an architectural style that supports service orientation. Service orientation is a way of thinking in terms of services and service-based development and the outcomes of services.”6&lt;br /&gt;&lt;br /&gt;“Service Oriented Architecture (SOA) is an architectural design pattern that concerns itself with defining loosely-coupled relationships between producers and consumers.&lt;br /&gt;.. There is no widely agreed upon definition of SOA other than its literal translation. It is an architecture that relies on service-orientation as its fundamental design principle. In an SOA environment independent services can be accessed without knowledge of their underlying platform implementation. These concepts can be applied to business, software and other types of producer/consumer systems.&lt;br /&gt;”7&lt;br /&gt;&lt;br /&gt;“Service orientation is a means for integrating across diverse systems. Each IT resource, whether an application, system, or trading partner, can be accessed as a service.”8&lt;br /&gt;&lt;br /&gt;“Service Oriented Architecture (SOA) is a business-centric IT architectural approach that supports integrating your business as linked, repeatable business tasks, or services. SOA helps users build composite applications, which are applications that draw upon functionality from multiple sources within and beyond the enterprise to support horizontal business processes.”9&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Thomas Erl,”Service-Oriented Architecture(Concepts, Technology, and Design)”&lt;/span&gt;, 2006, p. 55&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Bloomberg, Schmelzer, “ Service Orient or Be Doomed”&lt;/span&gt;, 2006, p.126&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Marks, Bell, “Service-Oriented Architecture – A Planning and Implementation Guide for Business and Technology”&lt;/span&gt;, 2006, p.1&lt;br /&gt;4. &lt;span style="font-weight: bold;"&gt;Krafzig, Banke, Slama “Enterprise SOA – Service Oriented Architecture Best Practices”&lt;/span&gt;, 2005, p. 8&lt;br /&gt;5. &lt;span style="font-weight: bold;"&gt;Brown, “Succeeding with SOA”&lt;/span&gt;, 2007, p xxii&lt;br /&gt;6.&lt;a href="https://www.opengroup.org/projects/soa/"&gt;https://www.opengroup.org/projects/soa/&lt;/a&gt; ,Retrieved October 28, 2007&lt;br /&gt;7.&lt;a href="http://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;http://en.wikipedia.org/wiki/Service-oriented_architecture&lt;/a&gt;, retrieved October 28, 2007&lt;br /&gt;8.&lt;a href="http://www.microsoft.com/biztalk/solutions/soa/overview.mspx#EFB"&gt;http://www.microsoft.com/biztalk/solutions/soa/overview.mspx#EFB&lt;/a&gt;Retrieved October 28, 2007&lt;br /&gt;9.&lt;a href="http://www-306.ibm.com/software/solutions/soa/"&gt;http://www-306.ibm.com/software/solutions/soa/&lt;/a&gt; Retrieved October 28, 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7189547918950935465?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7189547918950935465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7189547918950935465' title='50 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7189547918950935465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7189547918950935465'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/my-definition-of-soa-and-others.html' title='My Definition of SOA and others'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>50</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-1237238277360615802</id><published>2007-10-24T19:24:00.000-07:00</published><updated>2007-10-24T19:57:26.737-07:00</updated><title type='text'>Enterprise Architecture As Strategy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9sKUqr1J8tA/RyAF4rObRcI/AAAAAAAAACQ/kubVZXQ2ekQ/s1600-h/EnterpriseArchitecture.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_9sKUqr1J8tA/RyAF4rObRcI/AAAAAAAAACQ/kubVZXQ2ekQ/s320/EnterpriseArchitecture.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5125102847181669826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Seeking further knowledge in Enterprise Architecture led me to read &lt;span style="font-weight:bold;"&gt;"Enterprise Architecture As Strategy"&lt;/span&gt; by Jeanne W. Ross, Peter Weill, and David C. Robertson.  It seems that just as with SOA, EA lacks consistent definitions but this book provided some interesting business examples of how EA really can help your organizations.&lt;br /&gt;&lt;br /&gt;They define enterprise architecture as "the organizing logic for core business processes and IT infrastructure reflecting the standardization and integration of a company's operating model".  This boils down to 2 concepts: business process integration and business process standardization.&lt;br /&gt;&lt;br /&gt;There are &lt;span style="font-weight: bold;"&gt;4 types of operating models&lt;/span&gt; defined in regards to classifying companies:&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Diversification&lt;/span&gt; (low standardization, low integration)&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Coordination&lt;/span&gt; (low standardization, high integration)&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Replication&lt;/span&gt; (high standardization, low integration)&lt;br /&gt;4. &lt;span style="font-weight: bold;"&gt;Unification&lt;/span&gt; (high standardization, high integration)&lt;br /&gt;&lt;br /&gt;The operating model represents a general vision of how a company will enable and execute strategies.  Focusing on the operating model rather than on individual business strategies gives a company better guidance for developing IT and business process capabilities.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are some real interesting case studies on how some successful companies like Seven Eleven Japan, CEMEX and UPS truly exploited their IT infrastructure to succeed in the marketplace.  It is all about digitizing the core business processes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Four stages of architecture maturity&lt;/span&gt; are defined:&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Business Silos&lt;/span&gt; architecture - maximize individual business unit needs&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;Standardized Technology&lt;/span&gt; architecture - providing IT efficiencies through technology standardization and, in most cases, increased centralization of technology management&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Optimized Core&lt;/span&gt; architecture - company wide data and process standardization to company model&lt;br /&gt;4. &lt;span style="font-weight: bold;"&gt;Business Modularity&lt;/span&gt; architecture - manage and reuse loosely coupled IT-enabled business process components to preserve global standards while enabling local differences&lt;br /&gt;&lt;br /&gt;Four strategic outcomes from enterprise architecture&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight: bold;"&gt;Better operational excellence&lt;/span&gt; - low-cost, reliable and predictable operations&lt;br /&gt;2. &lt;span style="font-weight: bold;"&gt;More customer intimacy&lt;/span&gt; - extraordinary customer service, responsiveness based on deep customer knowledge&lt;br /&gt;3. &lt;span style="font-weight: bold;"&gt;Greater product leadership&lt;/span&gt; - first to market with innovative products and services&lt;br /&gt;4. &lt;span style="font-weight: bold;"&gt;More strategic agility&lt;/span&gt; - respond rapidly to competitor initiatives and new market opportunities&lt;br /&gt;&lt;br /&gt;They also mention to build the foundation one project at a time which must meet the short-term business goals and at the same time implementing or at least not undermining the company's architecture. (This was a point in Brown's "Succeeding with SOA")  The goal is to have the enterprise architecture as a compass, directing the company toward its intended operating model.  The IT Architecture should be viewed as an asset and not a cost.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-1237238277360615802?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/1237238277360615802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=1237238277360615802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1237238277360615802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1237238277360615802'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/enterprise-architecture-as-strategy.html' title='Enterprise Architecture As Strategy'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9sKUqr1J8tA/RyAF4rObRcI/AAAAAAAAACQ/kubVZXQ2ekQ/s72-c/EnterpriseArchitecture.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5993103197988268285</id><published>2007-10-14T20:16:00.000-07:00</published><updated>2007-10-14T21:00:32.262-07:00</updated><title type='text'>Succeeding with SOA</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9sKUqr1J8tA/RxLb6DHx0mI/AAAAAAAAACA/mIWU6NPMIj8/s1600-h/SucceedingWithSOA.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9sKUqr1J8tA/RxLb6DHx0mI/AAAAAAAAACA/mIWU6NPMIj8/s400/SucceedingWithSOA.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5121397516590502498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I just finished reading Paul C. Brown's "&lt;span style="font-weight:bold;"&gt;Succeeding with SOA - Realizing Business Value Through Total Architecture&lt;/span&gt;".  The book describes how to approach SOA from the business side focusing on value and organization rather than technology.&lt;br /&gt;&lt;br /&gt;He outlines 4 keys to staying on track with the total architecture approach to SOA:&lt;br /&gt;1. justify each project on its own business merits&lt;br /&gt;2. have an explicit architecture step in every SOA project that precedes the actual development work&lt;br /&gt;3. have an active SOA architecture group&lt;br /&gt;4. have a living SOA project roadmap&lt;br /&gt;&lt;br /&gt;I liked the idea that every SOA project must have it's own definite business merits as to continually supporting the SOA movement.  The positioning of the Architecture group among the business silos in an effective way is discussed.&lt;br /&gt;&lt;br /&gt;As far as SOA Project Leadership goes, there are 3 critical project leadership roles.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Project Manager&lt;/span&gt; - responsible for ensuring that the combined business process and systems changes actually generate the project's expected business benefits within the cost and schedule guidelines&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Business Process Architect&lt;/span&gt; - determines the structure and organization of the overall business process&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Systems Architect&lt;/span&gt; - determines the structure and organization of the information systems supporting the business processes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Brown really emphasizes the architecture of business processes along with system architecture.  This really makes sense as SOA is about mapping services of the enterprise.&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-weight:bold;"&gt;Total Architecture Synthesis(TAS)&lt;/span&gt; is an approach to developing business processes and systems together.  "When compared with the classic waterfall-style development, this approach significantly reduces project cost, time, and risk.  When compared with agile programming, this approach validates architecture suitability before committing to implementation"  This process leverages the use of standard UML(Unified Modeling Language) design notations to capture the design of both business processes and systems.  The use of UML is a good idea, as I feel that having a well known tool for capturing information is desirable.&lt;br /&gt;&lt;br /&gt;All in all, a common sense book and I look forward to the forthcoming book, "SOA in Practice". This accompanying book will be more aimed at SOA Architects, rather than the focus on Enterprise leadership of this book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5993103197988268285?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5993103197988268285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5993103197988268285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5993103197988268285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5993103197988268285'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/succeeding-with-soa.html' title='Succeeding with SOA'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9sKUqr1J8tA/RxLb6DHx0mI/AAAAAAAAACA/mIWU6NPMIj8/s72-c/SucceedingWithSOA.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-486021526807216275</id><published>2007-10-07T15:31:00.000-07:00</published><updated>2007-10-07T15:44:28.419-07:00</updated><title type='text'>Enterprise Architecture and SOA</title><content type='html'>I am trying to scour for articles on Enterprise Architecture and SOA.  Here is an article explaining how the relationship between EA &amp; SOA.&lt;br /&gt;&lt;br /&gt;The April 2007 edition on the IASA's Perspectives of the IASA "Special Issue: Enterprise Architecture - A 20 Year Retrospective"&lt;br /&gt;&lt;br /&gt;"Enterprise Architecture and SOA: A Partnership" by Dr. Yan Zhao&lt;br /&gt;&lt;br /&gt;There is also an interview with John Zachman, creator of the Zachman Framework.&lt;br /&gt;&lt;br /&gt;The link to this article &lt;a href="http://www.iasahome.org/web/home/perspectives?p_p_id=20&amp;p_p_action=1&amp;p_p_state=exclusive&amp;p_p_col_id=null&amp;p_p_col_pos=0&amp;p_p_col_count=1&amp;_20_struts_action=%2Fdocument_library%2Fget_file&amp;_20_folderId=9&amp;_20_name=IASANewsletterApril2007-2.pdf"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please let me know of your opinions on EA framworks and their application to an SOA implementation.  I am trying to focus more on the Zachman and TOGAF EA frameworks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-486021526807216275?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/486021526807216275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=486021526807216275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/486021526807216275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/486021526807216275'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/enterprise-architecture-and-soa.html' title='Enterprise Architecture and SOA'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-4925750897769398604</id><published>2007-10-04T23:36:00.001-07:00</published><updated>2007-10-04T23:39:36.560-07:00</updated><title type='text'>Zachman Framework Parts 5 &amp; 6 - The Metaframeworks and Conclusion</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9sKUqr1J8tA/RwXbm6nqA3I/AAAAAAAAAB4/QyOVljjxYDo/s1600-h/topdowndoitright.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_9sKUqr1J8tA/RwXbm6nqA3I/AAAAAAAAAB4/QyOVljjxYDo/s400/topdowndoitright.jpg" alt="" id="BLOGGER_PHOTO_ID_5117738013193536370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have finally finished reading the Zachman Framework eBook and it is interesting and  will take some more time to absorb!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Part 5 – The Metaframework&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Chapter 12 - Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some people may be tempted to skip Part5: Meta and the Framework because it is discussing meta concepts and at the very mention of the word meta some people begin to get dizzy.&lt;br /&gt;&lt;br /&gt;The model of any one Cell (the Cell metamodel) would depict the internal structure of all the occurrences of the one columnar variable from the perspective (audience) for which the model was constructed.  The basic, simple meta entities for each Cell appear in the Framework graphic at the bottom of each Cell. For example, in Column 1, Row 2.&lt;br /&gt;&lt;br /&gt;A number of standards groups are attempting to define standard metamodels for a number of the Cells, predominantly in Row 5 (whether they are aware that they are defining standard metamodels for Row 5 of the Zachman Framework, including the OMG, the MDC, the OSI, etc, etc.&lt;br /&gt;&lt;br /&gt;Actually, I am not too embarrassed to admit that we do not have a standard metamodel of all the Cells in 2002. At least we have a pretty good understanding of what each Row is describing and what each Column is describing and therefore, what the essential contents are for each Cell.  That may be all that is needed to get started.&lt;br /&gt;&lt;br /&gt;But GOOD NIGHT!! This is the most complex engineering and manufacturing problem known to mankind, ENTERPRISE Engineering and Manufacturing, and this Enterprise Engineering and Manufacturing discipline is only about 50 years old!!&lt;br /&gt;&lt;br /&gt;All repositories and some modeling tools have extensible metamodels, that is, they make it easy to extend their database design (or, change their semantic structures, that is, change the meaning of the metadata) to accommodate a specific metamodel for a specific Information Systems Enterprise.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Chapter 13 – Metaframeworks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Enterprise Engineering and Manufacturing Framework models at Row 2 are meta relative to the Enterprise Framework.&lt;br /&gt;&lt;br /&gt;This is exactly the same relationship that the Enterprise Framework has with its Product Framework. Every product has a set of models (a Framework) that are descriptive of the product. That’s where I learned about the Framework to begin with… I was looking at the descriptive representations (design artifacts) for airplanes, buildings, locomotives, computers, automobiles … complex engineering products.&lt;br /&gt;&lt;br /&gt;CAUTION: Services of the Enterprise are different from Products in that Service does not exist independently of the Enterprise itself. Services, if they are sufficiently complex, may be considered to have a Framework of their own to help define and specify them, but if this is helpful, the Service Framework must be merged into (that is, integrated with) the Enterprise Framework or you will end up with a dis-integrated, Service stovepipe or a frustrating legacy of Services just like we have a frustrating legacy of applications today.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Chapter 14 – Knowledge Domains&lt;/span&gt;&lt;br /&gt;In the discussion of metaframeworks, I have described three domains of knowledge that are increasingly critical to the on-going management of a modern, Information Age Enterprise:&lt;br /&gt;1. Knowledge of the Product of the Enterprise,&lt;br /&gt;2. Knowledge of the Enterprise itself and&lt;br /&gt;3. Knowledge of the Enterprise (i.e. Information Systems et al) that is engineering and manufacturing THE Enterprise (EE&amp;amp;M)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Chapter 15 – Multiple Frameworks in the Same Enterprise&lt;/span&gt;&lt;br /&gt;.. you could apply the Framework logic to every single business unit on a stand-alone basis. Enterprise-wide would mena Business Unit-wide and the analysis would likely be more manageable. The Business Unit Frameworks could potentially be integrated into one bigger Enterprise Framework.  It is only a matter of how you graphically want to depict them.&lt;br /&gt;&lt;br /&gt;You don’t get integration by accident. If you WANT integration, then you have to ENGINEER for integration. That means that you will have to DICTATE to the Business Units that you want such and such slivers of such and such Cells of their Frameworks to all be THE SAME.&lt;br /&gt;&lt;br /&gt;In the Information Age, there is significant management advantage to knowing, having coherent visibility into the Enterprise and its environment.  Change(maneuverability) is the dominant strategy option. The Enterprise that is optimized, knows sooner and can destabilize the market is the one that wins the game.  These are the bnefits of integration.  This is the reason why the definition of Enterprise is important to management. &lt;br /&gt;&lt;br /&gt;The Framework is inert. It does not know what you are using it to think about. Only the analyst, or engineer determines what the analytical target is.  It can be used to classify the descriptive representations of anything.&lt;br /&gt;&lt;br /&gt;All of these characteristics of the Framework make it a good thinking tool … a thinking tool that will help thinking about a very complex subject like an Enterprise.  Once we establish an analytical target, we can think about one thing (one Cell) at a time without losing sense of its Enterprise (Row and Column ) context. We can isolate a single variable and think about that Cell without getting mired down in the myriad of issues going on in the other 35 Cells.  At the same time, we can maintain an awareness of thither related, peer, meta or granular Frameworks.  We can think about slivers of Cells, vertical or horizontal slivers, and see the short term and long term implications of implementation strategies.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Part 6 – In Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Chapter 16 – Cheaper and Faster&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;How do you cost-justify Architecture?&lt;br /&gt;The obvious answer to the question is, you can’t cost-justify Architecture because cost-justification is an expense-based concept and Architecture is not an expense. Architecture is an ASSET.&lt;br /&gt;&lt;br /&gt;An example is given from one of the eastern states in the early 90’s&lt;br /&gt;&lt;br /&gt;-The cost per new entity type/RDBMS table was reduced from something greater than $150,000 per table to something less than $10,000 per table (That’s a 15 times improvement … not too shabby.)&lt;br /&gt;- Enterprise data handling labor reduced by 50%&lt;br /&gt;- Reduced development time of 25% through improved communication and conflict resolutions&lt;br /&gt;- Development time and cost reductions for every succeeding implementation of 50% compounded through reuse of database and application components with no modifications.(Actually, the exact quote was, every time we reuse something we get 100% return on our investment.)&lt;br /&gt;- Reduced disk space for data(including history) of 20% - %80 through elimination of redundancy&lt;br /&gt;&lt;br /&gt;A better way to ask the question how do you cost-justify architecture? Would be, where do you get the up-front money to do Enterprise Architecture?&lt;br /&gt;Answer: You don’t need up-front money!!! Just go get the money they are already spending or about to spend and instead of dribbling it away writing code and implementing, use it judiciously and do some engineering(Architecture) first, before you start manufacturing(implementing).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-4925750897769398604?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/4925750897769398604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=4925750897769398604' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4925750897769398604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4925750897769398604'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/zachman-framework-parts-5-6.html' title='Zachman Framework Parts 5 &amp; 6 - The Metaframeworks and Conclusion'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9sKUqr1J8tA/RwXbm6nqA3I/AAAAAAAAAB4/QyOVljjxYDo/s72-c/topdowndoitright.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7487672805218723823</id><published>2007-10-03T22:33:00.000-07:00</published><updated>2007-10-03T22:37:44.860-07:00</updated><title type='text'>Zachman Framework Part 4 - Frustration, Segmentation, and Migration</title><content type='html'>Here is more summary notes from the Zachman eBook.  It is pretty interesting.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 9 – Frustration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In fact, it is a miracle that anything got implemented that had anything to do with what the Owners had in mind when we never defined what they had in mind in the first place. In contrast, the Row 6 implementations are locked in concrete.&lt;br /&gt;&lt;br /&gt;The solution to this problem is to begin to see that the models are not simply a convenience for helping to build the systems. No! They are the equivalent to the Product Definition  of a complex product, for example, they are like the drawings, functional specs, bills-of-material, etc., etc. for an airplane.&lt;br /&gt;&lt;br /&gt;Summarization Column by Column the issue and degree of frustration:&lt;br /&gt;&lt;br /&gt;Column 1: Things (the date being surrogates for the Things) – if you have redundancies and discontinuities in the data, you have a Tower of Babel problem. You are unable to communicate effectively or take inventories and analyze the asset consumption and utilization an you will lose control of the business.&lt;br /&gt;&lt;br /&gt;Column2. Process – the same process is replicated and not being performed consistently.  This is not very efficient but it won’t bring the Enterprise to a screeching halt.&lt;br /&gt;&lt;br /&gt;Column 3 – Location – the distribution of the Enterprise as manifest in the hardware/systems software. You could have every kind of hardware/systems software known to mankind.   The stability of the network deteriorates and the cost of keeping the network up 24x7 is running somewhere around 50% of the Information Systems budget.&lt;br /&gt;&lt;br /&gt;Column 4 – People – the work flow is disintegrated… every user has a plethora of screens customized for every different application they use. This is not very efficient but it won’t bring you to a screeching halt.&lt;br /&gt;&lt;br /&gt;Column 5 – Time – there is no coherence in the dynamic aspects of the Enterprise. I know little about this column of models but the more I understand about Industrial Dynamics, the more I suspect this is having a substantial although unrecognized impact on the Enterprise&lt;br /&gt;&lt;br /&gt;Column 6 – Motivation – it is from here that the business rules are derived and if the same business rule is imbedded inconsistently or incoherently in multiple system, management is going to be really frustrated.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are 3 columns of models that will cause substantial management frustration if there are inconsistencies or incoherencies across the scope of the Enterprise. They are Column 1 (the Thing Column as it is manifest in the data), Column 3(the Location Column as it is manifest in the hardware/system software) and Column 6 ( the Motivation Column as it is manifest in the business rules).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Key is Column 1. If you can figure out how to build out Column 1 , the Thing Column, sliver by sliver, everything else will fall into place for you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 10 – Segmentation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Promoting to Enterprise-wide Quality – Some of the Entities in the Enterprise-wide Data Model they left at only “project quality.”  That is, they didn’t make any effort to acquire any agreement by any other users as to their structure..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 11 – Migration&lt;/span&gt;&lt;br /&gt;You could build out of the Semantic Model (Column1, Row2) to 200-300 Entities, run the where used application, define the build sequence based on data dependency, pick up some slivers to flesh out in detail, transform the high level of detail Semantic Model(Row 2) to a high level of detail Logical Data Model (Row3) and build out the Logical Data Model(Row3) sliver by sliver at excruciating level of detail in dependency sequence.&lt;br /&gt;&lt;br /&gt;Before the Enterprise would be able to perceive any practical value from the Data Model, you would have to transform it to Data Design(Row4), transform that to Data Definition(Row 5) and create the resultant database (Row 6).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Data Warehouse&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you can populate the Architected database with data from the legacy files that has consistent meaning and good quality, you can make a lot of management folks very happy reasonably quickly. The data will look integrated to them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Genius of Data Warehouse&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- You move the output processing into an architected environment without having to rebuild all of the input processing systems…give management access to integrated appearing data with a limited amount of work, which likely makes them VERY happy(for a change)&lt;br /&gt;- You set up a 3 schema environment and reduce the change liability from a geometric function(m x n) to an arithmetic function(m+n)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Technology Architecture&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The same basic concept could be used for migrating out of the legacy Technology environment that is, define the to be, normalized, standard hardware and systems software Column 3, Row 4 Technology Architecture. Then rebuild the applications one at a time, moving them from the legacy environment to the Architected environment. In this fashion, you could leverage the value of the legacy up until you shift the dependency, system by system, to the new environment.  This gives you time to stabilize each conversion before embarking of the next.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Process, Work Flow, Business Rules and Dynamics Architectures&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once you begin the migration to the architected environment and begin to diffuse some of the Enterprise’s frustrations relative to the Legacy in Column 1 (Data), Column 3(Technology) and Column 6(Business Rules), it will buy you some time to examine the Enterprise Processes(Column 2) and Work Flow(Column 4) with regard to possible normalization. This would provide marked improvements in efficiency and establish a baseline for facilitating process and work flow change.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;In Summary on Part 4 Frustrations&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The pain level in if not most Enterprises has become increasingly intense as we continue into the Information Age, and I have suggested that the cause of the pain lies in our historical lack of understanding and employment of architectural concepts in our Enterprises, particularly in Column 1, and Column 3, and Column 6.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9sKUqr1J8tA/RwR8AAMbXyI/AAAAAAAAABY/6XX6AqRf5Ks/s1600-h/Migration.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_9sKUqr1J8tA/RwR8AAMbXyI/AAAAAAAAABY/6XX6AqRf5Ks/s400/Migration.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5117351416093695778" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7487672805218723823?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7487672805218723823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7487672805218723823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7487672805218723823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7487672805218723823'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/zachman-framework-part-4-frustration.html' title='Zachman Framework Part 4 - Frustration, Segmentation, and Migration'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9sKUqr1J8tA/RwR8AAMbXyI/AAAAAAAAABY/6XX6AqRf5Ks/s72-c/Migration.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-1701796583623337796</id><published>2007-10-03T19:09:00.001-07:00</published><updated>2007-10-27T12:04:36.470-07:00</updated><title type='text'>Review  of Zachman Framework Parts 2 &amp; 3</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9sKUqr1J8tA/RyOLtrObRdI/AAAAAAAAACY/38sZjG2Qv-4/s1600-h/ValueProposition.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_9sKUqr1J8tA/RyOLtrObRdI/AAAAAAAAACY/38sZjG2Qv-4/s320/ValueProposition.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5126094417691362770" /&gt;&lt;/a&gt;&lt;br /&gt;I have been trying to quickly absorb the Zachman Framework and the following are excerpts from the Zachman eBook.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Chapter 4 – Observations in Physics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The implications of having no Architecture are that once the assumptions start to change, it is extremely difficult, extremely time consuming to attempt to reverse engineer the assumptions (the Enterprise models) out of the existing systems, change them and reconstruct new implementations.&lt;br /&gt;&lt;br /&gt;All those models identified by the Framework are always present. It is only a matter of whether you make them explicit or not.&lt;br /&gt;&lt;br /&gt;The System is the Enterprise&lt;br /&gt;&lt;br /&gt;Vertical Slivers&lt;br /&gt;It is okay to build slivers of Cells, but if you want the slivers to be integrated (reusable, normalized, seamless, interchangeable, interoperable, etc., etc) you have to do something over and above just building a bunch of slivers.&lt;br /&gt;Columns 1(the Data Column) ,3 (the Network Column), and 6(the Motivation Column) are the three columns that the Enterprise finds critical for scope(Enterprise-wide) integration.&lt;br /&gt;&lt;br /&gt;In Summary of Enterprise Physics&lt;br /&gt;&lt;br /&gt;First, all the models are always present. It’s only a matter of whether you make them explicit or not. If you don’t make them explicit, they are implicit which means you are making assumptions about them.&lt;br /&gt;&lt;br /&gt;Second, the system is the Enterprise. Manual systems employ pencils, paper and file cabinets. Automated systems employ stored programming devices and electronic media.&lt;br /&gt;&lt;br /&gt;Third, high level of detail descriptions (models) are good for planning, scoping, bounding, segmenting, etc. (High level descriptions are no good for implementation)&lt;br /&gt;&lt;br /&gt;Fourth, narrow in scope descriptions (slivers of models) are quick. (Narrow in scope descriptions result in stovepipes)&lt;br /&gt;&lt;br /&gt;Note: if you start thinking your Enterprise is exempt from these physical principles, I assure you, you are vulnerable to experiencing pain.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 5 – End State Vision&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Change with minimum time, disruption and cost is dependent upon Architecture.&lt;br /&gt;If you have no Architecture, there is NO WAY you are going to change anything with minimum time, distuption and cost.&lt;br /&gt;&lt;br /&gt;The Methodology Message&lt;br /&gt;- Build Models&lt;br /&gt;- Store Models&lt;br /&gt;- Manage (Enforce) Models&lt;br /&gt;- Change Models&lt;br /&gt;&lt;br /&gt;I am suggesting that the norm has to become the models and the exception has to be you start writing the code.&lt;br /&gt;&lt;br /&gt;First, I am NOT saying, forget about short-term demand!&lt;br /&gt;I am NOT saying: Never take the short-term option! Sometimes, because of the business exigencies, you are going to have to go directly to you start writing code…!  There is nothing the matter with short-term options… as long as you recognize they are short-term options.&lt;br /&gt;&lt;br /&gt;It should be an Enterprise decision whether to take the short-term option or the long-term option, not an information systems(or, technical) decision.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Part 3  – End State Vision&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 6 – Introduction to Engineering Design Objectives&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Design objectives include flexibility, adaptability, alignment, and quality&lt;br /&gt;These only come by engineering… Enterprise Engineering&lt;br /&gt;&lt;br /&gt;Reducing Time-to-Market&lt;br /&gt;&lt;br /&gt;Make-to-Order&lt;br /&gt;Shifting to an assemble-to-order environment. That is, the culture of the assemble-to-order (mass customization) environment is diametrically opposed to he make-to-order (job shop) environment.&lt;br /&gt;&lt;br /&gt;The only way you are going to be able to reduce time-to-market to virtually zero is to Engineer and pre-fabricate the parts in the inventory such that they can be assembled into more than one product, that is, be reused in more than one implementation.&lt;br /&gt;By the way, if you DO NOT have something in inventory before you get the order, you ARE a job shop, that is, in information systems terms, a waterfall.&lt;br /&gt;&lt;br /&gt;Any Cell (primitive model) of the Framework is a candidate for engineering for reusability.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Chapter 7 – Additional Engineering Design Objectives&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you REALLY want the implemented Enterprise to align with what the Owners have in mind, you ARE going to take a top, down approach for building it out.&lt;br /&gt;&lt;br /&gt;In summary on flexibility, change with minimum time, disruption and cost, there are several basic ideas:&lt;br /&gt;-Separate the independent variables so you can change one variable&lt;br /&gt;-Insert a conceptual schema (intersection) between many-to-many variables to reduce change liability from geometric to arithmetic&lt;br /&gt;- Work with normalized, primitive models so you can change any concept once and it is changed for every employment&lt;br /&gt;- Retain all primitive models to serve as a baseline for managing change (Someday, you are going to wish you had all those models… because I am equally convinced that the primitive models constitute the engineering basics!)&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Chapter 8 – The Value Proposition for Architecture&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enterprise Architecture is an asset, not an expense. Architecture is a long term strategy. The basic idea is, you do the engineering before you start manufacturing in order to eliminate, minimize, or at least reduce the scrap and rework costs.  You are investing in an inventory of assets that can be used(reused) in more than one implementation.&lt;br /&gt;&lt;br /&gt;4 things you are unable to do in the Enterprise unless you invest in Architecture, an inventory of primitives engineered for reuse&lt;br /&gt;- Alignment(quality). To ensure that the Enterprise implementations are consistent with the Owner’s intentions&lt;br /&gt;- Integration(seamlessness, interoperability, standard interchangeable parts). To eliminate redundancy, duplication, discontinuity, incoherence, etc.&lt;br /&gt;- Change (flexibility, adaptability). To change the Enterprise with minimum time, disruption and cost.&lt;br /&gt;- Reduced time-to-market. Architecture coupled with an assemble-to-order strategy to reduce the time it takes to produce implementations to only the time it takes to assemble.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Part 2 – Analyzing the Enterprise&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-1701796583623337796?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/1701796583623337796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=1701796583623337796' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1701796583623337796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1701796583623337796'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/review-of-zachman-frameworks-part-2-3.html' title='Review  of Zachman Framework Parts 2 &amp; 3'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9sKUqr1J8tA/RyOLtrObRdI/AAAAAAAAACY/38sZjG2Qv-4/s72-c/ValueProposition.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-9083705324566461073</id><published>2007-10-01T18:46:00.000-07:00</published><updated>2007-10-01T19:01:46.609-07:00</updated><title type='text'>Good to Great</title><content type='html'>&lt;a href="http://www.businessincubator.ca/system/files/images/8f.jpg"&gt;&lt;img style="margin: 0px 10px 10px 0px; float: left; width: 200px;" alt="Good to Great" src="http://www.businessincubator.ca/system/files/images/8f.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I recently borrowed this book off of one of the executives at work.  I am hoping this is the one of the few reads I will do unrelated to my Thesis until it is done.  I would like to summarize some of the important points to help reinforce what I read.&lt;br /&gt;&lt;br /&gt;Basically, Jim Collins studied numerous companies and tried to distill what 11 companies out of thousands did right which lead to their exceptional growth and value creation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Level 5 Leaders&lt;/span&gt; - Builds enduring greatness through a paradoxical blen of personal humility and professional will.&lt;br /&gt;I liked the comment about the window and the mirror. Look through the window when there is credit to be given and the mirror when blame is to be assigned.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The HedgeHog Concept&lt;/span&gt; - Do the simple things and do them well. Take the three circles (What you are deeply passionate about, What you can be the best in the world at, and What drives your economic engine) and your strategy should be within the intersection of these circles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Flywheel&lt;/span&gt; - Things do not happen in one fell swoop or some rah -rah session.  It is a sustainable drive, like pushing on a giant, heavy flywheel, it takes a lot of effort to get the thing moving at all, but with persistent pushing in a consistent direction over a long period of time.  (Sam Walton took 7 years before he opened his second store! from which came over 3000 stores and over $150 billion in revenues in 2000).&lt;br /&gt;&lt;br /&gt;Read the book for more in depth, but I saw a documentary on it and its application to the public sector as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-9083705324566461073?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/9083705324566461073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=9083705324566461073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/9083705324566461073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/9083705324566461073'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/10/good-to-great.html' title='Good to Great'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-6686752622656228127</id><published>2007-09-30T13:14:00.000-07:00</published><updated>2007-09-30T14:21:33.725-07:00</updated><title type='text'>Introduction to Zachman Framework</title><content type='html'>&lt;a href="http://www.opengroup.org/architecture/togaf8-doc/arch/Figures/zf_basic.gif"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 200px; CURSOR: hand" alt="Zachman Framework" src="http://www.opengroup.org/architecture/togaf8-doc/arch/Figures/zf_basic.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well I have everything lined up for my Master's Thesis at the Athabasca University. I am looking at how to apply Enterprise Architecture Frameworks towards an SOA. I have received Zachman's eBook and have read the first 3 chapters. I must admit I am not a big fan of reading at the computer but that is what what I have to do with this.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 1. Introduction&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Zachman Framework is represented by a 6x6 grid of different cells. The 6 rows are:&lt;br /&gt;&lt;br /&gt;Principal Perspectives:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Owner's perspective&lt;/strong&gt; - the recipient of the end product&lt;br /&gt;&lt;strong&gt;Designer's perspective&lt;/strong&gt; - the engineer/architect between the what is desirable (Row 2) and what is physically possible(Row 4)&lt;br /&gt;&lt;strong&gt;Builder's perspective&lt;/strong&gt;- the one(engineer) who has the technical capacity for producing the end product&lt;br /&gt;&lt;strong&gt;Scope Perspective&lt;/strong&gt; - context that estabishes the universe of discourse, inner and outer limits&lt;br /&gt;&lt;strong&gt;Out-of-Context Perspective&lt;/strong&gt; - detailed description that disassociates the parts of the complex object for manufacturing process&lt;br /&gt;&lt;strong&gt;Row 6&lt;/strong&gt; represents the physical manifestation of the end product itself, not Architecture&lt;br /&gt;&lt;br /&gt;Abstractions of the Framework:&lt;br /&gt;What - what it is made of, material composition of the object&lt;br /&gt;How - it works, the functional specification, the transformations&lt;br /&gt;Where - the components are located relative to one another&lt;br /&gt;Who - does what work&lt;br /&gt;When - do things happen relative to one another - life cycles, timing diagrams&lt;br /&gt;Why - do things happen&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 2 - Three Definitions of Integration&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Scope Integration&lt;/strong&gt; - continuity across the scope of the Enterprise within any or every Cell.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Horizontal Integration&lt;/strong&gt; - continuity between the different types of models across any or every Row&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Vertical Integration&lt;/strong&gt; - continutity of intent from Cell to Cell down any or every column&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapter 3 - Rules of the Framework&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Rule 1: Do Not Add Rows or Columns to the Framework&lt;br /&gt;Rule 2: Each Column Has a Simple Generic Model&lt;br /&gt;Rule 3: Each Cell Model Specializes Its Column's Generic Model&lt;br /&gt;Rule 3 Corollary: Level of Detail Is a Function of a Cell, Not a Column&lt;br /&gt;Rule 4: No Meta Concept Can Be Classified Into More than One Cell&lt;br /&gt;Rule 5: Do not Create Diagonal Relationships Between Cells&lt;br /&gt;Rule 6: Do Not Change the Names of the Rows or Columns&lt;br /&gt;Rule 7: The Logic is Generic, Recursive&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-6686752622656228127?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/6686752622656228127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=6686752622656228127' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6686752622656228127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6686752622656228127'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/09/introduction-to-zachman-framework.html' title='Introduction to Zachman Framework'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5324710893379629250</id><published>2007-09-29T20:15:00.000-07:00</published><updated>2007-09-29T20:21:12.693-07:00</updated><title type='text'>Greg the Architect</title><content type='html'>Thanks to &lt;a href="http://soaevolution.blogspot.com/"&gt;Anthony Kimber's blog&lt;/a&gt; for pointing out Greg the Architect!&lt;br /&gt;&lt;br /&gt;These videos are probably closer to the truth than most of the vendor speak/buzzword on SOA out there!&lt;br /&gt;&lt;br /&gt;&lt;object height="353" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uOQcjvUHZ0k&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/uOQcjvUHZ0k&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="353"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="353" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HHYZkpHn_pY&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/HHYZkpHn_pY&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="353"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="353" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/DEc5zcJQ0l8&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/DEc5zcJQ0l8&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="353"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="353" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CnhEfxxhg34&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/CnhEfxxhg34&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="353"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5324710893379629250?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5324710893379629250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5324710893379629250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5324710893379629250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5324710893379629250'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/09/greg-architect.html' title='Greg the Architect'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5339756799095900700</id><published>2007-09-25T23:30:00.000-07:00</published><updated>2007-10-10T21:21:20.276-07:00</updated><title type='text'>SOA - Principles of Service Design</title><content type='html'>&lt;a href="http://ec1.images-amazon.com/images/I/511qyeQefGL._AA240_.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 200px; CURSOR: hand" alt="" src="http://ec1.images-amazon.com/images/I/511qyeQefGL._AA240_.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just finished &lt;strong&gt;Thomas Erl&lt;/strong&gt;'s new SOA book &lt;strong&gt;"SOA - Principles of Service Design"&lt;/strong&gt;. Again, it is a quality book, giving real information on SOA and implementation details without the fluff. It is certainly a technical book with very good diagrams and explanations.&lt;br /&gt;&lt;br /&gt;There is quite an impressive array of reviews for the book from industry specialists from Google, Oracle, Microsoft, and so on. This book can stand on its own or it can be paired with his "SOA Design Patterns" book. Some patterns are referenced but not the complete set in the Design Pattern book.&lt;br /&gt;&lt;br /&gt;There are 3 parts to "SOA - Principles of Service Design": Fundamentals, Design Principles and a Supplemental section.&lt;br /&gt;&lt;br /&gt;Firstly, the Fundamental section reviews SOA, Benefits and sets the stage for the Design Principles. "A principle is a generalized, accepted industry practic. In other works, it something others are doing or promoting in association with a common objective..." From the principles, come design patterns.&lt;br /&gt;&lt;br /&gt;The second section covers the &lt;strong&gt;Design Principles&lt;/strong&gt; themselves, of which 8 are given:&lt;br /&gt;&lt;br /&gt;1. Service Contracts (Standardization and Design)&lt;br /&gt;2. Service Coupling (Intra-Service and Consumer Dependencies)&lt;br /&gt;3. Service Abstraction (Information Hiding and Meta Abstraction Types)&lt;br /&gt;4. Service Reusability (Commercial and Agnostic Design)&lt;br /&gt;5. Service Autonomy (Processing Boundaries and Control)&lt;br /&gt;6. Service Statelessness (State Management Deferral and Stateless Design)&lt;br /&gt;7. Service Discoverability (Interpretability and Communication)&lt;br /&gt;8. Service Composability (Composition Member Design and Complex Composition)&lt;br /&gt;&lt;br /&gt;Each principle is profiled and explained. Each provides guidance in shaping your SOA. They work together but there are examples where they conflict and choices must be made. A design paradigm is a composition of the design principles. From the design principles, there are design patterns. So basically, a design paradigm (SOA), is comprised of design principles, which is then made up of the design patterns.&lt;br /&gt;&lt;br /&gt;Each design principle is summarized in a Principle Profile, which contains a short definition, long definition, goals, design characteristics, implementation requirements, web service region of influence.&lt;br /&gt;&lt;br /&gt;The last section, Supplemental, covers a comparison between SOA and OO, Supporting Practices, and Mapping Service-Orientation Principles to Strategic Goals.&lt;br /&gt;&lt;br /&gt;I have to say that reading Erl's books enlighten in a common-sense technical way. He is my favorite SOA author.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5339756799095900700?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5339756799095900700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5339756799095900700' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5339756799095900700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5339756799095900700'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/09/soa-principles-of-service-design.html' title='SOA - Principles of Service Design'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-2769330401037081023</id><published>2007-09-03T12:29:00.000-07:00</published><updated>2007-10-26T07:43:03.646-07:00</updated><title type='text'>Getting started with JSF 1.2 &amp; Tomcat 6</title><content type='html'>I wanted to start dabbling with JSF and the latest JDK and Tomcat versions. I have an idea for a website that I want to create. To gain skills and knowledge in JSF seems valuable to me.&lt;br /&gt;&lt;br /&gt;I had seen that myfaces 1.2 came out and tried to get it working but ran into some JSTL tag issues. Roseindia.net gives a tutorial on how to get Tomcat 6 and jsf 1.2 running together.&lt;br /&gt;&lt;br /&gt;Basic downloads to get started&lt;br /&gt;Java JDK 1.6 &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;&lt;br /&gt;Eclipse &lt;a href="http://www.eclipse.org/"&gt;http://www.eclipse.org&lt;/a&gt;&lt;br /&gt;Tomcat 6 &lt;a href="http://tomcat.apache.org/download-60.cgi"&gt;http://tomcat.apache.org/download-60.cgi&lt;/a&gt;&lt;br /&gt;Sysdeo Plugin&lt;a href="http://www.eclipsetotale.com/tomcatPlugin.html"&gt;http://www.eclipsetotale.com/tomcatPlugin.html&lt;/a&gt;&lt;br /&gt;This plugin allows you to start and stop tomcat from within Eclipse which is a feature I like.&lt;br /&gt;&lt;br /&gt;Proof that you can run jsf 1.2 on Tomcat 6&lt;br /&gt;&lt;a href="http://www.roseindia.net/jsf/jsf1.2/jsf-1.2-tomcat-6.shtml"&gt;http://www.roseindia.net/jsf/jsf1.2/jsf-1.2-tomcat-6.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;An excellent book that I am starting to go through the examples&lt;br /&gt;is Core JavaServer Faces by Geary &amp;amp; Horstmann.&lt;br /&gt;&lt;br /&gt;I successfully got the first example to run properly, something that I was&lt;br /&gt;not able to do with the latest myfaces 1.2 and Tomcat 6.&lt;br /&gt;&lt;br /&gt;Example code from the book can be found at&lt;br /&gt;&lt;a href="http://www.corejsf.com"&gt;www.corejsf.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Earlier this year, I built a website using myfaces 1.1 and Tomcat 5. That was nice but jsf 1.2 is the more current version and I want to migrate towards that.&lt;br /&gt;&lt;br /&gt;Now that I have it set up, I can start working in JSF 1.2 and all that it&lt;br /&gt;offers.&lt;br /&gt;&lt;br /&gt;I did try and set up the Chapter 8 Tiles examples from corejsf.com and ran into some JSTL tag issues.&lt;br /&gt;&lt;br /&gt;The following link helped resolve that&lt;br /&gt;&lt;a href="http://groups.google.com/group/javaee5/web/setup-enironment-tomcat-6-jsf-1-2-jstl-1-2"&gt;http://groups.google.com/group/javaee5/web/setup-enironment-tomcat-6-jsf-1-2-jstl-1-2&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-2769330401037081023?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/2769330401037081023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=2769330401037081023' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2769330401037081023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2769330401037081023'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/09/getting-started-with-jsf-12-tomcat-6.html' title='Getting started with JSF 1.2 &amp; Tomcat 6'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7246139434105917233</id><published>2007-08-15T07:55:00.000-07:00</published><updated>2007-08-15T07:58:06.806-07:00</updated><title type='text'>JSF MyFaces 1.2 Available for Download!</title><content type='html'>Finally!!!&lt;br /&gt;&lt;br /&gt;I have been waiting for the final MyFaces Core 1.2.0 Release for download.&lt;br /&gt;&lt;br /&gt;Go to &lt;a href="http://myfaces.apache.org/download.html"&gt;http://myfaces.apache.org/download.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you want a JSF 1.2 compliant version that runs on Tomcat this is now possible!&lt;br /&gt;&lt;br /&gt;Known to work with the following environments:&lt;br /&gt;&lt;br /&gt;   1.  Java&lt;br /&gt;         1. JDK 1.4.x&lt;br /&gt;         2. JDK 1.5.x&lt;br /&gt;   2. Servlet Container&lt;br /&gt;         1. Tomcat 4.x&lt;br /&gt;         2. Tomcat 5.x&lt;br /&gt;         3. JRun 4 (SP1a)&lt;br /&gt;         4. JBoss 3.2.x&lt;br /&gt;         5. JBoss 4.0.x&lt;br /&gt;         6. BEA Weblogic 8.1&lt;br /&gt;         7. Jonas 3.3.6 w/ Tomcat&lt;br /&gt;         8. Resin 2.1.x&lt;br /&gt;         9. Jetty 4.2.x&lt;br /&gt;        10. Jetty 5.1.x&lt;br /&gt;        11. Websphere 5.1.2&lt;br /&gt;        12. OC4J&lt;br /&gt;   3. Custom JSF components&lt;br /&gt;         1. ADF Faces of Oracle&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7246139434105917233?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7246139434105917233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7246139434105917233' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7246139434105917233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7246139434105917233'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/08/jsf-myfaces-12-available-for-download.html' title='JSF MyFaces 1.2 Available for Download!'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-3641476297774091369</id><published>2007-07-25T21:16:00.000-07:00</published><updated>2007-07-27T17:44:17.749-07:00</updated><title type='text'>Getting Java Date in another Timezone</title><content type='html'>&lt;div&gt;Getting the date in another timezone is not quite as evident.   But I did whip up a method to return the Date object if you provide your local Date and the timeZone id of where you want to find out what time it is there.&lt;br /&gt;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;public class Timezone {&lt;br /&gt;&lt;br /&gt;public static Date getDateInTimeZone(Date currentDate, String timeZoneId)&lt;br /&gt;{&lt;br /&gt;TimeZone tz = TimeZone.getTimeZone(timeZoneId);&lt;br /&gt;Calendar mbCal = new GregorianCalendar(TimeZone.getTimeZone(timeZoneId));&lt;br /&gt;mbCal.setTimeInMillis(currentDate.getTime());&lt;br /&gt;&lt;br /&gt;Calendar cal = Calendar.getInstance();&lt;br /&gt;cal.set(Calendar.YEAR, mbCal.get(Calendar.YEAR));&lt;br /&gt;cal.set(Calendar.MONTH, mbCal.get(Calendar.MONTH));&lt;br /&gt;cal.set(Calendar.DAY_OF_MONTH, mbCal.get(Calendar.DAY_OF_MONTH));&lt;br /&gt;cal.set(Calendar.HOUR_OF_DAY, mbCal.get(Calendar.HOUR_OF_DAY));&lt;br /&gt;cal.set(Calendar.MINUTE, mbCal.get(Calendar.MINUTE));&lt;br /&gt;cal.set(Calendar.SECOND, mbCal.get(Calendar.SECOND));&lt;br /&gt;cal.set(Calendar.MILLISECOND, mbCal.get(Calendar.MILLISECOND));&lt;br /&gt;&lt;br /&gt;return cal.getTime();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args)&lt;br /&gt;{&lt;br /&gt;Date now = new Date();&lt;br /&gt;&lt;br /&gt;System.out.println("Current Time="+now);&lt;br /&gt;Calendar cal = Calendar.getInstance();&lt;br /&gt;System.out.println("Current Timezone="+cal.getTimeZone().getDisplayName());&lt;br /&gt;&lt;br /&gt;//Canada/Central&lt;br /&gt;String timeZoneId = "Canada/Central";&lt;br /&gt;System.out.println("Getting Time in the timezone="+timeZoneId);&lt;br /&gt;System.out.println("Current Time there="+getDateInTimeZone(now,timeZoneId));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;} &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-3641476297774091369?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/3641476297774091369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=3641476297774091369' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3641476297774091369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3641476297774091369'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/07/getting-java-date-in-another-timezone.html' title='Getting Java Date in another Timezone'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-437913372745715802</id><published>2007-07-03T20:41:00.000-07:00</published><updated>2007-07-03T22:09:08.348-07:00</updated><title type='text'>TOGAF (The Open Group Architecture Framework)</title><content type='html'>Well, I did receive Open Group's TOGAF 8 2006. Looks like a solid read with little fluff. Maybe a little like when I read the PMBOK but more interesting!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is TOGAF?&lt;/strong&gt; (The Open Group Architecture Framework)&lt;br /&gt;&lt;br /&gt;TOGAF is an achitecture framework - The Open GROUP Architecture Framework. It enables you to design, evaluate, and build the right architecture for your organization.&lt;br /&gt;&lt;br /&gt;The key to TOGAF is the Architecture Development Method (ADM) - a reliable, proven method for developing an IT enterprise architecture that meets the needs of your business.&lt;br /&gt;&lt;br /&gt;It mentions that it can be used in conjunction with the Zachman Framework(of which I need to read up on), which has an excellent classification scheme, but lacks an openly available, well-defined methodology.&lt;br /&gt;&lt;br /&gt;"The TOGAF ADM defines a recommended sequence for the various phases and steps involved in developing an architecture, but it cannot recommend a scope - this has to be determined by the organization itself, bearing in mind that the recommended sequence of development in the ADM process is an iterative one, with the depth and breadth of scope and deliverables increasing with each iteration." (p. 30, TOGAF 8)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.opengroup.org/architecture/togaf8-doc/arch/Figures/prelim.gif"&gt;&lt;img style="WIDTH: 400px; CURSOR: hand" alt="" src="http://www.opengroup.org/architecture/togaf8-doc/arch/Figures/prelim.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ADM (Architecture Development Method)&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-437913372745715802?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/437913372745715802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=437913372745715802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/437913372745715802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/437913372745715802'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/07/togaf-open-group-architecture-framework.html' title='TOGAF (The Open Group Architecture Framework)'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-1668427545028401901</id><published>2007-07-02T09:33:00.000-07:00</published><updated>2007-07-02T09:50:31.833-07:00</updated><title type='text'>The Leader In You</title><content type='html'>&lt;a href="http://www.amazon.ca/Leader-You/dp/0671519980/ref=sr_1_1/701-2517087-9337918?ie=UTF8&amp;s=books&amp;amp;qid=1183393922&amp;sr=8-1"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://www.booksamillion.com/bam/covers/0/67/151/998/0671519980.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Finishing "The Leader In You" helps reinforce the ideas from the Carnegie Institute.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;Written similarly to "How to Win Friends and Influence People" and "How to Stop Worrying and Start Living", it gives lessons through the stories and personal experiences of modern day(up to early 90s) leaders from business, politics and sports.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;It was good but I would certainly recommend starting with the 2 books above before reading this one.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Human relationships are important and Carnegie will help you develop them.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;A recap of the main principles in this book:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;1. The first step toward success is identifying your own leadership strengths.&lt;/div&gt;&lt;div&gt;2.Communication is built on trusting relationships&lt;/div&gt;&lt;div&gt;3.Motivation can never be forced. People have to want to do a good job.&lt;/div&gt;&lt;div&gt;4. There's nothing more effective than rewarding than showing a genuine interest in other people.&lt;/div&gt;&lt;div&gt;5. Step outside yourself to discover what's important to someone else.&lt;/div&gt;&lt;div&gt;6. Nobody is more persuasive than a good listener.&lt;/div&gt;&lt;div&gt;7. Team players are the leaders of tomorrow.&lt;/div&gt;&lt;div&gt;8. Truly respecting others is the bedrock of motivation.&lt;/div&gt;&lt;div&gt;9. People work for money but go the extra mile for recognition, praise, and rewards.&lt;/div&gt;&lt;div&gt;10.Be quick to admit mistakes and slow to criticize. Above all, be constructive.&lt;/div&gt;&lt;div&gt;11.Set goals that are clear, challenging, and obtainable.&lt;/div&gt;&lt;div&gt;12. Leaders never lose their focus. They keep their eyes on the big picture.&lt;/div&gt;&lt;div&gt;13.Consistently high performance comes from a balance between work and pleasure.&lt;/div&gt;&lt;div&gt;14. Gain strength from the positive and don't be sapped by the negative.&lt;/div&gt;&lt;div&gt;15. Tame your worries and energize your life.&lt;/div&gt;&lt;div&gt;16. Never underestimate the power of enthusiasm.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-1668427545028401901?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/1668427545028401901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=1668427545028401901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1668427545028401901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/1668427545028401901'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/07/leader-in-you.html' title='The Leader In You'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-3760261531162547469</id><published>2007-06-27T21:31:00.000-07:00</published><updated>2007-06-27T22:47:42.526-07:00</updated><title type='text'>SOA - A Planning and Implementation Guide For Business and Technology</title><content type='html'>&lt;a href="http://www.amazon.ca/Service-Oriented-Architecture-SOA-Implementation/dp/0471768944/ref=sr_1_5/701-2517087-9337918?ie=UTF8&amp;s=books&amp;amp;qid=1183005153&amp;sr=8-5"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 200px; CURSOR: hand" alt="" src="http://images.barnesandnoble.com/images/11130000/11138306.jpg" border="0" /&gt;&lt;/a&gt; I recently finished reading Service-Oriented Architecture - A Planning and Implementation Guide for Business and Technology, written by Eric A. Marks and Michael Bell. &lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;I liked it because it frames SOA with more of a business perspective and how to approach SOA in general. We all know that SOA does not necessarily equal WS-*. Where often SOA books are throwing spec after spec at us.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;This book provides advice on how to create an SOA model to enhance the 2 main goals of an SOA:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;1. Improved Code Reuse&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;2. Quicker Time to Market for Software Projects&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Chapter 3 - SOA Business Modelling provided an example of SOA Value Analysis with a matrix comparing the various areas of the Business Value Chain against SOA Value Drivers such as "Grow the Business","Reduce Costs", "Asset Reuse", "Business Agility","IT Flexibility","Time to Market","Business Processes","Process Visibility". This analysis can help identify "SOA hot spots" to help prioritize business processes.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I appreciated the &lt;strong&gt;"big picture"&lt;/strong&gt; approach to the book. Where you started off considering things like SLAs (Service Level Agreements) and SOA Governance, without wondering how to patch different specs together. The diagrams were good, it looked like some custom notation however. A good bridging book between technology and business.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;A pretty good book, glad I read it. The title makes alot of sense after reading the whole book :&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;SOA - A Planning And Implementation Guide For Business And Technology&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-3760261531162547469?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/3760261531162547469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=3760261531162547469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3760261531162547469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3760261531162547469'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/06/soa-planning-and-implementation-guide.html' title='SOA - A Planning and Implementation Guide For Business and Technology'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5932306391371630065</id><published>2007-06-15T20:45:00.000-07:00</published><updated>2007-06-15T21:08:57.889-07:00</updated><title type='text'>JavaServer Faces!</title><content type='html'>I have been interested in an open source platform to launch a web site. I had heard the about jsf as a J2EE framework.&lt;br /&gt;&lt;br /&gt;One is the lifecycle model better designed to protect the "model" of the MVC architecture.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/javaee/5/docs/tutorial/doc/images/jsfIntro-lifecycle.gif"&gt;&lt;img style="WIDTH: 400px; CURSOR: hand" alt="" src="http://java.sun.com/javaee/5/docs/tutorial/doc/images/jsfIntro-lifecycle.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The current available version is 1.2 which is available from Sun's Glassfish project. I was hoping the the Apache myfaces project would have a version 1.2 out but it seems they are still testing it.&lt;br /&gt;&lt;br /&gt;Sun's version does not run on Tomcat, so I hope the MyFaces team can get 1.2 out soon. I have seen some indications that this can be checked out from cvs but not currently available as a release product.&lt;br /&gt;&lt;br /&gt;My current set up is Tomcat,Eclipse,MyFaces,MySql along with the Sysdeo debugger.&lt;br /&gt;Security for the app is set up using a Filter.&lt;br /&gt;Basic templating done via Tiles.&lt;br /&gt;&lt;br /&gt;I have some basic functionality up and running but I wanted to learn more about the JSF details before so I got a copy of &lt;strong&gt;"Core JavaServer Faces"&lt;/strong&gt; by Geary,Horstmann. It was very good at filling in some gaps and revealing some other ideas I would like to incorporate in my J2EE apps.&lt;br /&gt;&lt;br /&gt;It was good in describing the validation process, the JSF lifecycle(as diagrammed above), event handling, some of the Ajax code(&lt;strong&gt;Ajax4jsf&lt;/strong&gt;).&lt;br /&gt;&lt;br /&gt;When I get some more time I will revisit my application and incorporate some of this.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;JSF is pretty neat!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some good links:&lt;br /&gt;&lt;a href="http://myfaces.apache.org/"&gt;http://myfaces.apache.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/javaee/javaserverfaces/"&gt;http://java.sun.com/javaee/javaserverfaces/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/JavaServer_Faces"&gt;http://en.wikipedia.org/wiki/JavaServer_Faces&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.coreservlets.com/JSF-Tutorial/"&gt;http://www.coreservlets.com/JSF-Tutorial/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5932306391371630065?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5932306391371630065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5932306391371630065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5932306391371630065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5932306391371630065'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/06/javaserver-faces.html' title='JavaServer Faces!'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-2600131191531084720</id><published>2007-05-19T23:40:00.000-07:00</published><updated>2007-05-20T08:54:41.649-07:00</updated><title type='text'>Reading RSS feeds with Java</title><content type='html'>If you were interested in incorporating RSS feeds into your java code you might want to have a look at Project Rome which is an open source java library for handling RSS feeds. Rome is currently in version 0.9 can be found at &lt;a href="https://rome.dev.java.net/"&gt;https://rome.dev.java.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I wrote a simple sample program which reads a given RSS feed and display some of the feed entries along with some attributes. It will also display the RSS version, as there are different versions of RSS. &lt;a href="http://en.wikipedia.org/wiki/RSS_(file_format)"&gt;http://en.wikipedia.org/wiki/RSS_(file_format)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This simple program is the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndFeed;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndEntry;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndImageImpl;&lt;br /&gt;import com.sun.syndication.io.SyndFeedInput;&lt;br /&gt;import com.sun.syndication.io.XmlReader;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.net.URLConnection;&lt;br /&gt;import java.util.List;&lt;br /&gt;import com.sun.syndication.feed.synd.SyndContentImpl;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * 2 Required Jar files&lt;br /&gt; * rome-0.9.jar retrieved from http://rome.dev.java.net/&lt;br /&gt; * jdom.jar retrieved from http://www.jdom.org/&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;public class RSSReader&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; public static void iterateRSSFeed(String rssFeedUrl)&lt;br /&gt; {&lt;br /&gt;  try&lt;br /&gt;  {&lt;br /&gt;   //open up a connection to the rss feed&lt;br /&gt;&lt;br /&gt;   URLConnection feedUrl = new URL(rssFeedUrl).openConnection();&lt;br /&gt;&lt;br /&gt;   //Create Feed Object&lt;br /&gt;   SyndFeedInput input = new SyndFeedInput();&lt;br /&gt;   SyndFeed feed = input.build(new XmlReader(feedUrl));&lt;br /&gt;&lt;br /&gt;   System.out.println("Examining rss feed:"+rssFeedUrl+"\n");&lt;br /&gt;&lt;br /&gt;   System.out.println("Feed type="+feed.getFeedType());&lt;br /&gt;   &lt;br /&gt;   //Iterate through object to get details&lt;br /&gt;   List list = feed.getEntries();&lt;br /&gt;   &lt;br /&gt;   System.out.println("Feed image="+feed.getImage());&lt;br /&gt;   if (feed.getImage()!=null)&lt;br /&gt;   {&lt;br /&gt;    SyndImageImpl image = (SyndImageImpl)feed.getImage();&lt;br /&gt;    String imageInfo = "Image url:"+image.getUrl()+"\n"; &lt;br /&gt;    System.out.println(imageInfo);&lt;br /&gt;   }&lt;br /&gt;   for (int i=0 ; i &lt; list.size(); i++){&lt;br /&gt;&lt;br /&gt;    //display entry attributes&lt;br /&gt;    SyndEntry entry = (SyndEntry)list.get(i);&lt;br /&gt;    String display = "Entry:"+i;&lt;br /&gt;    display += "\ntitle:"+entry.getTitle();&lt;br /&gt;    display += "\nlink:"+entry.getLink();&lt;br /&gt;    display += "\nauthor:"+entry.getAuthor();&lt;br /&gt;    display += "\npublished:"+entry.getPublishedDate();&lt;br /&gt;    display += "\nupdated:"+entry.getUpdatedDate();&lt;br /&gt;    display += "\ndescription:"+entry.getDescription();&lt;br /&gt;    &lt;br /&gt;    display += "\ncontent size:"+entry.getContents().size();&lt;br /&gt;    if (entry.getContents().size()==1)&lt;br /&gt;    {&lt;br /&gt;     SyndContentImpl imp = (SyndContentImpl)entry.getContents().get(0);&lt;br /&gt;     display += "\ncontent value:"+imp.getValue();     &lt;br /&gt;    }&lt;br /&gt;    display += "\n";&lt;br /&gt;    System.out.println(display);&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;  catch(Exception e)&lt;br /&gt;  {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; public static void main(String[] args) {&lt;br /&gt;&lt;br /&gt;  //James Gosling's blog&lt;br /&gt;  String rssFeedUrl = "http://blogs.sun.com/jag/feed/entries/rss";&lt;br /&gt;&lt;br /&gt;  //Mark Cuban's blog&lt;br /&gt;  //rssFeedUrl = "http://www.blogmaverick.com/rss.xml";&lt;br /&gt;&lt;br /&gt;     //rssFeedUrl = "http://techinitiatives.blogspot.com/feeds/posts/default";&lt;br /&gt;&lt;br /&gt;  //RSS 2.0 &lt;br /&gt;     //rssFeedUrl = "http://weather.yahooapis.com/forecastrss?p=FRXX0076&amp;u=c";&lt;br /&gt;&lt;br /&gt;     iterateRSSFeed(rssFeedUrl);&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-2600131191531084720?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/2600131191531084720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=2600131191531084720' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2600131191531084720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2600131191531084720'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/05/reading-rss-feeds-with-java.html' title='Reading RSS feeds with Java'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5404434736167549355</id><published>2007-05-02T21:21:00.000-07:00</published><updated>2007-05-02T21:30:24.392-07:00</updated><title type='text'>Developing Knowledge-Based Client Relationships</title><content type='html'>I just finished Ross Dawson's "Developing Knowledge-Based Client Relationships". I found it useful in understanding more of the business side of consulting and client relationships.&lt;br /&gt;&lt;br /&gt;The book provides a couple of interesting definitions. "Information is anything that can be digitized, while knowledge is the capacity to act effectively, an attribute unique to people."p.96&lt;br /&gt;&lt;br /&gt;Strategy in these types of client relationships is to evolve where the vendor and client integrate/collaborate at a high level to create higher levels of value creation.&lt;br /&gt;&lt;br /&gt;A vendor should strive to avoid black box/commodity work and strive for the higher level knowledge based/collaborative solutions.&lt;br /&gt;&lt;br /&gt;This was a good book for illuminating how to deal with clients strategically. Similar to "The Trusted Advisor". This was a good read before I dive back into more technical reads. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5404434736167549355?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5404434736167549355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5404434736167549355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5404434736167549355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5404434736167549355'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/05/developing-knowledge-based-client.html' title='Developing Knowledge-Based Client Relationships'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-8723936605866357696</id><published>2007-04-08T07:10:00.000-07:00</published><updated>2007-04-11T21:22:27.883-07:00</updated><title type='text'>Service Oriented Architecture</title><content type='html'>I finished reading Enterprise SOA - Service-Oriented Architecture Best Practices (Dirk Krafzig, Karl Banke, Dirk Slama).&lt;br /&gt;&lt;br /&gt;It seems to be one of the higher rated SOA books on Amazon.  That is why I also read Thomas Erl's SOA (Concepts, Technology, and Design) book.&lt;br /&gt;&lt;br /&gt;This book seems to show a little more hands on knowledge and things to watch out for rather than web service specifications.  Although SOA is most commonly thought of along with WS-* specifications, SOA can be implemented without web services.&lt;br /&gt;&lt;br /&gt;The big benefits I see are reusability and interoperability.  Reusability in exposing small functional pieces that can be put together for strategic reasons through an orchestration.  Interoperability in exposing siloed pieces of functionality of an organization to allow all the information to work together.  By exposing different platforms(Java, .NET, mainframe,...), the organization can more easily build enterprise applications to meet short and long term goals.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Definitions of SOA:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A Service-Oriented Architecture(SOA) is a software architecture that is based on the key concepts of an application frontend, service, service repository, and service bus. A service consistes of a contract, one or more interfaces, and an implementation. (Krafzig, p. 57)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SOA is a form of technology architecture that adheres to the principles of service-orientation. When realized through the Web services technology platform, SOA establishes the potential to support and promote these principles throughout the business process and automation domains of an enterprise. (Erl, p.54)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some videos:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/dyHWAiG6c-Y"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/dyHWAiG6c-Y" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/sbd_1G8Kqjs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/sbd_1G8Kqjs" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/zV860odGN5Y"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/zV860odGN5Y" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-8723936605866357696?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/8723936605866357696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=8723936605866357696' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8723936605866357696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8723936605866357696'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/04/service-oriented-architecture.html' title='Service Oriented Architecture'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-2080363134793769248</id><published>2007-04-05T20:56:00.000-07:00</published><updated>2007-04-05T21:09:39.265-07:00</updated><title type='text'>Missing the coolest job ever!</title><content type='html'>I joined the French Foreign Legion in 1994 and served 5 years there.&lt;br /&gt;&lt;br /&gt;Legionnaire number 185565!&lt;br /&gt;&lt;br /&gt;C'est la vie!&lt;br /&gt;&lt;br /&gt;I miss those days. The spartan lifestyle, physical activity, living a dream!&lt;br /&gt;&lt;br /&gt;Thanks to youtube I can get all pumped up and relive it!&lt;br /&gt;&lt;br /&gt;Incredible!&lt;br /&gt;&lt;br /&gt;I am so glad I went and did it.&lt;br /&gt;&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-t1I3eXpWys"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/-t1I3eXpWys" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-2080363134793769248?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/2080363134793769248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=2080363134793769248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2080363134793769248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2080363134793769248'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/04/missing-coolest-job-ever.html' title='Missing the coolest job ever!'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-8953923979546864172</id><published>2007-04-05T19:57:00.000-07:00</published><updated>2007-04-05T20:03:14.442-07:00</updated><title type='text'>ActiveBPEL Vendor Selector Visio Diagram</title><content type='html'>They say a picture is worth a thousand words, I thought I would publish a diagram of the Vendor Selector Application that I build using the ActiveBPEL Designer 3.0.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The code can be downloaded from last month.&lt;br /&gt;&lt;br /&gt;The cool visio symbols for the web services were taken from Mai-lan's Visio Blog.  They look cool and provide a different symbol to signify web services.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_9sKUqr1J8tA/RhW3jqQq75I/AAAAAAAAAA4/tmLmKDzQUcQ/s1600-h/vendorArchitecture.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5050144380433395602" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_9sKUqr1J8tA/RhW3jqQq75I/AAAAAAAAAA4/tmLmKDzQUcQ/s400/vendorArchitecture.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-8953923979546864172?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/8953923979546864172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=8953923979546864172' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8953923979546864172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8953923979546864172'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/04/activebpel-vendor-selector-visio.html' title='ActiveBPEL Vendor Selector Visio Diagram'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9sKUqr1J8tA/RhW3jqQq75I/AAAAAAAAAA4/tmLmKDzQUcQ/s72-c/vendorArchitecture.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-3364037758562459543</id><published>2007-04-04T20:25:00.000-07:00</published><updated>2007-04-04T20:38:44.053-07:00</updated><title type='text'>Scrum has started</title><content type='html'>Well, I finished writing the final exam for COMP 689 - "Advanced Distributed Systems" last Friday.  It was an interesting exam and I will find out in a couple of weeks how it went.&lt;br /&gt;&lt;br /&gt;Also had some good news, I won a scholarship for last years marks in my Masters program.&lt;br /&gt;&lt;br /&gt;I won a Queen Elizabeth II Scholarship Awards&lt;br /&gt;&lt;a href="http://www.athabascau.ca/registrar/studawrds/winners.php"&gt;http://www.athabascau.ca/registrar/studawrds/winners.php&lt;/a&gt;&lt;br /&gt;It was nice but there is much still to be done, I have one more course then I am to start my Thesis Essay in the fall.&lt;br /&gt;&lt;br /&gt;Back to work topics, we have started to follow a Scrum process.  It basically is the Scrum 15 minute daily meeting along with charting progress in the Scrum Backlog.&lt;br /&gt;&lt;br /&gt;The backlog is powerful in providing an instance picture of progress in the project.  We kept the estimates of individual task items to 2 days most.  I am one of the four developers in the project.  We are currently above the burn down chart.  This is okay as scrum is a learning process.&lt;br /&gt;&lt;br /&gt;Today I did not get what I wanted finished but 2 other developers finished 2 days work each that day.  So that means that it was a great day for the team.  The feedback and tracking is pretty instantaneous and I can see how greater visibility into team progress is given using the burndown chart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-3364037758562459543?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/3364037758562459543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=3364037758562459543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3364037758562459543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3364037758562459543'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/04/scrum-has-started.html' title='Scrum has started'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7164031350266195233</id><published>2007-03-13T19:44:00.000-07:00</published><updated>2007-03-13T19:55:39.801-07:00</updated><title type='text'>ActiveBPEL the "Easy Way"</title><content type='html'>Well, if I wanted to get people to use ActiveBPEL and get up to speed quickly. I think I should document what I did to get the application up and running.&lt;br /&gt;&lt;br /&gt;If I can only make a couple people have an easier time getting a BPEL process going quickly, my task will be done.&lt;br /&gt;&lt;br /&gt;I have documented how one can get ActiveBPEL installed and deploy the Vendor Selection application. I would think that it could be done relatively quickly.&lt;br /&gt;&lt;br /&gt;The Vendor Selector BPEL process can be found at &lt;a href="http://techinitiatives.blogspot.com/2007/03/vendor-selector-activebpel-bpel-process.html"&gt;http://techinitiatives.blogspot.com/2007/03/vendor-selector-activebpel-bpel-process.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can download the &lt;a href="http://www.smithspicks.com/techinitiatives/VendorSelector_UserManual.doc"&gt;&lt;strong&gt;Vendor Selector User Manual &lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please let me know if you have any comments on the "Vendor Selector User Manual"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7164031350266195233?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7164031350266195233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7164031350266195233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7164031350266195233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7164031350266195233'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/03/activebpel-easy-way.html' title='ActiveBPEL the &quot;Easy Way&quot;'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-8060510427094626472</id><published>2007-03-12T21:15:00.000-07:00</published><updated>2007-03-13T06:47:43.206-07:00</updated><title type='text'>The Vendor Selector ActiveBPEL BPEL process</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_9sKUqr1J8tA/RfYlyojYxPI/AAAAAAAAAAs/GEvKznrazuc/s1600-h/vendorSelector.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5041258384697378034" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_9sKUqr1J8tA/RfYlyojYxPI/AAAAAAAAAAs/GEvKznrazuc/s400/vendorSelector.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;strong&gt;Vendor Selector BPEL process&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I finished the ActiveBPEL process I was working on from the ground up.  This was part of a project I am working on for COMP 689(Advanced Distributed Systems) at the University of Athabasca. I have one course this summer and then a Thesis to write in the fall to graduate from the Masters of Information Systems program.  I would like to do research in the area of SOA.  That is why I proposed this idea for this course's project.&lt;br /&gt;&lt;br /&gt;It always seems like a fair bit of work to get that first application working in the new environment. It always seems very simple after the fact :-).&lt;br /&gt;&lt;br /&gt;My advice is go all the way with the &lt;strong&gt;ActiveBPEL Designer&lt;/strong&gt;. Work through the from the ground up tutorial to build the loan approval example.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Vendor Selector BPEL process:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1 BPEL process (Coordinate the workflow)&lt;br /&gt;2 Vendor Web Services (Provide quotes and allow purchasing of products)&lt;br /&gt;&lt;br /&gt;This BPEL process helps facilitate the purchase of up to 3 products and 3 quantities. There are 2 vendors each with 2 methods, one to provide a bid price on the tender and another to actually make the purchase. The BPEL process will query both vendors then select the vendor with the lowest price and then call that vendor to actually make the purchase.&lt;br /&gt;&lt;br /&gt;The BPEL and Web Service Clients are included in the Java source under the package &lt;br /&gt;com.smith.client&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I will provide &lt;strong&gt;2 versions of the application&lt;/strong&gt;.&lt;br /&gt;1. With a MySQL 5.0 backend database (Available &lt;a href="http://www.smithspicks.com/techinitiatives/vendor_selector.zip"&gt;here&lt;/a&gt;)&lt;br /&gt;2. Another which does not require a database (random bid quotes produced along with hard coded security authentication) (Available &lt;a href="http://www.smithspicks.com/techinitiatives/vendor_selectorWithoutDb.zip"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;My preferred setup:&lt;br /&gt;Install &lt;a href="http://www.active-endpoints.com/active-bpel-designer.htm"&gt;ActiveBPEL Designer&lt;/a&gt;&lt;br /&gt;Install &lt;a href="http://ant.apache.org/bindownload.cgi"&gt;Ant&lt;/a&gt;&lt;br /&gt;Get a Java 1.5 jdk&lt;br /&gt;If installing the database version of the Vendor Selector:&lt;br /&gt;Install &lt;a href="http://mysql.org/downloads/mysql/5.0.html"&gt;MySQL 5.0&lt;/a&gt; (if using the database version) &lt;br /&gt;and the &lt;a href="http://dev.mysql.com/downloads/connector/j/5.0.html"&gt;MySQL java db driver&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-8060510427094626472?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/8060510427094626472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=8060510427094626472' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8060510427094626472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8060510427094626472'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/03/vendor-selector-activebpel-bpel-process.html' title='The Vendor Selector ActiveBPEL BPEL process'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9sKUqr1J8tA/RfYlyojYxPI/AAAAAAAAAAs/GEvKznrazuc/s72-c/vendorSelector.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7347494006303192243</id><published>2007-03-12T20:35:00.000-07:00</published><updated>2007-03-12T21:57:05.496-07:00</updated><title type='text'>Scrum Presentation and Sample Scrum Backlog</title><content type='html'>I recently read "&lt;strong&gt;Agile Software Development with Scrum" by Schwaber and Beedle&lt;/strong&gt;. It is an interesting agile methodology. The key to monitoring &lt;br /&gt;progress is through a document called a Sprint backlog.&lt;br /&gt;&lt;br /&gt;If you don't have the time to read a book on scrum, I did distill what I thought were the important ideas in a &lt;a href="http://www.smithspicks.com/techinitiatives/Scrum.ppt"&gt;power point presentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Sprint backlog tracks the status of project tasks over the duration of the Sprint (usually 30 days). Progress is shown visually with a "burndown chart" with hours of estimated work along the y axis and work time along the x axis.&lt;br /&gt;&lt;br /&gt;Doug Tillman (&lt;a href="http://www.dugthawts.com/"&gt;http://www.dugthawts.com/&lt;/a&gt;) has had some interesting experiences implementing scrum.&lt;br /&gt;&lt;br /&gt;I was determined to find a &lt;strong&gt;sample backlog&lt;/strong&gt; and figure out how it worked. It is pretty much based on formulas summing columns. The sample can be found &lt;a href="http://www.smithspicks.com/techinitiatives/SprintBacklog.xls"&gt;here&lt;/a&gt; . This is based on a sample I found on the web.&lt;br /&gt;&lt;br /&gt;I used it to show how hypothetically I should work to finish a "Distributed Systems" course I am currently taking.&lt;br /&gt;&lt;br /&gt;The LOADING tab shows all available resources and time available.&lt;br /&gt;The SPRINT BACKLOG tab shows the work(assignments)&lt;br /&gt;The BURNDOWN chart section shows the current progress&lt;br /&gt;- if you are above the line you are currently behind schedule&lt;br /&gt;- if you are below the line you are ahead of schedule&lt;br /&gt;&lt;br /&gt;Also, interestingly, the rate of falling behind or catching up is shown by the burndown graph.&lt;br /&gt;A nice visual tool indeed.&lt;br /&gt;&lt;br /&gt;What I find interesting about the burndown chart is that it is a very visual way of seeing how the project is going and what steps might need to be taken.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7347494006303192243?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7347494006303192243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7347494006303192243' title='68 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7347494006303192243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7347494006303192243'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/03/sample-scrum-backlog_12.html' title='Scrum Presentation and Sample Scrum Backlog'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>68</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7700563391070491097</id><published>2007-02-21T21:32:00.000-08:00</published><updated>2007-02-21T21:49:40.219-08:00</updated><title type='text'>Know-How by Ram Charan</title><content type='html'>I just finished reading &lt;strong&gt;Ram Charan's Know-How&lt;/strong&gt; (The 8 Skills That Separate People Who Perform From Those Who Don't). I had previously read his books Execution and What the CEO Wants You To Know. He makes points illustrated with good examples from the many contacts he has with many top Fortune companies.&lt;br /&gt;&lt;br /&gt;I will simply post his summary at the end of the book. I thought it was a very practical and focused book. Especially about setting goals and focussing on  a few key priorities to achieve them.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Eight Know-Hows&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;Positioning and Repositioning:&lt;/strong&gt; Finding a central idea for business that meets customer demands and that makes money.&lt;br /&gt;2. &lt;strong&gt;Pinpointing External Change:&lt;/strong&gt; Detecting patterns in a complex world to put the business on the offensive.&lt;br /&gt;3. &lt;strong&gt;Leading the Social System:&lt;/strong&gt; Getting the right people together with the right behaviors and the right information to make better, faster decisions and achieve business results.&lt;br /&gt;4. &lt;strong&gt;Judging People:&lt;/strong&gt; Calibrating people based on their actions, decisions, and behaviors and matching them to the non-negotiables of the job.&lt;br /&gt;5. &lt;strong&gt;Molding a Team:&lt;/strong&gt; Getting highly competent, high-ego leaders to coordinate seamlessly.&lt;br /&gt;6. &lt;strong&gt;Setting Goals:&lt;/strong&gt; Determining the set of goals that balances what the business can become with what it can realistically achieve.&lt;br /&gt;7. &lt;strong&gt;Setting Laser-Sharp Priorities:&lt;/strong&gt; Defining the path and aligning resources, actions, and energy to accomplish the goals.&lt;br /&gt;8. &lt;strong&gt;Dealing with Forces Beyond the Market:&lt;/strong&gt; Anticipating and responding to societal pressures you don't control but that can affect your business.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Personal Traits That Can Help Or Interfere With the Know-Hows&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ambition&lt;/strong&gt; - to accomplish something noteworthy BUT NOT win at all costs.&lt;br /&gt;&lt;strong&gt;Drive and Tenacity&lt;/strong&gt; - to search, persist, and follow through BUT NOT hold on too long.&lt;br /&gt;&lt;strong&gt;Self-confidence&lt;/strong&gt; - to overcome the fear of failure, fear of response, or the need to be liked and use power judiciously BUT NOT become arrogant and narcissistic.&lt;br /&gt;&lt;strong&gt;Psychological Openness&lt;/strong&gt; - to be receptive to new and different ideas AND NOT shut other people down.&lt;br /&gt;&lt;strong&gt;Realism&lt;/strong&gt; - to see what can actually be accomplished AND NOT gloss over problems or assume the worst.&lt;br /&gt;&lt;strong&gt;Appetite for Learning&lt;/strong&gt; - to continue to grow and improve the know-hows AND NOT repeat the same mistakes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7700563391070491097?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7700563391070491097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7700563391070491097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7700563391070491097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7700563391070491097'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/02/know-how-by-ram-charan.html' title='Know-How by Ram Charan'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-9077479539573228013</id><published>2007-02-17T20:31:00.001-08:00</published><updated>2007-02-17T20:40:03.629-08:00</updated><title type='text'>Some good sample BPEL examples!</title><content type='html'>There are some good BPEL examples to work from at&lt;br /&gt;&lt;strong&gt;http://www.activebpel.org/samples/samples-3/samples.php&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Just a note beforehand, you should read the instructions for each example before trying to run them. I encountered some errors that were frustrating but after reading the instructions I was able to get them running.&lt;br /&gt;&lt;br /&gt;I think it is a guy thing that instructions are for wussies. ;-)&lt;br /&gt;&lt;br /&gt;The 2 examples that I ran so far&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;complex_exchange:&lt;br /&gt;&lt;/strong&gt;For the complex exchange, I had to set the following environment variables.&lt;br /&gt;&lt;br /&gt;I set up the following environment variables&lt;br /&gt;AESAMPLES_LIB=D:\Collin\University\COMP689\project\bpel\lib&lt;br /&gt;CLASSPATH=.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Make sure that it the complex_exchange.bpr file gets deployed correctly&lt;br /&gt;ant deploy-bpr&lt;br /&gt;2. Then you should be able to run the client correctly&lt;br /&gt;ant client&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;custom_functions:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This example has instructions where you have to&lt;br /&gt;- edit the aeEngineConfig.xml as noted in the instructions&lt;br /&gt;- copy the aecf-xmlstring.jar to the activeBpel engine's \shared\lib directory&lt;br /&gt;- restart tomcat&lt;br /&gt;&lt;br /&gt;1. Make sure that it the complex_exchange.bpr file gets deployed correctly&lt;br /&gt;ant deploy-bpr&lt;br /&gt;2. Then you should be able to run the client correctly&lt;br /&gt;ant client&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There is a deployment issue when you try to deploy both applications.&lt;br /&gt;The error can be seen by looking at the deployment log:&lt;br /&gt;&lt;br /&gt;http://localhost:8080/BpelAdmin/deployment_log_detail.jsp&lt;br /&gt;&lt;br /&gt;Due to a Duplicate service name: complexToBpelPartnerLinkService in both bprs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-9077479539573228013?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/9077479539573228013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=9077479539573228013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/9077479539573228013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/9077479539573228013'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/02/some-good-sample-bpel-examples.html' title='Some good sample BPEL examples!'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-6390974317947613065</id><published>2007-02-07T22:32:00.000-08:00</published><updated>2007-02-07T23:12:43.145-08:00</updated><title type='text'>Implementing a Complex Axis Web Service</title><content type='html'>Well, I really want to do something more elaborate with ActiveBPEL and that will require the ability to write complex web services. I ordered the electronic version of &lt;strong&gt;"Developing Web Services with Apache Axis"&lt;/strong&gt; by Ka lok 'Kent' Tong. I like it because it is real straightforward with working examples. There are also some chapters on Axis Security and Encryption which will definitely be worth reading when I get some time.&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://www.agileskills2.org/DWSAA/index.html"&gt;http://www.agileskills2.org/DWSAA/index.html&lt;/a&gt; for more information.&lt;br /&gt;The code is downloadable without cost.&lt;br /&gt;&lt;br /&gt;I had to rework some of the code but I am glad to say that I got the complex web service up and running in the ActiveBPEL environment.&lt;br /&gt;&lt;br /&gt;You can download my project for this. It is not in a super tidy state but should get you going.&lt;br /&gt;Download it from &lt;a href="http://www.smithspicks.com/techinitiatives/complexws.zip"&gt;Here&lt;/a&gt;&lt;br /&gt;There are 2 ant files that I use:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;buildTheStubs.xml&lt;/strong&gt; - This will build the stub java source files for the complex web service&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;buildAndDeployWS.xml&lt;/strong&gt; - This will deploy the compile and deploy the web service to ActiveBPEL&lt;br /&gt;&lt;br /&gt;I copied them into build.xml when I want to run them each.&lt;br /&gt;&lt;br /&gt;There is a client java class StubClient.java which will be able to talk to the deployed webservice.&lt;br /&gt;&lt;br /&gt;The web service implementation BizServiceSOAPImpl.java&lt;br /&gt;exposes a method&lt;br /&gt;public ProductQueryResultResultItem[] query(ProductQueryQueryItem[] queryRequest) throws java.rmi.RemoteException, InvalidQuery {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;which is quite obviously complex in that it does not have any simple types as parameters or return types.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The client works fine except when I try to look at the wsdl for the webservice&lt;br /&gt;&lt;a href="http://localhost:8080/active-bpel/services/BizServiceSOAP?WSDL"&gt;http://localhost:8080/active-bpel/services/BizServiceSOAP?WSDL&lt;/a&gt; on my machine&lt;br /&gt;&lt;br /&gt;I get the following error message that I will try and have a look into:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;AXIS error&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Sorry, something seems to have gone wrong... here are the details:Fault - makeTypeElement() was told to create a type "{http://foo.com}&gt;&gt;productQuery&gt;queryItem", with no containing element&lt;br /&gt;&lt;br /&gt;AxisFault&lt;br /&gt;faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException&lt;br /&gt;faultSubcode:&lt;br /&gt;faultString: makeTypeElement() was told to create a type "{http://foo.com}&gt;&gt;productQuery&gt;queryItem", with no containing element&lt;br /&gt;faultActor:&lt;br /&gt;faultNode:&lt;br /&gt;faultDetail:&lt;br /&gt;{http://xml.apache.org/axis/}hostname:kepi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-6390974317947613065?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/6390974317947613065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=6390974317947613065' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6390974317947613065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/6390974317947613065'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/02/implementing-complex-axis-web-service_07.html' title='Implementing a Complex Axis Web Service'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-8767530797495029883</id><published>2007-02-01T19:56:00.000-08:00</published><updated>2007-02-01T20:18:56.029-08:00</updated><title type='text'>Writing a simple Axis Web Service</title><content type='html'>If I am going to be doing any real BPEL development. I really have to be able to make my own web services. I basically stripped out the BPEL and JSP components of the loan approval example.&lt;br /&gt;&lt;br /&gt;I created a simple java class that will be exposed as a web service:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Web Service:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;package com.smith.ws;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class SimpleWebService {&lt;br /&gt;&lt;br /&gt;public String simpleCall(String someString)&lt;br /&gt;throws SimpleWebServiceProcessFault&lt;br /&gt;{&lt;br /&gt;String response = null;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;System.out.println("Calling "+this.getClass());&lt;br /&gt;//do some business logic&lt;br /&gt;Date now = new Date();&lt;br /&gt;response = "*"+someString+"*"+now;&lt;br /&gt;}&lt;br /&gt;catch (Exception e)&lt;br /&gt;{&lt;br /&gt;throw new SimpleWebServiceProcessFault("simpleCall", e.toString(),"99");&lt;br /&gt;}&lt;br /&gt;return response;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You then have to update the service.wsdd file to expose it as a web service:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Service.wsdd&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Something like:&lt;br /&gt;&lt;br /&gt;&lt; name="SimpleWebService" provider="java:RPC"&gt;&lt;br /&gt;&lt;br /&gt;&lt; name="className" value="com.smith.ws.SimpleWebService"&gt;&lt;br /&gt;&lt; name="allowedMethods" value="*"&gt;&lt;br /&gt;&lt;br /&gt;&lt;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The ant build creates a simplewebservices.wsr and copies it to the /bpr directory&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Calling the web service:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Service service = new Service();&lt;br /&gt;Call call = (Call)service.createCall();&lt;br /&gt;String urlString = "http://localhost:8080/active-bpel/services/SimpleWebService";&lt;br /&gt;call.setTargetEndpointAddress(new java.net.URL(urlString));&lt;br /&gt;call.setOperationName("simpleCall");&lt;br /&gt;call.addParameter("someString", org.apache.axis.Constants.XSD_STRING,ParameterMode.IN);&lt;br /&gt;call.setReturnType(org.apache.axis.Constants.XSD_STRING);&lt;br /&gt;&lt;br /&gt;String result = null;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;result = (String)call.invoke(new Object[] {"My Call"});&lt;br /&gt;}&lt;br /&gt;catch (AxisFault af) {&lt;br /&gt;if (SimpleWebServiceProcessFault.hasMagicFaultErrorCode(af))&lt;br /&gt;result = "99";&lt;br /&gt;else&lt;br /&gt;result = af.toString();&lt;br /&gt;}&lt;br /&gt;catch (Exception e) {&lt;br /&gt;result = "unexpected exception seen: " + e.toString();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;System.out.println("Client result = " + result);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Basically taking the input argument and returning it dressed up with some asterisks and the current time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sample run:&lt;br /&gt;&lt;/strong&gt;Client result = *My Call*Thu Feb 01 20:13:33 MST 2007&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can download the sample simple web service bundle here:&lt;br /&gt;&lt;a href="http://www.smithspicks.com/techinitiatives/1simplews.zip"&gt;1simplews.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-8767530797495029883?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/8767530797495029883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=8767530797495029883' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8767530797495029883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/8767530797495029883'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/02/writing-simple-axis-web-service.html' title='Writing a simple Axis Web Service'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-5152777219116000446</id><published>2007-01-29T11:40:00.001-08:00</published><updated>2007-01-31T08:19:26.868-08:00</updated><title type='text'>Dynamic Dropdown List using AJAX</title><content type='html'>I wanted to discover how to use AJAX to populate a dynamic dropdown list based on the input of some controls on the current page.&lt;br /&gt;&lt;br /&gt;There are 2 dropdown lists which determine the elements of the third dropdown list.&lt;br /&gt;&lt;br /&gt;Please see the live demonstration &lt;a href="http://www.smithspicks.com/techinitiatives/dropdownPage.php"&gt;Here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The sample code (jsp and php) can be downloaded at &lt;a href="http://www.smithspicks.com/techinitiatives/dynamicddl.zip"&gt;Sample Code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically on the onchange event of the first 2 dropdowns, there will be an ajax call to retrieve values for the third dropdown.&lt;br /&gt;&lt;br /&gt;There are 3 files:&lt;br /&gt;&lt;br /&gt;1. dropdownPage.jsp(php) - main page which makes backend calls to retrieve the 3rd dropdown values&lt;br /&gt;2. dataPage.jsp(php) - which provides the server data(nested xml) for the third dropdown&lt;br /&gt;3. dropdownResults.jsp(php) - which simply shows which values the user has selected&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The heart of the code is in the javascript processing on the dropdownPage.jsp:&lt;br /&gt;&lt;br /&gt;AJAX Scripting (JSP Version):&lt;br /&gt;&lt;br /&gt;function importXML()&lt;br /&gt;{&lt;br /&gt; if (document.implementation &amp;&amp; document.implementation.createDocument)&lt;br /&gt; {&lt;br /&gt;  xmlDoc = document.implementation.createDocument("", "", null);&lt;br /&gt;  xmlDoc.onload = populateDropDown;&lt;br /&gt; }&lt;br /&gt; else if (window.ActiveXObject)&lt;br /&gt; {&lt;br /&gt;  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");&lt;br /&gt;  xmlDoc.onreadystatechange = function () &lt;br /&gt;  {  if (xmlDoc.readyState == 4) &lt;br /&gt;   populateDropDown()&lt;br /&gt;  };&lt;br /&gt;  }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;  alert('Your browser can\'t handle this script');&lt;br /&gt;  return;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; //determine url to get xml &lt;br /&gt; var dd1Param = document.f1.dd1.value;&lt;br /&gt; var dd2Param = document.f1.dd2.value;&lt;br /&gt; var url = 'dataPage.jsp?dd1='+dd1Param+'&amp;dd2='+dd2Param;&lt;br /&gt; //load the xml&lt;br /&gt; xmlDoc.load(url);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function populateDropDown()&lt;br /&gt;{&lt;br /&gt; &lt;br /&gt; var browser = 'ie';&lt;br /&gt; var nameIndex = 0;&lt;br /&gt; var valueIndex = 1;&lt;br /&gt; if (document.implementation &amp;&amp; document.implementation.createDocument)&lt;br /&gt; {&lt;br /&gt;  browser = 'firefox';&lt;br /&gt;   var nameIndex = 1;&lt;br /&gt;   var valueIndex = 3;&lt;br /&gt; }&lt;br /&gt;  &lt;br /&gt;  var dd3 = document.f1.dd3;&lt;br /&gt;&lt;br /&gt;  //empty control&lt;br /&gt;  for (var q=dd3.options.length;q&gt;=0;q--)&lt;br /&gt;  {&lt;br /&gt;      dd3.options[q]=null;&lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt; var x = xmlDoc.getElementsByTagName('item');&lt;br /&gt; for (j=0;j &lt; x[0].childNodes.length;j++)&lt;br /&gt; {&lt;br /&gt;  if (x[0].childNodes[j].nodeType != 1) continue;&lt;br /&gt;  var theData = document.createTextNode(x[0].childNodes[j].nodeName);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; for (i=0;i &lt; x.length;i++)&lt;br /&gt; {&lt;br /&gt;   var name = '';&lt;br /&gt;   var value = '';&lt;br /&gt;  for (j=0;j &lt; x[i].childNodes.length;j++)&lt;br /&gt;  {&lt;br /&gt;   if (x[i].childNodes[j].nodeType != 1) continue;&lt;br /&gt;   var theData = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);&lt;br /&gt;   if (j==nameIndex) name = theData.nodeValue;&lt;br /&gt;   if (j==valueIndex) value = theData.nodeValue;  &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;    dd3.options[i] = new Option(name, value);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function submitform()&lt;br /&gt;{&lt;br /&gt;  var dd1 = document.f1.dd1;&lt;br /&gt;  var dd2 = document.f1.dd2;&lt;br /&gt;  var dd3 = document.f1.dd3;&lt;br /&gt;  var dd1Value = dd1.options[dd1.selectedIndex].value;&lt;br /&gt;  var dd2Value = dd2.options[dd2.selectedIndex].value;&lt;br /&gt;  var dd3Value = dd3.options[dd3.selectedIndex].value;&lt;br /&gt;&lt;br /&gt;  var page = "dropdownResults.jsp?dd1="+dd1Value+"&amp;dd2="+dd2Value+"&amp;dd3="+dd3Value;&lt;br /&gt;  window.location = page;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;One thing I do like about this example is that the data read provides a nested xml structure as follows:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_9sKUqr1J8tA/Rb-YdrpY1rI/AAAAAAAAAAY/RyxHXKORRBk/s1600-h/dataPage.bmp"&gt;&lt;img  src="http://4.bp.blogspot.com/_9sKUqr1J8tA/Rb-YdrpY1rI/AAAAAAAAAAY/RyxHXKORRBk/s320/dataPage.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5025903344868710066" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-5152777219116000446?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/5152777219116000446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=5152777219116000446' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5152777219116000446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/5152777219116000446'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/01/dynamic-dropdown-list-using-ajax_29.html' title='Dynamic Dropdown List using AJAX'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9sKUqr1J8tA/Rb-YdrpY1rI/AAAAAAAAAAY/RyxHXKORRBk/s72-c/dataPage.bmp' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-2473901349303391864</id><published>2007-01-22T19:27:00.000-08:00</published><updated>2007-01-22T19:46:41.922-08:00</updated><title type='text'>Understanding ActiveBPEL Tutorial Test Client</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_9sKUqr1J8tA/RbWBFLpY1qI/AAAAAAAAAAM/ziusAJPlMgM/s1600-h/TestClient.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5023062885427369634" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_9sKUqr1J8tA/RbWBFLpY1qI/AAAAAAAAAAM/ziusAJPlMgM/s320/TestClient.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Going through the BPEL construction process worked well but I also wanted to discover how the rest of the tutorial worked. So I dug in and hopefully this breakdown will help you. It helped me! :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The loan approval components A-F:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A. index.jsp:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Form with values such:&lt;br /&gt;FirstName: John&lt;br /&gt;LastName: Smith&lt;br /&gt;Amount: 500&lt;br /&gt;Operation:request&lt;br /&gt;URL: http://localhost:8080/active-bpel/services/LoanService&lt;br /&gt;Assessor Response: high,low,FAULT&lt;br /&gt;Approver Response: yes,no, FAULT&lt;br /&gt;&lt;br /&gt;Upon Submission:&lt;br /&gt;&lt;br /&gt;- A form that submits to itself in which the jsp will make a call to the BPEL process&lt;br /&gt;&lt;br /&gt;Step 1: update the values of "loan_approval_config.xml"&lt;br /&gt;(~\Active Endpoints\ActiveBPEL Designer\Server\ActiveBPEL_Tomcat\temp\loan_approval_config.xml)&lt;br /&gt;is updated with the values from the form via the RuntimeParams.java class using xpath notation.&lt;br /&gt;&lt;br /&gt;Step 2:&lt;br /&gt;Get the BPEL result via the following call:&lt;br /&gt;&lt;br /&gt;This call grabs the newly updated values form the above loan_approval_config.xml&lt;br /&gt;and essentially makes a call to the web service via code like:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BPELTestClient.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Service service = new Service();&lt;br /&gt;Call call = (Call)service.createCall();&lt;br /&gt;String urlString = rp.getAttr("/rundata/client", "url");&lt;br /&gt;call.setTargetEndpointAddress(new java.net.URL(urlString));&lt;br /&gt;call.setOperationName(rp.getAttr("/rundata/client", "operation"));&lt;br /&gt;call.addParameter("firstName", org.apache.axis.Constants.XSD_STRING,&lt;br /&gt;ParameterMode.IN);&lt;br /&gt;call.addParameter("name", org.apache.axis.Constants.XSD_STRING,&lt;br /&gt;ParameterMode.IN);&lt;br /&gt;call.addParameter("amount", org.apache.axis.Constants.XSD_INTEGER,&lt;br /&gt;ParameterMode.IN);&lt;br /&gt;call.setReturnType(org.apache.axis.Constants.XSD_STRING);&lt;br /&gt;&lt;br /&gt;firstName = rp.getText("/rundata/client/firstName");&lt;br /&gt;lastName = rp.getText("/rundata/client/name");&lt;br /&gt;amount = new BigInteger(rp.getText("/rundata/client/amount"));&lt;br /&gt;result = (String)call.invoke(new Object[] {firstName, lastName, amount});&lt;br /&gt;&lt;br /&gt;Note however that the index.jsp updates the values for the Assessor and Approver web services in the loan_approval_config.xml.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;B. RuntimeParams.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Class designed to update the "loan_approval_config.xml" file.&lt;br /&gt;It contains a org.w3c.dom.Document and a java.io.File instance variable so that the xml document can be updated via xpath notation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;C. Constants.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;public interface Constants {&lt;br /&gt;public static final String MAGIC_FAULT_STRING = "FAULT";&lt;br /&gt;public static final String MAGIC_FAULT_ERROR_CODE_STRING = "42";&lt;br /&gt;public static final String UNEXPECTED_ERROR_CODE_STRING = "9999";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;D. loanProcessFault.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Special extension of org.apache.axis.AxisFault which is thrown by the 2 Web Services&lt;br /&gt;ApproverWebService.java and the AssessorWebService.java&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;E. The Web Services&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Looking at the 2 web services used in the BPEL:&lt;br /&gt;&lt;br /&gt;1. ApproverWebService.java&lt;br /&gt;Simply retrieve a value from the loan_approval_config.xml file&lt;br /&gt;RuntimeParams rp = new RuntimeParams();&lt;br /&gt;response = rp.getText("/rundata/approver/accept");&lt;br /&gt;&lt;br /&gt;2. AssessorWebService.java&lt;br /&gt;response = rp.getText("/rundata/assessor/risk-level");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br /&gt;So basics of this BPEL client is index.jsp which&lt;br /&gt;&lt;br /&gt;1. updates a loan_approval_config.xml with form values&lt;br /&gt;2. makes a call the to the BPEL by reading the values from loan_approval_config.xml&lt;br /&gt;3. the two partnerLink webservices(Approver and Assessor) read their values from this xml file&lt;br /&gt;4. the jsp is returned the results from the BPEL call&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-2473901349303391864?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/2473901349303391864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=2473901349303391864' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2473901349303391864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/2473901349303391864'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/01/understanding-activebpel-tutorial-test.html' title='Understanding ActiveBPEL Tutorial Test Client'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9sKUqr1J8tA/RbWBFLpY1qI/AAAAAAAAAAM/ziusAJPlMgM/s72-c/TestClient.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-3582251783030773648</id><published>2007-01-21T21:16:00.001-08:00</published><updated>2007-01-21T21:22:15.564-08:00</updated><title type='text'>ActiveBPEL Designer</title><content type='html'>I received a license key for the ActiveBPEL Designer(3.0.1) tool and installed the Designer.  To get the key you have to submit some personal information and they send you a link to the license key, some case studies, and links to the support groups. The installation went smoothly and no complaints.&lt;br /&gt;&lt;br /&gt;You can get it &lt;a href="http://www.active-endpoints.com/active-bpel-designer.htm"&gt;Here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  There is a "loan approval" tutorial where you build the BPEL workflow from the ground up using the ActiveBPEL Designer interface.  I have done some tutorials where code does not work but this one was without a hitch.&lt;br /&gt;&lt;br /&gt;  The ActiveBPEL Designer is built on top of Eclipse and also comes with a Tomcat server within.  So you will have to change your CATALINA_HOME environment variable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/collin.smith/Techinitiatives/photo#5022706020889712258"&gt;&lt;img src="http://lh4.google.com/image/collin.smith/RbQ8g7pY1oI/AAAAAAAAABE/XNlYFBaDjNM/s288/ActiveBPEL%20Designer.JPG"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:66%; text-align:right"&gt;From &lt;a href="http://picasaweb.google.com/collin.smith/Techinitiatives"&gt;techinitiatives&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Active BPEL Tutorial(Loan Approval)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Part 1: Starting a New Process&lt;br /&gt;Part 2: Planning and Designing a Process&lt;br /&gt;Part 3: Adding Web References&lt;br /&gt;Part 4: Using the Operation Activities and Properties&lt;br /&gt;Part 5: Adding Process Activities and Properties&lt;br /&gt;Part 6: Adding Fault Handling&lt;br /&gt;Part 7: Adding Compensation and Correlation(This is actually an empty step)&lt;br /&gt;Part 8: Simulating the Process&lt;br /&gt;Part 9: Deploying the Process&lt;br /&gt;Part 10 Running the Process on the Server&lt;br /&gt;Part 11: Debugging Your Process on the Server&lt;br /&gt;&lt;br /&gt;I am pretty new to "Web Services" and SOA.  This tutorial did not have any incorrect information or missing steps.  This is something that I appreciated greatly.&lt;br /&gt;&lt;br /&gt;I made a BPEL process from the ground up(minus the partner web services and client jsp however).  But this is a good step into BPEL.  I liked the GUI alot and was impressed with the simulating and debugging features.  Just getting started but I like what I see so far!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-3582251783030773648?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/3582251783030773648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=3582251783030773648' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3582251783030773648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3582251783030773648'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/01/activebpel-designer_21.html' title='ActiveBPEL Designer'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-4824705062026239523</id><published>2007-01-21T20:48:00.000-08:00</published><updated>2007-01-21T21:15:07.991-08:00</updated><title type='text'>"Web Services Platform Architecture"</title><content type='html'>I just finished "Web Services Platform Architecture" by Weerawarana, Cubera, et al.  More background into my web service exploration.  The first book I read was Service Oriented Architecture(Erl).  There is alot to know in SOA and the only way to do it is dive in and get reading.  I feel that I am getting more comfortable about WS-*(the new specifications).&lt;br /&gt;&lt;br /&gt;This book concentrated on the major WS specifications.&lt;br /&gt;&lt;br /&gt;Some of the chapters were on WSDL, WS-Policy, UDDI, WS-Metadata Exchange, WS-Reliable Messaging, WS-Transactions, WS-Security, BPEL.&lt;br /&gt;&lt;br /&gt;Why the Web Services effort will succeed?&lt;br /&gt;&lt;br /&gt;-unprecedented level of vendor support&lt;br /&gt;-consistent focus on solving core technical problems&lt;br /&gt;-composeability of the specification set&lt;br /&gt;-pragmatic specification development process(p. 388)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"The Web services platform(as SOA) is designed to suppport real-world automated business interactions in which functional and non-functional requirements are much more demanding than in simple Web access to enterprise applications." p. 381&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-4824705062026239523?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/4824705062026239523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=4824705062026239523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4824705062026239523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4824705062026239523'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/01/web-services-platform-architecture.html' title='&quot;Web Services Platform Architecture&quot;'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-4958890897451062752</id><published>2007-01-16T22:00:00.000-08:00</published><updated>2007-01-17T21:52:39.416-08:00</updated><title type='text'>A closer look at loan approval BPEL build.xml</title><content type='html'>We can look at the build.xml file that comes with the loan_approval example to provide insight on how to deploy a BPEL process.&lt;br /&gt;&lt;br /&gt;The simple dos command “ant deploy” will deploy the business process archive, webservices, and jsps .&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;3 Main Sub Tasks of "deploy":&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;"deploy-bpel"&lt;/strong&gt; (Create and deploy BPEL(bpel_example.bpr))&lt;br /&gt;&lt;br /&gt;&lt;target name="deploy-bpel" description="deploy example BPEL process" depends="create-bpr"&gt;&lt;copy todir="${webservice.dest}/bpr" file="${dist}/${bpel.archive}"&gt;&lt;/target&gt;-Above copies /dist/bpel_example.bpr to ${env.CATALINA_HOME}/bpr/&lt;br /&gt;&lt;br /&gt;2.&lt;strong&gt;"deploy-ws"&lt;target name="deploy-ws" description="deploy Web services archive" depends="create-ws"&gt;&lt;/strong&gt; (Create and deploy Web services)&lt;br /&gt;&lt;br /&gt;-Above copies /dist/bpel_example_web_services.wsr to ${env.CATALINA_HOME}/bpr&lt;br /&gt;&lt;br /&gt;3. &lt;strong&gt;"deploy-jsp"&lt;/strong&gt; (Create and deploy JSP)&lt;br /&gt;&lt;target name="deploy-jsp" description="deploy client JSP page" depends="create-jsp"&gt;&lt;copy todir="${webservice.dest}/webapps" file="${dist}/${jsp.archive}"&gt;&lt;/target&gt;-Above copies /dist/bpel_example_client_page.war to ${env.CATALINA_HOME}/webapps&lt;br /&gt;&lt;br /&gt;So this is basically copying the Business Process Archive File, web services and jsp pages to the tomcat directories to make the BPEL Process happen.&lt;br /&gt;&lt;br /&gt;Further details into the prerequisites to the above 3 main tasks&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;Looking into 1. "Create and deploy BPEL"&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Jar the contents of /bpel_process/ directory into /dist/bpel_example.bpr&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Looking into 2. "Create and deploy Web services"&lt;/strong&gt;&lt;br /&gt;Init-dist – create the dist directory if not already there&lt;br /&gt;Compile – compile all code in the src directory into the classes directory&lt;br /&gt;Deploy-config – copy bpel_example_config.xml to ${env.CATALINA_HOME}/temp directory&lt;br /&gt;Jar up the ws classes into dist\bpel_example_web_services.wsr :&lt;br /&gt;-/META-INF/service.wsdd (Web Services Deployment Descriptor (WSDD) file)&lt;br /&gt;-Include all the classes in the classes directory but excluding the client classes&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Looking into 3. Create and deploy JSP&lt;/strong&gt;&lt;br /&gt;Init-dist - Ensure dist directory is there&lt;br /&gt;Compile- build all src code and put classes in classes directory&lt;br /&gt;Deploy-config – copy bpel_example_config.xml to ${env.CATALINA_HOME}/temp&lt;br /&gt;Jar up:&lt;br /&gt;- 4 classes (BPELTestclient.class, RuntimeParams.class,Constants.class, &amp;amp; loanProcessFault.class) into /WEB-INF/classes directory&lt;br /&gt;- contents of the jsp directory&lt;br /&gt;into a /dist/ bpel_example_client_page.war&lt;br /&gt;&lt;target name="create-jsp" description="create client JSP page archive" depends="init-dist, compile, deploy-config"&gt;&lt;br /&gt;&lt;br /&gt;This is essentially what the build.xml does. I needed to go through this myself to provide a clearer understanding of what is exactly going on.&lt;br /&gt;&lt;br /&gt;Next steps I would like to do is look into making some changes and seeing them reflected to get a better feel of ActiveBPEL implementations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/target&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-4958890897451062752?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/4958890897451062752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=4958890897451062752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4958890897451062752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4958890897451062752'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/01/closer-look-at-loan-approval-bpel.html' title='A closer look at loan approval BPEL build.xml'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-4271733931914213124</id><published>2007-01-14T20:59:00.000-08:00</published><updated>2007-01-14T21:21:21.599-08:00</updated><title type='text'>Getting Started with Open Source BPEL</title><content type='html'>I am interested in the area of Service Oriented Architecture. I read Thomas Erl’s “Service Orient Architecture” and am working my way through “Web Services Platform Architecture”(Weerawarana,...).&lt;br /&gt;&lt;br /&gt;I find it a rather daunting area and I am hoping to get to a point soon where I read something and come away with more answers than questions. I wanted an open source tool to experiment with BPEL (Business Process Execution Language).&lt;br /&gt;&lt;br /&gt;The open source tool available is called ActiveBPEL which can be downloaded from &lt;a href="http://www.active-endpoints.com"&gt;http://www.active-endpoints.com&lt;/a&gt;. All I have done so far is set up the software and run the demonstration BPEL Orchestration.&lt;br /&gt;&lt;br /&gt;Software I used to get things running:&lt;br /&gt;Java 1.5&lt;br /&gt;Ant 1.6.5&lt;br /&gt;Tomcat 5.5.20&lt;br /&gt;ActiveBPEL 3.0.0&lt;br /&gt;&lt;br /&gt;The ActiveBPEL version I downloaded did not have the loan approval orchestration tutorial that I believe other versions came with. The loan_approval.zip can be downloaded from &lt;a href="http://www.cis.umassd.edu/~hxu/Projects/UMD/BPEL4WS/"&gt;http://www.cis.umassd.edu/~hxu/Projects/UMD/BPEL4WS/&lt;/a&gt; and I did deploy it and run the client code that interacted with it.&lt;br /&gt;&lt;br /&gt;This is as far as I have went with it. My goal in the immediate future is to create my own BPEL orchestrations with my own web services to move more seriously into SOA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-4271733931914213124?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/4271733931914213124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=4271733931914213124' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4271733931914213124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/4271733931914213124'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/01/getting-started-with-open-source-bpel.html' title='Getting Started with Open Source BPEL'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-3168940621954086415</id><published>2007-01-10T10:52:00.000-08:00</published><updated>2007-01-10T11:20:47.791-08:00</updated><title type='text'>Signed Applet to launch local applications</title><content type='html'>This applet demonstration shows how a signed applet can operate outside of the sandbox.&lt;br /&gt;&lt;br /&gt;Applets are protected in a sandbox but are able to access resources outside the sandbox if the user establishes trust via signing the applet with a valid certificate. &lt;br /&gt;&lt;br /&gt;Most companies have their own certificates but for the demonstration purposes of this program we will create our own certificate.&lt;br /&gt;&lt;br /&gt;The applet for this demonstration will allow the user to launch applications such as calculator and notepad through the applet. Applications which can be launched normally through the dos command window.&lt;br /&gt;&lt;br /&gt;I know this works in IE, and the applet which launches the applications can be viewed &lt;a href="http://www.smithspicks.com/launcher/signedLaunch.html"&gt;App launcher demo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;All source code can be downloaded &lt;a href="http://www.smithspicks.com/launcher/launcher.zip"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are some steps involved to achieve this:&lt;br /&gt;1. Write the applet&lt;br /&gt;2. Jar the applet&lt;br /&gt;3. Make a certificate if you do not already have one and sign the jar file&lt;br /&gt;4. Publish applet&lt;br /&gt;&lt;br /&gt;Steps:&lt;br /&gt;1. Compile AppLauncherApplet.java made for jdk 1.5 but can probably be easily modified&lt;br /&gt;&lt;br /&gt;2. jar up application jar cvf AppLauncherApplet.jar *.class&lt;br /&gt;&lt;br /&gt;3. Sign jar file (See below to create RSA keypair if not done already)jarsigner -verbose -keystore launcherkeystore -signedjar SignedAppLauncherAppletLauncher.jar AppLauncherApplet.jar launcheraliasEnter Passphrase for keystore: launcher updating: META-INF/MANIFEST.MF adding: META-INF/LAUNCHER.SF adding: META-INF/LAUNCHER.RSA signing: AppLauncherApplet.class&lt;br /&gt;3b. Verify that it is signed jarsigner -verify -verbose -certs SignedAppLauncherApplet.jar&lt;br /&gt;&lt;br /&gt;Create RSA keypair and self-signed certificate(Requirement to sign applet)&lt;br /&gt;keytool -genkey -alias launcheralias -keyalg RSA -validity 365 -keystore launcherkeystore&lt;br /&gt;Enter keystore password: launcherWhat is your first and last name? [Unknown]: Collin Smith&lt;br /&gt;What is the name of your organizational unit? [Unknown]:CollinBlogDeptWhat is the name of your organization? [Unknown]: CollinBlog&lt;br /&gt;What is the name of your City or Locality? [Unknown]: Calgary&lt;br /&gt;What is the name of your State or Province? [Unknown]: AB&lt;br /&gt;What is the two-letter country code for this unit? [Unknown]: CA&lt;br /&gt;Is CN=Collin Smith, OU=CollinBlogDept, O=CollinBlog, L=Calgary, ST=AB, C=CA correct? [no]: y&lt;br /&gt;Enter key password for &lt;myalias&gt;(RETURN if same as keystore password):&lt;br /&gt;&lt;br /&gt;(View fingerprints of certificates in keystore) &lt;br /&gt;keytool -list -keystore launcherkeystore&lt;br /&gt;&lt;br /&gt;(View personal information about the issuer and owner of the certificate) &lt;br /&gt;keytool -list -v -keystore launcherkeystore&lt;br /&gt;&lt;br /&gt;(Remove entries from the keystore) keytool -keystore launcherkeystore -delete -alias launcheralias&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-3168940621954086415?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/3168940621954086415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=3168940621954086415' title='43 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3168940621954086415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/3168940621954086415'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/01/signed-applet-to-launch-local.html' title='Signed Applet to launch local applications'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>43</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7764201400658179581.post-7848206171747045458</id><published>2007-01-03T07:37:00.000-08:00</published><updated>2007-01-03T07:40:23.688-08:00</updated><title type='text'>Simple AJAX tutorial</title><content type='html'>I am determined to find out things that might be of use to other developers. It is about cutting through the fluff of abstract concepts and being able to show it with simple working code or examples.&lt;br /&gt;&lt;br /&gt;It is hard to keep up to date with all the new technologies that are being used and we as technology professionals are expected to work with.&lt;br /&gt;&lt;br /&gt;I laid down the challenge to myself to help others (myself as well in that the best way to learn about something is to get to a point where you can teach others).&lt;br /&gt;&lt;br /&gt;My first blog is a simple AJAX tutorial with simple sample code that can be dropped into any servlet container that can compile jsps.&lt;br /&gt;&lt;br /&gt;Here goes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.smithspicks.com/ajax/ajax.ppt"&gt;AJAX Power Point Presentation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.smithspicks.com/ajax/ajaxsamples.zip"&gt;Sample AJAX Code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7764201400658179581-7848206171747045458?l=techinitiatives.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techinitiatives.blogspot.com/feeds/7848206171747045458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7764201400658179581&amp;postID=7848206171747045458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7848206171747045458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7764201400658179581/posts/default/7848206171747045458'/><link rel='alternate' type='text/html' href='http://techinitiatives.blogspot.com/2007/01/simple-ajax-tutorial.html' title='Simple AJAX tutorial'/><author><name>Collin Smith</name><uri>http://www.blogger.com/profile/06531569154370269314</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp0.blogger.com/_9sKUqr1J8tA/SGpjgKV8o0I/AAAAAAAAB7A/jf3231bmo7k/S220/google.jpg'/></author><thr:total>0</thr:total></entry></feed>
