Software Architecture
DOBBIN consists of different tools for different tasks
JobDesigner
Imagine that you have to convert 10,000 audio tracks to the same loudness, then encode them using an aacPlus codec, check and document the coding process, and generate an MD5 checksum of your results - with a very tight delivery deadline. No problem - DOBBIN can do it all for you in a few simple steps.
- Design your jobs using a simple drag and drop interface
- Do a syntactic check of your wiring
- Test the newly designed job with a single file (data accessibility check)
- Start the entire job from JobDesigner or JobManager
JobManager - The Management of DOBBIN Jobs
The user controls the current DOBBIN jobs remotely from his workplace PC. Individual user rights are defined in the Cube-Tec UserManager. The JobManager can display status events from the DOBBIN ControlUnit using the RemoteLogger View. The RuleEditor is used to define a highly flexible client data filter, enabling the filtering of unwanted events from the entire stream of logfile events.
For example, an expert user may wish to count all sound files relating to one job, check for instances where the FileSecurityCode check failed, and define the required steps to achieve this while the job is still running.
- Full Multitasking - posted jobs are processed in parallel when sent to the ControlUnit
- The JobManager is also the JobClient
- Priorities range from 1 to 10, where 1 is the lowest priority and the highest priority value of 10 can only be designated by a system administrator
- The user interface is fully scalable
- A list of jobs is shown (maximum of 1000). Possible status indicators for these jobs include Pending, Running + %-display or finished.
- The name of the user that posted the job is shown and a job duration is also provided.
- This tab is available only for the system administrator.
- Remote view of the WorkUnits and the logs.
The JobManager has two displays which can be selected using the tabs provided:
Control Unit
The ControlUnit is the heart of DOBBIN. It is invisible to the user. All JobClients post their jobs to the ControlUnit. The jobs are registered, collected and scheduled according to the job priority of the WorkUnits.
The ControlUnit must have access to the database (local or external), the file server (can also be the local hard disk) and the WorkUnits. Also the JobManager(s) and JobDesigner(s) need to be able to access the ControlUnit.
The ControlUnit assigns a JobID when a request arrives from the JobClient - this is never done by the JobClient itself. The user is able to see the JobID as a string such as (Name) + Date + Time.
DOBBIN and the external JobClients are linked via WebServices. This way a flexible and platform independent means of communication is guaranteed.
The current status of the Job can be inspected using the JobManager.
The administration of the system can be undertaken either locally or per RemoteClient which communicates with the main system via TCP/IP.
Work Unit
The WorkUnit is a software application that can either be run on normal PCs - Dual Core or Dual Processor machines-, or on server machines. It is the actual worker of the DOBBIN system. The higher the processing power of the WorkUnit machine, the higher the performance of the processing tasks. In the Basic Package, the WorkUnit runs on the same machine as the ControlUnit, Database and everything else.
The WorkUnit processes the jobs that are assigned to it by the ControlUnit.
It is vital that the ControlUnit initializes the WorkUnit at the beginning of a process to make sure that the WorkUnit only processes the jobs that it is supposed to. For this reason it is the WorkUnit that indicates how many jobs can be processed in parallel. It is therefore possible to use different types of PCs ranging from single processor PCs to clustered systems using this method.
The WorkUnit is flexible in that it can be used to process the audio signals in a variety of ways. The WorkUnit and ControlUnit communicate via the TCP/IP protocol. The data pertaining to a particular job is XML based. When a WorkUnit is currently available to process a job (i.e. it has finished all other tasks) then it queries the ControlUnit, which then in turn assigns a new task to the WorkUnit.
ResultViewer
The ResultViewer provides an overview of information resulting from a particular task. The analysis results are automatically displayed when the ResultViewer is launched.