The form has been successfully submitted.
Please find further information in your mailbox.
Select language
Innowise przeprowadziło kompleksową refaktoryzację kodu platformy i znacznie uprościło proces integracji nowych interfejsów API.
Branża
Podróż
Region
UE
Klient od
2023
Nasz klient, znaczący gracz w branży turystycznej, obsługuje globalny system dystrybucji (GDS) do wystawiania biletów promowych i innych usług turystycznych. Ta aplikacja internetowa jest pojedynczym punktem kontaktowym do zarządzania różnymi rezerwacjami promowymi, w tym podróżami na długich i krótkich dystansach, typami wielomiejscowymi, a nawet złożonymi trasami z wieloma przesiadkami.
Szczegółowe informacje o kliencie nie mogą zostać ujawnione zgodnie z warunkami umowy NDA.
Ten klient był ograniczony przez swój obecny rozmiar rynku i chciał się dalej rozwijać. Aby osiągnąć tę ekspansję, zamierzał skonfigurować integracje API z biurami podróży.
Dodatkowo, brak ustrukturyzowanej dokumentacji architektury oprogramowania był istotnym problemem. Luka ta doprowadziła do kilku wyzwań, takich jak wprowadzenie nowo zatrudnionych członków zespołu, utrzymanie wspólnego zrozumienia systemu wśród różnych interesariuszy i płynne wdrażanie nowych funkcji produktu.
W związku z tym klient zwrócił się do nas w sprawie integracji API i stworzenia kompleksowej architektury dokumentacji oprogramowania.
Innowise zapewniło modernizację i optymalizację aplikacji internetowych Integracje API z biurami podróży, aby podnieść jakość usług promowych w całej Europie.
At the outset, we began by conducting extensive interviews with the client’s development team and stakeholders. This approach ensured that we captured the essence of what they needed.
Dzięki temu bogactwu informacji postanowiliśmy zaprojektować intuicyjną i zrozumiałą strukturę dokumentacji. Dokumentacja obejmowała wszystko, od wysokopoziomowych przeglądów systemu po szczegóły na poziomie kodu. Włączyliśmy diagramy, schematy blokowe i elementy interaktywne, aby uczynić ją informacyjną i wciągającą.
But it wasn’t just about creating a static document. In our experience, the best documentation is one that lives, breathes, and evolves with the system it describes. So, we implemented a dynamic documentation process that would be continuously updated as the system grew and changed. This living document approach ensured that the documentation was always updated.
Ponadto skupiliśmy się na tym, aby dokumentacja była dostępna i zrozumiała dla wszystkich zaangażowanych stron. Oznaczało to unikanie żargonu, używanie jasnego i zwięzłego języka oraz zapewnienie, że interesariusze techniczni i nietechniczni znajdą w niej wartość.
In essence, by establishing this comprehensive software documentation architecture, we didn’t just lay the groundwork for the current project, we provided the client with a tool that would aid in future development, onboarding new team members, and facilitating clear communication among all parties involved. It was the cornerstone upon which all further developments were built.
Upon diving into the client’s existing system, we found the deprecated version of Java with code duplications and outdated practices. The initial architecture, a monolithic application, had served its purpose in the early stages. However, as the platform grew, this approach showed its limitations. Scalability became arduous, and the codebase became a confusing maze that was increasingly difficult to navigate and update without introducing new bugs.
Based on our analysis, we determined that transitioning to a microservices architecture was necessary. Microservices offered a solution to the monolithic system’s scalability and agility problems. Each microservice in this architecture operates independently, which means that changes made in one service do not directly impact others. This independence is crucial for a system like our client’s, where frequent updates and integrations are the standard.
The migration to a microservices architecture was not an overnight process. Instead, we adopted an incremental approach, carefully dismantling the monolithic structure and reassembling it into a more dynamic, microservices-based architecture. This method allowed us to maintain system functionality throughout the transition, avoiding any significant downtime that could adversely affect our client’s operations.
Starannie wyodrębniliśmy każdą usługę, dopracowaliśmy ją i wdrożyliśmy niezależnie. Nasi programiści rozdzielili usługi takie jak rezerwacja biletów i zarządzanie planami podróży na odrębne jednostki. Oznaczało to, że na przykład aktualizacje systemu zarządzania planami podróży mogły być wprowadzane bez ryzyka niezamierzonych konsekwencji w systemie rezerwacji.
Do tej transformacji wykorzystaliśmy Spring Boot i Spring Cloud. Spring Boot ułatwił konfigurację mikrousług, przyspieszając rozwój. Spring Cloud oferował cenne narzędzia dla systemów rozproszonych, takie jak zarządzanie konfiguracją i wykrywanie usług.
Zintegrowaliśmy również Kafkę jako naszego brokera wiadomości. Jego zdolność do obsługi dużych ilości danych i zapewnienia niezawodnej komunikacji między usługami była kluczowa, zwłaszcza biorąc pod uwagę duży przepływ danych w nowej architekturze.
Wreszcie, wdrożyliśmy nowe mikrousługi na najnowszej wersji Javy. Ta aktualizacja przyczyniła się do lepszej wydajności i zwiększonego bezpieczeństwa, tworząc silny i nowoczesny fundament dla całej architektury.
As we refined and enhanced our client’s system, we identified the need for a more efficient way to handle new integrations. This led to the development of a specialized processing module, a pivotal addition to the system that brought about substantial improvements in the integration process.
Jednym z głównych wyzwań, przed którymi stanęliśmy, był powtarzalny charakter procesu pisania kodu dla każdej nowej integracji. Przed opracowaniem tego modułu przetwarzania, każda nowa integracja z innym biuro podróży lub usługa wymagało znacznej ilości kodu napisanego od podstaw.
The processing module we developed was designed to act as a versatile interface between our client’s system and external APIs. This module consists of pre-built, customizable templates and tools that significantly reduce the need to write new code for each integration. It works by abstracting standard functionalities and processes typically involved in integrating with various travel services, such as ticket booking systems or customer databases.
Moduł zawiera kilka kluczowych funkcji:
Afterward, we integrated our client’s GDS with 4 travel agencies that used REST and SOAP exchange mechanisms. These integrations were crucial for improving the ticket booking, modification, and cancellation processes for ferry services. Our challenge was to create an integration framework capable of managing a diverse range of ferry bookings, including different routes, seating configurations, and supplementary services.
Implementing these integrations involved several critical steps. Initially, we sifted through agencies’ APIs to understand their data structures and functional demands. Leveraging our newly developed processing module, we created customized connectors for each agency. These connectors were tailored to handle each agency’s specific data formats and operational workflows, ensuring fluid data integration with our client’s GDS.
Proces ten obejmował wdrożenie zaawansowanych narzędzi do mapowania i transformacji danych w ramach naszego modułu przetwarzania. Technologia ta odegrała kluczową rolę w zapewnieniu integralności i spójności danych. Nasz zespół przeprowadził szeroko zakrojone testy, aby zweryfikować skuteczność i niezawodność tych integracji. Symulowaliśmy różne scenariusze rezerwacji, aby przetestować integracje w różnych warunkach. Po udanych testach wdrożyliśmy integracje w środowisku rzeczywistym, ustanawiając mechanizmy ciągłego monitorowania w celu nadzorowania ich wydajności i szybkiego rozwiązywania wszelkich problemów.
Back-end
Java 17, Spring, Spring Boot, Spring Cloud, Hibernate
API
REST, SOAP
Przechowywanie danych
PostgreSQL, Memcached
Brokerzy wiadomości
Kafka
DevOps
Rurociągi CI/CD GitLab
Usługi
Gitlab, Jira, Confluence
Stworzyliśmy dokument Vision & Scope, aby dostosować cele projektu do oczekiwań klienta w początkowej fazie. Dokument ten ustanowił fundament projektu poprzez zrozumienie celów klienta i wyzwań systemowych.
Następnie opracowaliśmy dynamiczną, łatwą do zrozumienia dokumentację, zaprojektowaną tak, aby ewoluowała w synchronizacji z projektem, optymalizując w ten sposób komunikację w zespole i usprawniając proces wdrażania.
Tutaj skupiliśmy się na wdrożeniu architektury mikrousług i stworzeniu modułu przetwarzania. Ta faza pokazała naszą wiedzę techniczną, czego rezultatem była dopracowana architektura systemu i w pełni funkcjonalny moduł przetwarzania.
Wykorzystując moduł przetwarzania, płynnie zintegrowaliśmy interfejsy API biur podróży. Rygorystyczne testy zapewniły niezawodność systemu i zwiększoną funkcjonalność.
Microsoft Teams był naszym głównym narzędziem komunikacyjnym, usprawniającym dyskusje, aktualizującym udziały i utrzymującym centralne repozytorium informacji. Korzystaliśmy z Jira, aby utrzymać organizację i efektywne zarządzanie przepływem pracy w celu śledzenia zadań.
4
Inżynierowie zaplecza
1
QA Engineer
1
Kierownik zespołu
1
Kierownik projektu
1
Architekt oprogramowania
1
Analityk biznesowy
1
Kierownik ds. dostaw
Following the successful implementation, the client’s web application exhibited remarkable performance improvements. The combination of code refactoring and the migration to a microservices architecture resulted in a notably smoother operation. This technical overhaul, coupled with the seamless integration of new services, catalyzed a substantial surge in the client’s sales.
The impact of this transformation extended beyond the financial realm. It led to significant expansion, not only in revenue but also geographical presence. This marked a momentous leap in the company’s market coverage, reinforcing its position as a prominent player in the industry. Our partnership with the client is ongoing, with more integrations on the horizon.
30%
wzrost sprzedaży
2x
zwiększenie szybkości integracji API
Zadzwoń lub wypełnij poniższy formularz, a my skontaktujemy się z Tobą po przetworzeniu Twojego zgłoszenia.
Po otrzymaniu i przetworzeniu Twojego zgłoszenia skontaktujemy się z Tobą wkrótce, aby wyszczególnić potrzeby projektu i podpisać umowę o zachowaniu poufności, aby zapewnić poufność informacji.
Po przeanalizowaniu wymagań, nasi analitycy i programiści opracowują projekt z zakresem prac, wielkością zespołu, czasem i kosztami szacunki.
Umówimy się z Tobą na spotkanie, aby omówić ofertę i dojść do porozumienia porozumienia.
Podpisujemy umowę i rozpoczynamy pracę nad projektem tak szybko, jak to możliwe.
Dowiedz się jako pierwszy o innowacjach IT i interesujących studiach przypadków.
© 2007-2025 Innowise. Wszelkie prawa zastrzeżone.
Polityka prywatności. Polityka dotycząca plików cookie.
Innowise Sp. z o.o Ul. Rondo Ignacego Daszyńskiego, 2B-22P, 00-843 Warszawa, Polska
Rejestrując się, wyrażasz zgodę na naszą Politykę Prywatności, w tym korzystanie z plików cookie i przekazywanie Twoich danych osobowych.
Dziękuję!
Wiadomość została wysłana.
We’ll process your request and contact you back as soon as possible.
Dziękuję!
Wiadomość została wysłana.
Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.