San Diego, CA
May 24- 28, 2004
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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.
Hands On Labs to Look For
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 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.
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.