<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Architecture</title>
        <link>http://geekswithblogs.net/jglynn/category/459.aspx</link>
        <description>General software development.</description>
        <language>en-US</language>
        <copyright>Jay Glynn</copyright>
        <managingEditor>jlsglynn@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>The message from TechEd</title>
            <link>http://geekswithblogs.net/jglynn/archive/2005/06/14/43469.aspx</link>
            <description>&lt;P&gt;Without question the message from TechEd this year was services. How to migrate services, how to make services, how to use data in services etc etc etc. However, a comment was made in the BOF session I hosted that has me thinking. The question came up that since his organization is trying to move to service based architecture, he has found that the design of the application is changing. Instead of having a nice pluimp object model, he said he now is just pumping messages around. His problem was that he wasn't sure if that is what he should be doing. My first reaction was if that's what the situation calls for, then your doing the right thing. However as I thought this over for a while I'm starting to question that. I see where services are a &amp;#8220;Good Thing&amp;#8221;. But part of the reason for services is flexibility. In our organization flexibility means that the object or component might be implemented in a server based application or on a disconnected mobile device. In that case disregarding that nice plump object model may be a mistake. If I'm on that disconnected mobile devoce, services are worthless. I'll be saving data to a local database and forwarding changes later in batch mode.&amp;nbsp;I'll need&amp;nbsp;that object model. If that component is implemented on a server, a service facade could be placed over it.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The point to all of this is that we are hearing a lot about why to do services and how to do services, but we aren't hearing alot about the design of the business entity that the service will be servicing. Are we supposed to change the design of the entity like the person at the BOF session was describing, or is it better to do business entities just as we have been doing and wrap them up in a service layer? I'm feeling that the later may be the better option.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=43469"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=43469" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/43469.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2005/06/14/43469.aspx</guid>
            <pubDate>Tue, 14 Jun 2005 09:09:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2005/06/14/43469.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/43469.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/43469.aspx</trackback:ping>
        </item>
        <item>
            <title>Pragmatic Architecture BOF</title>
            <link>http://geekswithblogs.net/jglynn/archive/2005/06/09/42673.aspx</link>
            <description>I hosted the Pragmatic Architecture BOF session last night and it turned out to be a really great session. There was some great discussion about when and if SOA is the correct answer, how to deal with upper management on determining the right way to implement and architecture and how does an architect stay current on the technologies. It was satisfying for me to know that others are struggling wioth the same questions that we are regarding the "right thing" to do.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=42673"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=42673" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/42673.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2005/06/09/42673.aspx</guid>
            <pubDate>Thu, 09 Jun 2005 18:44:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2005/06/09/42673.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/42673.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/42673.aspx</trackback:ping>
        </item>
        <item>
            <title>SOA and OASIS</title>
            <link>http://geekswithblogs.net/jglynn/archive/2005/06/02/41406.aspx</link>
            <description>&lt;P&gt;I read in &lt;A href="http://68.236.189.240/article/story-20050601-01.html"&gt;SD Times today that OASIS is going to define SOA for us&lt;/A&gt;. From the article:&lt;/P&gt;
&lt;P&gt;&lt;!--StartFragment --&gt;&lt;EM&gt;Just what is and what is not part of a service-oriented architecture is the subject of the latest work the Organization for the Advancement of Structured Information Standards (OASIS) is pursuing &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Another quote:&lt;/P&gt;
&lt;P&gt;&lt;!--StartFragment --&gt;&amp;nbsp;&lt;EM&gt;Writing a specialization of SOA for electronic business was going to get difficult because a generalized definition of SOA didn&amp;#8217;t exist&lt;/EM&gt; &lt;/P&gt;
&lt;P&gt;They are comparing this process to describing the parts of a car. Where the parts are and how they relate to each other in the overall function of the car. They said the reference model should be completed by the end of the calendar year. I feel so much better now. We'll finally have someone that tell us exactly what SOA is (and how the driveshaft is connected to the axel).&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=41406"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=41406" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/41406.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2005/06/02/41406.aspx</guid>
            <pubDate>Thu, 02 Jun 2005 08:21:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2005/06/02/41406.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/41406.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/41406.aspx</trackback:ping>
        </item>
        <item>
            <title>BOF Session Accepted</title>
            <link>http://geekswithblogs.net/jglynn/archive/2005/04/27/38543.aspx</link>
            <description>My TechEd BOF session Pragmatic Architecture has been accepted. It's currently scheduled for Wed, June 8th at 7:45. I am really looking forward to this. Application, system and enterprise architecture are taken for granted way to often. It's not about SOA, agile, TDD etc etc etc, it's all about doing the &amp;#8220;Right Thing&amp;#8221;. Hope to see many of you there to take part in the discussion.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38543"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38543" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/38543.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2005/04/27/38543.aspx</guid>
            <pubDate>Wed, 27 Apr 2005 20:06:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2005/04/27/38543.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/38543.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/38543.aspx</trackback:ping>
        </item>
        <item>
            <title>Pragmatic Architecture</title>
            <link>http://geekswithblogs.net/jglynn/archive/2005/03/04/25051.aspx</link>
            <description>&lt;DIV&gt;Over the past couple of years I have been noticing a trend that concerns me somewhat. Developers and architects have been designing application architectures based on buzz-words instead of based on the requirements of the user or the system. SOA is a prime example of this. I look around our enterprise and I see hundreds of systems. Some would say that I need to hook some of these systems together (many do talk to each other) using a service based architecture. Now if I look really REALLY close at these systems it becomes apparent that putting a service on some of these systems makes absolutely no sense at all. The technology just isn't built with a service in mind. Some of these systems may be 10 years old, but they work well and there are no plans to update or replace them. I still need to communicate with this system, but perhaps a client server type architecture would serve my purpose better. Why shouldn't I use it? Should I try and force an architecture in just because it's the trendy way to do things? &lt;/DIV&gt;
&lt;DIV&gt;Does it seem that architectures are being based on what shows up in the latest magazine instead of what the system requires? I reached the point that I submitted a BoF session for TechEd to talk about this subject. If you feel the same, or would like to tell me that I'm crazy vote for the session and let's discuss it. &lt;A href="http://www.msteched.com/cfp/bofvoting.aspx"&gt;Here is the link to vote.&lt;/A&gt;&lt;/DIV&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=25051"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=25051" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/25051.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2005/03/04/25051.aspx</guid>
            <pubDate>Sat, 05 Mar 2005 02:04:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2005/03/04/25051.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/25051.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/25051.aspx</trackback:ping>
        </item>
        <item>
            <title>Moving to v2.0</title>
            <link>http://geekswithblogs.net/jglynn/archive/2005/02/24/24317.aspx</link>
            <description>&lt;P&gt;I have seen a couple of posts recently about moving code bases to v2.0 of the .NET framework when it becomes available. One that caught my eye was by &lt;A href="http://codebetter.com/blogs/sahil.malik/archive/2005/02/23/55900.aspx"&gt;Sahil&lt;/A&gt;.&amp;nbsp;Two things struck me about the post. First the title, &amp;#8220;.NET 1.1 Folks Please Take Note&amp;#8221;. Aren't we all 1.1 folks at the moment. Last I looked there wasn't a go live license available yet. But more to the point is the comment about making sure your current code will work with 2.0. In the exchange of comments he made the statement to the effect that if I know the function X won't be there anymore, then I shouldn't use function X now. &lt;/P&gt;
&lt;P&gt;Well here is my problem with this. I work in a large corporate environment. Any new technologies have to go through a long and rigorous testing process before they will be approved. So given that v2.0 won't be released until Spring/Summer of 2005 it will be at least 2006 before I could recommend it for a production application. Even then the apps that we have currently working in production won't be automatically be upgraded to run with 2.0. I can't justify the expense of re-testing and distribution for no real gain for the end user. So whether &amp;nbsp;function X is available in a future version or not is irrelevent to what I doing today. I have to design for what is available today, not what might be available tomorrow. We don't even know for sure what functions will and won't be there. I have&amp;nbsp;worked on&amp;nbsp;3 books based on beta .NET software and have had to make changes in all of them when they were released. Even from beta 2 to production things will change. &lt;/P&gt;
&lt;P&gt;Just because we get a shiney new toy from Microsoft we must be prudent about moving everything we work on to the new version. Sometimes it just really doesn't make financial sense to make the move. As developers we all want to work with the newest and best technology that we can. But we also have a major responsibility to our customer to make the best fiscal decisions. I still support a lot of VB6.0 code, and will continue to for at least the next 2 years. We need to be aware of the newer technologies. I certainly am. I'm working on a book based on v2.0. But&amp;nbsp;the rpoduction code&amp;nbsp;I work on today is firmly based on what 1.1 has to offer, nothing more, nothing less.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=24317"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=24317" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/24317.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2005/02/24/24317.aspx</guid>
            <pubDate>Fri, 25 Feb 2005 00:46:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2005/02/24/24317.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/24317.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/24317.aspx</trackback:ping>
        </item>
        <item>
            <title>Rocky does it again</title>
            <link>http://geekswithblogs.net/jglynn/archive/2004/12/23/18416.aspx</link>
            <description>Haven't been posting much lately due to deadlines by publishers, project managers and being the coach of my son's hockey team, but &lt;A href="http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=67765899-9586-40f7-8fe7-aa147fd55968"&gt;Rocky Lhotka has once again hit the nail on the head&lt;/A&gt;. Maybe because I'm one of the object-oriented guys he talks about. I absolutely hate datasets floating around in an application. Bottom line is that the traction that SOA has at the moment will pass when everyone realizes that most business software developed today doesn't really gain anything from it.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=18416"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=18416" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/18416.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2004/12/23/18416.aspx</guid>
            <pubDate>Thu, 23 Dec 2004 20:32:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2004/12/23/18416.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/18416.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/18416.aspx</trackback:ping>
        </item>
        <item>
            <title>Migrating Architectures</title>
            <link>http://geekswithblogs.net/jglynn/archive/2004/07/07/7730.aspx</link>
            <description>&lt;P&gt;&lt;A href="http://weblogs.asp.net/jsgreenwood/archive/2004/07/06/174459.aspx"&gt;James Greenwood has a post &lt;/A&gt;that raises an interesting question. His premise is that having a good architecture can actually be bad since it makes it&amp;nbsp;difficult to justify migrating to new architecture. Now there is a bit more to his post then that, but this is an interesting point. When I do the architect role, the goal is to develop something that will pass the test of time. So, do I architect in the capabilities to migrate to the next sexy architecture of the day? Of course not. How can I if I don't know what that architecture will look like. If I look at a system that I might have worked on&amp;nbsp;say 5 years ago, did I lay the groundwork to migrate to SOA? No because SOA wasn't the thing to do at that time. Few if any had even heard of the term SOA so how could I possibly design a migration path. James makes the point that a good architecture should support change. Nobody can nor should argue that point, but what change should it be able to support? Should it be the ability to migrate to a newer and possibly better architecture or to be flexible enough to solve an evolving business need? If the business need is met, is a newer architecture even required. I look at one of my responsibilities to be making the best use of the business area's money. They want certian problems resolved by the systems that I build. The business doesn't care how that happens. And they certainly don't want to spend more money and not have anything new to show for it just so that I can say we do SOA or whatever architecture is popular at the time.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=7730"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=7730" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/7730.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2004/07/07/7730.aspx</guid>
            <pubDate>Wed, 07 Jul 2004 05:40:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2004/07/07/7730.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/7730.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/7730.aspx</trackback:ping>
        </item>
        <item>
            <title>SOA thoughts</title>
            <link>http://geekswithblogs.net/jglynn/archive/2004/06/18/6838.aspx</link>
            <description>&lt;P&gt;There's been a lot of discussion on SOA lately. Two topics in particular have been turning around in my mind, web services and what to return. I go for a bike ride on most mornings and this moring some thoughts on this started to come together some time around mile 5. The two subjects are actually relatated and this is the part that I wasn't seeing at first.&lt;/P&gt;
&lt;P&gt;First, in order to called SOA, some would have you believe that the only way to implement this is by using web services. I think this is a very narrow minded view on what a service can be. Web services are certainly an easy way to implement a SOA. But it certainly is not the only way. We have a gateway product the sits in front of our host system. This host system is running a 20+ year old policy admin system that is developed in COBOL and assembler. This gateway product translates a call from the client side to a CICS program that can then run and do virtually anything. When I write code against this product I interact with it as if it were a stored procedure. That is the syntax that I use. Now I consider this to be a service oriented architecture. Does this adhere to the 4 tenets of SOA:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt; Boundaries are explicit&lt;/LI&gt;
&lt;LI&gt;Services are autonomous&lt;/LI&gt;
&lt;LI&gt;Services share schema nad contract, not class&lt;/LI&gt;
&lt;LI&gt;Service compatibility determined based on policy&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I think that you could make an argument on all of them. The gateway serves as the service provider to a couple of million lines of COBOL. The same procedure calls have been made by multiple programming languages in several different types of applications. Not a single web service to be found. Could we put web services in front of this? Sure but why would we? What would that accomplish? Another layer of abstraction isn't always a good thing.&lt;/P&gt;
&lt;P&gt;The other thing that keeps bouncing around in my head is what should be returned. This is much more difficult. In the example that I just layed out, the return is different depending on what called it. The layer of abstraction in this case is ODBC. I think that this will always be the case. There is no correct answer on what should or should not be returned. SOA is ultimately about integration. Otherwise why bother. So depending on what you want to integrate would depend on what you want to return. If you want ultimate flexibility you would have to return a deliminated text file of data. Almost any type of system or environment can at least read and parse this (even our 20+ year old policy admin system). The next step would be XML, the next would be XML with some type of schema. Next up the ladder would be XML in a SOAP or WSE package. Finally you get to return typed objects. As each step up the ladder occurs a limitation is placed on what can take advantage of the service. Now I have skipped several different types of data structures that can be returned, but I think the point is made. This is why I think you have to be very careful when laying out any new system. Implementing a bunch of web services and then standing back and saying your doing SOA is wrong and potentially dangerous. And this is where the two subjects tie together. If you use only web services for the service layer then you could be making it more difficult for some to consume the service. Returning a serialized .NET business object or even worse a dataset&amp;nbsp;makes this service less useable to someone using VB6 to consume it. Yes it is only XML, but have looked at the XML that is spit out in those situations? And the point is to make the service easy to use. &lt;/P&gt;
&lt;P&gt;The point of all this rambling is that caution should be used in implementing a service oriented architecture. If integration is not a requirement, then architect the application in the best way to solve the stated business requirement. Don't wrap everything up in a web service unless there is a specific need for a web service. If an integration layer is part of the requirement, then it should architected as that, an integration &lt;STRONG&gt;layer&lt;/STRONG&gt;. Don't let the intergration drive to much of tha application architecture or else the original business requirement will suffer. Having a service oriented architecture is worthless if the business processes underneath the services do not accomplish the desired effect. &lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=6838"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=6838" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/6838.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2004/06/18/6838.aspx</guid>
            <pubDate>Fri, 18 Jun 2004 17:59:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2004/06/18/6838.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/6838.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/6838.aspx</trackback:ping>
        </item>
        <item>
            <title>Tactical vs Strategic Unit Testing</title>
            <link>http://geekswithblogs.net/jglynn/archive/2004/06/06/6112.aspx</link>
            <description>&lt;P&gt;&lt;A href="http://weblogs.asp.net/stevencohn/"&gt;Steven&amp;nbsp;Cohn &lt;/A&gt;has a post &lt;A href="http://weblogs.asp.net/stevencohn/archive/2004/06/06/149586.aspx"&gt;Risk Based Unit Testing&lt;/A&gt;&amp;nbsp;in which he describes the difference between tactical vs strategic unit testing. Tactical would be along the lines of TDD in which almost every individual method and property has a test written for it. Strategic would be testing the logical business case. This level of testing would actually test several method and property calls. The point being the test isn't as concerned with each individual method call, but the end result of making several method call. If a test fails, then a finer grain appraoch can be taken.&lt;/P&gt;
&lt;P&gt;The point if this is developer and project productivity. Writing thousands of lines of test code when in reality hundreds will work means that the business user has their new toy sooner. To quote from Steven's post:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;EM&gt;When I throw my code over the wall to the QA group, they don't care if my sorting method works.&amp;nbsp; They want to know if the application works.&amp;nbsp; So, to me, the challenge is making sure that I understand what's expected of the application at a higher strategic level and then prove it.&amp;nbsp; This will speed up the development/QA cycles, make QA happier, which will make my life easier, which gives me more time to write these largely unread, ignored blog entries.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=6112"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=6112" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jglynn/aggbug/6112.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Glynn</dc:creator>
            <guid>http://geekswithblogs.net/jglynn/archive/2004/06/06/6112.aspx</guid>
            <pubDate>Sun, 06 Jun 2004 17:52:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jglynn/archive/2004/06/06/6112.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jglynn/comments/commentRss/6112.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jglynn/services/trackbacks/6112.aspx</trackback:ping>
        </item>
    </channel>
</rss>