prospectus editing at the university of bristol- an overview:terminalfour t44u 2013
TRANSCRIPT
IT Services R&D / ILRT
Using emerging learning and research technologies to enable excellence
Prospectus Editing Tool (PET)
Mike Jones ([email protected])
IT Services R&D / ILRT
Overview
• The drivers and opportunities of the Prospectus project
• The rationale for developing PET
• How we use the TERMINALFOUR Site Manager API in
PET
• The pros and cons of our approach
• Experiences of using the TERMINALFOUR Site Manager
API
IT Services R&D / ILRT
A workflow-driven web application for collating, editing and
approving content for the undergraduate and postgraduate
prospectuses.
What is PET?
IT Services R&D / ILRT
We needed to replace old software
http://www.flickr.com/photos/bogdansuditu/2377842887
IT Services R&D / ILRT
Opportunity to review processes
http://www.flickr.com/photos/videolux/2389320345/
IT Services R&D / ILRT
Why develop PET?
• Reluctance to train ~100 academics and faculty staff in
using Site Manager for just prospectus content
• Needed to control access to content via roles (Editor,
Faculty Reviewer, Print Reviewer and Prospectus
Administrator) that didn’t fit with Site Manager roles
• Wanted a robust standards-based workflow engine
• A request for ‘simplified editing screens’
IT Services R&D / ILRT
Architecture
Site Manager PET
Workflow
DB
Custom tag brokers
PET DB CMS DB Data
Warehouse
IT Services R&D / ILRT
Core Technology for PET
• Spring Framework (http://spring.io)
• Spring MVC
• Spring Security
• Activiti BPM Platform (http://www.activiti.org)
• MyBatis (http://github.com/mybatis)
• Ehcache (http://ehcache.org)
• TERMINALFOUR Site Manager API
IT Services R&D / ILRT
Content is abstracted to Domain Objects
• Web application passes around domain model
objects that represent people, programmes,
faculties, subjects etc
• For Site Manager content an object is made of a
Section + Metadata + Content
• Implemented mappings from variables in the Java
objects to Site Manager content via custom
annotations
• Support a subset of types – plain text, numbers, list
(not sub-lists), content links …
IT Services R&D / ILRT
Mapping Content
@SectionID private Integer id;
@ContentID private Integer contentId;
@VersionField private String version;
@MetadataField(“keywords“) private String keywords;
@ContentField(“UCAS code”) private String ucasCode;
@ContentField(“Award”) private String award;
IT Services R&D / ILRT
Support for the web view
• Validators check with
the CMS for mandatory
fields
• Get list values
• Show field names and
descriptions (can be
overridden)
IT Services R&D / ILRT
Workflow
• Activiti BPM Platform
• Support BMN 2.0
• Design the workflow
with an Eclipse plugin
• Java and a REST API
• Supports different tasks –
Email, Script, Business
Rule etc
IT Services R&D / ILRT
Progress
• Still a work in progress
• Currently being used by Undergraduate Recruitment
• Soon to be released to Postgraduate Recruitment
• Undergraduate prospectus will be published in February
2014 (I still need to write some Custom Brokers)
• Positive feedback from academics. Student Recruitment
positive but have lots of suggestions for improvement.
IT Services R&D / ILRT
Pros and cons of our approach
• Flexible system that can adapt to the needs of Student
Recruitment
• Benefit from the advantages of Site Manager while
providing an easy-to-use interface for the academics
• Powerful workflow that can be adapted to changing
business processes
• BUT … the heavy use of the Site Manager API means we
cannot update our CMS until PET is fully tested against
new versions of Site Manager
IT Services R&D / ILRT
Experiences of using the Site Manager
API
• We have used the API for:
• The development of PET
• The migration of Plone content to Site Manager
• Populating users and groups in Site Manager from
LDAP
It is very powerful!
IT Services R&D / ILRT
Should you avoid parts of the API?
http://www.flickr.com/photos/robwatling/5059689668/
IT Services R&D / ILRT
Pass a Connection or a Statement?
• Initially surprised that you deal with JDBC objects directly
but we embraced it
• Decided to pass in a Statement rather than a Connection
so we can ensure the Statement was closed
• You can’t always pass in a Statement; some API calls
query the database but don’t even require a Connection
...
• … which ties you to the SM Connection pool
implementation
IT Services R&D / ILRT
Bits and bobs
• More examples needed
• No notes on API changes in the release notes
• Not trivial to setup a development environment – I use
maven overlays to make my life easier
• Support for transactions?
• Cache – not able to notify the Site Manager cache that a
remote application has added or modified content.
• No support for repository standards – JSR-170 / JSR-283
or CMIS