Chapter 18. Using The Enterprise Edition

Table of Contents
Enterprise Client
Enterprise Server

The Enterprise Edition is the high-end version of Poseidon for UML. It is designed for use in highly collaborative development environments, with features such as version control and messaging. It also incorporates all of the features of the Professional Edition.

Enterprise Client

The collaborative modeling environment is based on a client-server architecture. It is quite unnecessary for those wishing only to model to concern themselves with the details of the server; therefore, this section outlines the new features of the Client application only.

Before you use the Enterprise Edition for the first time, consult Enterprise Edition Installation Guide for information about how to correctly configure the client application.

Interface

The GUI for the Enterprise Edition is very similar to the Professional Edition, but with some additions. As the Professional Edition features and functionalities are covered elsewhere in this manual, this section is not intended as an exhaustive list of the Enterprise Edition GUI. Rather, it is an addendum containing those features that are exclusive to the Enterprise Edition.

Toolbar

The toolbar of the Enterprise Edition changes depending on the connection to the Poseidon Collaboration Server. When not connected, the toolbar looks identical to the Professional Edition toolbar.

However, functions change while engaged in a collaboration. It no longer makes sense to save a project locally, and to make this difference clear the save button changes. Likewise, functions that are irrelevant while outside of a collaboration such as locking and access to the Collaboration Manager become visible.

Save to Server

Collaboration Manager

Show Locks

Request Lock

Release Lock

Menu

  • Connect to Server - Opens the connection dialog box

  • Collaboration Management - Opens the Collaboration Management dialog box

  • Request Model Element Lock - Send a request to the server to make a model element uneditable for other members of the collaboration

  • Release Model Element Lock - Allows access to a model element for other collaboration members

  • Show Locks - Displays all locks for the current project.

Connecting to the Enterprise Server

To manually connect to the Enterprise Server, select 'Enterprise|Connect To Server'.

Connection Dialog

  • Username - This is the name Poseidon will use to identify you in any collaborations. You may select any name here.

  • SSH Username - The username you use to log into the SSH service, should you have an SSH service running. Consult your system administrator if you are unsure of which name to use here.

  • SSH Password - The password corresponding to the SSH Username

  • Enterprise Server - The logical name or IP address of the machine running the Enterprise Server.

Connection Status

There are several quick ways to determine the connection status to the server.

  1. The title bar indicates whether the client is connected to a server and the name of the current project. For example, you may see the following in the title bar: "Poseidon for UML Enterprise Edition (Connected) - Untitled".

  2. An icon appears in the lower left-hand corner of the application that states whether the Client application is connected to the Enterprise Server.

  3. The main toolbar will display the five Enterprise-specific buttons that do not appear in the other Editions.

  4. The Collaboration Manager will display the status of any connections to the Enterprise Server and any active collaborations.

License Manager

The Enterprise Edition uses a concurrent license scheme. This means that there are a limited number of people who may connect to the server at one time. Ordinarily, Poseidon will automatically contact the Concurrent License Server and attempt to obtain a license. If no license is available on Poseidon startup or when working with Poseidon, a dialog will pop up stating that the license is invalid and that it is trying to request a new license.

This popup provides access to the License Manager. Two tabs are available from here, but as the Enterprise Edition utilizes Concurrent Licenses, only the Concurrent License tab is of interest to us at this point. The other tab is empty and is not used in the Enterprise Edition.

For information about increasing the number of available concurrent licenses, see the Enterprise Edition Installation Guide.

Test Connection

To test the connection to the Concurrent License Server, specify the server address in the Concurrent License tab and click 'Get License'.

The following results are possible:

  • Successfully connected to concurrent license server with valid license.

  • Successfully connected to concurrent license server but no valid license.

  • No concurrent license server available.

  • Connection to concurrent license server failed because of malformed URL.

  • Connection to concurrent license server failed because lookup failed.

  • FL_NotReachable=Could not establish a connection to concurrent license server.

Settings Tab

In the Enterprise Edition, an additional tab containing Enterprise-specific options appears in the Settings dialog, available from Edit | Settings.

  • Username - This is the name Poseidon will use to identify you in any collaborations. You may select any name here.

  • Enterprise Server - The logical name or IP address of the machine running the Enterprise Server.

  • Temporary Files Directory - Location where the Poseidon client can store temporary files. You must either have the temporary directory set and have full permissions to that directory, or you must have full permissions to the Poseidon configuration directory. Poseidon automatically tests access each time the Collaboration Manager is opened and on each attempt to upload a project, start or join a collaboration.

  • SSH Username - The username you use to log into the SSH service, should you have an SSH service running. Consult your system administrator if you are unsure of which name to use here.

  • SSH Password - The password corresponding to the SSH Username

  • Private Key Location - The location of the private SSH key

  • Hosts File Location - The location of the SSH hosts file

  • Connect to Enterprise Server on Startup - When checked, you will be immediately connected to the Enterprise Server when starting the Enterprise Client application. No connection dialog will appear. An error message will pop up if the connection attempt is unsuccessful.

  • Open Collaboration Management on Startup - When checked, you will be presented with the Collaboration Management window after successfully connecting to the Enterprise Server when starting the Enterprise Client application.

  • Autolocking of Selected Namespaces - When checked, an automatic lock is placed on a selected element. This lock is automatically released when the element is deselected.

  • Lock Indication in Diagram - When checked, lock icons appear in conjunction with elements in diagrams.

Modeling With Others

Collaborations

UML exists primarily to facilitate between people. We can look at the symbols and understand the meaning of a much more complex system. The ease with which others can interpret drawings is an essential goal. The UML also provides a powerful mechanism for describing these systems in technical terms, so that a complete semantic and syntactic picture is presented.

Naturally, an environment where people work closely together, regardless of physical location, is an ideal setting for UML to come into play. One question has always lingered - how do we work on the same project with knowledge of what others are doing and without stepping on toes?

Poseidon for UML Enterprise Edition introduces the idea of a collaboration, where teammates have a real-time view of the project and the means to control editing through locks.

The heart of this is found in the Collaboration Manager, where you can create and join collaborations, as well as save projects to the server so that others may have access to them.

In the Collaboration Management Window, you'll see the list of active collaborations and a list of projects that have been saved to the server. To create a new collaboration with a new project, click the 'Create Collaboration' button, give the collaboration a name, and wait until the window closes. To re-open a saved project, select it in the bottom list, and click the 'Load Project' button.

You can create diagrams and model elements just as if you were working in the standalone version of Poseidon.

New Collaboration

  1. Click the 'Create Collaboration' button from the toobar

  2. In the dialog, give the collaboration a name

  3. Wait for the window to close

  4. You are now the first member of a project that is hosted on the server. In your toolbar several Enterprise icons will appear, while several standalone icons (like 'create new project') will have been removed.

Join Collaboration

If another user has already started a collaboration, you may join that collaboration to work together on the same project. Connecting to the server, and you'll see that users collaboration in the upper part of the collaboration management window. Simply select it, and then click the "Join collaboration" button. You will now get a copy of that project onto your computer.

  1. Open the 'Collaboration Management' window.

  2. Select the collaboration to join from the available list.

  3. Click the 'Join Collaboration' button.

  4. A copy of the project will now be available for you to edit.

Leave Collaboration

If you decide to end your work, or to create a new project, or to load another project, you have to log off from the current collaboration. Open the Collaboration Management Frame (you can use the 'E' button in the toolbar), and then select 'Leave current collaboration'.

After that, all work you do is local again, and the buttons for saving and creating new projects locally are back in place. If no other user had joined your collaboration, it will be automatically saved to a file by the server, and removed from the list. To re-enter that project, load it from the list of stored projects.

Projects

Projects are stored at the server level so that they are accessible to other team members.

Load and Start Project

To load and start a project that is stored on the server:

  1. Make sure that you are connected to the server and disconnected from any collaborations.

  2. Select a project from the lower list in the Collaboration Manager.

  3. Click 'Load and Start Selected Project'.

  4. The project will open and a new collaboration will be started.

Upload Project

To upload project and make it available to others:

  1. Make sure that you are connected to the server and disconnected from any collaborations.

  2. Click 'Upload Current Project' in the Collaboration Manager).

  3. The project will now be available to other team members connected to the Enterprise Server. (You may have to close and re-open the Collaboration Manager to see the changes.)

Model Locking and Conflict Checking

It is quite possible that you may require access to a large number of elements, and as only one person may edit an element at a time, you do not want to be concerned with fighting for access with another member of your team. Element locking allows you to guarantee access for yourself, while denying edit priviliges to other team members.

When, for example, a class is locked, no one else may change the class's name, add an association to it, remove an attribute, or delete a state in that class's state machine diagram. Other users are not even allowed to select a locked element - looking at it as it appears in the diagram must suffice. Additionally, no one else may lock an element that is inside your locked namespace, and likewise you can't lock a namespace that already contains locked elements.

By default, autolocking is activated for the elements you select. This means, when you select an element, it tries to aquire a a temporary lock (which behaves like a normal one). If this is not possible (because of elements locked inside that element) no warning is issued. When you deselect the element, the lock is removed automatically. Autolocking is used to prevent conflicts as early as possible - as mentioned before, a locked element can't even be selected by other users, let alone edited.

Autolocking is very useful in most settings, but it can be a hard restriction too. For example, when you select a class, then other users will not even be able to align states that reside in that class's state machine diagram. You can deactivate auto-locking in the settings dialog. Note that auto-locking does NOT apply for the model - you can select the model in the tree, and you can lock it by hand, but it will not be locked automatically.

Locking is only possible if nothing else inside the namespace is locked (e.g. by another auto-lock), so it is very unlikely that you'd get the model-lock without consulting your co-workers first. And even if you got the models' lock, your coworkers might get a bit upset when they notice that they cannot continue working - while you selected the model just to create a few stereotypes. Any element with an autolock will appear to the owner with a green lock and clock icon.

All others will see a red lock and clock. These locks are automatically released when you select a different element.

Namespaces may also be locked manually to reserve certain elements. These must be specifically set and unset while working on the model. To lock a namespace manually, first select the namespace and then press the 'lock' icon in the toolbar. From that point forward, the element will be marked for the lock owner by a green lock in the upper left corner of that element, while all other users will see a red lock.

Elements that are contained within a locked namespace are automatically locked too, so they also get marked. To make it possible to tell the locked and the implicitly locked elements apart, the inner elements get a transparent lock. If you don't want to see the lock-symbols, you can turn them off in the settings window.

Please remember that not all elements are namespaces. Comments are not namespaces, so it is not possible to lock them one by one at the moment.

Java Import

The Java import will need access to most parts of the model. To prevent lots of conflicts with your coworkers during import (which would result in a complete rollback of the import), you have to lock the complete model for yourself before you can start importing. Tell your co-workers to unlock and deselect everything, acquire the lock on the model, perform the import, and remove the lock again.

Note that this is one of the rare exceptions when locking the entire model is advised.