Showing posts with label Microsoft PDC 2008. Show all posts
Showing posts with label Microsoft PDC 2008. Show all posts

Sunday, November 2, 2008

PDC Day 4 - More time spent in the Cloud

On the 4th day of PDC I spent more time in the Cloud learning about some architectural scenarios that the Cloud is capable of supporting.

As part of the PDC Symposium series, I attended Gianpaolo Carraro's session called "Head in the Cloud, Feet on the Ground". The objective of this session was to further investigate the Architectural challenges and opportunities in the cloud.

I found this session to be really helpful as so much of the other sessions has been about the technical bits that makes the Cloud technology "cool". This session focused on decisions that an Architect or even CIO may face when thinking about what applications belong in the cloud and which applications may be better hosted on premise. On premise meaning locally in your organization.

He also attacked this subject from two perspectives:
  1. Corporate IT perspective
  2. ISV Perspective

Since I live in Corporate IT I will spend more time in this area.

On Premise
Applications that are hosted locally tend to have more control than those in the cloud. Think of this more in terms of a custom application versus an application that runs in the cloud like Salesforce. If you have a custom built application, then your organization controls the feature set and have more agility when making a change as less people are involved. A challenge with this approach is that you have very little economy of scale as only your organization can extract value out of this application.

Cloud Applications
Conversely, an application that runs in the cloud has an opportunity for great economy of scale. Since many customers may be paying for this application, the savings are returned to the customers as collectively they are paying for the software to be developed. The challenge with this approach is that a company may need to alter an internal business process to align with the way that the application has been designed.

Conclusion
The end result came down to determine which applications are core to your business and provide a competitive advantage. These are the types of applications that are ideal candidates to be built and hosted internally. The commodity applications like Mail Services or Timesheet applications that are required to run your business, but not necessarily make your business more competitive are candidates for cloud based applications.

Best of both worlds
What I find extremely compelling is the idea of building an on premise service, yet leverage the capabilities of the cloud to expose this service to the world. This alleviates you from being overwhelmed with challenges related to Firewalls, NATs and security. I find this of even of greater value when you introduce several B2B partner scenarios. You don't need to be concerned with each of your partner's connectivity requirements. You let the .Net Service bus deal with those complexities.

Co-location
Also worth mentioning is a middle ground called Co-location or Managed Servers. This type of scenario may be ideal for you to build a custom application, but have it hosted by a 3rd party where you are not responsible for the on-going maintenance of the server that is hosting your application. For instance you may be a small or up and coming company that just does not want to make a large up front investment in infrastructure, but want to build an application and have it hosted in an external environment. This allows you to reduce the amount of up-front Capital Expenditures.

Looking Ahead
While some of this discussion is nothing earth shattering or ground breaking, I am curious to see how monitoring will evolve with these cloud based scenarios. For instance, currently with our on-premise applications we run Microsoft Operations Manager (MOM) and System Center Operations Manager (SCOM) to provide us with some visibility into the health of our applications. If in the future we decide that we want to host a WF workflow in the cloud, what type of tooling will be available to inform us of any issues that may be occurring? This is a scenario that Microsoft is definitely aware of so I will be keeping an eye open on what type of tooling will be available.

Thursday, October 30, 2008

PDC Day 2 - Windows 7



The big news on Day 2 at PDC was the first public sneak peak of Windows 7. Overall, I was pretty impressed with what I saw.

The first thing that stuck out at me is that Microsoft has dedicated a lot of effort to improve the usability of the operating system. Below is a list of features that I feel will greatly improve the usability of the Operating System.

Jump Lists
A feature called a "jump lists" is viewable in your task bar area. You know when you have 8 windows of IE or Word open and they stack up on top of each other? Well a jump list will provide some better visibility into what each of those windows contains.

Libraries
Do you have several folders where you store most of your content? For instance you may have some files you keep on a network drive, external drive or local drive. Do you hate having to search each of them independently(or having to search the entire drive)? The concept of the Library is to have the ability to aggregate your content. So if you need to do a search within your library, it will automatically search each of your work spaces that are configured in your library.

Homegroup
Homegroup is designed to make networking, and more specifically home networking, easier. The idea is that when you introduce a new computer to your home network, it shouldn't be difficult. The feature is also "smart" enough to seamlessly allow you to connect your work laptop to the network and take advantage of all of the file, network and printing capabilities without exposing sensitive data on your laptop to the remaining devices in your home network.

Pushing Content to a device
Are you in your home office but want to play some content on another machine? This feature will allow you to "Play media "xyz" on machine abc".

System Tray Notifications
Annoyed by those pop-ups that appear in you system tray? A new management tool exists that allows you more freedom to display the notifications that you want to display and suppress the ones that you do not want displayed.

Themes
Improved abilities to customize your Windows Themes. Also the ability to import/export themes to allow for sharing.

External Memory devices
Windows 7 supports Memory Stick - bit locker protection out of the box to ensure that if your memory stick gets into the hands of someone else that your data is encrypted.

VHD Support
New capabilities exist that allow you to create a VHD from Disk manager and also the ability to boot a Windows 7 vhd(directly) while maintaining state between reboots.

Dual Monitor Support
Ever RDP (remote desktop) into a PC/Server that has dual monitors? New capabilities exist that allow you to RDP into those machines and actually use both monitors.

User Account Control (UAC)
Tired of the "nag" messages that Vista gives you when you actually try to do something? A new UAC Slide control easily allows you to set the level of "nag" (or security) that you want applied.

Increased Touch Support
More monitor touch support is provided "out of the box" including the ability to use flicks inside of Internet Explorer. (Monitor must actually have touch capabilities).

Customized Shutdown
Have users that "accidentally" shut down machines when they should be logging off? New shutdown capabilities exist that allow you to customize the shutdown menu.

Other Features
Been waiting for the update to Paint or Wordpad? Wait no longer, as some improvements have been included in this release including Open XML support in Wordpad.

Windows 7 Principles
The goal of the Windows 7 team is to deliver an OS that:

  • Has a decreased Memory (RAM) footprint
  • Reduces the amount of Disk IO
  • Does not require excessive Battery power (think laptops)

while

  • Improving Speed(Faster boot/Device readiness)
  • Responsiveness (start menu, task bar)
  • Scale (Windows 7 supports up to 256 processors)
This release looks extremely promising, however don't expect it any time soon. The message that was given was "it will be ready when it is ready". This isn't such a bad thing as Microsoft is trying to deliver a solid product.

I encourage you to take a further look by viewing the actual web cast here.

PDC Day 3

The highlights for me on Day 3 include the .NET Services: Connectivity, Messaging, Events, and Discovery with the Service Bus and Dublin": Hosting and Managing Workflows and Services in Windows Application Server" sessions.

This blog post will provide a summary of both of these sessions and any additional 'tid-bits' that stuck out for me.

.NET Services: Connectivity, Messaging, Events, and Discovery with the Service Bus
Clemons Vasters presented the .Net Services session and did he ever do a good job. Not only is he extremely technically gifted, but he also has good presentation skills(this reminds me that I need to fill out a review for this session).

What are .Net Services
.Net Services is the successor of what was formerly called "BizTalk Services" and is one of the core components of the Azure platform. I would describe .Net Services as providing the abilities to host .Net Applications in the cloud (off-premise) and provide the ability to traverse firewalls by using Relay Bindings in messaging scenarios. For instance, if you have an on premise service that you would like to expose to the world but don't want to deal with some of the challenges that firewalls and security bring.

Dealing with firewalls is becoming a bigger and greater challenge as they are extremely pervasive. Also the use of NAT (Network Address Translation) devices makes it difficult to connect with publicly exposed services. This is the result of the IPV4 address supply being pretty much exhausted.

Service Bus Capabilities
.Net Services provide Service Bus capabilities in the cloud. What this essentially means is that you are able to are able to place a message on the wire and let the Service Bus look after directing that message to the appropriate subscriber. Subscriptions are handled by the Service Bus Naming System and are URI based.

Message Confidentiality
Transport security, in the form of SSL, is used for all connections. Microsoft has no need to look at the payload of your messages and claims that they do not. They welcome, and to an extent, encourage you to use Message level encryption if you have concerns as to whether or not your data is safe. A question that I repeatedly heard was, what type of audience do you expect to use these services as certain agencies would "never" trust Microsoft with their data. For instance, could the level of privacy that Microsoft is offering be sufficient enough to meet the criteria of Governments or Health Care organizations? Since .Net Services is still in CTP mode, I never did hear a real definitive answer to the question, but it is definitely something that is on Microsoft's radar.

Bindings
A very cool demo and discussion about the NetTCPRelayBindingHybrid was included in this presentation. The goal of this binding is to try to establish a direct peer to peer connection between the service consumer and service provider. You may be asking: how is this accomplished? At a (very) high level, A Relay connection is established that includes some NAT Probing. Microsoft will use the data that is obtained during this NAT Probing to form an educated guess on what NAT settings need to be used in order to establish a direct connection between the parties. If a direct connection can be established then the message payload will be sent directly to the destination system. If a direct connection cannot be established, then the Relay connection will be used to send data to the destination system via the .Net Service bus. Since .Net Services will use a "Pay as you go approach" the data, that is sent over the Relay connection, would be subject to the "cost" model.


Dublin": Hosting and Managing Workflows and Services in Windows Application Server"

This was my first real good look at the technology since the SDR sessions that were held at the MVP Global Summit in April. While I cannot discuss what I saw in April, I am able to say that the Dublin team has been doing some good work and has made progress.

When will Dublin be available
No public date was given other than "shortly" after Visual Studio 10 is released. This means we are probably looking at 1.5 - 2 years from now.

It just works
A slogan that is being used by the Connected Systems team. The idea behind this slogan is that in the past developers have had to either implement some features themselves or tweak their WCF/WF application in order to get it to work the way they want it to. In Dublin, more tooling and visibility into your WCF/WF applications is provided. The goal is that you design/build/test your application and after that ..."it just works".

Feature list (non-exhaustive)

  • Management Capabilities through IIS Manager snap in tool
  • Management APIs in the form of PowerShell command-lets
  • Hosting (Durable Time Service/Discovery Service)
  • Persistence (Scale-out and Reliability)
  • Monitoring(WCF and WF Tracking)
  • Messaging (Forwarding Service)
  • System Center Integration
  • Modeling Deployment via Quadrant

Management
The Management experience had some of the "look and feel" that you would find in BizTalk. The difference being is that there is not a new or separate tool. Additional functionality is "plugged" into IIS Manager. The rationale behind this decision was that Microsoft did not want to introduce a new tool that would also introduce another learning curve. By using IIS Manager, they could leverage an existing tool which should allow people to get up to speed quicker since they may already be familiar with the tool.

Model Deployment
They showed a cool demo where they were able to Model a workflow in the new Quadrant tool. They were then able to deploy the Model to the runtime. This demonstrated the vast integration between the technologies and perhaps gave us a real world glimpse into how we will develop and deploy software in the future.

Looking Ahead
There were a few things that I believe require some additional investigation. I do realize that Dublin is currently a CTP so it may just be a matter of having more time to include some of these features.

  • More details in IIS Manager surrounding instances. Having just a dialog box pop up indicating the amount of successful or failed instances is not quite enough information.
  • No Workflow Debug/Replay capabilities. What I am looking for here is a similar experience to the Orchestration Debugger that essentially allows you to replay a suspended (or successful) instance.
  • Provide a GUI for the forwarding service configuration. While Powershell is a great tool and I can see it being very useful, something like inputting an XPath statement into a GUI would be my preferred method. While I encourage scriptable deployments, making a change to this could be done on the fly and I may not always want to switch into a command based session to make a change like this
  • Unless I misunderstood, you have to deploy the installation 'package' on each node in your Dublin "group". There was no way to "push" the application to all nodes in a "group". While this is probably achievable via Powershell, it would be nice to have more visibility into other servers that may be running the same application.

So all in all , I have listed some pretty minor enhancements . Overall, I think the Dublin team has done some great work with the technology and remember that it is still early.

Wednesday, October 29, 2008

PDC Day 1

Monday, October 27th was the official start to the Microsoft 2008 PDC conference. The event is taking place at the Los Angeles Convention center in downtown LA. The conference has the feel of a "Microsoft" conference...which is a good thing. The conference is extremely well organized, there are plenty of people around to help you where you are going and there is plenty of caffeine.




PDC is the place to be for upcoming Technologies and "Sneak Peaks". On Monday, Chief Software Architect, Ray Ozzie unveiled a new Software + Services offering called Microsoft Azure. Azure allows you to "build new applications in the cloud - or use interoperable services that run on Microsoft infrastructure to extend and enhance your existing applications. "


Azure looks to have a LOT of potential. Here is a non-exhaustive list of some of the ways that people can take advantage of Azure:
  • Use a Relay service(.Net Services) that allows an on-premise service to connect with an external application without the hassle of mind numbing firewall configuration.
  • Use Azure in an ASP(Application Service Provider) model where you can expose a WCF + WF service and have it run in the "Cloud". A decision that many companies will need to make is whether to host services on premise in your own data center or leverage Microsoft's "pay as you go" model. Clearly for smaller organizations or organizations looking to avoid a large upfront infrastructure cost, this is an attractive solution.
  • Exposing structured, semi-structured or unstructured data to the world via SQL Server Services.
  • Leveraging Authentication and Social Networking capabilities of Live Services. Have data that you want to propagate through a Social Network or want to leverage Live Id authentication through your application? Using Live Services may provide you with a wack of opportunities to solve your challenges.
  • Leveraging other Microsoft Cloud applications like Sharepoint, Exchange and Dynamics.

I think that there are going to be endless opportunities with this platform and highly recommend that you learn more by visiting http://www.azure.com/.

Personally, I am really interested in the .Net Services and more specifically the new relay service possibilities. I definitely plan on learning more about Azure and .Net Services specifically.