1
00:00:00,000 --> 00:00:06,000
Well, hello everybody. Here we are at IMPACT 2011, the IBM WebSphere Conference.

2
00:00:06,000 --> 00:00:11,000
We're actually in a sub-conference. We're at the Un-Conference, the IMPACT Un-Conference.

3
00:00:11,000 --> 00:00:13,000
Is that the official title of it, the IMPACT Un-Conference?

4
00:00:13,000 --> 00:00:14,000
Yeah, absolutely, Un-Conference.

5
00:00:14,000 --> 00:00:18,000
And as always, this is Michael Coté of RedMonk, and I've got a guest with myself.

6
00:00:18,000 --> 00:00:19,000
Want to introduce yourself?

7
00:00:19,000 --> 00:00:23,000
Sure. I'm Andy Piper. I work in our Hursley Laboratory, which is in the UK.

8
00:00:23,000 --> 00:00:28,000
I think my job title at the moment, because it kind of moves around a bit,

9
00:00:28,000 --> 00:00:31,000
well, it's WebSphere Messaging Community Lead is what I do.

10
00:00:31,000 --> 00:00:34,000
Ah, right. Basically, that's MQ. It's Q stuff, right?

11
00:00:34,000 --> 00:00:35,000
Yeah, absolutely.

12
00:00:35,000 --> 00:00:37,000
What falls under WebSphere Messaging?

13
00:00:37,000 --> 00:00:41,000
So the stuff, and that stuff was originally invented and developed from Hursley,

14
00:00:41,000 --> 00:00:43,000
which is where I sit. So yeah, so what have we got?

15
00:00:43,000 --> 00:00:49,000
We've got WebSphere MQ, which is Q stuff. We've got a family of products around that.

16
00:00:49,000 --> 00:00:54,000
So we've got the WebSphere MQ File Transfer Edition, which enables you to move files over MQ.

17
00:00:54,000 --> 00:00:59,000
We've got WebSphere MQ Low Latency Messaging for very high-speed messaging.

18
00:00:59,000 --> 00:01:06,000
We've got WebSphere MQ Telemetry, which is about mobile and sensor networks.

19
00:01:06,000 --> 00:01:11,000
I'm going to miss something. We've got WebSphere MQ Advanced Message Security, which is for encrypting messages.

20
00:01:11,000 --> 00:01:12,000
Right.

21
00:01:12,000 --> 00:01:14,000
We've got a message broker, which is our enterprise service bar.

22
00:01:14,000 --> 00:01:18,000
There's this resurgence of queues in architectures.

23
00:01:18,000 --> 00:01:20,000
I'm not even going to say enterprise architectures.

24
00:01:20,000 --> 00:01:21,000
No.

25
00:01:21,000 --> 00:01:28,000
Because what's interesting is that all sorts of architectures for software, they're sort of rediscovering, I guess, using a queue,

26
00:01:28,000 --> 00:01:32,000
or to put it another way, having an event-driven architecture, a bus or something like that.

27
00:01:32,000 --> 00:01:37,000
And the fact that by doing so, you can actually start to parallelize workload, you know? Isn't that an amazing thought?

28
00:01:37,000 --> 00:01:38,000
Right.

29
00:01:38,000 --> 00:01:46,000
Yeah, absolutely. The idea of feeding some work to a process over a period of time and not having to have it instantly respond,

30
00:01:46,000 --> 00:01:48,000
but knowing that it will be done.

31
00:01:48,000 --> 00:01:49,000
Have it be asynchronous, I guess.

32
00:01:49,000 --> 00:01:52,000
Yeah. And that word, again, we've been talking about the last couple of days.

33
00:01:52,000 --> 00:02:00,000
I've been a consultant, you know, and often people hear the word asynchronous and they go, "Uh, that sounds slow."

34
00:02:00,000 --> 00:02:01,000
Right?

35
00:02:01,000 --> 00:02:08,000
And it's like, no, it's just the difference between what we're doing, you know, having an immediate conversation and an immediate response.

36
00:02:08,000 --> 00:02:09,000
Right.

37
00:02:09,000 --> 00:02:15,000
Or may get a very false response, but it's not time-dependent, right?

38
00:02:15,000 --> 00:02:16,000
Yeah, yeah.

39
00:02:16,000 --> 00:02:19,000
That's what it means. Asynchronous is not something that's not time-dependent.

40
00:02:19,000 --> 00:02:22,000
I feel like at some point asynchronous programming fell out of use.

41
00:02:22,000 --> 00:02:28,000
I don't know if it fell out of favor, but it kind of, because I guess maybe it all came down to web applications,

42
00:02:28,000 --> 00:02:31,000
which is a very synchronous sort of process.

43
00:02:31,000 --> 00:02:35,000
A request comes in and there's, I'm drawing a line here, a request completes.

44
00:02:35,000 --> 00:02:38,000
Like, you expect the client to be waiting.

45
00:02:38,000 --> 00:02:42,000
Well, it does. I mean, that's right. I mean, HTTP times out, right? An HTTP request will time out.

46
00:02:42,000 --> 00:02:45,000
Right. And then Ajax came along and A being asynchronous, if I remember.

47
00:02:45,000 --> 00:02:48,000
And I guess that kind of started to change things around a little bit.

48
00:02:48,000 --> 00:02:52,000
So, what exactly is a queue? Like, how does a queue operate?

49
00:02:52,000 --> 00:02:57,000
So, I think of a queue as a bucket into which I can throw something and then take it back or something else.

50
00:02:57,000 --> 00:03:00,000
Somebody else can take it out every now and then when they need it.

51
00:03:00,000 --> 00:03:08,000
So, what queuing and message queue, MQ, lets us do is to say, here's a bunch of data I'm creating.

52
00:03:08,000 --> 00:03:10,000
And I'm just going to put it over there.

53
00:03:10,000 --> 00:03:15,000
And I may come and get it back later myself as a process or actually another process might take it from there.

54
00:03:15,000 --> 00:03:16,000
Right.

55
00:03:16,000 --> 00:03:19,000
It's just a place to put pieces of work or pieces of data.

56
00:03:19,000 --> 00:03:22,000
The important thing to note is it's not a database, right?

57
00:03:22,000 --> 00:03:25,000
It's not somewhere you're shoving data to store.

58
00:03:25,000 --> 00:03:26,000
Right.

59
00:03:26,000 --> 00:03:30,000
You're putting it there temporarily until somebody comes along and takes it away and does something else with it.

60
00:03:30,000 --> 00:03:34,000
And so, does that imply that it's sort of not searchable, if you will?

61
00:03:34,000 --> 00:03:37,000
It's not searchable in the same way as a database.

62
00:03:37,000 --> 00:03:40,000
What we can do is we can do things like assign a load of unique IDs.

63
00:03:40,000 --> 00:03:45,000
And actually, that's exactly how message queuing works is that every message has a unique ID.

64
00:03:45,000 --> 00:03:46,000
Right.

65
00:03:46,000 --> 00:03:49,000
And we can go and find that ID and get it from the pile.

66
00:03:49,000 --> 00:03:51,000
That's the extent to which it's searchable.

67
00:03:51,000 --> 00:03:54,000
But you're not expecting to do like a full text.

68
00:03:54,000 --> 00:03:55,000
A bunch of queries.

69
00:03:55,000 --> 00:03:57,000
Yeah, a full text index on a bunch of data.

70
00:03:57,000 --> 00:04:00,000
So, why don't you just use like a shared directory?

71
00:04:00,000 --> 00:04:02,000
I mean, that would kind of be, that's a bucket, right?

72
00:04:02,000 --> 00:04:07,000
It's a bucket which is very secure and stable and assured, right?

73
00:04:07,000 --> 00:04:16,000
So, the goal is to say, let's take away the need to give stuff to a file system which could crash or become corrupt.

74
00:04:16,000 --> 00:04:21,000
Let's give it to a thing which will put it into this queue for us and give it back to us or give it to something else.

75
00:04:21,000 --> 00:04:24,000
And by the way, that queue may not be local to me.

76
00:04:24,000 --> 00:04:26,000
It may be over a network somewhere.

77
00:04:26,000 --> 00:04:29,000
So, yes, you could put it in a shared directory in the sense of a network drive.

78
00:04:29,000 --> 00:04:38,000
But then, of course, you need the same file system technology or, you know, everybody needs to implement SAM or NFS or whatever you're going to share.

79
00:04:38,000 --> 00:04:39,000
Right.

80
00:04:39,000 --> 00:04:46,000
I mean, what you're getting at, correct me if I'm wrong, is that if you use a directory, then you're depending on the file system and the storage.

81
00:04:46,000 --> 00:04:47,000
Yeah.

82
00:04:47,000 --> 00:04:52,000
As part of your architecture rather than depending on a higher up abstraction, depending on a service.

83
00:04:52,000 --> 00:04:53,000
That's right.

84
00:04:53,000 --> 00:04:54,000
Exactly.

85
00:04:54,000 --> 00:05:00,000
And one of the, and I'll try not to do the, you know, the chess beating sales pitch and that's not what I'm here for at all.

86
00:05:00,000 --> 00:05:09,000
But one of the things about MQ and one of the reasons why it has been very widely adopted over the last 10, 15 years is because it does run on a large variety of platforms.

87
00:05:09,000 --> 00:05:11,000
It has, provides the same API.

88
00:05:11,000 --> 00:05:16,000
You're not having to think, okay, I'm on Windows now, so I need to use the .NET API to get to my file system.

89
00:05:16,000 --> 00:05:21,000
I'm on a, on a Mac, I need to use C to get, objective C to get to my, to my file system, right?

90
00:05:21,000 --> 00:05:22,000
Right.

91
00:05:22,000 --> 00:05:23,000
It's a totally different way.

92
00:05:23,000 --> 00:05:26,000
It's the same API on any platform that MQ exists.

93
00:05:26,000 --> 00:05:31,000
You've got the ability, as I mentioned, to choose to send data over a network to some other queue.

94
00:05:31,000 --> 00:05:34,000
It's a, it's a passing mechanism.

95
00:05:34,000 --> 00:05:36,000
And, and then inherent in networking.

96
00:05:36,000 --> 00:05:39,000
I mean, once, once you bring some network thing, there's security gets involved.

97
00:05:39,000 --> 00:05:40,000
Security.

98
00:05:40,000 --> 00:05:41,000
Giving access.

99
00:05:41,000 --> 00:05:42,000
Channels and things like that.

100
00:05:42,000 --> 00:05:47,000
So we, we have an MQ is a concept of a channel between two queue managers that own all of the queues on that system.

101
00:05:47,000 --> 00:05:51,000
And then between them, we have a channel and we can encrypt that tunnel.

102
00:05:51,000 --> 00:05:52,000
Right.

103
00:05:52,000 --> 00:05:53,000
Using SSL.

104
00:05:53,000 --> 00:05:54,000
So yeah, you have security.

105
00:05:54,000 --> 00:05:55,000
You have the ability.

106
00:05:55,000 --> 00:05:59,000
And this is another important aspect of MQ is assurance, right?

107
00:05:59,000 --> 00:06:04,000
You want to just rely on the fact that you have something reliable moving the data for you.

108
00:06:04,000 --> 00:06:07,000
And, and, and, and in the case of MQ and maybe queues in general.

109
00:06:07,000 --> 00:06:08,000
Yeah.

110
00:06:08,000 --> 00:06:13,000
Is that assurance the same thing as sort of transactional integrity in, in a database?

111
00:06:13,000 --> 00:06:15,000
Or is it more assurance that your stuff won't disappear?

112
00:06:16,000 --> 00:06:17,000
Or is it both?

113
00:06:17,000 --> 00:06:18,000
Yes.

114
00:06:18,000 --> 00:06:19,000
Yes.

115
00:06:19,000 --> 00:06:26,000
And, and, and what I mean by that is, you know, in, in, in database terms, like a transactional thing is that, uh, there will never be two states of the data.

116
00:06:26,000 --> 00:06:27,000
Yeah.

117
00:06:27,000 --> 00:06:28,000
That, that you're accessing.

118
00:06:28,000 --> 00:06:29,000
So absolutely.

119
00:06:29,000 --> 00:06:37,000
So, and, and the, and there's another aspect of course, which is when you're talking about databases, you talk about, um, two phase commits and all that kind of stuff.

120
00:06:37,000 --> 00:06:42,000
And the ability to say, I want to do these operations and either the whole set of operations commits or fails.

121
00:06:42,000 --> 00:06:46,000
And actually I might want to do that with two databases or, and a file system.

122
00:06:46,000 --> 00:06:47,000
Right.

123
00:06:47,000 --> 00:06:49,000
So transferring money between two accounts is a classic example.

124
00:06:49,000 --> 00:06:50,000
Exactly.

125
00:06:50,000 --> 00:07:02,000
So MQ is very commonly used in those kinds of scenarios to say, I need to get this message from this queue, update those two database tables belonging to two different systems and put this message to this queue and do all of that within a transaction.

126
00:07:02,000 --> 00:07:03,000
Right.

127
00:07:03,000 --> 00:07:06,000
So we, that, that's what our message broker and our MQ technology does for you.

128
00:07:06,000 --> 00:07:07,000
Um, but yeah, you're absolutely right.

129
00:07:07,000 --> 00:07:14,000
The, the assurance is I'm giving my stuff to some other process to look after for me and I want to make sure that it arrives.

130
00:07:14,000 --> 00:07:29,000
So when I get told locally by the queue manager that it's got my data and put it on the put has succeeded, then I can rely on the assurance that my MQ network will get that data somewhere else once and once only.

131
00:07:29,000 --> 00:07:30,000
Right, right, right.

132
00:07:30,000 --> 00:07:31,000
Okay.

133
00:07:31,000 --> 00:07:32,000
That's another important concept here.

134
00:07:32,000 --> 00:07:33,000
You're not getting duplication.

135
00:07:33,000 --> 00:07:34,000
Yeah, yeah, yeah.

136
00:07:34,000 --> 00:07:38,000
Otherwise you might end up doing the same operation twice.

137
00:07:38,000 --> 00:07:50,000
Uh, and, and, and then yeah, uh, if, if something crashes, if my local queue manager or remote queue manager crashes and we've put that message in what we call a persistent state because we can do things in memory as well and be non persistent.

138
00:07:50,000 --> 00:07:51,000
Right.

139
00:07:51,000 --> 00:07:54,000
Um, that we could recover to a known state.

140
00:07:54,000 --> 00:07:55,000
Yeah, yeah, yeah, yeah.

141
00:07:55,000 --> 00:07:56,000
Right.

142
00:07:56,000 --> 00:07:59,000
So yeah, you don't want to lose work, especially if you're updating bank accounts.

143
00:07:59,000 --> 00:08:00,000
Right.

144
00:08:00,000 --> 00:08:02,000
You must know better than I do how old MQ is.

145
00:08:02,000 --> 00:08:03,000
Right.

146
00:08:03,000 --> 00:08:05,000
But it's definitely been, it's one of the older IBM software.

147
00:08:05,000 --> 00:08:06,000
Yeah.

148
00:08:06,000 --> 00:08:07,000
It used to be called MQ series.

149
00:08:07,000 --> 00:08:08,000
It's about 15 years, I think now.

150
00:08:08,000 --> 00:08:09,000
Right, right.

151
00:08:09,000 --> 00:08:16,000
And so to give you the chance to not so much be a salesman, but, but, but kind of say what that gets you, like the differentiation that MQ has.

152
00:08:16,000 --> 00:08:25,000
I mean, what, what is it about MQ that makes it something beyond like an ES, an open source ESB that you might get or an open source queue.

153
00:08:25,000 --> 00:08:28,000
But first of all, it gives you stability of function, right?

154
00:08:28,000 --> 00:08:30,000
So we've been around for a long time.

155
00:08:30,000 --> 00:08:33,000
Um, and, and, and actually the upgrade ability has been really good as well.

156
00:08:33,000 --> 00:08:34,000
Yeah.

157
00:08:34,000 --> 00:08:37,000
So you can take a, you know, different versions of MQ and they can talk to one another.

158
00:08:37,000 --> 00:08:38,000
And that's always been.

159
00:08:38,000 --> 00:08:40,000
So, so the sort of cross platform interoperability.

160
00:08:40,000 --> 00:08:41,000
Exactly.

161
00:08:41,000 --> 00:08:42,000
You mentioned that earlier.

162
00:08:42,000 --> 00:08:43,000
And upgrade ability.

163
00:08:43,000 --> 00:08:44,000
Yeah, yeah, yeah.

164
00:08:44,000 --> 00:08:45,000
So, so that's the first thing.

165
00:08:45,000 --> 00:08:46,000
Longevity of the.

166
00:08:46,000 --> 00:08:47,000
Yeah.

167
00:08:47,000 --> 00:08:52,000
So in terms of feature, you've got, you know, we've also constantly working on, working to improve performance.

168
00:08:52,000 --> 00:08:55,000
You've got a high performing system if you, if you need one, if you need to tune it that way.

169
00:08:55,000 --> 00:09:01,000
You've got things like clustering, which let you, do let you distribute work over a number of different systems.

170
00:09:01,000 --> 00:09:06,000
And actually it's one of the things that we would come back to around this rediscovery of the idea of queuing.

171
00:09:06,000 --> 00:09:07,000
Right.

172
00:09:07,000 --> 00:09:09,000
Did you hear that news about Twitter rewriting their search engine?

173
00:09:09,000 --> 00:09:10,000
Oh, right, right, right.

174
00:09:10,000 --> 00:09:15,000
And, and I was reading that they, they've actually now got a thing which dispatches your query to one of several engines.

175
00:09:15,000 --> 00:09:19,000
So they can suddenly work like balance all these queries that are coming into their search engine.

176
00:09:19,000 --> 00:09:21,000
That's what clustering does for you, right?

177
00:09:21,000 --> 00:09:22,000
Right, right.

178
00:09:22,000 --> 00:09:25,000
You can start to move, move work around really easily.

179
00:09:25,000 --> 00:09:27,000
You've got, oh gosh, you've got loads of things.

180
00:09:27,000 --> 00:09:28,000
Security.

181
00:09:28,000 --> 00:09:32,000
You've got this emergence of this new family of products in the last two or three years.

182
00:09:32,000 --> 00:09:35,000
The file transfer, the advanced message security, the telemetry.

183
00:09:35,000 --> 00:09:41,000
These have all been added onto MQ because the vision for MQ from, from an IBM perspective is universal messaging.

184
00:09:41,000 --> 00:09:47,000
So the idea is that data, your data are anytime, anywhere, if you like.

185
00:09:47,000 --> 00:09:48,000
Sure.

186
00:09:48,000 --> 00:09:53,000
Over whatever is the appropriate quality of service to give you at the point that you're at.

187
00:09:53,000 --> 00:09:56,000
Are you in your transactional data center or are you on a mobile device?

188
00:09:56,000 --> 00:09:57,000
Right, right, right.

189
00:09:57,000 --> 00:09:59,000
How fast do you need to go?

190
00:09:59,000 --> 00:10:00,000
How reliable does it need to be?

191
00:10:00,000 --> 00:10:01,000
How secure does it need to be?

192
00:10:01,000 --> 00:10:05,000
So you sort of customize the footprint or the profile down to the end point?

193
00:10:05,000 --> 00:10:06,000
In a way.

194
00:10:06,000 --> 00:10:08,000
So that's particularly what telemetry is actually.

195
00:10:08,000 --> 00:10:14,000
Telemetry is absolutely for smaller devices customized to the network capability that's available,

196
00:10:14,000 --> 00:10:15,000
that kind of thing.

197
00:10:15,000 --> 00:10:21,000
One thing I'm always curious about with middleware, and I use that phrase tentatively here, is,

198
00:10:21,000 --> 00:10:27,000
would you say when someone's, some organization is using MQ, is it more of a middleware component

199
00:10:27,000 --> 00:10:30,000
in their software stack or is it a system that they're running?

200
00:10:30,000 --> 00:10:31,000
Oh.

201
00:10:31,000 --> 00:10:32,000
Does that distinction make sense?

202
00:10:32,000 --> 00:10:33,000
Yeah, okay.

203
00:10:33,000 --> 00:10:35,000
I would say it's a middleware component, really.

204
00:10:35,000 --> 00:10:36,000
Right.

205
00:10:36,000 --> 00:10:38,000
So it's kind of, it's not a service.

206
00:10:38,000 --> 00:10:39,000
It's a capability.

207
00:10:39,000 --> 00:10:40,000
It's not a universal sort of service.

208
00:10:40,000 --> 00:10:41,000
No, no.

209
00:10:41,000 --> 00:10:43,000
I mean, services would usually themselves use MQ or run on MQ.

210
00:10:43,000 --> 00:10:45,000
So you might, your program, your service.

211
00:10:45,000 --> 00:10:46,000
Right.

212
00:10:46,000 --> 00:10:50,000
Your application may be, may use MQ to do its interface to the world.

213
00:10:50,000 --> 00:10:51,000
Right.

214
00:10:51,000 --> 00:10:56,000
If you think about an application, we're talking about this in the on conference this morning, actually.

215
00:10:56,000 --> 00:11:03,000
And a guy was asking about files and how do I get, move away from file driven batch to SOA services.

216
00:11:03,000 --> 00:11:08,000
And actually, you know, people are always going to be sending files in some form or another.

217
00:11:08,000 --> 00:11:13,000
So you might be able to reduce the number of files coming in, but you're probably not going to eliminate them.

218
00:11:13,000 --> 00:11:14,000
So get over them.

219
00:11:14,000 --> 00:11:15,000
Files are just so comfortable.

220
00:11:15,000 --> 00:11:16,000
Well, they are.

221
00:11:16,000 --> 00:11:17,000
They are.

222
00:11:17,000 --> 00:11:20,000
And, you know, everybody has notepad and we can just hack away.

223
00:11:20,000 --> 00:11:21,000
Right.

224
00:11:21,000 --> 00:11:22,000
But more to the point.

225
00:11:22,000 --> 00:11:23,000
That's how I submit my batch jobs.

226
00:11:23,000 --> 00:11:24,000
Notepad.

227
00:11:24,000 --> 00:11:25,000
Notepad.

228
00:11:25,000 --> 00:11:26,000
Nice.

229
00:11:26,000 --> 00:11:27,000
Nice.

230
00:11:27,000 --> 00:11:28,000
So, but it's just another interface.

231
00:11:28,000 --> 00:11:32,000
So if you think of a program that takes input, you mentioned shared directories maybe.

232
00:11:32,000 --> 00:11:33,000
It could be reading files.

233
00:11:33,000 --> 00:11:34,000
It could be reading from queues.

234
00:11:34,000 --> 00:11:35,000
It could be receiving HTTP calls.

235
00:11:35,000 --> 00:11:37,000
It could be coming in over TCP.

236
00:11:37,000 --> 00:11:39,000
You know, you've got a range of different ways.

237
00:11:39,000 --> 00:11:44,000
So, you can see files and queues as different interfaces to your services.

238
00:11:44,000 --> 00:11:48,000
So, coming back to your question, therefore, I would see queuing as a component.

239
00:11:48,000 --> 00:11:49,000
You know, a middleware component.

240
00:11:49,000 --> 00:11:50,000
Right, right, right.

241
00:11:50,000 --> 00:11:53,000
A feature, a capability of your system.

242
00:11:53,000 --> 00:11:54,000
Right.

243
00:11:54,000 --> 00:11:58,000
So it's not something bigger than the applications that use it that you kind of integrate with.

244
00:11:58,000 --> 00:12:01,000
It's more you pull it in as part of your application.

245
00:12:01,000 --> 00:12:04,000
Yeah, I mean, one of the ways that people often talk about it is as plumbing, right?

246
00:12:04,000 --> 00:12:05,000
Yeah.

247
00:12:05,000 --> 00:12:08,000
You know, it's the pipe work that goes underneath your house.

248
00:12:08,000 --> 00:12:09,000
Right, right.

249
00:12:09,000 --> 00:12:11,000
Having taken a kind of technology-first approach.

250
00:12:11,000 --> 00:12:16,000
So, you know, I think a lot of people, including myself until I was beaten over the head with

251
00:12:16,000 --> 00:12:19,000
it a lot, like they hear things like batch job and jobs and queues.

252
00:12:19,000 --> 00:12:22,000
And frankly, it's sort of like I have no idea how that stuff is used.

253
00:12:22,000 --> 00:12:25,000
Like what the business applications of that are, right?

254
00:12:25,000 --> 00:12:26,000
Right.

255
00:12:26,000 --> 00:12:28,000
And then like you were saying, you know, people ask like, oh, we get these files transferred

256
00:12:28,000 --> 00:12:29,000
to us.

257
00:12:29,000 --> 00:12:30,000
And what do we do with that?

258
00:12:30,000 --> 00:12:37,000
And it would be great to hear sort of like what, I'm always hesitating because I want

259
00:12:37,000 --> 00:12:40,000
to come up with something that doesn't sound like a stupid business term, but like what

260
00:12:40,000 --> 00:12:43,000
business services are these queues being used for?

261
00:12:43,000 --> 00:12:44,000
I mean, everyone.

262
00:12:44,000 --> 00:12:51,000
I mean, I've been a consultant and I've worked with, you know, retail and finance and government

263
00:12:51,000 --> 00:12:56,000
and every system can conceptually use them.

264
00:12:56,000 --> 00:12:57,000
Right.

265
00:12:57,000 --> 00:12:59,000
And many companies and organizations and industries do use them.

266
00:12:59,000 --> 00:13:00,000
Yeah.

267
00:13:00,000 --> 00:13:05,000
I mean, the need to transfer data between point A and point B or point A and points B, C,

268
00:13:05,000 --> 00:13:08,000
D, E and F or whatever is every application needs that.

269
00:13:08,000 --> 00:13:14,000
But, but it seems like it seems like there's a certain class of applications that use queues

270
00:13:14,000 --> 00:13:15,000
a lot more than others.

271
00:13:15,000 --> 00:13:21,000
And like, like a lot of financial applications use queues to basically to synchronize payments

272
00:13:21,000 --> 00:13:22,000
or transfers between accounts.

273
00:13:22,000 --> 00:13:23,000
I mean, things like that.

274
00:13:23,000 --> 00:13:27,000
There's things that I think if you were writing this kind of application, you'd probably use a

275
00:13:27,000 --> 00:13:29,000
queue just without thinking about it.

276
00:13:29,000 --> 00:13:32,000
Whereas as you were saying, someone like Twitter is not going to be using a queue.

277
00:13:32,000 --> 00:13:33,000
Yeah.

278
00:13:33,000 --> 00:13:36,000
But I mean, the other thing is, so web services.

279
00:13:36,000 --> 00:13:37,000
Web services, great.

280
00:13:37,000 --> 00:13:42,000
I know you guys are really big fans of the web service standards and all that XML stuff.

281
00:13:42,000 --> 00:13:43,000
Yeah.

282
00:13:43,000 --> 00:13:50,000
So, so HTTP is great as a, as a transport for web services, except it's synchronous.

283
00:13:50,000 --> 00:13:51,000
Right.

284
00:13:51,000 --> 00:13:56,000
So if the other end isn't listening or isn't available or is too busy, then your call will time

285
00:13:56,000 --> 00:13:58,000
out and you will have to handle that.

286
00:13:58,000 --> 00:14:00,000
So, hey, what a great idea.

287
00:14:00,000 --> 00:14:04,000
If, if that guy's too busy because it's, it's got loads of incoming requests, then why not,

288
00:14:04,000 --> 00:14:06,000
instead of having an HTTP call, put a queue there.

289
00:14:06,000 --> 00:14:07,000
Yeah.

290
00:14:07,000 --> 00:14:09,000
So you can do things like web services over JMS.

291
00:14:09,000 --> 00:14:15,000
So, you know, your, your, your calling application that's invoking the service can just, just do

292
00:14:15,000 --> 00:14:17,000
that via, via sending a message somewhere.

293
00:14:17,000 --> 00:14:18,000
It doesn't have to be synchronous.

294
00:14:18,000 --> 00:14:19,000
Right.

295
00:14:19,000 --> 00:14:20,000
And then it can wait and come back later.

296
00:14:20,000 --> 00:14:26,000
So you've got things like the WS addressing standard, which let you say, call me back on this address

297
00:14:26,000 --> 00:14:27,000
later when, when you're done.

298
00:14:27,000 --> 00:14:28,000
All right.

299
00:14:28,000 --> 00:14:29,000
Okay.

300
00:14:29,000 --> 00:14:34,000
And, and, and, and I imagine, and correct me if I'm wrong, but situations like, like retail

301
00:14:34,000 --> 00:14:35,000
data might be nice for that.

302
00:14:35,000 --> 00:14:39,000
If you have like hundreds of stores that need to, for whatever reason, send their current

303
00:14:39,000 --> 00:14:40,000
inventory needs to a central place.

304
00:14:40,000 --> 00:14:42,000
Well, that kind of thing is also trickle feed, right?

305
00:14:42,000 --> 00:14:46,000
The idea of trickle feed is, is kind of very powerful in retail that you just want to, as,

306
00:14:46,000 --> 00:14:50,000
as people, you know, buy stuff through, come through Best Buy and going through transactions

307
00:14:50,000 --> 00:14:55,000
of the, of the, of the, of the, of the register, then those just maybe get fired off up.

308
00:14:55,000 --> 00:14:58,000
Uh, so it's a lot more real time than like 24 hour batches or something.

309
00:14:58,000 --> 00:14:59,000
It can be real time.

310
00:14:59,000 --> 00:15:00,000
It can be real time.

311
00:15:00,000 --> 00:15:01,000
Absolutely.

312
00:15:01,000 --> 00:15:05,000
And then all of those transactions batched up in the store and then overnight FTP them

313
00:15:05,000 --> 00:15:06,000
to, to home.

314
00:15:06,000 --> 00:15:08,000
You could just start to literally feed them.

315
00:15:08,000 --> 00:15:11,000
If you go in the Apple store, you know, and they'll say, uh, do you want me to receive

316
00:15:11,000 --> 00:15:12,000
email to you?

317
00:15:12,000 --> 00:15:13,000
Right.

318
00:15:13,000 --> 00:15:15,000
And, you know, magically they email it to you.

319
00:15:15,000 --> 00:15:16,000
Yeah.

320
00:15:16,000 --> 00:15:17,000
Yeah.

321
00:15:17,000 --> 00:15:18,000
You can also go online and see what you've purchased.

322
00:15:18,000 --> 00:15:20,000
So there's probably a queue involved in there somewhere.

323
00:15:20,000 --> 00:15:21,000
Who knows?

324
00:15:21,000 --> 00:15:25,000
I guess kind of the, the last question is, so, I mean, MQ is like 15 years old.

325
00:15:25,000 --> 00:15:26,000
Right.

326
00:15:26,000 --> 00:15:30,000
And what, I mean, what, what are you guys thinking about doing in the next five years or whatever?

327
00:15:30,000 --> 00:15:31,000
Right.

328
00:15:31,000 --> 00:15:33,000
Like something that's as old as MQ at some point.

329
00:15:33,000 --> 00:15:34,000
Let's not calling it old.

330
00:15:34,000 --> 00:15:35,000
Let's just, you know, it's not old.

331
00:15:35,000 --> 00:15:37,000
Something that says, is mature.

332
00:15:37,000 --> 00:15:38,000
It's rich and mature.

333
00:15:38,000 --> 00:15:39,000
Right.

334
00:15:39,000 --> 00:15:40,000
There you go.

335
00:15:40,000 --> 00:15:41,000
Very capable.

336
00:15:41,000 --> 00:15:42,000
Well said.

337
00:15:42,000 --> 00:15:45,000
Like, you know, there's always this question of, let me grab my blue, blue hat and blue,

338
00:15:45,000 --> 00:15:46,000
blue collar.

339
00:15:46,000 --> 00:15:47,000
Right.

340
00:15:47,000 --> 00:15:48,000
There's always this question of, is there anything left to do?

341
00:15:48,000 --> 00:15:49,000
Right.

342
00:15:49,000 --> 00:15:50,000
And there is.

343
00:15:50,000 --> 00:15:51,000
And there is.

344
00:15:51,000 --> 00:15:52,000
Whatever things that are left to do in the queuing space.

345
00:15:52,000 --> 00:15:53,000
Right.

346
00:15:53,000 --> 00:15:57,000
So there's emerging models and emerging programming patterns and ways of accessing data.

347
00:15:57,000 --> 00:16:02,000
So I mentioned our telemetry protocol, which is very optimized for what, for IBM smarter

348
00:16:02,000 --> 00:16:03,000
planet story.

349
00:16:03,000 --> 00:16:04,000
Right.

350
00:16:04,000 --> 00:16:05,000
The whole smarter planet.

351
00:16:05,000 --> 00:16:10,000
Well, let's, let's make use of this instrumented planet we've built and start to get, receive

352
00:16:10,000 --> 00:16:13,000
data from those sensors onto our data backbone, which is MQ.

353
00:16:13,000 --> 00:16:14,000
To trickle in perhaps, as you were saying.

354
00:16:14,000 --> 00:16:15,000
Yeah.

355
00:16:15,000 --> 00:16:16,000
A trickle in maybe.

356
00:16:16,000 --> 00:16:20,000
Or maybe you need to actually do kind of two way communications.

357
00:16:20,000 --> 00:16:23,000
So, so that's a nice and interesting model.

358
00:16:23,000 --> 00:16:28,000
There are also things like some of the new, newer web push models.

359
00:16:28,000 --> 00:16:33,000
And I can't talk too much about specific plans, but, but you know, we're very aware

360
00:16:33,000 --> 00:16:38,000
of things like the ability to push data to web browsers through new technologies.

361
00:16:38,000 --> 00:16:39,000
Right.

362
00:16:39,000 --> 00:16:41,000
There's sort of new endpoints that emerge that you want to integrate with.

363
00:16:41,000 --> 00:16:42,000
Yeah, absolutely.

364
00:16:42,000 --> 00:16:44,000
You know, mobile is obviously huge.

365
00:16:44,000 --> 00:16:51,000
And, and, and it's about not abandoning the existing data backbone customers, because that's,

366
00:16:51,000 --> 00:16:53,000
you know, because they're absolutely cool.

367
00:16:53,000 --> 00:17:01,000
But to extend the ability to interact with the queuing fabric from new, new programming models,

368
00:17:01,000 --> 00:17:04,000
new languages, and new protocols potentially.

369
00:17:04,000 --> 00:17:09,000
So, yeah, you can see that telemetry is as an example of one of those.

370
00:17:09,000 --> 00:17:13,000
The ability to plug into your existing MQ infrastructure.

371
00:17:13,000 --> 00:17:14,000
Right.

372
00:17:14,000 --> 00:17:17,000
With a specialized protocol for, for lightweight networks.

373
00:17:17,000 --> 00:17:18,000
Right, right, right.

374
00:17:18,000 --> 00:17:19,000
Yeah, no.

375
00:17:19,000 --> 00:17:22,000
That's, that's where we, that's, that's, that's where all of the cool stuff's happening.

376
00:17:22,000 --> 00:17:23,000
Yeah, yeah.

377
00:17:23,000 --> 00:17:28,000
And also some of the data encryption around the compliance situations that people find themselves

378
00:17:28,000 --> 00:17:29,000
in, we've, we've been looking at that.

379
00:17:29,000 --> 00:17:32,000
I mean, you've just got to look at the releases over the last few years that we've been doing.

380
00:17:32,000 --> 00:17:34,000
And that's where they're geared.

381
00:17:34,000 --> 00:17:36,000
Usability is always important as well.

382
00:17:36,000 --> 00:17:40,000
You know, the ability to more effectively manage things in a nice usable way.

383
00:17:40,000 --> 00:17:44,000
I think it's a great product from usability perspective anyway.

384
00:17:44,000 --> 00:17:45,000
Right.

385
00:17:45,000 --> 00:17:47,000
But there's always nicer things you can tweak.

386
00:17:47,000 --> 00:17:48,000
Well, great.

387
00:17:48,000 --> 00:17:49,000
Well, thanks for taking all this time to go over MQ stuff.

388
00:17:49,000 --> 00:17:50,000
No worries.

389
00:17:50,000 --> 00:17:51,000
Thanks for taking all this time to go over MQ stuff.

390
00:17:51,000 --> 00:18:20,980
Thank you.
