Nasze doświadczenie

Od chwili naszego powstania w 2004 roku zrealizowaliśmy sporo udanych projektów, głównie związanych z wyszukiwaniem informacji (Information Retrieval) i z systemami wspomagania decyzji (Decision Support Systems). Część z tych projektów opisano poniżej. Większość została wykonana na zamówienie wymagających klientów brytyjskich. Dla niektórych z nich pracujemy już ponad siedem lat.

 

Oprogramowanie klasyfikujące i wyszukiwawcze oparte o taksonomie

Klient: Wiodący brytyjski dostawca oprogramowania klasyfikującego i wyszukiwawczego opartego o taksonomie

Cel projektu: Rozwój zestawu aplikacji służących do następujących celów: (1) Zarządzanie taksonomiami i ontologiami; (2) Klasyfikacja dokumentów; (3) Wyszukiwanie korporacyjne.

Dostarczone rozwiązanie: Zbiór aplikacji, które mogą być zestawiane na różne sposoby, w zależności od potrzeb konkretnego klienta. Oprogramowanie jest dostarczane z rozbudowanymi wizardami i narzędziami do importu/eksportu. Obsługiwane są różne bazy danych i platformy, przy czym aplikacje na Windows dostały certyfikaty zgodności z systemem Vista.

(1) Zarządzanie taksonomiami i ontologiami: Aplikacje są zoptymalizowane pod względem wydajności i obsługują taksonomie z milionami termów; wspierają różne języki; działają zarówno w trybie desktop, jak i klient/serwer; współpracują z uznanymi formatami taksonomii i ontologii; zawierają mechanizmy typu workflow, jak również setki innych funkcjonalności.

(2) Klasyfikacja dokumentów: Ta część składa się z dwóch komponentów: Rule Creator (generuje reguły klasyfikacji na podstawie modelu semantycznego) i Document Processor (klasyfikuje dokumenty na podstawie przygotowanych reguł). Rule Creator jest zoptymalizowany pod względem jakości i prędkości oraz zdolny do inkrementalnego przetwarzania danych. W tym celu wprowadzono kilka różnych systemów cache opartych na b-drzewach i inne zaawansowane rozwiązania algorytmiczne.

(3) Wyszukiwanie korporacyjne: Wyniki klasyfikacji oraz model semantyczny mogą być przeszukiwane w czasie rzeczywistym; uzyskano to poprzez rozproszony serwis napisany w C/C++, wykorzystujący dedykowane indeksy. System jest zintegrowany z Google Search Appliance (GSA), Microsoft SharePoint oraz z innymi portalami i wyszukiwarkami.

Technologie: C/C++, Python, wxWidgets, Java/Spring, jQuery, Oracle, MySQL, MySQL Embedded, MS SQL Server, MS Windows, Linux, Solaris

Czas trwania: 332 osobomiesiące

"Umiejętności i profesjonalne podejście Tomasza pozwoliły nam na rozwiązanie wielu problemów w krótkim czasie i dlatego chętnie polecę go jako partnera w biznesie."

"Sposób, w jaki pracowaliście nad tym projektem, wywarł na mnie duże wrażenie - dziękuję. Potrafiliście współpracować i byliście bardzo profesjonalni. Szybko wdrożyliście się w pracę i umiejętnie zadawaliście pytania tam, gdzie potrzebne były dodatkowe wyjaśnienia."

System zarządzania wiedzą

Klient: Angielska instytucja edukacyjna wspierająca współpracę naukowców nad badaniami historycznymi

Cel projektu: Utworzenie platformy publikacyjnej pozwalającej użytkownikom na odkrywanie i zarządzanie powiązaniami pomiędzy badaniami własnymi i innych. Ma to być realizowane poprzez wspierane komputerowo wykrywanie odniesień do osób, miejsc, dat, wydarzeń, itd. Rozmiar i złożoność posiadanych zestawów danych wymagają zarówno wysokiej wydajności, jak i elastyczności przetwarzania.

Dostarczone rozwiązanie: System zarządzania wiedzą pozwalający użytkownikom na bardzo elastyczne definiowanie struktur danych i udostępniający wygodne narzędzia pracy z tymi danymi. System nie narzuca praktycznie żadnych ograniczeń na złożoność przechowywanych struktur, a jednocześnie pozwala na zadawanie bardzo dokładnych zapytań. Wysoka wydajność przetwarzania jest uzyskana dzięki indeksowaniu oraz przetwarzaniu rozproszonemu. Zaimplementowano zarówno desktopowe, jak i webowe interfejsy użytkownika.

Technologie: Python, MySQL, MongoDB, BerkeleyDB, wxWidgets, MS Windows, Linux

Czas trwania: 330 osobomiesięcy

"Gorąco polecam RD Projekt jako dostawcę rozwiązań informatycznych."

"Jestem wdzięczy za ciężką pracę włożoną przez zespół w dotrzymywanie terminów i mam nadzieję na dalszą współpracę."

"Macie świetny zespół pracowników."

Rozproszony pająk internetowy

Klient: Niemiecki dostawca oprogramowania do wyszukiwania informacji dla korporacji i konsumentów

Cel projektu: Firma potrzebowała systemu, który przeszukiwałby Internet w poszukiwaniu dokumentów mogących zainteresować jej klientów.

Dostarczone rozwiązanie: Wielomodułowy system, w którym główne części to moduł ściągający oraz moduł analizujący, połączone trwałymi kolejkami komunikatów. Istotnym wymaganiem była efektywność systemu, który w obecnej wersji, na czteroprocesorowej maszynie podłączonej do Internetu łączem o przepustowości 100Mbit/s, przetwarza do 200.000 stron na godzinę. Osiągnięto to poprzez uruchamianie dużej liczby żądań ściągania strony w pojedynczym procesie systemu operacyjnego, korzystając z tzw. lekkich wątków (Eventlet) i rozpraszaniu analizy na wiele procesorów (Celery + multiprocessing). Aby uniknąć wielokrotnego ściągania tej samej strony, używana jest szybka probabilistyczna struktura danych (filtr Blooma). W celu przyspieszenia ściągania dokumentów zaimplementowano buforowanie połączeń i własną obsługę zapytań DNS. System został zaprojektowany tak, aby być odpornym na awarie, tzn. wznawiać przetwarzanie od miejsca, w którym przetwarzanie zostało wcześniej przerwane. System może być zainstalowany na wielu maszynach równocześnie, w celu zwiększenia prędkości analizy dokumentów. Każdy z komputerów można oddzielnie konfigurować do wykonywania wybranego podzbioru zadań, a każde zadanie można rozproszyć na wiele maszyn. Wykorzystanie trwałych kolejek komunikatów skutkuje równoważeniem obciążenia komputerów i umożliwia bezproblemową pracę systemu w przypadku awarii części maszyn. Najbardziej efektywna konfiguracja składa się z dwóch serwerów baz danych i z czterech do sześciu maszyn ściągających i analizujących strony. W takim układzie przetwarzanych jest około 1 mln stron na godzinę.

Technologie: Python, Celery, Eventlet, LXML, ZeroMQ, MySQL, MongoDB, RabbitMQ, Bloom filters, Linux

Czas trwania: 6 osobomiesięcy

System przetwarzania dokumentów korporacyjnych

Klient: Niemiecki dostawca oprogramowania do wyszukiwania informacji dla korporacji i konsumentów

Cel projektu: Klient potrzebował systemu, który po dostarczeniu zbioru ustrukturalizowanych dokumentów w różnych formatach wybierze właściwą ścieżkę przetwarzania dla każdego z nich, a następnie dokona rozproszonego przetworzenia wszystkich dokumentów. Źródłami dokumentów mogły być m.in. bazy danych, pliki CSV i serwery Microsoft Sharepoint.

Dostarczone rozwiązanie: Dla każdego dokumentu wejściowego system wyszukuje ontologie opisujące jego schemat danych, wybierane na podstawie przestrzeni nazw z dokumentu. Następnie, poprzez dopasowanie ontologii do metadanych procedur transformacyjnych, wyliczany jest zbiór transformacji do wykonania. Po wyborze zbioru transformacji tworzony jest i zapisywany plan przetwarzania. Ten plan może być wykonywany równolegle na wielu maszynach, przy czym każda transformacja jest wykonywana niezależnie. Wyniki są łączone w paczki w celu zmniejszenia transferu danych i narzutu związanego z komunikacją. Każdy z komputerów może zostać skonfigurowany tak, aby wykonywać ustalony podzbiór zadań. Do komunikacji między maszynami używane są kolejki komunikatów. Przy użyciu odpowiednio dużej liczby maszyn system przetwarza dokumenty tak szybko, jak szybko potrafi je udostępniać źródło danych.

Technologie: Python, C++, Java, JCC, OWL, Microsoft SharePoint, Linux

Czas trwania: 9 osobomiesięcy

System rekomendacji mediów

Klient: Innowacyjny brytyjski start-up dostarczający usługi Video-on-Demand przez web i kanały mobilne

Cel projektu: Firma potrzebowała systemu, który sugerowałby widzom interesujące ich audycje.

Dostarczone rozwiązanie: System rekomendacji, który ściąga opisy audycji od dostawców treści, klasyfikuje audycje z wykorzystaniem zaawansowanych analiz tekstowych i statystycznych, a następnie rekomenduje je widzom. Ponadto zostały zbudowane specjalistyczne narzędzia z interfejsem graficznym, służące do nadzorowania i strojenia procesu klasyfikacji.

Technologie: Java, Python, wxWidgets, MySQL, MS Windows, Linux

Czas trwania: 10 osobomiesięcy

"Wykonaliście wspaniałą pracę [...] i wygląda na to, że jest to właśnie to, czego potrzebowaliśmy."

Platforma back-office dla agencji turystycznej

Klient: Jedna z największych angielskich agencji oferujących usługi hotelowe, przewozowe i konferencyjne

Cel projektu: (Patrz angielski opis tego projektu)

Dostarczone rozwiązanie: (Patrz angielski opis tego projektu)

Technologie: Java, Spring, SOAP, FireStorm/DAO, MS SQL, MS Windows

Czas trwania: 4 osobomiesiące

"Tomasz posiada wyjątkową zdolność dostarczania rozwiązań na większość platform i baz danych. Mogę polecić go każdemu potencjalnemu klientowi bez zastrzeżeń. Jakość i terminowość jego usług to korzyść dla każdego."

System Ekstrakcji Wiedzy oparty na .NET

Klient: Angielska instytucja edukacyjna wspierająca współpracę naukowców nad badaniami historycznymi

Cel projektu: (Patrz angielski opis tego projektu)

Dostarczone rozwiązanie: (Patrz angielski opis tego projektu)

Technologie: .NET, IronPython, MS Windows, wxWidgets

Czas trwania: 4 osobomiesiące

System optymalizacji kosztów zakupów

Klient: McKinsey - jedna z największych i najbardziej prestiżowych firm konsultingowych. RD Projekt był podwykonawcą na projekcie optymalizacji kosztów, realizowanym przez tę firmę dla międzynarodowej korporacji.

Cel projektu: Międzynarodowa korporacja musi kupić różne usługi w wielu miastach na całym świecie. Dla każdego miasta i usługi należy wybrać dostawcę tej usługi w tym mieście - w ten sposób, aby wszystkie usługi zostały zapewnione, a ich globalny koszt był możliwie najniższy. Celem projektu było stworzenie systemu automatycznie rozwiązującego tak postawiony problem. Dostawcy oferowali rabaty uzależnione od ilości zakupionego towaru i to czyniło problem skomplikowanym ("NP-trudnym"), ponieważ rozwiązanie optymalne lokalnie niekoniecznie było częścią rozwiązania globalego.

Dostarczone rozwiązanie: Optymalizator genetyczny, który znajduje najlepsze (lub prawie najlepsze) rozwiązania dla różnych scenariuszy i warunków wybranych przez użytkownika.

Technologie: C++, Python, VBA, MS Windows

Czas trwania: 2 osobomiesiące

System monitorujący internetowy wizerunek marek

Klient: Polska agencja monitorująca media, świadcząca usługi dla wielu dużych firm

Cel projektu: Agencja potrzebowała systemu, który systematycznie przeglądałby wybrane serwisy internetowe i informował operatora o pojawieniu się nowych artykułów (lub komentarzy czytelników) spełniających podane kryteria. Zbiór monitorowanych serwisów oraz kryteria miały być w pełni konfigurowalne.

Dostarczone rozwiązanie: Aplikacja składająca się z modułów Pająk internetowy, Analizator tekstu i GUI. Zawartość każdego serwisu jest okresowo sprawdzana i następuje identyfikacja artykułów spełniających kryteria zdefiniowane przez operatora.

Technologie: C++, wxWidgets, MS Windows

Czas trwania: 2 osobomiesiące

Rozszerzenie komunikatora internetowego o funkcjonalność VoIP realizowaną przy pomocy GIPS Voice Engine

Klient: Firma obsługująca jeden z najpopularniejszych komunikatorów (ponad 6 milionów użytkowników)

Cel projektu: Realizowane we własnym zakresie próby implementacji VoIP nie dawały zadowalającej jakości dźwięku, więc zadecydowano o użyciu GIPS Voice Engine.

Dostarczone rozwiązanie: GIPS zintegrowany z komunikatorem w sposób zapewniający kompatybilność ze starszymi wersjami komunikatora.

Technologie: C/C++, MS Windows

Czas trwania: 2 osobomiesiące

Dodatkowe moduły do systemu zarządzania portfelem

Klient: Opera (www.opera.pl) - polska grupa finansowa oferująca fundusze inwestycyjne oraz usługi maklerskie i zarządzania aktywami

Cel projektu: (Patrz angielski opis tego projektu)

Dostarczone rozwiązanie: (Patrz angielski opis tego projektu)

Technologie: C#, MS SQL Server

Czas trwania: 1 osobomiesiąc


Członkowie zespołu RD Projekt posiadają również duże doświadczenie wyniesione ze swoich poprzednich firm, związane z tworzeniem złożonych systemów dla europejskich i amerykańskich klientów. Przedsięwzięcia te są opisane poniżej. Należy pamiętać, że nie są one projektami firmy RD Projekt, tylko takimi, w które pracownicy RD Projekt byli głęboko zaangażowane jako kluczowi wykonawcy.

Hurtownia danych do analiz zachowań użytkowników komunikatora internetowego

Klient: Właściciel jednego z największych polskich komunikatorów internetowych

Technologie: Hadoop, Hive, Linux

Inteligentna wyszukiwarka internetowa

Klient: amerykański inwestor

Technologie: Java, Oracle

System wspierający wykrywanie nadużyć w Internecie

Klient: Pinkerton (duża amerykańska agencja detektywistyczna)

Technologie: Java, Oracle

Systemy optymalizacji sprzedaży i marketingu

Klient: amerykańskie instytucje

Technologie: Java, Oracle

Terminale oparte na Linuksie

Klient: europejski inwestor

Technologie: C

System optymalizacji marketingu

Klient: PKN Orlen S.A.

Technologie: PHP.MVC, MS SQL Server with Analysis Services, Transact-SQL

Systemy kontrolingu i raportowania sprzedaży

Klient: PGNiG S.A.

Technologie: Oracle Express, Visual Basic, Oracle Financial Analyzer

System kalkulacji kosztów metodą ABC

Klient: duży polski operator telekomunikacyjny

Technologie: ASP, VB, C++

Aplikacje związane z konsolidacją rachunków bankowych (zarządzaniem płynnością), bankowością internetową i przetwarzaniem płatności

Klient: duży międzynarodowy bank

Technologie: J2EE, Oracle

© RD Projekt 2012. Wszystkie prawa zastrzeżone