Mediaflux For Developers

Mediaflux provides a comprehensive platform of services for rapidly developing and deploying applications to create, manipulate and manage data in single user or collaborative environments. Mediaflux combines a multi-versioned metadata management and revision control system with many other services including geo-location, workflow, federation, replication, and web serving into a single package that is simple to install, operate and administer.

Mediaflux is deployed in a two-tier client server architecture, combining a client and one or more Mediaflux servers. Mediaflux contains its own embedded web server, database and services such as a scheduler.

Arcitecta Ecosystem

Figure 1 - Mediaflux Ecosystem

Mediaflux can be adapted and extended using a variety of methods.

New Services

Mediaflux implements a service-oriented architecture (SOA). Everything is a service. Developers can extend Mediaflux by installing additional plugin services.

Plugin services can be installed into a live system. The plugin services are version controlled and access controlled using standard Mediaflux features, as the plugin services are data, like any other data managed by Mediaflux.

Examples of services are:

  • Data analysers - extract metadata from files of particular data types
  • Data specific indexing - extract tokens (words) to be indexed from files of particular data types
  • Communication with external systems - use JDBC, web-services, drop folders, message queues, e-mail, etc. Similarly, external systems can make calls directly to Mediaflux via a diverse range of protocols
  • Data transformations - image thumbnail generation, arbitrary transformations of data.

New Clients and Desktop Applications

The Mediaflux Desktop client is developed with the Google Web Toolkit (code.google.com/webtoolkit). It is Arcitecta's own implementation and uses no other toolkits. Libraries are available for developers to assist with developing their own clients, or developers can add their own applications within the Desktop framework.

Alternatively, developers may use any of the interfaces listed below to develop clients.

Scripts

Aterm is a Java command line terminal client that is used to configure and monitor a Mediaflux server. It is self-contained and can be used on any computer without any other Mediaflux components, provided that a compatible Java Virtual Machine is installed.

Aterm uses a Mediaflux shell, enhanced by the Tcl scripting language. This allows commands invoking Mediaflux services to be embedded within Tcl scripts. Tcl is described at www.tcl.tk.

Any command-line or shell based client application (e.g. Perl, Python, Ruby) can be supported with Aterm.

Interfaces & Software Development Kits

The Mediaflux API supports the following interfaces:

  • Java via Mediaflux's Java SDK
  • Microsoft .NET (VB.NET, C# or any other CLI compliant language) via the Mediaflux .NET Client DLL
  • Google Web Toolkit (GWT) client library for Web applications
  • Javascript client library for Web applications
  • REST-style XML interface over HTTP/S
  • SOAP Web Service interface that provides direct access to all 700+ Mediaflux services.