21
22. siječnja 2014. Kako je implementiran ISVU REST API? Estera Prendivoj, Srce [email protected]

Kako je implementiran ISVU REST API? - srce.unizg.hr · Skladište podataka Admin koordinator Print server Samostalne aplikacije Web aplikacije Programsko sučelje Kadrovi Studij

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

22. siječnja 2014.

Kako je implementiran ISVU REST API?

Estera Prendivoj, [email protected]

22. siječnja 2014.

Kratka povijest ISVU-a (1)

• Projekt Ministarstva znanosti, obrazovanja i sporta, pokrenut 13. lipnja 2000. godine.– ISVU je razvio tim s Fakulteta elektrotehnike i računarstva

Sveučilišta u Zagrebu, koji je vodila prof.dr.sc. Mirta Baranović.

• Prvi upisni list na produkcijskom sustavu evidentiran je na FSB-u 12. srpnja 2001.

prvi upisni list(2001.)

početak projekta ISVU

(2000.)

ISVU CP -održavanje (2004.)

ISVU CP –

razvoj (2011.)

ISVU REST API(2011.)

1. okupljanjekorisnika ISVU -REST API u ISVU

(2014.)

50. ustanova(2007.)

100. ustanova(2013.)

100.000 studenata uISVU (2009.)

uspostavljenISVU CP(2004.) ISVU ↔ Mozvag

(2006.)

22. siječnja 2014.

Kratka povijest ISVU-a (2)

• Brigu o ISVU-u, 21. listopada 2004. godine preuzima stručni tim Centra potpore ISVU koji djeluje u Sveučilišnom računskom centru (Srcu).

• U kolovozu 2011. godine Srcu je povjeren razvoj programske podrške za ISVU.

prvi upisni list(2001.)

početak projekta ISVU

(2000.)

ISVU CP -održavanje (2004.)

ISVU CP –

razvoj (2011.)

ISVU REST API(2011.)

1. okupljanjekorisnika ISVU -REST API u ISVU

(2014.)

50. ustanova(2007.)

100. ustanova(2013.)

100.000 studenata uISVU (2009.)

uspostavljenISVU CP(2004.) ISVU ↔ Mozvag

(2006.)

22. siječnja 2014.

Kratka povijest ISVU-a (3)

• U prosincu 2011. godine razvijen je novi ISVU modul – ISVU REST API– U srpnju 2012. implementirana je podrška za evidenciju

informacijskih sustava – izlazak iz pilot faze– U travnju 2013. ukinuta je podrška za korisnike iz pilot faze

prvi upisni list(2001.)

početak projekta ISVU

(2000.)

ISVU CP -održavanje (2004.)

ISVU CP –

razvoj (2011.)

ISVU REST API(2011.)

1. okupljanjekorisnika ISVU -REST API u ISVU

(2014.)

50. ustanova(2007.)

100. ustanova(2013.)

100.000 studenata uISVU (2009.)

uspostavljenISVU CP(2004.) ISVU ↔ Mozvag

(2006.)

22. siječnja 2014.

Korisnički moduli

Ispiti

Nastavnički

portal

Skladište

podataka

Adminkoordinator

Print server

Samostalne aplikacije

Web aplikacije

Programsko sučelje

Kadrovi

Studij istudenti

RESTAPI

Studomat

Raspored sati

Generator dopunskihisprava o studiju,

svjedodžbi i diploma

22. siječnja 2014.

ISVU u brojkama (1)

• 105 visokih učilišta vodi podatke za studente kroz ISVU• Sumarni podaci od pokretanja projekta

– evidentirani su podaci o 475.910 studenta– evidentirano je 1.103.385 ISVU upisnih listova – evidentirano je 976.107 ISSP upisnih listova– provedeno je 10.894.471 ispita– izdano je 2.506.673 potvrda– ukupni broj studenata koji su aktivno koristili Studomat je 239.502– ISVU središnja baza podataka sadrži 128GB podataka (96GB su

audit podaci)

• Korisnici– 12.060 korisnika sustava (ne računajući studente)

– 130.690 studenata koristi Studomat

22. siječnja 2014.

ISVU u brojkama (2)

• U 2013. godini– Zabilježeno je 6.999.126 prijava za rad sa Studomatom. Najveći

broj prijava zabilježen je u veljači, lipnju i rujnu (>1.000.000).

– Provedeno je 1.593.548 ispita. Najviše ispita provedeno je u veljači

(400.113) i lipnju (391.297).– Izdano je ukupno 474.930 potvrda od čega je putem Studomata

izdano 311.386 potvrda (66%).– Provedeno je 18.442 završnih i diplomskih radova.

– Generirano je 37.537 diploma/svjedodžbi i 43.125 dopunskih isprava.

– Ukupan broj zahtjeva koje je ISVU REST API zaprimio i obradio je 12.525.617 (8 puta više nego u 2012.).

22. siječnja 2014.

Čvorovi, serveri, servisi

• 3 čvora – razvoj, testiranje, produkcija• ≈30 servera ukupno

– Svi serveri (osim servera za SUBP) su virtualizirani• ≈100 servisa i aplikacija koji čine ISVU (sva 3 čvora)

• Kontinuirani nadzor opreme i svih servisa (Intrusion detection system)

• Backup – kontinuirani za bazu podataka, dnevni za ostalo• Neprekidno napajanje (UPS + dizel generatori)• Protupožarna zaštita

• Fizička zaštita opreme

22. siječnja 2014.

Platforme

• Java platforma– Desktop– Web– Razni (interni) servisi

• .NET platforma – skladište podataka

• OS– Windows– Linux (Debian)– Solaris

• Podaci– Informix (OLTP)– SQL Server (OLAP)

22. siječnja 2014.

Tehnologije (samo dio)

Java• Core• JDBC• JFC (Swing)• Servlets• JSP• JSTL• JAXB• JAXP• JMS• JTA• JNDI• EJB• ...

SQLSPLMDXHTMLJavaScriptCSSHTTPXMLXSLTXSL-FOASP.NETLinux/UnixShell...

Java• Spring Framework

– DI/core spring-*– Web– Security– Batch

• JBoss• Tomcat• log4j• apache-commons• easymock• junit• testng• xmlunit• quartz• mybatis• tiles• ...

Linux/DebianSolarisWindowsApacheInformixSQL ServerActive DirectoryLDAPSeleniumJenkinsJiraConfluence...

22. siječnja 2014.

Programski kodLanguage Files Code

Java 8.611 941.437

XML 518 369.145

SQL 2.094 305.186

Javascript 103 60.905

JSP 475 47.296

C# 196 42.057

XSLT 39 21.355

XSD 150 12.464

HTML 190 10.840

CSS 77 14.385

… … …

SUM 12.769 1.849.293

22. siječnja 2014.

Arhitektura ISVU web modula

22. siječnja 2014.

Tehnologije ISVU REST API-ja

• Ključne tehnologije

– Java– Spring Framework– Spring MVC– Spring Security– MyBatis– Log4j– JUnit/TestNG– Tomcat/JBoss

22. siječnja 2014.

Analitika

• Detaljno logiranje svakog zahtjeva• Noćno učitavanje svih logova

• Noćna obrada (zahtjevno) i ažuriranje podataka za

analitiku

analitika

DBAS

22. siječnja 2014.

Razvoj (1)

• Procedura kreiranja (izvršnih) aplikacija/modula je u potpunosti automatizirana

• Svi resursi su pokriveni funkcionalnim testovima• Ključne komponente pokrivene unit testovima

(security, ...)• Svakodnevno se odrađuju stress testovi

22. siječnja 2014.

Razvoj (2)

• Implementacija novog programskog koda– Razrada resursa– Kodiranje– Ažuriranje koda (svn commit)– Automatizirano kreiranje aplikacije/modula na posebnom

serveru (nakon svakog ažuriranja)

– Automatizirani testovi na testnom čvoru (nakon svakog

kreiranja aplikacije/modula)– Automatizirani deployment – za sada samo na razvojni čvor i

čvor za testiranje (planiramo proširiti i na produkciju)

22. siječnja 2014.

Build pipeline, Dashboard, Test

22. siječnja 2014.

Nadzor – uživo (zadnja 24h)

22. siječnja 2014.

Nadzor – analitika

22. siječnja 2014.

Preporuke za klijentske aplikacije

• Otpornost na verzioniranje – Reprezentacija resursa (request content type, response

content type, accept header)– “Rok trajanja”

• Ispravna interpretacija HTTP-a– Metode– Status kodovi

• Detaljno logiranje zahtjeva i odgovora– Praćenje rada aplikacije

– Automatizacija ponovnog slanja zahtjeva

22. siječnja 2014.

Kako je implementiran ISVU REST API?

Estera Prendivoj, [email protected]