1
00:00:00,000 --> 00:00:09,320
So, today we're going to look at a quick overview of Eclipse Swordfish, which is a new project

2
00:00:09,320 --> 00:00:14,860
for SOA that was started up in September, if I remember correctly, so quite recently.

3
00:00:15,300 --> 00:00:16,920
And would you like to introduce yourself?

4
00:00:17,920 --> 00:00:22,080
Yeah, I'd like to introduce myself, my company, and the project.

5
00:00:22,660 --> 00:00:24,100
My name is Rico Deutscher.

6
00:00:24,280 --> 00:00:27,560
I'm one of the two managing directors of SOPARA.

7
00:00:28,160 --> 00:00:31,960
SOPARA is a newly founded company in Germany.

8
00:00:32,840 --> 00:00:35,980
It was founded in March this year.

9
00:00:36,900 --> 00:00:42,160
And we positioned ourselves as a provider for open source SOA platform.

10
00:00:44,740 --> 00:00:54,600
And we became a strategic member of Eclipse Foundation and initiated a new project called Swordfish.

11
00:00:54,820 --> 00:01:01,320
The goal of this project is to provide a runtime framework for SOA platform.

12
00:01:03,000 --> 00:01:13,120
Eclipse is very strong on the tooling side, has a SOA tooling platform called STP, but no SOA runtime framework.

13
00:01:13,500 --> 00:01:17,920
And this was the reason why we initiated that within Eclipse.

14
00:01:18,180 --> 00:01:28,220
And then just to be clear, I mean, what you mean by SOA runtime is, while there's tooling in Eclipse for creating SOA sort of components,

15
00:01:28,560 --> 00:01:34,300
or an SOA, if you will, what this is is more, when you've already created your SOA, you want to actually run it.

16
00:01:34,700 --> 00:01:41,420
And this is sort of like a deployment thing or a runtime, if you will, for running whatever SOA you might have come up with.

17
00:01:42,300 --> 00:01:46,540
For example, Enterprise Service Bus is a SOA runtime component.

18
00:01:47,040 --> 00:01:47,300
Right.

19
00:01:47,440 --> 00:01:47,920
That makes sense.

20
00:01:48,580 --> 00:01:52,560
So this is actually code that you'll use at production, not just during development.

21
00:01:53,080 --> 00:01:53,300
Yeah.

22
00:01:53,440 --> 00:02:03,100
This code is quite mature because it was developed the last six years as part of Deutsche Post in Germany.

23
00:02:04,040 --> 00:02:08,180
And it's now contributed as part of this Swordfish project.

24
00:02:08,480 --> 00:02:08,760
Right.

25
00:02:08,960 --> 00:02:12,840
So let's jump into the technical part of this presentation.

26
00:02:14,020 --> 00:02:21,240
We see that there were two major technical inhibitors for a coherent SOA platform in the past.

27
00:02:22,160 --> 00:02:24,700
Number one, a split of relevant standards.

28
00:02:25,800 --> 00:02:28,380
Number two, gaps in the component models.

29
00:02:29,720 --> 00:02:41,100
If we go to point number one, we see that JBI and SCA are the two major standards in regards to SOA.

30
00:02:42,200 --> 00:02:47,460
And the political view in the past is that they compete.

31
00:02:48,840 --> 00:02:58,420
And you see it from the industry initial drivers, Sun, Iona, and Tipco pushed very much JBI.

32
00:02:59,580 --> 00:03:03,860
And IBM, BA, SAP pushed very much SCA.

33
00:03:04,280 --> 00:03:04,520
Right.

34
00:03:04,520 --> 00:03:07,820
And you see it in the open source implementations.

35
00:03:08,500 --> 00:03:20,420
There is no platform available on the market, no commercial one, and no open source implementation, which implement two standards, both standards.

36
00:03:21,760 --> 00:03:28,060
ServiceMix, OpenESB, implement JBI, and Tuscany, FAPI-3, implement SCA.

37
00:03:28,580 --> 00:03:30,860
But there's no one implementing both of them.

38
00:03:31,300 --> 00:03:38,340
And do you think that's just because people sort of put stakes on the ground and they're just interested in developing those two things out?

39
00:03:38,420 --> 00:03:40,720
I mean, there's not really a – is there a technical reason for it?

40
00:03:41,080 --> 00:03:41,320
No.

41
00:03:41,980 --> 00:03:45,940
I think really from a technical point of view, they're very much complementary.

42
00:03:46,560 --> 00:03:46,780
Yeah.

43
00:03:46,780 --> 00:03:48,840
The overlap is very small.

44
00:03:50,200 --> 00:03:56,780
And they could fulfill different roles as part of a runtime environment.

45
00:03:57,460 --> 00:04:02,240
SCA could be responsible for assembly and deployment of composite applications.

46
00:04:02,460 --> 00:04:07,580
And JBI could become a runtime execution of service components.

47
00:04:08,380 --> 00:04:09,400
Right, right, right.

48
00:04:09,400 --> 00:04:13,840
But let me come to a second reason and explain it in detail.

49
00:04:14,760 --> 00:04:21,540
The second reason was that in the past, component models show gaps for SOA platform.

50
00:04:22,060 --> 00:04:25,360
We see two major component models in the past.

51
00:04:26,360 --> 00:04:29,600
JEE is very heavyweight and very complex.

52
00:04:30,600 --> 00:04:37,960
Spring is lightweight but does not have dynamic deployment or reconfiguration.

53
00:04:38,900 --> 00:04:49,360
Therefore, we see OSGI as a winning component model for the next innovation cycle because OSGI shows dynamic behavior.

54
00:04:49,760 --> 00:04:52,680
It's easy to use, has a small footprint, and it's quite mature.

55
00:04:53,260 --> 00:04:53,860
Right.

56
00:04:54,140 --> 00:04:56,800
And what do you mean exactly by the dynamic part?

57
00:04:57,480 --> 00:04:59,220
For example, a hot deployment.

58
00:05:00,100 --> 00:05:10,380
Hot deployment of bundles is a component that's not possible in JE, neither in Spring, but it is possible in OSGI.

59
00:05:11,320 --> 00:05:15,000
Why do you call it enterprise OSGI instead of just OSGI?

60
00:05:15,000 --> 00:05:27,800
Well, because OSGI was designed for the development environments, so this is the basis for Eclipse IDE.

61
00:05:28,480 --> 00:05:29,180
Right, right.

62
00:05:29,220 --> 00:05:34,660
In order to bring that to the runtime, to the server side, it needs some extensions.

63
00:05:35,340 --> 00:05:35,900
Right.

64
00:05:35,960 --> 00:05:47,480
And currently, there are initiatives in the OSGI expert group driving OSGI standard towards server side, and it's underway.

65
00:05:48,480 --> 00:05:48,680
Right.

66
00:05:48,680 --> 00:05:59,660
And there's a lot of – has a lot of industry backing from major vendors as, for example, IBM and BA and others.

67
00:06:00,640 --> 00:06:07,200
And so there's enough momentum to bring OSGI enterprise, server side enterprise ready.

68
00:06:07,200 --> 00:06:21,200
If you combine the two arguments together, it's very obvious that we need a major open source SOA initiative which combines all three standards.

69
00:06:22,020 --> 00:06:22,280
Right.

70
00:06:22,280 --> 00:06:28,460
OSGI on the lowest level for a component, common deployment model and runtime component model.

71
00:06:29,420 --> 00:06:38,380
A JBI in the middle for a common messaging model and SEA on top for a common programming model and common assembly description format.

72
00:06:38,960 --> 00:06:39,200
Right.

73
00:06:39,200 --> 00:06:44,500
So the question now was who drives that initiative and who hosts this initiative?

74
00:06:45,260 --> 00:06:50,640
And the answer today is that this project is called Swordfish.

75
00:06:50,840 --> 00:06:57,960
It's hosted in Eclipse Foundation, and SOPRA is a driver behind this initiative.

76
00:06:58,300 --> 00:07:02,220
Let's quickly have a look at the Swordfish architecture.

77
00:07:02,640 --> 00:07:03,200
Right, right.

78
00:07:03,200 --> 00:07:09,040
You can see here on this picture that everything is bundled into OSGI bundles.

79
00:07:09,220 --> 00:07:11,000
So it's really based on OSGI.

80
00:07:11,760 --> 00:07:24,100
And the components within these bundles are implementation – it's implementation of JBI in the first step and of SEA in the second step.

81
00:07:24,700 --> 00:07:31,660
So you're going to sort of tackle the JBI things first and then get on to the SEA things after that?

82
00:07:31,660 --> 00:07:36,080
Exactly, because JBI was used at Deutsche Post.

83
00:07:36,980 --> 00:07:37,380
Right.

84
00:07:37,580 --> 00:07:41,720
And this is pretty much available with some modification needed.

85
00:07:42,400 --> 00:07:51,480
And once we have that achieved, we move towards SEA, because this is also an important standard, as I said at the beginning.

86
00:07:52,020 --> 00:07:58,400
So each of the – in the middle, we have the OSGI runtime, which I would assume is Equinox, right?

87
00:07:58,620 --> 00:08:06,700
And then each of the things – each of the different, I don't know, sort of popsicles that are attached to it are – I mean,

88
00:08:06,720 --> 00:08:10,180
those are the different services that the Swordfish platform is going to provide, right?

89
00:08:10,760 --> 00:08:11,200
Exactly.

90
00:08:11,980 --> 00:08:12,360
Okay.

91
00:08:12,960 --> 00:08:17,220
Last chart here outlines a high-level roadmap.

92
00:08:18,440 --> 00:08:33,320
So we started with incubation phase, I guess it was September, and have an initial submission by Deutsche Post, I guess it was a week ago.

93
00:08:33,720 --> 00:08:33,980
Right.

94
00:08:34,220 --> 00:08:41,280
And we think we have a first milestone in February next year.

95
00:08:41,980 --> 00:08:52,700
We'll try to achieve a first release 1.0 at the end of the third quarter next year with SEA support.

96
00:08:54,000 --> 00:09:04,700
We think it will not go into Ganymate, but we hope to get – to reach a maturation phase in the fourth quarter next year

97
00:09:04,700 --> 00:09:11,640
and to make the second release part of the next Eclipse release train.

98
00:09:12,400 --> 00:09:18,340
And so, I mean, what do you anticipate people being able to do with the 1.0 version once it comes out?

99
00:09:18,420 --> 00:09:21,440
I mean, what's the sort of scope of projects that they could use it on?

100
00:09:21,440 --> 00:09:24,360
This is the last chart here.

101
00:09:24,440 --> 00:09:29,860
You see here what the current user community of Swordfish is.

102
00:09:30,280 --> 00:09:30,480
Right.

103
00:09:31,560 --> 00:09:41,000
There are some projects which we leverage within Swordfish, for example, EclipseLink and Higgins and maybe ALF.

104
00:09:41,720 --> 00:09:51,480
We collaborate with WTP and STP to make deployment into Swordfish happen.

105
00:09:52,300 --> 00:09:56,900
And there are a number of projects we will benefit from Swordfish.

106
00:09:58,340 --> 00:10:06,700
For example, ALF, again, OOSE and EclipseLink and the OHF.

107
00:10:07,220 --> 00:10:12,440
I think it's the Open Health Project, Healthcare Project.

108
00:10:12,780 --> 00:10:13,680
Oh, right, right, right.

109
00:10:13,900 --> 00:10:17,060
And this chart is already outdated.

110
00:10:17,060 --> 00:10:30,100
I know a number of other projects which also think about using Swordfish as a basis component.

111
00:10:30,860 --> 00:10:37,140
So, I mean, what do you anticipate the – so you have different tooling like STPs to sort of help out with making,

112
00:10:37,660 --> 00:10:43,040
whether it's an SOA thing and tooling to make the different OSGI bundles or whatever may be involved.

113
00:10:43,040 --> 00:10:50,920
But once you sort of have something built on top of Swordfish, I mean, how do you go about setting it up in runtime?

114
00:10:51,840 --> 00:10:52,820
There are different options.

115
00:10:52,980 --> 00:10:55,360
You can run it in an application server.

116
00:10:58,800 --> 00:11:09,500
We – yeah, in an application server, you can run it in an OSGI environment.

117
00:11:09,500 --> 00:11:10,060
Uh-huh.

118
00:11:11,980 --> 00:11:20,160
Whatever is available, I would say each major Java runtime environment, you can operate Swordfish.

119
00:11:20,580 --> 00:11:25,380
So, Swordfish will need some sort of container, if you will, to run inside of.

120
00:11:25,800 --> 00:11:26,000
Right.

121
00:11:26,000 --> 00:11:27,460
And it more just provides a layer.

122
00:11:27,600 --> 00:11:35,120
Like if you were running it on top of an OSGI, like Iconox or something, it's more of a layering on top of that runtime to sort of help your architecture.

123
00:11:35,120 --> 00:11:36,000
Exactly, exactly.

124
00:11:36,000 --> 00:11:36,660
Use that runtime.

125
00:11:37,620 --> 00:11:53,560
So, if – whenever Swordfish was ready, right, and if I wanted to use Swordfish on my software project, right, I mean, like what I just need to know about JBI, SCA, and OSGI, or is there – what I need to know about how Swordfish does things?

126
00:11:54,080 --> 00:12:05,140
Like I'm trying to figure out if it's sort of like a new – like a model of doing development, like done the Swordfish way, or if it's more sort of – in the same way that Spring is sort of some helper APIs to help you out with existing code bases.

127
00:12:05,140 --> 00:12:25,260
We – I think if you – if the project used JBI in the past, it can leverage Swordfish, the same with SCA, but I think Swordfish will potentially bring up some own APIs in the future.

128
00:12:25,260 --> 00:12:42,940
Because – because – and the different sort of APIs and services that provide, like we were seeing in that – the diagram a few slides back, those are – it's more providing those different services for you to use in your project than necessarily dictating a way that you develop your project, if I understand it correctly.

129
00:12:43,040 --> 00:12:43,160
Definitely, yeah.

130
00:12:43,520 --> 00:12:51,380
So it's sort of like if you need a messaging bus service or you need a service to help you, you know, whatever those various services are instead of writing –

131
00:12:51,380 --> 00:12:56,880
It is a framework to build a SOA environment, runtime environment.

132
00:12:57,160 --> 00:12:57,280
Right.

133
00:12:57,280 --> 00:13:00,140
It does not surprise a messaging service.

134
00:13:00,420 --> 00:13:04,340
So you need to have a messaging system below.

135
00:13:04,340 --> 00:13:05,340
So you need that.

136
00:13:05,340 --> 00:13:08,080
It does not provide a service registry.

137
00:13:08,740 --> 00:13:09,080
Right.

138
00:13:09,720 --> 00:13:13,540
You – well, you need a service registry to run it.

139
00:13:13,980 --> 00:13:21,940
For both, there are open source candidates for messaging, active MQ or a JORAM.

140
00:13:23,240 --> 00:13:33,100
For a service registry, you could use OpenUDDI and Shure as a UDDI server, version 3 server.

141
00:13:33,580 --> 00:13:33,840
Right.

142
00:13:33,840 --> 00:13:37,400
So you can combine this together.

143
00:13:38,120 --> 00:13:47,060
Swordfish is somehow a glue, a framework, which combines all elements necessary for a SOA platform.

144
00:13:47,380 --> 00:13:47,700
Right.

145
00:13:48,020 --> 00:13:53,220
Now, yeah, that makes perfect sense because I think in the Java world, people are familiar with that.

146
00:13:53,240 --> 00:13:57,400
Yeah, and this is exactly what Zopra provides as a product.

147
00:13:58,220 --> 00:14:09,720
A whole SOA platform builds out of major open source components, and Swordfish will be just one of these open source components.

148
00:14:10,140 --> 00:14:13,460
You see here on the screen, it's the very last chart.

149
00:14:13,880 --> 00:14:14,120
Right.

150
00:14:14,120 --> 00:14:26,940
You see here outlined on the bottom, you see four major types of plug-ins needed for a SOA runtime platform.

151
00:14:27,120 --> 00:14:30,020
It's a messaging, a registry, a security, a people engine.

152
00:14:30,700 --> 00:14:30,940
Yeah.

153
00:14:31,360 --> 00:14:38,440
And for all these type of plug-in, there are commercial candidates and open source candidates.

154
00:14:39,180 --> 00:14:45,020
And in order to integrate that into one SOA platform, you need Swordfish.

155
00:14:45,500 --> 00:14:45,760
Okay.

156
00:14:45,760 --> 00:14:57,980
So this chart outlines the role of Swordfish code as part of an open source, of an SOA suite in general.

157
00:14:58,800 --> 00:14:59,500
Yeah, that makes sense.

158
00:14:59,500 --> 00:15:04,520
So you can use existing commercial components.

159
00:15:04,700 --> 00:15:10,660
You can use open source components if there's no use in a company.

160
00:15:11,480 --> 00:15:17,540
And, yeah, build a complete SOA suite out of that.

161
00:15:17,760 --> 00:15:18,220
Right.

162
00:15:18,380 --> 00:15:19,360
Well, that makes sense.

163
00:15:20,000 --> 00:15:20,140
Yeah.

164
00:15:20,200 --> 00:15:21,820
That's pretty exciting, actually.

165
00:15:22,780 --> 00:15:29,160
The conclusion is for users, always consider open source products in your SOA project.

166
00:15:29,500 --> 00:15:29,880
Right.

167
00:15:30,360 --> 00:15:30,660
Right.

168
00:15:31,320 --> 00:15:43,020
The conclusion for ISVs is become a contributor to the Eclipse Swordfish project in order to leverage commodity components to reduce your cost.

169
00:15:43,020 --> 00:15:52,960
And the conclusion for system integrators is consider open source products in SOA projects for your clients.

170
00:15:53,280 --> 00:15:53,580
Right.

171
00:15:54,100 --> 00:16:00,860
And developers, if you want to work with SOA technology, become a contributor of the Eclipse Swordfish project.

172
00:16:01,280 --> 00:16:01,720
Right, right.

173
00:16:01,740 --> 00:16:02,560
Well, that sounds great.

174
00:16:02,700 --> 00:16:05,080
Well, thanks for taking the time to go over this with us.

175
00:16:05,180 --> 00:16:12,300
It'll be, I guess, a little bit, you know, two-thirds of the way through next year, we'll see the 1.0 version.

176
00:16:12,300 --> 00:16:16,080
And, of course, there'll be the betas and whatnot, but it'll be fun to see.

177
00:16:16,740 --> 00:16:21,320
It's always nice to have more glue in the SOA world to help make things easier, right?

178
00:16:22,500 --> 00:16:25,320
Thank you for having the opportunity to outline this.

179
00:16:25,420 --> 00:16:25,820
Absolutely.
