Martin Spedding's Blog

Adventures in a disconnected world

November 2003 - Posts

Post PDC, would I go again ???

Now that I have been back from the PDC for nearly a month I have been examining whether it was worth going. I should explain that I live in Swizerland which means it is a long journey and as I believe that you have to invest in your career I paid for the trip myself. I also combined the conference with a trip to San Francisco where I  took a helicopter trip over and under the Golden Gate bridge.

It was great to meet lots of people, some of whom I only knew through either a blog, IM or email contact. Also it was wonderful to get to meet many of the Microsoft developers and to get answers I had about the different technologies. I attended all the sessions and learnt a lot of interesting information, though sometimes the most interesting stuff resulted from dinner conversatons or bumping into people in corridors.

The reason I attend the PDCs is to network and to get ahead of the curve and to keep my skills up to date. However, it now seems that as soon as a conference is over all the slides and audio commentary are put online.So now, for free, everyone gets the same information, in other words it is a level playing field. Not living or working in the states means that most of the networking I did was getting to know  who are the right people to contact when you need to get questions answered rather than direct business contacts. Naturally, there are a whole set of people who just fun to get to know in person.

 With the number of blogs now being written by Microsoft employees means that barriers to knowing the right person to ask to get the answer to an important question are significantly less than in the past.

If someone else was paying I would of course go again but maybe 2003 was my last PDC. All the information presented is just being distributed too widely and too quickly for the price to be justified.

Creating an RSS Feed for email

I have very busy recently so I have had no time to blog. 

At work I have no way to get my private email as the corporate firewall blocks IMAP4 and POP3 connections which is a pain. I am using Desktop Sidebar in order to aggregate RSS feeds and so I thought why not create an RSS feed for my private email account.  I was amazed how simple it was.

At work I am not so interested in the content of my private email more to see if I have received a mail. Which means that I am only interested in the subject and the sender. Naturally for other people that might not be the case but the code would be simple to extend to deal with that case.

First I downloaded Lumisoft's excellent and free  SMTP, POP3 and IMAP4 libary and RSS.NET from source forge.

All I needed to do was create an ASP.NET project and write the  following lines of code :

using LumiSoft.Net.IMAP.Client;

using Rss;

.....

  LumiSoft.Net.IMAP.Client.IMAP_Client myClient = new IMAP_Client();
  
   myClient.Connect("mailserver",143);
   myClient.Authenticate("username","password");
   myClient.SelectFolder("Inbox");

   RssChannel channel = new RssChannel();
   int noMessages = myClient.MessagesCount;

// this will return all messages normally I return  the last 20

   IMAP_FetchItem[] fetchItems = myClient.FetchMessages(noMessages,-1,false,true,false);   
 
   for(int i=fetchItems.Length-1;i>-1 ;i--)
   {
    IMAP_FetchItem fetchItem = fetchItems[i];
      
    LumiSoft.Net.Mime.MimeParser p = new LumiSoft.Net.Mime.MimeParser(fetchItem.Data);
    string str_to = ""; foreach(string t in p.To){str_to += t.Replace("<","").Replace(">","") + ";\n";}

    RssItem item = new RssItem();
  
    item.Title = p.Subject;
    item.Description = p.From;
    item.PubDate = p.MessageDate;
 
    channel.Items.Add(item);
   } 
   
   myClient.Disconnect();

   channel.Title = "Private Email";
   channel.Description = "Email";
   channel.LastBuildDate = channel.Items.LatestPubDate();
   channel.Link=new Uri("
http://asp.net page returning feed");

   RssFeed feed = new RssFeed();
   feed.Channels.Add(channel);
   Response.ContentType = "text/xml";
   feed.Write(Response.OutputStream);
   Response.End();

Now that I have an rss feed for my email I can use desktop sidebar to aggregate them. Of course it will probably make sense for me to create a secure rss feed. I assume using SSL will make the most sense and I see some aggregators support such feeds.

The great thing is that using Hand/RSS for Palm OS® v.1.08  I can now aggregate rss feeds on my Treo 600 phone.

Posted: Nov 21 2003, 11:35 PM by MartinSp | with no comments
Filed under:
Service Orientated Architecture

I attended the PDC and listened to both the Indigo sessions and the Panel discussion at the end of the Architecture Symposium.  I found it very interesting that the Panel had some difficulty in defining exactly what they meant be Service Orientated Architecture and why a new approach was required to complement Object Orientated design and analysis. The definition of a service seemed to a component that communicated with other components using messages.

 

Since I have been involved in outsourcing projects I thought I would look at it from another approach. When you offer to be a “service provider” for a company you agree to provide to the customer a set of “services”. For each of the services you agree a “Service Level Agreement” (SLA). The SLA defines the contract for the service: who provides the service, the guaranteed availability of the service, the escalation process and the penalties if the service level is not met. So here we have a defined service provider, a clearly defined service and a contract. But what do we mean by a service?

 

A good example of a service is email. The service level agreement would define that email is mission critical, must be available 99% of working year and that old emails must be archived for 5 years to meet regulatory requirements. But the email service consists of different components: e.g. the email server (Microsoft Exchange) software, the hardware where the email server runs and the process by which the email server is managed. In addition subsidiary services are required such as the backup, restore and disaster recovery services. These are often grouped together under the title business continuity.

 

It is clear that a service according to this definition has a defined provider and consists of an application, hardware and a process and that is regulated through a contract. This is where the service-orientated architecture differs from the object-orientated approach as the application or the set of applications are only one part of the defined service. Also there are service dependencies and those services may not be under be directly under your controlled but are regulated according to service level agreements.

 

However, experience has shown it is very difficult to write clear and unambiguous service level agreements.

More Posts