MicoCCM Assembly Tool


The purpose of the Assembly Tool is to package assemblies. An assembly is a collection of components and configuration information: attributes can be assigned values, homes can be registered in the Naming Service, receptacles can be connected to facets, etc.

There is a separate deployment tool that can read an assembly and deploy it, by uploading implementations, instantiating components and executing the configuration.

The main window has a tabbed notebook design, with three pages:

Usually, you begin by selecting packages that contain component implementations. Then, on the Packages page, you can instantiate ("deploy") homes by right-clicking on them - deployed homes will then appear on the Homes page. From each home, you can then create zero, one or more component instantiations.

The Assembly Tool is pretty intuitive to operate, really. You should get by with just experimenting with the user interface and the right mouse button.


The Menu


File Menu

New
Clears all packages, homes and components from the assembly.

Setup
Allows to set certain options; for the most part, these are path names to external programs:
Interface Repository
The command line to start up the Interface Repository, usually just ird. You may have to specify a full pathname here. The Assembly Tool requires the Interface Repository to introspect components.
IDL Processor
The command line to start the IDL processor, usually just idl. You may have to specify a full pathname here. The Assembly Tool uses the IDL processor to load IDL files into the Interface Repository.
Options to IDL
These options will be passed to the IDL processor. You can e.g. configure include paths here. You may have to configure an include path so that the file mico/CCM.idl is found.
ZIP Program
The program used to compress an archive.
Unzip Program
The program used to uncompress an archive.
Kill Program
The program used to kill a running program (e.g. the Interface Repository that the Assembly Tool starts).

Exit
Self explanatory.

Packages Menu

Load Package
Load a new package from an existing CORBA Software Package Descriptor or CORBA Software Package (.csd or .zip).

Download Package
The same as above, but instead of popping up a file selection dialog, this menu item presents you with a text field, where you can then enter an URL of a Software Package Descriptor or a Software Package.

Package Wizard
In case you don't have a Software Package for your component yet, you can use this wizard to create one. The wizard requires an implementation file (shared library or executable) plus an IDL file, and will then add a new package to the Packages page. If desired, you can then right-click on it to save a Software Package Descriptor.

Assembly Menu

Open Assembly
Opens either Component Assembly Descriptor (.cad) files or Component Assembly Archive (.aar) files.

Download Assembly
The same as above, but instead of popping up a file selection dialog, this menu item presents you with a text field, where you can then enter an URL of a Component Assembly Descriptor or Component Assembly Archive.

Save Assembly
Saves the current configuration into a Component Assembly Descriptor (.cad) file. Note that other files beside the Assembly Descriptor may be written, e.g. property and software package files - all files will be written into the same directory that you choose for the Assembly Descriptor file itself.

Build Archive
Saves the current configuration into a Component Assembly Archive (.aar) file. An Assembly Archive is a collection of descriptor and property files, the component implementations themselves, all compressed into a ZIP file.

Deploy Assembly
Deploys the current assembly. This requires that you have the MicoCCM Daemon mico-ccmd running somewhere. The following options need to be set before deployment starts:
MicoCCMD Address
This is the address of the MicoCCM Daemon. The default address is port 1234 on your local host, assuming that mico-ccmd has been started with the command-line option -ORBIIOPAddr inet::1234. The address may be given as host:port, or as an object URL.
Local Address
This will be used as the address of the internal HTTPD server for serving implementation files: the Component Installation Server (inside mico-ccmd) is sent an URL to download files from. The default is to use port 1235 on your local host. You may need to change the host name to something that the remote host (where mico-ccmd is running) understands.
Naming Service
You need to configure the address of the Naming Service if the assembly wants to register components in the Naming Service. In that case, you should enter an object URL here.

During deployment, a window is opened and filled with a log of the deployment process. You can close that window at any time.

Help Menu

Index
This file.

Glossary
A glossary of the terms concepts used by the CORBA components packaging and deployment model.

Deployment Tool
Help for the Deployment Tool.

About
Some info about the MicoCCM Assembly Tool.

Credits
Information about the Open Source packages that made the Assembly Tool possible.


The Packages Page


The packages page displays all packages that have been loaded from a CORBA Software Package file or via the Package Wizard - or that are present in an Assembly that you have opened. For each package, the home contained in the package are shown.

Some information is associated with each home:

Identifier
This must be a unique name for the package. It determines the name of the software package in an assembly. Initially, this is the name of the home; if you have multiple packages containing a home of the same name, you must change their identifiers.

Package
This is the location of the CORBA Software Package (.csd or .zip). You can edit this field if you want your assembly to reference this package at a certain location (see below) - e.g. at a certain URL. If an assembly archive is opened, then this field may show a weird temporary file name.

IDL File
Impl File
These are the locations of the IDL and implementation files. You can edit these fields if you want your assembly to reference these files at a certain location (see below). If the package was loaded from a CORBA Software Package, then these fields may show weird temporary file names.

In an Assembly Archive
Here you can choose whether an assembly archive shall be self-contained or should rather reference existing files (e.g. a downloadable software package).

If pointed at a home node, a context menu will open when the right mouse button is pressed. This context menu offers three choices:

Deploy Home in Assembly
Adds an instance of this home to the assembly.

Make Softpkg Descriptor
This allows to save a Software Package Descriptor (.csd) corresponding to this package. This descriptor can then be loaded into other assemblies. The descriptor will link to the URLs in the IDL File and Library File fields.

Make Software Package
This allows to create a Software Package (.zip) corresponding to this package. The package can then be loaded into or referenced by other assemblies (it could e.g. be put onto a Web server). Depending on the setting of the "In an Assembly Archive" option, the software package will either link to the URLs in the IDL File and Library File fields (if set to "Reference Library and IDL files), or these files will be included in the Software Package.


The Homes Page


The homes page displays all homes that have been deployed into this assembly (using the "deploy home" choice in a package's context menu, see above). Attributes are shown as "child nodes" of the home.

On the right side, some settings can be made for each home:

Identifier
This must be a unique name for the home within the assembly. All homes and components must have distinct identifiers - it is used within the assembly descriptor to reference this particular home instance.

Register with Naming Service
If this option is set, then a valid name must be entered in the next field. Upon deployment, the home will be registered in the Naming Service.

NS Name
If the previous option is set, this field gives the name for this home in the Naming Service. The name is used as a "Stringified Name" as defined by the Interoperable Naming Service specification.

If an attribute node is selected, its value can be configured in the bottom half of the right side. Note that the "Configure this attribute" option must be set in order for the configuration to be effective.

If pointed at a home node, a context menu will open when the right mouse button is pressed. This context menu offers two choices:

create
Adds an instance of the component that is managed by this home to the assembly. This component will be manufactured using the "create" operation of the keyless home.

Remove
Removes this home from the assembly. Note that this is only possible after removing all component instances that have been created for this home.


The Components Page


The components page displays all components that have been created (using the "create" chice in a home's context menu, see above). Attributes and ports are shown as "child nodes" of the component.

On the right side, some settings can be made for each component:

Identifier
This must be a unique name for the component within the assembly. All homes and components must have distinct identifiers - it is used within the assembly descriptor to reference this particular component instance.

Register with Naming Service
If this option is set, then a valid name must be entered in the next field. Upon deployment, the component will be registered in the Naming Service.

NS Name
If the previous option is set, this field gives the name for this component in the Naming Service. The name is used as a "Stringified Name" as defined by the Interoperable Naming Service specification.

If an attribute or port node is selected, its properties can be configured in the bottom half of the right node. The properties depend on the node type:

Attribute
For attributes, the initial value can be configured. Note that the "Configure this attribute" option must be set in order for the configuration to be effective.

Facet, Consumes
Facets and Consumers can optionally be registered in the Naming Service. The "Register with Naming Service" and "NS Name" properties are the same as for the component above. For a facet, the provided interface will be registered; for a consumer, the equivalent consumer interface will be registered.

Simplex Receptacles, Emits
Simplex receptacles and emits ports support at most a single connection. Note that the "Configure connection" option must be set in order for the connection to be made.

A menu button offers the possible connections. A connection can be configured to an element in the Naming Service, to an Object URL, or to a port of another component in the same assembly.

If "Object URL" is selected, then an Object URL must be entered in the field to the right of the button. The referenced object must be of compatible type.

If "Naming Service Entry" is selected, then a stringified name of an element in the Naming Service must be entered in the field to the right of the button. The referenced object must be of compatible type.

If compatible ports exist in other components within this assembly, they are listed in the menu and can be selected directly. In this case, the field to the right of the button is for informational purposes only and cannot be edited.

Multiplex receptacles, Publishes
Multiplex receptacles and publishes ports support an arbitrary number of connections. The number of connections to be configured can be selected by pushing the plus/minus buttons (add one/remove one connection) or by entering the desired number of connections in the field to the right of the plus/minus buttons and confirming that number by pressing Return.

For each connection, a menu is shown with the same options as described for simplex receptacles and emits ports above.

If pointed at a component node, a context menu will open when the right mouse button is pressed. This context menu offers a single choice: to remove the component instance from the assembly. This is only possible if no connections to this component or one of its ports are configured.

If pointed at a port node, a context menu will open when the right mouse button is pressed. This context menu offers any compatible ports of components within the assembly; if one of these ports is selected, then the connection between the two ports is made. Note that this change in configuration may not be immediately visible: e.g. if a facet is selected and then, through this context menu, connected to a receptacle, there is no change in the facet's proper- ties, as the connection is a property of the receptacle.


Frank Pilhofer, fp@fpx.de