arrow

Kategorie

Main news photo

21.09.2019 / Almexoft w mediach

Wybór stosu technologicznego i baz danych do tworzenia oprogramowania dla przedsiębiorstw

Nikita Wasiliew, CTO Almexoft

Rozpoczynając tworzenie oprogramowania korporacyjnego, ważne jest, aby zrozumieć, jaki stos technologiczny można wykorzystać do rozwiązania problemów dużego przedsiębiorstwa, jakie kluczowe wskaźniki produktu programowego są ważne dla klienta?

Rzeczywiście, wybór nowego oprogramowania przez duże przedsiębiorstwo jest raczej powolnym procesem, w którym ponad 50% pracy jest wykonywanej na etapie analizy warunków wstępnych. Wynika to z głównych wyzwań współczesnego świata – wysokiego stopnia automatyzacji oraz szybkiego dostosowywania procesów i systemów do potrzeb klientów i rynku. W związku z tym technologie wykorzystywane przy tworzeniu oprogramowania muszą zapewniać wysoką stabilność, gwarantowaną ciągłość w długim okresie czasu, skalowalność oraz, co najważniejsze, powtarzalność i przenośność infrastruktury.

Nikita Wasiliew

An expert with 20 years of experience in the IT field. Under his leadership, many solutions for business automation have been implemented (including for Altium, Alfabank, Kazakhmys, Visa International)

Nie będę szczegółowo analizował wszystkich języków i platform do tworzenia oprogramowania korporacyjnego, a jedynie omówię własne pozytywne doświadczenia naszej firmy, zdobyte podczas rozwoju projektów, m.in. Almexoft – Java EE. Rzeczywiście, Java EE jest bardzo szeroko stosowana, zwłaszcza w dużych firmach. Jedną z zalet jest to, że platforma składa się z zestawu standardów, które gwarantują zgodność z wcześniejszymi wersjami. Nawet starsze aplikacje J2EE będą nadal działać pomyślnie. To zawsze był mocny argument dla firm planujących długoterminowe plany. Aplikacje oparte na Java EE API mogą działać na wszystkich serwerach Java EE. Aplikacje niezależne od dostawców umożliwiają firmom tworzenie przyszłościowego oprogramowania, które nie jest ograniczone do żadnego konkretnego produktu. Firmy wybierają Java EE ze względu na niezawodność, prostotę i wydajność platformy – powolne wykonywanie programów napisanych w Javie to mit. Nowoczesne serwery HTTP zbudowane w Javie dorównują implementacjom C/C++ pod względem wydajności (chociaż w przypadku tych pierwszych zużycie pamięci jest wyższe).

Programiści mają inne argumenty. Prosta składnia języka (pomińmy modne konstrukcje typu wyrażenia lambda), wygodna organizacja bibliotek i wysokiej jakości narzędzia do zarządzania zależnościami ułatwiają budowanie dużych projektów i podłączanie bibliotek firm trzecich, których nie brakuje. Całe społeczności zajmują się tworzeniem wysokiej jakości oprogramowania w języku Java o otwartym kodzie źródłowym. Java to inteligentna i szybka wielowątkowość, szczególnie w najnowszych wersjach platformy, oraz możliwość organizowania milionów lekkich wątków w stylu Go (Goroutines). W końcu sama wirtualna maszyna Java (JVM), która ułatwia programowanie w Scala, Groovy, Python, Ruby, JavaScript, Kotlin, Ceylon i innych językach programowania. W tym przypadku wszystko, co jest napisane np. w Pythonie, będzie dostępne w Javie i na odwrót. Wszystko to doprowadziło do powstania całej kultury branży oprogramowania dla przedsiębiorstw, w której standardy ogólnie poprawiają sytuację.

Wiele w oprogramowaniu korporacyjnym zależy również od wyboru systemu zarządzania bazą danych (DBMS).

Chociaż wszystkie DBMS wykonują to samo podstawowe zadanie — pozwalając użytkownikom tworzyć, edytować i uzyskiwać dostęp do informacji przechowywanych w bazach danych — rzeczywisty proces realizacji tego zadania jest bardzo zróżnicowany. Ponadto funkcje i możliwości każdego DBMS mogą się znacznie różnić.

Prawdopodobnie warto zacząć od Oracle (i PL/SQL).

Historia tego produktu sięga lat 70-tych, a do tej pory firma o tej samej nazwie wypracowała sobie po prostu znakomitą reputację, stając się standardem niezawodności na rynku korporacyjnych baz danych. Najnowsza wersja Oracle jest przeznaczona dla środowisk chmurowych i może być hostowana na jednym lub kilku serwerach, co pozwala zarządzać bazami danych, które zawierają miliardy rekordów, a fizyczne zarządzanie danymi nie wpływa na dostęp do struktur logicznych. Dodatkowo bezpieczeństwo w tej wersji jest podniesione na najwyższy poziom, ponieważ każda transakcja jest odizolowana od pozostałych. Obecnie linia Oracle DBMS obejmuje kilka produktów, które są ze sobą w pełni kompatybilne, co umożliwia znalezienie maksymalnego dopasowania do zainteresowań klienta korporacyjnego. Jedynym minusem Oracle może być wysoki koszt licencjonowania baz danych. Jednak Oracle jest idealnym rozwiązaniem dla dużych organizacji, które pracują z ogromnymi bazami danych i różnorodnymi funkcjami.

Jedną z kilku popularnych opcji DBMS typu shareware jest PostgreSQL.

PostgreSQL jest często używany do obsługi baz danych portali internetowych. Będąc jednym z pierwszych opracowanych systemów zarządzania bazami danych, PostgreSQL jest teraz dobrze rozwinięty i umożliwia zarządzanie zarówno danymi strukturalnymi, jak i niestrukturalnymi. PostgreSQL może być używany na większości głównych platform, w tym na Linuksie, i świetnie radzi sobie z importowaniem informacji z innych typów baz danych za pomocą własnego zestawu narzędzi. Obecna wersja PostgreSQL jest w pełni zgodna ze standardem SQL:2011 i oferuje przetwarzanie dużych ilości danych przy jednoczesnym zwiększeniu liczby jednoczesnych użytkowników. PostgreSQL jest darmową bazą danych, więc nadaje się do projektów o ograniczonym budżecie.

Innym popularnym DBMS jest Microsoft SQL Server (i T-SQL).

Przede wszystkim jest to DBMS, którego rdzeń działa zarówno na serwerach w chmurze, jak i na serwerach lokalnych, pozwalając jednocześnie na łączenie typów używanych jednocześnie serwerów. Począwszy od wydania SQL Server 2016 firma Microsoft dostosowała produkt do działania w systemie operacyjnym Linux. Jedną z unikalnych cech wersji 2016 jest czasowa obsługa danych (tymczasowa obsługa danych), która pozwala śledzić zmiany danych w czasie, a technologia dynamicznego maskowania danych (dynamiczne maskowanie danych) zapewnia, że ​​tylko autoryzowani użytkownicy zobaczą wrażliwe dane. Ten produkt dobrze łączy się z innymi produktami firmy Microsoft i jest idealny dla dużych organizacji, które już korzystają z linii produktów firmy Microsoft. Wśród niedociągnięć produktu mogę jedynie wymienić wysoki koszt licencjonowania i dużą zasobożerność produktu, który nawet przy starannym dostrojeniu wydajności może zająć wszystkie dostępne zasoby.

MySQL to jedna z najpopularniejszych baz danych dla aplikacji internetowych.

Chociaż nie jest to system profili dla oprogramowania korporacyjnego, MySQL jest de facto standardem dla serwerów internetowych działających pod kontrolą systemu operacyjnego Linux. MySQL to darmowy pakiet oprogramowania opracowany i utrzymywany przez Oracle Corporation. Regularnie wypuszczane są nowe wersje MySQL, rozszerzające funkcjonalność i poprawiające bezpieczeństwo DBMS. Istnieją specjalne płatne wersje przeznaczone do użytku komercyjnego. Dla klientów komercyjnych dostępne jest zamówienie na nową funkcjonalność. W wersji darmowej największy nacisk kładzie się na szybkość i niezawodność, a nie na kompletność funkcjonalności, co może być zarówno zaletą, jak i wadą, w zależności od zastosowania bazy danych. Elastyczność MySQL DBMS jest wspierana przez dużą liczbę typów tabel: użytkownicy mogą wybierać między tabelami MyISAM, które obsługują wyszukiwanie pełnotekstowe, a tabelami InnoDB, które obsługują transakcje na poziomie pojedynczych rekordów. System ma wystarczający poziom niezawodności i jest idealny dla organizacji, które wymagają niezawodnego, ale bezpłatnego narzędzia do zarządzania bazą danych. Niestety, dla wersji darmowej dostępne jest tylko płatne wsparcie. Ponadto trzeba poświęcić dużo czasu i wysiłku, aby MySQL wykonywał proste zadania, podczas gdy inne DBMS robią to automatycznie.

Kolejną darmową bazą danych, która ma wersję komercyjną, jest MongoDB.

MongoDB jest przeznaczony dla aplikacji korzystających zarówno z danych strukturalnych, jak i niestrukturalnych. Ze względu na fakt, że MongoDB nie został pierwotnie zaprojektowany do obsługi relacyjnych modeli danych (chociaż może), mogą wystąpić problemy z wydajnością podczas próby użycia MongoDB w ten sposób. Jednak MongoDB może dobrze sobie radzić tam, gdzie inne DBMS są powolne lub bezsilne.

Coraz częściej rozwiązania kolumnowe, takie jak Vertica czy SAP HANA, są wykorzystywane do przetwarzania gigantycznych ilości informacji.

Ten ostatni na przykład obsługuje SQL, OLTP i OLAP, podczas gdy jądro SAP HANA zmniejsza zapotrzebowanie na zasoby dzięki zastosowaniu kompresji. Jednocześnie dane są przechowywane w pamięci, co w niektórych przypadkach znacznie skraca czas dostępu. Rozwiązania kolumnowe są idealne do przechowywania, pobierania i statystycznej analizy informacji w wielu warstwach pamięci masowej i są niezbędne do tworzenia hurtowni danych przedsiębiorstwa (DWH). Wadą jest wysoki koszt licencji, nawet jeśli mówimy o kosztach drogiego oprogramowania dla przedsiębiorstw.

Istotną rolą dla sukcesu oprogramowania korporacyjnego jest możliwość przechodzenia z jednej bazy danych do drugiej, bardziej zaawansowanej, w dłuższej perspektywie, zsynchronizowanej z rozwojem biznesu.

Kluczem do tego jest Hibernate ORM, który tworzy relacyjną relację między kodem platformy a systemem DBMS. Dzięki temu w ramach standardowej dostawy Almexoft dajemy naszym klientom możliwość wyboru jednego z obsługiwanych DBMS:

  • Oracle
  • Postgre
  • Microsoft SQL Server

Podsumowując to, co zostało napisane powyżej, opierając się na moim ponad 20-letnim doświadczeniu w tworzeniu oprogramowania, chciałbym wydobyć idealny stos technologiczny, który nasza firma najczęściej poleca klientom korporacyjnym i wykorzystuje w automatyzacji procesów biznesowych i dokumentów elektronicznych Almexoft System zarządzania:

  • Java EE (AOP, EJB, ORM)
  • DBMS Oracle/Postgree
  • REST/Thrift API
Nikita Wasiliew CTO Almexoft

Łatwa automatyzacja dzięki Almexoft!

Używamy plików cookie, aby spersonalizować Twoje doświadczenia na naszej stronie internetowej. Kontynuując korzystanie z tej strony, zgadzasz się na naszą politykę politykę plików cookie.