TACTIC (web framework)
# TACTIC (web framework)

TACTIC is a web-based, open source workflow platform and digital asset management system supported by Southpaw Technology in Toronto, ON. Designed to optimize busy production environments with high volumes of content traffic, TACTIC applies business or workflow logic to combined database and file system management. Using elements of digital asset management, production asset management and workflow management, TACTIC tracks the creation and development of digital assets through production pipelines. TACTIC is available under both commercial and open-source licenses, and also as a hosted cloud service through Amazon Web Services Marketplace.

## History

TACTIC began in 2005 in computer graphics (CG) production, providing visual effects (VFX), film, animation, post production and video game development studios with a way to manage the digital files used in production. The platform has since expanded into providing software solutions at the enterprise level, and is now being used to help marketing groups, creative ad agencies, consumer product teams and transportation corps, among others, manage files, projects, resources and workflows. Current TACTIC users include Adidas, Technicolor, Transunion, Teague, Tegna, General Dynamics, Procter and Gamble, Bell Digital Media, Nissan North America, Astral Media, Ubisoft, Blohm + Voss, Saatchi and Saatchi, Lockheed Martin, and Legend3D.

Prior to version 3.8, TACTIC was only available commercially. In the summer of 2012 current CEO, David Lowe and Remko Noteboom (CTO) followed in the footsteps of Red Hat, Acquia and Blender and made the leap into open-source, releasing TACTIC for free download on August 20, 2012, under the OSI-approved Eclipse Public License. TACTIC's software became available for free download, while Southpaw shifted focus to custom solutions and professional support services. According to CEO Mundell, TACTIC's general-purpose nature was a key component of Southpaw's decision to go open-source: "Every company has its own unique workflow," he says, "and needs a foundational product like ours to support that workflow."

TACTIC is now developed and maintained by an open community of thousands of active users.

## Key features

### Web framework

TACTIC is a web-based platform or framework for delivering enterprise data- driven HTML5 applications. It uses a hierarchical drawing engine to deliver self-contained HTML5 widgets to a browser. Each widget is an encapsulated bundle of HTML, JavaScript, CSS (cascading style sheets) and server-side Python code. Widgets can contain other widgets, and can be dynamically loaded through AJAX. TACTIC also includes tools that allow it to deliver branded customized widgets or themes.

By coupling standard web technologies with TACTIC's asset management and ability to handle complex data models, TACTIC can be used to deliver enterprise applications to any device with a browser. TACTIC also uses standard web technologies such as HTML5, CSS and AJAX to make the customization process easy and accessible. An embedded expression language provides simplified access to complex data models without having to build up large SQL statements.

Reviewers write that TACTIC's key strengths are its strong workflow capabilities and its suitability for managing large volumes of production assets, especially big files. Features of TACTIC include a flexible data model, a visual workflow designer, powerful API connectivity and an adaptable plug-in architecture.

### Workflow management

TACTIC organizes workflows through pipelines, production command chains that grant users the ability to define discrete processes within a workflow. In each process, files can be checked in and versioned, tasks created, notes added and triggers responding to events in the process executed. Users can also configure their workflows to assign arbitrary metadata, send notifications and update the status of projects. TACTIC's trigger system allows custom business logic to be attached to any event in the system, including every data change and file check-in.

### File system management

TACTIC deploys several technologies to manage its file systems: strict file naming conventions, check-in/out or gatekeeper/librarian function, and versioning. First TACTIC breaks up all the business entities into assets. In the TACTIC world, a user works on assets, or more specifically on some part of the process in the workflow that produces assets. Assets are organized into "types of searchable assets", or "sTypes" in TACTIC terminology. This configuration provides a space or sandbox for a user to do their work. The sandbox is generally a freeform area designated by TACTIC where a user can create and manage their files.

When the work evolves to a stage where it requires an external review or is ready to be pushed on to the next process, the user checks in their files. This check-in process hands files off to TACTIC, which acts as a gatekeeper to the repository where all the files are kept. TACTIC also acts as a librarian, sorting the files it receives into the appropriate location in the repository. If specified by the system, file names will also be renamed accordingly to make their locations more identifiable (a function cognate to card cataloguing). TACTIC's automated file management system ensures that files are uniformly named and appear in predictable and reliable locations, effectively eliminating human error in the repository.

### Data management

TACTIC's data management strategy is rooted in its flexible data model, which makes no assumptions about structure or file type. Instead, the TACTIC framework adapts to any type of file, including audio, video, graphic and enterprise content. Data models can either be built in TACTIC or TACTIC can be mapped onto a pre-existing data model. This capability allows TACTIC to provide an updated web interface for legacy systems with critical data.

Instead of relying on classifications based on file type, TACTIC manages data by defining an overall "schema" for each project. Each schema contains sTypes ("types of searchable assets"), with each type representing a different category or classification of entities. This structure is largely arbitrary but can follow good database table design. TACTIC can also access multiple databases simultaneously, regardless of platform. TACTIC projects can view databases from multiple disparate locations, including Oracle, MySQL, SQLite, PostgreSQL and Microsoft SQLServer, and unify the user experience.

TACTIC's built-in expression language simplifies the process of extracting data from the database, making the overall system much easier to navigate. It provides an interface that removes the complexity of reiterating relationships on every query inherent in SQL. TACTIC's expression language is particularly useful in scenarios with complex enterprise data models where deep relationships between tables must be navigated in order to retrieve and operate on the data.

## Support platforms and environments

TACTIC is written almost entirely in Python programming language and will run on most platforms where Python is available. This includes Windows, OS X and the various Unix flavours and distributions (RHEL, CentOS, Ubuntu, etc.). TACTIC is one of the largest projects written in Python, clocking in at 198949 lines of code.

"TACTIC Team" is a self-contained stand-alone version of TACTIC that runs on SQLite and embeds the Python language and required modules, as well as Cherrypy for web service. It is distributed with an installer and is executable for both Windows and OS X.

