TechEd 2004

San Diego, CA

May 24- 28, 2004

Connected systems are becoming pervasive as a result of current economic drivers for companies to be more agile and to drive down corporate costs.  New applications no longer live in single process or machine silos.  Applications need to be designed to be a part of a connected network of services to build systems that span multiple machines and reach beyond corporate firewalls.  This track is designed to help you understand how to design, implement, deploy, and manage connected systems today.  It will have in-depth coverage of the emerging Web services world, Service Oriented Architectures, messaging, remote objects, security, and other technologies that comprise Connected Systems using real world application scenarios and demos.

Sunday Pre-Conference with Aaron Skonnard

Essential Web Services: Programming with .NET and WSE 2.0


The Microsoft .NET framework makes it easy to build powerful Web services based on open industry standards including XML Schema, SOAP, and WSDL. This workshop will help you quickly ramp up on programming Web services using ASP.NET's WebMethods (.asmx), then we'll show you how to extend this framework using the new Microsoft Web Services Enhancements (WSE) 2.0. Along the way, we'll cover several WS-* specifications supported by WSE 2.0 and show you how to take advantage of them in your code with a special focus on security.


The Pavilion and Hands on Labs

Visit the Web Services Station #29 in the Pavilion to pick the Resource CD that contains copies of the Hands on Labs.


Creating and Using Web Services with VB or C#

This lab shows you how to create your first Web service and then extend it to use complex data types using Visual Studio .Net and perform initial testing of the Web Service.  You will also learn how to create simple and asynchronous client applications using Visual Studio .Net.


Web Services Enhancements v2.0 Security and Policy Lab:

Learn how to secure Web services without writing code, how to author security policies, and how to leverage the WSE programming model to secure you Web services.   This lab will teach you how to write your own authorization models and how to sign and encrypt message parts using WS-Security.  For extra credit, learn how to negotiate down to a Security Context Token for lighter conversations between two established parties.


Web Services Enhancements v2.0 Messaging Lab:

Learn how to incorporate WS-Addressing and the use of intermediaries in your Web services applications using WSE’s lightweight messaging infrastructure.  Learn how to do basic one-way and request/response messaging with the messaging APIs over multiple transports.  For extra credit, learn how to build your own peer to peer instant messaging program.


Breakouts and Lounge Sessions During the Conference

CTS200  Connected Systems: Service Orientation and the Windows/.NET Developer

Monday, May 24 10:45 AM- 12:00 PM, Room 20D

Speaker(s): Don Box, Doug Purdy

Track(s): Connected Systems, Developer Tools and Technologies

Microsoft is investing in service-oriented software as the basis for building connected software. Service-orientation benefits from the lessons learned trying to stretch the object metaphor to distributed programming and ties together concepts such as messaging, design-by-contract, and XML to form a simple model for hooking software together. This session looks at the concepts and idioms used in service-orientation as well as specific technologies that promise to make developers more productive at building and composing services.


CTS300  Connected Systems: Prescriptive Guidance-Juggling Web Services, WSE, .NET Remoting, System.EnterpriseServices, and MSMQ

Monday, May 24 1:30 PM- 2:45 PM, Room 10

Speaker(s): Richard Turner

Track(s): Connected Systems, Developer Tools and Technologies

Microsoft offers many programming models you can use to build distributed applications: System.NET, System.Messaging, EnterpriseServices, .NET Remoting, ASP.NET Web Services, and WSE (to name a few). Learn how to choose the right programming model for your scenarios. This session presents clear and simple guidelines you can use to make these choices, and explains the tradeoffs the guidelines embody: ease-of-use, manageability, architectural features, performance, etc.


CTS308  Connected Systems: Applied Web Services in Hewlett Packard's Core eCommerce Solutions

Monday, May 24 3:15 PM- 4:30 PM, Room 32AB

Speaker(s): Greg Andrews

Track(s): Connected Systems, Developer Tools and Technologies

Join Greg Andrews, Project Manager at Hewlett Packard, for an in-depth discussion on how to implement enterprise-ready, service-oriented solutions. Learn how HP built a secure, globally accessible Web service that consolidates e-commerce processing for multiple Web storefronts and other corporate systems across three continents around the world, and how the software development project has reduced transaction costs and improved fraud detection for one of the world's largest online retail networks.


CTS404  Connected Systems: Best Practices for Dealing With State at Multiple Layers Within Your .NET Applications

Monday, May 24 5:00 PM- 6:15 PM, Room 10

Speaker(s): Clemens Vasters

Track(s): Connected Systems, Developer Tools and Technologies

We tend to talk casually and single-mindedly about stateful and stateless technologies, but when you think of it, if an operation didn't have some impact on state, you'd never call it. In practical terms, considerations of state crop up on every level of the stack: stateful vs. stateless instances, stateful communication channels, state management services, state in databases. You can build your application to send work to data, or you can build your application to bring data to work. You can think of read-only and read-write data as different in kind, or as two ends of a continuum along which all data lies. Using real applications as examples, learn a Service Oriented perspective on all these issues. After this session, you'll be able to answer questions such as: how issues of state impact design, what special deployment issues arise from stateful, and how to manage connections to data.


DEVC27  Service Orientation Overview

Tuesday, May 25 1:30 PM- 2:45 PM, Cabana 06

Speaker(s): Steve Swartz

Track(s): Developer Tools and Technologies

You've no doubt heard the term "Service Orientation" during TechEd and at other venues, but what does it really mean? Come along to hear and discuss Microsoft's position on Service Orientation, what the Four Tenets are and why Service Orientation is going to be as important a paradigm shift as Object Orientation was back in the late 80's.


CTS301  Connected Systems: Managed Programming for Win32 Developers

Tuesday, May 25 3:15 PM- 4:30 PM, Room 10

Speaker(s): David Platt

Track(s): Connected Systems, Developer Tools and Technologies

If you're interested in what you're hearing about connected systems but having a hard time connecting this new information with the native code you're using today, this session is for you. Learn how the concepts and products you're familiar with in native code map onto corresponding managed technologies. See app-to-app comparisons of Winsock and System.NET, .NET Remoting, COM+ and Enterprise Services, ASP and ASP.NET Web Methods, MSMQ and System.Messaging, and MS-SOAP and WSE. Walk away with a better understanding of how managed connected systems hang together, and with the beginnings of what you'll need to know if you decide to evolve a native connected system into .NET.


CTS302  Connected Systems: Using Web Services Enhancements v2.0 (WSE) to Secure Web Services

Wednesday, May 26 2:00 PM- 3:15 PM, Room 10

Speaker(s): Benjamin Mitchell

Track(s): Connected Systems, Developer Tools and Technologies, Security

Web Services are being used to cross application boundaries, especially between enterprises. Such interactions need to be secure. See how to use WSE v2.0 and the security protocols that it implements to secure Web service interactions within and beyond the Trust domain.


CTS400  Connected Systems: Using Web Services Enhancements v2.0 for Messaging Over Multiple Machines and Networks

Wednesday, May 26 10:15 AM- 11:30 AM, Room 10

Speaker(s): Keith Ballinger

Track(s): Architecture, Connected Systems, Developer Tools and Technologies

Applications that run on multiple machines present special challenges during development and deployment: bandwidth and latency taxes, firewalls and domain boundaries, network management, coordination of configuration and management. Often, the best way to deal with these challenges is by making location and mechanism less transparent and more explicit. Message, network address, intermediary, and queue need to become first-class citizens of your application. Learn how you can build robust messaging applications in .NET. See how to set up queues, routers, and security intermediaries. See examples of real-world apps interoperating in heterogeneous environments.


CTS303  Connected Systems: Applied Web Services at the Ohio State University Medical Center

Wednesday, May 26 5:30 PM- 6:45 PM, Room 10

Speaker(s): Furrukh Khan

Track(s): Connected Systems, Developer Tools and Technologies

Join Furrukh Khan, Director of Technology for Ohio State University (OSU) Medical Center, for his talk on experience gained from building a mission-critical Web services-based health science system for their operating rooms and intensive care units. This system connects a variety of real-time monitoring equipment which measure clinical entities like cardiac parameters, respiratory parameters, non-invasive pressure, invasive pressure, pulse oxymetry, temperature and cardiac output for the day to day activities. It securely (WS-Security, WS-Policy) and efficiently (WS-SecureConversation) exposes this vital sign information from within the dispersed complexes of the medical center and beyond via a federation of Web services. The system allows surgeons, anesthesiologists, physicians, interns, nurses, and medical students to securely monitor, mark with events, and replay later, this clinical data. It also provides data mining for the education of medical students/interns and medical research in a location independent manner.


CTS403  Connected Systems: Handling Errors with Transactions

Thursday, May 27 8:30 AM- 9:45 AM, Room 10

Speaker(s): Amrit Bains

Track(s): Connected Systems, Developer Tools and Technologies

Transactions are often thought of as a database-only thing. Transactions are really about coordinating error handling in distributed applications. Learn about a variety of ways you can use transactional ideas to improve the correctness of service oriented applications. Learn how to implement services as "resource managers" that use transactional semantics to coordinate errors with other services they know nothing about. Discover the performance and maintenance considerations that might lead you to use local and/or distributed transactions. Learn how to implement and deploy compensation and sagas, two transactional strategies that are particularly appropriate in Service Oriented Architectures.


DEVC35  Web Services Interoperability

Thursday, May 27 8:30 AM- 9:45 AM, Cabana 06

Speaker(s): Simon Guest

Track(s): Developer Tools and Technologies

Are you looking to Web services to provide interoperability between .NET and other systems? Maybe you are involved in a project to prove Web services connectivity with .NET and IBM WebSphere or BEA WebLogic? Come chat about your experience and share questions in this open roundtable discussion. Learn valuable recommendations for implementing interoperable Web services today and see how we are taking this forward with WSE (Web Services Enhancements) 2.0.


CTS406  Connected Systems: Versioning of Connected .NET Applications

Thursday, May 27 1:30 PM- 2:45 PM, Room 32AB

Speaker(s): Doug Purdy

Track(s): Connected Systems, Developer Tools and Technologies

Do you wonder how to add functionality to your connected applications without breaking existing clients? Do you want to understand how to run your connected .Net applications in a side-by-side fashion? Do you think about versioning WSDL and XSD contracts? Do you want to achieve true loose coupling within your services? If so, this talk is for you. We will cover a broad range of versioning best practices that will enable you to build resiliency into your applications today, ensuring that you are protected for the future.


DEVC16  Connected Systems:  Distributed Applications Performance Panel

Thursday, May 27 1:30 PM- 2:45 PM, Cabana 05

Speaker(s): Yasser Shohoud

Track(s): Developer Tools and Technologies

What are the differences between performance and scalability? How do you measure each? How do you tune your distributed application to maximize scalability? This panel focuses on these common performance questions to help you understand performance testing and tuning techniques. With experts from the .NET Remoting, ASP.NET Web services, Enterprise Services and MSMQ teams, this panel is the best forum for getting your tough performance questions answered.


CTS304  Connected Systems: Availability and Reliability - Failure Is Not An Option

Thursday, May 27 5:00 PM- 6:15 PM, Room 10

Speaker(s): Krish Srinivasan

Track(s): Connected Systems, Developer Tools and Technologies

Writing reliable software is hard. Writing reliable and highly available connected systems is harder. Learn how service orientation helps in factoring service interface contracts that improve availability and reliability. You'll learn how to use Microsoft's distributed programming models to build and deploy reliable and highly available applications. Learn about the features of the programming models that contribute most directly to reliability and availability. See how to pursue availability and reliability as you deploy, manage and upgrade systems using our distributed programming models.


CTS405  Connected Systems: Choosing a Hosting Model - Dealing with Threads, AppDomains, and Processes

Friday, May 28 10:45 AM- 12:00 PM, Room 10

Speaker(s): Lance Olson

Track(s): Connected Systems, Developer Tools and Technologies

Hosting is more than just how your process starts. Your choice of hosting environment also constrains the threading and app-domain behavior of your application, the higher levels of your security infrastructure, and the management and monitoring tools you'll be able to use. In Windows, you can choose to host your application as a console or GUI app, as a Windows Service, in DCOM, in IIS/ASP.NET, or in SQL. In this talk, you'll learn the strengths and weaknesses of each hosting environment. You'll learn that you have a lot more options than you think, and you'll get guidance on how to select the most appropriate environment based on the needs of your application.


CTS306  Connected Systems: Deployment and Management

Friday, May 28 1:00 PM- 2:15 PM, Room 7AB

Speaker(s): Dhananjay Mahajan

Track(s): Connected Systems, Developer Tools and Technologies

Deployment and management have been mentioned in almost every one of the Practical Service abstracts, for two reasons. First, you can't talk about much of anything in the world of real applications without considering how you'll eventually deploy and run your apps. You must keep those issues in mind from the moment you start designing. Second, and more importantly, Service Oriented applications are easier to deploy and manage than other applications, because their decoupled nature turns one big management problem into several smaller ones with very clear relations between the parts. In this session, learn how SOA helps with deployment and management of applications built with more than one of our programming models.


CTS201 Connected Systems: Web Service, XML Serialization and Networking in .NET Framework 2.0

Friday, May 28, 2:45PM- 4:00 PM, Room 10

Speakers: Yasser Shohoud, Matt Tavis

Track(s): Connected Systems, Developer Tools and Technologies

The .NET Framework 2.0 is all about making it easier to build and run real world Web services. We’ve listened to you and updated the .NET framework to help you solve the problems you face today. Whether you’re looking for more control over serialization and type generation, concerned about performance or just want to run Web services in desktop applications, .NET Framework 2.0 enables you to do it all. This session will take you through a tour of the new Web services and related features in .NET Framework 2.0 including custom serialization, network awareness and standards conformance. This session is a must for all Web services and distributed applications developers.


CTS307 Connected Systems: Using Service Orientation to Drive Business Processes

Friday, May 28 2:45 PM- 4:00 PM, Room 7AB

Speaker(s): Eric Schmidt

Track(s): Connected Systems, Developer Tools and Technologies

Learn how to obtain the true benefits of Web services and SOA - being able to create dynamic, flexible business processes across heterogeneous systems. Get an in-depth look at the concepts of service and process orchestration. We will review the necessary aspects of service oriented architecture and orchestration technology that can enable you to create more dynamic business processes. Dive into service decomposition, fine vs. coarse grained messaging, latency, flow logic, transactions and state management. Walk through a custom orchestration engine and dive heavily into BizTalk Server 2004 orchestration.


DEVC40  Connected Systems: Versioning Panel

Friday, May 28 9:00 AM- 10:15 AM, Cabana 06

Speaker(s): Doug Purdy

Track(s): Developer Tools and Technologies

Do you wonder how to add functionality applications without breaking existing clients? Do you think about versioning WSDL and XSD contracts? Do you want to achieve true loosing coupling within your service? If so, this panel is for you. Join the technical leaders on the XML Web Services team (ASMX, Remoting, Enterprise Services/COM+, System.Messaging/MSMQ) to discuss the broad ranging and important topic.