SSB9 Tech Stack: Step 2 ‐ Backend Application (Java‐based REST APIs) - Arch-Node/personal_studies GitHub Wiki
Back to SSB9 Tech Stack Overview
The backend of Ellucian Self-Service Banner 9 (SSB9) is built on Java-based microservices that provide data processing, business logic, and API endpoints for the frontend.
- The frontend (Angular/React) sends requests to the Ellucian REST API server.
- Requests are routed through an API Gateway, which handles authentication and load balancing.
- Institutions may use Ellucian Ethos Integration or a third-party API Gateway (e.g., Kong, AWS API Gateway) for routing and security.
- Example API call:
GET /api/student/advising/appointments Authorization: Bearer {JWT_TOKEN}
SSB9 uses a microservices architecture, where different services handle specific functionalities.
Service Name | Function |
---|---|
Student Profile API | Fetches student records, course details, grades, and advising information. |
Faculty Grade Entry API | Handles faculty schedules, class rosters, and grading submissions. |
Student Registration API | Manages course registration and add/drop requests. |
Student Finance API | Retrieves tuition payments and financial aid information. |
Each API is built using Spring Boot and follows RESTful principles, returning JSON responses.
- The backend retrieves data from the Oracle (or PostgreSQL, depending on deployment) database using:
- JPA (Java Persistence API) / Hibernate ORM for database interactions.
- Native SQL queries for complex reports.
- Example JPA Repository:
@Repository public interface AdvisingRepository extends JpaRepository<AdvisingAppointment, Long> { List<AdvisingAppointment> findByStudentId(Long studentId); }
- API requests require authentication via OAuth2 / JWT tokens.
- Security is enforced using Spring Security, validating access rights.
- Example secured API endpoint:
@RestController @RequestMapping("/api/student/advising") public class AdvisingController { @GetMapping("/appointments") @PreAuthorize("hasRole('STUDENT')") public ResponseEntity<List<AdvisingAppointment>> getAppointments() { return ResponseEntity.ok(advisingService.getAppointments()); } }
- Centralized exception handling is implemented using
@ControllerAdvice
. - Logging is managed using Logback, and institutions may integrate with a monitoring stack (ELK, Splunk, or Prometheus/Grafana).
- Example global exception handler:
@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public ResponseEntity<String> handleException(Exception e) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage()); } }
User → Frontend (Angular/React) → API Call → API Gateway → Microservices → Database → JSON Response → Frontend UI
The backend in SSB9 ensures secure, efficient, and scalable communication between the frontend and database. It is responsible for processing business logic, retrieving/storing data, and securely exposing API endpoints for seamless user interaction.