<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Design/Integration Patterns Archives - Blog IT</title>
	<atom:link href="https://blogit.create.pt/category/development/design-integration-patterns/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogit.create.pt/category/development/design-integration-patterns/</link>
	<description>Create IT blogger community</description>
	<lastBuildDate>Fri, 30 Oct 2020 15:23:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>How to Handle known Exceptions?</title>
		<link>https://blogit.create.pt/diogocoelho/2020/10/22/how-to-handle-known-exceptions/</link>
					<comments>https://blogit.create.pt/diogocoelho/2020/10/22/how-to-handle-known-exceptions/#respond</comments>
		
		<dc:creator><![CDATA[Diogo Coelho]]></dc:creator>
		<pubDate>Thu, 22 Oct 2020 18:11:58 +0000</pubDate>
				<category><![CDATA[Design/Integration Patterns]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Exception]]></category>
		<category><![CDATA[Exception Handling]]></category>
		<guid isPermaLink="false">https://blogit.create.pt/?p=12069</guid>

					<description><![CDATA[<p>This post will describe several ways to handle known Exceptions in a project. For each possible implementation, we will do an overview of the flow that the exception does to understand the context of each implementation. First, let’s do an overview of what is, normally, a basic flow in any Project. The basic flow of [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/diogocoelho/2020/10/22/how-to-handle-known-exceptions/">How to Handle known Exceptions?</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>This post will describe several ways to handle known <strong>Exceptions </strong>in a project.</p>



<p>For each possible implementation, we will do an overview of the flow that the exception does to understand the context of each implementation.</p>



<p>First, let’s do an overview of what is, normally, a basic flow in any Project.</p>



<h2 class="wp-block-heading">The basic flow of an API Project</h2>



<h2 class="wp-block-heading"></h2>



<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" src="https://blogit.create.pt/wp-content/uploads/2020/10/ControllerServiceRepositoryFlow-1.png" alt="" class="wp-image-12086" width="1064" height="641" /></figure>



<p><em>The previous Figure shows the basic flow of events inside the IDM project. The API receives an HTTP Request in a certain endpoint. The endpoints of the API are mapped in the controller layer, so when the API receives the HTTP request the controller is the first to interact with that request and sends that request to the respective service that will orchestrate all the necessities of that request. Those necessities could be, for example, retrieve some information from the Database, and that is done in the repository layer. The repository layer is where we map all the interactions with external services(DataBases, API, etc). This is a basic overview of what could be a basic API project.</em></p>



<h2 class="wp-block-heading">The Exception Handling Problem</h2>



<p>Taking into account the previous overview of the project, we want to make the process of handling exceptions the more clearest and efficient possible in terms of computational needs, but also in terms of code structure. To achieve this purpose we will describe three different ways of handling the exceptions.</p>



<p>Also, in this project, we have 2 different types of exceptions. They are:</p>



<ul class="wp-block-list"><li>DomainException &#8211; This is the type of exception that is thrown when the error that happens is something that the API already expects;</li><li>Exception &#8211; This could actually be any type of exception different from DomainException. This occurs when an unexpected error occurs in the API;</li></ul>



<h5 class="wp-block-heading">Reference to Middleware</h5>



<p>In this case, we will use the <strong>ExceptionHandler </strong>middleware layer. The middleware layer is specific to .NET Core and we will not focus on that here. Take into account that we will use <strong>ExceptionHandler </strong>in the middleware pipeline to catch all the exceptions that are not treated.</p>



<p>Here is the reference to <a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-3.1">ASP.NET Core Middleware</a>.</p>



<h2 class="wp-block-heading">First Approach: Try-Catch on Controller Layer</h2>



<p>This approach consists of catching and treating the DomainExceptions that are thrown by any of the layers (Controller, Service, or Repository) of the APIProject in the Controller layers. Take into account that all the unexpected exceptions are always treated in the ExceptionHandler of the Middleware.</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://blogit.create.pt/wp-content/uploads/2020/10/ControllerServiceRepositoryFlow_FirstApproachV2-1.png" alt="" class="wp-image-12085" width="1064" height="1071" /></figure>



<h2 class="wp-block-heading">Second Approach: Try-Catch in all Layers</h2>



<p>This approach consists of all layers of the API Project being capable of catching exceptions and sending again the exception to the upper layers. The Controller layer is where the Domain Exceptions will be treated.</p>



<p>Take into account that in this case, the unexpected exceptions are caught by the layer that throws her and also by the rest of the upper layers. However, it is treated in the ExceptionHandler of the Middleware.</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://blogit.create.pt/wp-content/uploads/2020/10/ControllerServiceRepositoryFlow_SecondApproach-1.png" alt="" class="wp-image-12084" width="1067" height="1095" /></figure>



<h2 class="wp-block-heading">Third Approach: Encapsulate Exception in Response Object</h2>



<p>This approach consists, as the name says, in encapsulating the exception in the Response Object. Instead of throwing the exception, we will send the Response object with a Failed message with an instance of the exception in the Response Object as a variable. This means that the system will not need to operate the throws of exceptions for the expected errors. They will be passed in the response object.</p>



<p>Take into account that only the unexpected exceptions are thrown to Middleware &#8211; <strong>ExceptionHandler </strong>to be treated.</p>



<p></p>



<h4 class="wp-block-heading" id="Normal-Response-Object">Normal Response Object</h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
public class OperationResult
{
        public OperationResult();

        public static OperationResult Success { get; }
        public bool Succeeded { get; protected set; }
        public IEnumerable&lt;OperationError&gt; Errors { get; }

        public static OperationResult Failed(params OperationError&#x5B;] errors);
        public override string ToString();
}
</pre></div>


<h4 class="wp-block-heading" id="New-Response-Object-for-this-approach">New Response Object for this approach</h4>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
public class OperationResult
{
        public OperationResult();
           
        public static OperationResult Success { get; }
        public bool Succeeded { get; protected set; }
        public IEnumerable&lt;OperationError&gt; Errors { get; }

        public static OperationResult Failed(params OperationError&#x5B;] errors);
        public override string ToString();
        public Exception ExceptionHolder { get; set;} 
}
</pre></div>


<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://blogit.create.pt/wp-content/uploads/2020/10/ControllerServiceRepositoryFlow_ThirdApproach-2.png" alt="" class="wp-image-12083" width="1067" height="1061" /></figure>



<h2 class="wp-block-heading">Fourth Approach: Catch all exceptions in Middleware &#8211; Exception Handler</h2>



<p>The approach consists of throwing the exceptions whenever they happen and then let them be caught and treated by the middleware &#8211; ExceptionHandler. In this approach, we would create a different type of response for each type of exception for the ExceptionHandler send as Response.</p>



<p>This would centralize all the exception handling in one place.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="682" height="671" src="https://blogit.create.pt/wp-content/uploads/2020/10/ControllerServiceRepositoryFlow_FourthApproach-7.png" alt="" class="wp-image-12117" srcset="https://blogit.create.pt/wp-content/uploads/2020/10/ControllerServiceRepositoryFlow_FourthApproach-7.png 682w, https://blogit.create.pt/wp-content/uploads/2020/10/ControllerServiceRepositoryFlow_FourthApproach-7-300x295.png 300w, https://blogit.create.pt/wp-content/uploads/2020/10/ControllerServiceRepositoryFlow_FourthApproach-7-427x420.png 427w" sizes="(max-width: 682px) 100vw, 682px" /></figure>



<p></p>



<h2 class="wp-block-heading">Comparison of Exception Handling approaches</h2>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><th><strong>Exception Handling Approach</strong></th><th><strong>Pros</strong></th><th><strong>Cons</strong></th></tr><tr><td>First Approach: Try-Catch on Controller Layer</td><td>One place to treats the expected exceptions and another for the unexpected;<br><br>No need to make calls to the error page when is an expected error, thus making the operation quicker;<br><br>Only adds exception related code in the controller Layer;<br></td><td>Catch &amp; Throw of exception in the controller layer uses more computational resources;<br><br>Every endpoint mapped in the controller will need try-catch;</td></tr><tr><td>Second Approach: Try-Catch in all Layers</td><td>Easy to know where the exception happened and where it is (easy to understand the flow);<br><br>One place to treats the expected exceptions and another for the unexpected;</td><td>Exception handling code everywhere;<br><br>Can cause a bottleneck in the app because of the inherent addition of time to the response and use of computational resources;<br><br>Repeated Code;<br><br>Make logical code harder to understand;<br></td></tr><tr><td>Third Approach: Encapsulate Exception in Response Object</td><td>The runtime doesn’t need to handle the throw of expected Exceptions;<br><br>One place to treats the expected exceptions (in this case inside the response Object) and another for the unexpected;<br><br>App maintains a normal flow even to it occurred an expected exception;<br></td><td>Handling of the expected exceptions is not explicit;</td></tr><tr><td>Fourth Approach: Catch all exceptions in Middleware &#8211; Exception Handler</td><td>Aggregates the handling of all exceptions in one place;<br><br>Exception handling code is in one place and logical/business code in other;</td><td>Unexpected and Expected exceptions handling are in the same place;<br><br>Add another request to the operation because it will always need to request the errors page when an exception happens (Middleware- Exception Handler Implementation);<br></td></tr></tbody></table><figcaption></figcaption></figure>



<p></p>
<p>The post <a href="https://blogit.create.pt/diogocoelho/2020/10/22/how-to-handle-known-exceptions/">How to Handle known Exceptions?</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/diogocoelho/2020/10/22/how-to-handle-known-exceptions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>«Architecting a Large Software Project &#8211; Lessons Learned» @ Netponto 50th Meeting &#8211; Lisboa 22/Nov</title>
		<link>https://blogit.create.pt/jota/2014/12/01/architecting-a-large-software-project-lessons-learned-netponto-50th-meeting-lisboa-22nov-2/</link>
					<comments>https://blogit.create.pt/jota/2014/12/01/architecting-a-large-software-project-lessons-learned-netponto-50th-meeting-lisboa-22nov-2/#respond</comments>
		
		<dc:creator><![CDATA[Jota]]></dc:creator>
		<pubDate>Mon, 01 Dec 2014 14:35:58 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Design/Integration Patterns]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Create It]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[MsdnArquitecturaPT]]></category>
		<category><![CDATA[Netponto]]></category>
		<guid isPermaLink="false">http://blogit.create.pt/joaomartins/?p=4981</guid>

					<description><![CDATA[<p>Two weeks ago I presented a session at the 50th meeting of the Lisbon Netponto Group, the largest community of .Net development in Lisboa. This two-hour session, which was filled with real examples, described the lessons learned in a 3-year project I was involved in as a Software Architect, and which had its first release [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/jota/2014/12/01/architecting-a-large-software-project-lessons-learned-netponto-50th-meeting-lisboa-22nov-2/">«Architecting a Large Software Project &#8211; Lessons Learned» @ Netponto 50th Meeting &#8211; Lisboa 22/Nov</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Two weeks ago I presented a session at the 50th meeting of the Lisbon Netponto Group, the largest community of .Net development in Lisboa. This two-hour session, which was filled with real examples, described the lessons learned in a 3-year project I was involved in as a Software Architect, and which had its first release this last summer and has seen early success in the customer organization. The compilation of lessons include the feedback of the developers in the team, and was a huge learning experience.</p>
<p>The slides include architecture aspects, technical aspects, as well as negotiation and functional hints. It’s not meant to be an absolute best-practices architecture guide, it’s only the result of this very specific project.</p>
<p><a href="http://www.slideshare.net/slidejota/20141115-architecting-a-large-software-project-lessons-learned-joo-pedro-martins-dist" target="_blank">You can check/download the deck here</a>.</p>
<p>Special thanks to NetPonto for the invitation, and to the audience for the participation and great feeedback in this LONG session :).</p>
<p>The post <a href="https://blogit.create.pt/jota/2014/12/01/architecting-a-large-software-project-lessons-learned-netponto-50th-meeting-lisboa-22nov-2/">«Architecting a Large Software Project &#8211; Lessons Learned» @ Netponto 50th Meeting &#8211; Lisboa 22/Nov</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/jota/2014/12/01/architecting-a-large-software-project-lessons-learned-netponto-50th-meeting-lisboa-22nov-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cloud Computing: recommended Reading</title>
		<link>https://blogit.create.pt/jota/2009/05/12/cloud-computing-recommended-reading/</link>
					<comments>https://blogit.create.pt/jota/2009/05/12/cloud-computing-recommended-reading/#respond</comments>
		
		<dc:creator><![CDATA[Jota]]></dc:creator>
		<pubDate>Tue, 12 May 2009 12:43:25 +0000</pubDate>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Design/Integration Patterns]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[MsdnArquitecturaPT]]></category>
		<category><![CDATA[Posts in English]]></category>
		<guid isPermaLink="false">http://blogcreate.azurewebsites.net/joaomartins/?p=761</guid>

					<description><![CDATA[<p>Good information via Pat Helland’s weblog, on UC Berkeley’s Paper “Above the Clouds: a Berkeley View of Cloud Computing”.</p>
<p>The post <a href="https://blogit.create.pt/jota/2009/05/12/cloud-computing-recommended-reading/">Cloud Computing: recommended Reading</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Good information <a href="http://blogs.msdn.com/pathelland/archive/2009/04/10/book-report-on-the-uc-berkeley-paper-above-the-clouds-a-berkeley-view-of-cloud-computing.aspx" target="_blank">via Pat Helland’s weblog</a>, on UC Berkeley’s Paper “<em><a href="http://abovetheclouds.cs.berkeley.edu./" target="_blank">Above the Clouds: a Berkeley View of Cloud Computing</a></em>”.</p>
<p>The post <a href="https://blogit.create.pt/jota/2009/05/12/cloud-computing-recommended-reading/">Cloud Computing: recommended Reading</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/jota/2009/05/12/cloud-computing-recommended-reading/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ESB Guidance 2.0 (CTP)</title>
		<link>https://blogit.create.pt/jota/2008/11/20/esb-guidance-2-0-ctp/</link>
					<comments>https://blogit.create.pt/jota/2008/11/20/esb-guidance-2-0-ctp/#respond</comments>
		
		<dc:creator><![CDATA[Jota]]></dc:creator>
		<pubDate>Thu, 20 Nov 2008 11:23:17 +0000</pubDate>
				<category><![CDATA[BizTalk Server]]></category>
		<category><![CDATA[Design/Integration Patterns]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Posts in English]]></category>
		<guid isPermaLink="false">http://blogcreate.azurewebsites.net/joaomartins/?p=901</guid>

					<description><![CDATA[<p>There’s an announcement around for the ESB Guidance 2.0 CTP (October 2008). It’s good to know that this is already getting worked on to have new features and work with the upcoming BizTalk Server 2009. The strange thing is that I can’t actually find the download anywhere: it’s not at Codeplex, and I can’t find [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/jota/2008/11/20/esb-guidance-2-0-ctp/">ESB Guidance 2.0 (CTP)</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>There’s an announcement around for the <a href="http://blogs.msdn.com/publicsector/archive/2008/11/06/esb-guidance.aspx">ESB Guidance 2.0 CTP (October 2008)</a>. It’s good to know that this is already getting worked on to have new features and work with the upcoming BizTalk Server 2009. The strange thing is that I can’t actually find the download anywhere: it’s not at <a href="http://www.codeplex.com/esb">Codeplex</a>, and I can’t find it at <a href="http://connect.microsoft.com/">Connect</a>.</p>
<p>According to the post, the new features are:</p>
<ul>
<li><em>Alignment with Microsoft BizTalk Server 2009 ( Beta ) </em></li>
<li><em>ESB Configuration tool </em></li>
<li><em>Centralized itinerary store </em></li>
<li><em>Itinerary resolver components </em></li>
<li><em>Itinerary forwarder pipeline component </em></li>
<li><em>Itinerary selector pipeline component </em></li>
<li><em>Itinerary designer </em></li>
<li><em>Centralized configuration uses Enterprise Library 4.0 Configuration Block </em></li>
<li><em>Centralized caching uses Enterprise Library 4.0 Caching Block </em></li>
<li><em>Multiple service invocation using both messaging and orchestrations </em></li>
<li><em>Itinerary BAM tracking </em></li>
<li><em>Improved ESB Core engine and itinerary execution </em></li>
</ul>
<p> I hope the installation process is improved and that non-US regional settings are supported. Those were a huge barrier to adoption of the ESB Guidance, on my view.</p>
<p>The post <a href="https://blogit.create.pt/jota/2008/11/20/esb-guidance-2-0-ctp/">ESB Guidance 2.0 (CTP)</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/jota/2008/11/20/esb-guidance-2-0-ctp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PDC(loud) 2007</title>
		<link>https://blogit.create.pt/jota/2008/10/02/pdcloud-2007/</link>
					<comments>https://blogit.create.pt/jota/2008/10/02/pdcloud-2007/#respond</comments>
		
		<dc:creator><![CDATA[Jota]]></dc:creator>
		<pubDate>Thu, 02 Oct 2008 02:53:33 +0000</pubDate>
				<category><![CDATA[BizTalk Server]]></category>
		<category><![CDATA[BizTalk Services]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Design/Integration Patterns]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Model Driven Development]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Arquitectura]]></category>
		<category><![CDATA[MsdnArquitecturaPT]]></category>
		<category><![CDATA[Posts in English]]></category>
		<guid isPermaLink="false">http://blogcreate.azurewebsites.net/joaomartins/?p=1001</guid>

					<description><![CDATA[<p>For me, this year&#8217;s PDC in LA will totally be about the &#34;Cloud&#34;. Sure topics that interest me are Mesh and Sql Server Data Services (SSDS), but I&#8217;m sure there&#8217;s more to come, about things like Oslo and other European cities, perhaps BizTalk Services and a curiously colored and mysterious canine, RedDog. There are two [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/jota/2008/10/02/pdcloud-2007/">PDC(loud) 2007</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>For me, this year&#8217;s <a href="http://www.microsoftpdc.com">PDC</a> in LA will totally be about the &quot;<em><strong>Cloud</strong></em>&quot;. Sure topics that interest me are <a href="https://www.mesh.com/Welcome/Welcome.aspx">Mesh</a> and <a href="http://www.microsoft.com/sql/dataservices/default.mspx">Sql Server Data Services (SSDS)</a>, but I&#8217;m sure there&#8217;s more to come, about things like <a href="http://www.microsoft.com/soa/products/oslo.aspx">Oslo</a> and <a href="http://visualstudiomagazine.com/news/article.aspx?editorialsid=10257">other European cities</a>, perhaps <a href="http://biztalk.net/default.aspx">BizTalk Services</a> and a curiously colored and mysterious canine, <a href="http://news.cnet.com/8301-10805_3-10055706-75.html?tag=mncol;title">RedDog</a>.</p>
<p>There are two things that interest me, personally, in these kind of <em>cloud</em> paradigms. First, that there are new application models, new architectures, <strong><em>new colors in the pallete</em></strong>, new tools (modeling is one of them). Just look at all the technologies I mentioned. Most of them are usable to develop enterprise applications, they are not customer-facing new things (Mesh is the partial exception here). The second thing that interests me is precisely the <strong>engineering challenge</strong>, the new problems we will have to solve in a world where almost nothing can be taken for granted. <strong>(Can we communicate at all, if everything is extremely loosely coupled?)</strong></p>
<p>Truth is, however, that I don’t think this will be an easy or widespread shift (regardless of <a href="http://www.nicholasgcarr.com/bigswitch/">what Nicholas Carr thinks</a>). If you talk to most people working in IT today about “<em>moving to the cloud</em>”, you’ll hear jokes about “<em>fog</em>”, and (legitimate) questions about data ownership, security, trust, cost, SLAs and QoS, etc. These issues will have to be tackled with, or at least enough of them.</p>
<p>Data and Business Logic has been near (“<em>it’s mine, <strong>all mine</strong>!</em>”) almost since the first days of IT, after all.</p>
<p>… so if you are in Portugal or nearby and want a partner company to explore some new ground using these technologies (or just have interesting discussions), get in touch. 🙂</p>
<p><a href="http://news.cnet.com/8301-10805_3-10055706-75.html?tag=mncol;title">&#160;</a></p>
<p>The post <a href="https://blogit.create.pt/jota/2008/10/02/pdcloud-2007/">PDC(loud) 2007</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/jota/2008/10/02/pdcloud-2007/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What&#8217;s going on in the web after all?</title>
		<link>https://blogit.create.pt/jota/2008/04/10/whats-going-on-in-the-web-after-all/</link>
					<comments>https://blogit.create.pt/jota/2008/04/10/whats-going-on-in-the-web-after-all/#respond</comments>
		
		<dc:creator><![CDATA[Jota]]></dc:creator>
		<pubDate>Thu, 10 Apr 2008 16:49:32 +0000</pubDate>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Design/Integration Patterns]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Arquitectura]]></category>
		<category><![CDATA[MsdnArquitecturaPT]]></category>
		<category><![CDATA[Posts in English]]></category>
		<guid isPermaLink="false">http://blogcreate.azurewebsites.net/joaomartins/?p=1241</guid>

					<description><![CDATA[<p>I don&#8217;t usually post lists of links, but I&#8217;ve been reading all that has been coming out following the Google&#8217;s AppEngine announcement, and thought it would be a good idea to systematize these. Bungee Labs &#8211; Next Generation Web Development Platform an ambitious new on-demand, web-based development environment that enables developers to build and deploy [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/jota/2008/04/10/whats-going-on-in-the-web-after-all/">What&#8217;s going on in the web after all?</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I don&#8217;t usually post lists of links, but I&#8217;ve been reading all that has been coming out following the Google&#8217;s AppEngine announcement, and thought it would be a good idea to systematize these.</p>
<p><a href="http://www.readwriteweb.com/archives/bungee_labs_next_generation_web_development.php">Bungee Labs &#8211; Next Generation Web Development Platform</a>     <br /><em>an ambitious new on-demand, web-based development environment that enables developers to build and deploy web apps that utilize the large variety of APIs and web services out on the Internet</em></p>
<p><a href="http://www.bungeelabs.com/">BungeeConnect</a>     <br /><em>The Bungee Connect Platform-as-a-Service is a single environment for the development, testing, deployment and hosting of amazing web applications. Bungee Connect powers highly interactive user web applications built 80% faster and at a cost tied only to end user adoption</em></p>
<p><a href="http://www.readwriteweb.com/archives/google_cloud_control.php">Google App Engine: Cloud Control to Major Tom</a>     <br /><em>Google App Engine is similar to the Amazon Web Services stack, which rolled out at the end of 2006 and has since gone on to be utilised by many startups for their infrastructure needs. But it is not a set of standalone services like Amazon&#8217;s &#8211; which includes S3 for storage, EC2 for hosting and the SimpleDB database. Google App Engine is an end-to-end service and bundles everything into one package.</em>     </p>
<p><a href="http://www.readwriteweb.com/archives/red_dog_microsofts_cloud_computing_platform.php">Red Dog: Microsoft&#8217;s Answer to App Engine and AWS?</a>     <br /><em>Kip Kniskern over at the LiveSide blog spotted a Microsoft job advert that appears to give some insight into a cloud computing platform under development at Redmond that could compete with Google&#8217;s just released App Engine or Amazon&#8217;s suite of web services. The utility computing platform, codenamed &quot;Red Dog&quot; according to the job ad, is under development at Microsoft&#8217;s Cloud Infrastructure Services (CIS) team and aims to see a version one release within the &quot;coming year.&quot; What little info is provided by the job posting is rather obscure, but there are a few juicy tidbits to be had.</em></p>
<p><a href="http://www.alleyinsider.com/2008/4/google_s_appengine_aiming_at_facebook_not_google">Google&#8217;s App Engine: Aiming At Facebook, Not Amazon</a>     <br /><em>If the Silicon Valley echo chamber wants to make up a competitor for AppEngine, its proper correlate (by a whisker) is </em><a href="http://developers.facebook.com/"><em>Facebook&#8217;s F8 platform</em></a><em>. If you must cram this new service into a pigeon hole, think of App Engine as the Facebook Platform for the grown-up web.</em></p>
<p><a href="http://radar.oreilly.com/archives/2008/04/app-engine-host-your-python-apps-with-google.html">App Engine: Host Your Apps with Google</a>     <br /><em>It&#8217;s about time that developers get access to Google&#8217;s platform! We&#8217;ve been hearing about Google&#8217;s server farms and development tools for years. After Amazon Web Services started doing so well we all knew it was just a matter of time (next will be Microsoft we can can safely assume). Though the obvious comparison is to AWS, they aren&#8217;t really the same beast. Amazon has released a set a disparate services that can be used to created a general computing platform. The services, though they work together, do not come bundled.</em></p>
<p><a href="http://linxter.com/">Linxter Internet Service Bus (ISB)</a>     <br /><em>Linxter is an in-the-cloud, customizable communications infrastructure for distributed applications providing hyperconnective, secure, assured information delivery.</em></p>
<p><a href="http://code.google.com/appengine/">Google AppEngine</a>     <br /><em>Google App Engine enables you to build web applications on the same scalable systems that power Google applications. </em></p>
<p><a href="http://blogs.zdnet.com/microsoft/?p=1324">Red Dog: Yet another unannounced Microsoft cloud service</a>     <br /><em>I believe Microsoft is working on a hosted app platform for developers, with <a href="http://labs.biztalk.net/">BizTalk Services</a> and <a href="http://www.microsoft.com/sql/dataservices/default.mspx">SQL Server Data Services</a> (SSDS) at its heart. In fact, I&#8216;ve heard the codename &#8220;Zurich&#8221; attached to this Google-App-Engine competitor. But are Red Dog and Zurich one and the same? I think they are different, and all part of the big Microsoft services plan in the sky.</em></p>
<p><a href="http://www.roughtype.com/archives/2008/04/google_unlocks.php">Google unlocks its data centers</a>    <br /><em>Where&#8217;s Microsoft?</em></p>
<p><em></em></p>
<p>Food for thought.</p>
<p>The post <a href="https://blogit.create.pt/jota/2008/04/10/whats-going-on-in-the-web-after-all/">What&#8217;s going on in the web after all?</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/jota/2008/04/10/whats-going-on-in-the-web-after-all/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>BizTalk: Wire Tap</title>
		<link>https://blogit.create.pt/jota/2007/01/15/biztalk-wire-tap/</link>
					<comments>https://blogit.create.pt/jota/2007/01/15/biztalk-wire-tap/#respond</comments>
		
		<dc:creator><![CDATA[Jota]]></dc:creator>
		<pubDate>Mon, 15 Jan 2007 13:47:49 +0000</pubDate>
				<category><![CDATA[BizTalk Server]]></category>
		<category><![CDATA[Design/Integration Patterns]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Posts in English]]></category>
		<guid isPermaLink="false">http://blogcreate.azurewebsites.net/joaomartins/?p=2081</guid>

					<description><![CDATA[<p>Debugging in BizTalk (and other async/messaging-based solutions) can be complex, and very often the UIs (the Admin Console and Hat) don&#8217;t give you enough tracking information, either because you&#8217;ve just re-deployed and lost tracking settings, or because the Sql Agent is turned off. This tends to happen frequently during development when you want to look [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/jota/2007/01/15/biztalk-wire-tap/">BizTalk: Wire Tap</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Debugging in BizTalk (and other async/messaging-based solutions) can be complex, and very often the UIs (the Admin Console and Hat) don&#8217;t give you enough tracking information, either because you&#8217;ve just re-deployed and lost tracking settings, or because the Sql Agent is turned off. This tends to happen frequently during development when you want to look at the body of the messages.</p>
<p>A very simple and very useful technique in this situation, and one I often find is not fully used, is to create a &#8220;Wire Tap&#8221;. A <a href="http://www.enterpriseintegrationpatterns.com/WireTap.html">Wire Tap</a> is an Integration Pattern that allows the inspection of messages that travel across a channel. In BizTalk, this translates to simply creating a (Static, One Way) Send Port that looks for specific messages (using its Filters), and sends them to some destination, typically, a file folder (SMTP email is another frequent choice). This port is not bound to any orchestration, it&#8217;s a content-based solution only.</p>
<p>One thing to remember about these Send Ports is that if you have a Send Port that has no filters, it catches nothing. Always remember to set up a filter. The ones I used the most are based on the message type (BTS.MessageType) and the receive port the message came in through (BTS.ReceivePortName).</p>
<p>I actually find that understanding and resorting to this mechanism is frequently a good indicator of the maturity of the BizTalk developer and his understanding of the pub/sub model in BizTalk Server.</p>
<p>The post <a href="https://blogit.create.pt/jota/2007/01/15/biztalk-wire-tap/">BizTalk: Wire Tap</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/jota/2007/01/15/biztalk-wire-tap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
