12130

28
12130 © 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID Banner XE with Localizations/Modifications Sustainable XE Application Mods Dale Ganus, Jorge Baquero, Trey Reynolds Texas Tech University System April 13, 2015 12130

Upload: ellucianadm

Post on 16-Jul-2015

18 views

Category:

Business


0 download

TRANSCRIPT

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Banner XE with

Localizations/ModificationsSustainable XE Application Mods

Dale Ganus, Jorge Baquero, Trey Reynolds

Texas Tech University System

April 13, 2015

12130

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Introduction – Who are We?

• Texas Tech University System

• Almost three institutions in one instance of Banner

• 40,000 total students

• Finance/HR/FA/Student/Student A/R

• Many other Ellucian products

• Many third party products

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Introduction – Our Motivation

• Experience with XE mods

• What has worked and what hasn’t

• Share a methodology that will cover a large percentage of all

modifications you might want to make.

• Work with Ellucian extensibility tools and evolve as more

become available.

• Share and learn from others to expand this approach.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

1 XE Software lifecycle at Texas Tech

2 Motivation for sustainable modifications

3 Examples of current Texas Tech mods

4 Development Methodology

5 Security Model Concerns

6 Q & A – Technical Questions Encouraged

Presentation Agenda

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

1. XE Lifecycle at Texas Tech

How code and installation is handled.

Jorge Baquero

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

XE Lifecycle – Source Code & Installation

Application Name Current

Version

in Test

UI Mod List of Current

Modifications

WAR Current

Version in

TTUSPRD

Prod

First time

Last

Deployed

Faculty Attendance

Tracking SSB

9.1.0.2 Y 9.1.0.2 9.1.0.1 7/13/2013 Mar 2015

Student Advisor SSB 9.1 Y 9.3 9.3 6/29/2014 Mar 2015

Student Attendance

Tracking 9.1.0.1 Y 9.1.0.1 9.1.0.1 7/13/2013 Oct 2014

Student Attendance

Tracking SSB 9.1.0.1 Y 9.1.0.1 9.1.0.1 7/13/2013 Oct 2014

Faculty Grade Entry 9.3.0.1 Y Y · Graduation Cap 9.3.0.1 9.3 9/23/2012 Mar 2014

Student Overall 9.3 Y 9.3 9.2 6/29/2014 Mar 2015

Student Registration 9.2.0.1 Y 9.2.0.1 9.2.0.1 2/23/2014 Mar 2015

Student Registration SSB 9.1.0.2 Y Y Registration

intermediate step

Drop Limit Filter

Class Fees

9.1.0.2 9.1.0.2 2/23/2014 Jan 2015

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

XE Lifecycle – Git Control

Master

TTU GIT

SERVER

TTU

Remotes: ellucian

origin

Implementation Deployment

Localizations and UI:

WAR file and installation

UI: Installation process

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

XE Lifecycle – Git Submodule Based Development

Architecture Based on XE Plugins.

o Plugin is a git repository

maintained separately and

included in the application.

o Command to add the

submodule:

Banner XE App Repo – TTU Branch

plugins/banner_core.git

plugins/banner_general_person.git

plugins/banner_ui_ss.git

plugins/ttu_appname_mod.git

GIT

SU

BM

OD

ULE

S

git submodule add

ssh://git@server/ttu_appname_mod

./plugins/ttu_appname_mod

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

2. Motivation for sustainable mods.

Our intentions around this style of

modifications.

Trey Reynolds - Developer

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Motivation for our approach to sustainable modifications

• History of Banner 8 mods

reapplied regularly.

o This results in shaky

construction.

• Strict separation of

concerns.

• No interference with

baseline code execution.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Motivations (continued)

• Create a way to utilize some already developed database

packages / procedures / functions.

o Save time

o Ensure identical behavior (e.g. Texas drop limit requirement)

• Bridge the gap between a full rewrite and existing work.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

3. Examples of Texas Tech mods

Some of the changes we’ve made so far.

Trey Reynolds – Developer

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Mods: Student Registration SSB

• Added step to the registration process -- “Agreements”

o Payment Agreement, Electronic Comm. Consent, Fixed Tuition Option.

• Drop Limit Filter

o Apply a limit to the number of dropped classes.

• Display Class Fees Only After Fee Assess

• Not require student PIN entry for advisors.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Student Registration SSB: Agreements Screen

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Student Registration SSB: Drop Limit

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Student Registration SSB: Class Fees

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Mods: Faculty Grade Entry

• Graduation Cap

Change:

o Adds an indicator icon

next to students

graduation this semester

on the grade roll.

o Accomplished with

javascript injection.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

4. Development Methodology

How does this work? Technical discussion.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Development Methodology

Development Phase

Production Phase

• Create in-place plugin and

make it a git project

• Develop the plugin in the

application

• Package the plugin and

make it part of the

installation process.

o Separate from the source

code dev process.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Modification Structure Overview

• Three different strategies

for creating sustainable

changes.

o Javascript injection.

o Self contained plugin MVC

architecture.

o Logic changes with filters.

• Include inline plugin in

project.

/grails-app/conf/BuildConfig.groovy

Application Structure

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Modification Plugin - Controllers & Services

• Controller and service code specific to

TTU app modifications.

• Multiple services and/or controllers so

that all modifications to one app exist in

the same plugin.

o Plugin contains its own unit/integration tests.

o Uses stock grails functionality for reusability

and readability.*

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Modification Plugin – Javascript Injection

• Uses resource overrides to inject

Javascript on a specific page.

• Javascript and CSS modifications can

be used to change most page behavior.

o Some developer investigation required.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Program Logic Flow Changes Using Grails Filters

• Overrides logic of a certain controller

and action using grails filter.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

5. Security Concerns

How to make sure you can use the fancy new logic you

just created in a domains/controller/service.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Spring Security Class for Controllers

• Security for most modifications is simple.

• For AJAX calls to REST service exposed via controller:

o Declare the controller in the config.groovy of the parent application:

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Summary

• Sustainable modifications means:

o Not having to manage heavy git merges.

o No exhausting searches for modified code and implications.

o Easier testing of code with and without mods.

• This should cover a large set of the more complex mods.

• There may still be a need to change core code.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Questions & Answers

Feel free to ask technical questions.

That’s why Trey is here.

12130© 2015 ELLUCIAN. CONFIDENTIAL & PROPRIETARY | Session ID

Thank you!Dale Ganus Jorge Baquero Trey Reynolds

[email protected] [email protected] [email protected]

Please complete the online session evaluation form.

• Via your registration account Log into your registration account at

https://ellucianlive2015.smarteventscloud.com/connect/

publicDashboard.ww

• choose the link to “Surveys””

Session ID 12130