SECURITY
We have worked on the most demanding of security domains - from extremely rare genetic diseases, through to systems with intellectual property worth hundreds of millions of dollars. We have delivered systems with advanced authentication, authorisation, auditing and accounting capabilities (amongst many others aspects of security!)
CLOUD COMPUTING
A large part of our work is in supporting scalable infrastructures utilising mainstream Cloud infrastructures. This includes the full gamut of Cloud models from Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). These are based around mainstream Cloud technologies such as VMware, OpenStack and Amazon Web Services. We teach Cloud computing and have educated over 500 Masters students in the kinds of technologies that are shaping the IT landscape.
BIG DATA
A common demand for eResearch is in supporting the many challenges associated with big data such as its volume (e.g. dealing with multi-Terabytes of data); its velocity in rapid production/capture of data; its variety of data and the issues associated with heterogeneous and distributed data sets; its veracity of data and the history (provenance) of data amongst other challenges. Tackling such issues often requires novel data management technologies, e.g. support for distributed data management systems and algorithms such as MapReduce and ElasticSearch. We have worked with these technologies for many years in domains such as genomics, urban research through to social media analytics.
DATA MANAGEMENT SOLUTIONS
All research domains are generating and/or needing access to data at unprecedented rates – often these are increasingly diverse data sets. In this context a rich range of data management solutions now exist: noSQL databases such as CouchDB, CouchBase and MongoDB; distributed data solutions such as Hadoop Distributed File System and Apache Swift, as well as more traditional data solutions such as relational databases such as MySQL, PostGres and Oracle (amongst many others). We have used all of these technologies in a range of application domains and have considerable expertise in their deployment, configuration and utilisation more generally.
RICH WEB SOLUTIONS
In delivering a range of software solutions for researchers, we know that domain scientists often require access to systems that are tailoured to their needs. This includes support for rich research environments comprised of many tools and data sets reflecting research needs and demands. We have utilised a range of systems in delivering such environments: from portals and associated technologies (servlets/portlets), through to advanced human computer interaction-focused solutions utilising state of the art Javascript libraries.
SERVICE-ORIENTED ARCHITECTURES
Development of scalable systems typically comprises access to decentralised resources. These are often accessed and invoked through programmatic means over the web. Service-oriented architectures are one model for delivery of such solutions however a rich variety of solutions exist to support such systems. We have worked extensively with all flavours of web-service, from ReST- and SOAP-based solutions, through to more targeted flavours of web service such as geospatial services based around Open Geospatial Consortium Standards and health services utilising HL7 systems (amongst many others).
BIG COMPUTING
For many researchers, their computing depends on access to and use of large-scale computing facilities to support high performance (or more commonly, high throughput) computing. We have worked with the development and delivery of algorithms and solutions that support seamless access to and use of such facilities. We also teach the fundamentals of high performance computing and the trade offs and approaches that can be taken to tackle large scale computing problems.
CONTINUOUS DEVELOPMENT AND DELIVERY SYSTEMS
Many researchers want more than a prototype system, but an enterprise-level professionally developed end product. We follow a rigorous agile software development methodology with daily stand-ups and scrums/sprints for all of the projects we are involved in. Implicit to our approach is to support rapid and continuous development and delivery of software solutions. This is supported through integrated code versioning systems such as GitHub; checking of code through Gerrit; support for integration and testing using tools such as Selenium, Cucumber, Jenkins and Sonar; feature request and tracking tools such as Redmine and Jira, through to automated production of systems following using advanced scripting environments such as Ansible, Puppet and Chef. These solutions reflect current best practice in software development.