Ellucian Identity Service Early Access Programs

Banner by Ellucian:
Architecture of Banner SelfService/Administrative
Pages
®
Rajesh Kumar, Margy Hockett
Architects, Ellucian
March 2017
Agenda
1
Banner 9.0 Administrative Pages Technical Review
2
How to Extend my Administrative Pages
3
Banner 9.0 Self-Service Application Technical Review
4
Overview of Grails Objects
5
Job Submission Enhancements
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
2
Administrative Pages 9.0
Environment Setup
•
Eclipse
o Luna is older version
o Mars is newer and supported, Neon newer and being tested
•
Java JDK 7 or 8
•
Tomcat 7 or 8
•
Database – Oracle 11.2.0.4 and 12c
•
PC – needs to be large enough for Eclipse, Tomcat and JDK
•
•
https://ecommunities.ellucian.com/docs/DOC-3371
•
Update your maven settings.xml
GIT – download Ellucian source
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
4
Ellucian Banner Admin Page Repo
Mapping
®
Common
Base
Workspace
Build
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
•
•
•
•
Common Libraries
DB Services
Student Common
Finance-common , General Common*
• Pom file with framework versions Maven downloads
•
•
•
•
Frames Plugin
CSS and HTML
Branding workspace
Webapp workspace
• Webapp Services configuration and pom
5
Ellucian Banner Product Repo
Mapping
®
General
• General, Sevis
Student
• Admissions, Course, Learner, Degree, Student, Validation
Alumni
Payroll
Position Control
Finaid
• Finaid, Student Aid
Finance
Arsys
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
6
Evolution of Common
• Common originally included supporting pages needed for initial
deliveries
• General and Finance product specific pages will be relocated to the product
repo
• True common: pages used by all products and delivered by General remain
in student-common
• DB Services includes wrapper classes for Database Procedures
• Product specific DB Services classes will be relocated to each product repo
• DB Services used in multiple products will remain in Common
•
like gb_common
• Common Libraries includes all libraries
• Product specific libraries will be relocated back to the product
• Goqrpls, Goqolib and other General libraries will remain
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
7
Setting up your project
• Clone GIT Repos
• Base
•
Pom file with framework releases
• Build
•
•
Webapp Services and pom.xml
Update pom.xml to include imported projects.
• Workspace and its submodule with frames
•
•
Workspace for Project
Frames plugin and other CSS
• Common
•
Banner Page Objects (Goqrpls, Goqolib)
• Reports
•
Jasper report framework
• Ellucian Products
•
Repositories with product pages
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
8
Import existing projects into your
Eclipse
• Import
• Build HR Webapp Services
• Workspace Webapp HR Workspace
• Reports
• Common
•
•
•
Common-libraries
Student-common, General-common, Finance-common
Document-Management
• Ellucian Products
•
Repositories with product pages
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
9
Framework – Foundation and Frames
•
Salesforce Article 000037253 has current versions and download sites
•
Install Foundations and Frames Eclipse Plugins
•
•
•
Foundation has classes and methods for page actions
•
Frames transforms Java, XML to HTML
Template plugin
•
Creates validation, inquiry and page with key-block
•
Brings in all objects to make the page ‘Banner’
Use ‘Foundations’ Perspective in Eclipse
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
10
Foundation Generator
• Update the
foundations
Generator to
include modules
used for
compilation of
pages
• Details in our
Working with
Eclipse Guide
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
11
Configuration
•
Database configuration
•
•
Add database URL and login ID and password to configuration
Logger
•
Set log4j to trace to see feedback including query and insert database
statements
•
Add the log4j setting file to the eclipse runtime configuration
-Dlog4j.configuration=config.properties
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
12
Workspace Services Pom
• Update the workspace services pom.xml to include projects you imported
<dependency>
<groupId>net.hedtech.banner.general</groupId>
<artifactId>general</artifactId>
<version>${project.parent.version}</version>
</dependency>
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
13
Task Explorer and Eclipse Tools
•
Task Explorer provides UI for viewing and building pages objects
•
Widgets available from Task Explorer to facilitate creation of new objects
•
Page Objects & MVC
•
Business Object – Mapping Object to Banner Oracle Table
•
View – Canvas and Windows
•
Blocks - Controllers for action events
•
Configuration – takes in all objects and makes single page
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
14
How do I Extend my
Administrative Pages?
Extending Banner
• Best to create new project for your extensions and custom pages
• Create new Java project
•
•
•
General/workspace-forms/myproject for extension project
OR General-custom for separate repo with dependency to general project
Create in folder src/main/java
• Copy pom.xml from similar project to your project and add dependency to
main repository
• Use Eclipse tool to convert project to Maven
•
Best to copy pom.xml from existing project to your project and follow patterns
• Use Eclipse tool to convert project to Frames
•
Copy existing frames.config from another project to your new project
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
16
Templates
• Page with Key-Block and Single Block
• Little is required to complete basics
• All Banner basics are added
• You can get a page up and running in a few minutes
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
17
Validate Installation
• Verify you have the Foundations and Frames Eclipse Plugin and the
Foundations Templates for Ellucian
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
18
Select Foundations > Tasks from your
extension project
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
19
Select template
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
20
Define main block
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
21
Define layout
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
22
Define keyblock field
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
23
Page is created!
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
24
Use the view Preview to modify the UI
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
25
Menus
•
Upgrades install App Navigator menu data
•
Developers add new pages to menu configuration for testing outside app
navigator
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
26
App Navigator and Menus
• Banner Pages defined
• GUAOBJS
•
UI Type is E
• Banner Security – usually insert page into Banner Security Class
• GUAPAGE
• Scripts to Insert into GUAPAGE and update GUAOBJS UI option delivered
with Admin Page Releases
• GUAPAGE is not be required when INB is no longer used
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
27
Summary of Administrative Page
Development
• Setting up your environment for Banner Administrative Page
development
• Source repositories
• Templates
• Development using eclipse allows you to run standalone
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
28
Self-Service 9.0
Overall Structure and Framework
•
Java JDK 7 or 8
•
Grails 2.5
•
•
IntelliJ for IDE
•
•
Comes with full stack including Hibernate, Tomcat, Site Mess, Spring
Grails community prefers IntelliJ
Requires Banner Database Common Upgrade
•
DBEU phase II, Views to support objects with complex queries
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
30
Setting up your project
• Clone the Banner ® 9 SSB App from Ellucian Repository
• https://ecommunities.ellucian.com/docs/DOC-3371
• Fetch the tag from last release
• git checkout tags/rel-registration-9.3
• git submodule update –init
• git submodule foreach ‘git fetch’
• Open as existing project source in IntelliJ
• Identify JDK and Grails modules
• IntelliJ and Grails requires very little setup compared to Eclipse and our
Administrative Pages!
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
31
App Plugins
Common
Framework
Open
Source
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
• General Common
• General Person
• General Validation
• General Utility
• Banner Core
• I18N
• Banner Spring Security Saml, Cas
• Banner UI SS
• Grails Constraints
• Web app extensibility, Sghe Aurora
• Restful API
• Codenarc
32
Reusable Plugins
Functional
UI Pages
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
• Student Common, Student Schedule, Catalog,
Registration, General Student, Validation, History,
Admissions, Arsys
• Payroll
• Finance
• Student Common UI SSB
• General UI SS
33
Build Configuration
• Config.groovy has URL Maps for spring security
• Specifies valid WebTailor Roles for page
• Form Context Map
• Specifies Banner Security Class requirements
formControllerMap = [
'mainpage': ['SELFSERVICE'],
'menu': ['SELFSERVICE'],
'registration': ['SELFSERVICE'],
]
grails.plugin.springsecurity.interceptUrlMap =
'/ssb/classRegistration/**': ['ROLE_SELFSERVICESTUDENT_BAN_DEFAULT_M',
'ROLE_SELFSERVICE_BAN_DEFAULT_M',
'ROLE_SELFSERVICE-REGISTRAR_BAN_DEFAULT_M',
'ROLE_SELFSERVICE-FACULTY_BAN_DEFAULT_M
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
34
App Configuration
• Internal file of the app
• Fill out while preparing the War for for deployment
• Database Connection details
• Cas / Saml login details
• Application specific configurations
• Application data format strings
• Registration has the bookstore links
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
35
Grails Objects
Domains
• Maps object to Oracle Table or View
• Views have complex queries and joins
• Inquiry Read only views
• Hibernate requires surrogate ID, version
• Column Mappings
• Java equals and hash mapping overrides
• toString() for display
• Named queries
• Uses session to instantiate named query
• Avoids SQL Injection
• Better control of performance
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
37
JPA vs Grails ORM
•
Hibernate
•
•
Banner ® Grails Domains are JPA objects in groovy/src
•
•
Maps Oracle tables to project objects
Banner breaks from Grails Domain conventions
Named Queries
•
Convert legacy queries
•
Stay away from Groovy finders
•
SQL injection
•
Performance
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
38
Banner Domains
• Domain Objects located in the src/groovy folder
• Grails app that use strict hibernate have domain folder in Grails-app
folder
• Hibernate requires mapping to identify object
<hibernate-configuration>
<session-factory>
<property
name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<mapping class="net.hedtech.banner.general.person.AdditionalID"/>
<mapping class="net.hedtech.banner.general.person.PersonAddress"/>
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
39
Services
• Transactional
• Services extend Banner Core ServiceBase
• Common insert, pre/post-insert, update, pre/post-update, delete and
pre/post delete
• Common methods for insert activity date, user ID and data origin
• Domain services has pre/post CRUD business logic
• Composite services call out to multiple services
• Able to use the service session to execute PL/SQL procedures
• Code as callablestatements making sure to include close of the statement
• Location of business logic
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
40
Controllers
• Non transactional
• Executes services which creates the transaction based on login connection
• Never code PL/SQL or SQL JPA statements in controller
•
Execute service that has the oracle transaction
• Handles web requests
• Validates parameters, dispatches requests to services and renders results to
the UI
• GSP files templates return HTML (sitemesh)
• JSON returns data to be processed by JavaScript
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
41
Sample controller
package net.hedtech.banner.demo
import grails.converters.JSON
class StudentDirectoryController {
def studentDirectoryService
def search() {
def people = studentDirectoryService.fetch( params.id)
render people as JSON
}
}
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
42
UI Backbone vs Angular
• Angular JS
• Original apps use Backbone JS
• Angular JS is first choice for Mobile
• Older projects have plan on roadmap to be refactored to use Angular
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
43
Consolidated Apps
• Reduce footprint of Banner
• Pages consolidated into single app
• Relocating UI and controllers for pages to plugins
• App is trimmed down to include just index of pages
• Configuration for enabling pages
• App Navigator provides menu for each of the pages
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
44
BANPROXY vs BAN_SS_USER
• BANPROXY used for Administrative pages and BAN_SS_USER for SelfService
• Administrative User requires Oracle ID that is created with grant connect
through BANPROXY
• Rollout of new process to create BAN_SS_USER
• Initial rollout gives user DBA privileges and blanket access to all tables
• Solved connection performance issues with assigning role dynamically for
each connection
• New rollout creates role with grants to tables
• BAN_SS_USER is assigned the role at the time of the connection
• Setting role is not done dynamically when a connection to the database is
made
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
45
Restful APIs
Restful Apps
• Restful API plugin is open source
• End points are in Banner 9 API App configuration
• XML and Json
• Services reside in reusable plugins
• Use same services as many Banner 9 SSB pages
• Follow ETHOS data models
• User ID in Authorization Header is usually Oracle ID and assigned Banner
Security Class that has the API Object
• ETHOS APIs require creation of GUID column (Global Unique ID)
• Delivered in Ethos API common database release
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
47
Restful API Resources
• Find restful API resources in the Grails Config.groovy the
resource 'about' config {
serviceName = 'aboutCompositeService'
methods = ['list']
representation {
mediaTypes = ["application/vnd.hedtech.v1+json", "application/json"]
marshallers {
jsonBeanMarshaller {
supports net.hedtech.banner.general.overall.AboutDecorator
}
}
}
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
48
Job Submission
Enhancements
Job Submission Enhancements
•
•
Three actions requires the end user have access to the Job Submission
Server file system
•
Retrieving output files directly from Job Submission Server
•
Uploading input files to Job Submission Server
•
Print to local on premise printers
Enhancements will provide alternatives
•
More user friendly for Cloud and SaaS implementations
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
50
Job Submission - Uploading
•
New administrative page to upload
•
Select file from desktop
•
New select-file component not dependent on B8 SSB
•
Upload into new Blob column in a new table
•
New Job submission process reads Blob and writes to server
•
Moves away from using Oracle Directories
•
Oracle Directories requires access to SQLPlus to create the Oracle Directory
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
51
Downloading and Printing
• All files written to GJIREVO
• Non .lis files like .csv, .txt, .xml, .dat
• Print output (.lis) uploaded to blob in new table
• Option to convert to PDF
• PDF font and font size – Best results with Courier 8
•
option to change for each job
• Download from new administrative page and print to local printer
• Future restful service to retrieve pending print jobs
• On Premise service will send HTTP requests to get list of pending print jobs
• On Premise service prints returned file
• Updates print status details
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
52
References
• Article 000037253
• https://ecommunities.ellucian.com/docs/DOC-3371
• Banner Transformed: Working with Eclipse and Your Administrative
Application
• Banner Transformed: Extending Your Administrative Application
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
53
Sizing and Deployment
Banner 9 Self-Service Consolidation
•
•
Reduce
•
Server Foot Print
•
Server/Deployment Administration
•
Framework Upgrades
•
Technical Currency Updates
Maintain
•
Modularity
•
Flexibility to turn on/off features
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
55
Banner 9 Self-Service Consolidation
Separate UI Plugins
Shared Business Logic
Time Reporting UI Plugin
Position Description UI Plugin
Employee Profile UI Plugin
Shared Frameworks Plugins
Shared Third Party Plugins
Domain Plugins
Framework Plugins
Third Party Plugins
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
Banner 9 Self-Service Consolidation
•
Features
•
Maintain Independent URL
•
•
Employee/ssb/EmployeeProfile
•
Employee/ssb/PositionDescription
Enable/Disable
•
•
Enable Disable UI Plugins through configurations
Landing Page
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
57
Banner 9 Self-Service Consolidation
•
Student
•
•
•
Registration
Student API
Admin Application
•
Banner 9 Admin
•
Banner Online Help
•
Jasper Reports Server
•
Student Self-Service
•
Faculty Self Service
•
Application Navigator
•
Employee Self-Service
•
General Self-Service
•
Finance Self-Service
•
Extensibility
•
Event Management
•
General/Integration API
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
•
Common
58
Sizing and Deployment
•
Virtual Machine Configuration
•
2 Tomcat or Weblogic Managed Servers per VM 8GB max heap memory
•
•
Application Server 1 Banner 9 Admin Application
•
Application Server 2 Banner 9 admin self service Application
2 Tomcat or Weblogic Managed Servers per VM 8GB max heap memory
•
Application Server 1 Banner 9 Self Service Applications
•
Application Server 2 Banner 9 Self Service Applications
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
59
Sizing and Deployment
•
Java Heap Per Application
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
60
Sizing and Deployment
VM 1 - Quad core CPU 16GB memory
Tomcat / WebLogic Admin 6GB
Banner Administrative Application
Banner Online Help
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
Tomcat/WebLogic Self-Service/8GB
Banner Comm. Management
Banner Employee Self-Service 9
Banner Finance Self-Service 9
Sizing and Deployment
VM 2 - Quad core CPU 16GB memory
Tomcat/WebLogic Self-Service/8GB
Banner Student Self-Service Registration
Student API
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
Tomcat/WebLogic Self-Service/6GB
Banner Faculty Self-Service 9
Banner Student Self-Service 9
Sizing and Deployment
VM 3 - Quad core CPU 16GB memory
Tomcat/WebLogic Self-Service/6GB
Banner General Events Management
Application Navigator
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
Tomcat/WebLogic Self-Service/8GB
Banner General Self-Service 9
Banner General API
Sizing and Deployment
•
Determine Total user load
• Banner has usage tracking tables that capture user login, logout, and page
access for both INB and SSB users
•
Admin Pages GURALGN and GURACES
•
Self-Service TWGRALGN and TWGRACES
•
select count(distinct(twgraces_ssb_logon_id)) from wtailor.twgraces where
trunc(twgraces_activity_date) between '01-JAN-15' and '31-JAN-15'
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
64
Summary
• Administrative Pages
• Self-Service
• Enhancements coming to Job Submission
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.
65
Questions & Answers
Thank you
We want to hear from you—
feedback survey
Access session surveys by using the survey
widget on the mobile app or by logging into
your session schedule builder.
Margy Hockett, Rajesh Kumar
[email protected]
[email protected]
Session ID 97514
© 2017 ELLUCIAN. CONFIDENTIAL & PROPRIETARY.