Brian Loesgen's Blog

BizTalk, Enterprise Service Bus (ESB), SOA, Oslo, San Diego .NET User Group, San Diego Software Industry Council Web Services... and stuff!

  Home  |   Contact  |   Syndication    |   Login
  101 Posts | 0 Stories | 64 Comments | 84 Trackbacks

News

Tag Cloud


Archives

Post Categories

Image Galleries

My Blog Friends

Wednesday, July 16, 2008 #

This article appeared in eWeek a couple of days ago, I wanted to ensure that people following Oslo's progress on my blog are aware of it, it's a good read.

http://www.eweek.com/c/a/Application-Development/Oslo-Road-to-Microsofts-Cloud/

We're in for a fun ride over the next few years, come PDC this October, it will get really interesting…

 

Technorati Tags: ,,,

Saturday, July 05, 2008 #

I have been playing around with the Live Mesh Community Techology Preview, and have been doing what I think is some pretty cool stuff with it (as a consumer), so I thought I'd post something about it.

First off, and let's get this out of the way up front, this is NOT "another Ray Ozzie Notes/Groove". What's available today looks and feels like Groove (or FolderShare), but that's only because this is the first implementation of something written on top of the Mesh Operating Environment (MOE). Today it gives you a way to synchronize files between machines and a "virtual desktop in the cloud", but this is just the start. There will be a developer SDK available down the road that will open up this distributed environment to what I think could be a very interesting new class of applications (all SOA course!).

It is not my intention to go into detail about what it is, see the link below to Paul's write-ups for that. It is my intention to share my experiences, good and not-so-good, and explain how I am using it.

 

Configuration

My configuration is:

  • My MediaCenter PC (at home) is a Live Mesh "device"
  • My notebook (also known as "my office" :)) is another Live Mesh device
  • I have created some folders on my virtual Live Mesh desktop-in-the-cloud that are synched with my devices

 

Project documents and artifacts

I do all of my development work inside virtual machines. Plus, I'm very mobile, and am often working in a disconnected state. How I use Live Mesh for this is:

  • from inside my virtual machine, I map a drive to a folder on my host
  • I have Live Mesh running in the host
  • When I drag project documents from inside the VM into the shared folder, they appear on the host
  • Live Mesh detects the new documents, and synchronizes them to the cloud
  • Live Mesh running on my MediaCenter PC detects the new files in the cloud and brings them down.

Presto... everything's in synch! Pretty cool that I can do something inside my VM and it just shows up at home on my MediaCenter (complete with an RSS news feed for the folder saying who added/deleted what).

 

Photos

Basically the same as above, except when I plug my camera into my notebook I drag the photos in a folder that's synched with my Live Mesh desktop. From there, they replicate down to my MediaCenter PC. I have my MediaCenter machine configure to automatically do backups to an external drive. Here Live Mesh gives me instant distributed backups, without having to think about it.

 

My not-so-great experiences

My not-so-great experiences were my own fault, nothing wrong with Live Mesh.

  • I didn't understand the concept of a "device". It is a combination of machine+login. I have 2 logins on my MediaCenter, a low-privilege one for everyone in the family, and my admin login. I had set Live Mesh up, under both those logins, to synchronize the same folder to my virtual desktop folder. Perhaps it could be a bit smarter and detect that scenario, but it didn't, and the net effect was that I started getting duplicate file conflicts as the same files were being uploaded from different devices (even though from the same physical location) to the same virtual location. It turned into a real "Live Mess" :) Solution was to set the MediaCenter machine to login automatically on boot, so Live Mesh would always be running, and remove the admin "device" from my mesh.
  • this one's kind of funny, and shows what can happen when you forget what happens when you drag things. I was in Jordan, and had spent a weekend taking a bazillion pictures with my 10 megapixel camera. I pulled the pictures off, and it took all of a second to drag them to my synchronized photo folder. The upload to my mesh completed 5 days later :)

 

Learning more

Live Mesh is really cool, and useful technology. My biggest gripe right now, and a constraint on my usage, is the 5 gig limit. As was said on CNET's Buzz Out Loud podcast, and I love this quote, "we're going to need a bigger cloud".

I would encourage everyone to get the CTP, or get on the list, and start using it for real.

Last I saw there was a waiting list to get in to the tech preview. That may or may not still be the case when you read this.

If you search around, you'll find lots of info about Live Mesh, as a lot of people are (rightfully so) pretty excited about this. Some good starting points would be:

 

Technorati Tags: ,

Tuesday, June 24, 2008 #

I'm actually back in town for a couple of weeks. Good thing too, as tonight at the San Diego .NET User Group Mike Culver of Amazon will be telling us all about Amazon's efforts in cloud computing. If you haven't had any exposure to cloud computing, or don't even know what it is, you should look into it. This looks like it could be a Big Next Thing. Amazon, Microsoft and all the others are investing heavily in the space, and it really enables a bunch of things we never could have done before. For details about the meeting, visit the San Diego .NET User Group.

Then, this weekend, it's Code Camp time in San Diego. I'll be there, doing the same ESB Guidance presentation ("A Technical Drilldown into Microsoft's ESB Guidance") I did at TechEd a couple of weeks ago. It went really well, this has matured nicely, and now even includes a pretty cool governance section. Code Camp is always a lot of fun, hopefully you can make it!

 


Wednesday, June 04, 2008 #

During the Bill Gates keynote here at TechEd, and during Oliver Sharp's presentation on Microsoft's vision and strategy for Connected Systems, it was announced that there will be a public community technology preview (CTP) of *some* of the Oslo stack at PDC this fall. This is the first public announcement of any kind of release dates.

Before you get too excited, remember that Oslo is a very ambitious and far-reaching project. What will be released in the fall will likely only be step down that path, an early look at a few parts that will become part of a much bigger picture.

However, all journeys begin with a single step :)

 

Technorati Tags: ,,

Monday, June 02, 2008 #

I ran into an old friend tonight here at TechEd and he told me about an event he's hosting tomorrow night, pre-registration is done, but rumor has it there are still "ducks available", so... if you're here, you may want to swing by the Developer Tools and Languages info desk in the TLC.

 

The "rubber duck competition" sounds like it should be fun. If I'm happy with the state of the demos for my presentation, I'll see you there!

http://www.dougseven.com/blog/2008/05/geekfest-party.html


Friday, May 30, 2008 #

Next week marks the start of TechEd US in Orlando, which is always a fun conference to be at. I'll be there, presenting a session on Friday in the SOA track: "Technical Drilldown into Microsoft's ESB Guidance". The SOA track is packed with great sessions, this should be a really good TechEd. If you're going the following week to TechEd IT Pro, Allan Naim of Microsoft will be doing a session on the ESB Guidance.

 

Hope to see you at TechEd Developer, I'll be there all week, hanging out, seeing old friends, and also helping out at the MSFT booth.

 

Technorati Tags: ,,

Monday, May 19, 2008 #

I'm part of a curriculum  advisory panel for California State University for an upcoming SOA program. As part of that, I spoke with someone there recently, relating real-world experiences, in a rather wide-ranging conversation. I started thinking "gee, I should write some of this down, it could be a good blog post". So, here it is!

I'll start off by saying that I could probably write a book about this, and there's likely a bazillion of my peers that could co-author. Many have already written books about this. However, instead, I'm going to distill selected thoughts down into a soap box-ish ranting blog post. I have boiled down some key points into just a few phrases. Maybe it works, maybe the value gets lost in a haze of over-simplification. Maybe I should do a series of posts (but I have NO plans to do so!).

Think big, do small

I'd say the single most important factor is planning. And by that, I don't mean lock a bunch of smart people in a room for a year and have them emerge with a detailed waterfall Gantt chart. I mean realizing that you're embarking on a path that will transform the way you create, deploy and manage your business-critical applications. Done right, your enterprise becomes more agile, cost and time to deploy new functionality decreases, and you achieve the nirvana of code re-use we as an industry have been seeking for decades. Done wrong, and you'll squander precious people resources and budget on an initiative with little or no return.

Mitigation: "boil the ocean" approaches fail. Think it all through, and then select some small services, then gradually pilot/deploy/build-up from there.

 

Think across the enterprise

In a large company with multiple IT sub-organizations, you need to have enterprise-level vision. Create a governing body. Identify a services portfolio. Without this, you could be doomed to costly inefficiencies such as duplication of efforts where multiple departments create different variants on a service, inconsistent naming, and eventually, a maintenance nightmare.

Mitigation: If you don't already have an enterprise architecture group chartered with setting enterprise-wide standards and policies, form one.

 

Take a holistic view

A developer will write 12 lines of super elegant code and say "there, the service is done, you can deploy it now".  It's no fault of the developer, in their opinion they are done. The problem of course is that you need a services management strategy, and that goes far beyond the realm of what the rank and file developer sees, or in most cases, beyond what they need to see, and certainly beyond what they usually think about.

Mitigation: Think about the entire lifecycle of a service. How will you deploy it? Is there an approvals process? How will you secure it? How will you manage it? How will you monitor it? How will you retire it?

 

Recognize the people challenges

SOA thinking moves people into the realm of message-oriented, or contract-first if you like, architectures. This requires a different mindset than traditional object-oriented or procedural architectures. You're in a realm where everything is loosely-coupled, and operations often become asynchronous. I have seen firsthand at challenged client sites just how horribly wrong things can go if you try to apply object-oriented thinking and functional decomposition in a message-oriented environment.

Mitigation: recognize this paradigm shift, and invest in your people (architects and developers) to help them make the transition. Get them training and mentoring.

 

Recognize the infrastructure challenges

Creating an efficient operations environment for services is something that will be new to many IT folks. Your SLA's will drive requirements such as high availability and response times. Policy-driven SLAs and policy-driven security add a layer of indirection that result in a more change-tolerant and resilient infrastructure.

Mitigation: Plan for the near-term future, but look to the long-term future to ensure the environment you are putting in place will be able to scale to meet future demands. Your tooling may be great when you have 6 services in production, but how will it be when you have 1,000?

 

Think beyond the technologies and into the processes

Today's fast-paced world and rapidly changing business requirements of course lead to rapidly changing needs from the applications we create. Back when applications were monolithic silos, change came slowly, and evolution and deployments occurred at the monolith level. In a services-oriented world where there are numerous services acting as cogs in the machine, the new unit of deployment is at the service or service-composition level. Change is assured, and solution subset deployments become normal. "cowboy deployments" although almost always bad, in this type of environment become disastrous.

Mitigation: recognize Application Lifecycle Management as a key part of your process, and invest in it. Put procedures in place to assure repeatable, reliable builds. Have a testing strategy. Have a versionning strategy. Code migration should not be something people are afraid of.

Plan for disasters

An interesting side effect in the reuse of code assets by implementing intelligent stratification is that you inevitably build dependencies. For example, if all your services use an exception management service to log and respond to exceptions, what happens if that service is unavailable? The impact of a single service outage could ripple through your entire environment.

Mitigation: Think carefully about the dependencies, and architect and build robust services that incorporate mechanisms to respond to outages.

 

Benefiting from a successful SOA strategy is possible, but it's something you (as an architect) need to think about. As technologists, we often naturally gravitate towards and get caught up in the technologies. However, there are many touch-points beyond just the technology decisions, what I've listed above are just some of the things I've observed out in the real world, out where people are actually implementing SOA-based initiatives. I'm hoping by posting this that I'll help ease the path for some of you....

 

Technorati Tags: ,,,

Tuesday, May 13, 2008 #

I came across an unusual requirement earlier this year while at a leading golfing industry company: We needed to retrieve current tournament standings from the PGA Web site, pulling scores and statistics from them by FTP every 2 minutes while the tournaments were in progress. Ultimately, the standings would trickle through to a data-driven Web site. The interesting part here was the pickup location, there was a predefined FTP folder structure, with a separate folder for each tournament (the files were always the same name, but the locations would vary). We could have potentially multiple receive locations that become active during a given week, but only for a finite period of time, yet all pointing at different FTP locations. BizTalk has dynamic send ports of course, but no dynamic receive locations. How to handle this? Clearly, although manually managing all this was possible, it really wasn't a viable solution given the amount of on-going effort it would require.

I found out that there was an overall tournament schedule file that was posted on a weekly basis, and that's how I solved it. The solution basically:

  • retrieves a schedule file (on a weekly basis) and publishes the schedule to the message box
  • a CreateReveiveLocations orchestration subscribes to schedule files, and picks it up
  • the orchestration maps the schedule to a structure that is easier to work with (we map inside the orchestration as we thought we may have other interesting things we could do with the schedule file in a future release)
  • the orchestration removes any previously-created dynamic receive locations (based on a standard naming pattern, and they all belong to a known receive port)
  • the orchestration calls a helper class that creates all the FTP receive locations. We know when the tournament starts, so:
    • we only create receive locations for current and future tournaments
    • we set the start date for the tournament to be the day of the tournament, so no polling will happen before the tournament starts

 

How cool is that? It's very cool to drop an XML document into BizTalk, and watch it create a bunch (and there are a LOT) of receive locations that it will subsequently use to drive a process. I'm all in favor of self-configuring environments!

 

We were in POC mode, and this took me a couple of days to get it all done (using good naming conventions, etc of course), and get it all working end-to-end. I'm sure I could have come up with a pretty good way to do this just in code, but it would have taken a LOT longer that 2 days.

 

Here's what the orchestration looks like:

image 

 

There are two calls to a helper class above. The first removes any receive locations that were previously created (I use a naming convention and a unique name suffix, so I know which ones are dynamic). The second call passes in all the information required to create the new batch of receive locations.

 

The schedule file contained a tournament date. Because of that, we can skip creating FTP receives for tournaments that have ended.

image

 

Drilling into the CreateFtpReceiveLocation code, this snippet :

  • first gets a reference to the receive port (which has a well know name)
  • creates a new receive location
  • sets the transport type to FTP

 

image

Note that if this were not a POC, I would have cached the ReceiveHandler and done other optimizations, however, even without optimizations, this creates hundreds of receive locations in seconds.

This last snippet:

  • assigns the pipeline to use for this receive location
  • set receive locations
  • saves the changes to the BizTalk management database

image

 

There you have it. With a trivial amount of code, I eliminated what would have been significant ongoing manual intervention in the process. I fully automated what would have been a very tedious, and error-prone, task. The client was thrilled as this was a very elegant solution to an ongoing problem.

For anyone after the code rather that pretty pictures of it :), please see below.

 

 

-----------------------------

public static class LocationManagement
{
    const string CONNECTION_STRING = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BizTalkMgmtDb;Server=(local)";

    public static void CreateFtpReceiveLocations(string receivePortName, XmlDocument receiveLocations, string prefix, string server, string addressTemplate, string uid, string pwd)
    {
        XmlNodeList locs = receiveLocations.SelectNodes("//ReceiveLocation");
        DateTime cutoffDate = System.DateTime.Now.Add(new TimeSpan(-7,0,0,0));
        foreach (XmlNode loc in locs)
        {
            // if start date is more than 7 days ago, we don't need this one any more
            if (DateTime.Parse(loc.Attributes["StartDate"].Value) > cutoffDate)
            {
                CreateFtpReceiveLocation(receivePortName, prefix + loc.Attributes["Address"].Value, string.Format(addressTemplate, loc.Attributes["Address"].Value), server, uid, pwd, DateTime.Parse(loc.Attributes["StartDate"].Value));
            }
        }

    }

    public static bool CreateFtpReceiveLocation(string receivePortName, string receiveLocationName, string address, string server, string uid, string pwd, DateTime startDate)
    {
        try
        {
            BtsCatalogExplorer root = new BtsCatalogExplorer();
            root.ConnectionString = CONNECTION_STRING;

            //GetReceive Port
            ReceivePort receivePort = root.ReceivePorts[receivePortName];

            //Create a new receive location and add it to the receive port
            ReceiveLocation myreceiveLocation = receivePort.AddNewReceiveLocation(); ;
            myreceiveLocation.Address = address;
            myreceiveLocation.Name = receiveLocationName;

            //Receive Handler
            foreach (ReceiveHandler handler in root.ReceiveHandlers)
            {
                if (handler.TransportType.Name == "FTP")
                {
                    myreceiveLocation.ReceiveHandler = handler;
                    break;
                }
            }

            //Associate a transport protocol and URI with the receive location.
            ProtocolType protocol = root.ProtocolTypes["FTP"];
            myreceiveLocation.TransportType = protocol;

            Pipeline pipeline = root.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
            myreceiveLocation.ReceivePipeline = pipeline;
            myreceiveLocation.StartDate = startDate;
            myreceiveLocation.StartDateEnabled = true;

            string ReceiveLocationTransportTypeData = "<CustomProps><AdapterConfig vt=\"8\">&lt;Config xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"&gt;&lt;uri&gt;ftp://BTS2006Dev:21/ClientName.PGA/*.xml&lt;/uri&gt;&lt;serverAddress&gt;BTS2006Dev&lt;/serverAddress&gt;&lt;serverPort&gt;21&lt;/serverPort&gt;&lt;userName&gt;administrator&lt;/userName&gt;&lt;password&gt;******&lt;/password&gt;&lt;accountName /&gt;&lt;fileMask&gt;*.xml&lt;/fileMask&gt;&lt;targetFolder&gt;ClientName.PGA&lt;/targetFolder&gt;&lt;representationType&gt;binary&lt;/representationType&gt;&lt;maximumBatchSize&gt;0&lt;/maximumBatchSize&gt;&lt;maximumNumberOfFiles&gt;0&lt;/maximumNumberOfFiles&gt;&lt;passiveMode&gt;False&lt;/passiveMode&gt;&lt;firewallType&gt;NoFirewall&lt;/firewallType&gt;&lt;firewallPort&gt;21&lt;/firewallPort&gt;&lt;pollingUnitOfMeasure&gt;Seconds&lt;/pollingUnitOfMeasure&gt;&lt;pollingInterval&gt;60&lt;/pollingInterval&gt;&lt;errorThreshold&gt;10&lt;/errorThreshold&gt;&lt;maxFileSize&gt;100&lt;/maxFileSize&gt;&lt;/Config&gt;</AdapterConfig></CustomProps>";

            XmlDocument docTransportTypeData = new XmlDocument();
            docTransportTypeData.LoadXml(System.Web.HttpUtility.HtmlDecode(ReceiveLocationTransportTypeData));

            docTransportTypeData.SelectSingleNode("//userName").InnerText = uid;
            docTransportTypeData.SelectSingleNode("//password").InnerText = pwd;
            docTransportTypeData.SelectSingleNode("//uri").InnerText = address;
            docTransportTypeData.SelectSingleNode("//serverAddress").InnerText = server;

            myreceiveLocation.TransportTypeData = ReceiveLocationTransportTypeData;

            //Enable the receive location.
            myreceiveLocation.Enable = true;

            //Save changes
            root.SaveChanges();

            return true;
        }
        catch (Exception ex)
        {
            throw new Exception("Error creating receive location", ex);
        }
    }


Wednesday, May 07, 2008 #

Last year I went to Jordan to work with Microsoft on an ESB proof-of-concept for the Jordanian government. The press release below explains how it ended :)

I am really excited about this project. We have a stellar team forming around this project, and some very cool work ahead. .

 

Keep scrolling down, there are some good photos further down!

 

 

Here's a picture from the contract signing:

Here's a picture of Bill Gates and His Excellency the minister at the official contract signing kicking off this project (which happened at an e-government symposium in the UAE in January).

ESP2

 

Here's our official press release:

 

clip_image001

NEUDESIC TO ASSIST IN MICROSOFT ESB IMPLEMENTATION FOR JORDANIAN GOVERNMENT

Enterprise Service Bus To Strengthen Jordanian Government’s e-Government Offerings

IRVINE, CALIF. – APRIL 25, 2008 – Neudesic, a leading Microsoft National Systems Integrator and Gold Certified Partner, recently ranked # 197 on the Inc. 500 List, has announced that it has been selected by Microsoft to assist with the implementation of an Enterprise Service Bus (ESB) for the Jordanian government.

“Microsoft’s selection of Neudesic for this strategically important project is a further testament of Neudesic’s leadership role in the services-oriented architecture and enterprise service bus space,” said Neudesic’s VP of Technology Tim Marshall.

The project will include the design, implementation and rollout of an ESB that will be used across all government ministries, and with external trading partners and agencies, to further extend, automate and streamline the range of government services that are available as e-government offerings to citizens and partners.

“We are looking forward to working with Microsoft and the Jordanian government to rollout an ESB that will serve as foundational infrastructure and meet their e-government communications needs for years to come,” said Brian Loesgen, Neudesic’s BizTalk architect for the project.  “The government has recognized that a contemporary services-oriented infrastructure would provide them with the most agile and flexible messaging and integration platform, and that the Microsoft technology stack was perfectly suited to their needs.”

Jordan has historically been at the vanguard of e-government services, offering efficient processes with completion time unheard of in many countries, such as passport issuance within 2 days and drivers’ licenses in 2 hours.  Their adoption of ESB messaging will strengthen this position.

“We look forward to working with Neudesic on this project.  With their proven track record of success and depth of experience with these technologies, they will ensure that the results of this project will meet, or exceed, the government’s expectations,” said Khaled Chebat, Microsoft’s Services Lead for the Eastern Mediterranean.

 

And lastly...

I work hard, and I play hard. I'm not the sort to sit in a hotel room wishing everything was just like at home. The Jordanian people are super-friendly, generous and hospitable (well, except for when they get behind a steering wheel :)). I had lots of fun last year exploring the country, and I have more great adventures planned.

Here's a photo of me from a couple of weeks ago, at about 25 meters depth in the Red Sea, in front of the Cedar Pride wreck in Aqaba Jordan. It was deliberately sunk approx 25 years ago, and was far more interesting than other wrecks I've done. I took a bus down (about 4 hours) from Amman, spent the weekend in Aqaba, then took a taxi back following the Dead Sea route. I wanted to go that route primarily because the desert route would have been a steep altitude gain right at the start, not a good idea after a morning of diving, and as an added bonus, got the spectacular Dead Sea coast.

Much better way to spend my off-hours than hanging around the hotel watching CNN!

Brian in front of wreck

Technorati Tags: ,,,

Saturday, May 03, 2008 #

I'll be doing a webcast next Friday on Microsoft's ESB Guidance. It will be recorded if you can't make it live. This will be the first in a series, but I am not going to commit to future dates yet as I have a ton of things going on and am looking at 80%+ travel for an extended period of time. I will however be doing more webcasts. Future topics will be more advanced, include themes such as a deeper drilldown into SOA governance, extending the ESB Guidance, etc.

 

Details for this first webcast are:

 

Title

Introduction to Microsoft’s ESB Guidance

Description

The Microsoft ESB Guidance uses Microsoft BizTalk Server 2006 R2 to support a loosely-coupled messaging architecture, and extends the functionality of BizTalk Server to provide a range of new capabilities focused on building robust, connected, service-oriented applications that incorporate itinerary-based service invocation for lightweight service composition, dynamic resolution of endpoints and maps, Web service and WS-* integration, fault management and reporting, and integration with third-party SOA governance solutions.

This webcast will be an introduction to Microsoft’s ESB Guidance. The goal of this session is to explore the architecture of Microsoft’s ESB Guidance 1.0, and explain how it can be applied to create ESB-based business solutions. We will examine the core components of the ESB Guidance, as well as the built-in extensibility points.

Agenda

· Business drivers behind an ESB (Why do I care? Why do I want to do this?)

· Architectural overview (What’s in the box? How does it work?)

· Demos

Meeting Details

Friday May 9, 2008, 1:00-2:15pm Pacific GMT -8 (75 minutes)

Call for audio: 866-500-6738 or +1-203-480-8000, passcode: 221223#

Live Meeting: https://www.livemeeting.com/cc/microsoft/join?id=BTSBAG&role=attend&pw=35DKTQ

 

Technorati Tags: ,,,

Friday, May 02, 2008 #

I'm late blogging about this (and others!) as I've been traveling (more on what I've been doing in a future post). Earlier this week, Neuron-ESB 2.0 shipped.

Neuron-ESB 2.0 is the culmination of a lot of hard work by a lot of smart people. It is an ESB product that is built from the ground up on WCF. The fact that this exists at all is a true testament to the brain trust at Neudesic, and shows just how deeply SOA/ESB thinking runs throughout the entire company. It's an honor and a pleasure to work alongside these folks.

 

Best place to go if you want more information is http://NeuronEsb.com. My colleague David Pallman ("father" of Neuron-ESB, ex-Indigo team member, author, and my co-author on a future ESB book), posted a great architectural overview. He's also did another blog post that talks about the management experience. This is likely the first two posts of many (now that he has a little time to breath :).

 

To ward off the inevitable question about "does this replace BizTalk?", the answer is "no, not at all, in fact they work really well together". I intend to elaborate on this point in a future post as I keep encountering (understandable) confusion on this question.

 

So, David, Marty, Curt, Brandon and everyone else that has been involved throughout Neuron-ESB's development cycle: congratulations on a job well done!

 

Technorati Tags: ,,,

 

---------------------------------------------------------------------------------

 

 

NEUDESIC RELEASES NEURON-ESB 2.0

New version of Enterprise Service Bus software extends the Microsoft .NET Platform

IRVINE, CALIF. – April 29, 2008 - Neudesic, a leading provider of business solutions that leverage the capabilities of the Microsoft product line, announced today the release of version 2.0 of Neuron-ESB. Neuron-ESB is an Enterprise Service Bus that extends the Microsoft Platform by providing real-time messaging, integration and web service management. Neuron-ESB accelerates SOA adoption by helping companies successfully implement real-time integration across their enterprise, allowing timely response to changing events within their business.

Neuron-ESB is built on the Microsoft Windows Communication Framework (WCF) technology to provide real-time reliable messaging options for companies adopting SOA. Neuron-ESB manages all communication over the bus by sending messages over “Topics” using a publish-subscribe pattern and supports federated, geographic deployments. Neuron-ESB helps companies administer and automate complex tasks and is proven to significantly reduce the infrastructure, development, training and long term support costs for businesses developing SOA solutions.

“Neuron-ESB provides the messaging backbone for all of our critical applications,” said Jeffrey Sullivan, Chief Information Officer of ThinkCash. “Neuron-ESB allowed us to leverage our developers much more effectively while providing us the ability to go to market quickly with new solutions. We were able to shift our service development from the architect role to the more ubiquitous developer role while, decreasing our deployment time of new services by 50%. We started with just 1 developer who received 4 days of Neuron-ESB training. Within 6 months and no additional training, we had a 15X increase in the number of our internal developers who were able to use Neuron-ESB.”

Neuron-ESB 2.0 delivers a unique set of capabilities that extend and combine key strategic Microsoft technologies such as Microsoft BizTalk Server 2006 R2 & RFID, Microsoft Office SharePoint Server 3.0, Microsoft SQL Server, Microsoft Dynamics, Microsoft Office, .NET 3.0/3.5, Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), WCF Line of Business Adapters and MSMQ. The synergy between Neuron-ESB and these products empower companies to develop more robust and business-aware applications with far less effort and complexity.

“Neuron-ESB 2.0 represents a significant evolution for the Microsoft Platform while addressing the Enterprise Service Bus needs of every customer running Microsoft Windows.  Our technology allows businesses to effectively leverage their Microsoft investments to deliver real-time solutions,” stated Marty Wasznicky, Vice President of Product Development. “Our product provides a new level of flexibility and ease of use that will help companies increase their productivity while reducing their development and operational costs. Moreover we’ve formed a strategic partnership with SOA Software and achieved certification as a Governed Service Platform through the Open Governance Initiative. Our customers can be confident that Neuron-ESB will enhance the fidelity of their Governance initiatives.”

“The Open Governance Initiative is rapidly gaining momentum amongst platform vendors, Governance solution providers, and end-user customers,” said Frank Martinez, Executive Vice President of SOA Software.  “The addition of Neuron-ESB, as a Microsoft .NET and WCF based ESB to the list of Governed Service Platforms highlights the importance of this certification for platform vendors.”


Thursday, April 24, 2008 #

By now many of you will have heard the announcement for BizTalk Server 2006 R3. You can read about it on Steve Martin's blog.

 

In addition to being a "synching" release that enables compatibility with SQL 2008 and VS.NET 2008, the high points (from the post) are:

  • New web service registry capabilities with support for UDDI (Universal Description Discovery and Integration) version 3.0
  • Enhanced service enablement of applications (through new and enhanced adapters for LOB applications, databases, and legacy/host systems)
  • Enhanced service enablement of “edge” devices through BizTalk RFID Mobile
  • Enhanced interoperability and connectivity support for B2B protocols (like SWIFT, EDI, etc)
  • SOA patterns and best practices guidance to assist our customer’s implementations

I think the most interesting part is the UDDI bit. This marks a migration of UDDI from the base OS (in Win2K3) into BizTalk Server. When I first saw that, I was surprised, but, thinking about it, it really makes a lot of sense. The migration of registry functionality is actually a steeping stone step, moving us closer to what Oslo will bring, where the process server is tightly tied to the registry (now) or repository (later, in Oslo).

 

This is also great news and a really good move for current BizTalk devs, as hopefully it will help move registry access more into the mainstream. And once you drink the registry koolaid, you're well on your way to ESB nirvana :)

 

Technorati Tags: ,,,,

Tuesday, April 15, 2008 #

We've just been told we are allowed to say where we are, so, as my colleague Sam Gentile has done,  I will :)

 

I'm at the MVP Summit in Redmond, sitting in an Oslo software design review (I first blogged about Oslo here),  surrounded by a bunch of really smart people.

 

We've been told we're allowed to say that we're excited, so..... I am excited by what I see. BizTalkers, it turns out we've been going down the right path for years.

 

Technorati Tags: ,,

Saturday, April 05, 2008 #

Microsoft has just released a new version(1.1) of the BizTalk Best Practices Analyzer (BPA). For those of you not familiar with it, it's an awesome tool that looks at your infrastructure, compares it to rules gathered from a variety of experts, and issues a report with recommendations. It does not actually change anything, it just scans the environment and spots opportunities for improvement, provides an explanation and a link to further documentation for anything it reports on. To give you an idea of scope-of-change, version 1.0 had 77 rules, version 1.1 has 220. This is an EXTREMELY important tool. BizTalk solutions typically span a wide swath of the Microsoft technology stack, and mis-configurations outside of BizTalk (eg: IIS, file system, database, etc) can have a big impact on the performance of a BizTalk solution. The BPA looks across the stack, and identifies potential problem areas.

Download it here:

http://www.microsoft.com/downloads/details.aspx?FamilyId=DDA047E3-408E-48BA-83F9-F397226CD6D4&displaylang=en

 

Along the same lines, I blogged recently about the new BizTalk operations guide which is an invaluable reference source. If you have not looked at it yet, you should do so, it's well worth your time. See that post here: http://geekswithblogs.net/bloesgen/archive/2008/02/21/119857.aspx.

 

The following are some screen shots from the Best Practices Analyzer at work:

 

Doing a scan:

 

image

 

List report:

image

Drilling into an issue and asking for an explanation (this is in one of my VMs, no cause for alarm :)):

image

 


Monday, March 10, 2008 #

Some quick notes:

 

  • Tomorrow (Mar 11 2008) my friend and all-round rock star Michele Leroux-Bustamante will be speaking at the Connected Systems SIG of the San Diego .NET User Group. We will meet at the Microsoft La Jolla office, 6:00 for pizza and networking, 6:30 for the meeting.
  • Wednesday Chris Romp and I take our critically-acclaimed (we're critical, and we acclaim it :)) BizTalk Development Best Practices show to the Orange County Connected Systems User Group meeting (Microsoft Technology Center, 3 Park Plaza, Suite 1600, Irvine). I've done a bazillion presentations (and perhaps even more!) during the course of my career, and this is perhaps one of the most fun to deliver. It always turns into a highly-interactive event, and everyone, including us, learns something. RSVP to mikev@mvasoftware.com. Pizza and networking at 6:30, meeting starts at 7:00.
  • I will be presenting at TechEd again this year, this time a Technical Drilldown into Microsoft's ESB Guidance, in the SOA and Business Process track. I'm really looking forward to it, TechEd is always such a great event.
  • Lastly, I am honored to be participating on a curriculum advisory board for California State University, for a new SOA program they are developing. This is going to be fun I think, and it's great to be able to help shape a far-reaching course like this. I did a similar thing for University of California San Diego a couple of years ago. If anyone has any thoughts on this, please drop me a note.