Świat otwartych obiektów

Krakowska firma Soneta opracowała dla platformy .Net bibliotekę funkcji biznesowych, którą wraz ze zbudowanym na jej bazie systemem enova udostępnia partnerom tworzącym nowe moduły.

Krakowska firma Soneta opracowała dla platformy .Net bibliotekę funkcji biznesowych, którą wraz ze zbudowanym na jej bazie systemem enova udostępnia partnerom tworzącym nowe moduły.

Krakowska firma Soneta, jak większość producentów oprogramowania dla firm, stanęła kilka lat temu przed dylematem wyboru długofalowej strategii technologicznej. Po kilku przymiarkach firma zdecydowała się stworzyć własne narzędzia do budowy aplikacji. Opracowana przez nią biblioteka funkcji biznesowych jest koncepcyjnie podobna do ADO .Net i wykorzystuje platformę .Net Microsoftu jako fundament.

Biblioteka posłużyła firmie do stworzenia systemu enova wspomagającego zarządzanie firmą. Nie tylko małą czy średnią - system wdraża właśnie Huta Szczecin SA. Zaskakująca jest przy tym otwartość Sonety na współpracę z innymi producentami oprogramowania. Wspomniane wdrożenie jest realizowane wspólnie z firmą Overtura.cz - producentem systemu obsługi produkcji.

Wraz z systemem enova biblioteka Soneta jest także udostępniana partnerom, którzy dzięki niej mogą łatwo i tanio rozbudowywać system enova o własne specjalizowane moduły.

Ta niecodzienna jak na polski rynek oprogramowania biznesowego strategia okazała się dla firmy zbawienna. Soneta ma ok. 60 partnerów w całym kraju i cieszy się wsparciem Microsoftu.

Lekarstwo własnej roboty

Dylemat Sonety polegał na tym, jak tworzyć innowacyjne oprogramowanie szybko i niedrogo. Narzędzia oparte na C/C++ dawały elastyczność, jednak trudno było mówić o wygodzie czy szybkości. Z kolei języki wysokiego poziomu nie dawały zaś zbyt wiele swobody przy tworzeniu skomplikowanej logiki.

Świat otwartych obiektów

Marcin wojas, współzałożyciel firmy Soneta, a jednocześnie główny architekt biblioteki Soneta i systemu enova

"Języki 4GL, oprócz tego, że są przywiązane do jednej bazy danych, dają w efekcie mało wydajny kod. Poza tym przy ich pomocy wielu rzeczy po prostu nie da się napisać. Języki niskopoziomowe, jak C czy C++, dają znacznie więcej swobody, ale ceną jest czas poświęcany na pisanie kodu i usuwanie błędów. Wie to każdy, kto kiedykolwiek próbował opisać w C jakąś poważniejszą funkcję biznesową, np. procedurę obsługi zasiłków chorobowych. Dążyliśmy do tego, by mieć jakość i wygodę pracy jak przy 4GL, a jednocześnie elastyczność języków niskiego poziomu" - mówi Marcin Wojas, współzałożyciel Sonety.

Jednym z etapów dochodzenia do stworzenia własnej technologii był stworzony przez Microsoft w latach 90. pakiet J++ łączący wygodę języka Java z integracją z platformą Windows. "J++ było atrakcyjną propozycją. Można było tworzyć zarządzany kod logiki w Javie, a jednocześnie mieć «windowsowe» okienka. Na dodatek całość była wydajna, czego o Javie nawet teraz nie można do końca powiedzieć. No, ale Microsoft wdał się w spór z Sunem i J++ zostało zarzucone. Na szczęście w tym czasie pojawił się .Net" - opowiada perypetie firmy Marcin Wojas.

Tak zrodził się pomysł, by na bazie architektury .Net - oferującej wiele możliwości analogicznych do tych, które oferuje platforma Java - stworzyć własny świat obiektów biznesowych. Takich, które będzie można w przyszłości łatwo wykorzystać, i których listę będzie można w miarę potrzeb rozszerzać o nowe.

Microsoft i nie tylko

Wzorcem dla programistów Sonety była technologia Microsoft ADO .Net. Przykładowo, obiekt connection obrazuje sesję, obiekt table to tabela będąca zbiorem obiektów biznesowych, zaś row, czyli rekord to pojedynczy obiekt biznesowy. Soneta "dziedziczy" też po ADO .Net podejście do transakcyjności - transakcyjny jest jedynie zapis danych w bazie. "Dzięki temu prostemu zabiegowi udało nam się upiec dwie pieczenie na jednym ogniu: zadowalającą wydajność nawet na słabym sprzęcie, a jednocześnie dużą skalowalność środowiska aplikacyjnego" - wyjaśnia Marcin Wojas.

Świat otwartych obiektów

System Enova zbudowany na bazie biblioteki Soneta pozwala partnerom i klientom na łatwe tworzenie własnej funkcjonalności.

Aby stworzyć nowy moduł, programista określa najpierw strukturę danych, przygotowując dokument XML. XML stanowi reprezentację obiektów biznesowych, które w późniejszym czasie zaistnieją w bazie danych. Dostarczony wraz z pakietem SDK generator generuje z XML tabele i relacje w bazie danych. Co ciekawe, generator potrafi współpracować nie tylko z bazą MSDE/SQL Server, ale także z MySQL. "Z moich doświadczeń wynika, że w małych firmach Windows króluje na desktopie, ale na serwerach jest już różnie, zwłaszcza ostatnio" - mówi Marcin Wojas. Soneta współpracuje nawet z plikowymi bazami Clarion. Firma postąpiła roztropnie i nie stworzyła sterownika, lecz opracowała dla nich interpreter języka SQL. Warstwa dostępu do danych jest więc taka sama dla wszystkich baz.

Oprócz struktur danych dostarczany wraz z Sonetą generator tworzy klasy .Net odwołujące się do tych struktur i wymuszające typy danych, w efekcie czego kod jest znacznie bezpieczniejszy.

Sprytne dokumenty

Interesująca jest warstwa prezentacji systemu Soneta/enova, opierająca się na technologii Microsoft Smart Documents (SmartDocs). Główne okno systemu, jak również znajdująca się po prawej stronie ekranu ramka enova Explorer są tak naprawdę zbiorem list będących obiektami biznesowymi .Net. "Microsoft okazał się bardzo pomocny - ich konsultanci pomogli nam opracować interfejs do obsługi SmartDocs. Trzeba spędzić nieco czasu, zanim zrozumie się zasady działania interfejsów API Microsoft Office - odpowiadają za nie te same biblioteki, które zarządzają obiektami SmartTags. Gdy przebrnie się przez ten najtrudniejszy etap, wszystko idzie jak z płatka" - twierdzi Marcin Wojas. Definiowanie interfejsu użytkownika dla nowych modułów trzeba na razie dokonywać w Visual Studio .Net. Soneta pracuje już jednak nad tym, aby użytkownicy mogli definiować ekrany bez tak zaawansowanego narzędzia.

Wygodnie rozwiązano kwestię wydruków - oprogramowanie generuje formularze zgodne z ADO .Net. Przygotowanie dokumentów do druku odbywa się za pośrednictwem biblioteki Print Template zawartej w przeglądarce Internet Explorer, dzięki czemu unika się problemów z błędami interpretacji HTML (generowanego za pomocą innych narzędzi) w IE. Dzięki zastosowaniu takiej techniki wydruki można od razu publikować w intranecie/Internecie.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200