|
Programming Scale-Out Applications with SQL Server 2005
|
A Service-Oriented Database Architecture (SODA) Approach
|
There are two ways to manage the growth requirements of database systems: scale-up; and scale-out. Scale-up comes from improved hardware (more cpu, faster cpu) and from extensive tuning by application developers and database administrators. Scale-out requires distributing and partitioning data as well as distributing the data processing. This involves characterizing the different types of data in your application as all data is not the same with respect to the database. In addition, scaling and failover capabilities can be greatly improved by dividing the process implementation into composable services that can execute asynchronously or in parallel. In this fast-paced, hands-on immersion event, we'll discuss building an application architecture that implements a data management methodology that fully reviews the purpose and usage of your data leading to effective scale-out designs.
|
We will provide you with a comprehensive understanding of how to make your application scale by leveraging the new capabilities of SQL Server 2005 that are geared around a Service-Oriented Database Architecture. The incremental enhancements in SQL Server 2005 make the traditional programming environment richer and more capable of supporting advanced data partitioning schemes. The revolutionary enhancements in the new SQL Server release enable new possibilities for scale-out using a reliable event-driven active database model that replaces the session-based connected database communication model that exists today. These new programming paradigms expand the capabilities of the database to enable a cost-effective, distributed database management architecture that complements the current monolithic management architecture. These lead to new design patterns that deliver increased throughput, leverage commodity hardware, and increase availability – empowering you to deliver applications that meet ever-increasing up-time and transactional demands.
|
Day 1
|
1. Introduction: SODA
- What does SODA look like?
-
A Review of Scale Up
- SQL Server 2005 enhancements for Scale Up
-
An introduction to Scale Out
-
Scale Out in SQL Server 2000
- Replication
- MSMQ
- Distributed partitioned views
- Where traditional scale out falls short
-
What are the essential components of SODA
- Enterprise Service Infrastructure - Service Broker
- Programming Complex Logic - SQLCLR
- Interoperability and Networking - XML, Web Services, Routing
- Notifications and Caching - Query Notification, Peer-to-Peer Replication
- Monitoring the Application - Event Notifications and WMI
|
2. Scale Out - A Data Management Methodology
-
Data Classification
- Reference Data
- Resource Data
- Activity Data
- Service Interaction Data
-
Services and Databases
- Connected systems vs. Disconnected Systems
-
Loose Coupling
- Homogeneous Systems
- Heterogeneous Systems
- Event-driven database systems
- Data dependent routing and partitioning
- Demand and asynchronous services - time-based scaling
- Challenges in Service design
-
What are the essential components of SODA
- Enterprise Service Infrastructure - Service Broker
- Programming Complex Logic - SQLCLR
- Interoperability and Networking - XML, Web Services, Routing
- Notifications and Caching - Query Notification, Peer-to-Peer Replication
- Monitoring the Application - Event Notifications and WMI
|
3. SQL Server Service Broker - Fundamentals
-
Service Broker Architecture - Intra Database
- Services and Queues
- Message Types and Contracts
-
Programming Fundamentals
- Conversation Management (Begin-End Conversation)
- Sending and Receiving Messages
- Activation
-
Service Broker Architecture - Inter Database
- Routes
- Remote Service Bindings
|
Day 2
|
4. Securing the SODA
- Secret Storage - Certificates and Keys
-
Database Trust
- Inter-instance
- Inter-database
- Encryption
- Identity (execute as and code signing)
|
5. Fundamentals of a Broker service-based app
-
The activation program
- Internal activation
- External activation
-
Conversation groups
- Locking a conversation group
- Saving state across invocations
- Message Processing Strategies
-
Transactions
-
Poison Messages
- Built in
- Roll your own poison message strategies
- Error handling
- Timers
|
6. Beyond Transact-SQL - SQLCLR Fundamentals
-
Basic Concepts
- Assemblies
- Procedural code
- Data types
-
Why SQLCLR?
- When Transact-SQL is better
- When SQLCLR is better
- Deployment considerations
|
7. Programming Service Broker Applications with .NET
-
Accessing Data in SQLCLR
- Context
- Rowsets and Table Valued Functions
- Impersonation
- Transactions
- Error Handling
-
A Simple Object Model
- Programming services (activation procedures) in SQLCLR
- Programming service broker clients
|
Day 3
|
8. Storing XML in SQL Server
-
XML data type
-
Schemas
- Storing and Using Schemas
- Versioning Schemas
-
Hybrid Applications
- XML decomposition
- Composing XML from relational data
|
9. Processing XML in SQL Server
-
Querying XML
- Query methods of XML data type
- Queries and Indexes
- Strong Typing
- Queries and Schema
- Processing XML in Service Programs
- Updating XML
|
10. Secured, Interoperable Communications using Web Services
- Defining Endpoints
- Message Formats
- Session and Notification Extensions
- When to use Web Services in SQL Server (and when not to)
|
Day 4
|
11. Building a high performance distributed architecture - Service Broker Routing
-
Routing fundamentals
-
Routing strategies
- Service-directed Routing
- Data-directed Routing
- Dynamic Routing
- Routing best practices
-
Partial Failure Scenarios
|
12. Caching and Concurrency Management
- Managing cache coherency with Query Notifications
- Towards an active database - Event Notification and WMI details
- Scaling data with Peer-to-Peer Replication
- Using Push Technology to phase data changes
|
13. Review: Data management in applications revisited
- Data Classification Management Strategies
- Session based connected architecture
- Message based service architecture
|