Remote Workers and Cradle – how do they communicate?

Cradle, like many modern applications, uses networked communications between clients and servers. However, with modern working practices, often not all users are on the same site. Some, not even the same continent as the Cradle server. So we need to create a method to allow these remote workers access to the Cradle server.

Thin Clients

3SL created the CWS (Cradle Web Server).  This allows a capable thin client deployment to local and remote workers without the need to install Cradle WorkBench.  But some customers want their remote workers to have access to the full capabilities of WorkBench, Project Manager, Document Publisher, and Document Loader; so how can these remote workers deploy the Cradle clients with network access to the server?

Virtualised Applications and Desktops – (e.g. XenApp, RemoteApp)

Citrix XenApp® and Microsoft® RemoteApp allow your applications and desktops to be virtualised and then served to the user from central servers.  The Cradle client utilities are installed on the Application Servers.  Users are able to connect to the server which redirects the Application or Desktop display to the users device.  These technologies allow users with devices which are not currently supported by 3SL to use the full desktop Cradle applications.

Many Cradle customers use Citrix XenApp® and Microsoft® RemoteApp virtualised apps and desktops to serve Cradle WorkBench, and other Cradle utilities to their local and remote workers.  But what if you’re remote and your company doesn’t use these distribution technologies? What are your options for remotely connecting to a Cradle server?

There are a number of methods which we have assisted customers in deploying to allow their remote workers access to a central Cradle system.

VPN – Virtual Private Network

Virtual private networks provide a link from the remote hosts to the network where the CDS lives and we can talk directly to the CDS over this connection. VPN can provide host to network, and network to network communications. Authenticating and encrypting VPN links provide security over the internet.

This is the preferred method between sites, or dedicated remote workers, as most customers already have VPN technologies in place and this provides the least restrictions and requires little additional configuration of the Cradle server.

NAT – Network Address Translation

This is where we remap one IP address space to another IP address space.  What this gives us is the ability of a gateway or firewall to route Cradle communications to a CDS behind the firewall.  This can expose the Cradle server to unwanted external traffic if the firewall rules are not carefully locked down.

SSH Tunnels  – Secure Shell for Unix and Linux hosts

Part of this protocol is the ability to map local IP ports to remote IP hosts and ports beyond the remote SSH host. We can use this to direct Cradle communications to the CDS.

You may not wish to expose the Cradle server using NAT as it can open it up to potential hostile traffic, but you don’t want to go down the route of a full VPN solution.  SSH tunnels fulfils this need.

In future blogs, we’ll be going through some of these options in more detail for Cradle specific installations.

Do I Need a New Security Code when Moving Machines?

When do I need a New Cradle Security Code?

We are often asked “Do I need a new security code?”. Obviously, if you are wanting to upgrade from one major release to another e.g. 6.n to 7.n  a new code will be needed. You would also need a code from one Cradle point version to another, for example Cradle-7.2 to 7.3.

shows the contents of a configuration file
Configuration File

 

The other case is when moving your Cradle Database Server (CDS). If you have changed, or are planning to change your server there are two main points to consider and these are discussed below.

Has Your Machine’s MAC Address Changed?

Yes

If the MAC address on your new machine is different from you old machine, then yes, you will need a new Cradle Security Code. Please see the section below on how to request a new code.

NO

If your machine’s MAC address has not changed then you do not need a new security code.  Your existing code will continue to work on the new machine.

How to Request a New Cradle Security Code?

C:\Program Files\Cradle\bin\exe\windows\c_hostid.exe
c_hostid.exe

If you require a new security code please send an email to support@threesl.com containing the MAC address of you new machine and the Cradle Version you require a code for. You can run the Cradle utility Host ID from the start menu or C:\Program Files\Cradle\bin\exe\windows\c_hostid.exe

How to Install a New Security Code?

Once you have received a new, please refer to this blog post or this page in the Cradle Help for more information on how to install it on your new machine.

 

 

Storing Project Databases in NAS

We are sometimes asked about storing project databases in NAS (network attached storage), is it possible, is it a good idea, and how to do it.

NAS

Network attached storage is a type of storage device that attaches directly to a network. It is typically a RAID array of disks with one or more interfaces and some management software. It provides network storage without a need to manage a server with attached storage.

A NAS storage device
A Typical NAS Device

Storing Project Databases in NAS

Each Cradle project database is a directory of files and subdirectories. It can be stored anywhere. So, yes, you can store a Cradle database on a NAS device.

Since the NAS device is not a server in the normal sense, it will not be running any part of Cradle and, in particular, will therefore not be running the Cradle Database Server (CDS).

Therefore storing Cradle database(s) on a NAS device means that you are storing them remote form the CDS.

Storing Project Databases in Server Storage

For the same reason, you can store a Cradle project database on a server that is separate from the computer that runs the CDS.

Therefore storing Cradle database(s) on a separate server means that you are storing them remote form the CDS.

Advantages and Disadvantages

If you don’t have a server in your network, then a NAS device is a cost-effective means to add centralised storage.

NAS devices are often used to collate data for backup. Storing Cradle databases on a NAS device eliminates the need to copy the databases onto the NAS device for backup.

Not storing Cradle databases on the machine that runs the CDS adds considerable latency between the CDS and the disk(s) that store the databases. Increasing latency worsens the performance of the CDS.

How to Store Cradle Databases on NAS

  1. Specify the location of the database’s directory using a UNC pathname, of the form: \\hostname\path
  2. Ensure that the access rights of the database’s NAS directory are accessible RW by the Windows ‘System’ user of the computer that runs the CDS or, for Linux, either root or whatever user your CDS runs as on its local machine

Recommendations

In general, we do not recommend storing project databases in NAS or indeed in any network-based resource.

If possible, only store your Cradle databases on the machine that runs the CDS and backup your databases regularly!

Calculations in Cradle

Calculations

It’s possible to calculate values for display, query upon or to set a category within a Cradle item. Calculations can perform basic addition, subtraction, multiplication and division.

Setup

  • Open Project Setup and navigate to the Item Definitions section.
  • Ensure you have categories set up to contain any inputs you require. In this example Width and Length of type Real have been added and also an additional category of Area also of type Real.
  • Select the Item Types tab
  • Add these categories to your item type, here it is to the Bedroom item
  • Choose Calculations and add a New one, here called Floor Area
  • Create the calculation, in this case multiplying [@CAT:Length] * [@CAT:Width] and set the output type to Real.
  • Optionally set a category with the resultant value, in the example this is Area
  • Save the schema and return to the main interface.

Run

  • Edit the item to include values for the categories that are inputs to the calculation.
  • Save the item and the calculation will be updated and in this case also set the associated category.
Related Articles

Rule Sets can be used to set values based on categories and calculations where the value is based on logic matching rather than on simply the mathematical result.

A quick way to see calculation values without changing the View or Form

My named users have changed, what can I do?

Named User Licences

Named user licences are a simple way of working in a small team. Cradle’s variants support single user, named user and enterprise editions. Additionally there are facilities for SaaS and subscription options.  A single user licence is just what it says, it is for one person on one machine. When there are multiple users of a system, it is usual for the server to reside on one machine and the clients on user’s desktops. In a full enterprise version you can install as many clients as you need and simultaneously use the number of clients purchased in your licence.

Named user licensing is a way of having a team of engineers, working on a project, but  (now don’t tell our boss this, but tell yours) at a lower cost.

The restriction being that each of the users is named and locked to the licence. So whilst you could install numerous clients only those login names would be allowed to connect to the server.

We realise that  staff can change, and with each maintenance renewal you can make any changes you like. If you purchase extra licences you can also change the users for free. 3SL reserve the right to charge for more frequent alterations.

It’s all in a file (and the security code)

The named users are contained in a file. If you have system level access to the Cradle installation all you need to do is drop the new file in. If you change the number of users you would also have to configure a new security code.

contents of the named_users file
Named Users file

Creating New Item Types

Do you require more Item Types, maybe you just want a new Item Type with a different name. Cradle lets you create new item types to suit your working methods.

In Project Setup navigate to “Options – Item Definitions” and change the tab to “Item Types“. This dialog presents a list of

  • the predefined types of item available in any and all Cradle projects,
  • those that were in the chosen template schema when the project was created
  • those added by a user.

New user defined types are used to extend a Cradle Database, to encompass new types of information. To create a new item type you need PROJECT privilege to modify the schema.

3SL Cradle New Item Type
Creating a New Item Type
  1. Select the Project tab
  2. Select Project Setup
  3. Set Options to Item Definitions (if not already set)
  4. Select the Items tab
  5. Click New and enter a name for the new item type

Remember you can also add these newly created Item Type to the quick access bar, for more information see “Customise your Quick Access Bar”

For more information regarding item types and Project Setup please see help on Item Types or my article on configuring Item Attributes

Article Updated 04/02/2019 – Removed mentions of project schema

New Default Schemas

The structure of each Cradle database is defined in a schema. Cradle is supplied with four default schemas that you can use. You can create new default schemas. You can initialise your new Cradle database using any of your default schemas.

Default Schemas

A Cradle system can contain any number of databases. Each database can be used for one or more projects. Each database has a structure that is defined in a schema.

When you create a new database, you specify a default schema that will be used to initialise the schema in the new database  Cradle is supplied with four default schemas, called: empty, default, quick-start and SysML. 3SL provides documents that explain the contents of these default schemas.

New Default Schemas

Cradle can support any process for any type of project. The schema defines the types of information that you will need to follow your process.

You can create new default schemas to support any type of process for any type of project. For example, look at the following types of projects and lists of the item types that will be included in their schemas:

  1. Agile projects:
    • Sprint, iteration
    • Feature
    • Build and release
    • Test cases, test results
  2. Business Analysis projects:
    • Needs, goals, objectives
    • Business functions, processes, tasks
    • Organisations, groups, teams
    • Deliverables, reports  and other document types, artefacts, builds
    • Personnel types, skills, roles
  3. Enterprise Architecture projects:
    • Needs, goals, objectives
    • Processes, functions, tasks
    • Resources, systems, buildings and other facilities, area breakdown structure, site breakdown structure
    • Delivery phases, releases and builds
    • Organisations, groups, teams
    • Deliverables, reports  and other document types, artefacts, builds
    • Personnel types, skills, roles, organisation breakdown structure
  4. Requirements Management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Validations and verifications
  5. Application lifecycle management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Validations and verifications
    • Analysis models, logical models, architecture models, design models – built using MBSE using one or more of functional analysis, SASD, IDEF, ADARTS, UML and/or SysML notations
    • System breakdown structure (SBS)
    • Test cases and test results
  6. Project Management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Product requirements, managed in a library
    • Validations and verifications
    • System breakdown structure (SBS)
    • Product breakdown structure (PBS)
    • Part catalogue, suppliers, orders
    • Production schedules, production runs, batches, samples
    • Quality records, test cases, samples, test results

Location and Structure of Default Schemas

Each default schema is stored in the sub-directory:

admin/defaults

inside the Cradle installation on the server.

Inside this directory are:

  • A file called: prj_params that contains the schema
  • A directory tree containing the project-scope definitions, such as queries, views, forms and so on, called: definitions

Creating New Default Schemas

You can create your own default schemas by:

  • Decide on a name for your new default
  • Create a new directory with this name inside the admin/defaults directory in the Cradle installation on your server
  • Place the schema for the new default inside this directory in a file called: prj_params – you can copy the prj_params file from inside the database directory of an existing database, or use Cradle’s export to create it (see below)
  • Optionally copy some or all of the Project scope definitions from the definitions directory in an existing database

Export to Create a New Default Schema

You can export the schema using the Export Information dialog that is shon when you select Export from the Project tab in WorkBench.

If you can run WorkBench on the server, then you can export the schema directly into the new defaults directory:

Export to Create New Default Schemas
How to to Create a New Default Schema

Using Your New Default Schemas

When you create a new database in Project Manager, select the Schema drop-down list. This will display the list of default schemas. Any new schemas that you have created will appear in this list, for example:

Create Project dialog showing available schemas
Create Project dialog

How do I switch on tracing?

Switch on tracing?

Support have asked me to switch on tracing, what is it, and how do I do it?

Occasionally some customer installations don’t allow Cradle to function as required. In order to get to the bottom of this the Cradle Support Team may ask you to ‘turn on tracing’. This will give a comprehensive report of what’s happening internally in Cradle. You can then send these logs for diagnosis. This will then help us resolve your installation issue as fast and efficiently as we can.

Screen shot of Cradle Tracing configuration files
Cradle Tracing Configuration

The files

The files trace_options and trace_config control how tracing is performed. By default they are located in %CRADLEHOME%\admin\trace

trace_options

This file controls when to collect, and is used to simply switch tracing on or off. Setting CDS_USE_TRACE to true will set CDS (Cradle Database Server) tracing on. The file must be the one located on the machine running the CDS. Setting COM_USE_TRACE to true will set tracing on for any client communications. The file that you alter must be on the client machine in question.

The TRACE_CONFIG option allows you to choose which file you want to use to control the tracing, most of the time we suggest you leave it as trace_config in the same directory.

trace_config

This file controls what to collect and where to send the output. The CDS_TRACE_LEVEL and COM_TRACE_LEVEL both control how much tracing to do from LOW, through MEDIUM to HIGH. This will give basic ‘someone logged on’ reports at LOW  through to ‘this message was sent from this process to that client’ at HIGH. Support will advise which level to use, but be wary of leaving HIGH switched on for too long as it will create very large reports.

The CDS_TRACE_LOG and COM_TRACE_LOG are the location where we will write the file. The default logs folder is usually best.

When you have finished tracing don’t forget to set the values in trace_options back to false.

Update frame types in your projects

Want to update your existing frame types?

Do you want to update your existing frame types which were originally supplied by 3SL or add any newly supplied frame types from 3SL, to your project?

Has your project been running for a long time, if so does your project support the latest types of files used by third party programs for example Microsoft®’s .vxdx extension files. No need to worry, 3SL supply a range of popular frame types and give you the option to easily update your existing projects to include these.

In project setup under frames types there is an update button which when clicked will bring up a “Update Frame Types” dialog that shows:

  1. All supplied frame types
  2. Whether the frame type already exists in your project
Update frames types dialog
Update frames types dialog

If you click OK the frames which are missing will be added to your project schema but your existing frames will remain untouched.

You also have the option to tick the “Overwrite existing frame types” which, as well as adding the missing frames, will update all the existing frame types with the latest settings supplied by 3SL.

For further information on frame types please refer to the Cradle online help.

 

Multiple Cradle Database Servers and How to Connect to Them

Multiple Cradle Database Server (CDS) Environments

Cradle supports multiple Cradle database servers,  in a single environment, based on the CDS Host Access List. The following file contains a list of the TCP/IP hostnames of the hosts that the CDS will respond to:

Windows – %CRADLEHOME%\admin\cds_hosts

Linux – $CRADLEHOME/admin/cds_hosts

The file is empty by default, which mean a CDS will respond to all hosts.

Two or more Cradle systems may be installed and operate in the same network by ensuring that each CDS has a non-empty Host Access List that defines the lists of hosts that are to be serviced by that CDS.  Multiple Cradle systems are consequently achieved by ensuring that the hosts used to run the CDSs appear in the Host Access List of only one CDS.

multiple CDS on single network
Multiple CDS on the same network

Clients Connecting to Multiple CDS

Each Cradle client such as WorkBench may be executed on a host which is in the Host Access List of more than one CDS. In this case, WorkBench should be told which CDS it is to connect to, for example by using the command-line option: -cds hostname

Methods of connecting Cradle tools to a CDS

There are several methods of specifying which CDS, when you have multiple Cradle database servers, a client is to use, or alternatively a client can attempt automatic CDS discovery.

-cds command line option

Cradle tools for example the WorkBench client, supports a -cds command line option that takes an argument which is interpreted to be either the hostname or IP address of the machine where the CDS is executing.

-cds hostname

If invoked with this command line option, the WorkBench client does not attempt CDS discovery via broadcast, but instead attempts to link directly to the CDS on the specified machine.

CRADLE_CDS_HOST environment variable

If a -cds command line option has not been specified, the WorkBench client tests for the presence of a CRADLE_CDS_HOST environment variable, and if defined, uses its value as the hostname or IP address of the host executing the CDS.

In this case, WorkBench does not attempt CDS discovery via broadcast, but instead attempts to link directly to the CDS on the specified machine.

Automatic CDS discovery by broadcast

If a CDS host has not been specified through other means (such as via the –cds command-line option, or CRADLE_CDS_HOST environment variable), a Cradle client such as WorkBench will attempt to locate a CDS automatically by broadcasting. If the client can connect to two or more CDSs and is using this method, the client will connect to which ever CDS responds quickest.

For a more in-depth look at environments with multiple Cradle database servers,  please refer to our online help.