by community-syndication | Jun 8, 2009 | BizTalk Community Blogs via Syndication
An Enterprise Service Bus (ESB) is an architectural pattern and a key enabler in implementing the infrastructure for a service-oriented architecture (SOA). Real-world experience has demonstrated that an ESB is only one of many components required to build a comprehensive service-oriented infrastructure (SOI). The term “ESB” has various interpretations in the market, which have evolved over time; however, the basic challenge it addresses is the same.
by community-syndication | Jun 8, 2009 | BizTalk Community Blogs via Syndication
Those of you that worked with the CTP of the ESB Toolkit 2.0 will notice a new feature in the final release, namely “Itinerary Encryption”. The Itinerary Design now allows you to use a certificate to encrypt your itineraries before you export them out of Visual Studio. This is a key new piece of functionality since your itineraries may potentially contain sensitive configuration information or sensitive processes that you do not want to leave exposed as open text XML.
In the properties window for the Itinerary Designer you can see a new property called “Encryption Certificate”. You can use this property to select a certificate from a certificate store.
Now as important as this option is, what I’m going to write about is how to disable this. On my dev machine, I did not have any valid certificates installed, so I wasn’t able to select one to use or encryption. This prevented me from validating or exporting my itinerary since the validation tool kept throwing an error. Since this was only a dev machine, I didn’t care about the security of these itineraries, so I really wanted to disable this feature so that I could keep working. Fortunetly, there is a simple and easy way to do this.
If you have installed the ESBT to the default location, you should be able to find a file called “ruleset.config” in the “C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Tools\Itinerary Designer” folder. This file contains a list of validation rules the the Itinerary Designer uses when validating or exporting your itinerary. If you open this file in Visual Studio, you will find a node called <property name=”EncryptionCertificate”>. Inside this node, you will see there are two rules that define how the validation of certificates should be handled. The first rule is the one the designer uses by default and it says that an error should be thrown if you do not have a certificate assigned. I commented out this rule and when I ran the validation routine again, I only received a warning message about the lack of a cert. I was then able to export my itinerary. Here’s what the modified file looked like for my system.
<property name=”EncryptionCertificate”>
<!–<validator type=”Microsoft.Practices.Modeling.Validation.X509CertificateContainerValidator, Microsoft.Practices.Modeling.Validation”
messageTemplate=”A X509 Certificate is required in the model property ‘{0}’ to encrypt any sensitive property in the designer.”
name=”EncryptingCertificate validator”/>–>
<!– Warning message when not enforcing encryption –>
<validator type=”Microsoft.Practices.Modeling.Validation.X509CertificateContainerValidator, Microsoft.Practices.Modeling.Validation”
messageTemplate=”Some data may not be secured because no X509 Certificate was specified in the model property ‘{0}’.”
tag=”Warning”
name=”EncryptingCertificate (warning) validator”/>
</property>
Cheers and keep on BizTalking
Peter
by community-syndication | Jun 8, 2009 | BizTalk Community Blogs via Syndication
Last wednesday I passed the EPiServer CMS 5.1 certification exam and am now officially an EPiServer Certified developer.
I had a score of 77% which is OK I suppose.
I’ll post a few…
Daniel Berg’s blog about ASP.NET, EPiServer, SharePoint, BizTalk
by community-syndication | Jun 7, 2009 | BizTalk Community Blogs via Syndication
Cross-posted from the Silverlight Web Services Team Blog.
Silverlight 3 Beta introduces a new way to improve the performance of web services. You have all probably used the Silverlight-enabled WCF Service item template in Visual Studio to create a WCF web service, and then used the Add Service Reference command in your Silverlight application project in order to access the web service. In SL3, the item template has undergone a small change that turns on the new binary message encoder, which significantly improves the performance of the WCF services you build. Note that this is the same binary encoder which has been available in .Net since the release of WCF, so all WCF developers will find the object model very familiar.
The best part is that this is done entirely in the service configuration file (Web.config) and does not affect the way you use the service. (Check out this post for a brief description of exactly what the change is.)
I wanted to share some data that shows exactly how noticeable this performance improvement is, and perhaps convince some of you to consider migrating your apps from SL2 to SL3.
When Silverlight applications use web services, XML-based messages (in the SOAP format) are being exchanged. In SL2, those messages were always encoded as plain text when being transmitted; you could open a HTTP traffic logger and you would be able to read the messages. However using plain text is far from being a compact encoding when sending across the wire, and far from being fast when decoding on the server side. When we use the binary encoder, the messages are encoded using a WCF binary encoding, which provides two main advantages: increased server throughput and decreased message size.
Increased server throughput
Let’s examine the following graph (hat tip to Greg Leake of StockTrader fame for collecting this data). Here is the scenario we measure: the client sends a payload, the server receives it and sends it back to the client. Many clients are used to load the service up to its peak throughput. We run the test once using the text-based encoding and once using the new binary encoding and compare the peak throughput at the sever. We do this for 2 message sizes: in the smaller size the payload an array with 20 objects, and in the bigger one the payload is an array with 100 objects.
Some more details for the curious: The service is configured to ensure no throttling is happening, and a new instance of the service is created for every client call (known as PerCall instancing). There are ten physical clients driving load, each running many threads hitting service in tight loop (but with small 0.1 second think time between requests) using a shared channel to reduce client load. The graph measures peak throughput on the service at 100% CPU saturation. Note that in this test we did not use Silverlight clients but regular .Net clients. Since we are measuring server throughput it is not significant what the clients are.
When sending the smaller message we see a 24% increase in server throughput, and with the larger message size we see a 71% increase in server throughput. As the message complexity continues to grow, we should see even more significant gains from using the binary encoder.
What does that mean to you? If you run a service that is being used by Silverlight clients and you exchange non-trivial messages, you can support significantly more clients if the clients use SL3’s binary encoding. As usage of your service increases, that could mean being able to save on buying and deploying extra servers.
Decreased message size
Another feature of the binary encoder is that since messages sent on the wire are no longer plain-text, you will see a reduction in their average size. Let’s clarify this point: the main reason you would use the binary encoding is to increase the service throughput, as discussed in the previous section. The decrease in message size is a nice side-effect, but let’s face it: you can accomplish the same effect by turning on compression on the HTTP level.
This test was far less comprehensive than the previous one and we did it ad-hoc on my co-worker’s office machine. We took various objects inside a Silverlight control, and turned them into the same kind of SOAP messages that get sent to the service. We did this using the plain-text encoding and using binary encoding and then we compared the size of the messages in bytes. Here are our results:
The takeaway here is that the reduction of message size depends on the nature of the payload: sending large instances of system types (for example a long String) will result in a modest reduction, but the largest gains occur when complex object graphs are being encoded (for example objects with many members, or arrays).
What does this mean to you? If you run a web service and you pay your ISP for the traffic your service generates, using binary encoding will reduce the size of messages on the wire, and hopefully lower your bandwidth bills as traffic to your service increases.
Conclusion
We are confident that binary encoding is the right choice for most backend WCF service scenarios: you should never see a regression over text encoding when it comes to server throughput or message size; hopefully you will see performance gains in most cases. This is why the binary encoder is the new default in the Silverlight-enabled WCF Service item template in Visual Studio.
An important note: binary encoding is only supported by WCF services and clients, and so it is not the right choice if you aren’t using WCF end-to-end. If your service needs to be accessed by non-WCF clients, using binary encoding may not be possible. The binary AMF encoding used by Adobe Flex is similarly restricted to services that support it.
by community-syndication | Jun 7, 2009 | BizTalk Community Blogs via Syndication
Here is the latest in my link-listing series. Also check out my ASP.NET Tips, Tricks and Tutorials page and Silverlight Tutorials page for links to popular articles I’ve done myself in the past.
You can also now follow me on twitter (@scottgu) where I also post links and small posts.
ASP.NET
AJAX
ASP.NET MVC
-
DataAnnotations and ASP.NET MVC: Brad Wilson (a dev on the ASP.NET MVC team) has a nice post that describes how to use DataAnnotations to annotate model objects, and then use a model binder to automatically validate them when accepting form posted input. DataAnnotation support will be built-in with the next version of ASP.NET MVC.
Visual Studio
Hope this helps,
Scott
by community-syndication | Jun 6, 2009 | BizTalk Community Blogs via Syndication
Hi all
Just a quick book review, since I have just read the “Who
moved my Cheese” book.
It only takes like an hour to read, and it is the story of two mice and two people
who are searching for cheese, where the cheese is a metaphor for something you really
want to have. At some point, they run out of cheese, and the four characters take
very different approaches to the changes in the environment. The point of the story
is, naturally, that you can most likely identify yourself as one of the characters
and after reading the book, perhaps you have learnt something about how you react
to changes and how you should react – and hopefully improve your
life.
Easily read with lots of points. Read it
—
eliasen
by community-syndication | Jun 5, 2009 | BizTalk Community Blogs via Syndication
Next Monday I will be presenting two sessions at VSLive Las Vegas . The first session is about the WCF 4.0 extensibility model and it covers almost all the major extensibility points of the different WCF subsystems such as messaging, security, instancing…(read more)
by community-syndication | Jun 5, 2009 | BizTalk Community Blogs via Syndication
This morning, I’m pleased to announce that the team has posted four initial Windows Workflow Foundation (WF) migration guidance documents to help current WF developers evaluate the new WF programming model that is being introduced in .NET Framework 4.
The documents were written by the PM team to help describe the relationship between the existing WF technology that was introduced in .NET 3.0 (defined as the types in the System.Workflow.* namespaces; referred to in the documents as WF3 for simplicity and brevity) and the new WF technology that is being released in .NET 4 (the System.Activities.* namespaces; referred to in the documents as WF4). The team explains how to think of WF features within the two programming models, and the choices you have as a user or a potential user of workflow technology in .NET 4.
Because this is a very broad topic, we’ve broken up what was initially going to be a single paper into about eight. There is an overview document and [currently] seven papers that take the form of either higher level guidance and cookbook papers. Today’s initial release introduces the higher-level guidance documents, with the cookbooks to be released in the coming weeks.
As the documents are updated, we will be releasing them to the WF Migration Guidance download on the MS Download Center, and the accompanying source code will be posted on a WF Migration Guidance project on the MSDN Code Gallery.
The document list looks like the following:
- WF Migration Overview (Now Live!)
Overview of the document collection and an initial starting place for the WF3 developer
- WF Migration: Best Practices for WF3 Development (Now Live!)
How to design WF3 artifacts so they are more easily migratable to WF4
- WF Guidance: Rules (Now Live!)
Discussion of how to bring rules-related investments forward into .NET 4
- WF Guidance: State Machine (Now Live!)
Discussion of WF4 control flow modeling in the absence of a StateMachine activity
- WF Migration Cookbook: Custom Activities (Coming Soon)
Examples and instructions for redesigning WF3 custom activities on WF4
- WF Migration Cookbook: Workflows (Coming Soon)
Examples and instructions for redesigning WF3 workflows on WF4
- WF Migration Cookbook: Workflow Services (Coming Soon)
Examples and instructions for redesigning WF3 workflow services on WF4
- WF Migration Cookbook: Advanced Custom Activities (Coming Soon)
Examples and instructions for redesigning advanced WF3 custom activities on WF4
The papers will continue to be grown and updated as we move towards the RTM release – to address a larger number of usage scenarios, and to address any changes that happen between pre-releases. We’ve been working on the documents over the last month, and think that they provide some good initial thoughts on how to approach the technology; and we hope that you find them helpful
The team will be supporting feedback and requests for the documents and accompanying sample code in the WF 4 forum on MSDN. I’m told the feature PMs will be creating a thread for each document to make it easier to provide feedback and for the PMs to respond – we should have more information on that in the next few days.
by community-syndication | Jun 5, 2009 | BizTalk Community Blogs via Syndication
Yes indeed, the ESB Guidance is going to experience a name change once version 2.0 is released later this month. The ESB Toolkit 2.0 (set to release in mid June) offers so much more than just guidance that we needed to make the name more clear. I want to point out that this is more than just a name change or marketing scheme. Version 2.0 of the Toolkit 2.0 contains a ton of new enhancements over version 1.0 and since these enhancements are going to be key for most BizTalk shops, we needed to take some dramatic steps to mature the Toolkit from its initial “open source”/”best effort support” roots and make sure that is is enterprise ready and fully supported. We also realized the components in the toolkit offer a ton of value right out of the box and they no longer really act just as “guidance”. these are ready to use, valuable components for organizations building out their SOA infrastructure.
A couple of key points about ESBT 2.0:
- From now on, the toolkit will be available via MSDN and not via Codeplex
- We’re not going to be making the source code available like we did in version 1.0. This is tied to our planned changes around the toolkit’s support model.
- As a first step to increasing support, we are launching a public forum on MSDN to provide stronger community support for the toolkit Microsoft employees will be monitoring this forum.
- Beyond this, additional support measures are going to be phased in over the next several months. Eventually, you should be able to receive full support for the components in the toolkit via standard Microsoft support channels such as Premier.
- Dramatically simplified install process (the old install guidelines I posted last year and now thankfully useless). I’ve managed to complete my latest install in less than 20 minutes.
Also, kudo’s need to go out to Dmitri Ossipov and his team who have done a great job of developing this. Most BizTalk shops will find that they will want to leverage some part of the toolkit for their future projects.
I’ve fallen drastically behind on my plans to release a number of “how to” videos for the ESB Toolkit 2.0. However, with the release coming soon, I’ hope to change that quickly. Check back soon for some new “how to’s” on two way synchronous routing, service composition (or service chaining), building your own ESB ready orchestrations etc.
Cheers and keep on BizTalking
Peter
by community-syndication | Jun 4, 2009 | BizTalk Community Blogs via Syndication
Some of you may have noticed that the Microsoft Blueprints project has gone quiet and the site taken down from CodePlex and MSDN. I had written a couple of posts about Blueprints in the past and how it was eventually going to take over from GAT/GAX.
Anyway, if you are wondering what’s happening,the answer isthat we […]