-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmetadata.xml
More file actions
403 lines (345 loc) · 23 KB
/
metadata.xml
File metadata and controls
403 lines (345 loc) · 23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
<ipojo xmlns:wbp="org.apache.felix.ipojo.whiteboard">
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA HANDLER COMPONENTS ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!--
Service based applications can require and provide services. To handle these aspects, Dsoa Platform proposes
two components: ProviderManager and DependencyHandler. Together, these components are responsible for dynamically
managing application architecture. More specifically, they are in charge of keeping the connections (wirings)
between application components.
The ProviderManager component register the services that are provided by a component when it is valid and track its
execution br.ufpe.cin.dsoa.environment. In fact, each service that is provided explicitly states its requirements in terms of its
br.ufpe.cin.dsoa.environment and the quality that it should provide. When the br.ufpe.cin.dsoa.environment doesn't offer the required quality
of service the changes the service configuration or unregister it (if it can not handle the current operation
condition.
The DependencyHandler component is responsible for supervising the quality of service currently provided by
the services that the application consumes. When the quality level is bellow the application expectations, it
searches for a replacement service.
-->
<handler name="provides" namespace="br.ufpe.cin.dsoa"
classname="br.ufpe.cin.dsoa.platform.handler.provider.DsoaProvidesHandler" >
</handler>
<handler name="requires" namespace="br.ufpe.cin.dsoa"
classname="br.ufpe.cin.dsoa.platform.handler.requires.DsoaRequiresHandler" >
</handler>
<handler name="qosLibrary" namespace="br.ufpe.cin.dsoa"
classname="br.ufpe.cin.dsoa.platform.handler.qos.DsoaQoSManagerHandler" >
</handler>
<handler name="manager" namespace="br.ufpe.cin.dsoa"
classname="br.ufpe.cin.dsoa.platform.handler.manager.DsoaAutonomicManagerHandler" >
</handler>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DEFAULT SERVICE SELECTION ========================================= -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<component name="Platform.Dsoa.Service.Selector"
classname="br.ufpe.cin.dsoa.platform.service.selector.SimpleAdditiveWeighting">
<provides/>
<requires field="epService" />
<requires field="attributeMapperCatalog" />
<requires field="eventTypeCatalog" />
<callback transition="validate" method="start" />
</component>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA PLATFORM ========================================= -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<component name="Platform.Dsoa"
classname="br.ufpe.cin.dsoa.platform.DsoaPlatform">
<requires field="serviceRegistry" />
<requires field="attributeCatalog" />
<requires field="attEventMapperCatalog" />
<requires field="eventTypeCatalog" />
<requires field="agentCatalog" />
<requires field="monitoringService" />
<requires field="epService" />
<requires field="eventDistribuitionService" />
<provides/>
</component>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA PROXY FACTORY ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- NOT REQUIRED ANYMORE -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA METRIC COMPUTING COMPONENT ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<component name="Platform.Metric.MetricComputingComponent"
classname="br.ufpe.cin.dsoa.platform.attribute.impl.AttributeManager">
<provides />
</component>
<!--
This component implements DSOA Attributes Catalog. It maintains a register of QoS attributes that are supported
by the platform.
-->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA SERVICE DISCOVERY SERVICE ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!--
This component enables service discovery based on a non-functional specification containing QoS attributes. It
ranks services according to a configurable RankingPolicy which can be modified at runtime
-->
<component name="Platform.Registry.QoSAwareRegistryComponent"
classname="br.ufpe.cin.dsoa.platform.registry.impl.OsgiServiceRegistry">
<provides />
</component>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA PLATFORM MONITORING SERVICE ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!--
This component is responsible for monitoring services that are registered in the platform. It reads the service
non-functional specification, identify declared QoS attributes, and starts a monitor (an agent processing instance)
that computes corresponding attribute values. It is important to mention that its monitoring action is passive, in the
sense that the service DOESN'T generate artificial requests. It computes metrics based on InvocationEvents that
are generated when the service is requested. In fact, it register agents in the EventProcessingService, which are
able to compute the corresponding metrics.
-->
<component name="Platform.Monitor.MonitoringComponent"
classname="br.ufpe.cin.dsoa.platform.monitor.impl.MonitoringServiceImpl">
<requires field="eventProcessingService" />
<requires field="attributeCatalog" />
<requires field="attributeMapperCatalog" />
<requires field="eventCatalogy" />
<provides/>
<callback transition="invalidate" method="stop" />
</component>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA VERIFIER SERVICE ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!--
-->
<!-- <component name="Platform.Manager.Verifier"
classname="br.ufpe.cin.dsoa.platform.handler.requires.manager.DsoaBindingAnalyzer">
<requires field="attributeMapperCatalog"/>
<requires field="eventProcessingService"/>
<provides />
</component> -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA EVENT PROCESSING CENTER ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!--
This component implements DSOA event processing capability. It receives events from Event Producers through Event
Channels. These events comprise streams that are connected through Event Processing Agents. These components filter,
aggregate, and transform events generating new Event Streams that can be forwarded to Event Consumers that subscribe
themselves to listen those events. The collection of Event Producers, Event Processing Agents, and Event Consumers
connected together compose Event Processing Networks.
-->
<!-- <composite name="Platform.Event.EventProcessingComponent">
<instance component="Platform.Event.AgentCatalog" />
<instance component="Platform.Event.EventTypeCatalog" />
<instance component="Platform.Event.EventProcessingService" />
<subservice action="import"
specification="org.osgi.service.event.EventAdmin"/>
<provides action="export" specification="br.ufpe.cin.dsoa.platform.event.AgentCatalog"/>
<provides action="export" specification="br.ufpe.cin.dsoa.platform.event.EventTypeCatalog"/>
<provides action="export" specification="br.ufpe.cin.dsoa.platform.event.EventProcessingService"/>
</composite> -->
<!--
This component implements a catalog that register the agents that are known by the platform and that can be used
to build Event Processing Networks.
-->
<component name="Platform.Event.AgentCatalog"
classname="br.ufpe.cin.dsoa.platform.event.impl.AgentCatalogImpl">
<provides />
</component>
<component name="Platform.Event.EventTypeCatalog"
classname="br.ufpe.cin.dsoa.platform.event.impl.EventTypeCatalogImpl">
<provides />
</component>
<component name="Platform.Event.EventAdapterCatalog"
classname="br.ufpe.cin.dsoa.platform.event.impl.EventAdapterCatalogImpl">
<provides />
</component>
<component name="Platform.Event.EventProcessingService"
classname="br.ufpe.cin.dsoa.platform.event.impl.EsperProcessingService" >
<requires field="eventTypeCatalog"/>
<requires field="agentCatalog"/>
<requires field="eventAdapterCatalog"/>
<requires field="eventDistribuitionService"/>
<provides />
<callback transition="validate" method="start" />
<callback transition="invalidate" method="stop" />
</component>
<component name="Platform.Event.EventDistributionService"
classname="br.ufpe.cin.dsoa.platform.event.impl.EventAdminDistributionService">
<requires field = "eventTypeCatalog"/>
<requires field="eventAdmin"/>
<requires field="eventAdapterCatalog"/>
<provides />
<callback transition="validate" method="start" />
<callback transition="invalidate" method="stop" />
</component>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA PLATFORM CONFIGURATOR ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- THIS IS NOT DONE LIKE THAT IN THE NEW VERSION -->
<!--
This component is responsible for configuring the components that listen for platform extensions. It starts a
bundle listener that is responsible for continuously looking for declarative extensions (attributes, events,
and agents). This listener inspects started bundles and searches its entries trying to find configuration files.
In this context, it is an implementation of the "Extender Pattern".
The management service also starts a service tracker that listen service registrations in order to starting
monitoring new services. So, when a remote service is registered, triggers the MonitoringService to start
service monitoring. -->
<component name="Platform.Configuration.ConfiguratorComponent"
classname="br.ufpe.cin.dsoa.platform.configurator.PlatformConfigurator">
<requires field="attributeCatalog" />
<requires field="attributeEventMapperCatalog" />
<requires field="agentCatalog" />
<requires field="eventTypeCatalog" />
<requires field="epService" />
<requires field="edService" />
<requires field="resourceManager" />
<callback transition="validate" method="start" />
<callback transition="invalidate" method="stop" />
</component>
-->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA PLATFORM MANAGEMENT SERVICE ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!--
The ManagementService component is the DSOA's management Facade. It is responsible for providing an access point
to perform management related activities. It is exposed as remote service in order to allow remote management. The
other components are shell commands intended to allow local administration.
-->
<component name="Platform.Management.ManagementComponent"
classname="br.ufpe.cin.dsoa.platform.management.impl.PlatformManagementServiceImpl">
<requires field="attributeCatalog" />
<requires field="agentCatalog" />
<requires field="monitoringService" />
<requires field="managementInfomationBase" />
<!-- <provides >
<property name="org.apache.cxf.ws.address" value="http://localhost:9090/ManagementService" type="java.lang.String"/>
<property name="service.exported.interfaces" value="*" type="java.lang.String"/>
<property name="service.exported.configs" value="org.apache.cxf.ws" type="java.lang.String"/>
</provides> -->
</component>
<component name="Platform.Management.ResourceManagerComponent"
classname="br.ufpe.cin.dsoa.platform.resource.impl.ResourceManagerImpl">
<requires field="monitoringService" />
<requires field="managementInfomationBase" />
<requires field="epService" />
<!-- <requires field="proxyFactory" /> -->
<provides />
</component>
<!--
Platform management information base
-->
<component name="Plataform.Management.InformationBase"
classname="br.ufpe.cin.dsoa.platform.management.impl.DsoaManagementInformationBase">
<provides/>
</component>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA MANAGEMENT SHELL ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!--
This class is the root of DSOA's command shell. Every DSOA command should be enacted through 'dsoa' prefix,
so that this class is called to handle the command. In fact, it just delegate the responsibility of executing
the command itself to the OSGI's ShellCommand.
-->
<component name="Platform.Shell.DsoaShell" classname="br.ufpe.cin.dsoa.platform.management.shell.DsoaShell">
<requires field="shellService" />
<provides />
<callback transition="validate" method="start" />
<callback transition="invalidate" method="stop" />
</component>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA MANAGEMENT SHELL COMMANDS ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!--
Various shell components intended to enable local platform administration.
-->
<component name="Platform.Shell.ListAttributesCmd" classname="br.ufpe.cin.dsoa.platform.management.shell.ListAttributesCommand">
<requires field="managementService"/>
<provides />
</component>
<component name="Platform.Shell.ListAgentsCmd" classname="br.ufpe.cin.dsoa.platform.management.shell.ListAgentsCommand">
<requires field="managementService"/>
<provides />
</component>
<component name="Platform.Shell.ListServicesCmd" classname="br.ufpe.cin.dsoa.platform.management.shell.ListServicesCommand">
<requires field="managementService"/>
<provides />
</component>
<component name="Platform.Shell.ListServiceOperationsCmd" classname="br.ufpe.cin.dsoa.platform.management.shell.ListServiceOperationsCommand">
<requires field="managementService"/>
<provides />
</component>
<component name="Platform.Shell.AddMonitorCmd" classname="br.ufpe.cin.dsoa.platform.management.shell.AddMonitorCommand">
<requires field="managementService"/>
<provides />
</component>
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<!-- ========================== DSOA COMPONENT INSTANCES ========================== -->
<!-- ============================================================================================================ -->
<!-- ============================================================================================================ -->
<instance component="Platform.Dsoa.Service.Selector" />
<instance component="Platform.Dsoa"/>
<instance component="Platform.Event.EventProcessingComponent" />
<instance component="Platform.Metric.MetricComputingComponent" />
<instance component="Platform.Monitor.MonitoringComponent" />
<instance component="Platform.Registry.QoSAwareRegistryComponent" />
<instance component="Platform.Configuration.ConfiguratorComponent" />
<instance component="Platform.Management.ManagementComponent" />
<instance component="Platform.Management.ResourceManagerComponent" />
<instance component="Plataform.Management.InformationBase" />
<instance component="Platform.Manager.Verifier"/>
<instance component="Platform.Shell.DsoaShell" />
<instance component="Platform.Shell.ListAttributesCmd" />
<instance component="Platform.Shell.ListAgentsCmd" />
<instance component="Platform.Shell.ListServicesCmd" />
<instance component="Platform.Shell.ListServiceOperationsCmd" />
<instance component="Platform.Shell.AddMonitorCmd" />
<instance component="Platform.Event.AgentCatalog" />
<instance component="Platform.Event.EventTypeCatalog" />
<instance component="Platform.Event.EventAdapterCatalog" />
<instance component="Platform.Event.EventProcessingService" />
<instance component="Platform.Event.EventDistributionService" />
<!-- <instance component="br.ufpe.cin.dsoa.platform.handler.requires.manager.DsoaBindingAnalyzer"/> -->
<!-- <instance component="Platform.Catalog.AgentCatalog" />
<instance component="Platform.Catalog.AttributeCatalog" />
<instance component="Platform.Catalog.AttributeEventMapperCatalog" />
<instance component="Platform.Catalog.EventCatalog" /> -->
<!-- <instance component="br.ufpe.cin.dsoa.platform.management.impl.PlatformManagementServiceImpl" /> -->
<!-- <instance component="br.ufpe.cin.dsoa.platform.attribute.impl.AttributeManager" />
<instance component="br.ufpe.cin.dsoa.platform.configurator.DsoaServiceTracker" />
<instance component="br.ufpe.cin.dsoa.platform.event.impl.EsperProcessingService" /> -->
<!--
<instance component="Platform.Registry.QoSAwareRegistryComponent"/>
<instance component="br.ufpe.cin.dsoa.platform.handler.requires.manager.DsoaBindingAnalyzer"/>
<instance component="br.ufpe.cin.dsoa.resource.impl.MonitoredServiceListenerImpl"/> -->
<!-- <instance component="br.ufpe.cin.dsoa.platform.configurator.DsoaFindHook" /> -->
<!-- <composite name="Management.ManagementService">
<subservice action="import" specification="org.apache.felix.shell.ShellService"/>
<subservice action="import" specification="br.ufpe.cin.dsoa.platform.attribute.AttributeCatalog"/>
<subservice action="import" specification="br.ufpe.cin.dsoa.resource.ResourceManagementService"/>
<instance component="Management.DsoaShell" />
<instance component="Management.ManagementServiceImpl" />
<provides action="export" specification="org.apache.felix.shell.Command"/>
<provides action="export" specification="br.ufpe.cin.dsoa.platform.management.PlatformManagementService"/>
</composite> -->
</ipojo>