SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Prospectus Editing Tool (PET)

Mike Jones (mike.a.jones@bristol.ac.uk)
IT Services R&D / ILRT

Using emerging learning and research technologies to enable excellence
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
What is PET?
A workflow-driven web application for collating, editing and
approving content for the undergraduate and postgraduate
prospectuses.

IT Services R&D / ILRT
Content for Web …

IT Services R&D / ILRT
… and Print …

IT Services R&D / ILRT
… all stored in Site Manager

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
Custom tag brokers
Workflow
DB

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;

@ContentField(“UCAS code”)
private String ucasCode;

@ContentID
private Integer contentId;

@ContentField(“Award”)
private String award;

@VersionField
private String version;
@MetadataField(“keywords“)
private String keywords;

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
Documentation

http://www.flickr.com/photos/53326337@N00/3820645253

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
IT Services R&D / ILRT
Questions? 

IT Services R&D / ILRT

Weitere ähnliche Inhalte

Ähnlich wie Prospectus Editing Tool (PET)

Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...Terminalfour
 
Microsoft SharePoint in the Workplace
Microsoft SharePoint in the WorkplaceMicrosoft SharePoint in the Workplace
Microsoft SharePoint in the WorkplaceCTE Solutions Inc.
 
Application Insights for Integration Developers
Application Insights for Integration DevelopersApplication Insights for Integration Developers
Application Insights for Integration DevelopersSriram Hariharan
 
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Takumi Sakamoto
 
Ayana_4 years in Sharepoint
Ayana_4 years in SharepointAyana_4 years in Sharepoint
Ayana_4 years in SharepointAyana Banerjee
 
Project Training in Noida
Project Training in NoidaProject Training in Noida
Project Training in NoidaTech Mentro
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application StrategiesBIOVIA
 
Sujeet Kumar
Sujeet KumarSujeet Kumar
Sujeet KumarSujeet Kumar
 
Deploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePointDeploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePointDenny Lee
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowVincent Biret
 
Vasudeo_5.8_Years_of_Exp
Vasudeo_5.8_Years_of_ExpVasudeo_5.8_Years_of_Exp
Vasudeo_5.8_Years_of_Expvasudeo rao vaka
 
WSO2Con USA 2017: Brokerage as a Service (BaaS), Transforming Fidelity Broker...
WSO2Con USA 2017: Brokerage as a Service (BaaS), Transforming Fidelity Broker...WSO2Con USA 2017: Brokerage as a Service (BaaS), Transforming Fidelity Broker...
WSO2Con USA 2017: Brokerage as a Service (BaaS), Transforming Fidelity Broker...WSO2
 
Feature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine LearningFeature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine LearningProvectus
 

Ähnlich wie Prospectus Editing Tool (PET) (20)

Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
 
Microsoft SharePoint in the Workplace
Microsoft SharePoint in the WorkplaceMicrosoft SharePoint in the Workplace
Microsoft SharePoint in the Workplace
 
Application Insights for Integration Developers
Application Insights for Integration DevelopersApplication Insights for Integration Developers
Application Insights for Integration Developers
 
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?
 
Ayana_4 years in Sharepoint
Ayana_4 years in SharepointAyana_4 years in Sharepoint
Ayana_4 years in Sharepoint
 
Thinakaran
ThinakaranThinakaran
Thinakaran
 
Resume
ResumeResume
Resume
 
Project Training in Noida
Project Training in NoidaProject Training in Noida
Project Training in Noida
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies
 
Ramakrishna Embari
Ramakrishna EmbariRamakrishna Embari
Ramakrishna Embari
 
Sujeet Kumar
Sujeet KumarSujeet Kumar
Sujeet Kumar
 
Deploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePointDeploying and Managing PowerPivot for SharePoint
Deploying and Managing PowerPivot for SharePoint
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
 
Katpro general portfolio - industry based
Katpro general portfolio - industry basedKatpro general portfolio - industry based
Katpro general portfolio - industry based
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
 
Vasudeo_5.8_Years_of_Exp
Vasudeo_5.8_Years_of_ExpVasudeo_5.8_Years_of_Exp
Vasudeo_5.8_Years_of_Exp
 
WSO2Con USA 2017: Brokerage as a Service (BaaS), Transforming Fidelity Broker...
WSO2Con USA 2017: Brokerage as a Service (BaaS), Transforming Fidelity Broker...WSO2Con USA 2017: Brokerage as a Service (BaaS), Transforming Fidelity Broker...
WSO2Con USA 2017: Brokerage as a Service (BaaS), Transforming Fidelity Broker...
 
Ramakrishna Embari
Ramakrishna EmbariRamakrishna Embari
Ramakrishna Embari
 
CV_Priyamadhab
CV_PriyamadhabCV_Priyamadhab
CV_Priyamadhab
 
Feature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine LearningFeature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine Learning
 

Mehr von MrJ1971

KYBOTM poster for DHOxSS
KYBOTM poster for DHOxSSKYBOTM poster for DHOxSS
KYBOTM poster for DHOxSSMrJ1971
 
Map Your Bristol
Map Your BristolMap Your Bristol
Map Your BristolMrJ1971
 
MyMobileBristol and Nature Locator @ osjmob11
MyMobileBristol and Nature Locator @ osjmob11MyMobileBristol and Nature Locator @ osjmob11
MyMobileBristol and Nature Locator @ osjmob11MrJ1971
 
MCA and MyMobileBristol @ osjmob11
MCA and MyMobileBristol @ osjmob11MCA and MyMobileBristol @ osjmob11
MCA and MyMobileBristol @ osjmob11MrJ1971
 
Nature Locator @ Dev8D
Nature Locator @ Dev8DNature Locator @ Dev8D
Nature Locator @ Dev8DMrJ1971
 
MyMobileBristol @ Dev8D
MyMobileBristol @ Dev8DMyMobileBristol @ Dev8D
MyMobileBristol @ Dev8DMrJ1971
 
MyMobileBristol
MyMobileBristolMyMobileBristol
MyMobileBristolMrJ1971
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile WebMrJ1971
 
Mobile Campus Assistant - Dev8D Lightening Talk
Mobile Campus Assistant - Dev8D Lightening TalkMobile Campus Assistant - Dev8D Lightening Talk
Mobile Campus Assistant - Dev8D Lightening TalkMrJ1971
 

Mehr von MrJ1971 (9)

KYBOTM poster for DHOxSS
KYBOTM poster for DHOxSSKYBOTM poster for DHOxSS
KYBOTM poster for DHOxSS
 
Map Your Bristol
Map Your BristolMap Your Bristol
Map Your Bristol
 
MyMobileBristol and Nature Locator @ osjmob11
MyMobileBristol and Nature Locator @ osjmob11MyMobileBristol and Nature Locator @ osjmob11
MyMobileBristol and Nature Locator @ osjmob11
 
MCA and MyMobileBristol @ osjmob11
MCA and MyMobileBristol @ osjmob11MCA and MyMobileBristol @ osjmob11
MCA and MyMobileBristol @ osjmob11
 
Nature Locator @ Dev8D
Nature Locator @ Dev8DNature Locator @ Dev8D
Nature Locator @ Dev8D
 
MyMobileBristol @ Dev8D
MyMobileBristol @ Dev8DMyMobileBristol @ Dev8D
MyMobileBristol @ Dev8D
 
MyMobileBristol
MyMobileBristolMyMobileBristol
MyMobileBristol
 
HTML5 and the Mobile Web
HTML5 and the Mobile WebHTML5 and the Mobile Web
HTML5 and the Mobile Web
 
Mobile Campus Assistant - Dev8D Lightening Talk
Mobile Campus Assistant - Dev8D Lightening TalkMobile Campus Assistant - Dev8D Lightening Talk
Mobile Campus Assistant - Dev8D Lightening Talk
 

KĂźrzlich hochgeladen

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

KĂźrzlich hochgeladen (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Prospectus Editing Tool (PET)

  • 1. Prospectus Editing Tool (PET) Mike Jones (mike.a.jones@bristol.ac.uk) IT Services R&D / ILRT Using emerging learning and research technologies to enable excellence
  • 2. 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
  • 3. What is PET? A workflow-driven web application for collating, editing and approving content for the undergraduate and postgraduate prospectuses. IT Services R&D / ILRT
  • 4. Content for Web … IT Services R&D / ILRT
  • 5. … and Print … IT Services R&D / ILRT
  • 6. … all stored in Site Manager IT Services R&D / ILRT
  • 7. We needed to replace old software http://www.flickr.com/photos/bogdansuditu/2377842887 IT Services R&D / ILRT
  • 8. Opportunity to review processes http://www.flickr.com/photos/videolux/2389320345/ IT Services R&D / ILRT
  • 9. 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
  • 10. Architecture Site Manager PET Custom tag brokers Workflow DB PET DB CMS DB Data Warehouse IT Services R&D / ILRT
  • 11. 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
  • 12. 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
  • 13. Mapping Content @SectionID private Integer id; @ContentField(“UCAS code”) private String ucasCode; @ContentID private Integer contentId; @ContentField(“Award”) private String award; @VersionField private String version; @MetadataField(“keywords“) private String keywords; IT Services R&D / ILRT
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 20. Should you avoid parts of the API? http://www.flickr.com/photos/robwatling/5059689668/ IT Services R&D / ILRT
  • 21. 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
  • 22. 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 IT Services R&D / ILRT

Hinweis der Redaktion

  1. Give an overview of the PET application. Academics just see content released to them by Student Recruitment at appropriate times in the edit approval phases. An automatic workflow helps to manage the process to publication.
  2. University bought T4 to replace its heavily customized Plone 2 installation.Also, slowly replacing our Zope applications – Online Prospectus is a Zope application.Data is stored in an old Oracle database that uses an Access front-end; this has evolved and is difficult to maintain. Purchase of the TERMINALFOUR CMS for the institutional website provided an opportunity to review our approach.
  3. Provided an opportunity for business analysts to review the business process around the publication of prospectus information.Current process includes circulating Word documents to schools and faculties. Content is copied to InDesign. PDFs circulated for proof reading. Updates to the website from looking a track changes in Word, emails, scribbled notes on paper and phone calls.The workflow is managed manually in a spreadsheet.We can do better!
  4. Describe the architecture:Use the CMS to store versions of content and publish the website,An automatic workflow to help manage the process – automatic emails that release content for editing or approval.Data warehouse with data on KIS, accredited bodiesIn the future more data will be pulled from systems rather than stored in the CMS.
  5. Spring – dependency injection framework, web application API and security (authentication and authorization)Activiti – workflow engineMyBatis – mapping for relational databases (not the SITEMANAGER database)Ehcache – cache objectsSITEMANAGER API – access to user account, content etc
  6. Wanted to abstract from the underlying implementation – insurance if we needed/wanted to use a different content store in the future. We use custom annotations to map java objects and variables to content in the CMS. Abstraction is a little leaky!
  7. Examples of the annotations. Capture key pieces of SITEMANAGER content that we need to hold in the model. Handle creation and modification of content
  8. Need to query the CMS to help with things like populating lists and validating input.
  9. We used the Activiti workflow. An eclipse plugin allows you to design the workflow. We use the Java API but another project in Bristol is using the REST API. Allows the full automation of the workflow with support for different task types.
  10. Myself and Damian Steer have used the API
  11. Developer training was good, but documentation on how to use the API is thin. Until recently there was just the JavaDoc. The JavaDoc is usually behind the latest release. Current JavaDoc is 7.3.0001 but the product is on 7.4. Basic examples would be nice. Often using grep on JavaDoc. You can’t find categories in the JavaDoc – turns out they are a type of section.
  12. Not clearly defined which parts of the API are available. What is stable? I would expect stability and the same behaviour even if the underlying implementation is altered.
  13. Which of the many flags should you set. Some API calls seem to do nothing!