Ideea de a oferi șansa utilizării unui vehicul celor care nu dețin unul a luat amploare în Europa, încă din 1987. Atunci oamenii au început să reevalueze costurile reale ale deținerii unui autovehicul, comparativ cu timpul efectiv de utilizare aproximat la numai 8 zile pe an.
Piața de servicii tip car sharing este disponibilă în peste 1000 de orașe, iar în Europa a demarat puternic în Berlin, München și Viena. Noi credem că tehnologia și inovația au capacitatea de a îmbunătăți calitatea vieții, iar această viziune se regăsește în proiectele în care ne-am implicat și pe care le dezvoltăm. Serviciile pentru mobilitate distribuită nu aduc beneficii doar din punct de vedere al costurilor, dar micșorează și impactul negativ asupra mediului înconjurător, prin comparație cu deținerea personală de automobile.
În 2016 am avut experiența construirii unui site clasic B2C pentru închiriere de mașini, iar recent am finalizat un proiect de car lease sharing B2B și B2C. Dezvoltăm în cadrul companiei soluția inovativă ParkingPlus din 2014.
Complexitatea proiectului ne-a oferit oportunitatea de a propune soluții la nivel tehnic, fiind vorba de un startup de tip one-stop-shop, care oferă mașini, finanțare și întreținere. Mai interesant e acționariatul startupului, un parteneriat între o bancă și o firmă producătoare de automobile din Europa.
Startupul în chestiune utilizează tehnologii de top pentru a redefini mobilitatea, fiind sprijinit financiar de compania mamă, o instituție financiară cu footprint global. Compania propune mijloace de transport care permit oricui să ajungă din punctul A în B, fie că vorbim despre călătorii în interes de serviciu sau private. Rata deținerii unei mașini este foarte mică în Europa, iar partenerii noștri au venit cu soluții personalizate pentru fiecare client și nevoile acestuia, profitând de avantajul digitalizării.
În zona B2C această idee ajută clienții finali să găsească un grup de utilizatori care împreună să poată achiziționa o mașină în leasing. Conceptul de car sharing este mutat și în zona de shared leasing! Nu mai împarți doar mașina, ci și ratele pentru aceasta. Întregul concept își propune să fluidizeze traficul și să extindă posibilitățile de închiriere auto oferite clienților finali. În plus, totul este extrem de digitalizat, începând chiar cu deschiderea mașinilor, verificarea disponibilității mașinii sau suplimentarea creditului de timp, activități pe care le poți face direct de pe smartphone.
Car sharingul este gândit pentru a ușura viața consumatorului care trebuie să facă doar trei pași, să se înregistreze, să rezerve mașina dorită și să o conducă. Această ușurință se bazează pe o infrastructură bine gândită, și pe capacitatea managerului flotei de automobile de a înțelege complexitatea infrastructurii și de a oferi suportul operațional necesar.
Din punct de vedere tehnic, infrastructura este bazată pe servicii de back-end puse la dispoziție de o platformă whitelabel, sistemul asigurând și partea de back-office (administrare) pentru toate aplicațiile cu care interacționează clienții din această zonă.
Arhitectura sistemului este una bazată pe microservicii, întregul sistem fiind împărțit în mai multe microservicii specifice. Partea de integrare și livrare continuă este asigurată prin intermediul Amazon Web Services și Docker. Astfel, fiecare microserviciu este o entitate independentă încapsulată într-un container de Docker, lucru care ușurează procesul de actualizare și de scalare a acestuia. Împărțirea permite sistemului să aibă un nivel de disponibilitate ridicat, în cazul utilizării de către un număr mare de utilizatori, prin scalarea independentă prin load balancing a serviciilor afectate.
Microserviciile au fost gândite ca o arhitectură clasică pe nivele, implementată cu ajutorul Spring: Spring Data pentru partea de acces la date, Spring Services pentru partea de business logic, spre exterior expunându-se REST Controllers, API-urile fiind documentate cu ajutorul Swagger. Ca limbaj principal s-a utilizat Java 8, dar s-a dorit ca sistemul să funcționeze asincron, așa că s-a adăugat RxJava. Dezvoltarea propriu zisă_ este ușurată de utilizarea numeroaselor librării, fie ele third-party (pentru mailing, PDF templating, reducerea codului repetitiv) sau dezvoltate și actualizate in-house.
Se deosebesc două tipuri principale de microservicii în sistem, după cum se poate vedea și pe diagrama atașată: cele de tip service (de pe nivelul inferior) și cele de tip gateway (de pe nivelul superior).
Microserviciile de tip service au drept caracteristică distinctivă faptul că interacționează în mod direct cu date persistente (în cazul de față baze de date PostgreSQL, respectiv date indexate în ElasticSearch). Aceste microservicii se ocupă de partea de business logic a aplicației, logică împărțită astfel: un microserviciu pentru gestionarea datelor legate de utilizatori (account), altul pentru gestionarea datelor legate de flotele de autoturisme (fleet) altele pentru partea financiară, partea de documente, de rezervările de autoturisme, dar și de taskuri recurente ce necesită rulare într-un sistem complex precum cel de față.
Microserviciile de tip gateway reprezintă punctele de interacțiune cu numeroase aplicații client. Acestea au scopul de a asigura o mare parte a securității, a selecției datelor ce se doresc a fi trimise înspre aplicațiile client, respectiv a delegării funcționalităților către microserviciile de tip service. În momentul de față există trei astfel de microservicii: unul care asigură delegarea apelurilor dinspre clientul de back-office și, implicit, partea de administrare a sistemului, unul pentru apelurile dinspre site-urile web și unul pentru cele dinspre aplicațiile mobile.
În timp ce front-endurile aplicațiilor client conectate la sistem au fost dezvoltate utilizând ReactJs și Redux, o mențiune notabilă ar fi stiva tehnologică a aplicației de car leasing, care a fost gândită inițial ca o aplicație de sine stătătoare (cu back-end și nivel propriu de persistență, spre deosebire de ceilalți clienți) și abia apoi integrată în sistem. Aceasta a fost dezvoltată utilizând frameworkul Play, Java 8, o arhitectură de tip MVC. Nivelul de mapare obiect-relațional a fost asigurat de EBean, iar trimiterea de e-mailuri asigurată de actori Akka.
Aceste aplicații au fost rezultatul unor echipe inter-funcționale, prezente în două zone geografice, gestionate în modelul Agile Scrum, cu tehnologii ajutătoare precum Jira pentru ținerea evidenței taskurilor, Confluence pentru centralizarea specificațiilor, GitLab pentru asigurarea unor pipeline-uri de bază.
Deși poate la prima vedere tehnologiile folosite sunt numeroase, totul unitar la care s-a ajuns ca rezultat ușurează semnificativ atât administrarea autoturismelor deținute de către o companie, punerea lor în folosința publicului larg (alte companii sau direct persoane fizice), precum și utilizarea propriu-zisă a lor de către utilizatorii finali ai aplicației.
Trăim în era vitezei, dar străzile sunt încă sufocate de mașini. În București sunt mai multe mașini la mia de locuitori decât în Paris. Majoritatea romanilor preferă să stea la volan pentru a ajunge la destinație, în detrimentul celorlalte mijloace de transport. Exista deja mai multe soluții implementate în Cluj-Napoca și în București care oferă serviciul de acces la o mașină cu un cost lunar mai mic decât o rată de leasing. Rămâne de văzut dacă o soluție precum cea descrisă, cea de a împărți acel cost de leasing, ar fi una viabilă și pentru piața românească atât la nivel B2B cât și la nivel B2C.
de Ovidiu Mățan
de Ovidiu Mățan
de Dan Sabadis