SSB9 Tech Stack: Step 2 ‐ Backend Application (Java‐based REST APIs) - Arch-Node/personal_studies GitHub Wiki

Back to SSB9 Tech Stack Overview

2.1 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.

2.2 API Gateway & Request Handling

  • 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}

2.3 Microservices & API Processing

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.

2.4 Database Interaction

  • 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);
    }

2.5 Security & Authentication

  • 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());
        }
    }

2.6 Error Handling & Logging

  • 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());
        }
    }

Summary Flow

User → Frontend (Angular/React) → API Call → API Gateway → Microservices → Database → JSON Response → Frontend UI

Conclusion

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.



⚠️ **GitHub.com Fallback** ⚠️