summaryrefslogtreecommitdiff
path: root/TAO/CIAO/NEWS
blob: cbc0f71823c7a6a16209a018bfeddedab9fc2385 (plain)
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
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
===========================================================================

. Enhance Execution Manager and Domain Application Manager to make calls
  on the Target Manager to get resource information.

. Enhance Node Manager to integrate resource monitoring capacity within
  individual Nodes.

. Add assembly-wide component activation/deactivation feature.

    - This should allow system deployers to specify the dependencies
      among component instances within the assembly.

    - Add support in DAnCE so DAnCE could enforce the order in which
      components are to be activated within the assembly.

. Add AMI support in DAnCE toolchain to when the DomainApplicationManager
  contacts node-level managers to deploy components, all the node-level
  managers could performe the deployment concurrently.

. Integrate RT-CORBA 1.2 dynamic scheduling feature into CIAO, which
  will allow the application developers to use dynamica scheduling
  through meta-programming model.

. Enhance DAnCE to support OpenCCM components.

. Target Manager implementation.

. Implement Resource Allocation and Control Engine (RACE), which is a
  component middleware framework built atop of CIAO/DAnCE that integrates
  multiple resource allocation/control algorithms for (re)deploying and
  (re)configuring component applications. RACE enables (1) system
  developers to configure algorithms depending on the characteristics of
  applications and operating environment, and (2) swapping in and swapping
  out multiple algorithms to make different resource allocation and control
  decisions, without handcrafting the mechanisms needed to (1) configure
  the algorithms and (2) deploy the decisions made by the algorithms.

. Implement support for more complex type initialization with XML.

. (Remedy) support for using CIAO with VxWorks as target

. Decouple dependencies to NodeApplication from other DAnCE tools.
  These dependencies were added to support static configurator.  We
  need to have these tools in both conventional version and static
  configuration version.

. Support tool-specific debug levels and added CIAO_DEBUG macros to
  simplify adding debug printouts based on various tool-specific debug
  levels.

. Add support for querying for interface types to the
  RepositoryManager.

. Implement a planner to query the TargetManager and RepositoryManager
  and generate deployment plans on the fly.

PLANNED MAJOR CHANGES FOR THE NEXT RELEASE
==========================================

. Adding support to manage multiple interconnected assemblies, which will
  involve the work through ExternalReferenceEndPoint idea.

. Seamless integration of swapping into the main line programming model,
  so that DAnCE can actually kickstart swapping.

. Integrate various Pub/Sub services into CIAO and DAnCE.


USER VISIBLE CHANGES BETWEEN CIAO-0.4.8 and CIAO-0.4.9
======================================================
. RTTI enabled versions of the Xerces library are no longer needed on
  Windows platforms.

. The CIDLC compiler now supports basic preprocessor directives:
  #ifdef, #ifndef, #else, and #endif as well as the -D command-
  line option.

. The CIDLC compiler now supports incomplete struct and union
  semantics which will appear in CORBA 3.1.

. DAnCE now supports dynamically adding/removing components
  to/from the existing running assembly without shutting down the
  running appliation.  This will allow the application developers to
  evolve their applications on the fly without incuring service down
  time. The service is called ReDaC (Redeployment and Reconfiguration)

  Basically ReDAC provides a whole range of redeployment and
  reconfiguration granularity level, including:

  1) Install/remove component instances of the existing component types.
  2) Install/remove component instances of a different type, i.e., a
     totally new type of component.
  3) Install/remove component instances from an existing container.
  4) Install new component instances into a dynamically created brand
     new container.
     Move around existing components from one existing container to
     another existing/new container.
  5) Install new component instances into another component server in
     the same physical node.
  6) Install new component instances into another component server
     into a remote host.

  To see how to use this feature, please see the ReDaC-Usage.html
  under the $CIAO_ROOT/examples/Hello/ directory.

. Removed the Old Config Handlers, which have been deprecated for some
  time.  Please see tools/Config_Handlers for the current version.

. Added a step-by-step CoSMIC tutorial for modeling CIAO components
  using PICML($CIAO_ROOT/docs/tutorials/CoSMIC). Using a simple Stock
  Quoter system as example, this tutorial demonstrates all the steps
  that needed to model Component-Based applications.

. DAnCE now supports making connections among components across
  different assemblies, and allow components to be "shared"
  across assemblies seamlessly.

  Internally, DAnCE provides a reference counting mechanism when
  deploying/destroying components, and a reference count table
  is maintained on each NodeManager.

  From a deployer's point of view, if he/she chooses to deploy
  a new assembly of component and simultaneously wants to reuse
  previous deployed components in an existing running assembly,
  then in the new deployment plan descriptor, he could refer
  to an old component instance in the <InstanceDeploymentDescriptions>
  XML tag. The "key" to identify the old component instance is
  through the <Component_UUID, Node> pair, if such a key is found
  present in a previous deployed assembly, then DAnCE won't
  install this component instance (specified by the <Component_UUID>)
  again, but instead it will increase the reference count of this
  component instance.

  DAnCE also supports making connections from existing running
  components to newly deployed components in another assembly, and
  vice versa.

. The RepositoryManager has been enhanced to support standards based
  interfaces. A number of techniques have been used to ensure high
  performance and scalability.

. The RepositoryManager can now retrieve packages from remote locations via
  HTTP.

. The Target Manager is released with this CIAO release. It is an
  infrastructure component which keeps track of resource usage in the
  target domain. The initial domain configuration remains with the
  Target Manager. A monitor framework has been built into Node Manager which
  monitors the resources used within each host. This monitor reports its
  data intermittently to the Target Manager which aggregates the data
  received across all such hosts acroos the Target domain. The monitor
  is implemented using a strategy pattern, thus enabling the plug-in of
  new monitors which can monitor different resources in the domain. The
  Target manager is a component thus it needs to be started using a
  deployment plan. It is right now a optional component in the DAnCE
  tool chain.

. We added a skeleton implementation of the Resource Allocation and
  Control Engine (RACE) which is a middleware framework built atop
  CIAO/DAnCE that integrates multiple resource management algorithms for
  (re)deploying and (re)configuring application components. We are in
  the process of developing resource management algorithms (both
  resource allocation and control algorithms) that will be a part of
  future releases.

USER VISIBLE CHANGES BETWEEN CIAO-0.4.7 and CIAO-0.4.8
======================================================
. The deprecated RepositoryManager implementation, under
  DAnCE/RepositoryManager, has been removed from this release. Please
  use the Plan_Launcher and flattened deployment plans to deploy
  component assemblies.

. The CIDL compiler frontend now supports constants, const expressions,
  bounded strings, bounded sequences, and arrays.

. The CIDL compiler frontend now supports automatic indentation of
  function arguments (both "new line" and "same line" styles are
  supported).

. Added backend CIDL compiler support for constants, arrays, bounded
  strings, bounded sequences, and attribute exceptions, corresponding
  to frontend support added by Boris Kolpackov <boris@kolpackov.net>.

. Updated documentation to include instructions for building
  the CIDL compiler using MakeProjectCreator (MPC).

. Fixed a bug in the CIDL compiler's determination if an IDL
  type is of fixed or variable size type, when it is declared
  in the scope of an interface, valuetype or home.

. Changes to generate servant code to support component
  swapping.

. Added capability to pass a base class event consumer to a
  subscribe() operation generated for a derived event type.

. Added support for .cdl file extension, which was belatedly
  standardized by the OMG.

. Added documentation on using Rational Purify with CIAO and
  DAnCE.

. Added tests and documentation for the IDL3-to-IDL2 converter tool.

. RepositoryManager:
  - enhanced the implementation to use various optimization techniques
  - added HTTP support
  - added PackageConfiguration visitor to update the locations of the
    implementation artifacts with relevant HTTP URLs
  - refactored some of the code and added a number of helpers functions

. The XSC based config handlers have been heavily optimized, resulting
  in greatly reduced parsing overhead for large deployments.

. The DAnCE toolchain now supports initializing attributes which have
  enumerated types. Support for other complex types is planned for the
  future. Please see examples/Hello/descriptors/
  flattened_deploymentplan_without_ns.cdp for an example of how to
  populate enumerated attributes.

. Integrated Real-time QoS support into the DAnCE-based runtime and
  deployment tools based on the new OMG Deployment and Configuration
  (D&C) specification.  Such effort allows application developers to
  use real-time CORBA 1.0 features within their CCM appliation through
  meta-programming (via XML metadata through DAnCE toolchain).  The old
  run-time and deployment tools based on original Packaging and Deployment
  section of the CCM specification have been completely removed.  This
  work includes extensions to D&C schema, schema parsers, container and
  NodeApplication.

. Added functionality in XML parsing code to resolve schema in
  $CIAO_ROOT/docs/schema instead of the local directory only. All
  DeploymentPlans should use Deployment.xsd instead of
  Modified_Deployment.xsd, which has been removed.

. Fixed bug in CIDL code generation for some types of component and
  home attributes.

. Packaging and Deployment (P&D) tools have been completely removed
  from this release.  DAnCE is now the only supported method of
  deploying components.

. The CIAO directory structure has changed in support of the previous
  item. The following important directory moves have been made:

  * $CIAO_ROOT/DAnCE/ciao => $CIAO_ROOT/ciao
  * $CIAO_ROOT/DAnCE/examples => $CIAO_ROOT/examples
  * $CIAO_ROOT/DAnCE/Config_Handlers => $CIAO_ROOT/tools/Config_Handlers
  * Various obsolete examples/tutorials/tests have been removed.

. Error reporting during component deployment has been greatly
  improved.  While debugging using CIAO_DEBUG_LEVEL is still
  available, detailed error messages are now generated and propagated
  to the Plan_Launcher using exceptions.

. generate_component_mpc.pl has been updated to generate MPC files
  useful by the modern CIAO infrastructure.  This script now also
  automatically generates export files.

. DAnCE has been enhanced to support deploying multiple assemblies
  with the same set of ExecutionManager and NodeMangers.

USER VISIBLE CHANGES BETWEEN CIAO-0.4.6 and CIAO-0.4.7
======================================================
. Added a component packaging tool to DAnCE. This tool will allow
  component packagers to create from deployment plan archived
  packages that wrap up all relevant component properties,
  descriptors and implementation artifacts.The component packages
  generated from this tool will be distributed to Repository
  Manager.

. Enhanced DAnCE to allow more than one NodeApplicationManagers within
  a NodeManager.

. Enhanced DAnCE to support configurable output of debugging information.
  Support for debugging information will be added at the level of both the
  DAnCE/CIAO infrastructure as well as individual component instances.
  Support for tracing of the DAnCE/CIAO infrastructure will also be added.
  Together, these efforts will help developers to understand the execution of
  their component-based applications, as well as allowing customization of
  the amount of debugging information logged

. Added binding component to the Naming Service. A system deployer
  could configure this through XML-based flattened deployment plan
  descriptor.
  See $CIAO_ROOT/DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp
  for details. Currently DAnCE only provides resolving naming service
  reference through multicast, so be sure to initialize the naming service
  with multicast port.

. Added the first cut of the RepositoryManager implementation.

. Changed scoping of code generated by the CIDL compiler to accommodate
  cases where the composition declaration is enclosed in one or more
  IDL modules, and/or when the composition declaration is in a different
  scope than the associated component IDL declarations.


USER VISIBLE CHANGES BETWEEN CIAO-0.4.5 and CIAO-0.4.6
======================================================

. Added support for handle component activation/passivation in D&C
  assemblies.

. Added a test for the tool that converts IDL3 into equivalent IDL2.

. Fixed CIDL compiler bug in code generation for sequence type
  attributes of components.

. Added more examples for CIAO, including a new Quoter example that is
  similar to the one in TAO, as well as GUI-based example.

. Added support for handle component activation/passivation in D&C
  assemblies.

. Added support for deactivating facets/event consumers when component
  is getting deactivated.

. Added support for destroying the component executors, when the
  component is getting deactivated.

USER VISIBLE CHANGES BETWEEN CIAO-0.4.4 and CIAO-0.4.5
======================================================

. Split the previous NodeApplication interface into NodeApplication
  and Container interfaces to allow multi-container NodeApplication
  support. This will be particularly useful to provide an optimized
  CIAO container support for RT-CORBA features.

. Enhanced CIAO to handle dynamic replacement of components. Please
  see an example in $CIAO_ROOT/DAnCE/examples/Swapping

. The Config Handlers have been modified to use XML parsing code
  generated by the XML Schema Compiler (XSC).  Binary releases of XSC can
  currently be found at (http://www.dre.vanderbilt.edu/~boris/xsc), and a
  recent snapshot of the CVS repository can be found at
  (http://www.dre.vanderbilt.edu/~wotte/xsc.tbz2).

  Please direct all XSC inquiries/bug reports to wotte at
  dre.vanderbilt.edu

. Supported initializing attribute values on Component through XML
  tags. Please refer to the $CIAO_ROOT/DAnCE/examples/Hello for
  details, particularly the Hello.cid descriptor file.

. Supported parsing component instance names and using them to generate
  unique component port references, so that multiple instances of the
  same component can be deployed in a single container and the client
  requests could be properly designated to the appropriate ports.

. Enhance CIAO to support establishing connections between derived
  type ports and base type ports. For example, application deployer
  could set up event connections between base event sink port type and
  derived event source port type.

. Enhanced the existing set of DAnCE tools to support flattened
  Deployment Plan based deployment. Please refer an example in
  $CIAO_ROOT/DAnCE/examples/BasicSP/flattened_deploymentplan.cdp
  to see how the flattened deployment plan descriptor is used to
  deploy the BasicSP example.

. Develop regression/performance tests (similar to TAO
  regression/performance tests) that will test/evaluate the
  performance of various features of CIAO.

. Added regression test script to the nightly build for DAnCE example.
  This will make sure DAnCE tools could be ready to use out of
  box in various platforms.

. Improved documentation pages in various places.

. Some bug fixes.

. Added support for reception of eventtypes of a more derived type than
  the type of the event sink. Subscription will succeed if the passed
  event consumer is associated with an eventtype that is an ancestor of
  the published eventtype.


USER VISIBLE CHANGES BETWEEN CIAO-0.4.3 and CIAO-0.4.4
======================================================

. Minor bugfixes.


USER VISIBLE CHANGES BETWEEN CIAO-0.4.2 and CIAO-0.4.3
======================================================

. CIDLC can generate empty executor implementations for a given
  composition, which makes it easier to write executors.  This can be
  trigerred by passing --gen-exec-impl option while invoking CIDLC.

. Generated container code has been refactored into base classes,
  thereby reducing the amount of code generated by CIDLC.

. A new tool for generating equivalent IDL2 declarations from IDL3
  declarations has been added.

. Fixed a problem with DAnCE that prevented ports from getting activated
  properly.

. Added support for eventtype factories within CIDLC.

. DAncE compiles clean and works with VC6 and Borland compilers.

. Fixed compile errors and memory related errors on many platforms.


USER VISIBLE CHANGES BETWEEN CIAO-0.4.1 and CIAO-0.4.2
======================================================

. Overall
  - Support for g++ 3.4.1.
  - Support added for latest HP aCC compiler.

. CCM Deployment and Configuration specification has largely been
  implemented.  The implementation is called "DAnCE", the Deployment
  and Configuration Engine.  For more information about DAnCE, and a
  list of supported features, please refer to
  $CIAO_ROOT/docs/releasenotes/dance.html.

. CIDL compiler
 . Added missing generation of servant code for operations and
   attributes of ancestors of interfaces supported and used as ports.
 . Added missing generation of factory operation(s) from inherited
   home(s).
 . Added support for "uses multiple" in generated code.
 . Fixed bugs in generation of inherited:     [Bug 1800]
        home operations
        attribute operations
        port operations
        home factory operations
        supported operations
  . Added automatic registration of value factories for event
    consumers.
  . Added support for emits-related navigation.
  . Fixed bug with multiple facets that provide the same interface.
  . Implemented get_all_facets() and get_all_consumers() navigation
    methods.


USER VISIBLE CHANGES BETWEEN CIAO-0.4 and CIAO-0.4.1
====================================================

CIAO
----

. Added support for statically configuring an assembly. Please see
  $CIAO_ROOT/docs/static_toc_ciao.html for details.

CIDL:
-----
. Fixed incorrect generation of ACE environment macros in servant glue
  code operations.

. Fixed incorrect code generation in the body of a servant operation
  that delegates to the executor class.

. Added support for attributes in facets and supported
  interfaces.

. Fixed bug in code servant glue code generation when there are
  multiple nested modules in the IDL and/or CIDL files.

. Added missing code generation of enum type names.

. Fixed a bug in the generation of the scoped name of a local variable
  which is a _var of an executor interface for a facet. These types
  are required by the CCM spec to be generated in the same scope as
  the interface that underlies the facet.

. Fixed a bug in the generation of *S.h file includes corresponding to
  IDL files included in the CIDL file.

. Added ACE style Makefiles.

. Added support for bounded strings

MPC
===
. Removed all of the project type specific and unnecessary keywords.

. Changed the defaulting rules for idl files (generated source files
  will be automatically added even if idl files are explicitly
  listed).

. The makefiles generated by the gnuace type are now named GNUmakefile
  instead of Makefile.

. The IDL_Files section is no longer a built-in MPC type.  It is a
  custom build type defined in taoidldefaults.mpb.

. Added support for Borland Makefiles that aren't tied to ACE_wrappers
  (the bmake project type).

. Added wild-cards to the default.rel file.  Now, environment
  variables that end in _ROOT are automatically considered as if they
  were used with the -relative option.

. Added an environment variable,
  MPC_DEPENDENCY_COMBINED_STATIC_LIBRARY, to force MPC to put
  inter-project dependencies in static vc6 and vc71 workspaces.

. Added an html project type (originally by Justin Michel) to aid in
  the debugging of mpc files.

. Added a new keyword, pure_libs, that is put into a project
  unmodified (unlike the libs and lit_libs keywords).

. The behavior obtained through the use of the -hierarchy option is
  now the default for all "make" based project types.  This includes
  borland, bmake, gnuace, make and nmake.

. Added support for referencing workspace files (.mwc) from within
  other workspaces.

. Added an option, -genins, that causes MPC to generate .ins files
  that can be used with prj_install.pl.  This will help users install
  portions of their projects into alternate directories.

. Modified the gnuace workspace output to be based on directory
  recursion instead of having inter-project dependencies built into
  each workspace level GNUmakefile.

. Added a new keyword, dependent, for use within a Define_Custom that
  causes MPC to add a dependency to generated files upon the custom
  command.

. Assignments within a 'specific' section that are not recognized MPC
  keywords are assumed to be template value overrides (similar to
  using the -value_template option).

. Partial support for Visual SlickEdit has been added.

. Various bug fixes and optimizations have been added as well.


USER VISIBLE CHANGES BETWEEN CIAO-0.3.6 and CIAO-0.4
====================================================

. Added Makefiles to build the ciao and tools subdirs by default.

. The suport for the following IDL features have been added to the
  CIDL since the last beta

  - exception (exception declaration and raises() specification)
  - valuetype
  - enum
  - const declaration
  - const expression and literals
  - native
  - home finder
  - oneway operation
  - readonly attribute
  - type declaration inside interfaces, valuetypes
  - union

  CIDL doesn't yet support the following features

  - Complete error detection and recovery
  - Attribute exception specification
  - Array
  - Bounded sequence
  - Fixed type
  - Floating-point and Fixed-point constant expressions & literal.

  though we plan to add this support over the next several months,
  depending on user/sponsor needs.