OPROGRAMOWANIE OPEN SOURCE W ZASTOSOWANIACH BIZNESOWYCH

Wielkość: px
Rozpocząć pokaz od strony:

Download "OPROGRAMOWANIE OPEN SOURCE W ZASTOSOWANIACH BIZNESOWYCH"

Transkrypt

1 Politechnika Poznańska Wydział Informatyki i Zarządzania Instytut Informatyki Praca dyplomowa magisterska OPROGRAMOWANIE OPEN SOURCE W ZASTOSOWANIACH BIZNESOWYCH Robert Nowak Promotor dr inż. Marek Mika Poznań, 2007 r.

2

3 Spis treści 1 Wstęp 2 2 Informatyzacja przedsiębiorstwa 4 3 Oprogramowanie Open Source Dwie ideologie Licencjonowanie oprogramowania Open Source Prawa autorskie Licencjonowanie Najpopularniejsze licencje Open Source GNU Genereal Public Licence GNU Lesser General Public License Creative Commons Licenses Mniej restrykcyjne licencje Otwarte i zamknięte oprogramowanie w praktyce Bezpieczeństwo dojrzałych aplikacji Komercyjne wykorzystanie Open Source Popularność ruchu Open Source Historia powstania Zintegrowany System Informatyczny System Zarządzania Treścią Wybrane rozwiązanie Wymagania Przydatne adresy Rozwiązania konkurencyjne Planowanie Zasobów Przedsiębiorstwa Wybrane rozwiązanie Wymagania sprzętowe Portal Informacyjny Wybrane rozwiązanie Wymagania Rozwiązania konkurencyjne Pakiet biurowy Wybrane rozwiązanie Otwarty standard pliku Wymagania sprzętowe Rozwiązania konkurencyjne I

4 II 4.5 Komunikacja Poczta elektroniczna Rozmowy tekstowe Rozmowy głosowe Platforma integracyjna Metody integracji Zaprogramowana integracja Wymagania sprzętowe Zakończenie 65 Literatura 66

5 1

6 Rozdział 1 Wstęp Oprogramowanie biznesowe jest w chwili obecnej szeroko stosowane wśród dużych firm. 58% pieniędzy wydanych na informatykę w roku 2005, pochodziło od około największych (zatrudniających powyżej 250 pracowników) polskich przedsiębiorstw[opa07]. Wśród małych i średnich zakładów pracy, inwestycje w nowoczesne technologie nie stoją na tak wysokim poziomie ich udział w wydatkach na rynku oprogramowania wynosi zaledwie 13% (rysunek 1.2). Dzieje się tak mimo tego, że łączna liczba posiadanych przez nie komputerów (1,7 mln sztuk), jest znacznie większa niż we wspomnianych dużych przedsiębiorstwach (niecałe 700 tysięcy, dokładny rozkład pokazano na rysunku 1.1). Jeśli nawet uznać, że przy zatrudnieniu poniżej 10 osób, niepotrzebne jest specjalistyczne oprogramowanie biznesowe, pozostaje jeszcze 900 tysięcy komputerów w firmach, w których pracuje od 10 do 249 osób. Trzynastoprocentowy współczynnik wydatków na informatyzację, jest w Polsce dwukrotnie niższy niż w firmach o podobnej wielkości w krajach Europy Zachodniej[Opa07]. Analizując powyższe dane i mając na uwadze wzrost, jakiego doświadcza polska gospodarka od momentu wejścia do Unii Europejskiej, można założyć, że rodzime firmy posiadają i będą chciały wykorzystać spory potencjał rozwoju. Przyczyną obecnego umiarkowanego zainteresowania, może być przeświadczenie o dużych nakładach finansowych, wymaganych do uzyskania wysokiej jakości systemu informatycznego, a także brak wiedzy na temat możliwych do osiągnięcia długofalowych zysków. Chęć wpłynięcia na poprawę tego stanu wiedzy stała się motywacją do napisania tej pracy. Praca Oprogramowanie Open Source w zastosowaniach biznesowych ma na celu zaprezentowanie osobom podejmującym decyzje w małych i średnich przedsiębiorstwach wymiernych zysków, Rysunek 1.1: Liczba komputerów działających w Polsce w 2005 r.[opa07] 2

7 Wstęp 3 Rysunek 1.2: Struktura rynku IT w Polsce według szacunkowych wydatków w 2005 r.[opa07] możliwych do uzyskania dzięki zastosowaniu oprogramowania biznesowego, a następnie przedstawienie przykładowych rozwiązań Open Source, jako znacznie tańszej, choć niekoniecznie uboższej alternatywy dla aplikacji oferowanych przez twórców oprogramowania komercyjnego. Źródłem wiedzy koniecznej do poznania tematu była głównie anglojęzyczna literatura dotyczącą oprogramowania, wspierana artykułami tworzonymi przez cieszące się dobrą renomą w świecie informatyki postacie, a także materiałami informacyjnymi producentów aplikacji. Poza częścią teoretyczną, jaką jest dokument zawierający informacje i przemyślenia zebrane podczas analizy biznesowego oprogramowania Open Source, powstała również część praktyczna pracy. Jest nią system informatyczny, dostarczany na płycie DVD, będący gotową do uruchomienia instalacją wybranych aplikacji. Każdy z opisywanych programów można dzięki temu zobaczyć podczas działania, a dzięki wykonanej integracji, także we współpracy z innymi komponentami systemu. W pierwszym rodziale pracy omówione zostały potencjalne zyski wynikające z udanego wdrożenia, oraz możliwości, jakie dzięki aplikacjom biznesowym otwierają się przed firmami gotowymi przejść na wyższy szczebel zarządzania. Następnie wykonana została analiza dosyć młodego jeszcze zjawiska, jakim jest oprogramowanie Open Source, które pokazano jako metodologię tworzenia rozwiązań programowych o wysokiej jakości, ale również w charakterze ruchu społecznego rozpoczętego w latach osiemdziesiątych ubiegłego stulecia, a istniejącego i rozwijającego się do tej pory. W kolejnym rozdziale podjęty został temat konkretnych rozwiązań, które są wystarczająco funkcjonalne i dojrzałe, aby znaleźć zastosowanie w istniejącym na rynku przedsiębiorstwie. Opisane zostały sposoby, na jakie aplikacje pochodzące od różnych dostawców mogą zostać połączone w zintegrowany system informatyczny. Praca kończy się podsumowaniem przydatności zebranego oprogramowania jako całości służącej określonemu celowi.

8 Rozdział 2 Informatyzacja przedsiębiorstwa Celem funkcjonowania przedsiębiorstwa jest zazwyczaj generowanie jak największego zysku. Czynników, które wpływają na możliwość osiągnięcia zamierzonych efektów, jest wiele. Jeden z najważniejszych to sprawne zarządzanie. Wyznaczone cele i sposób ich wykonywania w dużej mierze decydują o powodzeniu podejmowanych działań, dlatego pracownik powinien dążyć do jak najszerszego poznania postawionego przed nim zadania, aby na podstawie posiadanej wiedzy, podjąć jak najlepsze kroki służące jego rozwiązaniu. Im lepsza znajomość dziedziny, tym większe szanse na podjęcie dobrej, czyli opłacalnej z punktu widzenia firmy decyzji. Na tej podstawie można stwierdzić, że posiadane informacje należy traktować jako część majątku przedsiębiorstwa. W tym przypadkiu, tak samo jak w przypadku dóbr materialnych czy kapitału ludzkiego, należy je gromadzić i zarządzać nimi. W początkowym etapie rozwoju i przy niewielkiej ich ilości, mogą być przekazywane jako ustne ustalenia między pracownikami, czy też w inny nieusystematyzowany sposób przekazywania danych. Jednak wraz z rozwojem firmy, należy poszukać rozwiązań pewniejszych i skalowalnych. Zaczynając od najprostszych przypadków, jak utrzymanie aktualnej bazy kontrahentów, a kończąc na skomplikowanych, długoterminowych procesach obejmujących wiele osób i czynności przez nie wykonywanych, zarządzenie powinno być jak najbardziej wydajne i efektywne decyzje spóźnione można uznać niemal za równie nieprzydatne jak błędne. Biorąc pod uwagę fakt, że posiadana baza danych jest zazwyczaj bardzo obszerna, a jej zawartość zmienna w czasie, widać, że nie jest to łatwe zadanie. Dlatego, aby w pełni zagospodarować i wykorzystać całą dostępną wiedzę, przydatne jest wsparcie ze strony systemu informatycznego. Informatyzacja przedsiębiorstwa ma na celu usprawnienie wielu aspektów działalności firmy i wyniesienie jej na wyższy poziom jakości funkcjonowania[bal06]. Przedsiębiorstwo zostać ma dzięki niej zbiorem wielu zależnych wzajemnie elementów, współpracujących sprawniej niż dotychczas, aby osiągnąć wspólny cel. System informatyczny ma zapewnić integrację rozproszonych, a tym samym trudniejszych do pełnego wykorzystania informacji. Poprzez posiadane mechanizmy, powinien również w wygodny sposób udostępnić je użytkownikom i umożliwić ich swobodny przepływ. Informatyzacja to głównie wdrożenie systemu informatycznego, mającego za zadanie przejęcie i usprawnienie wykonywania części dotychczasowych zadań pracowników, a także dostarczenia nowych funkcjonalności, przydatnych w działalności przedsiębiorstwa (przykładowo wykorzystanie gromadzonej wiedzy do prognozowania zmian zachodzących na rynku). Typowy system informatyczny składa się ze sprzętu komputerowego i oprogramowania na nim działającego. Prawidłowo przeprowadzone wdrożenie i umiejętne wykorzystywanie dostępnych możliwości, potrafą przynieść długofalowe zyski w wielu dziedzinach funkcjonowania zakładu pracy[bal06]: 4

9 Informatyzacja przedsiębiorstwa 5 elastyczne reagowanie na doraźne potrzeby klientów i zmiany planu działalności oraz zagrożenia występujące w różnych obszarach działalności, zmniejszenie produkcji w toku, zwiększenie terminowości wykonywania zleceń, zwiększenie terminowości dostaw, zmniejszenie niedoborów części do montażu, wzrost wydajności produkcji, zmniejszenie zapasów magazynowych, poprawa średniego wskaźnika obrotu zapasów, wzrost sprzedaży, zmniejszenie średniej liczby pracowników w służbach zaopatrzenia materiałowego, obniżenie średniego czasu dostawy (realizacji zamówienia), obniżenie kosztów zakupów, poprawa obsługi informacyjnej służb firmy, zwiększenie zysku z działalności firmy. Nie wszystkie z tych funkcjonalności znajdą zastosowanie są w konkretnym zakładzie pracy. Dlatego ważne jest, aby określenie celu i zakresu informatyzacji zostało poprzedzone analizą obecnych i przewidywanych potrzeb, tak aby zamierzeniem było dobro firmy, a nie informatyzacja sama w sobie. Przez szereg lat, nawet w najmniejszych przedsiębiorstwach, wypracowywane są pewne wewnętrzne standardy obchodzenia się z informacjami i zadaniami. Aby uzyskany system posiadał wysoką użyteczność, powinien zostać dostosowany do tych ugruntowanych i dobrze zdefiniowanych procesów, zakładając, że są one bliskie optimum. W przeciwnym wypadku będzie on sztucznym tworem nie wpisującym się w panujące w zakładzie pracy standardy, a tym samym niechętnie wykorzystywanym przez pracowników. Pozostałe, gorzej zaprojektowane procesy biznesowe, mogą zostać zreorganizowane przez wdrażającego, mającego na uwadze będące zazwyczaj wynikiem najlepszych praktyk, standardy wbudowane w instalowany system. Z badań Boston Consulting Group[Obu00], wynika, że tylko jedno na trzy wdrożenia systemów informatycznych zostało przez przedstawicieli wyższego szczebla zarządzania przedsiębiorstw uznane za całkowicie udane. Warto jednak uszczegółowić ten wynik: stwierdzono, że dobrze zdefiniowana informatyzacja, oparta na jasnej strategicznej wizji, przyniosła pozytywny rezultat w 52% przypadków, podczas gdy nie uwzględnienie założeń firmy prowadziło do sukcesu tylko w 22% instalacji. Więcej częstych przyczyn nieudanego wprowadzenia systemów do firm przedstawia diagram 2.1. Za najlepiej przeprowadzone można uznać 37% z udanych wdrożeń, przy których respondenci potrafili wykazać konkretne zyski finansowe, jakie zostały osiągnięte dzięki zastosowaniu nowej technologii pracy.

10 Informatyzacja przedsiębiorstwa 6 Rysunek 2.1: Przyczyny niepowodzenia projektu informatycznego [waw01]

11 Rozdział 3 Oprogramowanie Open Source Oprogramowanie przebywa długą drogę od pomysłu, poprzez planowanie i realizację, aby w końcu stać się pełnowartościowym produktem użytecznym dla zainteresowanych nim osób. Prawidłowo prowadzony projekt informatyczny zaczyna się od zbadania zapotrzebowania na aplikację danego typu i określenia szczegółowych wymagań co do pożądanej funkcjonalności. Gdy powstała w ten sposób specyfikacja techniczna jest już gotowa do realizacji, kończy się etap planowania i do pracy przystępują programiści. Podążając za wytycznymi managerów, przenoszą oni abstrakcyjne pojęcia opisujące żądane cechy powstającego programu, do sztucznego języka - języka programowania, które jest językiem sztucznym. Stworzony w ten sposób kod źródłowy, zostaje przez specjalne narzędzie kompilator, zmieniony (skompilowany) w wersję binarną, która jest postacią możliwą do zrozumienia przez komputer 1. Kod źródłowy jest czytelny dla człowieka i posiadający go programista może łatwo wprowadzić w nim zmiany, a tym samym zmodyfikować działanie wynikowego programu. Natomiast poziom trudności odczytania binarnej wersji, można porównać do próby odsłuchiwania płyty gramofonowej poprzez wodzenie po niej palcem. Podgląd kodu prostego programu wypisującego pozdrowienie na ekran monitora oraz część powstałego z niego pliku wynikowego widać na rysunku Dwie ideologie Zazwyczaj twórcy komercyjnych programów, zazdrośnie strzegą kodów swoich aplikacji, dopuszczając do dystrybucji jedynie wersje binarne. Działania takie motywują niechęcią do dzielenia się informacjami i osiągnięciami z konkurencją, która mogłaby podejrzeć i wykorzystać zawarte w projekcie pomysły do stworzenia konkurencyjnego rozwiązania. Ukrycie źródeł pozwala też na zachowanie kontroli nad użytkownikami w przypadku wystapienia błędów czy też potrzeby dodania nowej funkcjonalności, tylko producent może wykonać te prace i udostępnić uaktualnioną wersję programu. Nie jest to jednak jego obowiązkiem, co rodzić może pewne obawy przy wyborze zamkniętych aplikacji w obszarach krytycznych dla poprawnego funkcjonowania firmy. Istniejącą sytuację można porównać do samochodu, który jest zabezpieczony w ten sposób, że nikt oprócz twórcy nie może dokonać nawet najdrobniejszych, takich jak zmiana przebitego koła czy uzupełnienie oleju, prac przy nim. Dodatkowo licencje, które użytkownicy zmuszeni są zaakceptować przy zakupie, zazwyczaj mocno ograniczają ich prawa do wykorzystywania programu (możliwość instalacji tylko na jednym stanowisku, zakaz odsprzedaży). Kupując program, tak naprawdę nabywa się tylko prawo do jego wykorzystania na określonych przez producenta zasadach. 1 istnieją również języki, których przetwarzanie przez komputer nie polega na kompilacji, ale przykładowo na wykonywaniu bezpośrednio zawartych w kodzie poleceń (języki skryptowe) 7

12 3.1. Dwie ideologie 8 Rysunek 3.1: Porównanie kodu źródłowego (lewa) i podgląd początkowej części powstałego z niego pliku binarnego (kropki oznaczają wartości niemożliwe do wyświetlenia w standardowym zestawie znaków) Zwolennicy oprogramowania o otwartych, czyli jawnie dostępnych, źródłach, stosują do swoich działań inną filozofię. Użytkownik wraz z prawem do wersji binarnej aplikacji, dostaje możliwość swobodnego dostępu do kodu źródłowego programu. Może poznawać jego budowę i analizować sposób działania. Co równie ważne, twórcy programów Open Source zachęcają do modyfikowania i włączania się w rozwój aplikacji. Dają wolność, której nie oferuje oprogramowanie własnościowe, czyli posiadające daleko idące restrykcje dotyczące jego używania, nałożone zwykle przez podmiot posiadający do niego prawa autorskie. Należałoby rozróżnić kilka podstawowcyh, a często mylnie rozumianych terminów odnoszących się do oprogramowania. Termin open source (małe litery) oznacza po prostu otwarte źródła, które są dostępne dla ludzi niezwiązanych z autorami programu. Ujawnia je dla części swoich produktów nawet firma Microsoft TM, w swoim programie Shared Source Initiative[Cor07]. Jednak warunki licencji na te kody są daleko bardziej restrykcyjne (między innymi zakaz modyfikacji), od będących tematem tej pracy aplikacji Open Source (duże litery O i S ), które są programami wydanymi na jednej z licencji zatwierdzonej przez Open Source Initiative. Pokrewne Otwartemu jest Wolne Oprogramwoanie (Free Software). Jest to oprogramowanie posiadające licencje zaaprobowane przez Free Software Foundation. Każdy Wolny Program jest jednocześnie programem Open Source, ponieważ OSI jest organizacją bardziej libelarną i akceptuje licencje FSF. Prawidłowość ta zachodzi tylko w jedną stronę. Więcej na temat licencji przeczytać można w rozdziale 3.2. Termin Free Libre/Open Source Software, FLOSS obejmuje obie te organizacje jednocześnie, a został stworzony w celu uproszczenia analiz prawnych. Ruch Open Source powstał poprzez odłączenie się grupy osób od założonej przez Richarda M. Stallmana Fundacji Wolnego Oprogramowania, której głównym celem było wspieranie wolnego (w sensie wolności słowa 2 ) oprogramowania, dającego użytkownikowi szerokie prawa: wolność użytkowania programu w dowolnym celu (wolność 0), 2 słynne zdanie Stallmana głosi free speech, not free beer

13 3.1. Dwie ideologie 9 wolność badania sposobu działania programu i możliwość jego modyfikacji, co implikuje udostępnienie kodu źródłowego (wolność 1), wolność dystrybucji programu wraz z jego kodem (wolność 2), wolność udoskonalania programu i rozpowszechniania tych zmian (wolność 3). Otwarty kod dla FSF stanowi jeden z fundamentów wolności. Ruch OS podchodzi do tego z nieco innej, mniej ideologicznej, a bardziej praktycznej, strony. Otwartość jest metodyką tworzenia programów[ray00b], zapewniającą ich najlepszą jakość. Dlatego do nazwania tego modelu użyto określenia Open Source zaznaczającego otwartość kodu, nie mówiącego jednak o wolności. 8 lutego 1998 wydano oficjalną odezwę do społeczeństwa[ray00c], a niedługo potem powstała organizacja Open Source Initiative. Oprogramowanie aby mogło być zaakceptowane przez OSI i stać się oprogramowaniem Open Source musi spełnić następujące warunki[osi04]: 1. Swoboda redystrybucji Licencja nie może ograniczać swobody którejkolwiek ze stron do sprzedawania lub rozdawania oprogramowania jako elementu szerszej dystrybucji zawierającej programy z różnych źródeł. Licencja nie może wymagać pobierania honorariów lub innych opłat od takiej sprzedaży. 2. Kod źródłowy Do programu musi być dołączony kod źródłowy, a licencja musi zezwalać na dystrybucję zarówno w postaci kodu źródłowego, jak i skompilowanej. Jeśli któryś produkt nie jest rozprowadzany wraz z kodem źródłowym, musi istnieć dobrze udokumentowany sposób uzyskania tego kodu źródłowego za cenę nie przekraczającą rozsądnych kosztów wykonania kopii najlepiej poprzez darmowe pobranie z Internetu. Kod źródłowy musi być dostępny w zalecanej postaci, pozwalającej na prostą modyfikację. Nie jest dozwolone celowe gmatwanie kodu źródłowego. Formaty pośrednie, takie jak wynik działania preprocesora lub translatora, nie są dozwolone. 3. Dzieła pochodne Licencja musi zezwalać na dokonywanie zmian oraz tworzenie dzieł pochodnych. Musi również umożliwiać dystrybucję takich dzieł na tych samych warunkach, jakie opisuje licencja oryginalnego oprogramowania. 4. Spójność kodu źródłowego autora Licencja może ograniczać dystrybucję kodu źródłowego w zmodyfikowanej postaci tylko wtedy, jeśli dozwolona jest przy tym dystrybucja poprawek (ang. patch) wraz z kodem źródłowym, za pomocą których program jest potem modyfikowany w trakcie kompilacji. Licencja musi jawnie zezwalać na dystrybucję oprogramowania skompilowanego ze zmodyfikowanego kodu źródłowego. Licencja może wymagać, aby dzieła pochodne nosiły inną nazwę lub numer wersji niż oprogramowanie oryginalne. 5. Niedozwolona dyskryminacja osób i grup Licencja nie może dyskryminować jakichkolwiek osób czy grup. 6. Niedozwolona dyskryminacja obszarów zastosowań. Licencja nie może zabraniać wykorzystywania programu w jakimś konkretnym obszarze zastosowań. Na przykład, nie może zabraniać wykorzystania programu w sposób komercyjny lub używania go do badań genetycznych.

14 3.2. Licencjonowanie oprogramowania Open Source Dystrybucja licencji Określenie praw dołączone do programu musi obowiązywać wszystkich, którzy otrzymują oprogramowanie bez konieczności przestrzegania przez te osoby dodatkowych licencji. 8. Licencja nie może obejmować konkretnego produktu Określenie praw dołączone do programu nie może zależeć od tego, że dany program stanowi część określonej dystrybucji oprogramowania. Jeśli program został pobrany z takiej dystrybucji i wykorzystywany lub rozprowadzany zgodnie z warunkami licencji, wszystkie osoby, do których program trafia, powinny posiadać te same prawa, które określone są dla oryginalnej dystrybucji oprogramowania. 9. Licencja nie może ograniczać stosowania innego oprogramowania Licencja nie może nakładać ograniczeń na inne oprogramowanie rozprowadzane wraz z oprogramowaniem objętym licencją. Na przykład, nie może wymagać aby wszystkie inne programy rozprowadzane na tym samym nośniku były programami Open Source. 10. Licencja musi być niezależna od technologii wykonania Otrzymanie licencji nie może być uwarunkowane w żaden sposób sposobem uzyskania oprogramowania 3.2 Licencjonowanie oprogramowania Open Source Oprogramowanie Open Source, chociaż w większości dostępne za darmo, podlega w równym stopniu majątkowym prawom autorskim, co komercyjne programy. Na podstawie tego prawa, autor może zarządzać swoim dziełem według uznania, decydując o warunkach jego dystrybucji czy cenie. W środowisku informatycznym prawo to rzadko jest jedyną formą określenia statusu prawnego dzieła. Twórcy oprogramowania, aby dokładniej określić przywileje i zastrzeżenia, których użytkownik musi być świadom, tworzą licencje, czyli umowy zawierane z każdą osobą korzystającą z programu. Ich akceptacja jest warunkiem koniecznym do uzyskania prawa wykorzystywania utworu Prawa autorskie W Polsce kwestię prawa autorskiego reguluje ustawa o prawie autorskim i prawach pokrewnych z dnia 4 lutego 1994 r[sej94]. Określa ona, że przedmiotem tego prawa jest każdy przejaw działalności twórczej o indywidualnym charakterze, ustalony w jakiejkolwiek postaci, niezależnie od jego wartości i przeznaczenia. Ochroną objęty zostaje każdy utwór już w momencie powstawania, niezależnie od tego, czy zostaną podjęte jakiekolwiek formalne kroki związane z zastrzeżeniem tych praw. Prostym przykładem jest narysowanie na skrawku serwetki psa. Już w chwili szkicowania, twórca staje się jedynym prawowitym właścicielem tego dzieła. Nikt nie ma prawa skopiować, publicznie pokazywać ani w jakikolwiek sposób czerpać z niego korzyści. W świetle tematu tego rozdziału, warto dodać jeszcze, że zabronione jest również tworzenie dzieł pochodnych (prac które rozwijają lub bazują na oryginalnym tworze) od tego rysunku. Prawa autorskie obowiązują w Polsce przez siedemdziesiąt lat od śmierci właściciela (niekoniecznie jest to twórca, ponieważ są one zbywalne) lub ostatniego z właścicieli, jeśli jest ich więcej. Ważny dla oprogramowania Open Source, jest również zapis ustawy, który stwierdza, że zastrzeżony może być wyłącznie sposób wyrażenia, nie są natomiast objęte ochroną odkrycia, idee, procedury, metody i zasady działania. Autor rysunku nie może zabronić nikomu narysowania psa,

15 3.2. Licencjonowanie oprogramowania Open Source 11 jeśli tylko nie będzie on kopią albo pochodną jego dzieła. Nie może też zakazać użycia ołówka w celu przeniesienia wyobrażenia psa na papier. Czynności te nie są objęte prawem autorskim. Istnieje jednak możliwość wprowadzenia takich zaostrzeń poprzez wykorzystanie możliwości jakie daje patentowanie. Patent to dokument, który przyznaje posiadającej go osobie wyłączne prawa do korzystania z wynalazku w sposób zarobkowy lub zawodowy. Może go uzyskać twórca, lub też zamawiający, jeśli do powstania obiektu patentowania doszło w wyniku wykonywania obowiązków regulowanych na podstawie stosunku pracy lub innej umowy.w odróżnieniu od prawa autorskiego, należy podjąć stosowne kroki, aby stać się właścicielem zastrzeżenia. Należy do nich przekazanie pełnej technicznej dokumentacji, która zostaje oceniona przez Urząd Patentowy Rzeczpospolitej Polskiej. Nie każda innowacja może zostać opatentowana. Za nadająca się do tego celu uznaje się taką, która dla znawcy danej dziedziny wiedzy nie wynika w oczywisty sposób z istniejącego stanu techniki. Patenty są udzielane na wynalazki, które są nowe, posiadają poziom wynalazczy i nadają się do przemysłowego stosowania, bez względu na dziedzinę techniki[sej00]. Do tej grupy nie zalicza się: odkryć, teorii naukowych i metod matematycznych, wytworów o charakterze jedynie estetycznym, planów, zasad i metod dotyczących działalności umysłowej lub gospodarczej oraz gier, wytworów, których niemożliwość wykorzystania może być wykazana w świetle powszechnie przyjętych i uznanych zasad nauki, programów do maszyn cyfrowych, przedstawienia informacji. W Polsce nie są uznawane patenty na oprogramowanie. Precedensowy wyrok Wojewódzkiego Sądu Administracyjnego w Warszawie[wW04] zapadł w tej sprawie podczas próby uzyskania wyłączności na System przetwarzania informacji umożliwiający uniwersalnemu programowi przeglądania sieci ogólnoświatowej WWW dostęp do serwerów wielu różnych typów protokołu przez firmę IBM (International Bussines Machines Corporation US). Urząd Patentowy odrzucił wniosek podając dwie poważne grupy zastrzeżeń prawnych. Pierwsza z nich dotyczyła nie ujawnienia wszystkich istotnych danych potrzebnych do zrealizowania patentowanego systemu. We wniosku brakowało cech układowych czyli rozmieszczenia i konkretnych połączeń pomiędzy elementami, zamiast nich użyto ogólnie nakreślonych zasad działania, co jest niewystarczające w myśl ustawy[sej00]. Jednak co ważniejsze, sąd orzekł, że przedmiot zgłoszenia dotyczący elementu programowego... dotyczy tylko cech odnoszących się do oprogramowania, a zatem wykluczonych z patentowania. Osoby popierające patenty na oprogramowanie próbują przeforsować poszerzenie interpretacji wynalazku, tak aby możliwe było zastrzeżenie nie tylko gotowego i kompletnego rozwiązania, ale także idei czy też algorytmu stojącego za nim. Pomysł na początku może wydawać się słuszny. Osobie, która stworzy okupioną ciężką pracą i nierzadko przebłyskiem geniuszu innowację, należą się wszelkie zyski z tego powodu. Jednak w praktyce jest to o wiele bardziej zwodniczy mechanizm. Patentowane są nie tylko naprawdę odkrywcze pomysły, ale też rzeczy oczywiste lub wynikające z naturalnego rozwoju. Z tego powodu bardzo łatwo jest nieświadomie naruszyć istniejący patent, co zaowocować może późniejszymi procesami i ewentualnymi odszkodowaniami. Prawo działa w ten sposób w Stanach Zjednoczonych i wywołuje kontrowersje społeczności informatycznej poprzez zbyt pochopne nadawanie zatrzeżeń. Sprawą która wzbudziła wiele emocji był uzyskanie przez Microsoft patentu na algorytm różnicujący użycie poszczególnych funkcji

16 3.2. Licencjonowanie oprogramowania Open Source 12 Rysunek 3.2: Ilość przyznanych patentów na oprogramowanie w Europie przypadająca na poszczególne kraje.[ffi03] w sprzęcie przenośnym poprzez sposób wciśnięcia jednego przycisku. [pat04]. Przy jego pomocy korporacja może wpłynąć na firmy (między innymi PalmOne i Symbian), które w stworzonych urządzeniach różnicują wykonywane akcje w zależności od długiego lub krótkiego przyciśnięcie wskaźnika. Mogą one zostać zmuszone do wykupienia licencji lub też udostępnienia swoich technologii w zamian za rezygnacje z roszczeń, w zależności od decyzji Microsoft. Sytuacja w Unii Europejskiej wygląda inaczej co prawda patenty na oprogramowanie są przyznawanie przez Europejski Urząd Patentowy, nie mają one jednak w chwili obecnej żadnej mocy prawnej. Gdyby jednak powstała dyrektywa wprowadzająca je w życie, mogłoby to spowodować duże kłopoty, a może nawet paraliż dynamicznie rozwijającego się rynku informatycznego. wykresie przedstawionym na rysunku 3.2 widać, że większość patentów należy w tej chwili do pozaeuropejskich firm, które, jak należy podejrzewać, wykorzystałyby je do uzyskania wpływu na lokalne przedsiębiorstwa mogące zaszkodzić ich interesom. Skutki udzielania zastrzeżeń stałyby się najbardziej odczuwalne dla małych i średnich firm tworzących programy. Aby chronić się przed możliwymi pozwami, powinny one zatrudniać prawników, którzy przeglądaliby powstające kody i porównywali je z wciąż zmieniającymi się rejestrami. Dla części z tych przedsiębiorstw stałoby się to niemożliwe do finansowania. Dodatkowo, ponieważ posiadane patenty mogłyby w przyszłości stać się swoistym narzędziem do kontrataku na pozywającą firmę lub kartą przetargową umożliwiającą podpisanie swoistego paktu o nieagresji, nietrudno się domyślić, że prawnicy ci sami składaliby jak największą ilość wniosków o nie. Na W dalszej perspektywie mogłoby to doprowadzić do niemożności powstania i działania nowych firm, które nie miałyby pieniędzy na wykup licencji patentowych aby móc rozpocząć pracę. Do podobnego wniosku doszedł również Bill Gates, założyciel firmy Microsoft, prowadzącej rozległą politykę patentową (6744 przyznane patenty na dzień ). Stwierdził on w 1991 roku[gat91], zanim jego firma została potentatem na rynku: Gdyby ludzie w czasach kiedy powstawało większość dzisiejszych wynalazków rozumieli jak przyznawane są patenty i wykorzystali tę wiedzę do ich uzyskania, przemysł byłby dziś w kompletnym zastoju. [...] W przyszłości nowopowstałe firmy bez posiadanych patentów będą zmuszone do zapłaty każdej ceny jakiej zażądają giganci. 3 liczba ta została pobrana z witryny United States Patent and Trademark Office, W wyszukiwarce uzyskano sumę patentów zgłoszonych przez firmę Microsoft poprzez użycie zapytania AN/Microsoft

17 3.2. Licencjonowanie oprogramowania Open Source Licencjonowanie Już w krótkim czasie po rozpoczęciu przez Free Software Foundation prac nad systemem GNU, 4 stało się jasne, że nie można, tak jak na początku próbowano, uciec od licencjonowania oprogramowania. W latach 70-tych Richard M. Stallman stworzył wizualny edytor tekstu Emacs. Pisał go jednak w ten sposób, aby współpracował z konkretnym systemem operacyjnym, tak więc kod nie nadawał się do bezpośredniego przeniesienia na Linux. Pragnąc go na nim uruchomić, twórca zamiast zaczynać program od podstaw, wykorzystał jako punkt początkowy odmianę edytora, którą James Goslig napisał dla systemu UNIX w 1982 (bazując na oryginalnym kodzie Stallmana, który był powszechnie dostępny). Jednakże po pewnym czasie, autor zmodyfikowanej wersji sprzedał swój edytor pewnej firmie, która zyskując pełne prawa do niego, zabroniła publikowania GNU Emacs bez jej zgody. Aby uniknąć podobnych sytuacji w przyszłości, w 1988 Stallman stworzył Emacs General Public Licence (Powszechna Licencja Publiczna Emacs) dla nowo pisanego przez siebie edytora. Licencja ta pozwalała na swobodnie kopiowanie, modyfikowanie i używanie programu, pod warunkiem zachowania tych otrzymanych praw w kolejnych wersjach aplikacji i dziełach od niej pochodnych. W 1989 tekst licencji został ponownie zredagowany dla poprawienia wyrazistości zapisów i nazwany GNU General Public Licence (GNU GPL, Powszechna Licencja Publiczna GNU). Licencja ta, wraz z jej kolejnymi wersjami (drugą z 1991 roku i trzecią, obecnie tworzoną), stała się domyślną dla wszystkich nowych programów FSF i najpopularniejszą obecnie licencją Wolnego Oprogramowania[Vä05]. Licencje Fundacji Wolnego Oprogramowania mają na celu zapewnienie programom powstającym w ich duchu rozwój od pierwotnej, tworzonej przez nieliczną grupę osób, formy, do rozwiniętej, nierzadko przez tysiące osób, pracy 5. Żadna z tych wersji nie może nigdy zostać zamknięta i wykorzystana tylko przez jedną osobę, która zabroni innym dostępu do niej, czy to w postaci wynikowego programu, czy w postaci źródeł. Równolegle do Free Software Foundation, ruch Open Source Initiative przedstawia szerszy wybór (58 na dzień 20 maja 2007 r.), również dużo bardziej liberalnych, licencji Otwartego Oprogramowania. Kryterium uzyskania statusu licencji wspieranej przez OSI, co łączy się z podniesieniem prestiżu dokumentu, jest spełnienie przesłanek, które organizacja stworzyła dla aprobowanych dokumentów[osi04] oraz zgłoszenie tekstu do akceptacji Najpopularniejsze licencje Open Source Najpopularniejsze w chwili obecnej licencje zaaprobowane przez OSI, to: GNU General Public License (GPL), GNU Lesser General Public License (LGPL), Apache License, 2.0, New BSD (Berkeley Software Distribution) license, MIT (Massachusetts Institute of Technology) license, znana też jako X License lub X11 License, Mozilla Public License 1.1 (MPL), 4 jest to tzw. akronim rekursywny (zawierający samego siebie) który rozwinąć można jako GNU s Not Unix 5 lub wielu prac, ponieważ każdy może stworzyć swoją niezależną od innych gałąź rozwoju

18 3.2. Licencjonowanie oprogramowania Open Source 14 Common Development and Distribution License, Common Public License 1.0, Eclipse Public License. GNU Genereal Public Licence Najbardziej popularną z licencji Open Source jest niewątpliwie stworzona przez Free Software Foundation, GNU Genereal Public Licence. Licencja ta stała się domyślną dla wszystkich projektów tworzonych przez FSF, obejmuje tak szeroko wykorzystywane aplikacje jak GNU C Compiler i jądro GNU/Linux. Najważniejsze informacje Intencje, którymi kierowano się przy tworzeniu dokumentu, wyjaśnione są w jego wstępie (preambule). Najważniejsza z nich głosi, że oprogramowanie powinno być wolne w sensie swobody do jego rozpowszechniania i modyfikowania bez konieczności pytania pierwotnego właściciela o zgodę. Każda osoba powinna móc skopiować, rozdać, a jeśli sobie tego życzy (i znajdzie nabywców), sprzedać oparty na tej licencji program. Dopuszczalna jest także modyfikacja pierwotnego kodu i udostępnienie tak zmienionej wersji innym. Licencja nakłada jednak na osobę z niej korzystającą obowiązek zachowania jej we wszystkich kopiach i pochodnych od posiadającego ją dzieła. Dzieła pochodne nie mogą stać się własnościowe, ani zostać wydane na innej licencji jeśli programista chce stworzyć zastrzeżony program, nie może korzystać z kodu opartego na GPL (szerzej o tym zapisie niżej). Jego włączenie do pracy wymusza zastosowanie licencji do całego dzieła. Ważną sprawą dla udzielającego praw, jest upewnienie się co do poznania przez licencjobiorców faktu, że oprogramowanie rozpowszechnianie jest bez żadnej gwarancji na poprawne działanie, nawet w celu do którego zostało stworzone, a autorzy nie są odpowiedzialni za żadne bezpośrednie lub pośrednie szkody wyrządzone przez nie. Jest to standardowa klauzula przy niemal wszystkich licencjach, nie tylko przy GPL. Osoba uruchamiająca aplikację powinna zostać o tym poinformowana. Kolejne zastrzeżenie dotyczy patentów. Aby uniknąć sytuacji, w której jedna z osób rozpowszechniających program uzyska indywidualnie patent, czyniąc w ten sposób program nie-wolnym, licencja zastrzega, że każdy stosowany patent musi być równolegle do programu udostępniony na GPL. Licencja porusza jeszcze klika ważnych kwestii. Nakazuje osobom wprowadzającym zmiany w programie i rozpowszechniającym go, opisanie tych zmian i dat kiedy zostały sporządzone. Ma to na celu uświadomienie użytkowników, że być może nie korzystają z firmowanego przez pierwotnych autorów kodu i wszystkie uwagi nie powinny być kierowane do nich. Sama licencja jest również przedmiotem zastrzeżenia: każdy może dowolnie kopiować jej tekst, ale zmiany w nim nie są dozwolone, za wyjątkiem jednej sytuacji: kiedy na podstawie odrębnej umowy pomiędzy dwiema stronami, jedna z nich podejmie się zagwarantowania poprawności działania oprogramowania (sama licencja odmawia udzielenia takiej gwarancji). Zakaz zmian w dokumencie chroni użytkujących przed koniecznością szukania modyfikacji dokonanych w licencji przy każdym posiadanym programie, aby ustrzec się przed zmianami niezgodnymi z ideami przyświecającymi twórcom przy pisaniu GPL, na przykład czyniącymi program de facto własnościowym. Duże znaczenie dla wielu osób ma możliwość łączenia oprogramowania własnościowego z wydanym na GPL. Kiedy wolny kod wcielony jest do programu, tak że razem z kodem własnościowym tworzą jeden plik wykonywalny, lub też przy uruchomieniu działają jako jeden proces i zajmują

19 3.2. Licencjonowanie oprogramowania Open Source 15 wspólną przestrzeń adresową, system taki automatycznie uznawany jest za rozszerzający pierwotny, otwarty program. W tym przypadku cała aplikacja (również zamknięty kod) bez wątpienia musi zostać objęta GPL. Program używający biblioteki GPL musi również być wydany na tej samej licencji. FSF nie blokuje jednak całkowicie współpracy między programami o różnych licencjach. Nie jest to zabronione, jeśli nastąpi wyraźne rozgraniczenie między otwartym a zastrzeżonym oprogramowaniem jeśli programy nie współpracują bezpośrednio, a wyłącznie komunikują się ze sobą. Przekazywanie informacji musi wtedy następować poprzez specjalnie przeznaczone do tego uniwersalne mechanizmy (kolejki komunikatów, zdalne wywołania poleceń). Ale jeśli przesyłane dane bardziej przypominają współpracę modułów niż odrębnych programów, na przykład poprzez wykorzystywanie specyficznych dla jednego z programów struktur, przekracza to dozwolone granice. W licencji GPL nie wymieniono szczegółowo co jest, a co nie jest dozwolone. Sporne kwestie rostrzygać trzeba indywidualnie, w najgorszym przypadku na drodze sądowej. Ważne jest również wyraźne zaznaczenie w dokumentacji przez osobę dystrybuująca tak połączone aplikacje, że są one odrębnymi programami na różnych licencjach. Dzięki temu użytkownicy będą mieli pewność co do swoich praw i swobód. Można by argumentować, że skoro oprogramowanie jest wolne, to dlaczego użytkownicy chcący włączyć jego kod do swoich programów zmuszani są do ich rozdawania wbrew swej woli z powodu zaraźliwości GPL. Richard M. Stallman wyjaśnia swoje intencje przy okazji zachęcania do stosowania licencji[sta99]. Jeśli społeczeństwo stworzy dobry i przydatny kod, być może osoby tworzące oprogramowanie własnościowe zauważą go i zechcą wykorzystać. Nie będą mogli jednak tego zrobić, jeśli sami nie uwolnią swoich programów, przed czym większość z nich będzie się zapewne wzbraniała. W niektórych przypadkach, zdecydują się jednak na ten krok i udostępnią swój program na zasadach GPL, przyczyniając się do rozwoju wolnego oprogramowania. Na to właśnie liczy założyciel FSF, nakłaniając twórców do wybrania jego licencji. Programy na licencji GPL można łączyć z bibliotekami prawnie zastrzeżonymi. Nie jest to jednak mile widziane ze względu na znaczne ograniczenie użyteczności takiego programu. Jeśli programista zmodyfikował kod oparty o GPL, tworząc w ten sposób dzieło pochodne, ma prawo zatrzymać wynik swojej pracy tylko dla siebie. Nawet jeśli ktoś dowie się o posiadanym programie i zażąda jego przekazania powołując się na tekst GPL, autor nie musi spełniać tej prośby licencja daje prawo do dystrybucji, nie nakaz. Ale jeśli zgodzi się to zrobić, jest zobowiązany do udostępnienia programu razem z pełnym kodem źródłowym. Może pobrać za to dowolnie wysoką opłatę, przy czym nie może stawiać dodatkowych warunków przy przekazywaniu kodu źródłowego osobie, która otrzymała już program. Po uzyskaniu utworu, może ona korzystać z wszystkich praw GPL, również do swobodnego kopiowania i rozdawania (lub sprzedawania) tego programu bez pytania kogokolwiek o zgodę. GNU Lesser General Public License Napisana w 1991 roku (pod nazwą GNU Library General Public License powszechna licencja GNU dla bibliotek), a następnie poprawiona i przemianowana na GNU Lesser General Public License, Mniejszą Powszechną Licencję Publiczną GNU w roku 1999 przez Richarda M. Stallmana i Ebena Moglena. Zezwala ona użycie programów na niej wydanej jako modułów własnościowego oprogramowania, jest więc mniej rygorystyczna niż GPL. Większość zapisów GPL pozostaje w mocy, poniżej opisane zostaną więc głównie kwestie łączenia programów licencjonowanych według zasad LGPL z oprogramowaniem własnościowym. Jak twierdzi[sta99] twórca licencji, producenci oprogramowania własnościowego mają przewagę

20 3.2. Licencjonowanie oprogramowania Open Source 16 uzyskiwania pieniędzy za swoje dzieła, a autorzy wolnego oprogramowania muszą wspomagać się nawzajem, aby ich programy mogły z nimi konkurować. Wykorzystywanie GPL stwarza taką przewagę, ponieważ odcina dostęp do użycia programu osobom nie chcących dzielić się swoim kodem. Jednak w niektórych przypadkach, warto skorzystać z bardziej liberalnej licencji LGPL. Zazwyczaj zaleca się to w przypadku, kiedy funkcjonalność oferowana przez otwarty program jest dostępna dla twórców własnościowego oprogramowania poprzez alternatywne rozwiązania, a zatem nie mogąc w ten sposób przekonać ich do użycia GPL dla swojego programu, warto przynajmniej popularyzować rozwiązania Open Source i liczyć na włączenia się programistów do ich rozwoju. Przykładem takiego podejścia jest GNU C Library, która została wydana na licencji LGPL, aby komercyjne programy mogły pracować też w systemie GNU przyczyniając się do wzrostu jego popularności. Licencja rozróżnia dwa sposoby wykorzystania programu. Pierwszym z nich jest dzieło pochodne czyli modyfikacja istniejącego już kodu. Wtedy zasady licencjonowania, podobnie jak w GPL, wymagają wydania zmodyfikowanego kodu z tą samą licencją z jaką się go otrzymało. Jednakże w umowie znajduje się zapis, mogący być problemem dla osób chcących tak postąpić. W preambule zdefiniowano słowo biblioteka (zaczynające się od małej litery b ): biblioteka oznacza zbiór funkcji i danych programu, przygotowanych do wygodnego wykorzystania poprzez inne aplikacje (które używają niektóre z tych funkcji i danych) przy budowaniu wykonywalnej wersji tych aplikacji oraz Biblioteka (duża litera b ): Biblioteka odnosi się do każdej biblioteki lub pracy która została rozprowadzona pod podanymi tu warunkami. Praca oparta na Bibliotece oznacza albo Bibliotekę lub każde dzieło pochodne będące również przedmiotem prawa autorskiego Punkt 2 udziela praw do modyfikacji i rozpowszechniania Biblioteki, pod kilkoma warunkami, z których niepokojący jest pierwszy podpunkt, mówiący: zmodyfikowana praca musi sama być biblioteką Z tego warunku wynika, że jeśli użytkownik otrzyma program nie będący biblioteką, a dystrybuowany na zasadach LGPL, nie może legalnie wydać swoich poprawek, chyba że zmodyfikuje go tak bardzo, aby mógł uchodzić za bibliotekę (co jest oczywiście mało sensownym rozwiązaniem). Możliwe, że jest to pozostałość po dawniejszej wersji licencji, przeznaczonej właśnie dla bibliotek. Jeśli użyto by słowa Biblioteka, problem zostałby rozwiązany. Podejrzenia może jednak rodzić fakt, że w tak długim czasie obowiązywania licencji (od 1999 r.) nie poprawiono tego zapisu. Warto więc zastanowić się, czy nie jest to może zamysł autora, który w późniejszym fragmencie licencji stwierdza, że licencję LGPL można w dowolnym dziele pochodnym zmienić na GPL, przy czym powrót do LGPL nie jest już możliwy. W ten sposób osoby nie będące pierwotnymi autorami zmuszane są do zastosowania propagowanej[sta99] przez FSF licencji GPL. Drugą możliwością użycia programu jest stworzenie pracy wykorzystującej Bibliotekę. Taka forma użytkowania pozwala na licencjonowanie swojego programu według uznania autora. LGPL stara się nakreślić linię oddzielającą jedną formę od drugiej, jednak są to niezbyt jednoznaczne i oczywiste kryteria. Program nie zawierający kodu samej Biblioteki, a stworzony w ten sposób, aby współpracować z Biblioteka, jest pracą wykorzystująca Bibliotekę i może być dystrybuowany na oddzielnej licencji. Jednak skompilowanie i połączenie (elementy procesu zmiany kodu źródłowego w program wykonywalny) z Biblioteką, włącza część kodu Biblioteki do programu, tworząc w ten sposób

21 3.2. Licencjonowanie oprogramowania Open Source 17 dzieło pochodne, które musi zostać udostępnione na specjalnych warunkach LGPL opisanych poniżej. Ten punkt ustanawia więc pewne ograniczenia, które można pominąć, jeśli dystrybuuje się kod źródłowy do samodzielnej kompilacji przez użytkownika końcowego. Jednak sytuacja taka - dystrybucja własnościowego programu w otwartej postaci - jest rzadko spotykana. Jeśli praca wykorzystująca Bibliotekę włącza do swojego kodu jedynie pliki nagłówkowe 6 będące częścią Biblioteki, skompilowany program może nadal być dziełem pochodnym, nawet jeśli kod nie jest. Ma to szczególnie znaczenie, jeśli ta praca może istnieć bez Biblioteki lub sama jest biblioteką. Nie jest to jednak jednoznacznie określone przez prawo. Jeżeli jednak ta praca korzysta tylko z parametrów numerycznych, układów struktur danych, niewielkich makr i włączanych do kodu krótkich (dziesięć linii lub mniej) funkcji, wtedy licencja uznaje ją za praca wykorzystująca Bibliotekę, niezależnie czy prawo autorskie stanowi inaczej. Wersje wynikowe, ciągle muszą zostać udostępnione na specjalnych warunkach LGPL. Polegają one na pozwoleniu na rozpowszechnianie pracy, o ile spełnione zostaną pewne wymagania. Najważniejsze z nich to dystrybucja wraz z wersją wykonywalną kodów źródłowych biblioteki wraz z wszelkimi wprowadzonymi modyfikacjami. Konieczne jest również dopuszczenie modyfikacji (Biblioteki) na własny użytek i inżynierię wsteczną 7 całego programu w celu usuwania błędów. Poza tym, Biblioteka powinna zostać połączona z takim programem w sposób współdzielony z innymi programami, umożliwiający użytkownikowi na ewentualną podmianę na jej nowszą wersję. Ważnym zastrzeżeniem obarczone jest używanie własnościowych bibliotek: program musi zostać rozporowadzony w postaci możliwej do bezpośredniego uruchomienia. Czasami zdarza się, że do poprawnego funkcjonowania programu, należy jeszcze dokupić dodatkowe komponenty. Jest to pogwałceniem LGPL i nie zezwala się na dystrybucję takiego programu. Creative Commons Licenses Seria licencji Creative Commons jest wytworem amerykańskiej organizacji pozarządowej działającej na zasadach non-profit od 2001 roku. W chwili obecnej działa ona przy Stanford University Law School. Licencje CC mają za zadanie zachęcenie twórców prac do udostępniania swoich dzieł publicznie. Poprzez dzieła rozumie się nie tylko, jak w pozostałych licencjach, oprogramowanie, ale również teksty literackie, muzykę, filmy. Dzięki CC wynik pracy twórców może zostać wydany na zasadach podobnych do tych, na których wydaje się oprogramowanie Open Source jak najszersze wykorzystanie dzieł w sposób przydatny dla społeczeństwa, przy jednoczesnym uszanowaniu pierwotnych autorów. Dostępne są różne wersje licencji: uznanie autorstwa 2.0 Polska uznanie autorstwa-bez utworów zależnych 2.0 Polska uznanie autorstwa-użycie niekomercyjne-bez utworów zależnych 2.0 Polska uznanie autorstwa-użycie niekomercyjne 2.0 Polska 6 są to pliki kodu źródłowego zawierające informacje potrzebne do nawiązania współpracy z zewnętrznym programem (na przykład nazwa i lista parametrów funkcji, które są niezbędne do jej wykorzystania) 7 inżynieria wsteczna to proces analizy zamkniętego programu, mający na celu zbadanie sposobu jego współdziałania z innymi aplikacjami w celu zastąpienia go alternatywnym rozwiązaniem. Jako przykład warto podać otwarty program do rozliczeń elektronicznych z ZUS Janosik, którego twórcy spotykając się z odmową udostępnienia protokołu transmisji danych, rozszyfrowali go samodzielnie analizując aplikację Płatnik

22 3.3. Otwarte i zamknięte oprogramowanie w praktyce 18 uznanie autorstwa-użycie niekomercyjne-na tych samych warunkach 2.0 Polska uznanie autorstwa-na tych samych warunkach 2.0 Polska Mniej restrykcyjne licencje BSD Licence (Berkeley Software Distribution) była, wraz z Massachusetts Institute of Technology Licence, jedną z pierwszych licencji w świecie otwartego oprogramowania. Obecnie oparty jest na niej klon UNIX, FreeBSD. Są one dużo mniej restrykcyjne od GPL (3.2.3). Podobną do nich, w sensie praw nadawanych użytkownikowi, jest również Apache Licence 2.0, stosowana przez fundację Apache, która stworzyła między innymi najpopularniejszy[net07] na świecie serwer HTTP Apache HTTP Server. Licencje te pozwalają na użycie fragmentów lub całości programów na nich opartych w oprogramowaniu własnościowym. Nie wymagają rozpowszechniania kodu aplikacji korzystającej z nich na zasadach Open Source, przez co mogą być używane w docelowo zastrzeżonych aplikacjach. Jest to co prawda stratą dla społeczności, jednak według autorów licencje te przyczyniają się do wzrostu popularności oprogramowania o otwartych źródłach. Omawiane tu licencje bronią dobrego imienia pierwotnych twórców: wersje pochodne muszą być opatrzone odpowiednią uwagą i nie mogą wykorzystywać nazw fundacji w celu przedstawienia ich jako twórców programu. Zmiany wprowadzone do programu, jeśli autor zechce je udostępnić (w odróżnieniu od GPL nie jest to obowiązkowe przy dystrybucji), muszą być przekazane na zasadach oryginalnej licencji. Tekst dokumentu zawiera również standardową klauzulę o braku odpowiedzialności autorów za wyrządzone przez oprogramowanie szkody. 3.3 Otwarte i zamknięte oprogramowanie w praktyce Udostępnienie kodów źródłowych, pozwolenie na ich modyfikacje i dystrybucję zmienia zupełnie sposób powstawania aplikacji. Entuzjaści z całego świata bezinteresownie włączają się w rozwój programów, czerpiąc z tego wyłącznie satysfakcję i radość ich ulepszania. Wielu autorów oznacza też wiele osób które oglądają źródła dzięki raportowaniu znalezionych usterek, można szybko zidentyfikować i poprawić błędy. Aplikacje pisane są starannie, ponieważ w każdej chwili mogą zostać przeczytane i zmodyfikowane przez innego programistę. W odróżnieniu od komercyjnych, projekty Open Source nie muszą mieć końca. Nawet jeśli pierwotni autorzy odstąpią od projektu, każdy może podjąć się jego dalszego rozwoju w miarę potrzeby[ray00b]. Dobre oprogramowanie rozwija się i dostosowuje do zmiennych wymagań klientów. W przypadku zamkniętego rozwiązania, zazwyczaj tylko jedna firma wytwarza i dostarcza nowe wersje aplikacji. Takie uzależnienie nie jest korzystne dla klienta. Załóżmy istnienie sklepu, który od pojedynczego dostawcy zakupił system obsługujący sprzedaż towarów i opiera na nim wszystkie swoje działania. Jeśli firma producent upadnie lub zostanie wykupiona, może nastąpić zakończenie wsparcia dla programu. Przestaną się pojawiać nowe wersje lub jakiekolwiek poprawki do tych już istniejących. Sprawa może przybrać jeszcze gorszy obrót jeśli koniecze staną się modyfikacje, wymuszone na przykład zmianą ustawy regulującej dany segment rynku. Nie będzie możliwa kontynuacja sprzedaży w systemie nie spełniającym nowych wymogów, dlatego jedynym wyjściem stanie się decyzja o zmianie dostawcy, a więc i samego programu. Dane zgromadzone przez wiele lat nie są zazwyczaj gotowe do automatycznego przeniesienia, tak więc transfer wszystkich potrzebnych rekordów zajmie zapewne czas wystarczający do poniesienia poważnych strat finansowych.

23 3.4. Bezpieczeństwo dojrzałych aplikacji 19 Powyższy przykład, choć nieco przekoloryzowany, powinien pokazać niebezpieczeństwo tkwiące w uzależnieniu się od zamkniętego systemu. W przypadku projektów Open Source, opisane zagrożenia nie mają miejsca. Nawet kiedy rozwojem zajmowałaby się nie grupa niezależnych bezpośrednio od siebie programistów, a firma, to w przypadku jej zamknięcia, ktoś inny (może nawet pracownicy zatrudnieni przez zainteresowany sklep 8 ) będzie w stanie kontynuować rozwój programu. Jako przykład rzeczywistego problemu, który mógłby zostać rozwiązany dzięki zastosowaniu oprogoramowania Open Source, autor chciałby przytoczyć historię która spotkała go osobiście podczas pracy z pakietem księgowym Sage Symfonia. Standardowa instalacja programu nie jest zbyt wydajna przy równoległej pracy wielu osób, dlatego nawiązano kontakt z lokalnym partnerem producenta, firmą Questy. Zaoferowała ona rozszerzenie posiadanego dotychczas pakietu o bazę danych Pervasive, która zapewnić miała szybszą i stabilną pracę. Niestety po pewnym czasie od zakupu i instalacji pojawił się problem: wprowadzanie nowych faktur stało się niemożliwe. Pojawiające się okienko zalecało konsultację z producentem, co uczyniono. Przyczyną awarii okazała się usterka, który powodowała uszkadzanie rekordów bazy danych przy kłopotach z łącznością sieciową między stanowiskiem klienckim a serwerem. Naprawa uszkodzeń (usunięcie niepoprawnych rekordów) kosztowała kilkaset złotych. Od tamtej chwili, problem wystąpił trzykrotnie w ciągu dwóch miesięcy. Za każdorazową naprawę żadano zapłaty. Na pytanie jak zabezpieczyć się przed tym błędem lub jak samemu go naprawić w razie ponownego wystąpienia, pracownicy nie chcieli udzielić informacji, zasłaniając się tajemnicą handlową. Sytuacji nie mogły rozwiązać nawet regularnie wykonywane kopie bezpieczeństwa, ponieważ od momentu uszkodzenia rekordu do pojawienia się objawów mogły minąć dni 9. Aby uniknąć w przyszłości kolejnych wystąpień problemu, ograniczono znacząco wykorzystanie funkcji, do których zakupując roszerzenie dążono. Analizując zaistniały problem z pakietem Sage Symfonia, można przemyśleć, jak sytuacja wyglądałaby przy użyciu Otwartego Oprogramowania. Zamiast komercyjnego Pervasive, wykorzystana zostałaby zapewne baza danych PostgreSQL 10, która w odróżnieniu od zastosowanej, zapewnia standard niezawodności ACID[Pos], co oznacza między innymi pełne zabezpieczenie przed wystąpieniem opisanych wcześniej nieprawidłowych zapisów, o ile przyczyną kłopotów była baza danych. Zakładając problem leżący w samym programie, możliwa byłaby samodzielna naprawa lub przesłanie zgłoszenia osobom pracującym nad kodem. Pieniądze wydane na usunięcie skutku błędu dane w nagrodzie dla projektu, rozwiązałoby problem raz na zawsze i pozwoliły cieszyć się oczekiwaną funkcjonalnością. 3.4 Bezpieczeństwo dojrzałych aplikacji Na przestrzeni lat dokonano wielu porównań badających który ze sposobów tworzenia aplikacji - otwarty czy zamknięty - jest mniej narażony na błędy. Twórcy otwartego oprogramowania argumentują[ini], że im więcej osób przegląda kod, tym więcej problemów jest znajdywanych i rozwiązywanych. Przeciwstawia się im argument, że lepsze są inspekcje robione z pełnym zaangażowaniem przez ekspertów, którzy własnym nazwiskiem firmują powstające oprogramowanie, niż przez przypadkowych ludzi mających z programem tylko luźny związek[dif]. Jest to dobre spostrzeżenie, jednak nie można zapominać o tym, że istnieją również osoby, którym bardzo zależy na posiada- 8 istnieją firmy takie jak Computer Data Networks zarabiające na wynajmowaniu swoich programistów do rozwoju pożadanych cech w Otwartym Oprogramowaniu 9 sprawdzenie czy obecnie posiadana kopia bazy danych jest poprawna również nie było możliwe, pracownik firmy Questy nie odpowiedział na pytanie w jaki sposób można tego dokonać 10 produkt Open Source, dzięki licencji BSD (patrz 3.2.3), można jej użyć za darmo, nawet nie ujawniając źródeł Symfonii

24 3.5. Komercyjne wykorzystanie Open Source 20 niu stabilnego kodu: użytkownicy. Jeśli otwarty produkt ma zostać wykorzystany w krytycznym obszarze ich działania, to najprawdopodobniej przeznaczą czas (o ile posiadają odpowiednie umiejętności) lub pieniądze na opłacenie specjalistów, aby źródła zostały rzetelnie zbadane. Nie można będzie wtedy mówić o braku zaangażowania. Dzięki licencjom Open Source, poprawki ewentualnych nieprawidłowości zostaną szybko dołączone do projektu, aby uchronić przed nimi innych użytkowników. Kolejnym argumentem używanym przez zwolenników zamkniętego oprogramowania jest fakt, że w programach posiadających źródła ukryte przed oczami niepożądanych osób, znacznie trudniej natrafić na istniejące luki. Osoba szukająca musi stosować metodę prób i błędów, a nie jak w przypadku Open Source, przestudiować uważnie kod. Podejście takie funkcjonowało dawniej również w kryptografii, jednak zostało wyparte poprzez działający według zasady Kerckhoffa mechanizm, gdzie tajny jest tylko klucz służący do kodowania i dekodowania wiadomości, natomiast same mechanizmy z niego korzystające są jawne. Przyczyną takiego stanu rzeczy jest możliwość przechwycenia i wykorzystania maszyny szyfrującej, a zatem lepiej od razu założyć jej otwartość niż pokładać nadzieję w jej utajnieniu. W przypadku oprogramowania, traktowanie zamknięcia kodu jako zabezpieczenia również nie jest dobrym pomysłem, ponieważ nie można na nim polegać do końca istnieją metody (inżynieria wsteczna) pozwalające na zbadanie danego programu, a czasem kody zostają po prostu wykradzione. Z czysto praktycznego punktu widzenia brak dostępnych źródeł może więc być pewnym utrudnieniem dla atakujących, należy jednak podejść do tego z ograniczonym zaufaniem. Nie da się chyba odpowiedzieć jednoznacznie, która metoda produkcji oprogramowania jest lepsza i bezpieczniejsza. Można porównać dwa programy i stwierdzić wyższość jednego z nich, ale nie daje to przesłanek do wydania wyroku na całą metodykę. W programach tworzonych zarówno według jednej, jak i w drugiej, co jakiś czas dochodzi do wykrycia poważnych usterek. Zamknięte źródła w rękach nieodpowiedzialnych, pokładających ufność w tej zamkniętości, ludzi, tylko ukrywają problemy, nie rozwiązując ich. Przeglądy otwartych kodów spełniają swoją rolę tak długo, dopóki są wykonywane rzetelnie i systematycznie. Nasuwa się wniosek, że bezpieczeństwo zależy w głównej mierze nie od metodyki pisania, ale od ludzi tworzących programy i ich podejścia do wykonywaniej pracy. 3.5 Komercyjne wykorzystanie Open Source Warunki licencji Open Source nie wymuszają tego, żeby oprogramowanie było darmowe 11. Nic nie stoi na przeszkodzie, żeby nagrać dowolny program na płytę, opakować go w pudełko, dołączyć wydrukowaną instrukcję i sprzedać. Należy mieć przy tym świadomość, że każdy może tą samą aplikację, nawet po zakupie, skopiować i rozdać bez opłat. Rodzi się więc pytanie, czy znajdzie się osoba, która zechce zapłacić za program, mogąc mieć go za darmo. Jak pokazuje doświadczenie, w wielu przypadkach jest to możliwe. Dzieje się tak na przykład w przypadku komercyjnego Red Hat R Enterprise Linux R [Moc05]. Gotowy system można kupić od producenta, ale zgodnie z zasadami GNU GPL, dozwolone jest późniejsze powielenie go i rozpowszechnienie. Jedyne ograniczenie to zakaz użycia zastrzeżonych znaków towarowych firmy Red Hat R, a więc dystrybujący powinien usunąć je z systemu. Na tej podstawie oraz dzięki publikowanych darmowo pakietach źródłowych biblioteka publiczna w Luizjanie tworzy i wydaje (za darmo) całkowicie zgodną z RHEL R własną edycję znaną jako White Box Enterprise Linux[iL07]. Mimo pełnej kompatybilności, nie budzi ona większego zainteresowania klientów biznesowych, którzy chcą mieć 11 patrz punkt 3.2

25 3.6. Popularność ruchu Open Source 21 markę, której mogą zaufać, nawet jeśli muszą za nią zapłacić. A taką wyrobił sobie właśnie Red Hat R. Zarabianie jest również możliwe na wiele innych sposobów: firma Cybersource zarabia na szkoleniach, przy czym jak twierdzi jej dyrektor Con Zymaris[Mil05], 80%klientów używa wolnego oprogramowania. Richard M. Stallman sprzedaje książki swojego autorstwa (dostępne równocześnie do darmowego ściągnięcia z internetu). Bardzo popularne jest płatne wsparcie telefoniczne, jakie dla kupującego udostępniania przykładowo Ubuntu Linux. Wśród innych sposobów na zarobki oparte o Open Source, można by wymienić również[man03]: sprzedaż podręczników (JBoss), sprzedaż subskrypcji dokumentacji (CDN), sprzedaż czasu programistów, którzy rozwiną pożądaną cechę w oprogramowaniu Open Source (CDN), sprzedaż zintegrowanych platform aplikacyjnych (JCorporate, RedHat ACS), sprzedaż rozszerzeń (Instantiations, Embarcadero, SlickEdit ), sprzedaż usług hostingowych (home.pl, JCentric, WebApp Cabaret, EApps). Istnieje również pewien niejednoznaczny moralnie sposób zarobkowania podwójne licencje. Polega on na tym, że kod udostępniany jest zazwyczaj w oparciu o GNU GPL, jednak firmy, które nie chcą otworzyć swoich aplikacji, mogą kupić program od autorów z licencją zezwalającą na użycie w oproramowaniu własnościowym. Jest to niewątpliwie przywilej pierwotnych twórców, ale wątpliwości budzi wykorzystywanie w ten sposób nieodpłatnej pracy społeczności. Przykładem tak działającej firmy jest MySQL AB. Ich baza danych MySQL dostępna jest na licencji GNU GPL. Rozwija ją kilkudziesięciu zatrudnionych przez przedsiębiorstwo informatyków, ale też w znacznym stopniu ochotnicy. Przy zgłaszaniu poprawek (oczywiście do otwartej wersji), wymagane jest zrzeczenie się praw do swojej pracy na rzecz MySQL AB. Co prawda kod zostanie wydany w wersji GPL, ale ponieważ po przepisaniu praw ich właścicielem jest już firma, może również zostać wykorzystany w komercyjnej wersji, do czego autor poprawki może podchodzić z niechęcią. Rodzi się pytanie, czy MySQL AB wspiera ducha Open Source, czy może tylko używa modnego hasła do zdobycia siły napędowej dla swojego projektu. 3.6 Popularność ruchu Open Source Skąd bierze się tak niezwykła popularność Otwartego Oprogramowania? Zdecydowana większość jego twórców nigdy nie czerpała ze swojej działalności korzyści finansowych. Jakie są więc ich motywacje? Można wymienić kilka przyczyn które mogą nakłonić programistów do włączenia się do rozwoju programów Open Source[Web04]. Mając szeroki wybór aplikacji które oczekują na wsparcie, programiści zazwyczaj decydują się na udział w przedsięwzięciu, które wyda im się szczególnie ciekawe. Za takie może zostać uznane posiadające zadanie, którego efekt będzie interesujący po wykonaniu, trudny problem który trzeba rozwiązać w elegancki sposób, a może temat w którym czują się naprawdę dobrze i chcą wykorzystać swoją wiedzę. Zadaniem menadżera projektu jest takie przygotowanie i reklamowanie prac, aby zachęcić do ich podjęcia jak najwięcej uczestników. Wolontariusze nie chcieliby też zapewne widzieć jak ich praca się marnuje, ponieważ nie udaje się stworzyć działającego wydania aplikacji. Dlatego nadzorujący nie mogą być zbyt zachłanni w sensie liczby kuszonych ciekawymi

26 3.7. Historia powstania 22 zadaniami ludzi i położyć nacisk na kończenie części może mniej ciekawych, a koniecznych do zamknięcia etapu rozwoju. Niemal 75 procent oprogramowania powstaje w wolnym czasie, a pisane jest na użytek własny[web04]. Programiści to często ludzie gotowi z dużym zacięciem rozwiązywać spotykające ich problemy. Jeśli nowy, kupiony w zamian za wysłużony przez długie lata program, posiada kilkadziesiąt świeżych funkcji, ale nie ma tej jednej ulubionej, gotowi są poświęcić długie godziny na jej uzyskanie. Jeśli program ma otwarte źródła, ma też duże szansę uzyskać kolejnego dewelopera. Pracując nad oprogramowaniem, chce się uzyskać zamierzony cel jak najszybciej. Dlaczego więc tracić czas na pisanie ponownie czegoś, co już zostało przez kogoś rozwiązane. Dzięki licencji Open Source programiści mogą swobodnie korzystać z wielkiej bazy kodów źródłowych dostępnych w innych projektach, wiedząc, że nigdy nie zostaną one przed nimi zamknięte. Tak więc widząc cel, który wniesie wiele do projektu a można go uzyskać szybko i elegancko, poczują się zachęceni do ofiarowania swojego czasu. Tej możliwości nie mają programiści pracujący w przedsiębiorstwach nad oprogramowaniem własnościowym. Zmuszeni są albo związać się z inną firmą posiadającą już dany komponent, a zatem być zależnym od dyktowanych cen czy też jej losu, albo samemu tworzyć od podstaw odpowiednik istniejącego programu. W centralnie planowanym (tak zwany model katedralny, wykorzystywany zazwyczaj w przedsiębiorstwach) programie, istnieje architekt, który definiuje problem do rozwiązania. Nakreślana jest ścieżka, która ma doprowadzić do zakończenia etapu i praca zostaje rozdzielona pośród wybranych podwładnych, którzy zajmą się wykonaniem powierzonej im pracy. Te trzy decyzje ważą na całym procesie: jak rozwiązać, w ile osób, kogo wybrać[ray00b]? Programy Open Source mogą powstawać w inny, ewolucyjny (nazwany również bazarowym) sposób. Jeśli zostaje zgłoszony problem, pojawią się ludzie, którzy niezależnie od siebie, pracować będą nad tym samym zagadnieniem. Nie mając żadnych uprzedzeń ani narzuconej wizji, mogą dochodzić do rozwiązania różnymi sposobami, starając się prześcignąć konkurentów. W pewnym momencie te mniej obiecujące ścieżki zostają odcięte, a najlepsze rozwiązania włączane są do projektu. W odróżnieniu od zamkniętego programu, zbadane zostanie więcej pomysłów, tak więc szansa na powstanie lepszego kodu jest duża. Nie trzeba też apriori podejmować decyzji ile osób będzie potrzebne, ani też kto zostanie wybrany. Oczywiście, nie zawsze uda się uzyskać w ten sposób dobre rozwiązanie, ale można argumentować, że architekt też może się pomylić. Oprócz chwały wśród społeczności za wykonanie dobrej pracy, często programiści otwartych programów są zatrudniani przez firmy z branży informatycznej. Jak twierdzi David Heinemeier Hansson[Han00], twórca języka Ruby, ich praca jest wizytówką i umożliwia lepiej niż CV poznanie prawdziwych umiejętności. 3.7 Historia powstania W latach 60-tych dwudziestego wieku komputery używane były głownie w wojsku i na uniwersytetach, a ich odmiany przeznaczone do użytku domowego, nie istniały. Firmy dostarczające rozwiązania informatyczne zarabiały głównie na sprzęcie, nie na oprogramowaniu. Było ono każdorazowo pisane na specyficzne architektury 12 nie istniał bowiem uniwersalny, zdolny obsługiwać więcej niż jeden typ sprzętu, system operacyjny. Brakowało również wspólnego języka programowania kod źródłowy 13 musiał być tworzony od podstaw w specyficznym dla danej maszyny kodzie (obrazuje to rysunek 3.3 na którym widać u góry różne odmiany tego samego programu, które 12 architektura komputera to sposób organizacji jego kluczowych elementów (procesor, pamięć, magistrala), determinujący sposób pracy z nim 13 zapis programu w formie czytelnej dla człowieka, która przekształcana jest w procesie kompilacji na kod wynikowy wykonywany przez maszynę

27 3.7. Historia powstania 23 trzeba było dopasować ( ząbki ) do maszyny na której miał być uruchamiany). Często przepisywanie stawało się konieczne nawet przy przenoszeniu programu na nowszy od obecnie używanego model komputera. Był to problem, który marnował czas i pieniądze twórców oprogramowania, Rysunek 3.3: Konieczność pisania programów dla heterogenicznych środowisk a poprawki czy usprawnienia były niechętnie i powolnie wprowadzane[har03]. Również osoby obsługujące musiały każdorazowo uczyć się spodobu działania odmiennych systemów, ze względu na brak jednorodnego modelu interakcji z użytkownikiem. Na pomysł uzyskania oszczędności finansowych i lepszego wykorzystania mocy obliczeniowej maszyn, poprzez użycie jednego komputera do obsługi wielu użytkowników, wpadli w 1965 roku pracownicy Bell Labs, Genereal Electric Company oraz Massachusetts Institute of Technology (MIT). Rozpoczęli oni projekt Multics (Multiplexed Information and Computing Service). W założeniach miał to być system zdolny do obsługi kilku użytkowników jednocześnie, z których każdy przyłączany był za pomocą zdalnego terminala. Planowano też wspierać przechowywanie i współdzielenie danych między wykorzystującymi go osobami. W roku 1969 projekt, choć ukończony, nie odniósł znaczącego sukcesu. Dlatego zarząd Bell Labs zdecydował się go porzucić. Jednak jeden z inżynierów, Ken Thompson, postanowił kontynuować pracę samodzielnie. Po pewnym czasie, w ramach testów, napisał grę Space Travel, działającą na komputerze GE 635 pracującym pod kontrolą Multics. Wyniki badań pokazały, że komputer był za wolny aby można było w nią grać, a koszt jej ładowania wynosił równowartość 50$ 14. Szukając poprawienia wydajności, Thompson przepisał kod gry, tym razem dla komputera PDP-7, w czym pomógł mu Denis Ritchie[bel01]. W ten sposób zawiązała się między nimi współpraca, która dzięki doświadczeniu i ideom zdobytym przez Thompsona podczas projektowania Multics, doprowadziła do powstania nowego systemu dla PDP-7. Początkowo nazwano go UNICS, a następnie przemianowanego na UNIX. Prawdziwy przełom nastąpił jednak później: Denis Ritchie stworzył język C, który wprowadzał poziom abstrakcji, pozwalający na tworzenie oprogramowania niezależnie od kodu maszynowego specyficznego modelu komputera. W 1973 Thompson zaprogramował całe jądro 15 UNIX w tym języku. Napisanie jądra systemu w języku C stworzyło możliwość uruchomienia UNIX na różnych architekturach, a co za tym idzie, pisania programów które działać będą na każdym komputerze(rysunek 3.4). Dodatkowo, wymagania sprzętowe systemu były niewielkie mógł zostać użyty na stosunkowo niedrogich stacjach roboczych. Sprawiło to, że zainteresowały się nim amerykańskie 14 szacowana wartość pieniężna, którą uzyskano by za użyczenie na ten czas dostępu do maszyny, co było wtedy powszechną czynnością 15 najważniejsza część każdego systemu operacyjnego, odpowiedzialna za bezpośrednią obsługę wszystkich elementów sprzętowych komputera

28 3.7. Historia powstania 24 Rysunek 3.4: Wykorzystanie UNIX i C do tworzenia oprogramowania uniwersytety, którym UNIX został udostępniony. Do dziś system ten jest rozwijany w środowiskach akademickich. Po pewnym czasie, komercyjne organizacje dostrzegły możliwość oszczędności na drogim sprzęcie i ciągłych szkoleniach kadr przy użyciu wspólnego dla wszystkich maszyn systemu. Z tego powodu, chociaż początkowo nie miał być projektem komercyjnym, wprowadzono możliwość kupna za skromną opłatą UNIX-a wraz z kodem źródłowym, którego udostępnianie było wtedy standardową praktyką. Od tego momentu liczba dystrybucji zaczęła wzrastać znacząco, ponieważ każda z firm starała się jak najbardziej dostosować UNIX-a do własnych potrzeb[ano03]. Niestety wraz z upływem lat, coraz więcej z firm zaczęło zamykać kod źródłowy swoich wydań i sprzedawać je za coraz większą cenę. Pod koniec lat 70-tych stało się tak z większością dystrybucji, co spowodowało frustrację u użytkowników chcących korzystać z niedrogiego i wydajnego systemu[har03]. Czas oprogramowania innego niż własnościowe wydawał się kończyć. Nieoczekiwanie z pomocą przyszedł Richard M. Stallman. W 1979 był programistą na wydziale Sztucznej Inteligencji Massachusetts Institute of Technology. Firma Xerox podarowała MIT najnowszy model swojej kserokopiarki, który potrafił drukować dokumenty przesłane za pomocą sieci, do której był podłączony. Dodatkowo jej prędkość drukowania była 10-krotnie większa od poprzedniego modelu. Chcąc zrobić z niej jak najlepszy użytek, pracownicy działu SI podłączyli ją do lokalnej sieci umożliwiając korzystanie z niej całemu personelowi. Główną wadą drukarki okazała się skłonność do częstego zacinania się papieru. Podejście do drukarki i wyciągnięcie go nie stanowiło dużego problemu, ale trzeba było wiedzieć kiedy to zrobić. Inżynierowie firmy Xerox założyli, że ktoś zawsze będzie obok drukarki, aby odczytać informację o zacięciu i zareagować, więc informacja nie była przekazywana przez sieć do osoby wysyłającej zadanie, tylko sygnalizowana odpowiednią diodą. Jednak w przypadku wydziału SI, drukarka znajdowała się na innym piętrze niż personel. Richard M. Stallman postanowił zrobić to, co wykonał już kilka lat wcześniej dla innego modelu drukarki zmodyfikować sterownik tak, aby uzyskać informację zwrotną o stanie drukowania na ekranie komputera. Nie udało się tego dokonać, ponieważ producent dostarczył zamknięty

29 3.7. Historia powstania 25 (nie zawierający czytelnych dla człowieka kodów źródłowych) sterownik. Prośba o dostarczenie kodu, skierowana bezpośrednio do firmy Xerox, została odrzucona. Mimo to, nie zrażając się, Stallman próbował uzyskać dane bezpośrednio od profesora Roberta Sproulla, byłego pracownika Xeroxa i ówczesnego dyrektora Sun Laboratories. Spotkał się z ponowną odmową, ponieważ każda osoba, która pracowała nad sterownikiem drukarki, podpisywała umowę o przestrzeganiu tajemnic handlowych. Na tym zakończyły się próby poprawienia sterownika[wil02]. Incydent z drukarką uświadomił Stallmanowi, że firmy coraz częściej postrzegają oprogramowanie jako swój sekret, zamykając dostęp do wymiany informacji, w której duchu oprogramowanie powstawało od końca drugiej wojny światowej. Nie zareagował on jednak na ten fakt w żaden zdecydowany sposób. Zrobił to dopiero kilka lat później, gdy o podpisanie umowy zabraniającej ujawniania kodów źródłowych poproszono również pracowników wydziału Sztucznej Inteligencji, w którym pracował Stallman. Mając w pamięci przygodę ze sterownikiem Xerox, odmówił. W krótkim czasie został odsunięty od większości projektów, nad którymi pracowano w instytucie. Nie mogąc pogodzić się z takim stanem rzeczy, zrezygnował z pracy. Wtedy, jak sam stwierdził[sta07], stanął przed wyborem co dalej: nie zamierzał pracować nad własnościowym oprogramowaniem, nie chciał też marnować swoich umiejętności porzucając zawód, w którym czuł się dobrze. Po pewnych przemyśleniach postanowił spróbować wskrzesić społeczność pasjonatów w postaci, jaka istniała na początku jego kariery zawodowej. Rysunek 3.5: Logo GNU[wik07] W 1983 roku Richard M. Stallman rozpoczął projekt GNU publikując The GNU Manifesto ([Sta83]) i zakładając Free Software Foundation (FSF, pol. Fundacja Wolnego Oprogramowania). Głównym celem organizacji było tworzenie aplikacji, które będą wolne, czyli będą dawały użytkownikowi cztery podstawowe wolności: wolność użytkowania programu w dowolnym celu (wolność 0), wolność badania sposobu działania programu i możliwość jego modyfikacji, co implikuje udostępnienie kodu źródłowego (wolność 1), wolność dystrybucji programu wraz z jego kodem (wolność 2), wolność udoskonalania programu i rozpowszechniania tych zmian (wolność 3). Zapewnienie tych praw, przywracało stan rzeczy, na jakim Stallmanowi zależało. Pierwszym celem fundacji stało się stworzenie wolnego i otwartego systemu operacyjnego, na którym można by uruchamiać kolejne programy. Wzorcem stał się UNIX był przenośny i dobrze znany użytkownikom. Praca nad nim miała skupić ludzi o poglądach podobnych do poglądów Stallmana. Prawdziwe ożywienie i zainteresowanie z zewnątrz pojawiło się w świecie wolnego oprogramowania jednak nie za sprawą programów GNU, ale dzięki otwartemu i zgodnemu z UNIX-em

30 3.7. Historia powstania 26 jądrem systemu operacyjnego. Przy pomocy narzędzi FSF zaczął je tworzyć w 1991 roku student Uniwersytetu w Helisinkach, Linus Torvalds. Początkowo pojawiły się zarzuty o nieuprawnione kopiowanie kodu UNIX-a, ale jak wykazały analizy, nieuzasadnione. Linux, ponieważ tak nazywał się nowy system, był co prawda wzorowany na ideach UNIX-a, a dokładnie jego odmianie Minics, ale pisany od podstaw samodzielnie. Przełomem okazał się być nie tylko sam system, ale sposób jego powstawania[ray00a]. Do czasów Linuxa, uważano, że system operacyjny to zbyt duży i złożony projekt, by mógł być rozwijany inaczej niż przez dobrze zorganizowaną, niewielką liczbę osób. Pogląd ten dotyczył zarówno komercyjnych jak i tworzonych przez społeczność FSF programów. Linux powstawał natomiast przy współpracy setek 16 entuzjastów komunikujących się głównie przez Internet. Jakość i przydatność powstającego kodu weryfikowano poprzez cotygodniowe wydania, które były każdorazowo oceniane przez liczną rzeszę użytkowników, co przyrównano do selekcji naturalnej Darwina. Ku zdziwieniu wielu, ten sposób działania zdał egzamin. W 1994 roku Linux osiągnął wersję 1.0 oraz milion użytkowników, zainteresowały się też nim firmy, tworząc komercyjne dystrybucje, takie jak Red Hat. Trudno dziś oszacować popularność systemu, jednak jest on bez wątpienia najpopularniejszym programem z rodziny GNU. Sposób powstawania Linuxa zainteresował Erica Raymonda, aktywnego w latach 80-tych członka FSF. Napisał on artykuł[ray00b] analizujący dwa sposoby tworzenia oprogramowania: katedralny, stosowany w firmach i FSF, oraz bazarowy, użyty przy pisaniu Linuxa. Jego odczyt na O Reilly Perl Conference w 1997 roku zwrócił uwagę firmy Netscape, mającej zamiar otworzyć kod swojej przeglądarki, która traciła udział w rynku na rzecz Internet Explorera firmy Microsoft. Raymond został poproszony o pomoc przy tym przedsięwzięciu[osi06]. Podczas obrad ustalono, że nie należy kultywować czysto moralnych aspektów jawnego kodu aplikacji, które towarzyszyły FSF. Otwarte źródła traktowane miały być jako praktyczny model tworzenia aplikacji, który prowadzi do sprawnego powstawania programu, nie jako jeden z fundamentów wolności. Dlatego do nazwania tego modelu powstawania programów użyto określenia Open Source zaznaczającego otwartość kodu, nie mówiącego jednak o wolności. 8 lutego 1998 Eric Raymond wydał pierwszą oficjalną odezwę do społeczeństwa, a niedługo potem założył Open Source Inititative, OSI. Rysunek 3.6: Open Source Inititative Ruch zyskał aprobatę Linusa Torvaldsa, natomiast Richard Stallman, początkowo przychylny przyłączeniu Open Source Initiative do FSF, zrezygnował, nie określając jednak OSI jako wrogów. Stwierdził[Sta02]: Ruch Wolnego Oprogramowania i Otwartego Oprogramowania są dziś oddzielnymi ruchami z innymi poglądami i celami, jakkolwiek możemy i współpracujemy ze sobą przy pewnych konkretnych projektach. 16 jak podaje Eric Steven Raymond[Ray00b], w rozwoju Linuxa wzięło udział ponad osób

31 3.7. Historia powstania 27 Rysunek 3.7: Udział serwerów dla aktywnych domen od czerwca 2000 do kwietnia 2007[net07] Free Software Foundation i Open Source Initiative istnieją i działają aktywnie do dnia dzisiejszego, stając się coraz bardziej znaczącymi organizacjami w świecie oprogramowania. W chwili obecnej istnieje podnad programów udostępnionych przez FSF, na postawie jednej z zaaprobowanych licencji. Na stronie która przechowuje otwarte oprogramowanie, istnieje prawie projektów, zarejestrowanych jest 1,5 miliona użytkowników ,50% stron w intenecie obsługiwanych jest przez tworzony przez społeczność serwer Apache (rysunek 3.7). Wszystko to uwidacznia, że mimo ciągłej przewagi ze strony zamkniętego oprogramowania, programy i społeczność wpierająca Open Source są w stanie z nim skutecznie rywalizować. Daje to duże nadzieje na dalszą ekspansję otwartego modelu oprogramowania, a co za tym idzie, na lepszą jakość i większą dostępność oprogramowania jako takiego. 17 stan na kwiecień 2007 roku 18 należy zwrócić uwagę, że rejestrowanie potrzebne jest tylko twórcom oprogramowania, nie osobom chcącym jedynie ściągnąć i użytkować program, co zwiększa wagę tej liczby

32 Rozdział 4 Zintegrowany System Informatyczny W rodziale tym zostaje omówiony projekt kompletnego systemu biznesowego, opartego o oprogramowanie Open Source. Każdy z komponentów, poczynając od systemu operacyjnego, środowiska uruchomieniowego, jakim są bazy danych i kontenery aplikacji, a kończąc na zaawansowanych programach biznesowych, może być z powodzeniem pobrany z internetu bez wnoszenia żadnych opłat i wykorzystany w firmie. Docelowa dystrybucja zawiera gotowe do przetestowania, opisane w pracy komponenty. Z przeświadczenia o tym, że żadna pojedyncza aplikacja nie wystarczy do prowadzenia nowoczesnej firmy, system został zanalizowany również pod kątem integracji poszczególnych elementów. Dlatego oprócz aplikacji wykorzystywanych w zastosowaniach biznesowych, została w nim umieszczona i wykorzystana platforma integracyjna. Ponieważ system przeznaczony jest dla osób odpowiedzialnych za podejmowanie strategicznych decyzji w przedsiębiorstwie, niekoniecznie posiadających rozległą wiedzę informatyczną, procedura uruchomienia go została pomyślana pod kątem jak największego jej uproszczenia. Dzięki wykorzystaniu wirtualnego komputera, użytkownik uzyskuje w pełni przygotowany do pracy system. W proponowanym systemie informatycznym można wydzielić nastepujące moduły biznesowe: System zarządzania treścią (Content Management System, CMS) pomoże stworzyć i prowadzić atrakcyjną wizualnie i funkcjonalnie stronę internetową. Do edycji jej zawartości nie potrzebne są umiejętności z zakresu informatyki. Portal jest rozwiązaniem z pozoru przypominającym CMS, jednak jego siła tkwi w dużo większych możliwościach rozbudowy go o programowalne komponenty realizujące zaawansowane zadania. Planowanie Zasobów Przedsiębiorstwa (Enterprise Resource Planning, ERP), to wspomagająca zarządzanie, najbardziej rozbudowana z aplikacji opisanych w tej pracy. Obejmuje niemal każdy aspekt funkcjonowania firmy: planowanie i produkcja, sprzedaż i marketing finanse i księgowość, zasoby ludzkie. Zarządzanie Relacjami z Klientem (Customer Relationship Management, CRM) służy do utrwalania historii kontaktów z klientem. Zapamiętuje daty, tematy i wyniki spotkań. Potrafi przypomnieć o podjętych zobowiązaniach i koniecznych działaniach. Komunikacja Dzięki komunikacji za pośrednictwem internetu tekstowej i głosowej można znacząco obniżyć koszty połączeń i ułatwić klientom kontakt z firmą. Dodatkowo, dzięki integracji 28

33 4.1. System Zarządzania Treścią 29 kanałów wymiany informacji z innym aplikacjami systemu, uzyskać można usystematyzowany zbiór danych powiązany z konkretnymi klientami lub procesami biznesowymi. Tradycyjne prace biurowe Prace prowadzone przy wykorzystaniu aplikacji wchodzących w skład pakietu biurowego, czyli zazwyczaj edytora tekstów, arkusza kalkulacyjnego, programu do tworzenia prezentacji multimedialnych. 4.1 System Zarządzania Treścią System Zarządzania Treścią (CMS, ang. Content Management System), to system pozwalający na łatwe tworzenie i zarządzanie zawartością strony internetowej. Na CMS składają się dwa podstawowe elementy: moduł edycji informacji i moduł jej prezentacji. Pierwszy z nich, pozwala osobie nie znającej technik tworzenia stron internetowych, np. języka HTML, na modyfikację zawartości merytorycznej serwisu. Dzieje się to zazwyczaj za pomocą umieszczonych w aplikacji, prostych w obsłudze formularzy. Drugi moduł zamienia informacje wprowadzone przez redaktora, na treść witryny dostępną dla wszystkich odwiedzających. Aplikacje CMS są, dla firm szukających aktywnego kontaktu z klientem, dużo lepszym rozwiązaniem, niż strona internetowa edytowana na żądanie przez specjalistę z poza firmy. Informacje o nowych produktach, wydarzeniach mogą być w prosty i szybki sposób tworzone i publikowane przez personel nietechniczny. Są one wersjonowane, należą także do cyklu publikacyjnego. Treść zawarta w witrynie jest automatycznie indeksowana i możliwa do efektywnego przeszukiwania, co ułatwia osobom odwiedzającym znajdywanie potrzebnych danych Wybrane rozwiązanie Rysunek 4.1: Joomla TM Jako przykładowe rozwiązanie CMS, wybrano dostępny na licencji GPL system Joomla TM. Jest on jednym z najbardziej znanych i najszerzej stosowanych projektów Open Source. Mimo sporej konkurencji na rynku (około 70 aplikacji tego samego typu), udało mu się wygrać w 2005 roku nagrodę dla najlepszej aplikacji Open Source, a w 2006 Open Source CMS Award[Pub06]. Joomla jest znakomitym wyborem dla każdej firmy, która ma zamiar nawiązać aktywny kontakt z klientami za pomocą własnej witryny. Niskie wymagania (wykupienie wirtualnego serwera to koszt około 300 zł rocznie), prostota obsługi i szeroki wachlarz możliwości czynią z niej propozycję wartą przemyślenia. Aplikację można wypróbować zarówno od strony administracyjnej jak i użytkownika pod adresem Cechy, które wyróżniają Joomla, to: bardzo prosta instalacja przy pomocy kreatora, funkcjonalny i intuicyjny moduł redakcji,

34 4.1. System Zarządzania Treścią 30 wyczerpująca dokumentacja, skalowalność. Dzięki prostemu, obsługiwanemu przez przeglądarkę modułowi administracji, można efektywnie zarządzać całym programem. Dostępne opcje pozwalają na określenie zasad na jakich strona funkcjonuje. Ze względu na ich liczbę nie zostaną tutaj wszystkie przytoczone, warto jednak wymienić kilka ciekawszych możliwości: użycie bufora podręcznego (ang. Page Global Configuration cacheing) ze względu na specyfikę dostępu do informacji (są one przechowywane w bazie danych), przy dużym natężeniu użytkowników serwis może działać zbyt wolno. Bufor powoduje, że strony przy pierwszym wyświetleniu zapisywane są w pamięci podręcznej, skąd przy następnym odwołaniu (zamiast z bazy danych) są pobierane. Możliwe jest określenie czasu ważności takiej pamięci, po którym strona zostanie ponownie wczytana z bazy; moduł statystyk (ang. Page Global Configuration Statistics) uruchomienie statystyk odwiedzin serwisu, pozwalających przyjrzeć się ilości odwiedzin serwisu szablony strony (ang. Page Template Manager Site Templates) pozwala na dostosowanie wyglądu portalu do własnych potrzeb poprzez zmianę jego szaty graficznej. Dostępnych jest wiele darmowych schematów, spośród których można wybrać najbardziej odpowiedni, a następnie zastosować go do swojej strony. Samodzielna edycja lub tworzenie szablonu wymaga jednak znajomości podstaw HTML; moduł instalacyjny (ang. Installers) jedna z najciekawszych opcji Joomla. Pozwala na instalację nowych elementów funkcjonalnych i niefunkcjonalnych strony. Mogą to być proste komponenty, jak kalendarz, ale również bardzo rozbudowane jak sklep internetowy. Komponenty tworzone są zarówno przez społeczność skupioną wokół projektu, jak i przez komercyjnych dostawców. Sam proces instalacji ogranicza się do wskazania pliku z komponentem i kliknięcia przycisku Instaluj ; wiadomości (ang. Messages) miejsce w którym pojawiają się wszelkie informacje wysłane przez użytkowników i gości do administratora jak również komunikaty systemu; pomoc (ang. Help) na uwagę zasługuje bardzo szczegółowa i przejrzysta pomoc dostępna na każdym kroku pracy. Zadaniem zaawansowanego redaktora (administratora), jest stworzenie początkowej struktury serwisu Joomla pozawala na daleko idącą modyfikację rozmieszczenia treści. Standardowo istnieje jedno menu główne, w lewej lub górnej części strony, w miejscu centralnym znajduje się treść, poniżej umiejscowiona jest stopka(rysunek 4.3). Na rysunku pokazano standardowy układ strony Joomla, wraz z domyślnymi dodatkami (kolor zielony)[joo07]: 1. Logowanie umożliwia zalogowanie się, rejestrację, przypomnienie hasła, 2. Kolporter RSS odnośniki do nagłówków aktualnych wiadomości w serwisie, 3. Reklama Projektu Joomla, która może zostać zmieniona przez adminstratora na dowolną inną, 4. Popularne zestaw odnośników do najczęściej przeglądanych artykułów, 5. Nowości zestaw odnośników do najnowszych artykułów,

35 4.1. System Zarządzania Treścią 31 Rysunek 4.2: Moduł administracyjny Joomla[joo07] 6. Szukaj wyszukiwarka, 7. Migawki wybrane losowo zwięzłe wiadomości albo skróty (wstępy) artykułów 8. Reklama Joomla drugi przykład, tym razem niewielkiej reklamy graficznej, 9. Losowy obraz wybrany obraz spośród umieszczonych w specjalnym katalogu, 10. Sonda krótka ankieta z łączami do poglądu wyników i innych sond, 11. Zmień szatę umożliwia zmianę wyglądu, 12. Statystyki informacja o serwisie i serwerze. Elementy te mogą być dowolnie zmieniane i przemieszczane poprzez edycję szablonu strony i wprowadzebnie odpowiednich ustawień modułów w administracji. Aby tego dokonać, należy zdefiniować etykiety (np. banner, stopka ) w menu edycji pozycji modułów. Następnym krokiem jest powiązanie etykiety z wybranym elementem (lub elementami) w menadżerze modułów. Na koniec, już w szablonie strony, oznacza się miejsca gdzie znaleźć sie mają komponenty oznaczone przez użytkownika daną etykietą. Przykładowy kod szablonu czytającego komponent stopki, wygląda następująco: <table> <tr> <td> <?php mosloadmodules ( stopka );?> </td> </tr> </table> Po zakończonym przetwarzaniu strony przez Joomla, w oznaczonym miejscu znajduje sie kod modułu:

36 4.1. System Zarządzania Treścią 32 Rysunek 4.3: Budowa strony serwisu[joo07] <table> <tr> <td> Stopka <b>cms</b> </td> </tr> </table> Do menu można dodawać dowiązania do kolejnych elementów, które należą do tzw. zawartości statycznej. Zawartość statyczną można określić jako samodzielny dokument. Nie posiada, ani nie potrzebuje, żadnej dalszej klasyfikacji, np. z powodu przynależności do bardzo wąskiej tematyki, którą można pokryć za pomocą pojedynczego wpisu. Nie ma potrzeby aby grupować go razem z innymi. Zawartością statyczną może być przykładowo strona z danymi teleadresowymi czy też historia powstania firmy. Treść, którą można pogrupować ze względu na podobną tematykę, należy zorganizować w sekcje i podrzędne w stosunku do nich kategorie. Wymuszenie dwóch poziomów kategoryzacji może na początku wydawać się nadmiarowe, jednak przy większej ilości wprowadzanych danych, staje się przydatne. Zazwyczaj rozmieszczenie dokumentów w części prezentacyjnej odzwierciedla ich przydział do sekcji i kategorii, na przykład poprzez zagłębione menu, jednak możliwe jest pominięcie tych poziomów i zaprezentowanie końcowych treści bezpośrednio. Dodawanie zawartości odbywa się poprzez wybranie odpowiedniej (ang. Add new content, rysunek 4.2) opcji z menu. Przedstawiony widok umożliwia łatwe utworzenie tekstu i określenie opcji jego publikacji. Poprawnie utworzony dokument powinien zostać przypisany za pomocą rozwijalnego menu do wcześniej utworzonej sekcji (np. Oferta ) i kategorii (np. Masaże ) (rysunek 4.4). Następne obowiązkowy jest tytuł (np. Masaż aromaterapeutyczny ) i tekst streszczenia. Zostanie ono zaprezentowane zazwyczaj obok wielu innych streszczeń dla dokumentów z tej samej kategorii, dlatego nie należy w nim umieszczać obszernych informacji. Pełna treść powinna znaleźć się w przeznaczonym do tego celu polu. Wprowadzone tam informacje będą widoczne dla czytającego na osobnej stronie. Edycja dokumentu została wzbogacona poprzez zastosowanie edytora wizualnego, tzw. WY- SIWYG (WHAT YOU SEE IS WHAT YOU GET rysunek 4.5), przypominającego wyglądem

37 4.1. System Zarządzania Treścią 33 Rysunek 4.4: Edycja dokumentu Rysunek 4.5: Edytor wizualny Rysunek 4.6: Opcje publikacji popularne aplikacje do edycji tekstu. Udostępnia on takie opcje jak: zmiana kroju, rozmiaru i koloru czcionki, dodawanie tabel i multimediów, ustawianie układu tekstu. Możliwe są również bardziej skomplikowane działania, jak znajdź/zamień. Wszystkie ustawienia zapisywane są wewnątrz edytora jako strona w języku HTML, dlatego w dowolnym momencie możliwe jest przełączenie się i bezpośrednia edycja kodu. Nic nie stoi na przeszkodzie, aby w trybie HTML wykorzystać wcześniej stworzone (np. w innej witrynie) strony internetowe. Po zakończeniu edycji, należy określić opcje publikacji (rysunek 4.6). Najważniejsze z nich to: pokaż na stronie głównej (Show on Front Page) zaznaczenie spowoduje ukazanie się dokumentu bezpośrednio na stronie głównej, o ile została ona ustawiona w tryb publikacji informacji, Opublikowane (Published) pomiń etap informacji wprowadzanej i publikuj dokument, Poziom dostępu (Access Level) określ grupy użytkowników które mają mieć prawo wglądu edytowanego tekstu. Po ustaleniu wszystkich opcji można skorzystać z dostępnych czynności (rysunek 4.7), aby obejrzeć podgląd, a następnie zapisać utworzony dokument. Jeśli zaznaczono natychmiastową

38 4.1. System Zarządzania Treścią 34 Rysunek 4.7: Dostępne czynności Rysunek 4.8: Standardowy widok dokumentu publikację, dokument stał się już widoczny dla użytkowników odwiedzających witrynę. Widok dokumentu może zostać dostosowany do własnych potrzeb, standardowo składa się z (rysunek 4.8): tytułu, który jest jednocześnie adresem URL artykułu, streszczenia, pełnej treści dokumentu, elementu umożliwiającego czytającym wystawienie oceny, ikon pomocniczych, które pozwalają powiadomić znajomych o artykule za pomocą a, a także obejrzeć wersję artykułu przygotowaną do wydruku. Silną stroną Joomla jest też duża i aktywna społeczność użytkowników, szacowana na osób, która nie tylko udziela pomocy na forach dyskusyjnych, ale również wspomaga twórców tworząc roszerzenia aplikacji. Zobaczyć je można pod adresem Najpopularniejsze kategorie rozszerzeń to: zarządzanie dokumentami, galerie zdjęć i multimediów, tworzenie dynamicznych formularzy, hierarchiczne katalogi treści (podobnie jak kategorie towarów na allegro.pl), sklepy internetowe, forum, chat,

39 4.1. System Zarządzania Treścią 35 kalendarze, publikacja dzienników internetowych (tzw. blogów), newsletter (przesyłane do użytkowników informacji drogą mailową), narzędzia do analizy danych, zarządzanie reklamami w serwisie, subskrypcje Wymagania Wymagania dla wersji : PHP 4.2.x lub nowszy, MySQL 3.23.x lub nowszy, Apache lub nowszy. PHP powinno być skonfigurowane do współpracy z MySQL, Zlib i przetwarzania XML Przydatne adresy strona główna projektu polska strona projektu pobranie aplikacji przetestowanie działającej instalacji roszerzenia szablony graficzne Rozwiązania konkurencyjne Drupal[ide07] Strona domowa: Najnowsza wersja: Demostracja: Drupal, podobnie jak Joomla, posiada małe wymagania sprzętowe. Instalacja, co prawda trudniejsza, nie powinna nastręczać problemu osobom mającym za sobą pewnie doświadczenie w administracji serwerów internetowych. Drupal oferuje rozbudowane narzędzia dla użytkowników chcących rozwijać swoją stronę bez zagłębiania się w jej kod, a tylko korzystając z gotowych szablonów. Zaimplementowany w aplikacji rozbudowany cykl życia dokumentu spełni oczekiwania najbardziej wymagających redaktorów. Rozszerzenia, będące kluczowym elementem Joomla, tutaj potraktowane zostały nieco inaczej. Autorzy nie udostępniają tak wygodnego dostępu do jądra aplikacji, przez co tworzenie dodatków jest trudniejsze. Co prawda istnieją moduły, które można umieścić w programie, są jednak wyraźnie uboższe funkcjonalnie od ich odpowiedników. Podsumowując, Drupal to dobre wyjście dla osób, którym odpowiada jego początkowy - rozbudowany - zestaw funkcji, pozostałym należy polecić inne rozwiązanie.

40 4.2. Planowanie Zasobów Przedsiębiorstwa 36 Plone[ide07] Strona domowa: Najnowsza wersja: 2.5 Demostracja: Plone jest wynikiem starannie zaplanowanego procesu rozwojowego. Dostarcza on sprawną i dojrzałą platformę przeznaczoną do zaawansowanych zastosowań, połączoną z prostą w obsłudze częścią przeznaczoną dla personelu nietechnicznego. Dla administora strona jest dosyć trudna w konfiguracji, wymagania sprzętowe są wysokie. Program został napisany w języku Python, który jest dużo mniej popularny od PHP, wymaga więc większych nakładów finansowych na rozszerzenie funkcjonalności. Czyni to z Plone rozwiązanie dla wymagających organizacji, gotowych poświęcić sporo zasobów na konfiguracje i pielęgnację, aby w zamian dostać niezawodny produkt. Plone jest najbardziej dojrzałą i stabilną z opisanych aplikacji. Można ją polecić organizacjom chcącym mieć największą możliwą pewność poprawnego i niezawodnego działania. W tej chwili strona wykrzystująca to rozwiązanie stosowana jest między innymi jako oficjalna strona rządu Brazylii, Planowanie Zasobów Przedsiębiorstwa Określenie Planowanie Zasobów Przedsiębiorstwa (Enterprise Resource Planning, ERP), odnosi się do grupy złożonych modułów biznesowych, mających za zadanie zintegrowanie w jednej aplikacji rozproszonych informacji i procesów zachodzących w przedsiębiorstwie, aby umożliwić jak najlepsze nimi zarządzanie. Według badań z roku 2004[Wę04] rozwiązania typu ERP wykorzystywało około połowy polskich firm. Systemy klasy ERP ukształtowały się poprzez ewolucję aplikacji służących do planowania zapotrzebowania materiałowego (Material Requirements Planning, MRP)[Wie02]. Programy typu MRP i MRP II były stopniowo rozbudowywane o kolejne funkcje, wykraczające poza ramy podstawowych założeń. Dlatego systemy klasy ERP bywają również określane jako MRP III (Money Resource Planning, Planowanie Zasobów Finansowych). Komponenty aplikacji pokrywające pożądane możliwości, niekonieczenie pochodzą od jednego wydawcy, nie ma również oficjalnie zdefiniowanego minimum funkcjonalności, które pozwoliłyby jednoznacznie zaklasyfikować aplikację jako ERP. Można jednak przyjąć, że wzorcowa implementacja zawierać powinna: planowanie produkcji, sprzedaż, finanse, magazynowanie, zarządzanie zapasami, zaopatrzenie, zarządzanie łańcuchem dostaw, księgowość, zarządzanie zasobami ludzkimi,

41 4.2. Planowanie Zasobów Przedsiębiorstwa 37 kontakty z klientami. Systemy klasy ERP najlepiej sprawdzają się w firmach nastawionych na wytwarzanie i sprzedaż dóbr, a więc należących zazwyczaj do sektora przemysłowego lub handlowego. Działy logistyczne takich przedsiębiorstw muszą zmagać się ze strumieniem ciągle napływających informacji, dotyczących planów produkcji, zapotrzebowania na materiały, stanu realizacji zamówień, transportu. Tego rodzaju sekcje mogą w pełni wykorzystać możliwości systemu planowania zasobów w opanowywaniu ich rozbudowanych procesów. Dla przedsiębiorstw, w których przeprowadzane czynności nie są tak rozbudowane, ERP może nadal okazać się bardzo przydatny, wspomagając organizacje informacji biznesowych i planowanie wykorzystania dóbr. Dostępne funkcje znajdują również zastosowanie w wielu innych dziedzinach działalności przedsiębiorstwa, także na niższym niż zarządzającym szczeblu. Systemy takie mogą wspierać na przykład zaawansowane zarządzanie stanami magazynowymi. Jak dużą pomocą może być taki moduł magazynowania, pokazuje przykład firmy korzystającej z tzw. magazynów wysokiego składowania, czyli hali o dużej powierzchni, gdzie towary mogą być rozmieszczane piętrowo do wysokości nawet 45 metrów. Do obowiązków zarządcy należy rozplanowanie układu produktów a także wytycznie tras np. wózków widłowych, gdy pojawi się zamówienie odbioru lub dostawa towaru. Ułożenie na regałach musi być starannie przemyślane, tak, aby materiały potrzebne w najbliższym czasie nie były umieszczone pod oczekującymi na późniejsze wykorzystanie, a nowe dostawy składowane były również według tych reguł. Dodatkowo towary, które zostaną użyte w jednym procesie, powinny znaleźć się jak najbliżej siebie, aby na przemieszczanie urządzeń rozładowujących nie trzeba było tracić więcej czasu niż to jest konieczne. Spełnienie tych wszystkich zależności samodzielnie jest trudnym zadaniem. Mając do dyspozycji system klasy ERP, zarządca może skorzystać z automatycznego planowania rozkładu towaru i wyliczonych ścieżek dla wózków. Dobry system informatyczny będzie potrafił zaplanować rozkład towaru bliski optymalnemu, co zmniejszy smaryczny czas przyjęć i wydań. Oparcie jak największej ilości wykonywanych w przedsiębiorstwie czynności o system ERP, pozwoli na uzyskanie pomocy w niemal każdym obszarze działalności. Scentralizowane dane mogą być poddane analizie, dzięki której można będzie uzyskać odpowiedzi na kluczowe dla prawidłowego funkcjonowania pytania[gen04]: jaki jest przewidywany popyt i podaż na nasz produkt, co produkować aby spełnić oczekiwania rynku, jak dużo powinniśmy produkować, a ile produkujemy, jakie surowce i półprodukty są potrzebne, jak rozdzielić produkcję pomiędzy oddziałami, jaka jest docelowa jakość produktu, czy cena produkcji towaru jest poprawna, jaki jest stan magazynowy poszczególnych produktów, gdzie znajduje się produkt w danym momencie, czy wysłano faktury i czy zostały one uregulowane, jaki jest obecny stan finansowy firmy.

42 4.2. Planowanie Zasobów Przedsiębiorstwa 38 Rysunek 4.9: Logo projektu Adempiere Poznanie odpowiedzi na powyższe pytania pozwoli na osiągnięcie przez firmę wymiernych korzyści: zmniejszenie nakładów pracy potrzebnych do uzyskana zadawalających efektów, polepszenie jakości współpracy z dostawcami, redukcję poziomu zapasów. W wyniku tych zmian, można oczekiwać podniesienia potencjału przedsiębiorstwa Wybrane rozwiązanie Sprośród wielu dostępnych na rynku systemów klasy ERP powstających w technologii Open Source, zdecydowano się na wybór tworzonego przez społeczność produktu Adempiere. Wywodzi się on w prostej linii od innego otwartego programu Compiere ERP & CRM. Powodem, dla którego zdecydowano się na utworzenie odrębnej od macierzystego projektu wersji, była zła atmosfera wokół firmy Compiere, którą oskarżano o użycie hasła Open Source bardziej jako chwytu marketingowego i metody pozyskania taniej siły roboczej, niż rzeczywistej otwartości ich oprogramowania[oon06]. Współpraca i dyskusja nad rozwojem Compiere prowadzona była głównie z parterami biznesowymi firmy, a nie z członkami skupionej wokół projektu społeczności. Nie bez znaczenia był też fakt, że nie wspierana była żadna z otwartych baz danych ( domyślnie projekt korzystał z Oracle XE). Zainicjowanie projektu Adempiere nastąpiło we wrześniu 2006 po publicznej debacie[oon06], podczas której obecny lider społeczności aplikacji, Redhuan D. Oon, przedstawił zarzuty wobec firmy Compiere i plany stworzenia prawdziwie otwartego systemu. Pół roku po debiucie, oba systemy, z wynikiem na korzyść Adempiere, porównał Mario Calderon, certyfikowany konsultant SAP[Cal06]. Ponieważ od odłączenia się projektów minął w chwili pisania tej pracy dopiero rok, większość zawartych w niej informacji można z powodzeniem zastosować do obu projektów. Twórcy systemu wyszli z założenia, że w dzisiejszym stylu zarządzania, w szczególności w małych i średnich przedsiębiorstwach, do których adresowane jest Adempiere, podział na poszczególne komórki nie jest sztywno przestrzegany. Wielu wykwalifikowanych pracowników, często nie zważając na rozkład zadań pomiędzy działami, wykonuje całe lub nawet wiele połączonych procesów. Tego typu zachowania postanowiono odzwierciedlić w programie, który zamiast tradycyjnego podejścia ze ścisłym podziałem obowiązków, został zaprojektowany do pracy przy wykorzystaniu procesów biznesowych (Business Process Management). Dzięki wykorzystania procesów biznesowych, następuje automatyczne wiązanie pewnych czynności. Dzieje się to w ten sposób, że użytkownik wykonujący zadanie, ma do dyspozycji na pewnym etapie jedną lub więcej akcji. W zależności od tego, którą z nich podejmie, zostanie przeniesiony w inny punkt programu, pozwalający na wykonanie czynności, które w świecie rzeczywistym są logicznym następstwem dokonanego wyboru. Przykładowo skompletowanie zamówienia przenosi

43 4.2. Planowanie Zasobów Przedsiębiorstwa 39 do wystawiania faktury, po której zatwierdzeniu użytkownikowi pokazywane się opcje transportu). W każdym momencie można przerwać taki proces i wrócić do niego w późniejszym terminie. Dużym plusem takiego rozwiązania jest konieczność wykonania wszystkich niezbędnych do zachowania procedury zadań. Dzięki temu można być pewnym, że np. żadna faktura nie zostanie przypadkowo opłacona, o ile zamówione materiały nie zostały wydane zgodnie ze zdefiniowanymi zasadami (faktura tworzona jest bezpośrednio z zamówienia sprzedaży lub dokumentu wydania towaru). W aplikacji idea BPM realizowana jest poprzez mechanizm nazwany Workflow. Workflow zazwyczaj określa się jako dobrze zdefiniowany sposób przepływu informacji pomiędzy powiązanymi z konkretnym procesem biznesowym uczestnikami. Adempiere w pełni wspiera zarządzanie takimi przepływami. Moduł Workflow został zbudowany zgodnie z wytycznymi Workflow Management Coalition światowej organizacji skupiającej analityków, programistów i menadżerów, zajmujących się ustaleniami standardów zarządzania procesami biznesowymi. W przedsiębiorstwie użycie Workflow wiąże się z uzyskaniem narzędzia, pozwalającego na kontrole nad zachodzącymi procesami. Dobrze zdefiniowane połączenia pomiędzy czynnościami pozwalają na usprawnienie pracy i minimalizują ryzyko wystąpienia sytuacji, gdzie wskutek przeoczenia lub błędu powstaje niezgodność pomiędzy komórkami firmy. Stosowanie Workflow pozwala też zarządzającemu na kontrolę postępów w realizacji zamówienia i ewentualne korekty w razie problemów. W odróżnieniu od wielu ERP i CRM, Workflow nie jest tylko dodane do aplikacji, ale to architekturę Adempiere budowano w oparciu jego ideę. Dzięki temu wszystkie procesy w Adempiere są gotowe do użycia w Workflow, można je łatwo rozbudowywać o kolejne etapy, a także modyfikować. Adempiere udostępnia trzy typy Workflow. Pierwszy z nich, General Workflow, prowadzi użytkownika krok po kroku informując go o czynnościach wymaganych do zakończenia etapu i całego procesu. Typ ten jest podobny do znanych z aplikacji biurkowych kreatorów, może być wykorzystany na przykład do tworzenia podsumowania miesiąca. Kolejnym typem jest Document Process Workflow ustalający reguły przetwarzania dokumentów. Zostaje uruchomiony automatycznie przy utworzeniu pisma. Przykład na wykorzystanie tego typu przepływu to konieczność zaaprobowania nowego projektu kolejno przez kierownika i dyrektora, zanim możliwe będzie przypisanie do niego zasobów. Ostatnim typem Workflow jest Document Value Workflow, które rozpoczyna się po wystąpieniu zdefiniowanego przez użytkownika warunku, na przykład start udzielania kredytu nowemu partnerowi biznesowemu. Procesy te powinny być rozszerzone przez użytkownika, aby dopasować je do zwyczajów panujących w danej firmie. Wadą Adempiere jest brak gotowego tłumaczenia na język polski. Aby spolonizować aplikację, koniczny jest import specjalnie przygotowanego zbioru plików XML (zajmuje on kilkanaście minut język wbudowywany jest w aplikację). Niestety, pliki te nie są dołączane do oficjalnej dystrybucji programu i trzeba je pobrać z jego repozytorium (miejsca składowania kodów źródłowych na serwerze). Samo tłumaczenie, za które podziękowania należą się panu Markowi Mosiewiczowi z firmy Jotel, pozostawia również co nieco do życzenia. Przykładowo, kluczowe do oddania istniejącej w Adempiere organizacji zadań w procesy określenie Requisition to Invoice, zostało przetłumaczone wprost na Sprzedaż. Nie wszystkie zwroty mają polskie odpowiedniki, tak więc można w aplikacji spotkać angielskie sformułowania. Samo tłumaczenie nie jest procesem technicznie skomplikowanym, tak więc na potrzeby tej pracy poprawiono i dodano kilka tłumaczeń. Do dzieła powinni przystąpić polscy użytkownicy Adempiere i dokończyć rozpoczętą przez firmę Jotel pracę. Zastosowania Adempiere można podzielić na obszary, obsługiwane za pomocą poszczególnych modułów.

44 4.2. Planowanie Zasobów Przedsiębiorstwa 40 Wewnętrzny proces Adempiere Wycena do fak- Rysunek 4.10: tury Moduł sprzedaży Moduł sprzedaży zorganizowany jest w proces wycena do faktury (Qoute to Invoice), którego schemat widoczny jest na rysunku Odpowiada on za łańcuch czynności wykonywanych podczas tworzenia wyceny dla klienta (opartej na ogólnych lub spersonalizowanych cennikach) lub całej oferty handlowej firmy, zarządzania zamówieniami, fakturowaniem i przyjęciem zapłaty. Odpowiednie funkcje są wbudowane w aplikację w taki sposób, że proces połączony jest z łańuchem dostaw i zarządzaniem relacjami z klientem. W standardowych aplikacjach ERP należałoby operować na sprzedaży, zamówieniach, kontach przychodów. Dzięki podejściu procesowemu Adempiere, operacje łączone są w ciąg pozwalający jednej osobie wykonać kolejne czynności. Kolejnym ułatwieniem jest fakt, że przedmioty dodane do zamówienia sprzedaży, a nie będące jeszcze zatwierdzone, są automatycznie rezerwowane w aplikacji do momentu zapisu lub anulowania dokumentu, tak, aby ustrzec się przed przekroczeniem stanu magazynowego i przyjęcia nadmiernych zobowiązań wobec odbiorców. Po zatwierdzeniu sprzedaży, opierając się o listę sprzedanych towarów, aplikacja pozwala na przygotowanie jednego lub wielu transportów do klienta. Ciekawa jest opcja automatycznej wysyłki natychmiast po pojawieniu się na stanie magazynu wymaganej ilości towaru. Umożliwiono również tworzenie faktur okresowych, zawierających sumaryczne zobowiązania. Otwarte pozycje sprzedaży zostają zatwierdzone poprzez dokonanie płatności (np. wpisanie czeku albo polecenie zapłaty ), tworzenie wpisu w księdze kasowej (np. faktura z opóźnionym terminem płatności) lub podczas zaksięgowania przelewu bankowego. Reguły płatności pozwalają na automatyczne tworzenie pokwitowań: wpisu do księgi kasowej dla operacji na kasie podręcznej i do księgowości dla zapłaty bezgotówkowej (karta kredytowa, czek). Istnieje również możliwość

45 4.2. Planowanie Zasobów Przedsiębiorstwa 41 Rysunek 4.11: Wewnętrzny proces Adempiere Zapotrzebowanie do faktury integracji Adempiere z serwisami transakcyjnymi w technologii VeriSign PayFlowPro w celu automatyzacji księgowania wpłat. Moduł zakupów Zapotrzebowanie do faktury (Requisition to Pay, rysunek 4.11) to proces używany do tworzenia zamówień zakupu, przetwarzania faktur otrzymanych od dostawców i dokonywania płatności. Funkcjonalność jest dobrze zintegrowana z zarządzaniem łańuchem dostaw. Odpowiada modułom zamówień i kontom płatności w tradycyjnych systemach ERP. Podobnie jak w Qoute to Cash, widać zysk z organizacji czynności w proces aplikacja pozwala na dokonanie zamówienia w kilku etapach. Użytkownik zgłasza zapotrzebowanie na towary. Dokument pojawia się w aktywnych procesach osoby upoważnionej do akceptacji, która może go zatwierdzić lub nie. Jeśli wydana zostanie pozytywna opinia, zapotrzebowanie trafia na listę, aby osoba odpowiedzialna za wysyłanie zamówień, mogła stworzyć (w dowolnym czasie) zagregowanie zlecenie zakupu. Użytkownik, który zgłosił zapotrzebowanie, jest na bieżąco informowany co dzieje się z jego wnioskiem, a po każdej dostawie (również częściowej), zostaje powiadomiony o dostępności materiałów. Zarządzanie relacjami z klientami Odpowiednie zarządzanie relacjami z klientem (Customer Relations Management, CRM), jest ważną misją każdej firmy. Pozwala na zwiększenie jakości obsługi obecnych i pozyskanie nowych klientów. Aplikacje typu CRM, dawniej spotykane zazwyczaj jako osobny projekt (np. SugarCRM), coraz częściej staje się wbudowanym modułem ERP. Tak dzieje się również w przypadku Adempiere, gdzie CRM jest zintegrowanym narzędziem, pozwalającym na przegląd wszystkich informacji powiązanych z wybranymi klientami. Zarządzanie tymi

46 4.2. Planowanie Zasobów Przedsiębiorstwa 42 relacjami jest również częścią procesu biznesowego, dzięki czemu w odróżnieniu od tradycyjnego podejścia stosowanego w zewnętrznych aplikacjach CRM, jakim była synchronizacja z ERP (patrz 4.6) wywoływana ręcznie lub okresowo, istnieje bezpośrednia dwukierunkowa zależność. Adempiere wspiera relacje z klientami poprzez udostępnieni narzędzi do tworzenia elektronicznych list wysyłkowych (list mailingowych) docierających bezpośrednio do zainteresowanych osób, lub też przekazując polecenia kontaktu do sprzedawców lub telemarketerów. Przedsiębiorstwo korzystając z tych funkcji może przeprowadzić skuteczną kampanię informacyjną dotyczącą nowych produktów, promocji czy też podsumowania mijającego okresu. Narzędzia analityczne dostępne w systemie, takie jak zbadanie zmian wzajemnych należności z klientem (klientami) w czasie, pozwolą na późniejsze zbadanie zysków i strat poniesionych podczas kampanii. Zarządzanie łańcuchem dostaw Zarządzanie łańcuchem dostaw (Supply Chain Management, SCM) pokrywa wszystkie kwestie związane z zarządzaniem materiałami, włączając w to dostawy towaru, transport, transfer do odbiorców i klientów końcowych. Adempiere pozwala na zdefiniowanie wytwarzanych dóbr i wykonywanych usług za pomocą rachunku materiałów i zamienników. Ceny dla tych składników mogą być importowane od dostawców. Produkty można organizować w kategorie i hierarchizować. Możliwe jest wyszukiwanie produktów po ich atrybutach. Dla każdego towaru istnieje opcja przechowywanie różnych cenników i monitorowania należnych zniżek. Obie te funkcje uwzględniają daty obowiązywania, aby pozwolić na przeprowadzanie np. akcji promocyjnych zależnych od sezonu. Kontrola rozmieszczenia towarów i wielu magazynów pomaga w organizacji sprawnego przepływu materiałów wewnątrz firmy. Tworzenie dostaw w Adempiere możliwe jest nie tylko w wyniku reakcji na indywidualne zamówienie, ale również seryjnie poprzez zdefiniowanie odpowiednich reguł. Przyjmowanie dostaw zostało wzbogacone o użyteczny mechanizm tworzenia dokumentów przyjęć poprzez porównywanie ich z zamówieniem zakupu lub wystawioną przez dostawcę fakturą. Możliwe jest również wprowadzenie i specjalne oznaczenie nie przyjętej jeszcze dostawy, aby móc zaplanować przyszłe zobowiązania (dostępny jest widok przyszłych dostaw na osi czasu). Adempiere posiada również narzędzie służące do tworzenia list uzupełnień materiałów, bazując na danych historycznych o sprzedaży lub docelowych poziomach zapasów. Tak utworzone listy mogą być podstawą do utworzenia zapotrzebowania lub bezpośrednio zamówienia. Zarządzanie relacjami z parterami biznesowymi Zarządzanie relacjami z parterami biznesowymi (Partner Relations Management, PRM) łączy ze sobą partnerów biznesowych przedsiębiorstwa, pozwalając im na ścisłą współpracę dzięki platformie Adempiere. Można je uznać za odpowiednik wewnętrznego modułu CRM, udostępnionego firmom podłączonym do serwera. Dla tych nie posiadających bezpośredniego dostępu do systemu, możliwy jest dostęp do informacji poprzez stronę internetową. Na moduł PRM składa się kilka funkcji: zarządzanie potencjalnymi klientami w jej skład wchodzi tworzenie i rozdzielanie zarządzania namiarami, razem z możliwością obserwacji postępów i wyników działań personelu w dowolnym momencie, księgowanie wydatków marketingowych umożliwia partnerom automatyczne fakturowanie wydatków, poboczne zamówienia tworzy możliwości łączenia zamówień z jednego źródła, a mających trafić do różnych partnerów,

47 4.3. Portal Informacyjny 43 zapytania obsługi klienta i serwisów gwarancyjnych inicjuje i nadzoruje przebieg poprawnej obsługi, współdzielenie danych pomiędzy partnerami można współdzielić część informacji, takich jak baza produktów i cenniki, klienci, udostępnianie usług serwer Adempiere umożliwia również udostępnienie usług dla partnerów, a wprowadzane przez nich informacje mogą być wykorzystane przez wszystkich uprawnionych użytkowników portalu Wymagania sprzętowe Dla wersji Adempiere 3.2.0: JDK 1.5 lub nowsza, PostgreSQL 8.1 lub nowyszy razez z PLJava 1.2 lub inna wspierana baza danych NOTATKI użyte przeze mnie tłumaczenia: cashbook - księga kasowa petty cash - kasa podręczna open items - otwarte pozycje settled - zatwierdzone Direct Debit - Polecenie Zapłaty reconciling - (pogodzenie) księgowanie 4.3 Portal Informacyjny Biznesowy Portal Informacyjny (Enterprise Information Portal, EIP) to aplikacja, która pozwala przedsiębiorstwu na udostępnienie użytkownikowi wewnętrznych i zewnętrznych danych, potrzebnych do podejmowania świadomych decyzji biznesowych[cc98]. Informacje grupowane i dostarczane są w wygodnej formie, jaką jest spersonalizowana strona internetowa. Dzięki temu, pracownik może w dowolnym miejscu korzystać z niedostępnych publicznie zasobów firmy, podanych w sposób przystosowany do jego potrzeb i przyzwyczajeń. Portal umożliwia dostęp nie tylko do agregowanej wiedzy, ale też do osób, których współpraca może być pożądana. W tym celu instalowane są odpowiednie narzędzia, pozwalające na sprawny i efektywny przebieg kooperacji. Patrząc powierzchownie na zainstalowany Portal, można odnieść wrażenie, że jego funkcje powielają możliwości Systemu Zarządzania Treścią (punkt 4.1). Nie jest to prawdą, ponieważ EIP jest tworem o wiele bardziej złożonym, a zadania przed nim stawiane znacznie przekraczają możliwości oprogramowania typu CMS, który zwykle ogranicza się do edycji i publikacji dokumentów. Charakterystyka funkcji, jakie oferować powinien program, aby móc zostać nazwany Portalem, została określona przez analityków, badających w 1998 roku zdobywające wówczas popularność zjawisko tego typu oprogramowania[cc98]. Pracownik korzystając z EIP ma dostęp do informacji pochodzących z wielu źródeł. Dostarczane są one na jeden z dwóch sposobów. Pierwszy z nich, zwany metodą push, polega na

48 4.3. Portal Informacyjny 44 Rysunek 4.12: Logo projekty Liferay przesyłaniu użytkownikowi danych, o które sam bezpośrednio nie poprosił, a które zostały uznane za stosowne do dostarczenia przez upoważnioną osobę trzecią (na przykład kierownika projektu). Taki mechanizm można wykorzystać w przedsiębiorstwach do odgórnego przydzielania zadań, które zdefiniowane przez zarządzającego, pojawiają się na spersonalizowanych stronach pracowników. Drugą techniką pozyskiwania informacji jest metoda pull, która polega na pobraniu informacji bezpośrednio na życzenie pracownika. Może to być na przykład przeszukiwanie firmowej bazy danych w celu zgromadzenia dokumentacji na temat przesłanego zadania. Chcąc zapewnić jak najściślejszą współpracę pomiędzy pracownikami, warto skorzystać z wielu opcji pracy grupowej dostarczanych przez Portal. Jego nieodzownym elementem są narzędzia interakcji z współpracownikami, pozawalające na zadawanie pytań, otrzymywanie na nie odpowiedzi i współdzielenie informacji z wykorzystaniem przestrzeni roboczych. Zazwyczaj dzieje się to poprzez użycie rozpowszechnionych metod komunikacji internetowej, takich jak chat czy forum. Popularne jest również tworzenie nieformalnych baz wiedzy, poprzez wykorzystanie mechanizmu wiki, czyli stron internetowych, których treść można nie tylko przeglądać, ale też w prosty sposób edytować i usuwać przy pomocy przeglądarki. Przykładowe wykorzystanie to tworzenie bazy wiedzy uzupełnianiej przez pracowników, zawierającej standardowe procedury, takie jak sposób dodania oficjalnego nagłówka korespondencji firmowej w edytorze tekstu. Dzięki sprawnie działającej stronie wiki, można uniknąć ponownego odkrywania koła przez kolejnych zatrudnionych. Dobrze zaprojektowany EIP powinien wykazywać trend w kierunku możliwości rozszerzania wertykalnego, czyli dostosowania funkcji do potrzeb firmy, należącej do konkretnego sektora gospodarki (na przykład poprzez dodanie przeglądarki map dla przedsiębiorstw zajmujących się kartografią). W tym celu powinny zostać udostępnione mechanizmy, pozwalające na dołączanie modułów, tworzonych przez zewnętrznych dostawców. Dzięki spełnieniu powyższych warunków, w Portalu może zostać przeprowadzona integracja odizolowanych źródeł danych, specjalizowanych modułów biznesowych i mechanizmów kooperacji w pojedynczy system. Będzie on pozwalał użytkownikowi na wygodne uzyskiwanie i wykorzystanie wszystkich potrzebnych mu informacji, zgrupowanych za pomocą centralnego interfejsu. Dzięki zastosowaniu EIP można spodziewać się spadku opóźnień związanych z wykorzystaniem rozproszonych informacji i wzrostu wydajności całych działów i pojedynczych pracowników poprzez zawiązanie przez nich współpracy Wybrane rozwiązanie W przedstawianym w pracy zintegrowanym systemie zdecydowano się na użycie portalu Liferay. Zadebiutował on w 2000 roku, będąc przeznaczonym wówczas dla niekomercyjnego sektora rynku, a stając się po ośmiu latach jednym z najbardziej rozbudowanych i docenianych (nagroda InfoWorld Bossie Award 2007[IJRB07] dla najlepszego portalu Open Source ) rozwiązań portalowych o otwartych źródłach, przeznaczonych do zadań biznesowych. Jego rozwój w chwili obecnej wspierany jest przez firmę Liferay Inc., która zarabia oferując gotowe do użycia instalacje aplikacji, a także szkolenia i wdrożenia Liferay (o innych sposobach zarabiania na aplikacjach Open Source można przeczytać w punkcie 3.5). Projekt rozpowszechniany jest na licencji Massachusetts Insti-

49 4.3. Portal Informacyjny 45 tute of Technology, która pozwala użytkownikom na użycie, modyfikację i dystrybucję portalu, bez ponoszenia żadnych opłat, czy też konieczności udostępniania zmodyfikowanego kodu. Jako instalację portalu należy rozumieć aplikację dostępną z poziomu przeglądarki, umożliwiającą zarządzanie układem i zawartością strony, a także konfigurację każdego obiektu umieszczonego na tej stronie z osobna. Witryna internetowa producenta oferuje wybór spośród kilku rodzajów dystrybucji Liferay, między innymi wersji gotowej do użycia od razu po ściągnięciu i uruchomieniu. Edycja taka zawiera serwer Apache Tomcat 5.5 z zainstalowanym portalem i prostą, plikową bazą danych. Ta instalacja może stać się bazą dla wersji produkcyjnej, należy jednak dokonać odpowiednich zmian w konfiguracji. Liferay jest produktem wygodnym w użytkowaniu. Udostępnia znane zazwyczaj z aplikacji biurkowych usprawnienie w obszarze interfejsu użytkownika: możliwość zmiany ułożenia elementów poprzez mechanizm przenoszenia okien. Klikając na pasku tytułowym komponentu i przytrzymując lewy przycisk myszki, można przesuwać go po całym układzie strony (technika Drag and Drop). Nowa pozycja zostanie na stałe zapamiętana w portalu. Edytując wzajemne ułożenie stron za pomocą rozwijalnego drzewa, tym samym sposobem przeciągania, można przenosić etykiety, określając ich zagłębienie względem siebie. Te rozszerzenia interfejsu zostały opracowane w technologi AJAX (Asynchronous JavaScript and XML) służącej do budowania funkcjonalnych stron internetowych. Dzięki jej zastosowaniu w portalu, możliwa jest też praca bez konieczności częstego przeładowywania stron (komunikacja z serwerem odbywa się w tle) i osiągnięcie niedostępnych w tradycyjnych witrynach opartych tylko o HTML i CSS usprawnień. Treść portalu jest pogrupowana w tak zwane pulpity, których użytkownik może mieć dowolną ilość. Służą one do oddzielenia różnych tematycznie działów, na przykład dotyczących konkretnych projektów. Każdy pulpit składa się z dwóch grup stron: prywatnych i publicznych. Pierwsze z nich dostępne są standardowo tylko dla użytkownika będącego członkiem grupy z odpowiednimi uprawnieniami, drugie dla każdego odwiedzającego. Ustawienia te można zmieniać w szerokim zakresie, pozwalając przykładowo na dostęp do stron publicznych tylko osobom z własnej firmy. Każda ze stron pulpitu może posiadać osobny układ i wygląd, a także listę portletów na niej umieszczonych. Portlet to element Portalu, wykonujący określone, czasem bardzo zaawansowane funkcje. Nie jest on samodzielnym programem, ale obiektem uruchamianym tylko w kontenerze portletów, którym jest między innymi Liferay[Mic07a]. Inne tego typu aplikacje opisano w punkcie W rozwiązaniach komercyjnych portlety są zazwyczaj dostarczane przez wyspecjalizowanych dostawców, albo, jeśli wymagania co do działania są nietypowe, tworzone od podstaw na zamówienie. Pełne prawa do konfiguracji zawartości całego portalu ma administrator. Oprócz zwykłych zadań jak ustawienie połączenia do bazy danych, zarządzanie uprawnieniami, może on ustawić minimalny zbiór zainstalowanych komponentów dla wszystkich osób, którego nie będą mogły zmienić (np. okno powiadamiania o nowych zadaniach na stronie startowej). Pozwoli to na zapewnienie sprawnego przepływu informacji przez przedsiębiorstwo, czego nie można by zagwarantować bez pewności, że użytkownik ma aktywny komponent, w którym dostanie wiadomość. Liferay pozwala na szerokie określenie uprawnień konretnego użytkownika, jednak najważniejsza granica znajduje się pomiędzy użytkownikiem zalogowanym a gościem. W standardowej instalacji, użytkownik ma prawo organizowania spersonalizowanej wersji portalu. Tworzy dowolną ilość stron, dostępnych za pomocą zakładek, każdą z nich wypełniając wybraną przez siebie treścią (obiektami). Gość nie ma zazwyczaj praw do ingerencji w zawartość, może jedynie korzystać z już wstawionych elementów. Administrator powinien określić, jaki podzbiór treści zostanie pokazany publicznie, osobom niezalogowanym. Zazwyczaj, jeśli strona internetowa firmy oparta jest o rozwiązanie portalowe, goście mogą skorzystać z klienckiej wersji modułu CMS i prostych portletów, takich jak ankieta czy galeria.

50 4.3. Portal Informacyjny 46 Administracja dostępem do portalu nabiera dodatkowego znaczenia dzięki zastosowanemu w Liferay mechanizmowi pojedynczej autoryzacji (Single Sign On, SSO). Użytkownik zalogowany w portalu może uzyskać automatyczny dostęp do zewnętrznych zasobów chronionych hasłem, takich jak administracja CMS, serwer plików. W tworzonym systemie, użytkownik, który autoryzował się w Liferay, zostaje dopuszczony do zewnętrznego konta . Operacje na nim wykonywane są przy użyciu portletu - klienta pocztowego. Grafika portalu zorganizowana została w pakiety, które zawierają arkusze stylów, grafiki i ikony. Są to zwane tematy. Każdy z nich powinien posiadać reguły dla wszystkich wymaganych przez portal elementów. Takie szablony wyglądów dystrybuowane są na podobnych zasadach jak inne komponenty: mogą być wykonane przez dostawców tego typu rozwiązań i włączone do zasobów portalu. Dzięki temu, oprócz personalizacji zawartości swojego pulpitu, każdy użytkownik może również według własnych upodobań zmienić jego wygląd. Istnieją również uproszczone tematy przygotowane dla telefonów komórkowych posiadających przeglądarkę internetową. Najciekawszym elementem jest pierwszy z pulpitów, będący kontenerem portletów. Zawarte w nim elementy mogą być przez użytkownika dodawane, usuwane i modyfikowane. Przygotowany na potrzeby tworzonego systemu zestaw, zawiera komponenty służące do wykonywania opisanych wcześniej czynności: wyszukiwanie służy do przeszukiwania zdefiniowanych przez administratora obszarów, na przykład repozytorium dokumentów, słownik prosty przykładowy portlet, który słowo wpisane w polu tekstowym przesyła do zewnętrznej witryny zegar analogowy pokazuje możliwość osadzenia obiektu wykonanego w technologii Adobe Flash, ogłoszenia dodanie do tego komponentu treści, spowoduje wyświetlenie jej u wszystkich użytkowników posiadających element tego typu, poczta portlet będący klientem , z możliwością czytania i tworzenia wiadomości za pomocą dołączonego edytora wizualnego, skonfigurowany do współpracy z zainstalowanym już w systemie serwerem pocztowym, kalendarz zawiera wizualizację kalendarza, do którego można dodawać zdarzenia i programować akcje wyzwalane ich wystąpieniem, forum pozwala na podręczne przeglądanie uzyskanych poprzez określenie wymagań wiadomości (najnowsze, pochodzące z danego forum... ), notatki odpowiednik żółtych karteczek z krótkim tekstem. Budowa typowego portletu zostanie przedstawiona na podstawie komponentu kalendarza, widocznego na rysunku Na pasku tytułowym znajduje się symbol elementu i jego tytuł, a także ikony opcji. Od lewej, są to: ponowne załadowanie zawartości portletu. Co ważne, czynność ta nie powoduje zbędnego odświeżenia całej strony, personalizacja wyglądu poprzez edycję arkusza stylów. Domyślnie wygląd określony jest poprzez reguły określone dla całego portalu,

51 4.3. Portal Informacyjny 47 Rysunek 4.13: Przykładowy portlet kalendarz konfiguracja ustawień komponentu, minimalizacja okienka do paska tytułowego, wyświetlenie portletu w trybie pełnoekranowym, co może skutkować pojawieniem się dodatkowych opcji, trwałe usunięcie portletu z pulpitu. Te trzy elementy są standardowe dla wszystkich portletów. Natomiast znajdująca się poniżej paska zawartość, jest w pełni programowalna, czyli dla każdego komponentu posiada własny wygląd i funkcje. Kod pisany jest w języku Java, z wykorzystaniem jednego ze wspieranych środowisk do rozwoju aplikacji sieciowych. Jest to dobre rozwiązanie, biorąc pod uwagę możliwość tworzenia portletów realizujących zaawansowane zadania dzięki zastosowaniu języka wysokiego poziomu. W zaprezentowanym kalendarzu różne widoki zostały podzielone na zakładki, wyświetlające wydarzenia z różnych okresów, a także umożliwiające import danych z inny programów. W tworzonym zintegrowanym systemie informatycznym, Liferay został wykorzystany jako zewnętrzna warstwa prezentacji. Systemy CMS (Joomla) i ERP (Adempiere) są w stosunku do niego podległe i zostały włączone jako strony domyślnego pulpitu użytkownika. W ten sposób przechodząc pomiędzy kolejnymi zakładkami, uzyskuje się dostęp do komponentów systemu. W przypadku Joomla integracja nie stanowiła większego problemu. Zarówno strona administracyjna jak i użytkowa CMS zachowują się prawidłowo po umieszczeniu w portalu. Pewien problem stanowiło jednak skuteczne podłączenie ERP. Adempiere posiada dwa interfejsy użytkownika. Pierwszy z nich, to standardowa aplikacja internetowa, którą można bez większych trudności połączyć z portalem. Jest ona jednak dopiero w fazie rozwoju, dlatego jej zastosowanie w systemie produkcyjnym nie jest zalecane. Druga, lepsza, metoda dostępu do programu to stabilna aplikacja biurkowa. Jest ona napisana w języku Java, dlatego można ją uruchomić jako osadzony na stronie obiekt. Jednak ze względu na liczne[gre07] wady tej metody, również ją należy traktować z rezerwą. Dlatego proponowane rozwiązanie, to uruchomienie ERP poprzez wykorzystanie technologii Java Web Start. Polega ona na stworzeniu odpowiedniego deskryptora aplikacji, który otwarty w przeglądarce, powoduje (za zgodą użytkownika) ściągnięcie z serwera klienckiej wersji programu (20 MB), automatyczną instalację w specjalnej przestrzeni roboczej na dysku twardym i uruchomienie. Przy kolejnym wywołaniu,

52 4.3. Portal Informacyjny 48 aplikacja nie jest już ściągana, ale korzysta się z lokalnej kopii. W ten sposób użytkownik może jednym kliknięciem uruchomić biurkową wersję Adempiere. W przykładowym systemie, Adempiere poświęcono dwie strony: jedna zawiera odnośniki do wymienionych wyżej i innych (administracja serwerem aplikacji) opcji, druga powoduje bezpośrednie uruchomienie aplikacji w technice Java Web Start. Liferay okazał się systemem bardzo rozbudowanym i dojrzałym. W trakcie całych prac nad nim, napotkano tylko jeden błąd. Podczas zmiany domeny firmowej z standardowej liferay.com na stosowaną w całym systemie zsi.pl, portlet przestał wyświetlać okienko, w którym wpisuje się nazwę użytkownika przed pierwszym użyciem. Jednak komponent ten nie jest częścią portalu, a tylko komponentem razem z nim dystrybuowanym. Poza tym twórcy wyraźnie zaznaczają, że jest on w fazie rozwoju. Pewnym problemem jest również brak języka polskiego na długiej (24 pozycje) liście wspieranych tłumaczeń. Dla celów tworzonego systemu należało więc przeprowadzić samodzielne tłumaczenie. Na szczęście jest to zadanie o tyle proste (aczkolwiek czasochłonne), że polega na tłumaczeniu pliku tekstowego z angielskimi wyrażeniami. Pomijając te dwie niedogodności, autor poleca użycie tego portalu w przedsiębiorstwie, ponieważ pozwoli on niewielkim kosztem uzyskać interesujące efekty w zakresie publikacji treści i usług, a także współpracy pracowników. Lista przedsiębiorstw i organizacji używających Liferay jest długa[lif04]. Są na niej między innymi Wydział Opieki Społecznej Stanu Colorado ( oddział firmy Novell zajmujący się współpracą zespołową ( a także Wielkopolski Urząd Wojewódzki w Poznaniu ( Wymagania Wymagania dla wersji Należy użyć po jednym elemencie z każdej grupy: serwer aplikacji: Borland ES 6.5, Apache Geronimo 1.1, Sun GlassFish 2.0 M@,JBoss 4.0.3SP1, JOnAS 4.8.5, JRun 4 Updater 3,Oracle AS , Orion 2.0.6, Pramati 5.0, RexIP 2.5, SUN JSAS 8.01, WebLogic SP , WebSphere x, kontener serwletów: Jetty 5.1.4, Resin , Tomcat 5.0.x/5.5.x, system operacyjny: AIX, BSD, LINUX, SOLARIS, WINDOWS, MAC OS X, baza danych: Apache Derby, IBM DB2, Firebird, Hypersonic, Informix, InterBase, JDataStore,MySQL, Oracle, PostgresSQL, SAP, SQL Server, Sybase Rozwiązania konkurencyjne exo Strona domowa: Najnowsza wersja: 2.0 Konkurencyjnym rozwiązaniem dla Liferay jest platforma exo. Aplikacja, będąca również w fazie produkcyjnej, zaprojektowana jest jako możliwy do dostosowania do własnych potrzeb Portal i CMS[Inf05]. Jej kontener serwletów (mechanizm odpowiedzialny za obsługę podstawowych

53 4.4. Pakiet biurowy 49 technologii internetowych w języku Java) posiada certyfikat zgodności z projektem firmy Sun Microsystem tworzącej języka Java. Posiada również wiele nieszablonowych optymalizacji pod względem wydajności działania. exo dostarczany jest na licencji komercyjnej i GPL, dostępna jest darmowa pomoc i szkolenie online. JBoss Portal Strona domowa: Najnowsza wersja: 2.5 Demonstracja: Kolejnym graczem na rynku portali jest firma JBoss z produktem JBoss Portal[Inf05], będącym częścią JBoss Enterprise Middleware System, środowiskiem tworzenia zaawansowanych aplikacji biznesowych. Również ten kontener serwletów posiada certyfikat zgodności z wytycznym Sun Microsystem. Portal wydawany jest na dwóch licencjach: komercyjnej i GPL. W pierwszym przypadku klient uzyskuje dostęp do pomocy technicznej i szkoleń prowadzonych przez pracowników JBoss. 4.4 Pakiet biurowy Pakietem biurowym zwykło się nazywać zbiór programów wykorzystywanych w codziennej pracy biurowej. Taki zestaw powinien być pomocny w wykonywaniu typowych zadań: edycji tekstu, prostych obliczeniach księgowych i analizie danych (arkusz kalkulacyjny), tworzeniu i wyświetlaniu prezentacji multimedialnych. W pakietach firmy przygotowują oferty handlowe, wizualnie atrakcyjne reklamy, oficjalne pisma w których ważna jest forma, a także tworzą szablony dokumentów, używane później w korespondencji z klientami. Często dostępne na rynku pakiety biurowe rozszerzane są o pełniace dodatkowe funkcje programy, umożliwiające między innymi pracę z bazą danych, rysowanie, czy też tworzenie (w trybie wizualnym) stron internetowych. W chwili obecnej na świecie prymat wiedzie własnościowy Microsoft Office, dostępny na platformy Windows i MacOS. Dzięki swojej wielkiej popularności (szacuje się[ck06], że na świecie zainstalowanych jest około 400 milionów jego kopii) ustala standardy funkcjonalne dla aplikacji tego typu Wybrane rozwiązanie Społeczeństwo Open Source ma w chwili obecnej do wyboru zróżnicowane pakiety, będące alternatywnymi rozwiązaniami dla programów Microsoft. Najlepszym projektem mogącym zagrozić pozycji MS Office wydaje się być OpenOffice.org, który został kupiony lub ściągnięty z internetu około 61 milionów razy[ck06]. Historia pakietu jest dosyć krótka. W 2000 roku firma Sun Microsystems postanowiła zmienić darmowy dotychczas produkt StarOffice w komercyjną aplikację. Chcąc zostawić alternatywę dotychczasowym użytkownikom, którzy nie zdecydują się na użytkowanie płatnego rozwiązania, podarowała ówczesny kod źródłowy społeczności, ustanawiając dla niego licencję GNU Lesser General Public License (patrz 3.2.3) i tworząc projekt OpenOffice.org, który do tej pory dofinansowuje. W skład OOo wchodzą następujące komponenty: Writer edytor tekstu, Calc arkusz kalkulacyjny, Impress przygotowywanie prezentacji, Draw edycja grafiki wektorowej,

54 4.4. Pakiet biurowy 50 Math edytor równań, Base baza danych. Rysunek 4.14: Logo OpenOffice.org Twórcy OpenOffice.org wchodząc na zdominowany przez MS Office rynek, jako jedno z założeń przyjęli próbę uzyskania jak największej zgodności z liderem. Możliwe jest swobodne wczytywanie i zapisywanie formatów plików konkurencyjnego rozwiązania (głównie.doc,.xls,.ppt), tak więc osoby przenoszące się z jednego pakietu do drugiego, nie muszą się obawiać utraty danych 1. Niestety, z powodu silnego powiązania z wewnętrzną budową MSOffice, zdarzyć się mogą niezgodności przy imporcie bardziej skomplikowanych dokumentów. Z taką sytuacją twórcy Wolnego Oprogramowania starają się walczyć przy pomocy otwartych standardów, które mają pozwolić na przenoszenie danych pomiędzy dowolnymi aplikacjami bez obawy o niezgodność otrzymanych rezultatów (więcej w punkcie 4.4.2). Pewnym problemem dla osób przyzwyczajonych do pracy z Microsoft Office jest również konieczność zmiany części nawyków z powodu nieco innej obsługi aplikacji. Jednak dla osób gotowych poświęcić trochę czasu, jak i dla zaczynających pracę z aplikacjami biurowymi, OpenOffice.org powinien okazać się dobrym rozwiązaniem Otwarty standard pliku Chcąc zapewnić użytkownikowi możliwość swobodnego wyboru oprogramowania biurowego, które wykorzystuje do pracy, podjęto kroki w celu stworzeniu niezależnego od używanej aplikacji standardu pliku. Konsorcjum Organization for the Advancement of Structured Information Standards powołało komitet techniczny, który na podstawie propozycji fundacji OpenOffice.org, stworzył format OASIS Open Document Format for Office Applications (ODF)[ftAoSIS05]. Wkrótce został on uznany za podwójny standard ISO/IEC 26300:2006[fS06]. Open Document jest formatem opartym na języku znaczników, posiada dokładną i kompletną dokumentację, a także jest wolny od wszelkich roszczeń: nie są za jego użycie pobierane opłaty, nie trzeba zgody twórców na jego wykorzystanie, nie zawiera żadnych patentów. W chwili obecnej ODF używany jest już przez wiele otwartych i zamkniętych aplikacji, między innymi KOffice, StarOffice, OpenOffice, GoogleDocs. 1 trzeba zaznaczyć, że OOo nie jest w stanie poprawnie wykonać większości makr (osadzonych w dokumencie skryptów) gdyż odwołują się one bezpośrednio do wewnętrznej budowy MSOffice

55 4.4. Pakiet biurowy 51 Typ pliku Tekst Arkusz kalkulacyjny Grafika wektorowa Prezentacja Wykres Równanie Obraz Główny dokument Rozszerzenie.odt.ods.odg.odp.odc.odf.odi.odm Tablica 4.1: Zawarte w specyfikacji OASIS Open Document Format for Office Applications[ftAoSIS05] typy plików W Rozporządzeniu Rady Ministrów z dnia 11 października 2005, ODF został uznany jako jeden z formatów danych zasobów informacji udostępnianych za pomocą systemów teleinformatycznych, używanych do realizacji zadań publicznych[min05]. Rysunek 4.15: Specyfikacja Office Open XML - 6 tomów po 1000 stron Warto wspomnieć również o formacie plików, który od pewnego czasu przygotowywany jest przez firmę Microsoft Office Open XML. Założenia twórców są te same jak autorów ODF stworzyć zunifikowany format łatwy w implementacji i użytkowaniu. Niestety w praktyce wymagania te nie są spełniane, przez co OOXML spotyka zmasowana krytyka. Przeciwko uznaniu go za standard aktywnie protestują liczne grupy zainteresowanych, w tym społeczność Open Source. Głównymi zarzutami są duplikacja funkcjonalności, którą zapewnia już ODF, niejasne zasady prawne korzystania z formatu (brak zapewnienia że nie potrzebna będzie zgoda Microsoft na jego użycie), skomplikowana dokumentacja (około 6000 stron specyfikacji (rysunek 4.15) w porównaniu do 738 w ODF[ftAoSIS05]), a także powiązanie z niestandardowymi technologiami (np. format wektorowego zapisu grafiki DrawingML) i funkcje odnoszące się bezpośrednio do specyfiki produktów Microsoft (np. autospacelikeword95 lub useword97linebreakrules odwołujące się do Microsoft Word 95 i 97).

56 4.4. Pakiet biurowy Wymagania sprzętowe Wymagania dla wersji 2.2. Microsoft Windows: Windows 98, Windows ME, Windows 2000 (Service Pack 2 lub nowszy), Windows XP, Windows 2003, Windows Vista, 128 MB RAM, przynajmniej 800 MB przestrzeni dyskowej dla domyślnej instalacji (zawiera JRE). Po instalacji OpenOffice.org bedzie zajmować około 440 MB, minimalna rozdzielczość ekranu 800x600, 256 kolorów. Linux: Linux z jądrem co najmniej , glibc2 w wersji lub wyższej, 128 MB RAM, przynajmniej 200 MB przestrzeni dyskowej dla domyślnej instalacji, minimalna rozdzielczość X11 ekranu 800x600, 256 kolorów. Mac OS X (X11): Power Mac G3 400Mhz lub nowszy, Mac OS X 10.3.x, Mac OS X 10.4.x, 256 MB RAM, przynajmniej 400 MB przestrzeni dyskowej dla domyślnej instalacji, minimalna rozdzielczość X11 ekranu 800x600, 256 kolorów. Dla pełnej funkcjonalności, zaleca się użycie jdk/jre lub nowsze Rozwiązania konkurencyjne Warto wspomnieć również o pakiecie aplikacji biurowych KOffice, wchodzącym w skład KDE Desktop Enviroment (środowisko graficzne dla systemów opartych na Linux). Dzięki ścisłemu powiązaniu z KDE twórcy oferują zestaw zintegrowanych aplikacji, posiadający możliwość swobodnej wymiany danych między komponentami, jak również z innymi aplikacjami napisanymi dla KDE. Składniki KOffice: KWord - edytor tekstu, KSpread - arkusz kalkulacyjny, KPresenter - tworzenie prezentacji, Kivio - tworzenie wykresów, schematów blokowych lub organizacyjnych, Karbon14 - obróbka grafiki wektorowej, Krita - obróbka grafiki rastrowej,

57 4.5. Komunikacja 53 Kugar - generowanie raportów, KChart - tworzenie wykresów, KFormula - edytor formuł matematycznych, Kexi - tworzenia baz danych, KPlato - harmonogramowanie zadań. 4.5 Komunikacja Firmy posiadające łącza internetowe mogą skorzystać z wachlarza możliwości, jaki daje wykorzystanie sieciowych kanałów komunikacji. Nie ustępują one jakością tradycyjnym metodom porozumiewania się, a oferują opcje w niej nie występujące lub trudnodostępne. Podstawowe zyski przy połączeniach z wykorzystaniem internetu to redukcja kosztów (np. rozmowy głosowe są zazwyczaj darmowe), poszerzenie dostępnych możliwości (konferencje i wideokonferencje, przesyłanie plików), lepsze zarządzanie (informacje o kontaktach mogą być automatycznie zapisywane i kojarzone z poszczególnymi klientami w oprogramowaniu CRM patrz punkt 4.2.1). Spośród głównych metod porozumiewania się w internecie, można rozróżnić: poczta elektroniczna odpowiednik korespondencji listowej, Instant Messaging bezpośredni przesył krótkich komunikatów tekstowych, VoIP (Voice over IP) rozmowy głosowe Poczta elektroniczna Poczta elektroniczna ( ) polega na przesyłaniu informacji od nadawcy do odbiorcy za pomocą internetu. Jest to bezpośredni odpowiednik zwykłej korespondencji listowej. Nadawca tworzy list, adresując go odpowiednio i wysyła. Adresat otrzymuje wiadomość przy najbliższym sprawdzeniu swojej skrzynki pocztowej. Przez wiele lat użytkowania tego sposobu komunikacji wypracowano szereg funkcji, które znacznie podnoszą przydatność rozwiązania w biznesie. Większość przedsiębiorstw korzysta już z możliwości jakie daje poczta elektroniczna. Za pomocą i przesyłanie są oferty handlowe, zdjęcia i opisy produktów, o które proszą zainteresowani klienci. Zapisane na listę mailingową osoby mogą być okresowo powiadamiane o nowych promocjach i produktach. Istnieje możliwość zapewnienia poufności i integralności przesyłanej poczty poprzez zastosowanie algorytmów szyfrujących. Informacja zakodowana u nadawcy (za pomocą tzw. klucza prywatnego), może być odczytana wyłącznie przez osobę, którą do tego upoważnił, powierzając jej klucz publiczny. Metoda ta jest skutecznym zabezpieczeniem przed ujawnieniem treści listu osobom niepowołanym lub ich podszyciem się pod nadawcę. Dostępny jest szeroki wybór serwerów jak i klientów poczty elektronicznej. Serwer to aplikacja zazwyczaj znajdująca się na zdalnym komputerze, zajmująca się przyjmowaniem i rozdzielaniem poczty. W aplikacjach biznesowych (w tym również zastosowanym w proponowanym w tej pracy systemie ERP, 4.2) często istnieje możliwość wykorzystania faktu istnienia lokalnego serwera pocztowego. Skonfigurowanie go do współpracy skutkuje możliwością integracji przepływu wiadomości. Dzięki temu nastąpić może zwiększenie wydajności pracy z danymi: poprzez automatyczne dowiązanie korespondencji do danego tematu czy podmiotu, powstaje dokładna historia kontaktów. Jest to sytuacja szczególnie powszechna w punktach obsługi klienta.

58 4.5. Komunikacja 54 Nie jest jednak konieczna instalacja własnego serwera pocztowego, wystraczy założyć (również darmowe) konto na stronie dostawcy tego typu usług, a następnie korzystać z niego poprzez stronę internetową lub kliena pocztowego. Klient pocztowy to program, w którym użytkownik odbiera, pisze i wysyła listy. Do pierwszej grupy zaliczyć można rozwijany od ponad 15 lat Sendmail, który został włączony do opisywanego w pracy systemu. Programem bardziej interesującym (choć o wiele prostszym od serwera) jest klient pocztowy. Do najpopularniejszych produktów Open Source z tej kategorii, należą Mozilla Thunderbird, KMail, Evolution. Program Thunderbird jest klientem pocztowym o otwartych źródłach, rozwijanym przez Fundację Mozilli[Wat06]. Razem z innymi produktami Fundacji, takimi jak przeglądarka internetowa Firefox, Thunderbird wyróżnia się szerokim wsparciem dla różnych platform, mogąc współpracować z Linuksem, Windows i MacOS X. Dystrybuowany jest na licencji Mozilla Public Licence. Rysunek 4.16: Logo programu Mozilla Thunderbird Thunderbird posiada wiele przydatnych funkcji, w tym wsparcie dla sieciowych protokołów POP i IMAP, możliwość szyfrowania i cyfrowego podpisu wiadomości, sprawdzanie pisowni, wsparcie dla poczty w formacie HTML, filtrowanie przesyłek pozwalające na kategoryzację listów poprzez określanie prostych reguł decyzyjnych. Biorąc pod uwagę coraz większą ilość niechcianych przesyłek (spam), użytkownicy z pewnością docenią uczący się filtr niechcianej korespondencji. Jego inteligencja ćwiczona jest poprzez oznaczanie niechcianych wiadomości jako spam (odznaczając czasem dobre wiadomości uznane za niepożądane). Wraz z upływem czasu można zauważyć osiągnięcie przez program bardzo dużej skuteczności w automatycznym odsiewaniu śmieci Rozmowy tekstowe Technika Insant Messaging polega na porozumiewaniu się za pomocą komunikatora tekstowego. Krótka zazwyczaj wiadomość zostaje wpisana na komputerze nadawcy, aby po krótkim czasie (docelowo: w czasie rzeczywistym) pojawić się u odbiorcy. Naprzemiennie wysyłane wiadomości mają zastąpić dialog głosowy w świecie rzeczywistym. Do zalet IM należy zaliczyć szybkość komunikacji (również w porównaniu z będącym bardziej formą listu odbieranego asynchronicznie em), dostępność rozmowy wielu osób jednocześnie, możliwość zapisania przebiegu dialogu, brak konieczności odpowiadania natychmiastowo. Ten sposób komunikacji może okazać się przydatny we współpracujących firmach (lub odziałach jednego zakładu pracy), gdzie konieczna jest synchronizacja działań przynajmniej pary osób.

59 4.5. Komunikacja 55 Przekazując sobie krtótkie komunikaty, na bieżąco znają wzajemne postępy w pracy, a nie wymaga to od nich wykonywania tylu kroków, jakie zwykle konieczne są przy wysyłaniu a lub telefonie. Również niektóre biura obsługi klienta, oferują kontakt z konsultatnami poprzez technologię IM (przykładowo polski dostawca usług home.pl. W Polsce szczególnie popularny jest program Gadu-Gadu, który stara się wyjść poza ramy prostego komunikatora, promując tworzone przez siebie społeczności internetowe, dając możliwość słuchania radia online czy też prowadzenia rozmów głosowych (Gadu-Gadu Na Głos). W kontekście opisywanego otwartego systemu, warto wspomnieć o popularnym rozwiązaniu Open Source, jakim jest Jabber (nazywany nawet Linuksem komunikatorów internetowych [Fus04]). Platforma Jabber oparta jest na protokole extensible Messaging and Presence Protocol (XMPP), który w dużym skrócie pozwala na komunikację między klientami korzystającymi z różnych protokołów. Użytkownik Jabbera może jednocześnie rozmawiać z osobą używającą Gadu-Gadu, jak i MSN. Dzieje się tak dzięki opartych o idee FLOSS serwerach, które zajmują się tłumaczeniem poszczególnych dialektów na języka Jabbera. Tłumaczenie to nie jest ograniczone tylko do tekstu coraz więcej serwerów oferuje również komunikację głosową. Jednym z nich jest Jabbin. Rysunek 4.17: Logo programu Jabbin Rozmowy głosowe Z momentem uzyskiwania przez internet coraz większej popularności, zaczęto zastanawiać się nad wykorzystaniem używanych łączy do przesyłania głosu. Pomysł wydawał się być naturalny, ponieważ większość protokołów sieciowych, w tym używany do przeglądania stron internetowych, opiera się na wymianie komunikatów pomiędzy dwoma komputerami w sieci. Mają one formę datagramów, czyli oznaczonych nagłówkami pozwalającymi na określenie odbiorcy (docelowego komputera i usługi na nim) i nadawcy niewielkich porcji danych. Technologia Voice over Internet Protocol jest formą komunikacji która pozwala na wykonywanie połączeń głosowych z wykorzystaniem szerokopasmowego łącza internetowego, przez który przesyłane są datagramy[twmm04]. Podstawowa funkcjonalność VoIP pozwala na kontakt z innymi osobami oczekującymi na połączenia przychodzące w tej samej technologii. Bardziej rozbudowane wersje komunikatorów potrafią korzystając z bramek przełączających rozmowę do analogowych linii telefonicznych, pozwalając na wykonywanie połączeń do abonentów tradycyjnej telefonii. W odróżnieniu od rozmów pomiędzy dwoma użytkownikami tego samego operatora, wiąże się to z opłatą. Jest ona jednak zazwyczaj nieco niższa od lokalnej stawki tradycyjnego operatora bez wzgledu na umiejscowienie dzwoniącego, co daje dużą różnicę zwłaszcza przy rozmowach międzynarodowych. Kolejną zaletą rozmów VoIP jest przypisanie numeru telefonu do klienta, a nie do lokalu. W ten sposób nawet zmieniając kontynent, użytkownik zachowuje swój numer, co jest bardzo przydatną możliwością dla pracowników mobilnych. Korzystanie z technologii VoIP pozwala przedsiębiorstwu na ograniczenie wydatków ponoszonych na telekomunikację, a także otwiera pzed nimi nowe możliwości, jak na przykład przekazywa-

60 4.5. Komunikacja 56 nie plików z opisami towarów, którymi rozmówca wyraził zainteresowanie. Nie bez znaczenia jest również możliwość udostępnienia dużej ilości końcówek (punktów dostępowych dla użytkowników) bez konieczności stosowania centrali, nadając każdemu z pracowników osobny numer. Operatorzy VoIP oferują też często dodatkowe usługi, takie jak wysyłanie i które przekierowane są na faks adresata. Rysunek 4.18: Wykorzystanie adaptera Analog Telephone Adapter do podłączenia telefonu analogowego z gniazdem RJ11 do łącza internetowego typu RJ45 Do użytkownika należy wybór końcówki systemu, czyli urządzenia, które będzie rejestrować i odtwarzać dźwięk. Może to być komputer z podłączonymi słuchawkami, ale również telefon IP, urządzenie wyglądem przypominające tradycyjny aparat, podłączane jednak do gniazd sieci IP (gniazdo RJ45). Jeśli firma posiada już bazę analogowych telefonów, możliwe jest ich połączenie do bramki VoIP przy pomocy adaptera Analog Telephone Adapter (rysunek 4.18), który pozwala na przetworzenie trwającego połączenia analogowego. Rozwiązanie takie ogranicza funkcjonalność dostępną użytkownikowi, ponieważ telefony starego typu nie posiadają programowalnych interfejsów pozwalających na pełne wykorzystanie możliwości dostępnych w telefonii IP. Przykładowa sieć wykorzystująca wszystkie wymienione końcówki widoczna jest na rysunku Należy również wspomnieć o kilku problemach z którymi boryka się telefonia internetowa. Najważniejszym z nich jest zapewnienie rzeczywistego czasu rozmów. W telefonii analogowej nawiązywane jest utrzymywane przez cały czas trwania rozmowy połączenie pomiędzy rozmówcami, pozwalające na stały dwukierunkowy przesył informacji. Przy korzystaniu z VoIP, dane przekazywane są za pomocą protokołu IP w postaci oddzielonych od siebie pakietów, łączem wykorzystywanym również do pobierania danych. Nie ma gwarancji stałej i wystarczającej przepustowości sieci

61 4.6. Platforma integracyjna 57 Rysunek 4.19: Przykładowa sieć telefonii VoIP. (każdy pakiet kierowany jest z osobna poprzez szereg połączonych węzłów internetowych, uznany na podstawie estymacji za najlepszy z dostępnych, co może okazać się błędem przy dużym ruchu w pewnych obszarach sieci), nie można też zapewnić, że wysłany pakiet w ogóle dojdzie do celu. Kolejnym problemem jest dostęp do linii alarmowych. Aby można było się z nimi skontaktować, potrzebne jest działające łącze i energia elektryczna, a nawet w takim przypadku można napotkać na odmowę dostępu ze względu np. na blokadę bramki łączącej z tradycyjnym telefonem pogotowia. 4.6 Platforma integracyjna Aplikacje, w tym również te tworzone przez społeczność Open Source, nie potrafią zazwyczaj bezpośrednio współpracować ze sobą. Każda z nich posiada specyficzną budowę i dokładnie zdefiniowany przez twórców sposób komunikacji ze światem zewnętrznym (np. interfejs graficzny), przez co nie jest możliwe swobodne łączenie ich w całość przez końcowego użytkownika. Jeśli twórcy żadnego z programów, wybranych przez klienta do połączenia, nie zdecydują się świadomie na dostosowanie swojej aplikacji do współpracy z inną, interakcja nie będzie w prosty sposób możliwa. Jako przykład połączenia można podać związek pomiędzy odtwarzaczem animacji, którego instancję można umieścić w slajdzie prezentacji multimedialnej po kliknięciu odtwarzacz zostanie

62 4.6. Platforma integracyjna 58 uruchomiony i wyświetli załączony film. Osadzenie animacji w edytorach plików graficznych nie jest zazwyczaj możliwe, ponieważ ich twórcy nie przewidzieli takiej możliwości. Bezpośrednie łączenie potrzebnych programów nie jest jednak warunkiem koniecznym dla efektywnej pracy. Dużo ważniejsze i łatwiejsze do spełnienia w zaawansowanych zastosowaniach biznesowych jest umożliwienie przepływu informacji we wszystkich aplikacjach (oczywiście tylko w miejscach gdzie istnieje ku temu logiczne uzasadnienie). Najlepszym wyjściem jest współdzielenie źródła danych, gwarantujące minimalną redundancję i aktualność informacji w każdym momencie użytkowania. Zadanie to nie należy do skomplikowanych kiedy dostęp do informacji następuje poprzez zapis plików, które mogą zostać wczytane w drugim programie. Jednak zdecydowana większość aplikacji biznesowych korzysta z dużo wydajniejszego i pewniejszego sposobu magazynowania informacji, jakim jest baza danych. Model struktury zawartych w niej informacji zależy bezpośrednio od zamysłu twórcy konkretnego programu i często dopasowywany jest również do budowy wewnętrznej tworzonego systemu. Z tego powodu w większości rozbudowanych aplikacji nie jest możliwe wspólne korzystanie ze źródła danych Metody integracji Jeśli wspólne korzystanie z pojedynczego źródła nie jest możliwe, co dzieje się zazwyczaj przy korzystaniu z komponentów pochodzących od różnych dostawców (taki właśnie system opisywany jest w tej pracy), należy samemu stworzyć mechanizmy umożliwiające synchronizację potrzebnych informacji. Budując zintegrowany system informatyczny należy położyć nacisk na automatyzację tego procesu. Obciążanie użytkownika obowiązkiem powtarzania czynności w kilku aplikacjach jest rozwiązaniem narażonym na duże ryzyko powstania niespójności danych. W celu przeprowadzenia skutecznej synchronizacji można zastosować kilku metod: integracja poprzez wykorzystanie interfejsu programistycznego jest to najbardziej elegancka metoda, pozwalająca na zachowanie wysokiej kompatybilności połączenia nawet w przypadku zmiany wersji jednego z komponentów. Dobrze napisany interfejs programistyczny opisuje dokładnie możliwe interakcje z programem, nie uzależniając ich od jego budowy wewnętrznej, która nie musi być znana klientowi (osobie chcącej skorzystać z aplikacji udostępniającej usługi serwera). Wykorzystanie interfejsu umożliwia zazwyczaj obok dostępu do danych, sterowanie samym programem; bezpośrednia integracja danych aplikacji w przypadku braku możliwości skorzystania z interfejsu (jego udostępnienie nie jest obowiązkowe i zależy tylko od woli twórcy), można spróbować połączenia na niższym poziomie przy bezpośrednim wykorzystaniu danych drugiej aplikacji. W tym przypadku konieczna jest znajomość struktur i sposobu ich zapisu, zdefiniowanych przez twórców. W zamkniętym oprogramowaniu jest to często niejawne, a licencje zabraniają tzw. inżynierii wstecznej (patrz 3.2.3) stosowanej w celu samodzielnego uzyskania tej wiedzy. Oprogramowanie Open Source posiada zazwyczaj jawne i udokumentowane struktury danych; modyfikacja kodu aplikacji sposób najmniej elegancki, możliwy tylko w aplikacjach o otwartych źródłach. Polega na edycji kodu programu tak aby wzbogacić go o potrzebne do uzyskania pożądanych zachowań metody. W zależności od stopnia skomplikowania edytowanej aplikacji może wymagać dużego nakładu pracy. Jeśli jest to aplikacja oparta o licencję Open Source, można zgłosić swój kod do oficjalnej dystrybucji, gdzie być może stanie się integralną częścią systemu, a tym

63 4.6. Platforma integracyjna 59 Rysunek 4.20: Stan wyjściowy integracji samym razem z nią będzie aktualizowany.w przeciwnym wypadku każda zmiana wersji będzie oznaczała konieczność ponowienia pracy Zaprogramowana integracja W przypadku wykorzystywanych w proponowanym systemie aplikacji, udostępnione interfejsy nie są wystarczające do przeprowadzenia skutecznej integracji. Jednak wszystkie użyte komponenty korzystają z relacyjnych baz danych, co znacznie upraszcza wzajemny odczyt i wykorzystanie zapisanych przez nie informacji. Bazy pozostaną od siebie odizolowane, pomimo, że dla części aplikacji możliwe byłoby wspólne umieszczenie tabel (co znacząco uprościłoby integrację), jednak rozwiązanie takie zagraża integralności danych (w przypadku powtórzenia nazwy tabel mogłoby dojść do zniszczenia części z nich). Wyjściowy wygląd systemu prezentuje się jak na rysunku Aby przeprowadzić połączenie pomiędzy badanymi aplikacjami, konieczne jest stworzenie warstwy pośredniczącej, tzw. proxy. Zadanie takiego skryptu to tłumaczenie języka i kierowanie transmisją danych z baz, aby mogły wzajemnie się komunikować. W opisywanym przypadku należy odczytać dane z jednego programu i umieścić je w bazie drugiego. Jako przykład integracji zostanie przedstawiony sposób na ujednolicenie danych o użytkownikach pomiędzy ERP i CMS. Dosyć poważnym problemem w tej integracji jest fakt, iż obie aplikacje wykorzystują bazy danych różnego typu: Adempiere operuje na PostgreSQL 8.1, a Joomla na MySQL. Są to produkty różnych producentów i chociaż oba w pewnym stopniu spełniają wymagania nakładane przez standard języka zapytań do bazy danych Structured Query Language, to jednak pewne funkcje nie są możliwe do przekształcenia 2. Mając na uwadze fakt, że późniejsze integracje wymagać będą również komunikacji pomiędzy bazą danych a plikami, a także na konieczność zapewnienia jak największej niezawodności połączenia, zdecydowano się na wykorzystanie zewnętrznego narzędzia integracyjnego aplikacji Jitterbit. Jitterbit jest aplikacją, tworzoną przez społeczność Open Source, wspomagającą budowanie elastycznych połączeń pomiędzy zróżnicowanymi źródłami danych. Jest warstwą abstrakcji po- 2 dzieje się tak chociażby w przypadku kluczy obcych i transakcyjności, które nie występują w MySQL, w wykorzystywanych przez Joomla tabelach typu MyISAM

64 4.6. Platforma integracyjna 60 Rysunek 4.21: Jitterbit Open Source Integration zwalającą przenieść uwagę na cele integracji, a nie na sposób jej przeprowadzenia. W skład aplikacji wchodzą dwa główne komponenty: klient i serwer. Zadaniem klienta jest umożliwienie pracy użytkownikowi, przeprowadzenie go przez proces konfiguracji serwera do współpracy z różnymi źródłami danych i uruchamianie na nim procesów. Obecnie Jitterbit wspiera operacje na wielu rodzajach baz danych (między innymi MySQL i PostreSQL), plikach (w tym CSV, XML, TXT) które program potrafi pobrać i wczytać za pomocą protokołów FTP, plików współdzielonych i HTTP. Ważnym pojęciem wykorzystywanym w pracy z Jitterbit jest Jitterpack kompletne rozwiązanie integrujące aplikacje, zapisane w pliku eksportowanym z programu, możliwe do samodzielnego zainstalowania na innych komputerach przez użytkowników, którym zostanie przesłane. Taka instalacja utworzy na danej maszynie w pełni działające połączenie między aplikacjami, poniważ Jitterpack posiada w sobie wszystkie wymagane do poprawnej integracji informacje, włączając to sposoby odczytu i zapisu danych i reguły transformacji. Celem pracy z Jitterbit jest stworzenie projektu w którym zostaną zawarte informacje o integracji danych pomiędzy Adempiere a Joomla, a następnie przygotowanie z niego pliku Jitterpack gotowego do dystrybucji z systemem. Projekt programu Jitterbit składa się z jednej lub wielu niezależnych od siebie operacji. Operacja jest zbiorem definicji, które grupowane są w celu utworzenia kompletnej transformacji. Transformacja służy do przekształcenia danych z dowolnego źródła wspieranego przez Jitterbit do docelowego systemu. Każda definicja dostarcza informacji takich jak umiejscowienie danych, ich docelowe miejsce składowania, kolejność wykonywania kroków transformacji. Tworzone w komponencie klienckim, umieszczane są następnie na serwerze aplikacji. Uruchomienie ich może nastąpić na życzenie użytkownika, w odpowiedzi na asynchroniczne żądanie przesłane z innej aplikacji, a także poprzez wywołanie ustawione w harmonogramie. W Jitterbit istnieją cztery typy głównych operacji: transformacja domyślna operacja, używana do manipulacji danymi, które przenoszone są ze źródła do celu, zdalne wywołanie Web Service składa się z dwóch transformacji: pierwsza zmienia dane w format odpowiedni do wywoływania usługi, druga konwertuje otrzymaną odpowiedź w format odpowiedni dla systemu docelowego, serwer Web Service służy do utworzenia i udostępnienia na serwerze usługi sieciowej gotowej do przyjmowania żądań przesyłanych z zewnętrznych aplikacji, archiwizacja służy do przeniesienia danych pomiędzy dwoma systemami. zmieniane w czasie ich relokacji. Dane nie są W zależności od wybranego typu operacji, dostępne są specyficzne dla każdego z nich ustawienia. W przypadku transformacji i archiwizacji wybrać można źródło i cel danych, które mogą być jednego z czterech rodzajów: serwer FTP, sieć lokalna, protokół HTTP i baza danych. W przypadku wybrania jednej z dwóch usług sieciowych, należy podać adresy pod którymi są one dostępne

65 4.6. Platforma integracyjna 61 lub mają się docelowo znaleźć. O wykorzystaniu Web Service w Jitterbit napisano niżej. Po zakończeniu konfiguracji źródeł i celów możliwe jest zastosowanie polityk bezpieczeństwa poprzez określenie wymaganych uprawnień, jakie musi mieć użytkownik (identyfikowany nazwą i hasłem) wywołujący operację. Jako program, który będzie nadrzędnym, czyli zmiany w nim wprowadzone propagowane będą do reszty aplikacji, wybrano największy moduł ERP. Opisywana integracja dotyczyć będzie danych użytkowników. Chcąc dokonać transformacji pomiędzy bazami danych wybrano odpowiednie opcje i podano parametry połączenia do bazy źródłowej (Adempiere: PostgreSQL ) i docelowej (Joomla: MySQL). Następnie konieczne jest prześledzenie procesów zachodzących w docelowej bazie danych Joomla podczas dodawania nowego użytkownika. Można to zrobić poprzez analizę kodów źródłowych CMS, wspomagając się danymi diagnostycznymi MySQL. W wyniku analizy zbadano, że modyfikacja zapisywana jest w trzech tabelach: jos users, jos core acl aro i jos core acl groups aro map, gdzie ustawiane są dane użytkownika (m. in. jego nazwa, hasło), jego przynależność do grupy oraz informacje o poziomie udzielonego mu dostępu do zadań administracyjnych. W przypadku opracowywanej synchronizacji powstanie transformacja pomiędzy dwoma bazami danych. Jitterbit pozwala na dokładne określenie warunków, które spełniać mają szukane dane. Założono, że użytkownik zakwalifikowany do przeniesienia musi posiadać nazwę, hasło (w Adempiere istnieje możliwość zmiany użytkownika po zalogowaniu, dlatego to pole nie zawsze musi istnieć) i , co określono przez odpowiednie sparametryzowanie żądania. Zadanie komplikuje fakt wykorzystania przez CMS trzech powiązanych ze sobą tabel odpowiadających za przechowywanie informacji o użytkowniku, jego uprawnieniach i przynależności do grup. W takim przypadku konieczne jest zdefiniowanie hierarchicznej zależności pomiędzy nimi. Ponieważ każda z nich posiada oddzielny i generowany automatycznie identyfikator, nie jest możliwe bezpośrednie połączenie ich z tabelą umieszczoną w Adempiere. Dlatego relację jos users należy rozszerzyć o pole adempiere id przechowujące identyfikator rekordu ERP. Innym możliwym rozwiązaniem jest utworzenie pośredniej bazy danych, w której składować można tabele zawierające mapowania kluczy z obu systemów. Rozwiązanie to nie jest istotnie trudniejsze od zastosowanego, obniża jednak znacząco wydajność poprzez konieczność stosowania podwójnej liczby operacji, a także uniemożliwia uzyskanie dostępu do zalet transakcji. Po określeniu w Jitterbit powiązań pomiędzy tabelami, następuje ich wizualizacja (prawe okno rysunku 4.22). Po lewej stronie prezentowany jest schemat tabeli użytkowników z Adempiere, po prawej hierarchiczna struktura relacji Joomla. W hierarchii widać odzwierciedlenie wprowadzonych wcześniej ustawień zależności. W tym elemencie wykorzystane zostają duże możliwości Jitterbit: bezpośrednie mapowanie kolumn można osiągnąć poprzez przeciągnięcie myszką etykiety źródłowej na docelową, znajdującą się na dowolnym poziomie hierarchii. Proste konwersje pomiędzy typami danych różnych źródeł, wystarczające w większości przypadków (np. nazwa użytkownika, kopiowana z pola typu text do varchar) dokonywane są automatycznie przez aplikację 3. W przypadku kilku pól konieczne będzie jednak wykorzystanie bardziej skomplikowanych przekształceń. W tym celu wykorzystany zostanie język definiowania przekształceń zawarty w Jitterbit. Jest on oparty o format XML, a pozwala na wykonywanie podstawowych operacji arytmetycznologicznych, manipulacji łańcuchami znaków, a także zapytań bazodanowych. Dla ułatwienia pracy programiście, przygotowano edytor tego języka, oferujący podświetlanie składni a także podręczny spis dostępnych funkcji i ich parametrów (rysunek 4.23). Podczas implementacji transformacji, Jitterbit pozwala na ich testowanie na prawdziwych danych. Wystarczy z podręcznego menu 3 jest to duże udogodnienie w porównaniu z integracją za pomocą tworzonego od podstaw narzędzia, gdzie należałoby zadbać o wiele szczegółów wynikające z różnych dialektów SQL

66 4.6. Platforma integracyjna 62 Rysunek 4.22: Jitterbit mapowanie wartości (kolor niebieski). Pola poddane transformacji oznaczone ikoną f(x)). W prawej części panelu widoczna struktura hierarchiczna. Rysunek 4.23: Edytor formuł dostępny w Jitterbit

67 4.6. Platforma integracyjna 63 wybrać odpowiednią opcję i nastąpi wczytanie danych źródłowych, które widoczne będą w lewej części panelu. Pracując w edytorze trasformacji, można w dowolnym momencie sprawdzić wpływ wprowadzonego kodu na krotki z oryginalnej tabeli. Jedną z wykorzystanych transformacji bazodanowych jest <SQLIDENTITY>, dzięki której można uzyskać dostęp do sekwencji służącej do numerowania rekordów w bazie danych Joomla. Ponownie, użytkownik nie musi dostosowywać się do konkretnych implementacji baz różniących się od siebie sposobami stosowania autonumeracji. Tłumaczeniem dialektów SQL zajmuje się Jitterbit. Jako przykład prostej transformacji tekstowej, można podać konwersję adresu poczty. zapisany w bazie Adempiere posiada odstępy po obu stronach co dyskwalifikuje go jako poprawny wpis w bazie Joomla. Dlatego należy wykorzystać transformację <trans> Replace( ," ","") </trans> która usuwa niepożądane znaki. Nieco bardziej skomplikowana transformacja, wykorzystująca funkcje warunkowe, widoczna jest na rysunku Z powodu różnic przeznaczenia danych o użytkownikach, a więc braku możliwości konfiguracji odpowiednich opcji wymaganych przez Joomla, dla których nie przewidziano oczywiście miejsca na formatce administracji Adempiere, należy zdecydować się na odgórne przyjęcie pewnych założeń. W opisywanym przypadku przenoszenia danych użytkowników Adempiere przyjęto, że każdy z nich otrzyma rang. użytkownika zarejestrowanego z uprawnieniami do publikowania treści. Ewentualne zmiany uprawnień wykonywane mogą być już po przeniesieniu użytkownika, w module administracyjnym Joomla. Dzięki zapisaniu w tabeli jos users kolumny adempiere id zawierającej identyfikator użytkownika Adempiere, zmienione w ten sposób dane nie zostaną nadpisane przy najbliższej zmianie któregoś z transformowanych pól, ale uaktualnione do właściwego stanu. Jitterbit udostępnia możliwość ustalenia harmonogramu wykonywania zadań poprzez uruchomioną na serwerze usługę Jitterbit Process Engine, która regularnie sprawdza kolejkę zadań przeznaczonych do uruchomienia. Dostępne są standardowe opcje, czyli jednorazowe wykonanie w żądanym momencie lub powtarzanie akcji co określony czas. Po przetestowaniu i ustaleniu harmonogramu wykonań, transformacja może zostać zapisana i wgrana z całą operacją przez aplikację kliencką na serwer. Nie istniejące na początku (rysunek 4.20) połączenie jest w tej chwili realizowane przez serwer Jitterbit. Schemat połączenia i kolejność zdarzeń pokazano na rysunku Dla pojedynczej operacji, jaka została przykładowo pokazana, można ustawić okres na kilka minut. Nie spowoduje to spadku wydajności ani dezaktualizacji z powodu opóźnień. Jednak należy założyć, że w produkcyjnym systemie podobnych operacji wystąpi dużo więcej i minimalizacja niepotrzebnej aktywności serwera i opóźnień w wykonaniu zadania stanie się ważnym problemem. W takim przypadku dobrze jest skorzystać z zaawansowanych funkcji oferowanych przez pakiet Jitterbit i umożliwić asynchroniczną kontrolę wykonywania operacji za pomocą Web Services. Web Services to zbiór standardów stworzony w celu wspierania wymiany informacji za pomocą sieci. Standardy te tworzą abstrakcyjną warstwę, znajdującą się ponad systemami operacyjnymi czy też językami programowania, umożliwiając porozumiewanie się aplikacji bez szczegółowej wiedzy o szczegółach implementacyjnych. Format i sposób wymiany komunikatów między serwisami jest dokładnie okreslony za pomocą standardów opracowanych przez organizację World Wide Web Consortium. Każdy serwer posiada dodatkowo reguły określające sposób komunikacji z nim (stosowane zabezpieczenia, adres właściwej usługi) oraz listę udostępnianych metod wraz z argumentami

68 4.6. Platforma integracyjna 64 Rysunek 4.24: Stan pod dołączeniu serwera Jitterbit. Numery wskazują kolejność występowania zdarzeń i zwracanymi typami. Wszystko to jest opisane za pomocą dokumentu konfiguracyjnego Web Service Definition Language. WSDL jest dokumentem XML opisującym udostępnione przez serwer Web Services. Prezentując listę istniejących metod, ich argumenty (w tym złożone typy danych) i zwracane typy, w prosty sposób definiuje schemat komunikacji na linii klient serwer. Dzięki rozszerzalności WSDL pozwala opisywać procedury i ich formaty niezależnie od protokołów użytych do przekazywania danych. W chwili obecnej większość serwerów Web Services oferuje automatyczne generowanie pliku WSDL, jednak umiejętność jego czytania przez programistę jest bardzo pomocna. Inne komputery współpracują z usługą na zasadach określonych w tym dokumencie, używając odpowiednio sformatowanych komunikatów, które są zazwyczaj przekazywane z wykorzystaniem protokołu HTTP. Dodanie żądań do kolejki zadań wymaga utworzenia i udostępnienia serwera Web Service. Umożliwiono to za pomocą opcji dostępnych w module klienta. Należy przed ich użyciem samodzielnie utworzyć plik WSDL opisujący umiejscowienie i dostępne w usłudze funkcje. Dla mechanizmu zarządzania operacjami potrzebna jest tylko jedna metoda, nazywająca się standardowo RunOperation. Przyjmuje ona za parametr unikalny ciąg znaków określający operację (tzw. GUID operacji, dostępny w menu Additional Details... na stronie konfiguracji operacji w module klienta), nazwę użytkownika i jego hasło w celu weryfikacji uprawnień. Wgranie Web Service na serwer Jitterbit odbywa się automatycznie po zapisaniu operacji. W ten sposób zostaje utworzona i uruchomiona aplikacja sieciowa oczekująca na nadesłanie żądań wykonania operacji Wymagania sprzętowe Dla wersji Jitterbit 1.2.1: JDK 1.5 lub nowsza, PostgreSQL 8.1 lub inna wspierana baza danych MS Windows lub Linux wspierający format RPM

Licencje na oprogramowanie i zasoby internetowe

Licencje na oprogramowanie i zasoby internetowe Licencje na oprogramowanie i zasoby internetowe Licencja Słownik języka polskiego PWN, Warszawa 1979 Licencja to zezwolenie na korzystanie z praw do opatentowanego wynalazku, zarejestrowanego wzoru użytkowego

Bardziej szczegółowo

Przede wszystkim autor ma oficjalne prawo do autorstwa utworu, rozpowszechniania go pod wyznaczonym pseudonimem, kontroli nad

Przede wszystkim autor ma oficjalne prawo do autorstwa utworu, rozpowszechniania go pod wyznaczonym pseudonimem, kontroli nad Prawo autorskie Prawa autorskie dzielimy na osobiste i majątkowe. Pierwsze z nich polegają na powiązaniu nazwiska twórcy z jego dziełem. Nie wygasają, są niezbywalne, nieprzenoszalne i nie można się ich

Bardziej szczegółowo

Wykład VI. Wybrane zagadnienia licencjonowania i praw autorskich. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład VI. Wybrane zagadnienia licencjonowania i praw autorskich. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład VI Wybrane zagadnienia licencjonowania i praw autorskich 1 Licencja Licencja na oprogramowanie to umowa na korzystanie z utworu jakim jest aplikacja

Bardziej szczegółowo

Prawa autorskie cd. Prawa autorskie. Autorskie prawa majątkowe. Autorskie prawa osobiste

Prawa autorskie cd. Prawa autorskie. Autorskie prawa majątkowe. Autorskie prawa osobiste Prawa autorskie W Polsce prawo autorskie jest regulowane ustawą z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz. U. z 2006 r. Nr 90, poz. 631 z późn. zm.). Prawa autorskie cd. Prawa

Bardziej szczegółowo

Prawa autorskie cd. Prawa autorskie. Autorskie prawa majątkowe. Autorskie prawa osobiste

Prawa autorskie cd. Prawa autorskie. Autorskie prawa majątkowe. Autorskie prawa osobiste Prawa autorskie W Polsce prawo autorskie jest regulowane ustawą z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz. U. z 2006 r. Nr 90, poz. 631 z późn. zm.). Prawa autorskie cd. Prawa

Bardziej szczegółowo

Prawo własności przemysłowej. Prawa patentowe i prawa z tym związane - I

Prawo własności przemysłowej. Prawa patentowe i prawa z tym związane - I Prawo własności przemysłowej Prawa patentowe i prawa z tym związane - I Historia 1474 ustanowiono ustawę wenecką, twórca uzyskiwał 10-cio letnią ochronę na nowy i twórczy pomysł, dotyczący urządzenia,

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych

Bezpieczeństwo systemów komputerowych Bezpieczeństwo systemów komputerowych Jak pisać poprawne programy? Aleksy Schubert (Marcin Peczarski) Instytut Informatyki Uniwersytetu Warszawskiego 6 listopada 2018 Na podstawie: David A. Wheeler Secure

Bardziej szczegółowo

KNFB Reading Technologies Inc. Sensotec NV/SA.

KNFB Reading Technologies Inc. Sensotec NV/SA. KNFB Reading Technologies Inc. Sensotec NV/SA. Umowa licencyjna Przed otworzeniem opakowania z produktem Reader firmy Kurzweil-National Federation of the Blind (Reader) i przed jego pierwszym uruchomieniem

Bardziej szczegółowo

Przykłady wykorzystania edukacyjnych portali internetowych oraz dostępnych tam multimediów

Przykłady wykorzystania edukacyjnych portali internetowych oraz dostępnych tam multimediów Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Przykłady wykorzystania edukacyjnych portali internetowych oraz dostępnych tam multimediów Podstawa programowa

Bardziej szczegółowo

Specyfikacje. Tabela 1. Cechy usługi. Sposób realizacji usługi. Dostęp do zasobów technicznych. Analiza i rozwiązywanie

Specyfikacje. Tabela 1. Cechy usługi. Sposób realizacji usługi. Dostęp do zasobów technicznych. Analiza i rozwiązywanie Arkusz danych Usługi wsparcia dotyczące Usługi Care Pack i usługi kontraktowe, część pakietu HP Care Korzyści z usługi Dostęp do zasobów technicznych HP w celu rozwiązywania problemów Potencjalne obniżenie

Bardziej szczegółowo

Technologia Informacyjna

Technologia Informacyjna Technologia Informacyjna Oprogramowanie i licencje dr. inż Adam Klimowicz Oprogramowanie Rodzaje oprogramowania System operacyjny Program komputerowy bądź zbiór programów, który zarządza sprzętem oraz

Bardziej szczegółowo

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej. Efekty dla studiów pierwszego stopnia profil ogólnoakademicki na kierunku Informatyka w języku polskim i w języku angielskim (Computer Science) na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie-

Bardziej szczegółowo

Prawa autorskie, licencje

Prawa autorskie, licencje Prawa autorskie, licencje Wyjaśnienie pojęć oraz tezy do dyskusji Michał Rad 21.10.2015 Przedstawione w dalszej części wykładu tezy są prywatnym poglądem autora i powinne być traktowane jako głos w dyskusji,

Bardziej szczegółowo

Czym się kierować przy wyborze systemu ERP? poradnik

Czym się kierować przy wyborze systemu ERP? poradnik Czym się kierować przy wyborze systemu ERP? poradnik Inwestycja w system ERP to decyzja wiążąca na lata, generująca w pierwszym momencie koszty, ale przede wszystkim mająca decydujący wpływ na przebieg

Bardziej szczegółowo

Licencjonowanie oprogramowania

Licencjonowanie oprogramowania Licencjonowanie oprogramowania Licencja to umowa, w której autor utworu lub ktoś, kto ma do niego prawa autorskie (np. producent oprogramowania), określa warunki, na jakich pozwala odbiorcy utworu (np.

Bardziej szczegółowo

Swoboda użycia. prawo autorskie i otwartość dla przemysłów kreatywnych. Centrum Cyfrowe

Swoboda użycia. prawo autorskie i otwartość dla przemysłów kreatywnych. Centrum Cyfrowe Swoboda użycia prawo autorskie i otwartość dla przemysłów kreatywnych Centrum Cyfrowe www.centrumcyfrowe.pl źródło zdjęcia: CC BY Thomas Leuthard, Flickr, bit.ly/1v8jp1p Czy mogę skorzystać z tego utworu?

Bardziej szczegółowo

Ustawa o ochronie praw autorskich i prawach pokrewnych

Ustawa o ochronie praw autorskich i prawach pokrewnych Ustawa o ochronie praw autorskich i prawach pokrewnych OPROGRAMOWANIE (ang. Software) - zespół programów komputera umożliwiających lub ułatwiających jego wykorzystanie. Oprogramowanie dzieli się na systemy

Bardziej szczegółowo

Technologia Informacyjna

Technologia Informacyjna Technologia Informacyjna ZAŁOŻENIA OPEN SOURCE dr inż. Adam Klimowicz 1. Darmowe rozpowszechnianie Licencja nie może zabraniać nikomu sprzedaży ani przekazywania oprogramowania jako części złożonej dystrybucji

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

Dwie szkoły oceny 360 stopni. Sprawdź różnicę pomiędzy klasycznym a nowoczesnym podejściem

Dwie szkoły oceny 360 stopni. Sprawdź różnicę pomiędzy klasycznym a nowoczesnym podejściem Sprawdź różnicę pomiędzy klasycznym a nowoczesnym podejściem Czy stosowanie tradycyjnego podejścia do metody 360 stopni jest jedynym rozwiązaniem? Poznaj dwa podejścia do przeprowadzania procesu oceny

Bardziej szczegółowo

Czy masz/znasz prawo? O prawie autorskim i wolnych licencjach. Projekt prowadzi: Partner Projektu: Patronat honorowy: Dofinansowano ze środków:

Czy masz/znasz prawo? O prawie autorskim i wolnych licencjach. Projekt prowadzi: Partner Projektu: Patronat honorowy: Dofinansowano ze środków: Czy masz/znasz prawo? O prawie autorskim i wolnych licencjach Projekt prowadzi: Partner Projektu: Patronat honorowy: Dofinansowano ze środków: Co to jest utwór? Każdy przejaw działalności twórczej o indywidualnym

Bardziej szczegółowo

Prawo autorskie i licencje Creative Commons

Prawo autorskie i licencje Creative Commons Prawo autorskie i licencje Creative Commons Tradycyjny copyright Prawo autorskie (ang. copyright, symbol: ) pojęcie prawnicze oznaczające ogół praw przysługujących autorowi utworu albo przepisy upoważniające

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

Licencje open-source. Bartosz Szreder. Bartosz Szreder Licencje open-source 1 / 8

Licencje open-source. Bartosz Szreder. Bartosz Szreder Licencje open-source 1 / 8 Licencje open-source Bartosz Szreder Bartosz Szreder Licencje open-source 1 / 8 Mnogość licencji Bartosz Szreder Licencje open-source 2 / 8 Mnogość licencji GPL, LGPL, AGPL, różne wersje... Bartosz Szreder

Bardziej szczegółowo

Prawo autorskie czy prawa własności przemysłowej? dr Anna Tischner UJ

Prawo autorskie czy prawa własności przemysłowej? dr Anna Tischner UJ Prawo autorskie czy prawa własności przemysłowej? dr Anna Tischner UJ Prawo własności intelektualnej - tradycyjny podział dychotomiczny i prawa pokrewne prawa własności przemysłowej patent prawo ochronne

Bardziej szczegółowo

Jak zgodnie z prawem założyć radio internetowe na swojej stronie?

Jak zgodnie z prawem założyć radio internetowe na swojej stronie? Ochrona Własności Intelektualnej cz. VI dr inż.tomasz Ruść Spis treści Na jakich zasadach możemy korzystać z prawa cytatu? Jak zgodnie z prawem założyć radio internetowe na swojej stronie? Czy brak informacji

Bardziej szczegółowo

Umowa licencji na korzystanie z oprogramowania Marpnet.pl wersja DEMO przez okres 14 dni 1 Używane w niniejszym dokumencie określenia mają znaczenie,

Umowa licencji na korzystanie z oprogramowania Marpnet.pl wersja DEMO przez okres 14 dni 1 Używane w niniejszym dokumencie określenia mają znaczenie, Umowa licencji na korzystanie z oprogramowania Marpnet.pl wersja DEMO przez okres 14 dni 1 Używane w niniejszym dokumencie określenia mają znaczenie, jak podane w poniższych definicjach: 1.Licencjobiorca

Bardziej szczegółowo

Crea%ve Commons 0. Instrukcja.

Crea%ve Commons 0. Instrukcja. Crea%ve Commons 0. Instrukcja. Przeniesienie do domeny publicznej. Crea6ve Commons Zero CZYM JEST DOMENA PUBLICZNA? Za domenę publiczną uznajemy dobro wspólne: zbiór utworów, z których każdy może korzystać

Bardziej szczegółowo

Temat 2: Normy prawne dotyczące rozpowszechniania programów komputerowych.

Temat 2: Normy prawne dotyczące rozpowszechniania programów komputerowych. Temat 2: Normy prawne dotyczące rozpowszechniania programów komputerowych. Prawo autorskie stosowano już w XIX w. Międzynarodowe umowy dotyczące prawa autorskiego podpisano w 1866 r. w Bernie i w 1952

Bardziej szczegółowo

Kręcisz filmy uważaj na prawo autorskie!

Kręcisz filmy uważaj na prawo autorskie! Kręcisz filmy uważaj na prawo autorskie! Przygotowując własny materiał wideo, na pewno często zastanawiasz się, czy i na jakich zasadach wolno ci skorzystać z dzieł innych autorów - wykorzystać sample

Bardziej szczegółowo

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0> Wersja [Uwaga: Niniejszy wzór dostarczony jest w celu użytkowania z Unified Process for EDUcation. Tekst zawarty w nawiasach kwadratowych i napisany błękitną kursywą

Bardziej szczegółowo

Patent na dobry patent, czyli jak chronić swoje wynalazki

Patent na dobry patent, czyli jak chronić swoje wynalazki Patent na dobry patent, czyli jak chronić swoje wynalazki dr Krzysztof Dudziński, r.pr. Dawid Sierżant LDS Łazewski Depo i Wspólnicy, sp.k., ul. Prosta 70, 00-838 Warszawa, T +48 (22) 832 25 15 F +48 (22)

Bardziej szczegółowo

Bezprzewodowy router szerokopasmowy 300 MBps BR 6428nS Instrukcja szybkiej instalacji Wersja 1.0/październik 2010 r.

Bezprzewodowy router szerokopasmowy 300 MBps BR 6428nS Instrukcja szybkiej instalacji Wersja 1.0/październik 2010 r. Bezprzewodowy router szerokopasmowy 300 MBps BR 6428nS Instrukcja szybkiej instalacji Wersja 1.0/październik 2010 r. 1 PRAWA AUTORSKIE Copyright Edimax Technology Co., Ltd. wszelkie prawa zastrzeżone.

Bardziej szczegółowo

Dotacje na innowacje Inwestujemy w waszą przyszłość

Dotacje na innowacje Inwestujemy w waszą przyszłość Załącznik nr 1 Załącznik techniczny przedmiotu zamówienia zakup badań w zakresie opracowania wersji serwera aplikacyjnego pod aplikację wektorową i obsługi wymiany treści multimedialnych w tymże serwerze

Bardziej szczegółowo

System Zarządzania Treścią

System Zarządzania Treścią System Zarządzania Treścią Dawno, dawno temu, w latach 90-tych XX wieku publikowanie w Internecie nie było proste. Wymagało znajomości HTMLa do stworzenia strony, FTP do wysłania zawartości na serwer i

Bardziej szczegółowo

5. Biblioteki - kody źródłowe, nie będące autorstwa Licencjodawcy, wykorzystywane w różnych częściach programu.

5. Biblioteki - kody źródłowe, nie będące autorstwa Licencjodawcy, wykorzystywane w różnych częściach programu. Licencja Licencja nie zezwala na umieszczenie sklepu opartego na Programie (SOTESHOP) w Internecie przed uiszczeniem pełnej opłaty licencyjnej i przed nadaniem przez Licencjodawcę idywidualnego numeru

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

REGULAMIN KORZYSTANIA ZE STRONY INTERNETOWEJ

REGULAMIN KORZYSTANIA ZE STRONY INTERNETOWEJ REGULAMIN KORZYSTANIA ZE STRONY INTERNETOWEJ WWW.DRCLOWN.PL Spis treści 1 Postanowienia ogólne... 3 2 Definicje... 3 3 Zasady korzystania ze Strony Fundacji... 4 4 Prawa i obowiązki użytkownika... 4 5

Bardziej szczegółowo

OCHRONA WŁASNOŚCI INTELEKTUALNEJ WYKŁAD 5. dr Jagoda Mrzygłocka- Chojnacka

OCHRONA WŁASNOŚCI INTELEKTUALNEJ WYKŁAD 5. dr Jagoda Mrzygłocka- Chojnacka OCHRONA WŁASNOŚCI INTELEKTUALNEJ WYKŁAD 5 dr Jagoda Mrzygłocka- Chojnacka UMOWA O PRZEKAZANIU PRAW Korzystanie z utworu poza zakresem dozwolonego użytku oznacza wejście w zakres monopolu autorskiego. Istnieją

Bardziej szczegółowo

PRACA DYPLOMOWA INŻYNIERSKA. Mobilny system wspomagający pracę. terminala kontenerowego

PRACA DYPLOMOWA INŻYNIERSKA. Mobilny system wspomagający pracę. terminala kontenerowego PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ PRACA DYPLOMOWA INŻYNIERSKA Mobilny system wspomagający pracę terminala kontenerowego autor: Bartłomiej Urbanowicz opiekun pracy:

Bardziej szczegółowo

Z OPROGRAMOWANIA DO OBSŁUGI DORADCÓW FINANSOWYCH FINFINDER

Z OPROGRAMOWANIA DO OBSŁUGI DORADCÓW FINANSOWYCH FINFINDER OGÓLNE WARUNKI UMOWY LICENCYJNEJ NA KORZYSTANIE Z OPROGRAMOWANIA DO OBSŁUGI DORADCÓW FINANSOWYCH FINFINDER Obowiązujące od dnia 1 stycznia 2019 roku. Niniejszy dokument reguluje szczegółowe zasady i zakres

Bardziej szczegółowo

Prawo autorskie w pracy nauczyciela. Opracowanie: Mieczysława Skrzypczak Katarzyna Wilczkowska

Prawo autorskie w pracy nauczyciela. Opracowanie: Mieczysława Skrzypczak Katarzyna Wilczkowska Prawo autorskie w pracy nauczyciela Opracowanie: Mieczysława Skrzypczak Katarzyna Wilczkowska Podstawa prawna Ustawa o prawie autorskim i prawach pokrewnych z 5 lutego 1994 roku http://isap.sejm.gov.pl

Bardziej szczegółowo

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY. Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY. 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z przykładowym systemem ekspertowym napisanym w JESS. Studenci poznają strukturę systemu ekspertowego,

Bardziej szczegółowo

Spis pytań do testu z aspektów prawnych e-edukacji

Spis pytań do testu z aspektów prawnych e-edukacji Spis pytań do testu z aspektów prawnych e-edukacji L.p. Pytanie wielokrotnego wyboru Odpowiedź Pierwsza grupa pytań dotyczy zagadnień związanych z organizacją kursu oraz ochroną jego zawartości i ochroną

Bardziej szczegółowo

1 Ochrona Danych Osobowych

1 Ochrona Danych Osobowych 1 Ochrona Danych Osobowych 1. Dane dotyczące Użytkowników Serwisu internetowego NoPixel.pl przetwarzane są właściciela witryny internetowej NoPixel.pl, będącym w odniesieniu do danych osobowych Użytkowników

Bardziej szczegółowo

Prawo autorskie i wolne licencje

Prawo autorskie i wolne licencje Prawo autorskie i wolne licencje Mariusz Karolak materiał szkoleniowy na licencji CC BY-SA 4.0 Źródło prawa autorskiego w Polsce Ustawa z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz.U.

Bardziej szczegółowo

tel. fax. 41 332 32 03 e-mail: sodmidn@sodmidn.kielce.pl www.sodmidn.kielce.pl

tel. fax. 41 332 32 03 e-mail: sodmidn@sodmidn.kielce.pl www.sodmidn.kielce.pl SAMORZĄDOWY OŚRODEK DORADZTWA METODYCZNEGO I DOSKONALENIA NAUCZYCIELI w Kielcach 25-431 KIELCE, ul. Marszałka J. Piłsudskiego 42 tel. fax. 41 332 32 03 e-mail: sodmidn@sodmidn.kielce.pl www.sodmidn.kielce.pl

Bardziej szczegółowo

Wstęp do Informatyki. Klasyfikacja oprogramowania

Wstęp do Informatyki. Klasyfikacja oprogramowania Wstęp do Informatyki Klasyfikacja oprogramowania Oprogramowanie komputerowe Funkcjonalność komputera jest wynikiem zarówno jego budowy, jak i zainstalowanego oprogramowania Komputer danej klasy znajduje

Bardziej szczegółowo

Regulamin Bazy Leków Zabronionych Polskiej Agencji Antydopingowej z dnia 1 lipca 2017 r.

Regulamin Bazy Leków Zabronionych Polskiej Agencji Antydopingowej z dnia 1 lipca 2017 r. Regulamin Bazy Leków Zabronionych Polskiej Agencji Antydopingowej z dnia 1 lipca 2017 r. 1 Wstęp Niniejszy Regulamin określa zasady funkcjonowania oraz korzystania z Serwisu internetowego Baza Leków Zabronionych

Bardziej szczegółowo

Licencje Creative Commons

Licencje Creative Commons Licencje Creative Commons Czym są licencje Creative Commons? Creative Commons są to umowy licencyjne, na podstawie których twórca udostępnia, pod określonymi warunkami, swój utwór objęty majątkowymi prawami

Bardziej szczegółowo

Wzór wstępnego Business Planu

Wzór wstępnego Business Planu Wzór wstępnego Business Planu Informacje niżej zawarte należy traktować jako przykładowe. Podobieństwo informacji zawartych w złożonych pracach nie będzie świadczyła za zasadnością wyboru business planu.

Bardziej szczegółowo

Informacja patentowa jako źródło wspierania innowacji

Informacja patentowa jako źródło wspierania innowacji Informacja patentowa jako źródło wspierania innowacji Nowy Sącz 11 czerwca 2010 1 Sukces przedsiębiorcy i każdego twórcy zależy nie tylko od zdolności tworzenia innowacji, ale także od zdolności zabezpieczenia

Bardziej szczegółowo

Umowa licencyjna użytkownika oprogramowania Publiker Klient dla Windows wersja 1.x.x firmy NetVision

Umowa licencyjna użytkownika oprogramowania Publiker Klient dla Windows wersja 1.x.x firmy NetVision Umowa licencyjna użytkownika oprogramowania Publiker Klient dla Windows wersja 1.x.x firmy NetVision Przed zainstalowaniem Oprogramowania Publiker Klient dla Windows należy zapoznać się z poniższym tekstem.

Bardziej szczegółowo

Eksperci PIIT o identyfikacji elektronicznej

Eksperci PIIT o identyfikacji elektronicznej Eksperci PIIT o identyfikacji elektronicznej 2017-10-31 Identyfikacja elektroniczna umożliwia użytkownikom systemów teleinformatycznych potwierdzenie swoich danych np. imienia, nazwiska i PESEL w oparciu

Bardziej szczegółowo

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VII - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Wytwarzanie oprogramowania Model tworzenia oprogramowania

Bardziej szczegółowo

Kontekst prawny zarządzania własnością intelektualną

Kontekst prawny zarządzania własnością intelektualną Kontekst prawny zarządzania własnością intelektualną adw. Eryk Kłossowski Janowski Kłossowski Dąbrowska Ignatjew s.c. CZĘŚĆ I zagadnienia teoretyczne PODSTAWY PRAWNE ustawazdnia4lutego1994r.oprawieautorskim

Bardziej szczegółowo

Specyfika i zasady przyznawania punktów w ramach kryteriów merytorycznych fakultatywnych

Specyfika i zasady przyznawania punktów w ramach kryteriów merytorycznych fakultatywnych Program Operacyjny Innowacyjna Gospodarka Działanie 8.1 Wspieranie działalności gospodarczej w dziedzinie gospodarki elektronicznej Specyfika i zasady przyznawania punktów w ramach kryteriów merytorycznych

Bardziej szczegółowo

Regulamin świadczenia usług w programie wszystkoonadcisnieniu.pl

Regulamin świadczenia usług w programie wszystkoonadcisnieniu.pl Regulamin świadczenia usług w programie wszystkoonadcisnieniu.pl 1 1. Niniejszy regulamin określa zasady korzystania z usług świadczonych drogą elektroniczną za pośrednictwem portalu wszystkoonadicsnieniu.pl

Bardziej szczegółowo

Seria I. Pytanie 4: Czy Zamawiający dopuści komputer o wadze przekraczającej wymagane 2,36 kg?

Seria I. Pytanie 4: Czy Zamawiający dopuści komputer o wadze przekraczającej wymagane 2,36 kg? Seria I Pytania dotyczące pkt I 3.4 Wymagania ogólne w zakresie licencji Pytanie 1: Zamawiający w PFU wymaga: Licencje muszą pozwalać na swobodne przenoszenie pomiędzy stacjami roboczymi (np. w przypadku

Bardziej szczegółowo

Forte Rozliczenia Pracownicze

Forte Rozliczenia Pracownicze Forte Rozliczenia Pracownicze Podręcznik użytkownika Wersja 2014 Windows jest znakiem towarowym firmy Microsoft Corporation. Microsoft SQL Server jest znakiem towarowym firmy Microsoft Corporation. Adobe,

Bardziej szczegółowo

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006 IO - Plan wdrożenia M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak 5 czerwca 2006 1 Spis treści 1 Wprowadzenie 3 1.1 Cel.......................................... 3 1.2 Zakres........................................

Bardziej szczegółowo

Narzędzia informatyczne. Wolne oprogramowanie

Narzędzia informatyczne. Wolne oprogramowanie Narzędzia informatyczne. Wolne oprogramowanie Aleksander Denisiuk Uniwersytet Warmińsko-Mazurski Olsztyn, ul. Słoneczna 54 denisjuk@matman.uwm.edu.pl 1 / 20 Wolne oprogramowanie Najnowsza wersja tego dokumentu

Bardziej szczegółowo

Regulamin korzystania z aplikacji mobilnej Produkty w Sieci mobile. Postanowienia ogólne

Regulamin korzystania z aplikacji mobilnej Produkty w Sieci mobile. Postanowienia ogólne Regulamin korzystania z aplikacji mobilnej Produkty w Sieci mobile Postanowienia ogólne 1. Niniejszy regulamin (zwany dalej: Regulaminem ) określa zasady dostępu i korzystania z aplikacji mobilnej MOBIT-GS1

Bardziej szczegółowo

BSD alternatywa dla Linuksa. (na przykładzie FreeBSD)

BSD alternatywa dla Linuksa. (na przykładzie FreeBSD) BSD alternatywa dla Linuksa (na przykładzie FreeBSD) 1 Plan prezentacji 1. Historia BSD 2 Plan prezentacji 1. Historia BSD 2. Licencja BSD a GNU/GPL 3 Plan prezentacji 1. Historia BSD 2. Licencja BSD a

Bardziej szczegółowo

Związek pomiędzy dyrektywą 98/34/WE a rozporządzeniem w sprawie wzajemnego uznawania

Związek pomiędzy dyrektywą 98/34/WE a rozporządzeniem w sprawie wzajemnego uznawania KOMISJA EUROPEJSKA DYREKCJA GENERALNA DS. PRZEDSIĘBIORSTW I PRZEMYSŁU Wytyczne 1 Bruksela, dnia 1.2.2010 r. - Związek pomiędzy dyrektywą 98/34/WE a rozporządzeniem w sprawie wzajemnego uznawania 1. WPROWADZENIE

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

REGULAMIN ŚWIADCZENIA USŁUG DROGĄ ELEKTRONICZNĄ

REGULAMIN ŚWIADCZENIA USŁUG DROGĄ ELEKTRONICZNĄ REGULAMIN ŚWIADCZENIA USŁUG DROGĄ ELEKTRONICZNĄ www.samsaratattoo.pl 1 POSTANOWIENIA OGÓLNE 1. Na podstawie art. 8 ust. 1 Ustawy z dnia 18 lipca 2002 roku o świadczeniu usług drogą elektroniczną, Operator

Bardziej szczegółowo

Jaką licencję otwartą wybrać?

Jaką licencję otwartą wybrać? Jaką licencję otwartą wybrać? Poradnik 27.12.2014 Autorzy dr inź. Tomasz Boiński Centrum Doskonałości Naukowej Infrastruktury Wytwarzania Aplikacji (CD NIWA). Projekt współfinansowany z Europejskiego Funduszu

Bardziej szczegółowo

ZAPYTANIE OFERTOWE. z dnia 20 grudnia 2013r.

ZAPYTANIE OFERTOWE. z dnia 20 grudnia 2013r. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Rozwoju Regionalnego ZAPYTANIE OFERTOWE z dnia 20 grudnia 2013r. w związku z realizacją projektu pn. Wdrożenie systemu

Bardziej szczegółowo

USTAWA z dnia 27 lipca 2001 r. o ochronie baz danych 1)

USTAWA z dnia 27 lipca 2001 r. o ochronie baz danych 1) Kancelaria Sejmu s. 1/1 USTAWA z dnia 27 lipca 2001 r. o ochronie baz danych 1) Opracowano na podstawie: Dz.U. z 2001 r. Nr 128, poz. 1402, z 2004 r. Nr 96, poz. 959 Art. 1. Ochronie określonej w ustawie

Bardziej szczegółowo

ZGŁOSZENIE POMYSŁU do Konkursu INNOWACYJNY POMYSŁ 2008

ZGŁOSZENIE POMYSŁU do Konkursu INNOWACYJNY POMYSŁ 2008 ZGŁOSZENIE POMYSŁU do Konkursu INNOWACYJNY POMYSŁ 2008 KONKURS Zgłoszenie pomysłu do Konkursu należy przysłać do 17 listopada, e-mailem na adres konkurs@uni.lodz.pl Rozstrzygnięcie Konkursu do 12 grudnia

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Przedmiotowy System Oceniania z zajęć komputerowych oraz informatyki dla Szkoły Podstawowej w Żarkach 1. Cele oceniania:

Przedmiotowy System Oceniania z zajęć komputerowych oraz informatyki dla Szkoły Podstawowej w Żarkach 1. Cele oceniania: Przedmiotowy System Oceniania z zajęć komputerowych oraz informatyki dla Szkoły Podstawowej w Żarkach 1. Cele oceniania: Ocenianie wewnątrzszkolne ma na celu: 1. Bieżące, okresowe, roczne rozpoznanie i

Bardziej szczegółowo

Wybrane aspekty amerykańskiego prawa patentowego :47:19

Wybrane aspekty amerykańskiego prawa patentowego :47:19 Wybrane aspekty amerykańskiego prawa patentowego 2016-01-15 15:47:19 2 Wybrane aspekty amerykańskiego prawa patentowego w kontekście wchodzenia polskich firm na rynek amerykański Firmy rozważające ekspansję

Bardziej szczegółowo

Umowa licencyjna na korzystanie z Aplikacji freeyah (zwana dalej Licencją )

Umowa licencyjna na korzystanie z Aplikacji freeyah (zwana dalej Licencją ) Umowa licencyjna na korzystanie z Aplikacji freeyah (zwana dalej Licencją ) 1. Przedmiotem niniejszej Licencji jest aplikacja przeznaczona do korzystania z usług telekomunikacyjnych i innych świadczonych

Bardziej szczegółowo

Regulamin korzystania z wypożyczalni online Liberetto. stanowiącej aplikację systemu Cyfrowej Biblioteki Polskiej Piosenki. z dnia r.

Regulamin korzystania z wypożyczalni online Liberetto. stanowiącej aplikację systemu Cyfrowej Biblioteki Polskiej Piosenki. z dnia r. Regulamin korzystania z wypożyczalni online Liberetto stanowiącej aplikację systemu Cyfrowej Biblioteki Polskiej Piosenki z dnia 24.05.2018 r., zwany dalej Regulaminem Aplikacja do wypożyczeń Liberetto

Bardziej szczegółowo

Co można uzyskać dzięki opracowaniu wynalazku i zapewnieniu ochrony patentowej. Jaka jest definicja wynalazku?

Co można uzyskać dzięki opracowaniu wynalazku i zapewnieniu ochrony patentowej. Jaka jest definicja wynalazku? Ochrona Własności Intelektualnej cz. IV dr inż.tomasz Ruść Co to jest patent? Spis treści Co można uzyskać dzięki opracowaniu wynalazku i zapewnieniu ochrony patentowej Jakie cechy decydują o zdolności

Bardziej szczegółowo

PRAWO WŁASNOŚCI PRZEMYSŁOWEJ

PRAWO WŁASNOŚCI PRZEMYSŁOWEJ PRAWO WŁASNOŚCI PRZEMYSŁOWEJ Obecnie PrWłPrzem reguluje: stosunki w zakresie wynalazków, wzorów użytkowych, wzorów przemysłowych, znaków towarowych, oznaczeń geograficznych i topografii układów scalonych;

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

DECYZJA WYKONAWCZA KOMISJI (UE)

DECYZJA WYKONAWCZA KOMISJI (UE) 19.5.2017 L 128/59 DECYZJA WYKONAWCZA KOMISJI (UE) 2017/863 z dnia 18 maja 2017 r. aktualizująca licencję otwartego oprogramowania EU w celu dalszego ułatwienia wymiany i ponownego wykorzystywania oprogramowania

Bardziej szczegółowo

Sage Symfonia Kadry i Płace

Sage Symfonia Kadry i Płace Sage Symfonia Kadry i Płace Instalacja programu Wersja 2015.c Producent: Sage sp. z o.o. tel. 22 455 56 00 www.sage.com.pl Windows jest znakiem towarowym firmy Microsoft Corporation. Microsoft SQL Server

Bardziej szczegółowo

Jak zaprojektować firmę aby mogła się skalować i odnosić trwałe sukcesy? Warszawa, 13 listopada 2018 r.

Jak zaprojektować firmę aby mogła się skalować i odnosić trwałe sukcesy? Warszawa, 13 listopada 2018 r. Jak zaprojektować firmę aby mogła się skalować i odnosić trwałe sukcesy? Warszawa, 13 listopada 2018 r. Budowanie Organizacji Odnoszących Trwałe Sukcesy - Tezy 1. Zbudowanie organizacji odnoszącej trwałe

Bardziej szczegółowo

Wynalazczość w uczelni technicznej pułapki i zagrożenia

Wynalazczość w uczelni technicznej pułapki i zagrożenia VIII Spotkanie Zawodowe 2013-06-06 WEiTI PW R.ZAŁ. 1951 Wynalazczość w uczelni technicznej pułapki i zagrożenia dr inż. Ireneusz Słomka UPRP Wszelkie prawa zastrzeżone 1 1.Co jest, a co nie jest wynalazkiem

Bardziej szczegółowo

ZAPYTANIE OFERTOWE NR 01/04/2014

ZAPYTANIE OFERTOWE NR 01/04/2014 Lubliniec, dnia 17 kwietnia 2014r. Schwer Fittings Sp. z o.o. Ul. Oleska 34 42-700 Lubliniec Do ZAPYTANIE OFERTOWE NR 01/04/2014 Zwracamy się z prośbą o przedstawienie oferty handlowej w ramach Działania

Bardziej szczegółowo

egroupware czy phpgroupware jest też mniej stabilny.

egroupware czy phpgroupware jest też mniej stabilny. Opengroupware to projekt udostępniający kompletny serwer aplikacji oparty na systemie Linux. Dostępny na licencji GNU GPL, strona domowa: http://www.opengroupware.org/ Jego cechy to wysoka stabilność,

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

USTALENIE SYSTEMU WYNAGRODZEŃ

USTALENIE SYSTEMU WYNAGRODZEŃ USTALENIE SYSTEMU WYNAGRODZEŃ Administracja systemu wynagrodzeń jest ważnym elementem prowadzenia biznesu. Gdy mamy działający formalny system płac, pomaga to w kontrolowaniu kosztów personelu, podnosi

Bardziej szczegółowo

Wolne Oprogramowanie

Wolne Oprogramowanie Technologia informacyjna Wolne Oprogramowanie Aleksander Denisiuk denisjuk@euh-e.edu.pl Elblaska Uczelnia Humanistyczno-Ekonomiczna ul. Lotnicza 2 82-300 Elblag Technologia informacyjna p. 1 Wolne Oprogramowanie

Bardziej szczegółowo

Regulamin Downloadplus

Regulamin Downloadplus Regulamin Downloadplus Krajowa Izba Rozliczeniowa S.A Strona 1 z 8 Historia dokumentu Wersja Autor Data wydania Uwagi Zatwierdzający 1.0 Departament Rozliczeń 03.2010 Zarząd 2.0 Linia biznesowa rozliczenia

Bardziej szczegółowo

1 Moduł Inteligentnego Głośnika

1 Moduł Inteligentnego Głośnika 1 Moduł Inteligentnego Głośnika Moduł Inteligentnego Głośnika zapewnia obsługę urządzenia fizycznego odtwarzającego komunikaty dźwiękowe. Dzięki niemu możliwa jest konfiguracja tego elementu Systemu oraz

Bardziej szczegółowo

Informacja o firmie i oferowanych rozwiązaniach

Informacja o firmie i oferowanych rozwiązaniach Informacja o firmie i oferowanych rozwiązaniach Kim jesteśmy INTEGRIS Systemy IT Sp. z o.o jest jednym z najdłużej działających na polskim rynku autoryzowanych Partnerów Microsoft w zakresie rozwiązań

Bardziej szczegółowo

Internet to ogólnoświatowy zbiór wzajemnie połączonych ze sobą sieci komputerowych (lokalnych LAN i rozległych WAN). Za datę powstania Internetu

Internet to ogólnoświatowy zbiór wzajemnie połączonych ze sobą sieci komputerowych (lokalnych LAN i rozległych WAN). Za datę powstania Internetu Pojęcia podstawowe Internet to ogólnoświatowy zbiór wzajemnie połączonych ze sobą sieci komputerowych (lokalnych LAN i rozległych WAN). Za datę powstania Internetu przyjmuje się rok 1983. Powstał w ramach

Bardziej szczegółowo

Fragment wykładu z języka C ( )

Fragment wykładu z języka C ( ) Fragment wykładu z języka C (2002-2009) Piotr Szwed pszwed@agh.edu.pl Program make Typowy program w języku C/C++ składa się z wielu odrębnych modułów (jednostek translacji). Ich liczba może dochodzić do

Bardziej szczegółowo

REGULAMIN SYSTEMU OBSŁUGI SERWISOWEJ FIRMY SPUTNIK SOFTWARE SP. Z O.O. Obowiązujący od dnia 25 maja 2018 roku

REGULAMIN SYSTEMU OBSŁUGI SERWISOWEJ FIRMY SPUTNIK SOFTWARE SP. Z O.O. Obowiązujący od dnia 25 maja 2018 roku REGULAMIN SYSTEMU OBSŁUGI SERWISOWEJ FIRMY SPUTNIK SOFTWARE SP. Z O.O. Obowiązujący od dnia 25 maja 2018 roku 1 Podstawowe pojęcia użyte w regulaminie a. Administrator będąca również administratorem zbioru

Bardziej szczegółowo

Polityka prywatności w czasie rekrutacji Castorama Polska Sp. z o.o. Oddział I w Warszawie

Polityka prywatności w czasie rekrutacji Castorama Polska Sp. z o.o. Oddział I w Warszawie Polityka prywatności w czasie rekrutacji Castorama Polska Sp. z o.o. Oddział I w Warszawie 1. Ochrona prywatności w czasie rekrutacji Castorama Polska Sp. z o.o. Oddział I w Warszawie zobowiązuje się do

Bardziej szczegółowo

Symfonia Faktura. Instalacja programu. Wersja 2013

Symfonia Faktura. Instalacja programu. Wersja 2013 Symfonia Faktura Instalacja programu Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy

Bardziej szczegółowo

Definicje. Postanowienia ogólne. Oświadczenie Użytkownika REGULAMIN

Definicje. Postanowienia ogólne. Oświadczenie Użytkownika REGULAMIN REGULAMIN 1. Definicje 1. Operator Kodegenix Jakub Chłapiński z siedzibą w Koluszkach, adres: ul. Budowlanych 4B/2, 95-040 Koluszki 2. Serwis e-usługa dostępna pod adresem http://www.motokraft.pl/, jej

Bardziej szczegółowo