Docstoc

0212 - WSS.pl

Document Sample
0212 - WSS.pl Powered By Docstoc
					          00:00:02:00
00:00:00:00
          00:00:04:00
00:00:02:00
          00:00:06:00
00:00:04:00
          00:00:08:00
00:00:06:00
          00:00:10:00
00:00:08:00
          00:00:12:00
00:00:10:00
          00:00:13:00
00:00:12:00
          00:00:15:06
00:00:13:00
          00:00:18:14
00:00:15:06
          00:00:20:20
00:00:18:14
          00:00:23:07
00:00:20:20
          00:00:24:20
00:00:23:07
          00:00:31:02
00:00:24:20
          00:00:34:16
00:00:31:02
          00:00:37:24
00:00:34:16
          00:00:41:01
00:00:37:24
          00:00:43:21
00:00:41:01
          00:00:47:13
00:00:43:21
          00:00:50:23
00:00:47:13
          00:00:54:02
00:00:50:23
          00:00:57:16
00:00:54:02
          00:01:00:20
00:00:57:16
          00:01:04:08
00:01:00:20
          00:01:07:18
00:01:04:08
          00:01:11:13
00:01:07:18
          00:01:15:14
00:01:11:13
          00:01:18:18
00:01:15:14
          00:01:22:20
00:01:18:18
          00:01:25:15
00:01:22:20
          00:01:29:20
00:01:25:15
          00:01:33:01
00:01:29:20
          00:01:36:17
00:01:33:01
          00:01:40:07
00:01:36:17
          00:01:43:01
00:01:40:07
          00:01:46:07
00:01:43:01
          00:01:49:19
00:01:46:07
          00:01:52:20
00:01:49:19
          00:01:56:10
00:01:52:20
          00:01:58:15
00:01:56:10
          00:02:01:11
00:01:58:15
          00:02:06:11
00:02:01:11
          00:02:09:11
00:02:06:11
          00:02:13:11
00:02:09:11
          00:02:17:05
00:02:13:11
          00:02:21:06
00:02:17:05
          00:02:23:24
00:02:21:06
          00:02:26:20
00:02:23:24
          00:02:30:04
00:02:26:20
          00:02:33:06
00:02:30:04
          00:02:37:17
00:02:33:06
          00:02:40:10
00:02:37:17
          00:02:43:16
00:02:40:10
          00:02:46:18
00:02:43:16
          00:02:49:01
00:02:46:18
          00:02:52:23
00:02:49:01
          00:02:55:08
00:02:52:23
          00:02:59:21
00:02:55:08
          00:03:03:00
00:02:59:21
          00:03:07:08
00:03:03:00
          00:03:09:00
00:03:07:08
          00:03:14:24
00:03:09:00
          00:03:19:20
00:03:14:24
          00:03:23:06
00:03:19:20
          00:03:26:23
00:03:23:06
          00:03:30:15
00:03:26:23
          00:03:33:10
00:03:30:15
          00:03:38:06
00:03:33:10
          00:03:42:11
00:03:38:06
          00:03:46:01
00:03:42:11
          00:03:49:16
00:03:46:01
          00:03:53:06
00:03:49:16
          00:03:57:18
00:03:53:06
          00:04:00:04
00:03:57:18
          00:04:02:19
00:04:00:04
          00:04:05:11
00:04:02:19
          00:04:07:18
00:04:05:11
          00:04:11:12
00:04:07:18
          00:04:15:10
00:04:11:12
          00:04:18:13
00:04:15:10
          00:04:21:24
00:04:18:13
          00:04:24:08
00:04:21:24
          00:04:27:11
00:04:24:08
          00:04:31:03
00:04:27:11
          00:04:34:04
00:04:31:03
          00:04:37:14
00:04:34:04
          00:04:40:06
00:04:37:14
          00:04:42:22
00:04:40:06
          00:04:47:04
00:04:42:22
          00:04:51:07
00:04:47:04
          00:04:55:04
00:04:51:07
          00:04:58:08
00:04:55:04
          00:05:02:03
00:04:58:08
          00:05:05:19
00:05:02:03
          00:05:10:01
00:05:05:19
          00:05:13:13
00:05:10:01
          00:05:15:22
00:05:13:13
          00:05:20:01
00:05:15:22
          00:05:22:24
00:05:20:01
          00:05:28:17
00:05:22:24
          00:05:31:14
00:05:28:17
          00:05:33:08
00:05:31:14
          00:05:35:19
00:05:33:08
          00:05:39:18
00:05:35:19
          00:05:42:08
00:05:39:18
          00:05:45:01
00:05:42:08
          00:05:48:11
00:05:45:01
          00:05:51:16
00:05:48:11
          00:05:56:10
00:05:51:16
          00:05:59:00
00:05:56:10
          00:06:01:23
00:05:59:00
          00:06:05:13
00:06:01:23
          00:06:07:21
00:06:05:13
          00:06:10:04
00:06:07:21
          00:06:13:04
00:06:10:04
          00:06:15:02
00:06:13:04
          00:06:19:13
00:06:15:02
          00:06:23:00
00:06:19:13
          00:06:27:11
00:06:23:00
          00:06:30:15
00:06:27:11
          00:06:34:18
00:06:30:15
          00:06:38:11
00:06:34:18
          00:06:42:07
00:06:38:11
          00:06:45:13
00:06:42:07
          00:06:48:15
00:06:45:13
          00:06:50:15
00:06:48:15
          00:06:54:10
00:06:50:15
          00:06:57:13
00:06:54:10
          00:07:00:14
00:06:57:13
          00:07:04:01
00:07:00:14
          00:07:07:16
00:07:04:01
          00:07:12:02
00:07:07:16
          00:07:15:19
00:07:12:02
          00:07:19:11
00:07:15:19
          00:07:22:19
00:07:19:11
          00:07:26:15
00:07:22:19
          00:07:29:22
00:07:26:15
          00:07:33:15
00:07:29:22
          00:07:36:11
00:07:33:15
          00:07:38:13
00:07:36:11
          00:07:42:08
00:07:38:13
          00:07:44:18
00:07:42:08
          00:07:48:07
00:07:44:18
          00:07:52:11
00:07:48:07
          00:07:55:11
00:07:52:11
          00:07:58:15
00:07:55:11
          00:08:01:08
00:07:58:15
          00:08:04:07
00:08:01:08
          00:08:06:19
00:08:04:07
          00:08:08:19
00:08:06:19
          00:08:11:11
00:08:08:19
          00:08:15:07
00:08:11:11
          00:08:18:23
00:08:15:07
          00:08:23:11
00:08:18:23
          00:08:26:06
00:08:23:11
          00:08:29:12
00:08:26:06
          00:08:32:18
00:08:29:12
          00:08:35:03
00:08:32:18
          00:08:38:13
00:08:35:03
          00:08:42:18
00:08:38:13
          00:08:47:12
00:08:42:18
          00:08:51:06
00:08:47:12
          00:08:53:22
00:08:51:06
          00:08:56:04
00:08:53:22
          00:09:00:06
00:08:56:04
          00:09:03:07
00:09:00:06
          00:09:06:18
00:09:03:07
          00:09:09:01
00:09:06:18
          00:09:13:07
00:09:09:01
          00:09:15:19
00:09:13:07
          00:09:19:18
00:09:15:19
          00:09:23:08
00:09:19:18
          00:09:26:16
00:09:23:08
          00:09:29:09
00:09:26:16
          00:09:32:04
00:09:29:09
          00:09:37:03
00:09:32:04
          00:09:39:21
00:09:37:03
          00:09:42:20
00:09:39:21
          00:09:46:15
00:09:42:20
          00:09:49:00
00:09:46:15
          00:09:52:15
00:09:49:00
          00:09:56:02
00:09:52:15
          00:09:58:20
00:09:56:02
          00:10:00:24
00:09:58:20
          00:10:04:14
00:10:00:24
          00:10:07:22
00:10:04:14
          00:10:10:18
00:10:07:22
          00:10:13:11
00:10:10:18
          00:10:16:04
00:10:13:11
          00:10:18:20
00:10:16:04
          00:10:23:06
00:10:18:20
          00:10:25:23
00:10:23:06
          00:10:28:22
00:10:25:23
          00:10:31:14
00:10:28:22
          00:10:35:08
00:10:31:14
          00:10:38:19
00:10:35:08
          00:10:40:22
00:10:38:19
          00:10:44:19
00:10:40:22
          00:10:47:00
00:10:44:19
          00:10:49:00
00:10:47:00
          00:10:55:10
00:10:49:00
          00:11:00:01
00:10:55:10
          00:11:04:07
00:11:00:01
          00:11:11:19
00:11:04:07
          00:11:15:21
00:11:11:19
          00:11:20:13
00:11:15:21
          00:11:25:05
00:11:20:13
          00:11:28:16
00:11:25:05
          00:11:32:10
00:11:28:16
          00:11:36:09
00:11:32:10
          00:11:38:23
00:11:36:09
          00:11:41:07
00:11:38:23
          00:11:44:16
00:11:41:07
          00:11:48:07
00:11:44:16
          00:11:52:05
00:11:48:07
          00:11:56:11
00:11:52:05
          00:12:01:24
00:11:56:11
          00:12:05:04
00:12:01:24
          00:12:08:01
00:12:05:04
          00:12:12:17
00:12:08:01
          00:12:15:03
00:12:12:17
          00:12:22:06
00:12:15:03
          00:12:26:02
00:12:22:06
          00:12:31:04
00:12:26:02
          00:12:35:10
00:12:31:04
          00:12:44:17
00:12:35:10
          00:12:49:22
00:12:44:17
          00:12:55:19
00:12:49:22
          00:13:00:04
00:12:55:19
          00:13:11:01
00:13:00:04
          00:13:16:08
00:13:11:01
          00:13:22:13
00:13:16:08
          00:13:26:06
00:13:22:13
          00:13:30:16
00:13:26:06
          00:13:33:17
00:13:30:16
          00:13:40:20
00:13:33:17
          00:13:44:01
00:13:40:20
          00:13:48:03
00:13:44:01
          00:13:52:17
00:13:48:03
          00:14:08:13
00:13:52:17
          00:14:15:06
00:14:08:13
          00:14:17:16
00:14:15:06
          00:14:22:03
00:14:17:16
          00:14:25:03
00:14:22:03
          00:14:28:14
00:14:25:03
          00:14:32:12
00:14:28:14
          00:14:35:01
00:14:32:12
          00:14:38:17
00:14:35:01
          00:14:41:02
00:14:38:17
          00:14:43:15
00:14:41:02
          00:14:47:00
00:14:43:15
          00:14:49:18
00:14:47:00
          00:14:54:05
00:14:49:18
          00:14:56:21
00:14:54:05
          00:15:00:03
00:14:56:21
          00:15:03:14
00:15:00:03
          00:15:05:14
00:15:03:14
          00:15:09:09
00:15:05:14
          00:15:11:14
00:15:09:09
          00:15:16:11
00:15:11:14
          00:15:19:08
00:15:16:11
          00:15:21:07
00:15:19:08
          00:15:23:19
00:15:21:07
          00:15:28:01
00:15:23:19
          00:15:30:21
00:15:28:01
          00:15:33:12
00:15:30:21
          00:15:36:17
00:15:33:12
          00:15:40:04
00:15:36:17
          00:15:43:21
00:15:40:04
          00:15:47:07
00:15:43:21
          00:15:50:03
00:15:47:07
          00:15:52:19
00:15:50:03
          00:15:55:15
00:15:52:19
          00:15:58:20
00:15:55:15
          00:16:02:23
00:15:58:20
          00:16:07:10
00:16:02:23
          00:16:10:13
00:16:07:10
          00:16:13:24
00:16:10:13
          00:16:17:01
00:16:13:24
          00:16:20:21
00:16:17:01
          00:16:24:02
00:16:20:21
          00:16:27:24
00:16:24:02
          00:16:31:22
00:16:27:24
          00:16:34:04
00:16:31:22
          00:16:36:12
00:16:34:04
          00:16:39:19
00:16:36:12
          00:16:42:16
00:16:39:19
          00:16:45:22
00:16:42:16
          00:16:49:15
00:16:45:22
          00:16:55:00
00:16:49:15
          00:16:59:10
00:16:55:00
          00:17:03:09
00:16:59:10
          00:17:06:07
00:17:03:09
          00:17:10:04
00:17:06:07
          00:17:14:02
00:17:10:04
          00:17:17:05
00:17:14:02
          00:17:20:13
00:17:17:05
          00:17:23:09
00:17:20:13
          00:17:27:02
00:17:23:09
          00:17:30:01
00:17:27:02
          00:17:33:01
00:17:30:01
          00:17:37:02
00:17:33:01
          00:17:40:00
00:17:37:02
          00:17:44:05
00:17:40:00
          00:17:48:20
00:17:44:05
          00:17:51:21
00:17:48:20
          00:17:55:07
00:17:51:21
          00:17:58:11
00:17:55:07
          00:18:00:17
00:17:58:11
          00:18:02:20
00:18:00:17
          00:18:05:02
00:18:02:20
          00:18:08:12
00:18:05:02
          00:18:12:01
00:18:08:12
          00:18:15:03
00:18:12:01
          00:18:18:10
00:18:15:03
          00:18:22:01
00:18:18:10
          00:18:25:05
00:18:22:01
          00:18:30:19
00:18:25:05
          00:18:33:10
00:18:30:19
          00:18:38:17
00:18:33:10
          00:18:41:06
00:18:38:17
          00:18:44:09
00:18:41:06
          00:18:47:06
00:18:44:09
          00:18:50:04
00:18:47:06
          00:18:52:14
00:18:50:04
          00:18:55:17
00:18:52:14
          00:19:00:08
00:18:55:17
          00:19:05:11
00:19:00:08
          00:19:08:21
00:19:05:11
          00:19:12:23
00:19:08:21
          00:19:16:17
00:19:12:23
          00:19:20:14
00:19:16:17
          00:19:24:03
00:19:20:14
          00:19:27:08
00:19:24:03
          00:19:30:15
00:19:27:08
          00:19:33:23
00:19:30:15
          00:19:36:04
00:19:33:23
          00:19:38:02
00:19:36:04
          00:19:40:18
00:19:38:02
          00:19:44:15
00:19:40:18
          00:19:47:08
00:19:44:15
          00:19:50:02
00:19:47:08
          00:19:53:09
00:19:50:02
          00:19:56:08
00:19:53:09
          00:19:59:15
00:19:56:08
          00:20:02:00
00:19:59:15
          00:20:05:22
00:20:02:00
          00:20:09:14
00:20:05:22
          00:20:13:08
00:20:09:14
          00:20:16:03
00:20:13:08
          00:20:19:12
00:20:16:03
          00:20:22:23
00:20:19:12
          00:20:26:09
00:20:22:23
          00:20:29:01
00:20:26:09
          00:20:31:16
00:20:29:01
          00:20:35:03
00:20:31:16
          00:20:38:01
00:20:35:03
          00:20:41:03
00:20:38:01
          00:20:44:10
00:20:41:03
          00:20:48:01
00:20:44:10
          00:20:51:11
00:20:48:01
          00:20:54:19
00:20:51:11
          00:20:57:00
00:20:54:19
          00:21:01:05
00:20:57:00
          00:21:03:21
00:21:01:05
          00:21:08:00
00:21:03:21
          00:21:11:03
00:21:08:00
          00:21:14:21
00:21:11:03
          00:21:19:04
00:21:14:21
          00:21:22:02
00:21:19:04
          00:21:23:23
00:21:22:02
          00:21:28:02
00:21:23:23
          00:21:30:23
00:21:28:02
          00:21:33:18
00:21:30:23
          00:21:36:17
00:21:33:18
          00:21:40:03
00:21:36:17
          00:21:42:19
00:21:40:03
          00:21:46:11
00:21:42:19
          00:21:50:18
00:21:46:11
          00:21:54:22
00:21:50:18
          00:21:57:16
00:21:54:22
          00:22:00:07
00:21:57:16
          00:22:05:04
00:22:00:07
          00:22:08:17
00:22:05:04
          00:22:12:20
00:22:08:17
          00:22:15:11
00:22:12:20
          00:22:18:19
00:22:15:11
          00:22:21:06
00:22:18:19
          00:22:25:11
00:22:21:06
          00:22:29:05
00:22:25:11
          00:22:31:16
00:22:29:05
          00:22:33:22
00:22:31:16
          00:22:38:10
00:22:33:22
          00:22:41:09
00:22:38:10
          00:22:45:06
00:22:41:09
          00:22:47:19
00:22:45:06
          00:22:50:19
00:22:47:19
          00:22:53:18
00:22:50:19
          00:22:56:18
00:22:53:18
          00:22:59:22
00:22:56:18
          00:23:05:02
00:22:59:22
          00:23:07:03
00:23:05:02
          00:23:10:02
00:23:07:03
          00:23:14:03
00:23:10:02
          00:23:17:02
00:23:14:03
          00:23:20:00
00:23:17:02
          00:23:21:23
00:23:20:00
          00:23:25:04
00:23:21:23
          00:23:27:08
00:23:25:04
          00:23:30:14
00:23:27:08
          00:23:34:02
00:23:30:14
          00:23:37:20
00:23:34:02
          00:23:41:01
00:23:37:20
          00:23:46:17
00:23:41:01
          00:23:49:06
00:23:46:17
          00:23:52:05
00:23:49:06
          00:23:54:21
00:23:52:05
          00:23:58:22
00:23:54:21
          00:24:02:10
00:23:58:22
          00:24:06:16
00:24:02:10
          00:24:10:03
00:24:06:16
          00:24:13:07
00:24:10:03
          00:24:16:09
00:24:13:07
          00:24:20:19
00:24:16:09
          00:24:24:07
00:24:20:19
          00:24:27:06
00:24:24:07
          00:24:30:04
00:24:27:06
          00:24:34:01
00:24:30:04
          00:24:38:04
00:24:34:01
          00:24:41:03
00:24:38:04
          00:24:44:00
00:24:41:03
          00:24:48:11
00:24:44:00
          00:24:53:00
00:24:48:11
          00:24:56:20
00:24:53:00
          00:24:59:16
00:24:56:20
          00:25:02:20
00:24:59:16
          00:25:06:09
00:25:02:20
          00:25:09:06
00:25:06:09
          00:25:12:13
00:25:09:06
          00:25:16:00
00:25:12:13
          00:25:19:21
00:25:16:00
          00:25:22:16
00:25:19:21
          00:25:25:10
00:25:22:16
          00:25:27:17
00:25:25:10
          00:25:31:05
00:25:27:17
          00:25:33:24
00:25:31:05
          00:25:37:16
00:25:33:24
          00:25:42:03
00:25:37:16
          00:25:45:10
00:25:42:03
          00:25:49:07
00:25:45:10
          00:25:53:01
00:25:49:07
          00:25:55:13
00:25:53:01
          00:25:59:03
00:25:55:13
          00:26:02:10
00:25:59:03
          00:26:05:13
00:26:02:10
          00:26:08:00
00:26:05:13
          00:26:10:16
00:26:08:00
          00:26:13:20
00:26:10:16
          00:26:17:08
00:26:13:20
          00:26:20:16
00:26:17:08
          00:26:23:06
00:26:20:16
          00:26:25:22
00:26:23:06
          00:26:30:04
00:26:25:22
          00:26:32:13
00:26:30:04
          00:26:35:17
00:26:32:13
          00:26:39:03
00:26:35:17
          00:26:42:11
00:26:39:03
          00:26:46:04
00:26:42:11
          00:26:50:08
00:26:46:04
          00:26:52:20
00:26:50:08
          00:26:57:02
00:26:52:20
          00:26:59:12
00:26:57:02
          00:27:03:09
00:26:59:12
          00:27:07:24
00:27:03:09
          00:27:09:16
00:27:07:24
          00:27:12:07
00:27:09:16
          00:27:18:22
00:27:12:07
          00:27:24:21
00:27:18:22
          00:27:28:23
00:27:24:21
          00:27:34:04
00:27:28:23
          00:27:37:12
00:27:34:04
          00:27:42:02
00:27:37:12
          00:27:47:18
00:27:42:02
          00:27:53:18
00:27:47:18
          00:27:59:24
00:27:53:18
          00:28:03:19
00:27:59:24
          00:28:09:11
00:28:03:19
          00:28:14:17
00:28:09:11
          00:28:19:23
00:28:14:17
          00:28:25:20
00:28:19:23
          00:28:29:12
00:28:25:20
          00:28:34:16
00:28:29:12
          00:28:40:14
00:28:34:16
          00:28:44:00
00:28:40:14
          00:28:48:13
00:28:44:00
          00:28:53:12
00:28:48:13
          00:28:58:21
00:28:53:12
          00:29:04:11
00:28:58:21
          00:29:09:07
00:29:04:11
          00:29:14:08
00:29:09:07
          00:29:18:17
00:29:14:08
          00:29:23:09
00:29:18:17
          00:29:28:11
00:29:23:09
          00:29:33:01
00:29:28:11
          00:29:38:24
00:29:33:01
          00:29:43:14
00:29:38:24
          00:29:48:16
00:29:43:14
          00:29:51:08
00:29:48:16
          00:29:55:07
00:29:51:08
          00:30:00:10
00:29:55:07
          00:30:04:17
00:30:00:10
          00:30:09:24
00:30:04:17
          00:30:14:17
00:30:09:24
          00:30:18:21
00:30:14:17
          00:30:25:16
00:30:18:21
          00:30:29:12
00:30:25:16
          00:30:32:09
00:30:29:12
          00:30:36:13
00:30:32:09
          00:30:40:24
00:30:36:13
          00:30:44:05
00:30:40:24
          00:30:47:00
00:30:44:05
          00:30:50:01
00:30:47:00
          00:30:53:12
00:30:50:01
          00:30:57:01
00:30:53:12
          00:30:59:21
00:30:57:01
          00:31:03:09
00:30:59:21
          00:31:05:02
00:31:03:09
          00:31:08:11
00:31:05:02
          00:31:11:13
00:31:08:11
          00:31:14:01
00:31:11:13
          00:31:16:17
00:31:14:01
          00:31:20:20
00:31:16:17
          00:31:26:20
00:31:20:20
          00:31:28:24
00:31:26:20
          00:31:33:00
00:31:28:24
          00:31:36:18
00:31:33:00
          00:31:40:08
00:31:36:18
          00:31:43:18
00:31:40:08
          00:31:46:15
00:31:43:18
          00:31:50:06
00:31:46:15
          00:31:54:12
00:31:50:06
          00:31:57:21
00:31:54:12
          00:32:02:03
00:31:57:21
          00:32:06:11
00:32:02:03
          00:32:11:12
00:32:06:11
          00:32:15:00
00:32:11:12
          00:32:18:11
00:32:15:00
          00:32:21:15
00:32:18:11
          00:32:25:13
00:32:21:15
          00:32:29:05
00:32:25:13
          00:32:32:20
00:32:29:05
          00:32:36:08
00:32:32:20
          00:32:38:12
00:32:36:08
          00:32:42:07
00:32:38:12
          00:32:46:18
00:32:42:07
          00:32:49:10
00:32:46:18
          00:32:52:22
00:32:49:10
          00:32:56:08
00:32:52:22
          00:32:59:15
00:32:56:08
          00:33:02:09
00:32:59:15
          00:33:06:16
00:33:02:09
          00:33:09:23
00:33:06:16
          00:33:12:20
00:33:09:23
          00:33:16:06
00:33:12:20
          00:33:19:22
00:33:16:06
          00:33:23:23
00:33:19:22
          00:33:27:02
00:33:23:23
          00:33:31:08
00:33:27:02
          00:33:35:06
00:33:31:08
          00:33:37:22
00:33:35:06
          00:33:40:00
00:33:37:22
          00:33:43:15
00:33:40:00
          00:33:47:18
00:33:43:15
          00:33:50:18
00:33:47:18
          00:33:53:24
00:33:50:18
          00:33:57:08
00:33:53:24
          00:34:00:06
00:33:57:08
          00:34:03:20
00:34:00:06
          00:34:06:13
00:34:03:20
          00:34:09:11
00:34:06:13
          00:34:11:22
00:34:09:11
          00:34:16:02
00:34:11:22
          00:34:20:04
00:34:16:02
          00:34:23:08
00:34:20:04
          00:34:27:12
00:34:23:08
          00:34:30:22
00:34:27:12
          00:34:33:06
00:34:30:22
          00:34:37:01
00:34:33:06
          00:34:40:17
00:34:37:01
          00:34:44:12
00:34:40:17
          00:34:47:02
00:34:44:12
          00:34:50:16
00:34:47:02
          00:34:54:03
00:34:50:16
          00:34:57:02
00:34:54:03
          00:34:59:11
00:34:57:02
          00:35:03:20
00:34:59:11
          00:35:06:06
00:35:03:20
          00:35:09:14
00:35:06:06
          00:35:12:10
00:35:09:14
          00:35:15:01
00:35:12:10
          00:35:17:19
00:35:15:01
          00:35:20:15
00:35:17:19
          00:35:23:07
00:35:20:15
          00:35:26:16
00:35:23:07
          00:35:30:00
00:35:26:16
          00:35:32:17
00:35:30:00
          00:35:35:06
00:35:32:17
          00:35:40:00
00:35:35:06
          00:35:43:00
00:35:40:00
          00:35:46:00
00:35:43:00
          00:35:50:14
00:35:46:00
          00:35:55:10
00:35:50:14
          00:35:57:08
00:35:55:10
          00:35:59:14
00:35:57:08
          00:36:02:17
00:35:59:14
          00:36:06:04
00:36:02:17
          00:36:08:03
00:36:06:04
          00:36:10:22
00:36:08:03
          00:36:14:21
00:36:10:22
          00:36:16:18
00:36:14:21
          00:36:19:21
00:36:16:18
          00:36:22:11
00:36:19:21
          00:36:25:19
00:36:22:11
          00:36:30:24
00:36:25:19
          00:36:34:07
00:36:30:24
          00:36:36:13
00:36:34:07
          00:36:39:07
00:36:36:13
          00:36:42:04
00:36:39:07
          00:36:44:21
00:36:42:04
          00:36:49:01
00:36:44:21
          00:36:51:23
00:36:49:01
          00:36:54:20
00:36:51:23
          00:36:56:15
00:36:54:20
          00:37:00:22
00:36:56:15
          00:37:04:06
00:37:00:22
          00:37:07:18
00:37:04:06
          00:37:11:16
00:37:07:18
          00:37:14:09
00:37:11:16
          00:37:17:09
00:37:14:09
          00:37:21:06
00:37:17:09
          00:37:24:21
00:37:21:06
          00:37:29:21
00:37:24:21
          00:37:32:13
00:37:29:21
          00:37:35:09
00:37:32:13
          00:37:37:24
00:37:35:09
          00:37:42:03
00:37:37:24
          00:37:44:21
00:37:42:03
          00:37:49:24
00:37:44:21
          00:37:54:16
00:37:49:24
          00:37:57:12
00:37:54:16
          00:38:00:11
00:37:57:12
          00:38:03:19
00:38:00:11
          00:38:06:19
00:38:03:19
          00:38:09:23
00:38:06:19
          00:38:12:20
00:38:09:23
          00:38:16:21
00:38:12:20
          00:38:19:20
00:38:16:21
          00:38:24:01
00:38:19:20
          00:38:28:01
00:38:24:01
          00:38:32:19
00:38:28:01
          00:38:38:06
00:38:32:19
          00:38:41:10
00:38:38:06
          00:38:44:06
00:38:41:10
          00:38:46:22
00:38:44:06
          00:38:50:08
00:38:46:22
          00:38:53:09
00:38:50:08
          00:38:56:13
00:38:53:09
          00:39:00:10
00:38:56:13
          00:39:03:04
00:39:00:10
          00:39:06:01
00:39:03:04
          00:39:09:05
00:39:06:01
          00:39:11:09
00:39:09:05
          00:39:14:04
00:39:11:09
          00:39:15:20
00:39:14:04
          00:39:19:06
00:39:15:20
          00:39:23:06
00:39:19:06
          00:39:26:08
00:39:23:06
          00:39:30:08
00:39:26:08
          00:39:32:20
00:39:30:08
          00:39:35:19
00:39:32:20
          00:39:39:10
00:39:35:19
          00:39:43:12
00:39:39:10
          00:39:47:18
00:39:43:12
          00:39:51:17
00:39:47:18
          00:39:53:24
00:39:51:17
          00:39:57:07
00:39:53:24
          00:40:00:00
00:39:57:07
          00:40:04:12
00:40:00:00
          00:40:08:01
00:40:04:12
          00:40:11:24
00:40:08:01
          00:40:15:18
00:40:11:24
          00:40:18:23
00:40:15:18
          00:40:22:02
00:40:18:23
          00:40:25:04
00:40:22:02
          00:40:28:02
00:40:25:04
          00:40:30:21
00:40:28:02
          00:40:33:05
00:40:30:21
          00:40:37:14
00:40:33:05
          00:40:40:11
00:40:37:14
          00:40:44:19
00:40:40:11
          00:40:47:15
00:40:44:19
          00:40:50:21
00:40:47:15
          00:40:54:17
00:40:50:21
          00:40:57:19
00:40:54:17
          00:41:00:18
00:40:57:19
          00:41:04:07
00:41:00:18
          00:41:08:01
00:41:04:07
          00:41:10:22
00:41:08:01
          00:41:13:24
00:41:10:22
          00:41:17:06
00:41:13:24
          00:41:21:01
00:41:17:06
          00:41:24:14
00:41:21:01
          00:41:28:22
00:41:24:14
          00:41:32:06
00:41:28:22
          00:41:40:17
00:41:32:06
          00:41:45:18
00:41:40:17
          00:41:48:23
00:41:45:18
          00:41:53:01
00:41:48:23
          00:41:55:10
00:41:53:01
          00:41:59:06
00:41:55:10
          00:42:02:24
00:41:59:06
          00:42:06:07
00:42:02:24
          00:42:09:07
00:42:06:07
          00:42:12:19
00:42:09:07
          00:42:16:13
00:42:12:19
          00:42:18:18
00:42:16:13
          00:42:22:10
00:42:18:18
          00:42:25:01
00:42:22:10
          00:42:31:00
00:42:25:01
          00:42:34:17
00:42:31:00
          00:42:37:11
00:42:34:17
          00:42:41:02
00:42:37:11
          00:42:45:10
00:42:41:02
          00:42:48:23
00:42:45:10
          00:42:51:03
00:42:48:23
          00:42:54:00
00:42:51:03
          00:42:58:17
00:42:54:00
          00:43:03:19
00:42:58:17
          00:43:07:02
00:43:03:19
          00:43:10:06
00:43:07:02
          00:43:15:12
00:43:10:06
          00:43:20:07
00:43:15:12
          00:43:24:14
00:43:20:07
          00:43:27:16
00:43:24:14
          00:43:30:21
00:43:27:16
          00:43:33:09
00:43:30:21
          00:43:37:11
00:43:33:09
          00:43:40:08
00:43:37:11
          00:43:43:14
00:43:40:08
          00:43:46:18
00:43:43:14
          00:43:49:24
00:43:46:18
          00:43:54:08
00:43:49:24
          00:43:59:11
00:43:54:08
          00:44:03:17
00:43:59:11
          00:44:09:16
00:44:03:17
          00:44:14:07
00:44:09:16
          00:44:17:11
00:44:14:07
          00:44:21:07
00:44:17:11
          00:44:25:19
00:44:21:07
          00:44:28:15
00:44:25:19
          00:44:34:08
00:44:28:15
          00:44:38:18
00:44:34:08
          00:44:41:21
00:44:38:18
          00:44:45:06
00:44:41:21
          00:44:48:15
00:44:45:06
          00:44:51:09
00:44:48:15
          00:44:55:01
00:44:51:09
          00:44:58:13
00:44:55:01
          00:45:02:15
00:44:58:13
          00:45:07:03
00:45:02:15
          00:45:10:00
00:45:07:03
          00:45:13:18
00:45:10:00
          00:45:19:15
00:45:13:18
          00:45:23:01
00:45:19:15
          00:45:25:22
00:45:23:01
          00:45:29:07
00:45:25:22
          00:45:32:18
00:45:29:07
          00:45:36:16
00:45:32:18
          00:45:39:24
00:45:36:16
          00:45:45:00
00:45:39:24
          00:45:47:13
00:45:45:00
          00:45:51:24
00:45:47:13
          00:45:54:02
00:45:51:24
          00:45:56:04
00:45:54:02
          00:46:00:16
00:45:56:04
          00:46:04:16
00:46:00:16
          00:46:07:17
00:46:04:16
          00:46:11:08
00:46:07:17
          00:46:16:05
00:46:11:08
          00:46:21:13
00:46:16:05
          00:46:26:23
00:46:21:13
          00:46:31:18
00:46:26:23
          00:46:35:06
00:46:31:18
          00:46:38:05
00:46:35:06
          00:46:40:17
00:46:38:05
          00:46:44:22
00:46:40:17
          00:46:49:07
00:46:44:22
          00:46:56:01
00:46:49:07
          00:46:59:19
00:46:56:01
          00:47:05:03
00:46:59:19
          00:47:08:20
00:47:05:03
          00:47:12:09
00:47:08:20
          00:47:18:05
00:47:12:09
          00:47:24:00
00:47:18:05
          00:47:27:07
00:47:24:00
          00:47:31:05
00:47:27:07
          00:47:33:15
00:47:31:05
          00:47:36:14
00:47:33:15
          00:47:39:20
00:47:36:14
          00:47:43:12
00:47:39:20
          00:47:48:12
00:47:43:12
          00:47:53:13
00:47:48:12
          00:47:56:22
00:47:53:13
          00:48:00:05
00:47:56:22
          00:48:04:09
00:48:00:05
          00:48:07:09
00:48:04:09
          00:48:11:19
00:48:07:09
          00:48:15:24
00:48:11:19
          00:48:20:11
00:48:15:24
          00:48:24:18
00:48:20:11
          00:48:27:19
00:48:24:18
          00:48:32:24
00:48:27:19
          00:48:37:19
00:48:32:24
          00:48:40:18
00:48:37:19
          00:48:44:09
00:48:40:18
          00:48:47:20
00:48:44:09
          00:48:51:18
00:48:47:20
          00:48:55:02
00:48:51:18
          00:48:58:10
00:48:55:02
          00:49:03:06
00:48:58:10
          00:49:06:21
00:49:03:06
          00:49:10:10
00:49:06:21
          00:49:15:11
00:49:10:10
          00:49:20:21
00:49:15:11
          00:49:24:04
00:49:20:21
          00:49:29:08
00:49:24:04
          00:49:33:21
00:49:29:08
          00:49:37:17
00:49:33:21
          00:49:40:04
00:49:37:17
          00:49:45:12
00:49:40:04
          00:49:49:13
00:49:45:12
          00:49:52:12
00:49:49:13
          00:49:56:06
00:49:52:12
          00:50:00:03
00:49:56:06
          00:50:04:08
00:50:00:03
          00:50:08:03
00:50:04:08
          00:50:12:08
00:50:08:03
          00:50:16:18
00:50:12:08
          00:50:21:00
00:50:16:18
          00:50:27:15
00:50:21:00
          00:50:39:07
00:50:27:15
          00:50:42:23
00:50:39:07
          00:50:44:18
00:50:42:23
          00:50:47:05
00:50:44:18
          00:50:50:16
00:50:47:05
          00:50:53:19
00:50:50:16
          00:50:58:06
00:50:53:19
          00:51:01:17
00:50:58:06
          00:51:08:04
00:51:01:17
          00:51:13:03
00:51:08:04
          00:51:17:12
00:51:13:03
          00:51:21:05
00:51:17:12
          00:51:24:23
00:51:21:05
          00:51:30:08
00:51:24:23
          00:51:38:17
00:51:30:08
          00:51:41:06
00:51:38:17
          00:51:45:00
00:51:41:06
          00:51:47:23
00:51:45:00
          00:51:51:02
00:51:47:23
          00:51:54:20
00:51:51:02
          00:52:01:03
00:51:54:20
          00:52:03:02
00:52:01:03
          00:52:06:07
00:52:03:02
          00:52:09:13
00:52:06:07
          00:52:11:20
00:52:09:13
          00:52:14:24
00:52:11:20
          00:52:18:17
00:52:14:24
          00:52:21:16
00:52:18:17
          00:52:26:18
00:52:21:16
          00:52:31:08
00:52:26:18
          00:52:36:22
00:52:31:08
          00:52:38:22
00:52:36:22
          00:52:43:13
00:52:38:22
          00:52:47:10
00:52:43:13
          00:52:51:11
00:52:47:10
          00:52:54:22
00:52:51:11
          00:52:57:18
00:52:54:22
          00:53:01:04
00:52:57:18
          00:53:03:10
00:53:01:04
          00:53:05:20
00:53:03:10
          00:53:08:14
00:53:05:20
          00:53:12:07
00:53:08:14
          00:53:17:04
00:53:12:07
          00:53:19:23
00:53:17:04
          00:53:22:14
00:53:19:23
          00:53:25:24
00:53:22:14
          00:53:30:05
00:53:25:24
          00:53:32:17
00:53:30:05
          00:53:36:24
00:53:32:17
          00:53:40:11
00:53:36:24
          00:53:45:02
00:53:40:11
          00:53:49:06
00:53:45:02
          00:53:52:14
00:53:49:06
          00:53:55:24
00:53:52:14
          00:54:00:10
00:53:55:24
          00:54:03:12
00:54:00:10
          00:54:07:24
00:54:03:12
          00:54:10:12
00:54:07:24
          00:54:13:18
00:54:10:12
          00:54:16:23
00:54:13:18
          00:54:21:05
00:54:16:23
          00:54:24:11
00:54:21:05
          00:54:27:08
00:54:24:11
          00:54:31:07
00:54:27:08
          00:54:35:12
00:54:31:07
          00:54:39:04
00:54:35:12
          00:54:41:19
00:54:39:04
          00:54:44:22
00:54:41:19
          00:54:47:20
00:54:44:22
          00:54:50:01
00:54:47:20
          00:54:54:03
00:54:50:01
          00:54:58:01
00:54:54:03
          00:55:02:09
00:54:58:01
          00:55:05:16
00:55:02:09
          00:55:08:10
00:55:05:16
          00:55:13:04
00:55:08:10
          00:55:20:17
00:55:13:04
          00:55:26:03
00:55:20:17
          00:55:28:19
00:55:26:03
          00:55:31:20
00:55:28:19
          00:55:34:17
00:55:31:20
          00:55:40:16
00:55:34:17
          00:55:45:07
00:55:40:16
          00:55:48:15
00:55:45:07
          00:55:51:02
00:55:48:15
          00:55:53:16
00:55:51:02
          00:55:56:15
00:55:53:16
          00:56:00:13
00:55:56:15
          00:56:04:00
00:56:00:13
          00:56:07:01
00:56:04:00
          00:56:11:00
00:56:07:01
          00:56:13:15
00:56:11:00
          00:56:16:10
00:56:13:15
          00:56:29:24
00:56:16:10
          00:56:32:15
00:56:29:24
          00:56:35:20
00:56:32:15
          00:56:40:14
00:56:35:20
          00:56:43:24
00:56:40:14
          00:56:47:08
00:56:43:24
          00:56:50:11
00:56:47:08
          00:56:55:04
00:56:50:11
          00:56:58:13
00:56:55:04
          00:57:02:23
00:56:58:13
          00:57:06:12
00:57:02:23
          00:57:10:02
00:57:06:12
          00:57:14:13
00:57:10:02
          00:57:17:17
00:57:14:13
          00:57:21:04
00:57:17:17
          00:57:37:02
00:57:21:04
          00:57:40:02
00:57:37:02
          00:57:43:23
00:57:40:02
          00:57:46:19
00:57:43:23
          00:57:49:22
00:57:46:19
          00:57:52:24
00:57:49:22
          00:57:57:06
00:57:52:24
          00:58:00:07
00:57:57:06
          00:58:03:20
00:58:00:07
          00:58:07:07
00:58:03:20
          00:58:10:09
00:58:07:07
          00:58:14:08
00:58:10:09
          00:58:19:13
00:58:14:08
          00:58:22:16
00:58:19:13
          00:58:25:11
00:58:22:16
          00:58:28:16
00:58:25:11
          00:58:33:04
00:58:28:16
          00:58:36:04
00:58:33:04
          00:58:39:03
00:58:36:04
          00:58:44:06
00:58:39:03
          00:58:47:03
00:58:44:06
          00:58:49:12
00:58:47:03
          00:58:53:15
00:58:49:12
          00:58:55:21
00:58:53:15
          00:58:59:09
00:58:55:21
          00:59:02:09
00:58:59:09
          00:59:05:01
00:59:02:09
          00:59:08:14
00:59:05:01
          00:59:11:00
00:59:08:14
          00:59:14:15
00:59:11:00
          00:59:17:18
00:59:14:15
          00:59:20:03
00:59:17:18
          00:59:23:10
00:59:20:03
          00:59:28:03
00:59:23:10
          00:59:30:17
00:59:28:03
          00:59:34:18
00:59:30:17
          00:59:38:07
00:59:34:18
          00:59:41:10
00:59:38:07
          00:59:45:05
00:59:41:10
          00:59:49:12
00:59:45:05
          00:59:52:11
00:59:49:12
          00:59:56:07
00:59:52:11
          01:00:01:07
00:59:56:07
          01:00:05:11
01:00:01:07
          01:00:08:15
01:00:05:11
          01:00:12:18
01:00:08:15
          01:00:16:13
01:00:12:18
          01:00:20:02
01:00:16:13
          01:00:23:15
01:00:20:02
          01:00:26:06
01:00:23:15
          01:00:29:03
01:00:26:06
          01:00:32:00
01:00:29:03
          01:00:35:01
01:00:32:00
          01:00:39:11
01:00:35:01
          01:00:41:17
01:00:39:11
          01:00:44:05
01:00:41:17
          01:00:46:24
01:00:44:05
          01:00:50:16
01:00:46:24
          01:00:54:24
01:00:50:16
          01:00:57:22
01:00:54:24
          01:01:01:10
01:00:57:22
          01:01:05:24
01:01:01:10
          01:01:11:00
01:01:05:24
          01:01:15:09
01:01:11:00
          01:01:18:07
01:01:15:09
          01:01:22:09
01:01:18:07
          01:01:25:20
01:01:22:09
          01:01:28:21
01:01:25:20
          01:01:32:08
01:01:28:21
          01:01:34:13
01:01:32:08
          01:01:38:02
01:01:34:13
          01:01:41:10
01:01:38:02
          01:01:45:05
01:01:41:10
          01:01:48:12
01:01:45:05
          01:01:51:20
01:01:48:12
          01:01:54:24
01:01:51:20
          01:01:57:20
01:01:54:24
          01:02:00:21
01:01:57:20
          01:02:04:01
01:02:00:21
          01:02:07:11
01:02:04:01
          01:02:11:14
01:02:07:11
          01:02:14:01
01:02:11:14
          01:02:16:23
01:02:14:01
          01:02:19:04
01:02:16:23
          01:02:21:14
01:02:19:04
          01:02:24:18
01:02:21:14
          01:02:27:19
01:02:24:18
          01:02:30:01
01:02:27:19
          01:02:33:03
01:02:30:01
          01:02:36:00
01:02:33:03
          01:02:43:10
01:02:36:00
          01:02:47:14
01:02:43:10
          01:02:51:02
01:02:47:14
          01:02:54:07
01:02:51:02
          01:02:58:23
01:02:54:07
          01:03:03:15
01:02:58:23
          01:03:06:18
01:03:03:15
          01:03:10:02
01:03:06:18
          01:03:12:09
01:03:10:02
          01:03:16:07
01:03:12:09
          01:03:21:21
01:03:16:07
          01:03:27:10
01:03:21:21
          01:03:31:22
01:03:27:10
          01:03:38:00
01:03:31:22
          01:03:42:01
01:03:38:00
          01:03:45:02
01:03:42:01
          01:03:49:10
01:03:45:02
          01:03:53:14
01:03:49:10
          01:03:57:19
01:03:53:14
          01:04:03:01
01:03:57:19
          01:04:06:00
01:04:03:01
          01:04:08:15
01:04:06:00
          01:04:11:11
01:04:08:15
          01:04:15:12
01:04:11:11
          01:04:20:04
01:04:15:12
          01:04:24:04
01:04:20:04
          01:04:27:14
01:04:24:04
          01:04:31:22
01:04:27:14
          01:04:37:00
01:04:31:22
          01:04:40:16
01:04:37:00
          01:04:44:21
01:04:40:16
          01:04:49:01
01:04:44:21
          01:04:55:02
01:04:49:01
          01:04:57:24
01:04:55:02
          01:05:00:23
01:04:57:24
          01:05:04:18
01:05:00:23
          01:05:07:21
01:05:04:18
          01:05:13:02
01:05:07:21
          01:05:20:05
01:05:13:02
          01:05:24:07
01:05:20:05
          01:05:31:20
01:05:24:07
          01:05:35:03
01:05:31:20
          01:05:38:24
01:05:35:03
          01:05:41:21
01:05:38:24
          01:05:44:02
01:05:41:21
          01:05:50:09
01:05:44:02
          01:05:54:13
01:05:50:09
          01:05:57:11
01:05:54:13
          01:06:01:10
01:05:57:11
          01:06:04:06
01:06:01:10
          01:06:06:20
01:06:04:06
          01:06:10:15
01:06:06:20
          01:06:17:15
01:06:10:15
          01:06:21:17
01:06:17:15
          01:06:25:20
01:06:21:17
          01:06:29:13
01:06:25:20
          01:06:34:01
01:06:29:13
          01:06:38:15
01:06:34:01
          01:06:42:10
01:06:38:15
          01:06:46:00
01:06:42:10
          01:06:49:18
01:06:46:00
          01:06:54:15
01:06:49:18
          01:06:58:19
01:06:54:15
          01:07:03:05
01:06:58:19
          01:07:07:12
01:07:03:05
          01:07:10:03
01:07:07:12
          01:07:15:15
01:07:10:03
          01:07:24:09
01:07:15:15
          01:07:26:23
01:07:24:09
          01:07:34:11
01:07:26:23
          01:07:37:24
01:07:34:11
          01:07:40:06
01:07:37:24
          01:07:44:18
01:07:40:06
          01:07:49:10
01:07:44:18
          01:07:55:09
01:07:49:10
          01:08:04:19
01:07:55:09
          01:08:10:19
01:08:04:19
          01:08:14:12
01:08:10:19
          01:08:21:02
01:08:14:12
          01:08:31:19
01:08:21:02
          01:08:37:08
01:08:31:19
          01:08:40:05
01:08:37:08
          01:08:44:05
01:08:40:05
          01:08:48:13
01:08:44:05
          01:08:51:19
01:08:48:13
          01:08:57:03
01:08:51:19
          01:09:01:18
01:08:57:03
          01:09:07:04
01:09:01:18
          01:09:11:24
01:09:07:04
          01:09:17:23
01:09:11:24
          01:09:21:08
01:09:17:23
          01:09:27:00
01:09:21:08
          01:09:32:03
01:09:27:00
          01:09:37:12
01:09:32:03
          01:09:43:16
01:09:37:12
          01:09:46:21
01:09:43:16
          01:09:52:00
01:09:46:21
          01:09:56:19
01:09:52:00
          01:09:59:22
01:09:56:19
          01:10:06:19
01:09:59:22
          01:10:10:02
01:10:06:19
          01:10:13:08
01:10:10:02
          01:10:21:20
01:10:13:08
          01:10:24:18
01:10:21:20
          01:10:28:16
01:10:24:18
          01:10:31:08
01:10:28:16
          01:10:35:11
01:10:31:08
          01:10:39:13
01:10:35:11
          01:10:44:17
01:10:39:13
          01:10:48:18
01:10:44:17
          01:10:57:05
01:10:48:18
          01:11:04:19
01:10:57:05
          01:11:09:03
01:11:04:19
          01:11:12:14
01:11:09:03
          01:11:14:18
01:11:12:14
          01:11:20:21
01:11:14:18
          01:11:25:09
01:11:20:21
          01:11:29:08
01:11:25:09
          01:11:32:19
01:11:29:08
          01:11:35:23
01:11:32:19
          01:11:39:08
01:11:35:23
          01:11:41:23
01:11:39:08
          01:11:45:09
01:11:41:23
          01:11:47:14
01:11:45:09
          01:11:50:14
01:11:47:14
          01:11:53:08
01:11:50:14
          01:11:55:13
01:11:53:08
          01:11:57:18
01:11:55:13
          01:12:00:12
01:11:57:18
          01:12:04:09
01:12:00:12
          01:12:07:05
01:12:04:09
          01:12:09:13
01:12:07:05
          01:12:12:16
01:12:09:13
          01:12:15:13
01:12:12:16
          01:12:20:11
01:12:15:13
          01:12:24:21
01:12:20:11
          01:12:29:05
01:12:24:21
          01:12:35:23
01:12:29:05
          01:12:39:07
01:12:35:23
          01:12:43:15
01:12:39:07
          01:12:47:01
01:12:43:15
          01:12:50:20
01:12:47:01
          01:12:54:05
01:12:50:20
          01:12:56:18
01:12:54:05
          01:12:59:05
01:12:56:18
          01:13:04:10
01:12:59:05
          01:13:08:06
01:13:04:10
          01:13:11:06
01:13:08:06
          01:13:15:03
01:13:11:06
          01:13:18:04
01:13:15:03
          01:13:22:12
01:13:18:04
          01:13:26:19
01:13:22:12
          01:13:31:16
01:13:26:19
          01:13:35:24
01:13:31:16
          01:13:40:02
01:13:35:24
          01:13:45:16
01:13:40:02
          01:13:48:23
01:13:45:16
          01:13:53:18
01:13:48:23
          01:13:57:18
01:13:53:18
          01:14:03:02
01:13:57:18
          01:14:08:16
01:14:03:02
          01:14:11:15
01:14:08:16
          01:14:17:10
01:14:11:15
          01:14:20:24
01:14:17:10
          01:14:23:23
01:14:20:24
          01:14:27:04
01:14:23:23
          01:14:31:13
01:14:27:04
          01:14:36:24
01:14:31:13
          01:14:41:12
01:14:36:24
          01:14:47:06
01:14:41:12
          01:14:51:20
01:14:47:06
          01:14:57:06
01:14:51:20
          01:15:03:10
01:14:57:06
          01:15:10:05
01:15:03:10
          01:15:14:05
01:15:10:05
          01:15:19:23
01:15:14:05
          01:15:23:02
01:15:19:23
          01:15:27:04
01:15:23:02
          01:15:33:21
01:15:27:04
          01:15:38:10
01:15:33:21
          01:15:42:09
01:15:38:10
          01:15:45:01
01:15:42:09
          01:15:48:18
01:15:45:01
          01:15:52:16
01:15:48:18
          01:15:56:12
01:15:52:16
          01:16:02:13
01:15:56:12
          01:16:05:15
01:16:02:13
          01:16:10:00
01:16:05:15
          01:16:12:05
01:16:10:00
          01:16:14:22
01:16:12:05
          01:16:17:17
01:16:14:22
          01:16:20:16
01:16:17:17
          01:16:21:21
01:16:20:16
          01:16:24:03
01:16:21:21
          01:16:30:06
01:16:24:03
          01:16:33:20
01:16:30:06
          01:16:36:15
01:16:33:20
          01:16:39:16
01:16:36:15
          01:16:44:06
01:16:39:16
          01:16:47:14
01:16:44:06
          01:16:49:24
01:16:47:14
          01:16:53:07
01:16:49:24
          01:16:57:02
01:16:53:07
          01:17:02:00
01:16:57:02
          01:17:06:12
01:17:02:00
          01:17:09:00
01:17:06:12
          01:17:11:01
01:17:09:00
          01:17:13:17
01:17:11:01
          01:17:15:21
01:17:13:17
          01:17:19:04
01:17:15:21
          01:17:24:09
01:17:19:04
          01:17:27:06
01:17:24:09
          01:17:29:20
01:17:27:06
          01:17:32:07
01:17:29:20
          01:17:36:02
01:17:32:07
          01:17:38:15
01:17:36:02
          01:17:41:11
01:17:38:15
          01:17:45:13
01:17:41:11
          01:17:48:15
01:17:45:13
          01:17:51:21
01:17:48:15
          01:17:54:24
01:17:51:21
          01:17:57:20
01:17:54:24
          01:18:00:23
01:17:57:20
          01:18:04:02
01:18:00:23
          01:18:07:00
01:18:04:02
          01:18:09:14
01:18:07:00
          01:18:12:13
01:18:09:14
          01:18:16:14
01:18:12:13
          01:18:19:09
01:18:16:14
          01:18:23:02
01:18:19:09
          01:18:27:07
01:18:23:02
          01:18:30:21
01:18:27:07
          01:18:33:22
01:18:30:21
          01:18:35:20
01:18:33:22
          01:18:38:11
01:18:35:20
          01:18:41:14
01:18:38:11
          01:18:44:10
01:18:41:14
          01:18:48:01
01:18:44:10
          01:18:50:22
01:18:48:01
          01:18:54:01
01:18:50:22
          01:18:57:19
01:18:54:01
          01:19:01:00
01:18:57:19
          01:19:03:24
01:19:01:00
          01:19:06:14
01:19:03:24
          01:19:09:11
01:19:06:14
          01:19:11:01
01:19:09:11
          01:19:13:18
01:19:11:01
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it on it’s way out, because North Wind is going to expect
messages in EDI compliant formats, but we don’t use EDI internally
we’re using our own formats that make sense for our business.
So we can see that the test messages have been pushed through,
if we go in here and again we’ll just verify that North Wind is actually
showing up as a new partner, here we can see that.
Our business activity monitoring automatically picks up that new activity.
We don’t actually have to change any of the instrumentation that’s in the
system it shows up as just yet another trading partner.
Excellent, so I can push that up to the BI guys if+A1025 I wanted to,
the business people if they want to see it, I don’t think they’d want to see
this detail, but we can get it to them. This is an IT specific view it comes
out of the box with BizTalk, very easy to get up and running quickly
so that you can quickly get visibility into your processes,
but you would want to create another view using score card manager or
perhaps SQL Server reporting services for the BI, for the business folks.
Given time I assume that when you’re done you’d package this up for
deployment? Yeah, you would, one of the things we wanted to do was to
actually interface to this business process through web services
so BizTalk provides a variety of communications support,
so if you wanted to send stuff in through FTP or send it in as I mentioned
through EDI or as a proprietary flat files you could do that. If you want to
expose the business processes as services to the rest of your
environment, you can certainly do that using our web services publishing
wizard, and so with this tool basically allows you to go in and select any
particular BizTalk DLL that contains orchestrations and specify which
business processes you want to make available though a web services
interface and then it will automatically build the ASP.net façade in front
of your business process. So that is something that we’re actually going
to do after this meeting. The other thing that we wanted to do which you
just mentioned which was to package all of this up, because as you can
see there is a lot of moving parts in business process and integration
solutions which we’ve got various message schemas,
we’ve got transformations, we’ve got all this trading partner management
data, we have a business activity monitoring data, we have
business rules and so forth. That used to be a really hard problem to
solve, it used to be pretty complicated to make sure that when you were
going to move from one environment to another you actually had all
those dependencies gathered up and you were going to be able to move
everything in a consistent way, perhaps from Dev to QA, or from QA to
production, with BizTalk 2006 there is now a monitoring console that’s
going to allow us this time around to do this in a very seamless fashion,
it turns out that BizTalk will actually organise all the dependant artefacts
for a particular integration solution within a nice logical hierarchy here,
like you’d expect in a management console, what’s really great is I can
actually go in and export this thing directly to an MSI file, so this is just
going to package all the dependencies up from these various systems
into a single deployable file. And then once I have a MSI file I can deploy
it, I can use SMS files to deploy it more broadly, and I’m ready to go,
plus the other thing is we can also store this again in Team Foundation
Server so we’ve got all the information there and everything is ready to
go. Yeah, you check it in and you’ve got a snapshot of your integration
solution at a point in time and it’s an easily deployable thing across your
environment. So I think we’re going to go from there, thank you for your help
on that. Good, that so piece two from Chris. Now we’ve done the
architecture side, we’ve looked at the virtual data centre,
we’ve gone ahead and we’ve set up out data architecture that we want
to work with, Chris then helped us out with the order fulfilment using
BizTalk to do the orchestration, we’ve got new fulfilment partners we
need to be able to work with and the next level now is we’ve sort of got
the back end in and we need to integrate our data,
 and it turns out that the North Winds guys use a DB2 database and
so we’ve got to get the DB2 database, so we've got to get theDB2 data
 into our database, we then need to test that and make sure it works,
we want to turn on high availability since data is becoming a more
important part of our business we want to make sure we don’t lose
anything and we’re always up and running, especially as we’re doing
more web based sales and have guys on the road. Then I want to start
making that data available to both our business users and our sales
force. So now we’re going to keep working our way up through the
capabilities, and I’m going to ask Michael Raheem to come out and give
me a hand, and we need to get going here, so I’m going to have Michael
just dive in. OK, to start with, I am going to show you that the North Wind
legacy system is as we know on a legacy system on IBM DB2,
so as you see, here’s the IBM control centre on DB2,
here’s the North Wind database and here’s the customer table.
If we actually look at the data in here, we can see that the data has a lot
of legacy data and it has to be cleaned up; there is some duplicates
and so on. So before we bring this data into our Adventure works
database we need to clean it up, in order to do that I am going to take
advantage of something called the SQL Server Integration Services
which allows you to extract the data and transform and load it into our
Adventure works database. Between here there is, a data source as you
see, an OLE DB data source and it is pointing to IBM DB2 as I
mentioned. So if I run this package, (which I've already run,) I’m going to show
you the actual output of this package, you can see here you can see the
names and the scoring that is on the right side, this means how did that
name match, and how many duplicates are in there if you want to do a
correlation, if I scroll down for example you can see Pannarat is one of the
records in here, and there are multiple duplicate records that point to the
same name, maybe Pan for example is a match for this particular record
and he was a customer that was entered accidentally or accidentally
multiple times within the system. So this allows you to cleanse the
system before we bring it into out Adventure works database.
It’s important to clean up the data before we bring it in so we start fresh.
One of the other things that concerns you is now that the acquisition we
have these kiosks as you mentioned that we need to have to make sure
we have highly available databases, so with the SQL Server 2005
always on technologies I can take advantage of one of the features and
called database mirroring to make sure that the database is available in
case of either an upgrade that we want to perform if there is an
accidental fail over or if there is a system failure such as a national
disaster and so on. Now traditionally to set up database mirroring has
been very complex, it requires having special hardware to go with the
geoclusters and so on, this is completely with simple hardware and just
to show you for the first time you can actually go through a wizard to set
up database mirroring so you don’t have to go hire those consultants we
used to hire back in the days, it is just as simple as that. So I am going to
go through this, and take advantage of a witness here,
now, on the principle server I am going to point it to our Adventure
works, the mirror server and I am going to connect to our mirror and I am
going to have a witness here, just check the mirror here,
so here’s the mirror, click on next, and I’m going to have a witness
server and the advantage of the witness server is to ensure consistent
transactions between the principal and the mirror server,
so that witness makes sure it is either written in both places or in no
places but we never end up in a state where it is written in only one
place. So here we go, this is the mirroring set up, now I still have the
mirroring, so if we look actually on the management
studio you can see here there is our principal that is mirrored,
if we go to the mirror site and we look at the database right now if we
refresh it, you can see that now this is acting as the mirror.
Right, so setting up high availability in this case was pretty
straightforward, it has come a long way. Yes. Now the next thing I’m
going to show you is what we can do with our travelling sales people that
are in the field, so one of the problems we have right now is that our
sales field is travelling on the road and they want to have the ability to
take advantage of the pocket PC devices that we have in order to do
sales order entry while they are on the road. Now, they want to be able
to enter these orders on the road, but once they get back to the
corporate office, or to their offices to be able to sync up with the
corporate database, in order to do that we can take advantage of SQL
Everywhere as you know for occasionally connected systems.
So, here is a device, this is an emulator, you can imagine that this is just
having the device in your hand. The travelling sales person can go and
say “I want to do a sales order entry, for this particular application”.
Now, imagine he’s at a customer’s site and he wants to quickly go there
and enter this information right on the site.
The SQL Everywhere application, I can go here and select a customer,
say he’s at Responsible Bike Dealers currently, and within there the
Responsible Bike Dealer really likes the jersey that I’m wearing here,
so we’re going to create a new order for jerseys. So this is all working
locally, right, and not connected in this case. Right, this is as if you have
the device and you’re on the road and not connected to the office.A1159
I’m offline. Exactly, so on the product, it’s going to show me a list of
products where I am going to select the jersey, and I’m going to add that
to the order, and that’s it with that order entry. So here we go on the
jersey. Let’s say in this case he picks the cable lock.
And, this is all stored in SQL everywhere is running on the device and
once it comes back to the office to synchronise it everywhere will talk to
the Enterprise server. So, here we go, add the product, and add this to
the order, and we’re done with this order entry. Now, imagine the sales
person now comes to the office, and he cradles the pocket PC and that
causes the synchronisation so that the order is now entered,
and synchronised with the main database, in this case SQL Everywhere
and SQL Server running the Enterprise are synchronising that order
entry. So that is entered in the order entry system in Adventure works.
Now, to show once the synchronisation is done I am going to go ahead
and create a database to make sure that the order got in there.
So here is a stored procedure that shows me the orders and if I fire that
up, there is the cable lock that I have just created. Now, the SQL Server
as a data platform the extensibility model also allows us to do some of
the fun things. So just to show you how extensible this data platform is,
I created a little app which takes advantage of the MSN Messenger
extensibility, so imagine that travelling salesman being on the road and
he is interested in finding some financial information with regards to our
sales figures and so on. So, he logs into MSN Messenger with his
credentials, so right now the device is connected to the internet.
Right. And, within there I am going to start asking some of the questions,
just like in instant messenger where you can say, you can IM people.
I am going to go to something called the Adventure works bot,
the first thing I am going to tell the bot is ‘Hi’, and if you notice it says,
‘Hi, Michael you can ask any kind of questions that you want here are
some of the examples’. So, the first thing I am going to ask,
is ‘What are today’s orders’ and before I fire that up, just to show you
that this is not smoke and mirrors I am going to show you actually what
happens behind the scenes. So this is like a trace of commands that I
am entering onto this pocket PC device and you can view those on the
back A1194end. There is my "Hi" and you notice when I hit the next one,
now, the answer comes back and says here is the order that I just
entered, but here is the TSQL query that got fired up against our
Enterprise server, you know, in order to extract this information.
So I can go on and ask other questions, like what is the gross profit for
bikes? And, in this scenario if you look at the bot it will come back and,
in this scenario it is actually running an MDX query in order to get this.
So the first thing was a TSQL, and the second one is actually an MDX
Query. There are other fun things here we can do, is,
for example, say ‘Help’, it says just ask Steve, he knows all the answers.
So, this shows you some of the fun things you can do with the
extensibility of this. Thanks Michael, so now, we are working our way up
the stack, we have got our data in from North Winds,
we have actually surfaced it, we’ve set up high availability and we’ve
given folks access to it, had a little fun of using a bot on the front end of
SQL through MSN Messenger, so you can start to see again the
extensibility of the platform. The last thing we want to do now in this
scenario is to bring the information alive.
We actually, because we sell through a lot of bike stores and we sell
through a lot of stores we have kiosks in those stores, today they run a
web based application where you can search for information.
And I want to ask Paul to come out here and join me, what we want to
do is to take the opportunity whilst we’re updating this to update those
kiosks to a richer app we can take advantage of Windows Presentation
Foundation and the machines that are there to take advantage of the
hardware so instead of just running a web app I would like you to build
me a rich client app to take advantage and help us to sell the
merchandise, so I’m going to give you the screen here.
Alright Steve. So I have been working with a designer with this on this
kiosk for you and unfortunately the designer is actually sick today,
but she told me that she had finished getting through all of this so I had
to have a look at it myself, and I have been reviewing it and I have found
a couple of things that need updating, so I’ll just go and update those
things and we’ll get going. OK, so first off, this is our kiosk
screen and these three white panels are going to have videos overlaid
on them when customers walk in and see them, and we’re going to use
that to attract the customers' attention. Over on the left we have got this
browse products, and on the right we’ve got the shopping cart, these are
going to be fly-ins for different parts of the user interface.
Now, how they fly in is we use these animations down here on this
timeline so, one of these animations, this one is called "Category Fly In",
if I play that you can see the categories just move over there,
and it uses this time line that I can move back and forward.
Now, I notice that one of the things that isn’t finished,
is browse products needs to be a hotspot so that when you hover
over it actually flies that in. So, I’ll show you what’s needed in order to
go and set that up, in this little tree here, we can see the UI elements
and if I double click on this category Canvas, you notice the yellow line,
that means that I am adding a UI element, if I add one inside of that
container. We’ll go and add a rectangle in here, and I am going to use
this rectangle as my hotspot, in order to do that I need to make it
invisible so that it doesn’t actually show up, so I’ll make it transparent in
the appearance over here. And, now I’ve got my hotspot, all I need to do
is add it into the timeline, so we’ll go into the timeline properties and add
that trigger. So, what this means, is that all of this can be done by the
designer and no code is required in order to do that fly-in.
Ok, so we fixed that up, the other area where we were missing was in
the product details so, the product detail doesn’t actually show on the
screen normally, in the app, unless you’re actually viewing it.
And, we have these little eyes here, and you’ll notice that it’s not filled in
on the product detail one. This allows me to just edit a particular part of
the application. If I go and click on this we’ll see the product detail,
and here you can see various details about it, and the "add to cart" button
still needs to be lined up, so if I select that "add to cart", I can go in and
add the hook up to the animation, this is the animation here,
I can do that just the same. And, I am also going to put that on the
mouse click this time, also on that same button I need to actually add the
item to the shopping cart so I’ll go ahead and set an event on that,
on the click event so that we have got these two actions happening on
the click event, and this one we need some code to happen so we can
add to the shopping cart. So, this is added the stub to the code,
but we are in the designer tools so I am really finished now that we have
gone to code so I’ll go and save that, and Visual Studio 2005 shares the
same project files with Microsoft Expression Interactive Designer so
I can switch over to Visual Studio and you can see the new method that
has been added here for me to add that to the shopping cart,
I have the code here on my toolbox so I can go in and add that in,
and you can see it is just doing an add onto shopping cart with that new
item, and that’s all we need. Now, I can go ahead and build the solution,
and once that’s built we actually use one click deployment for this so that
we can make sure that the right version is always there in the kiosk.
So, the designer did all the work, saved it and then, you as a developer
came in and working in Visual Studio had the same code,
just looking at it from the code view. So again, it is that sharing of the
same code but with two different views to it, one from the design surface,
and one from a development surface. That builds that bridge between
the designer and the developer that we have been after.
Right and we can work a lot more closely together.
So, here’s the final app, I click on it here to launch it, and it does it’s one
click install checking the version. So now to install another kiosk without
me having to go out there, it’s not a change to the web browser it’s just
now adding the application the way I want to. Right, and you can see my
cool video is rotating there, grabbing the users attention and I can fly out
my browse products, select the products that I want to buy.
We have got a few bikes here, going to choose this one here,
you see the details flying in, this was the hidden pane remember,
I can see the details and I can rotate the bike because of course that’s
represented in XAML as well. I can zoom in and out too. And then we can
go and check out that shopping cart functionality that we did actually add
the bike to the cart. And if you've done that as a mouse over versus
a click so every time somebody moved over we can make them buy
something? That’s a great idea Steve, maybe we should implement that.
I am going to have to work with you on that we’ll do some of this coding.
Alright so there we go; our order is confirmed so thank you very much.
Much appreciated, thanks Paul. So, I want to thank my development
team they’ve done a lot of work here. And we’ll go back over sides.
We’ve taken you through a lot of information, but one of the things we
wanted to do here was to talk about the app platform all up,
right, how do we start with a project, we just apply another company,
we need to do some integration on the application side,
start with the architecture, look at how it’s going to work on the data
centre, build the data model, do the ordering integration, order fulfilment
process, the business processes and orchestration that we need to hook
together, we then need to actually import the data, we need to make that
data available either to the business users, or in this case the sales
force. We can do some programming there, and then ultimately make
the app available and bring the products to life. So, you can pick a
hundred different scenarios, we took pieces of one and we’ve shown you
pieces of a lot of different products and it’s how these products work
together that becomes part of the key to what we’re doing,
we build an overall app platform. You saw Windows Server underlying
this, but SQL Server, BizTalk Server, Share point Server they build core
capabilities, whether it’s a packaged app or something you build
yourself, an app on top of that and then office mobile capabilities,
Windows, Visual Studio, the Expression products, right, we can do lots
of features and functionality but it’s how these things work together when
you are trying to solve a business problem, in this case we’ve just
acquired another company and we need to integrate and sell the
products, that helps you better connect with the business.
So, overall, because we’re out of time, I just want to say,
we spend time on making sure the systems are connected and
adaptable, align with the IT overall, and provide better business choice
so you can go look in the database development administration,
BI, connected systems, and the development environment.
Hopefully this provides you with a bridge between Bob’s view for
advancing the business through IT and a set of capabilities that we are
working on to enable you to do that on your own or with your teams in a
better way. And hopefully some of the code has given you a preview of
all of the different pieces that are available. So, with that I thank you for
your time, and we’re about 5 minutes over so I apologise,
but thank you. Thanks to the team as well.
This material is for informational purposes only. Microsoft Corp.
disclaims all warranties and conditions with regard to the use of the
material for other purposes. Microsoft Corp. shall not, at any time,
be liable for any special, direct, indirect or consequential damages,
whether in an action of contract negligence or other action arising
out of or in connection with the use or performance of the material.
Nothing herein should be construed as
constituting any kind of warranty.
My name's Steve Guggenheimer, most people call me Googs because
there are too many Steve’s at Microsoft, and Guggenheimer is too hard to
pronounce. So if you hear anybody call me Googs during our demos
today, that’s where that comes from.
My email is stevengu@microsoft.com if you end up with any questions
after this session. This session is about 1 hour and 15 minutes long;
it is on advancing your business with IT solutions. This is the bridge
between Bob Muglia's keynote last night, where we spent about 10
minutes on this, and the hundreds of tracks that we’re running
throughout the event over the next 5 days. One of the things we’ve done
over the last year is take a lot of input from our colleagues,
our customers and our partners who have said “Hey, look you guys do a
great job at the feature function level, you guys can talk about features
and products, you do that really well, sometimes we want to talk about
our business challenges, and how all of these things aggregate,
so pull it up a level, and lets talk about how you would address some of
our broader business challenges” that is what this session is meant for.
One other thing before we get going here, we’ve got about 40 minutes of
demos. We’ll do that in the second half of this talk. We’re going to show
a lot of the CTP’s a lot of the early code. Bob talked last night about the
four promises, and the way we think about these, is we get feedback
from our customers about aggregating up particular areas they focus on.
Complexity is something we all deal with, so help us manage complexity.
This particular area is around "help me as an IT development
professional to be a great partner for the business"; we don’t always want
to be the guys that they look to save money. Often time,
people look at IT and say “Hey, how do we cut 10% of the IT budget?”
and just keep going, and a lot of the folks we talk to say ‘look we want to
be strategic partners for the business, we don’t want to be called into the
room after they’ve made an acquisition and told to make that new
company integrate with ours. We want to be called into the room before
the acquisition to help decide whether it is a good acquisition or not’.
To be part of the process, right, and so helping IT be a partner for
business is the area we focus on with our application platform.
In general, businesses differentiate themselves in a variety of ways.
It could be through how they deal with partners and maybe their supply
chain. It could be how they do innovation and maybe it’s how they
innovate their products. Maybe it’s customer service and customer
relationship management, the company prides itself on how they do
customer relationship management. Each of these is a unique way of
differentiating a business and all of them require applications to support
that differentiation. In general, it’s the application side of the house that
really helps the advance the business part or partnering the business,
because that is what business is often looking for. Keeping the business
running, core infrastructure, right, getting people on board,
getting them access to a printer, getting them email,
that’s core infrastructure. It’s an important and necessary part of being a
partner for the business but in terms of actually moving the business
forward it’s the applications that generally link to the business in terms of
how the business differentiates itself and how the business moves
forward. So this is about applications platforms and how we provide
capabilities for application development,
management, work for applications in general and how we support your
ability in that area. Now, let’s talk a little about the applications
environment. The applications environment continues to become more
complex over time, right, there’s lots of discussions of form factor
explosion, you saw a whole bunch of sessions already I’m sure on
what’s going on with hardware, on the server side, on the client side.
Land on any aeroplane watch how fast the number of cell phones and
Blackberries go on. 5 years ago, no such animal, now a plethora of
devices and so that is just one example of device proliferation.
There are lots of other hardware changes going on that affect the way we
want to build and manage applications. That's just 1 piece though,
global software development, we can buy an offshore development for
less money than we can buy locally. Now that sounds good,
so people say “Hey, if you can buy twice the development time overseas
you should be twice as efficient if you go and do that” well,
that sounds good but when you have to actually manage a project,
right, over the ocean, over two teams, over multiple time zones,
you don’t get that same efficiency, so how do we deal with offshore or
multiple location development. How do we handle that wealth of
opportunity, yet the complexity that goes with that? We still have to deal
with legacy systems, as much as the business says
“Okay, I’ll give you money to go build this new application”, if you go turn
off the old application, it’s never as fast to turn off the old application as
you want and often you just can’t turn it off, or you need that particular
system, or it turns out that there is 200 other applications hanging off
that thing that you didn’t know about till you went and turned it off and
everybody screamed. So making sure we have that connection back.
Service orientation or service orientated architecture, it gives us a lot of
capabilities and opportunities to use services to build on our applications
and our portfolio, but it is a new level of coding, a new level of work we
need to do. So there is lots of things that affect the IT department,
people talk about variety I’ve brought up a few, but when it comes to the
application platform these are all things that affect our ability to build,
develop, deploy, manage and run applications. On the flip side of that,
the demand for applications continues to go up and there is no longer
what I think of as a canonical or single app for the business.
We have lots of apps, if you take our business I’ll start with ours.
We have lots of internal apps, we have a head tracks app,
we have an expense reporting app, we have a time and something for
vacation app it’s called Tar. I figure if we take too much vacation I’m
going to create a Feather app and then you’ll have Tar and Feather,
I don’t know why they named it that but we have lots of internal
applications. That’s one variety. Then we have all the applications we
use when we’re interfacing with you, and with our partners and we have
our customer relationship management software, we have our partner
relationship management software, one we purchased and modified,
one we built ourselves. We have our product sports services software,
right, we have our ERP software, big applications, and then of course off
of each of those big applications we do have hundreds of things hanging
off the sides of those. Right, you take your CRM system in an
organisation the size of Microsoft with 50,000 people and I guarantee
you the folks in France have built some little app off the side of that thing
that when you upgrade you’ve broken and you didn’t even know you’d
broke it until they come back screaming. So there is those kind of
applications, and then of course we have all our web apps,
Microsoft.com and MSDN and Technet, you guys interface with some of
those, our X-box site and then we have our services that we’re working
on so MSN and things it provides. So there is no single application for
Microsoft. Right, and there is no single application for most companies
in general. What we need is a platform, an application platform that
allows us to have capabilities to support the variety of applications we
need, that we deal with and some of the complexities that we have in
terms of the changing nature of application development overall and the
applications we want for our business. So we’ve got an increasing load
coming from the business, they want more and more things.
We’ve got a variety of application types, we’ve a lot of changes going on
in the industry and we need to do all of this typically on a fixed budget,
or not a very highly increasing budget, and so from Microsoft’s
standpoint in terms of addressing that pain or dealing with that business
area that’s our challenge to provide capabilities that allow you to partner
better with the business in that environment, and the business and IT
typically look at this in two ways, when I wear my Sales and Marketing
business hat it is very easy for me to change programmes, I can create a
new sales programmes in a couple of hours, no problem. Write it all up,
have it ready to go, right. I can do a new marketing offer, I can come up
with some programme that I want the field to go run, right,
or some customer offer, maybe it’s only for Japan. The system side of
that can be quite complex, but I don’t worry about that because I’ve got
my Marketing and Sales Hat on and I can do that pretty easily,
right, and so on the business side there are lots, of ways they can think
about driving the business forward that are not always what I would call
IT friendly or even connected with IT reality, but that happens on a pretty
regular basis. On the IT side we often think about IT governance,
how do I keep those guys in France from going off platform and storing
PII information in some system they’re building that they’re using their
marketing dollars to create with the vendor. I worry about things like that
because our data isn’t supposed to be there, right, how do I get the
maximum use of IT? How do I work with the guys in India?
What do I send over to India? And what do I keep here?
Right, what do I outsource to a partner? What do I build myself?
Right, how do I make the best use of my resources? How do I deliver on
time? How do I deal with the fact that the business is giving me a really
fuzzy specification and they want a rough order of magnitude so I’ll go
off and I’ll do a very rough order of magnitude and the business won’t
like it so then they’ll change the whole specification around and then I’ll
go spend another two weeks doing a new rough order of magnitude and
of course now they don’t like the feature set and so I’ll get into an
endless loop. So how do I go about having a better dialogue with the
business on that? We have to have high quality solutions, if I build the
next expense report app and it doesn’t work, right, or the UI isn’t great,
or it’s not available offline or some other thing then the people don’t use
it so I have got to have stuff that’s working. So one of the things we’re
working on at Microsoft is trying to build that connection,
right, trying to build the capabilities, right, across all the products we
build and the individual capabilities to allow that partnership.
We want to enable a culture where the business feels like IT is
responsive, because people can talk the same language and work
together that IT can give good rough order of magnitudes based on
having better information. Really having BI for the development
environment itself whether the apps are purchased and modified or built
internally. Being able to increase capacity by having more flexibility in
the environment and then decreasing the risk of failure and actually
creating again that dialogue between the two teams whether we use
business process as a language to work between the business owners
and the IT departments, whether we use tools, whether we enable the
business to be more self sufficient by giving them the ability to maybe
build their own reports, out of SQL server reporting services,
or trying to work on capabilities that allow better connection between the
applications that the business wants, or the things they want to do,
not necessarily the applications themselves and the applications we
build or buy or modify. Often times business will come in and say
“Hey, I want you to go buy that app” and that might not be the best thing
to do, we really want to get the business to do a better job of specifying
what it is, what’s the functionality they want in a language where we can
communicate well, and then typically the IT development teams have a
much better idea of the best way to go and do that and we have got to
have that language, we don’t want some business person going off and
purchasing something or promising something because they thought it
was a good idea without having that good partnership, so they work with
us. And so that is the bridge. Now, we’ve worked on this internally
for some fun stuff, so one of the things we’re working on is just with
building our own products, how do we build a better bridge between the
people on the frontline of the business and the people building the
products. So I don’t know, I don’t think we have a CTP for this at the
show here, but I’ll just show you some very early software/hardware
combination that we’re working on for our internal development teams,
connecting development and the customers together and the customer
is in this case the business users and we’ll see if you guys agree
whether or not you want a copy of this or not for your teams.
Did you know that 1% of bugs cause an incredible 50% all operating and
system errors? Well thanks to our Windows XP error reporting dialogue
box we do, as a result we are reducing system errors in our consumer
products by over 80%. The success of this feature has encouraged us to
extend and enhance it for you, the professionals. We know that your job
depends on stable systems, and, as our research has shown the pain of
system failure is real. We believe that if our customers are experiencing
pain, Microsoft’s employees should share that pain with them.
This is where we share your pain, or WESYP comes in.
It’s really fundamentally about making, us as programmers,
as developers, the techie side of things if you like,
making us more accountable to the people that are using our products.
An error box comes up like this one for example, what the WESYP
system does is it analyses the stack sent back by that error dialogue
box, it uses that to identify the person the actual programmer who wrote
the piece of code that has caused the problem, we can now see that it is
Mike Poultney in the Active Directory Team. We can now decide on
what way we want to express the frustration he’s caused us,
so we can choose one of the options here, I’m going to choose jab,
and I’ll just actually turn up the volume here because we can hear him as
well, it’s all part of the experience. And here we go--,
yeah he’s still suffering from that right now. Lets take a look at the
technology behind this great breakthrough, the first feature I’m going to
talk to you about is called the Micro Stun, this is connected to a cranked
up Tens machine the electricity will generate through these arms loops,
and in four stages, the back of the chair releases back and thrusts
forward into the person sitting into the chair, yeah, very good.
Micro Jab, two needles are released from the bottom of the chair into the
fleshy part of the buttocks, unorthodox in some ways,
but is very effective, its more people related. Microsoft has got the best
programmers in the world and this programme will help them to share,
understand, the users in a very direct way. We want to experience what
the user goes through. I am really keen to get in touch with the
customers. The more commitment we can show, and the better we can
get by doing that, I think that is good news for everybody.
The future also looks exciting; we are developing WESYP ejection, a
stab motivation feature that pinpoints programmers with poor
bug ingress records. Amazingly whilst making this film,
we witnessed the first error WESYP ejection at Microsoft UK office.
Microsoft, connecting with the IT community for a pain free future.
Alright, so I’m not sure we’re ready to release that yet,
but we’ll have some of the chairs for testing out in the lobby,
and we can play with that a little more. We do really identify with the
pain felt when things don’t come together. I am dealing with it more on
the application side, but I think my infrastructure colleagues would go
with that as well, so in terms of the app platform overall and sort of the
different capabilities, there are three areas that we sort of focus on
across all the capabilities. One is connected or adaptable systems,
we want to make sure that our products work great together,
which we do on a regular basis through common engineering criteria
through a lot of the work you’ll see in the demo scenario we’ll do later on,
between the development capability, the data capability,
the user experience, business process, BI etc. But we also work on
dealing with heterogeneous environments, and I’ll come to that a bit
later, really making these things work together. Make sure the system is
adaptable, a lot of customers we’ve worked with, one of the reasons
they’re interested in some of the products we’ll build,
I’ll take Visual Studio and SQL is because of the speed of time or the
capability to migrate and make changes very quickly.
Mediterranean shipping company is a very large ocean shipper;
they use those big ships, with all the containers. They have about 200 of
those ships, they have got about 200 ports around the world,
they carry about 7 million of those containers every year,
right, across 7 million containers, 200 ships and 200 ports they do a 15
billion transactions a year, right so if you want to know where your
Cashew Nuts are at any point in the ocean at any time of the day they
can tell you. The trick for those guys is though when rules change they
want to be able to adapt their application, so when homeland security in
the US says “Hey, we need 24 hour notice before the ship has left,
or the container has left when it is coming to the US” they need to be
able to adapt the programme to do that. And so the combination of
Visual Studio and SQL working well together allow them to make those
kind of changes quickly and have that flexibility and that is the kind of
flexibility you want in your app platform, the ability to adapt to business
changes on a regular basis. Cohesive technologies that span the IT
lifecycle, right, it is not just the development or modification of an
application, it’s the lifecycle of that application, how do I deploy it?
How do I manage it? How do I make sure it’s secure? The cost of the
app is not often the development or the purchase of the software itself,
it’s the longer ongoing management of it, so we need to make sure that
development and the creation of management of apps is connected to
the whole IT lifecycle. Aligning IT with the business, part of this is about
having a good discussion, how do I get my VRAM discussion and my
business needs discussion better mapped together. On our side we
want to make sure we provide more insight into the development
process, we want to take the different roles in the development
environment and better connect them together, so we can take the
architect and the tester and the developer and the database professional
and allow them to work in a connected way with one change
management system, with one database, one shared source code
system and allow them to have better insight so they can provide better
feedback for the business. And lastly on better business choice and
value we want to make sure that the products we build are in themselves
of great value so there is an ecosystem, all of you can support that. That
we’ve got the courseware you need, that there is ISV’s out there if you
want to purchase an application, that there’s VAR’s and SI’s out there if
you want to do integration or you want to do customisation of an
application, so we want to make sure there’s a good ecosystem on top of
the platform for application specifically. So across all of the things that we
do, we want to make sure all of our things are connected and adaptable,
that we can align the IT with the business and we provide better
business choice and value. Now, the focus areas are the capabilities,
right, if you think about it there are a set of core infrastructure
capabilities, right, get somebody online, security management,
email, that’s core infrastructure, that helps people come to work.
A new person comes to work they can get online and they can go to
work everyday, that’s not the application side, and it’s the applications
that are the connection with the business. Business wants you to make
sure everything is up and running, but in terms of helping move the
business forward it’s the apps that are the differentiation.
And for that area it’s a different set of capabilities,
it’s the data management capability, right, the amount of data,
the places that data is stored the number of connections we’re making
with data with partners continues to grow so we need more efficient
effective ways to manage that data, the SOA and business process
layer, the ability to use services to connect things together and then use
business process as the language to bridge between the business users
themselves and the development teams. BI, more and more need for BI,
just looking at insight, more data, more insight.
User experience, the last mile, too often do we build applications that
might have great feature and functionality but don’t have a good user
experience and as a result people don’t use the apps and we don’t get
the return on investment we intended or it takes us longer to get the
usage. And then lastly development to connect them all together,
we need the ability to connect across data,
business process, BI, and user experience with one development
environment. And of course, all of this is good for our side but we also
need the interoperability. On the interoperability side there is three
things that we focus on, the first is standards.
Microsoft has been working on XML, right on the standards body since
99/2000 with the original .net work we did, right, we participate in
literally hundreds of standards efforts and we had to go back to IETF or the
work we do with W3C, the WS-Star Initiative, the WS Management,
there are a number of standards we support and for long term
interoperability, standards is the best way to go, it allows for inter
connection. Now unfortunately, not everything that has been built over
the last 20 years is standards based, there are not standards for
everything, so the second part of what we do is adapters.
We provide a number of adapters with our BizTalk product,
there is about 13 of them going to 17, we provide a framework for
providing additional adapters and we have our partners who build
adapters on top of that, so there are lots of adapters you can use for
connecting in a heterogeneous environment, and last but not least we
have partners, we will never be an expert in all the different back end
systems, but with standards and adapters we can make the connection
and then there will be partners who are best of breed on those systems
and they’ll do a variety of work for us, for example there is an
announcement here from one of our partners who has taken the visual
studio team system family and created a connection to Eclipse,
so if you’re working in VSTS and you need a connection to the Eclipse
environment they’ve built a connection for that, so that’s an example of a
partner adding value bringing the two worlds together. So, we do a lot of
work for interoperability is done across three core areas,
standards, adapters, and partners and we want to make sure we bring
that forward, right, we want to make sure our stuff works great together
or at least as good as we can, but in addition we do work to make sure
that it integrates because you won’t always use all the pieces of the
stack, we know that, that’s the reality, we want to make sure that
whatever pieces you use, they work great together, but they also fit well
within your existing system. An app platform is whatever you use,
to build, deploy, manage or run applications and that’s going to vary with
every one of you with every company out there and we recognise that
and we want to support whatever environment you have.
Now, let’s go through each of the capabilities, and then what we’ll do is
we’ll come back and demo all the pieces to this in an integrated
scenario. On the development side, we’ve really focussed on moving
from developer and developer tools to development and SDLC
development life cycle, for a long time we’ve done a great job on
languages, we’ve done languages for a long time, with this release back
in November we’ve done Visual Studio Team System, and the real focus
there was starting to have role based capabilities,
Architect role+A4113+A483, tester role as well as the developer role,
and allowing them have each of the capabilities that they find most
useful in the functionality but then woven together,
connected together through team foundation system and team
foundation system allows the team to work together and that way
whether it is change management or feature requests we can have one
repository for all the information and ultimately for all the code itself,
we can store all the code whether it’s stuff the architect’s doing or stuff
the tester’s doing, or the developer. We can align it with the task so we
know how things that are getting checked in are aligned back to the task
we’re doing. So we’re doing a better job than of enabling team
development, and third is organisation, we can take that project that
we’re working on, that overall development project, and we can use
something like Microsoft Project to allow a PMO with the project
management office to have a full project view, and so when I want to be
able to do a better job of a Vrom or give status on a project I can use
Project as a piece of software to have a full connective view of that,
so whether I use Excel to look at the information, the tools in TFS or
Project I could connect through, on the other side we can connect in with
the management tools so we can make sure we are developing with
management in mind and how it’s going to operate the data centre,
or security in mind so we’re supporting the other part of the IT lifecycle
which is the deployment of that app and the management of that app.
So we’re really trying to scale from individual developers to development
both at the group level and at the organisational level,
right, so Visual Studio Team Systems shipped in November,
we’re seeing good response to that, and that has been ongoing.
At the show here today, and what we’ll show later is we’ve announced
the CTP, or made available the CTP for the Visual Studio Team System
in this case database professional role so now we’ve got the architect
role, tester role, developer role and now we’re adding the database
professional role. So now the database professional can participate in
the overall work stream, can use the same back end database and take
advantage of some of the capabilities. So that’s that role,
we’ll talk a little bit later about user experience and designer,
that’s another role we’re pulling into the family.
It’s not completely integrated with TFS, but just having that connection
again between developer and designer is another role,
so over time you’ll see more roles work into this life cycle model.
Lastly the show, actually it’s next week, we’re going to announce
Commerce Server 2007, it’s not an integrated part of Visual Studio Team
System but traditionally it’s mostly developers who are using that suite,
right for connection with B2B or B2C type apps on the web.
And with this release we’ve done a great job of integration with share
point, we’ve really taken feedback over the last 5 years on what people
wanted and sort of integrated that in, which has been one of the core
areas, and then performance overall. So that’s the development
capability, next to the development capability is the database capability.
On the data side we’re moving from data in a database to a data
platform, today there is more data stored outside of the data centre than
inside the data centre. We’re dealing with data in the data centre,
we’re dealing with it under people’s desks, we’re dealing with it on
mobile devices, all kinds of places. And making it available and making
access to that data and integration to that data easier and such that we
can manage and do more with it, is the key to business insight which
we’re going to get to later on, so this is an area where if you look at SQL
2005 we are really focussed on three things, we focussed on scaling up
for the enterprise, right, all the things necessary for high availability,
the work necessary for reliability for scalability,
performance, that was the focus, and we’ve got great feedback on that.
The second area was developer productivity, how can we integrate the
CLR into SQL 2005, connection with Visual Studio,
that Mediterranean shipping company where we can better connect the
development environment to the database so we can do database
development more easily, now with the release of this database
professional tool for Visual Studio Team System we have yet another
connection so we are really trying to connect the database into the
development environment, because data is the key part of almost every
application today, right, many are data centric or need data so breaking
that bridge is something we’ve been working on. And then third is
integration into the BI stack, and we’ll come back and talk about Office
and the other pieces, but really enabling people who have visibility to
that data so that we can use it for something, it’s not enough to just store
it, we need to glean information out of it, to help us drive the business
forward. On that end we’ve made a bunch of announcements,
released several announcements, at the show and before.
After we released SQL 2005 we’ve already done the first service pack
that was to get the database mirroring out there, which is part of our high
availability offer, in line with that at this show, we’ve announced eight
partners to go along with the always on capability. What we’ve done is
we’ve taken all of the features for high availability,
things like database mirroring, snapshot technology,
failover technology and we’ve grouped those in an always on bucket so
we know what the features are for high availability, we’ve then gone out
and we’ve worked with our hardware partners to make sure that the
hardware that they’re building for storage and back up and other
systems works well with those features so that we know when we have
an always on hardware along with the software that it’ll work great in a
high availability environment, and as data becomes more important we
need that back up as we’re using more data, as data is driving the
business we need to make sure that we always have access to the data
so always on becomes more important. The last piece is the notion that
there is more data in more places, so one of the things that we’ve been
working on is a lightweight compact embedded version of SQL Server,
called SQL Server Everywhere Edition, and again here at the show we
are releasing the first CTP at the show and I’ll show you in the demo,
we’ll take a little look at this. So again, extending from a database to a
data platform, scaling up for always on, scaling out to smaller and more
embedded offerings with SQL Everywhere, and then again just the
ongoing momentum of SQL itself, a lot of great feedback on this,
there’s a lot of customer case studies if you want to find them out there
already on SQL 2005, so if you need information on this we can help you
get it, what I want to do is, I want to give a customer example at
least, besides the Mediterranean shipping company,
show you how NASDAQ is taking advantage of the capability.
NASDAQ is the largest US electronic stock market,
with approximately 3,300 companies it lists more companies and on
average creates more shares per day than any other US market.
As part of its ongoing commitment to providing the most technically
advanced infrastructure, and the greatest value for traders,
NASDAQ is replacing Tandem mainframes with PC servers.
NASDAQ’s internal development team created its new market data
dissemination system or MDDS using Microsoft SQL Server 2005
running on Windows Server 2003 Enterprise Edition. Every trade that is
processed on the NASDAQ marketplace goes through the MDDS
system, with SQL Server 2005 handling some 5,000 transactions per
second and about 100,000 queries per day. When we looked at SQL
Server 2005 we were very excited because we felt that it met our needs,
capacity, growth, reliability and it was a very cost effective solution.
In addition, the tools that comes with the product such as database
mirroring allows us to meet our reliability objectives of four Nines.
The move to Microsoft SQL Server 2005 is providing NASDAQ with a
number of benefits, including lower total cost of ownership,
and enterprise availability and performance. We have the ability with
SQL Server 2005 to partition our databases and actually run higher
transaction rates than we are today. Microsoft Windows Server 2003
has allowed us to meet our availability numbers of 99.98;
we’ve achieved 99.99. This is very comparable to proprietary mainframe
platforms we’ve run in the past, definitely we’re going to operate more
efficiently and be able to drive more transaction rates which means more
business for us. The Microsoft application platform also provides
NASDAQ with greater agility to meet customer needs such as the ability
to deliver real time information to their users. The biggest surprise that
our business realised was the ability to do ad hoc queries to look at
additional data that in the past would have taken days, or even weeks to
possibly get at. One of our sales teams was now able to get up to the
minute data before they went to see customers,
this was something they couldn’t do in the past, and we were able to do
this because of SQL Server 2005. NASDAQ needed a solution that was
enterprise ready and found it with SQL Server 2005.
Microsoft SQL Server 2005 has definitely met, and in most cases
exceeded our expectations. Microsoft has been a long term strategic
partner for NASDAQ and we look forward to continuing that relationship
in the future. OK, so working up from the data capability,
now SOA and business process. Service orientated architecture,A555 service
orientation is something we have been working on for a long time,
we have been doing XML now and Services since 99/2000 with our .net
platform with many of our different servers, so that is part of an
ongoing effort. Second piece is business process, and this is an area
where we have been working again for quite a while on business
process management, across our BizTalk product line,
and our SharePoint product line we are working to enable person to
person workflow as well as people to machine workflow or machine to
machine workflow. And I think it really as simple workflow to complex
workflow, so something as simple as, Hey, when this document goes
around make sure it has all three signatures,
that’s simple, and when it’s a helpdesk type app where you might have
to route hardware to different vendors or call in different people and you
have a mixture between machine and human, you need much more of
an orchestration process as well as a workflow process.
So this is an area we have been working on our BizTalk 2006 release we
just hit release+A572 to market of that, not too long ago, and then last week
we announced we were going to do a BizTalk R2 version,
we’ve gotten good feedback on the product overall, two areas to focus
on, one is EDI, we have great EDI support today through partners but we
are going to provide native support now for both EDI as well as AS2 in
the box. In addition we are working on RFID, and we are going to
integrate the RFID capabilities we announced at TechEd last year into
BizTalk so we now have the RFID capability as well adding some more
adapters and the framework for doing adapters around the dot net 3.0 or
the WinFX framework so we are building that capability in as well.
So again extending the BizTalk product line, making it a great tool for
both integration and orchestration as well as business process
management. Next capability is BI, on the BI side no news at the show
really, we did the proclivity acquisition a while ago, but there is a lot of
work when you start with what Office is doing, so you look at Office and
business score card manager down to share point, and from share point
into the SQL Server reporting services and into the database overall.
So a really good example where you need capabilities across different
Microsoft products to enable the overall BI capability or features,
and so we really do work across the business to enable business insight
and we’ll come back and show this one in a couple of minutes,
and then on the top of the stack, last but not least is user experience,
 the last mile. Again too often our applications are built with UI as the
last thing being done and as a result people don’t use the app,
and so there is a lot of work going to enable great user experience,
and this comes in many forms. One is the connection between designer
and developer, we showed some of the expression tool set last night
and we’ll show some more of that later on, it allows us to bridge between
designers and developers working on the same code but in a design
surface and a development surface at the same time, so people can use
the design surface or the development surface they are most
comfortable with. With Windows Vista .net 30 we are still working on
Windows Presentation Foundation to make sure that people can build
rich apps on top of Windows as we go forward, we did rename WinFX to
.net 3.0, no change it is still Windows Presentation Foundation,
Communication Foundation workflow, info card, we just redid the name
as we got a lot of feedback from developers that WinFx as a top level
brand and .Net as a top level brand you can’t have two,
you’ve got to choose one. There is a lot of awareness for .Net.
So no change to any code, no change to any functionality just a re-brand
on the naming. For Office, a lot of people like to use Office as a front
end for applications, we have done some of this with our business
applications, at the show today we announced Office Business
Applications Services, we are going to create a set of services through
share point that will allow you to take your line of business application
and expose it in Office, or interconnect with Office. So the work we have
done with SAP where you can now front end SAP with Office,
we are going to allow other ISV’s to do that, whether it is something you
build yourself, and you want to surface+A643 your line of business app,
or your vertical app through Office, or through other ISV’s that you might
be working with, and we’ll create a tool set for that, we’ve also created a
BizTalk adapter pack so you can have the adapters work directly with
Office and the Office Business Application Services for Share Point or
SQL, so if you’re not using all of the BizTalk functionality you can just
use the adapters. So again, trying to build that bridge whether you want
to use Office as a front end or not, and then Smart Client/ Thin Client work
with Ajax, ASP.net and Atlas, a lot of work going on there. So whether you
build a web UI, whether you are building a Vista UI, whether you want to
use Office as the UI, or you want a better connect your designer and your
developer, we are working on enabling a better user experience in apps.
In the long term there is going to be a differentiator not just for what you
do internally, but for the websites and the web applications you build to
connect with your customers or your suppliers.
So, we’ve gone through all the capabilities, what we want to do now is
bring those capabilities to life in a development scenario,
so the way we have basically done this is
we are going to use a scenario where we have AdverntureWorks, a
sporting goods manufacturers as our company, we are going to go
acquire Northwind, right. Northwind is a smaller firm,
they are pretty conservative on IT, they don’t spend a lot so they are
using a lot of older systems, they are not the most advanced,
and of course in Adventure Works we are the far end of the spectrum,
they all came to TechEd they have every CTP and they are actually
coding with it already, amazingly enough, so they are sort of at the
bleeding or leading edge of technology and we sort of want to go
through connecting from the core infrastructure part, all the way from the
database, the development capability up through BI and out through
user experience so we can take a scenario and take these capabilities
and weave them together as you might do pieces of this within a
business scenario. So, here’s our checklist, I’m going to be the boss,
I’m going to have the folks come out and help us along.
We’re going to start with the systems architecture, we’ll look at the
architecture and the data platform, once we get the data platform set up
by the architect then we are going to move in and look at the business
process, we’re going to look at some of the work we need to do on
integrating out back end vendors, order processing system,
once we’ve got the architecture set up and the order processing then
what we want to do is we want to go ahead and look at,
and move the data over from North Winds, we want to make that data
available for the business users and then make it available for the sales
folks, and then lastly once it is all integrated, we want to bring the
experience alive for the users and enable an application that shows the
new products there. So, that’s the scenario we’re going to go through,
it’ll pull some of the stuff you saw last night in Bob’s key note,
but we’ll do it all in more depth and again if you want to see the code,
you’ll have to be a little bit closer. With that, we’re going to start with the
architect role and we’ll invite Michael Leaworthy out to join me,
Michael’s got a nice task list that I’ve built for him, you can see he’s
going to start with the resource allocation, but then he gets to build this
out for me. Michael why don’t you come on out here. Let me get my
water out of your way, and why don’t you take over.
No worries, so as Steve was starting to talk about the acquisition of
Northwind, I started to think well what tasks do we really need to do?
The great thing about that I started capturing these tasks in Visual Studio
2005 Team Foundation Server, and the really good thing about this is I
can keep my complete team up to date as an architect if I have
developers and testers, I can keep my project managers up to date
utilising Excel or project tools, or anyone in the organisation utilising
Share Point such as Steve, I can actually send him a report on the costs
of the acquisition, the resources required and how it is actually all going.
The good thing about that is no matter what tool I am using,
I can actually access that information within Team Foundation Server.
So, here are some tasks I have actually created for myself,
I have been looking at how we are going to best utilise the North Wind
acquisition and their technology and integrate it into our current
Adventure Works technology. So what I’ve done is I’ve actually created
an application diagram or a model, that looks at Adventure Works and
componentized down Adventure Works and I’ve just done the same for
North Wind, I’ve also looked at the way North Wind actually utilise their
sales process and their databases and we’ve looked at web services
as the best way to expose that and since we use web services
infrastructure in our organisation it is very, very easy to integrate in.
So what you’re seeing here is Adventure Works as a database,
as a web services infrastructure talking out to a web application which is
our customer facing application and also a smart client application as
well that we can utilise for internal folk and also some of our premier
partners. With the new web services infrastructure available on North
Wind, for me to integrate this into my current organisation it is simply
drag, drop and connect. What’s happening behind the scenes is this is
creating all those starter kits for me, all the web methods, all the code that
my developers actually require, but it doesn’t stop there,
what I can actually do is test this in my organisation.
As an architect, did I wire it properly? Have I got the right settings to
integrate this in? But best of all, working with my IT folks,
the guys that are actually managing my servers, is anything in this
application design, this new web service design, is anything going to
affect our hardware, is going to affect our data centre,
is the application going to be working in our data centre on day one?
So, we are basically creating a virtual data centre and it is going to allow
me to check and make sure that all the things I need turned on and off
across all our hardware, all the services are turned on, so it is going to
save us some time on the management side.
Absolutely, so we can actually capture all of this information what
authentication methods are required, whether I require things like
cookies, ImproX SQL server information, anything that I want to capture
around a web service, or a web application or a smart
client, I can actually do that within the modelling environment.
And the same in the data centre environment, I can capture database
systems, operation system and application level. So what I’ve done
here, is I’ve created a component view of the North Wind system,
to bring that easily into my application, I can just right click and actually
define the deployment. It’ll ask me which logical data centre diagram I
want to use, and I am actually going to pick my generic data centre
diagram. What you are going to see is a view of my data centre,
or a logical view, the application layer, the database layer,
the operating system layer. I actually have an IIS server that is customer
facing in a hardened IIS zone, this’ll be behind ISA firewalls of course,
and then I have an application server, my smart client component within
my intranet and then a secure database server. You are seeing here is
the two applications that we saw on the application diagram,
my North Wind catalogue web service, my North Wind database,
now I can simply drag and drop them onto this database,
this logical data centre and actually test to make sure that they are going
to work in this current environment. So I am going to drag this onto my
internal server, it is asking me where do you want to deploy this to,
where is it actually pointing to? This is actually going to be pointing out to
all my secure application websites, so customers can actually come
in and order information. Secondary to that I can actually have my
database and I can deploy my database to my data centre,
and we can do some real time validation here, so I know that I can’t
deploy a database to a web server or a smart client, I can only report it
to a data centre. So, we can do some real time validation,
not only that but a lot of other real time validation, but the great thing
also is I can right click this and actually validate this, it is going to walk
through all those settings that we had within the infrastructure and all the
settings that we were having within the application and actually view if
there is any errors, any inconsistencies and I have actually have one,
so for this application to work I actually need to make a setting within the
hardware itself within the IIS server itself so I can actually go out,
talk to IT and see if we can make that setting without affecting any other
applications, or as an architect on day one, before any code is created I
can actually say, lets re-architect that, so I am going to do that.
Simply right click, and I am actually going to go to that setting,
and you’ll see down here I can simply turn off the requires
impersonations, and now when that application deploys,
it will actually deploy with the right setting and I know that this application
is going to work within this data centre in the way that we have
architected it. The next thing I want to do there is to capture all this
information, the whole idea of the developer life cycle is to make sure
that this information is shared, between all my developers and architects
and testers and of course anyone that is involved in the development life
cycle. So I can actually check all this information in so that any person
running Team Suite in my organisation can actually access this and
have an understanding of why I have actually designed it this way.
I can click on my pending changes, and you can see that there is a
number of changes that we made while we were talking. So I am just
going to hit the check in button, now as it’s checking in, ah I’ve got a
policy failure, now with Steve being the controller in our organisation,
he wants to ensure that he keeps track of us, he wants to know what
we’re doing day by day, so via those work items he’s saying when I
check source code in I need to actually associate it with work items,
so when my developers, my architects create work items and do work
we know that we can track this information now,
and most importantly report on this information real time,
so I can actually go back, associate it with those work items that I
created for myself, those I have got to resolve so I am actually removing
tasks here, check this information in and now I am going to be
completely updated via version control, I can actually update that via
project manager server and Excel and I can track that via my business
intelligence reporting. Within the organisation I actually wear the hat of
the data architect as well, as you’ve just heard we’ve just released this
great new too Visual Studio 2005, Team Edition for database
professionals, so I have grabbed a copy of this which I can get at the
TLC Centre and I have ran back and I have said
‘Steve, Steve, Steve this is exactly what we need’ because Steve has
always been nervous about like me working with our database systems,
this effectively when we want to make changes we are either doing it in
production, or doing it with databases that don’t behave,
or testing databases that don’t behave like our production database.
With Team Edition for database professionals I can really overcome that,
what I’ve done here is with Visual Studio 2005, with the new client
integrated I can actually create a new project, such as the SQL 2000
project, or 2005 project depending on the type of database system that
I’m working with. To save a bit of time, I have actually created a 2005
project here, and what I have done is I have synchronised or imported
the database schema+A843 for my 2005 system, now the great thing about this
is I am completely offline now so I am working in an isolated and
protected environment without affecting our production system.
Once I have also created my database services, I can then actually go
away and create such as a testing system, I need to create some
changes, we’re bringing North Wind in, we need to be able to provide a
little bit of changes to our database system to make sure that when the
data comes in, it comes in seamlessly. Now, to do this we actually have
to go in and change columns and re-factor tables within our database.
Now, with this tool, I can do this easily, but I want to test this out so I
automatically gone out and created a test database, and for me to
actually now load that test database with my schema all I have to do is
to right click, deploy my selection, and you’ll see my output that my
deployment has succeeded. So I have imported this schema from my
production database, and I have now exported a schema seamlessly
and easily out to my test database, and now I can get to work on a little
testing. Next thing I want to do is, because I’m actually going to go in
and change a few tables, I am going to change some of that core
schema, I must ensure that the integrity after I have made those
changes is all right, so I am going to create things such as data
generation plans. So a data generation plan is a testing generation plan,
it is going to provide me with the ability to create repeatable testing data
for my test database. So I can simply add this. This also keeps you out
of the real data so when we’re doing things like customer information,
credit cards he can generate a real test set that we can use without
getting anywhere near the real data, which is the last thing I want him
doing with, and have it being good valid data that we can work against.
And that’s true, so this is the great thing, I’m creating a test data that
behaves and feels like my production server, or my production database
without it having access to maybe private information or critical
information. So I am just going to change the view here so that you get
a better view, great, so what you’re seeing here is all my tables in my
schema and basically, with this I can create test data that behaves like
my production server. So for example, I know that in my real database,
for orders, orders have customers, customers do orders,
and I don’t know that most customers actually have an average of 10
orders. Now in the current tool I can set this up manually,
but when we released this to production later this year,
you’ll find that this’ll actually happen automatically for you. I can also go
down and actually view the data that’s going to be generated via the test
generators. So down here, what I can do is I can control the
way that test data is generated. For example if I look at things such as
customers, I can look up postal codes and actually look at the generator
that is generating that data for me and actually say I want to use a
regular expression to generate that. If I look at my regular expression,
I can quickly change that, and say well, post code is going to be 0 to 9,
and it’s going to be 5 numbers, if I go and look at my customer
information over here, you can see that my postal code information is
now 0 to 9 of 5 numbers. So it gives me the ability to really control these
generators, they are very extensible,
very customisable, so you can actually have test data,
scrub test data and use that, or you can point this out to something like
map point web service and pull in real addresses to actually test in your
database. So I have created this test generation plan now, I can just kick
it off, choose my test database I created before and I am going to clear
this information so that I know I am starting in a pristine state and this
data is repeatable so no matter when I do this test from now on I am
going to be testing against the same generated data and as that is
generating down you should see the status change as it is actually
building the data for me based on the relationships in these tables.
So once I have created the data generation, or once I have loaded my
test database with test data I want to actually go and generate a test for
that to ensure that both that generated data is going to be correct and
also that any information that I may change later on is not going to
decrease the integrity of my database. With Visual Studio Team Edition
for database professionals I can now create simple unit tests from stored
procedures, so I am actually going to change something to do with price
and units, so I have created a stored procedure around the 10 most
expensive products to create a test from that is simply right click,
create unit test, and this integrates in with the Visual Studio Team
Suite testing tools, so we’re utilising the same testing project and the same
engine behind that, and you can see behind this even though you’ll see
this in TSQL behind this I am actually utilising VB or C# code so if
your developers are developing in VB or developing in C# they can
take these tests and extend these tests. I am going to run this again,
of course against my test database, and in a moment there you’ll see the
automatically generated unit test for my T SQL, now I am going to have
to return some sort of results back to that so I know that I am expecting
my row count to be returned from this test to be 10, so I am actually
going to set this to 10, just click into my test view and run this to ensure
that this test is going to be correct. Now as this is running,
you should see what we’ve done, we’ve imported the schema,
we’ve created the test data that behaves like our production data,
we’ve now got a unit test that we’ve got a test for that so that this unit
test will pass in a moment, I can now actually go and make any changes
to the data, the schema of the database and actually have a test to
ensure that those are not going to destroy or unlimit the integrity.
So lets go and do that, lets go and make a hardcore change to my
database, now again, we’re still working in an isolated and protected
mode, and still working in our test environment, so I am actually going to
go to my orders here, my customers here, go to my columns,
actually we were going to change orders weren’t we? So let’s go to
orders, and we’re actually going to change my customer ID,
hit rename and go to customer number. Now you see here that once I
click this I’ll be able to preview those changes, I’ll be able to see what
changes are going to be made to that schema,
so here’s that information that’s going to be happening within the table.
This gives me good predictability of exactly what’s going to change,
I can change information within the schema objects and view that
information, I can also change information within the scripts and any
data generation plans and also any unit tests that I have created.
So we’re now just going to go and apply that, and this should take a
moment to apply, and once we have applied that change I can easily go
back and rerun that unit test or actually do any other changes that I want
to make to this database. Given time I think we won’t redo the test,
I trust you. No worries, so once we’ve actually, once we’ve gone though
this, and that has now been completely changed I can then look at
exactly what has changed, between my project and my test database so
I am actually just doing a schema compare from the project,
from the re-factoring of the project that we just did, to my test database
and look at exactly what has changed, and the great thing about this is
that I can automatically write those changes straight out or what I can
do, is I can actually export this out as TSQL and run this as a script a
little later on. So you can see if I filter this down for different objects you
can see that these are all the changes that are going to happen in the
database and here’s the script information for the script I am going to
run. Now this is a great thing, we’ve got, we’ve made all those changes
we need to know, we’ve ensured the integrity of our database,
we’ve worked in that isolated and protected mode and the good thing
about this is we need to be able to ensure that these changes can be
tracked and version controlled and the last thing I would like to show you
is how now we can actually add this whole solution into source control.
So what you’re seeing there is I can actually track all this information in,
I can ensure that I can track changes, I can track my task and I can
ensure that this information is all version controlled.
Thank you very much Steve. Thanks Michael. OK, so good job from
Michael, working on CTP code without a wire always a good thing to do
so, he did a good job there. So we’ve set up the data architecture in this
case, we invite Kris Horrocks out to join us, the next thing we need to do
is to look at, sort of our order fulfilment system, the orchestration of our
order fulfilment and Adventure Works with that of North Winds Trading
and bring these together, Chris I’m going to let you take over,
can we go kind of quickly through this so we can keep ourselves moving.
Why don’t you take us away? Yeah Steve, so I thought I’d just run
through what our integration plan is, the last time we met we had
integrated or built Adventure Works order processing system in BizTalk
because you guys had your concerns given your future growth plans
about how quickly IT would be able to keep up with the business
demands on your acquisition spree. So we moved the order processing
process in the BizTalk server to manage the co-ordinated activity
between the services that we have on our own,
our own systems, the services on the systems that our partners own and
the services that are on systems that we have purchased and
customised. In particular, out of all of those, fulfilment was a particularly
tricky issue because Adventure Works has a number of fulfilment
partners, some of which are internal organisations, and others are just
external third parties, and at the time you guys we doing a bit of
spaghetti integration, you had individual ad-hoc integration solutions for
each one of those situations. So we brought it all into BizTalk to give
you one consistent integration and process platform, so the other thing
that did was to set us up for the future, which would be right now,
where to integrate new business partners, we actually don’t need to
change the business process. So to give you an idea of what we’re
going to do to bring in North Wind the goal is eventually to have North
Winds fulfilment systems show up as another trading partner when we’re
done. So here we have a view inside a business activity monitoring that
we’ll use to get a view of the activity as it flows through all of our trading
partner systems between them and BizTalk. The way we would actually
do that because we have implemented the process inside of BizTalk
server is to use BizTalk’s trading partner management system,
now I have already gone through and configured the details for the EDI
connection, and I had a business analyst come into trading partner
management, and fill out kind of the high level organisational
relationships, so they’ve put in information like the way that we’ll identify
trading partners, perhaps with an organisational identifier.
I want to go through and just hook them into the orchestration that we
just saw there a minute ago. So from within the trading partner
management side I can do that pretty quickly by creating a new
agreement, in filling out some meta data to describe that partner and the
agreement that we want to participate in. It is also important, the BAM
slide I showed you before, that’s an IT specific view on the BI we’re
expecting to have, so once we actually have this system in production,
capturing these events from our trading partner interactions,
we can also expose them up to our business analyst through like score
card or SQL Server reporting services. So, when, actually I’ll go ahead
and look at that in a little more detail here. So inside of this view if we
wanted to actually see trading partner behaviour, we have a view that
actually shows us a little too much information, so it is kind of hard to see
what the pipeline behaviour is with our trading partner integration.
We have information here that is dealing with revenue and so forth,
and what we really want to see once we actually hook up North Wind is
just in general what the average SLAs are, so what the cycle times are
between our business process and our trading partners,
so by stripping away the extra detail business analysts can quickly slice
and dice the metrics they have been capturing to get a better view on
that, and hopefully our trading partner management should be up here,
it is. And within this site, the idea is that the analysts are IT pro’s who
actually deal with the integration, have already gone into BizTalk and
configured the lower level connections, so North Wind uses some EDI
specific, EDI messages, they expose those over some EDI specific
protocols we’ve configured that, when we’re ready to actually hook the
systems up and go live we can go into trading partner management and
quickly assemble agreements together, the other nice thing is that this
completely abstracts the trading partner relationship out of the business
process, because many trading partners might all participate in a single
business process, for example, we have many fulfilment partners.
So I am going to go ahead and submit this into BizTalk and what
BizTalk’s doing now is it’s actually going through and hooking up the EDI
connection that had been defined for them, enabling North Wind to be
able to participate in that business process that we had inside of Visual
Studio, and setting it all up so that we can actually send some test
messages into the system. We’re running VPCs on top of machines in
the back; with a reasonably high end set of systems takes a while.
Here we go, so it has been set in, now if we wanted to actually,
once we’ve got that hooked up, we want to push some test messages
through the system just to verify again in our development environment
that Hey, this integration has happened, we actually do have North Wind
provisioned as a new trading partner, you could do this through Visual
Studio and create some custom tests using Visual Studio’s testing utility.
We also have our own custom utility that we have built here against the
BizTalk APIs. You built the utility yourself; it’s not part of the product.
Yeah, right, so our management console has tons of features that you
can leverage but we expose everything through .net API’s through WMI,
API’s and also through a variety of web services, so right now our
custom test utility is pumping some messages through BizTalk,
they’re getting routed through the orchestration out to the appropriate
trading partner based on information in the messages so if an order
comes in and it contains identifiers for products that are fulfilled by North
Wind, BizTalk can automatically route that message to North Wind,
transform it