Wstęp pracy magisterskiej

5/5 - (1 vote)

W dzisiejszych czasach usługi informatyczne zdominowały zarówno świat biznesu, jak i prywatne życie zwykłych ludzi. Internet spopularyzował systemy komputerowe do tego stopnia, że zaczynają one wypierać tradycyjne metody przetwarzania informacji ze wszystkich dziedzin życia. W świecie WWW można skorzystać ze słownika, obejrzeć mapy, szybko i komfortowo wyszukać dowolne interesujące nas dane.

Jak łatwo się domyśleć wraz z popularnością systemów informatycznych wzrosła liczba ich potencjalnych użytkowników, co bezpośrednio wiąże się z potrzebą zwiększenia mocy obliczeniowej. Firmy prześcigają się w ofertach dużych, wieloprocesorowych maszyn, które umożliwiłyby obsługę tysięcy czy nawet milionów użytkowników na sekundę. Niestety koszt takiej maszyny bardzo często przekracza budżet małych czy średnich firm, które mają dobre pomysły, ale brakuje im odpowiednich funduszy, aby je zrealizować. W takiej sytuacji idealnym rozwiązaniem może okazać się połączenie wielu zwykłych, niedrogich komputerów, które wspólnie umożliwią obsługę dużej liczby klientów. Aby taka architektura mogła rozwiązać problem zwiększonego zapotrzebowania na moc obliczeniową w sposób niewidoczny dla końcowego użytkownika, niezbędne jest odpowiednie oprogramowanie.

W swojej pracy przedstawię pomysł stworzenia modułu wspierającego rozproszone przetwarzanie danych (klaster) dla bardzo popularnego serwera WWW – Jakarta-Tomcat. W pierwszej części zostanie przedstawiona koncepcja klastra (por. rozdz. 2) oraz opisany sposób działania Tomcata (por. rozdz. 3). W drugiej części pracy przedstawię zrealizowany przeze mnie moduł klastra (por. rozdz. 4) wraz z testami jego wydajności (por. rozdz. 5). Możliwe rozszerzenia opisuję w rozdz. 6.

W pracy prezentuję pozytywne strony wykorzystania modelu replikowania „każdy do każdego”. Wykazuję, że dobrze zaimplementowany moduł może okazać się bezpieczniejszy i wydajniejszy od modelu „serwer macierzysty, serwer kopii”. Oczywiście implementacja jest znacznie bardziej skomplikowana (pojawia się problem synchronizowania dostępu do sesji) – niemniej jednak zysk jaki można osiągnąć stosując ten model w przypadku protokołu HTTPS rekompensuje trudy implementacji modułu.

 

Otwarte Oprogramowanie

5/5 - (1 vote)

Geneza

Początki idei Otwartego Oprogramowania oficjalnie datuje się na rok 1984, kiedy to Richard Stallman, sfrustrowany niemożnością naprawy urzą­dzenia komputerowego w swoim biurze, założył Fundację Wolnego Oprogra­mowania [1]. Producent odmówił mu udostępnienia kodów źródłowych, które pozwoliłyby rozwiązać problem.

Komercyjne firmy produkujące oprogramowanie zazwyczaj sprzedają tyl­ko wersje binarne swoich programów. Zatrzymują natomiast kod źródłowy, który pozwala na zrozumienie zasad działania oprogramowania i wprowadze­nie ewentualnych zmian, jeśli zaszła by taka potrzeba. Otwarty kod źródłowy staje się także gwarancją dobrej jakości. Jeżeli programy są dostarczane tylko w postaci zamkniętej[1], nierzetelny producent może umieścić w nich elemen­ty, które będą działać na szkodę użytkowników. Nie musi też utrzymywać wysokiej jakości, gdyż nikt nie widzi jego pracy.

Jednak rozprowadzanie wersji binarnych wraz kodami źródłowymi mia­ło miejsce już na długo przed powstaniem FSF[2]. Instytucje dystrybuowały w ten sposób oprogramowanie, aby zapewnić sobie wsparcie swoich klientów oraz by wymienić się doświadczeniami z innymi programistami. Tak powsta­wały pierwsze systemy operacyjne firm IBM i AT&T Bell Labs – DOS i Unix.

W latach osiemdziesiątych producenci widząc, że można czerpać zyski z opłat licencyjnych, coraz częściej zaczęli zamykać swoje programy [7]. Po­wstanie organizacji chroniącej otwarte oprogramowanie było niezbędne, by zapobiec przywłaszczaniu pracy programistów chcących pracować zgodnie z tą ideą. Stworzenie FSF nie przypadkowo zbiegło się też z innym przeło­mowym wydarzeniem – ogłoszeniem przez AT&T zamiaru pobierania opłat licencyjnych od systemu Unix, co wywołało duże niezadowolenie w kręgach inżynierskich.

W ponad trzydziesto letniej tradycji rozwoju oprogramowania, utajnia­nie kodów źródłowych jest względnie młodym zjawiskiem. Natomiast dzisiaj idea Otwartego Oprogramowania staje się przedmiotem coraz szerszego za­interesowania i wspierana jest nawet na poziomie państw [21]. W związku z tym można stwierdzić, iż pod wieloma względami świat oprogramowania zatacza pełne koło.

Czym jest wolne oprogramowanie

Zjawisko Otwartego Oprogramowania to fenomen, który jest na całym świecie badany przez wielu specjalistów z różnych dziedzin. Zaskoczyło naj­większych w środowisku biznesu i na stałe zmieniło przemysł związany z in­formatyką [7]. Dla wielu jest nadal nie zrozumiałą zagadką. W świecie agre­sywnego kapitalizmu nie powinno mieć swojego miejsca, a jednak zaistniało i nabiera coraz większego impetu. Jest samo spełniającą się przepowiednią, która powoduje, że sprzedaż alternatywnych rozwiązań staje się coraz trud­niejsza.

Mianem Otwartego Oprogramowania określa się oprogramowanie dostęp­ne wraz z kodami źródłowymi, które może być swobodnie studiowane, roz­powszechniane i modyfikowane przez użytkownika [2]. Samo określenie jest używane jako synonim dla Wolnego Oprogramowania oraz Oprogramowa­nia Open Source. Zarówno w przypadku WO jak i OSS efekty końcowe są identyczne, natomiast różnica leży w ideach jakimi kierują się programiści.

Wolne Oprogramowanie jest terminem używanym przez Richarda Stall- mana i osoby związane z fundacją FSF. Słowo wolne rozumiane jest tu nie jako powolne lub wolne od opłat, ale w kategorii wolności słowa. Słynne jest tu powiedzenie, że to nie kwestia ceny, ale wolności [1]. Puryści w rodzaju Stallmana wierzą, że tworzenie oprogramowania tak, aby nowe technologie były dostępne dla wszystkich, jest równie ważne jak wolność słowa. Jednak motywy takiego poglądu nie leżą w sferze moralnej, jak by to się mogło wy­dawać, ale w przekonaniu, że społeczeństwo, którego podstawą jest wolność wypowiedzi i wolny rynek po prostu funkcjonuje lepiej niż alternatywne. Trudno się tu nie zgodzić z tym twierdzeniem, jednak trudno też nie zauwa­żyć, że mechanizmy na jakich funkcjonuje współczesny świat są tylko w nie­wielkim stopniu nakierowane na dobro człowieka i społeczeństwa, w którym on żyje. Dlatego też, szczególnie w środowiskach biznesowych, takie poglądy mogą nie być zbyt popularne.

Ruch Open Source nie podziela w pełni nieco utopijnej wizji świata pre­zentowanej przez Richarda Stallmana i uważa, że może ona tu tylko zaszko­dzić. Motywami jakimi kierują się zwolennicy OSS jest przekonanie, że je­dynie taki sposób tworzenia oprogramowania, poprzez udostępnianie kodów źródłowych i nawiązanie współpracy ze środowiskiem zewnętrznym, pozwala uzyskać jego najwyższą jakość i wiarygodność oraz daje możliwość dotrzy­mania kroku producentom sprzętu [3].

Jednak dzisiaj w dobie nowej ekonomii i nowych sposobów zarządzania [4] obie ideologie mają szanse się spotkać. Menadżerowie coraz częściej dochodzą do wniosku, że zwrot w kierunku człowieka, wykorzystywanie jego potencjału i działanie dla jego dobra jest jedyną drogą do osiągnięcia prosperity. Moż­na stwierdzić, że środowisko biznesu zaczyna nabierać wymiar humanizmu. W takim świecie idee Otwartego Oprogramowania będą zyskiwać na wartości.

W ramach ochrony prawnej FSF zdecydowało się na przyjęcie systemu li­cencyjnego. Mimo że właśnie tym narzędziem posługują się producenci opro­gramowania zamkniętego, okazało się ono najlepszym rozwiązaniem. Naj­ważniejszą licencją dla otwartego oprogramowania[5] jest GNU[6] General Pu­blic License. Ochrona, jaką zapewnia ta licencja, nie dotyczy dzieła ja­ko takiego, ale wolności jego rozpowszechniania. Zabezpiecza wolę twórców oprogramowania, którzy chcą aby mogło ono być swobodnie używane przez innych, jednak nie zgadzają się na wykorzystywanie swojej pracy w zamknię­tych produktach. Programy wykorzystujące w całości lub w części kod na licencji GNU GPL muszą być opublikowane na tej samej licencji, czyli nie mogą zostać zamknięte

FSF zachęca programistów do zrzekania się praw autorskich oprogramo­wania na licencji GNU GPL na rzecz fundacji. Jest to podyktowane tym, że FSF dysponuje odpowiednimi środkami prawnymi pozwalającymi na skutecz­ne działanie w sytuacjach stwierdzenia naruszenia postanowień licencyjnych. Programiści nie powinni zajmować się aspektami prawnymi, a jedynie pisaniem dobrego kodu. Zrzeczenie się praw autorskich w żaden sposób nie zmienia informacji na temat tego, kto jest autorem dzieła i nie odbiera ko­rzyści płynących z tego tytułu.[7]

Oprócz licencji GNU GPL istnieją także inne licencje, którymi posługu­je się Otwarte Oprogramowanie. Stanowią one modyfikacje podstawowej licencji lub są po prostu zgodne z jej duchem. Część twórców otwartego opro­gramowania nie zgadza się ze wszystkimi konsekwencjami liberalnej licencji GNU GPL i decyduje się na przyjęcie rozwiązań nieco różniących się w spor­nych miejscach.

Ostatecznym kryterium otwartości oprogramowania jest więc licencja, która powinna być zgodna z duchem GNU GPL. Sama dostępność kodów źródłowych o niczym nie musi świadczyć. Zdarzają się firmy, które dla po­prawy swojego wizerunku przekazują swoim klientom kody źródłowe.[8] Jed­nak są to tylko zabiegi marketingowe i nie ma to nic wspólnego z Otwartym Oprogramowaniem, gdyż takie programy nie są tworzone zgodnie z ideami WO/OSS oraz wraz z przekazaniem źródeł nie jest przekazywane prawo do ich swobodnego używania.


[1]Bez kodu źródłowego.

[2]Skrót od pierwszych liter Free Software Foundation.

[3]Od angielskiego: Free Software. Dalej oznaczanego skrótem WO.

[4]Rozpowszechnianego wraz z kodami źródłowymi. Dalej oznaczanego skrótem OSS.

[5]OSS posługuje się systemem licencyjnym wypracowanym przez FSF lub w dużym stopniu z nim zgodnym.

[6]Skrót pochodzi od słów GNU’s Not Unix, które jasno miały określać, że projekt nie ma nic wspólnego z systemem Unix. Jest to także przekorna gra słów związana z wydarzeniami towarzyszącymi powstaniu FSF (roz. 2.1).

[7]Zyskanie sławy i dobrego imienia jest częstym motywem programistów piszących otwarte oprogramowanie.

[8]Przykładem może być firma Microsoft, która klientom korporacyjnym dostarcza kody źródłowe systemu Windows.

Implementacja Joomla!

5/5 - (1 vote)

Nadleśnictwo Węgierska Górka składa się z dwóch obrębów: Lipowa i Węgierska Górka i wchodzi w skład Regionalnej Dyrekcji Lasów Państwowych w Katowicach. Powierzchnia zasięgu terytorialnego nadleśnictwa wynosi 28 968 ha. Do głównych zadań nadleśnictwa należy prowadzenie spraw związanych z planowaniem, organizacją, koordynacją i nadzorem prac w zakresie: nasiennictwa, szkółkarstwa, hodowli lasu, łowiectwa oraz innych działów zagospodarowania lasu, użytkowania lasu oraz sprzedaży drewna.

Nadleśnictwo prowadzi sprawy związane ze stanem posiadania i ewidencją gruntów, udostępnianiem lasu oraz edukacją leśną społeczeństwa jak również kieruje nadzór nad lasami nie stanowiącymi własności Skarbu Państwa. Realizuje działania w zakresie prowadzenia Leśnego Kompleksu Promocyjnego oraz tworzenia i redagowania informacji na strony Biuletynu Informacji Publicznej.

W ostatnich dziesięcioleciach zaobserwowano stałe powolne pogarszanie się kondycji lasów. Wpływ na to miało rozpadanie się podstawowego gatunku lasotwórczego w tym regionie – świerka. Przyczyniły się do tego:

  • przewaga jednego gatunku, sztucznie wprowadzonego,
  • zakłócenia hydrologiczne spowodowane anomaliami pogodowymi, spadek retencji obszarów leśnych,
  • choroby systemów korzeniowych spowodowane przez opieńkę,
  • plaga kornika,
  • zaniedbania w higienie lasu właścicieli prywatnych,
  • śniegołomy i wiatrołomy.

Dziś jednym z kluczowych zadań jest opóźnienie procesu wymarcia beskidzkiej świerczyny poprzez usuwanie zarażonych drzew i stopniową przebudowę drzewostanu. Informowanie społeczeństwa o przyczynach dotyczących wzmożonej wycinki świerka odgrywa istotną rolę. Dzięki temu zapobiega się błędnemu postrzeganiu Lasów Państwowych jako podmiotu prowadzącego rabunkową gospodarkę leśną. Również ważne jest nakłonienie do współpracy prywatnych właścicieli lasów, w których rękach znajduje się ok. 1/5 beskidzkich lasów.

Dlatego potrzebna jest kampania informacyjna skierowana do prywatnych właścicieli.

Zarządzanie stroną

Po uruchomieniu serwisu poprzez wpisanie adresu internetowego w przeglądarce pojawia się główna strona, na której znajduje się dodatkowe menu pozwalające zalogować się do panelu administracyjnego.

Rysunek 18. Panel administracyjny Joomla!

Joomla! Administrator jest graficznym interfejsem użytkownika (GUI) (rys.18) służącym do zarządzania witryną. W panelu administracyjnym znajdują się wszystkie konieczne narzędzia do dodawania zawartości, a także do zarządzania konfiguracją oraz wszystkimi składnikami Joomla!

Tabela 3. Opis głównych elementów panelu administracyjnego

Dodaj artykuł Umożliwia dodanie nowego artykułu przypisanego do danej sekcji i kategorii
Artykuły Pozwala przeglądać wszystkie artykuły lub tylko w wybranych sekcjach/kategoriach oraz nimi zarządzać
Materiały statyczne Wyświetla materiały statyczne i pozwala nimi zarządzać
Strona startowa Komponent zarządzający stroną naszego serwisu, która wyświetla się jako pierwsza
Sekcje artykułów Zawiera sekcje do których przyporządkowane są kategorie, z możliwością dodawania, usuwania, edytowania
Kategorie artykułów Zawiera kategorie, w których znajdują się artykuły, publikowania, edytowania lub tworzenia nowych kategorii
Biblioteka mediów Zarządzenie mediami- wczytywanie nowych obrazków, plików dźwiękowych czy wideo
Kosz Miejsce, w którym znajdują się usunięte przez nas elementy menu oraz opublikowane artykuły. Aż do momentu definitywnego usunięcia można je z tego miejsca odzyskać
Menedżer menu Menedżer umożliwia tworzenie wielu menu i wyświetlających je modułów oraz zmianę nazw menu. Z poziomu menedżera menu dostępny jest edytor właściwości menu, umożliwiający zdefiniowanie nazwy – typu menu i tytułu wyświetlającego je modułu, a po utworzeniu menu tylko zmianę nazwy menu
Języki Zmiana języka naszej witryny
Użytkownicy W tym miejscu można zarządzać kontami użytkowników: tworzyć, blokować, usuwać, zmieniać uprawnienia, wylogowywać z serwisu
Konfiguracja Znajduję się tu szczegółowa konfiguracja naszego serwisu, jego lokalizacji, globalnych ustawień co do wyglądu treści oraz konfiguracji bazy danych, konta administratora, statystki strony

Dostosowanie Joomla! dla potrzeb klienta

Głównym zadaniem było stworzenie serwisu internetowego i dopasowanie go dla potrzeb nadleśnictwa Węgierska Górka (rys.19). W założeniu serwis powinien spełniać kilka podstawowych wymogów:

  • powinien być jak najprostszy w obsłudze dla użytkowników mających słabe doświadczenie z komputerem,
  • edycj a serwisu ma być dostępna z różnych miej sc,
  • koszt budowy i utrzymania serwisu powinien być j ak najniższy,
  • nie trzeba stosować specjalistycznego oprogramowania komputerowego,
  • powinien spełniać rolę informacyjną,
  • promować nadleśnictwo,
  • ma wspomagać pracę leśników.

Przy pierwszym uruchomieniu naszej strony stworzonej w Joomla! mamy serwis z domyślną szatą graficzną, w którym możemy publikować tekst i umieszczać obrazki. Jednak system ma budowę modułową, dzięki czemu dodawanie nowych możliwości nie stanowi problemu. Poniżej znajduje się lista wykorzystanych w projekcie komponentów, które zostały dobrane podczas moich konsultacji z pracownikami nadleśnictwa.

Blog – artykuły z sekcji

Zadaniem stron WWW jest promowanie oraz dostarczanie informacji. Od około roku leśnicy prowadzą kampanię na rzecz ratowania beskidzkich świerków.

Jednym z problemów jest dotarcie i przekonanie właścicieli lasów prywatnych, by usuwali zaatakowane świerki. Leśnicy rozdają ulotki informacyjne, organizują spotkania robocze, proszą o pomoc księży, którzy nawołują z ambon do ratowania lasów. I choć ten problem jest już w bardzo dużym zakresie opisany na wielu internetowych stronach Lasów Państwowych czy stronach poświęconych ekologii, to każda kolejna witryna poruszająca tą tematykę zwiększa szansę dotarcia do zainteresowanych osób.

Treść możemy publikować w postaci blogów lub tabel. Formy blogu używa się w przypadku małej ilości artykułów, są one wyświetlane w całości jeden po drugim. Tabela to lista odnośników do poszczególnych artykułów, jest przydatna przy dużej ilości artykułów. Publikowanie artykułów jest nad wyraz proste, do dyspozycji możemy wybrać jeden z kilku edytorów, które swoim wyglądem przypominają windowsowego WordPada. Wystarczy stworzyć kategorię i przypisywać do niej kolejne artykuły.

Osobisty kalendarz

Do stworzenia kalendarza wykorzystany został komponent ExtCalendar. Osobisty kalendarz jest dostępny tylko dla właściciela strony i grupy osób z odpowiednimi uprawnieniami. Zakładka w menu pojawia się tylko po jego zalogowaniu. Dzieje się tak dzięki przypisaniu tej pozycji menu dostępu specjalny. Dostęp specjalny (ang. special) to uzyskiwany po zalogowaniu się do witryny dostęp dla zarejestrowanych użytkowników, którym administrator witryny nadał specjalne przywileje (przypisał ich do grupy z uprawnieniami specjalnymi). Dzięki takiemu rozwiązaniu kalendarz może służyć do wymiany informacji między pracownikami nadleśnictwa a leśniczym, np. w łatwy sposób można zmienić datę narady lub sprawdzić, kiedy leśniczy ma urlop (rys.21).

Po kliknięciu na wybraną datę mamy szczegółowy podgląd przypisany do wydarzenia (rys.22).

Rysunek 22. Szczegółowy opis wydarzenia „Obchód Terenu”

Dodaj wydarzenie Miesiąc Wykaz Tydzień Dzień Kategorie Znajdź
■■ Wydarzenie: 'Obchód Terenu’
1 Ogólne Data: Poniedziałek, Sierpień 04, Z008 At 08:00
1 To jest domyślna kategoria Czas trwania: 1 dzień
Obchód terenu Podlas, Drągowy. Kontrola pułapek kornika w oddziale 9 i 17, bez uwag.

Obsługa tego komponentu została maksymalnie uproszczona, ponadto jest on w polskiej wersji językowej.

Oferty handlowe

Przy użyciu komponentu JPortfolio, który jest dedykowany do prezentacji produktów zebranych w kategorie, w prosty sposób można stworzyć ofertę handlową danego nadleśnictwa. Jest to ogromne ułatwienie dla ludzi chcących zapoznać się z cenami drewna i innych produktów za pomocą Internetu.

Wadą komponentu jest brak polskiej wersji językowej.

Drewno

Sprzedaż drewna.

Leśnictwo oferuje szeroki asortyment surowca drzewnego takich gatunków jak: świerk, sosna, modrzew, buk, brzoza i in. Sprzedaż drewna prowadzi się bezpośrednio z lasu (loco las) lub ze Składnicy Spedycyjnej Drewna w Węgierskiej Górce, z której istnieje możliwość wysłania ładunku transportem kolejowym i kołowym. Odnośnie zakupu drewna większych ilości należy kontaktować się z:

  • Zastąpcą Nadleśniczego mgr inż. Wojciechem Motyka ( tel. 660 021 358, w.motyka(®katowice.lasy.pl ),
  • Specjalista, ds. marketingu inż. Marcinem Szewczyk ( tel. 033/867 22 12/14, kom. 660 155 458 m.szewczyktąkatowice.lasy.gov.pl ).

Drewno średniowymiarowe opałowe oraz małowymiarowe można bezpośrednio kupować u leśniczych, do których telefony kontaktowe podane są w tabeli „Struktura organizacyjna”.

Ceny detaliczne surowca drzewnego iglastego i liściastego zamieszczone są w dostępnych zestawieniach.

Po wprowadzeniu produktów przyporządkowanych do odpowiednich kategorii możemy załączyć jeden obrazek i umieścić opis korzystając z wbudowanego edytora (rys.24-25). Edycja poszczególnych produktów jest prosta i szybka, dzięki czemu łatwo możemy zaktualizować np. cennik.

Świerk:

Cennik surowca drzewnego iglastego – sprzedaż detaliczna obowiązujący na okres od 17 stycznia 2008r.

L.p. Symbol Klasa wymiarowa Cena netto[1] loco las po zrywce w zł/lm3
1 WńO 2 320
2 3 370
3 1 255
4 WBO 2 280
5 3 300
6 i 250
7 wco 2 270
8 3 290
9 i 150
10 WD 2 180
11 3 191
12 SIO 150
13 S2a 125
14 S2b 170
15 S3a 150
16 S3b 1 130
17 2 130
18 S4 65
19 M2 40

 

„*Do ceny drewna S4 i M2 dolicza się 7% podatku VAT, do ceny stroiszu iglastego 3 % VAT, a do ceny pozostałych sortymentów 22% podatku VAT”

Przy sprzedaży ze składnicy do ceny drewna dolicza się ryczałt składnicowy.

Rysunek 25. Szczegółowa oferta drewna gatunku świerk

Komponent umożliwia edycję CSS, dzięki czemu można dopasować wygląd generowanych stron do szablonu witryny.

Rysunek 26. Główny panel komponentu Forme

Menedżer formularzy Formularze

przychodzące

Dodaj przykładowe dane Forme u1.0.2
Formularz zwrotny
DONATĘ ] Wersja: Forme v1.0.2
Informacja
Wydawca: |©2007
Darowizna Licencja: gnu.org/copyleft/gpl.html GNUA3PL
Wykonaj kopie formularzy Przywróć z kopii

 

Wadą komponentu Forme jest brak możliwości zmiany wyglądu formularza, np. odstępów między poszczególnymi polami (rys.27). Należy również pamiętać, że przesyłane w ten sposób dane nie są w żaden sposób szyfrowane, a więc istnieje możliwość przejęcia ich przez niepożądane osoby.

Rysunek 27. Wygląd gotowego formularza

► BRUDNICA MNISZKA

Numer protokołu * 5
Sporządzony dnia * 30.05.2008
Oddział, pododdział VM
Typ siedliskowy lasu Św yj
Wiek rzeczywisty 20 jJ
Stopień defoliacji *
Bonitacja/zwarcie 30%             –
Liczba samic zaobserwowanych na drzewie * 11|wyślij

 

Biorąc pod uwagę, że w nadleśnictwie korzysta się z około 60-ciu różnych formularzy i blankietów, zastosowanie powyższego komponentu może znacznie ułatwić pracę biurową. Ze względu na to, iż nie każdy ma dostęp do Internetu, rozwiązanie to może jedynie uzupełniać obecnie używane papierowe dokumenty.

Struktura organizacyjna – książka adresowa

Przy użyciu komponentu Kontakty można w łatwy sposób stworzyć strukturę organizacyjną danej firmy, umieścić w nich odpowiednie dane kontaktowe, co ułatwi osobom zainteresowanym jak i samym pracownikom komunikację.

Po utworzeniu interesujących nas kategorii (rys.28) umieszczamy w nich dane poszczególnych osób tworząc w ten sposób uporządkowaną strukturę organizacyjną nadleśnictwa.

Komponent narzuca nam z góry ustawienia strony pozwalając na tylko nieznaczną modyfikację, mimo to jest funkcjonalny a książka adresowa stworzona przy jego pomocy przejrzysta (rys.29).

Biuletyn Informacji Publicznej

Biuletyn Informacji Publicznej to już niemal standard większości portali internetowych związanych głównie z instytucjami samorządowymi lub publicznymi. Dzięki komponentowi DOCMan możemy w łatwy sposób umieszczać pliki, grupować je w odpowiednie kategorie oraz opisywać, co ułatwi rozeznanie w dokumentach osobom zainteresowanym. Osoba zarządzająca dokumentami ma możliwość podglądu statystyk ściągania poszczególnych plików lub nadawania uprawnień do ściągania plików (rys.31).

Klasyfikacja funkcjonalna zadań Lasów Państwowych O Klasyfikacja funkcjonalna zadań Lasów Państwowych

DOCMan pozwala wczytywać pliki z lokalnego dysku lub „podłączać” pliki znajdujące się na innym serwerze, dzięki czemu możemy zmniejszyć zajmowaną przestrzeń dyskową naszego serwera. Komponent został przetłumaczony na język polski.

Forum dyskusyjne

Forum dyskusyjne jest przeniesioną do struktury stron WWW formą grup dyskusyjnych, która służy do wymiany informacji i poglądów przy użyciu przeglądarki internetowej.

Na stworzonym forum użytkownicy mogą wymieniać poglądy odnośnie ochrony środowiska, zarządzaniem lasu czy prawem leśnym.

Joomlaboard jest komponentem mocno rozbudowanym i z powodzeniem może konkurować z phpBB czy QuickForum – systemami dedykowanymi tylko do tworzenia forów internetowych.

Joomlaboard-Forum

Zadaniem forum jest zachęcić zainteresowane strony do swobodnej wymiany poglądów na różne tematy (rys.34).

Sonda

Ten komponent daje użytkownikom możliwość wypowiedzenia się na dany temat. Dzięki temu możemy zdobyć ważne informacje na interesujący nas temat. Komponent nie ogranicza nas do prowadzenia jednej sondy, umożliwia zarządzanie nawet kilkoma sondami naraz.

W ustawieniach możemy zdefiniować czas pomiędzy głosowaniem dla jednego użytkownika, strony, na których ma pojawiać się sonda oraz listę możliwych, maksymalnie dwunastu odpowiedzi.

Wyniki są gromadzone w bazie danych. Po oddaniu głosu, na ich podstawie w serwisie internetowym są automatycznie publikowane rezultaty (rys.36).

Księga gości

Księga gości pozwala internautom przeglądającym serwis na pozostawienie informacji oraz ocenę strony.

Komponent księgi gości ArtgBook 1.0 b4 został zastosowany w połączeniu z cenzorem nieprzyzwoitych słów BadWord Filter, co skutecznie blokuje wyświetlanie nieprzyzwoitych słów na naszej stronie. O skuteczności tego komponentu możemy przekonać się przy wpisie anonima, gdzie dwa wulgarne słowa zostały zastąpione predefiniowanymi symbolami.

Dodawanie wpisów do księgi gości jest proste, a sposób autoryzacji kodem z obrazka zapobiega automatycznemu tworzeniu wpisów przez roboty sieciowe


[1] Formularze

Kolejna zakładka, do której dostęp mają tylko określeni użytkownicy. Komponent Forme umożliwia tworzenie oraz bezpośrednie wysyłanie formularzy do nadleśnictwa, w których zawarte są informacje z przeprowadzonych prac w lesie (rys.26). Dzięki temu formularze mogą docierać znacznie szybciej, niż tradycyjną drogą, co eliminuje konieczność fizycznego ich przewożenia.

Przygotowanie danych do implementacji

5/5 - (1 vote)

Konwersja danych

Aplikacja finansowo księgowa firmy napisana w Clipperze 5.3 przechowuje dane w postaci plików DBF. Struktura katalogów samej aplikacji zorganizowana jest w postaci katalogu systemu podstawowego oraz podkatalogów poszczególnych magazynów. Na podstawie

analizy przechowywanych w poszczególnych plikach danych określono że wstępnie na potrzeby sklepu internetowego potrzebnych będzie kilka tabel z systemu podstawowego oraz ze wszystkich poszczególnych magazynów. Rysunek 6 przedstawia fizyczną organizację aplikacji na dysku sieciowym widzianą od strony użytkowników sieci Windows a z drugiej strony od wewnątrz serwera. Z poziomu użytkownika widziana jest struktura katalogów począwszy od wnętrza katalogu „sklep” bowiem tak udostępniony zasób Samby jest mapowany jako dysk logiczny.

Położenie całości aplikacji magazynowej na dyskach serwera umożliwiło dostęp do tych danych pod kątem ich konwersji dla sklepu internetowego, bez zbędnego obciążania sieci wewnętrznej transferami a jedynie obróbką samych danych na poziomie serwera. W celu zapewnienia integralności danych konwersja wykonuje się automatycznie w godzinach nocnych, tak aby to nie kolidowało z działalnością firmy a jednocześnie zapewniało aktualność danych. Charakter działania aplikacji magazynowej wymusił takie przystosowanie modułu konwersji do struktury katalogów, aby dodanie kolejnych magazynów automatycznie zapewniało pobieranie danych także z nich.

W celu konwersji z formatu DBF do formatu tekstowego rozpatrywano dwa warianty. Pierwszy opierał się na konwersji skryptem napisanym w języku Perl natomiast drugi zakładał wykorzystanie gotowego i wielokrotnie szybszego programu w języku C którego autorem jest Brad Eacker a kod był opublikowany w 1994r w grupach USENET.

Ostatecznie przeważyła szybkość konwersji nad elastycznością rozwiązania w Perlu. Chcąc jednak zachować możliwość dostosowywania „wyciąganych” danych z tabel DBF, wyjściowe pliki po kompletnej konwersji DBF na TXT obrabiane są już skryptem shellowym napisanym z wykorzystaniem natywnych unixowi narzędzi takich jak awk czy tr.

Poniższy listing prezentuje ten skrypt opatrzony komentarzami wyjaśniającymi wykonywane działania:

Skrypt służy do konwersji danych z formatu DBF (z systemu MGZ) na formaty wykorzystywane w systemie SQL eMarket. Na początku wyświetla informacje o zadaniu oraz ustawia maskę tworzenia plików (umask 027), co zapewnia odpowiednie prawa dostępu do plików. Następnie skrypt definiuje zmienne, które zawierają ścieżki do katalogów i programów wykorzystywanych w konwersji, takie jak KAT_MGZ, KAT_TMP oraz DBFLST.

Skrypt usuwa stare pliki .LST i .IN z poprzednich konwersji, aby uniknąć ich nakładania się. Kolejnym krokiem jest przetwarzanie plików DBF na format LST, co odbywa się przy użyciu programu DBFLST dla różnych plików, takich jak CENNIK.DBF, CENY_DEW.DBF, ODBIORCY.DBF czy DOSTAWCY.DBF. Następnie, w przypadku danych magazynowych, skrypt iteruje po katalogach z magazynami w systemie MGZ, przetwarzając pliki MAGAZYN.DBF na plik .LST w katalogu tymczasowym.

Po konwersji do formatu LST skrypt przetwarza te pliki za pomocą narzędzia awk, które usuwa zbędne spacje, zamienia tekst na wielkie litery i wstawia odpowiednie separatory, tworząc pliki .IN. Po tej operacji pliki LST są usuwane, a następnie skrypt ustawia odpowiednie prawa dostępu do nowych plików .IN.

Skrypt wyświetla zajętość plików .IN w katalogu tymczasowym i uruchamia transfer plików na serwer eMarket za pomocą FTP, korzystając z listy poleceń zapisanej w pliku transfer. Na końcu skrypt informuje o zakończeniu transferu, wyświetlając komunikat „Załadowane”.

Archiwizacja i przesyłanie danych

Skrypty są wywoływane cyklicznie co noc wykonując wstępne przygotowanie danych oraz ich przesłanie przy pomocy ftp na serwer internetowy, gdzie następuje dalsza faza obróbki danych i ich ładowanie do PostgreSQL. Oprócz skasowania starych zbiorów i wkopiowania na ich miejsce nowych wykonywana jest także archiwizacja. Przy pomocy poniższej listy poleceń skryptu „transfer” dane przekazywane są protokołem ftp na serwer internetowy:

Skrypt rozpoczyna połączenie z serwerem FTP o nazwie inet-serwer w trybie binarnym, co zapewnia poprawny transfer plików, w tym tych zawierających dane nie tekstowe. Następnie zmienia katalog roboczy na serwerze FTP na /home/bazy/emarket/tmp, gdzie znajdują się pliki do przesłania. Przed przesłaniem nowych plików skrypt usuwa stare pliki, takie jak CENNIK.IN, CENY_DEW.IN, DOSTAWCY.IN, MAGAZYN.IN oraz ODBIORCY.IN, aby uniknąć konfliktów.

Po usunięciu poprzednich plików skrypt przesyła nowe pliki z lokalnego katalogu /bofh/bazy/emarket/tmp do katalogu /home/bazy/emarket/tmp na serwerze FTP. Komendy put przesyłają odpowiednie pliki, takie jak CENNIK.IN, CENY_DEW.IN, DOSTAWCY.IN, MAGAZYN.IN i ODBIORCY.IN. Następnie skrypt wykonuje komendę ls, która wyświetla zawartość katalogu na serwerze FTP, pozwalając sprawdzić, czy pliki zostały prawidłowo przesłane.

Na końcu skrypt kończy połączenie z serwerem FTP za pomocą komendy bye. Skrypt zapewnia prawidłowy transfer danych oraz dba o to, by pliki były aktualizowane na serwerze.

Wyniki wykonania całej operacji są „wyświetlane” na standardowe wyjście (stdout) a następnie wysyłane pocztą email do administratora. Pozwala to na kontrolę poprawności działania całej operacji, gdyż odbywa się ona bezobsługowo. Cykliczność wykonania tych działań realizowana jest dwoma wpisami w pliku konfiguracyjnym crontab. Zapewniają one oprócz konwersji i przekazania danych na serwer internetowy także archiwizację całości systemów finansowo księgowych firmy i umieszczenie ich w katalogu udostępnionym obsłudze w celu przegrania na wymienne nośniki:

Skrypt do archiwizacji jest uruchamiany codziennie o 3:00 w nocy, w dni robocze (od poniedziałku do soboty), przez cron. W jego pierwszej części, po wstawieniu tematu wiadomości „Status archiwizacji”, skrypt wyświetla informacje o rozpoczynającej się archiwizacji.

Następnie w skrypcie ustawiana jest zmienna d1adaty, która pobiera aktualną datę w formacie 20yyMMdd, co pozwala na nadanie odpowiedniej nazwy archiwum. Skrypt przygotowuje dwa zestawy danych do archiwizacji: dane księgowości (KSH) oraz dane magazynowe (MGZ). Po przejściu do odpowiednich katalogów (/work/ksieg dla księgowości i /work/sklep dla magazynów), skrypt wykonuje komendy tar do spakowania danych w formie archiwum .tgz. Wynikiem są pliki ksz<d1adaty>.tgz i mzz<d1adaty>.tgz, które są zapisane w katalogu /home/archiwa.

Po zakończeniu archiwizacji, skrypt wyświetla zajętość plików w katalogu /home/archiwa za pomocą du -k, a także sprawdza dostępność miejsca na dyskach poleceniem df -ki. Na końcu skrypt wypisuje komunikat „KONIEC”, informując o zakończeniu procesu.

Warto zauważyć, że w konfiguracji cron używamy harmonogramu 0 3 * * 1,2,3,4,5,6 dla archiwizacji, co oznacza uruchamianie tego zadania codziennie o 3:00 rano, w dni robocze (od poniedziałku do soboty). Kolejny cron o 20:00 wykonuje konwersję danych, używając skryptu /bofh/bazy/emarket/konwersja. W obu przypadkach wyniki błędów są przesyłane na adres operator za pomocą sendmail.

Struktura konwertowanych plików

W celu wykonania operacji konwersji danych na potrzeby sklepu internetowego poddano analizie zawartość poszczególnych plików DBF systemów magazynowych. Wyodrębniono przydatne tabele i na ich podstawie określone pola niezbędne dla działania sklepu. Poniższy fragment każdego z plików przekazywanych do zaimportowania do bazy SQL obrazuje jakie dane są wykorzystane z systemów finansowo księgowych firmy:

Plik CENNIK.IN zawiera informacje o towarach. Każdy rekord składa się z czterech pól: identyfikatora towaru (ind), nazwy towaru w kodowaniu cp852, oznaczenia producenta oraz stanu magazynowego i stawki VAT. Na przykład, w pierwszym wierszu 167636 to identyfikator towaru, a nazwa towaru to „UCHWYT ZEZ+OBEJMA FI 40”, oznaczenie producenta to „UCHWYT ZEZ+OBEJMA”, stan wynosi 16, a VAT to 22.

Plik CENY_DEW.IN zawiera ceny netto towarów. Każdy rekord ma identyfikator towaru, cenę netto i symbol waluty. Na przykład, dla towaru o identyfikatorze 330055 cena netto wynosi 1146.72 w walucie ZLP.

Pliki DOSTAWCY.IN i ODBIORCY.IN zawierają dane o dostawcach i odbiorcach. Każdy rekord składa się z identyfikatora (ind), krótkiej nazwy (nazwa krotka), pełnej nazwy (nazwa długa), adresów (od adres1 do adres6), oraz numeru NIP. Na przykład, dostawca o identyfikatorze 1 to firma „WIZJA TV”, której adres to „UL. PAWINSKIEGO 5A/BLOK D, 02-106 WARSZAWA”.

Plik MAGAZYN.IN zawiera dane o stanach magazynowych. Każdy rekord składa się z identyfikatora towaru (ind), daty (w formacie YYYYMMDD), stanu dyspozycyjnego i stanu księgowego. Na przykład, dla towaru o identyfikatorze 240029 stan dyspozycyjny i stan księgowy wynoszą oba 2.

Te pliki stanowią zestaw danych, które są używane w systemie do zarządzania towarami, cenami, dostawcami, odbiorcami oraz stanami magazynowymi.

Słownik Collinsa

5/5 - (1 vote)

FIRMA: Young Digital Poland S.A.

PROBLEM: niewykorzystanie możliwości oferowanych przez otwarty mo­del dostawcy treści, pojawienie się niezależnych interfejsów użytkownika przykładem efektów zewnętrznych w ramach ułomności wolnego rynku

Firma YDP S.A. jest światowym liderem w produkcji interaktywnych pro­gramów do nauki języków obcych. Zdobyła wiele nagród w kraju i za granicą. Jej produkty cieszą się dużą popularnością. Jednak firma nie wykorzystuje wszystkich możliwości, jakie stwarzają nowe metody w inżynierii oprogra­mowania. Przedmiotem niniejszego studium jest jej najbardziej popularny produkt – Słownik Collinsa. Firma występuje tu jako klasyczny dostawca treści, którą jest baza słownika. Interfejs użytkownika jest realizowany we­dług zamkniętych metod tylko dla jednej platformy systemowej – Microsoft Windows, natomiast sposób komunikacji z plikami danych, którego otwarcie umożliwiłoby niezależnym programistom napisanie własnych przeglądarek, nie został upubliczniony. Możliwe, że poprzez wymóg używania jedynie ory­ginalnego interfejsu, zamiarem firmy było narzucenie w ten sposób użytkow­nikowi pewnych ograniczeń co do sposobu wykorzystania bazy słownika. Jed­nak powstanie, przy wykorzystaniu inżynierii wstecznej, otwartych nakładek na pliki danych,[1] ukazuje krótkowzroczność takich planów.

Aczkolwiek, mimo iż firma nie zrealizowała swoich założeń, to odniosła pewne korzyści związa­ne z przeniesieniem słownika na inną platformę systemową bez konieczności angażowania się w ten proces i nie ponosząc przy tym żadnych kosztów. Jest to przykład efektów zewnętrznych, będących jedną z ułomności mechanizmu wolnego rynku. Jednak zamierzone wykorzystanie tu otwartego modelu biznesowego dostawcy treści, polegające na tworzeniu interfejsu użytkownika według modelu bazarowego lub przynajmniej poprzez udostępnienie sposobu komunikacji z bazą słownika i objęcie patronatu me­dialnego nad procesem tworzenia innych nakładek, przyniosłoby firmie więcej korzyści. Przede wszystkim poprawiłoby to wizerunek firmy i przysporzyło jej więcej zadowolonych i lojalnych klientów, którzy chętniej by kupowali in­ne jej programy i usługi. Koszty produkcji i utrzymania interfejsu były by mniejsze, zaś użytkownicy otrzymaliby produkt odpowiadający dokładnie ich wymaganiom. Wszystko to przełożyłoby się na wzrost sprzedaży i zwiększe­nie zysków firmy.

Słownik Collinsa to popularny słownik językowy, który oferuje bogaty zbiór definicji, tłumaczeń, synonimów i przykładów użycia słów w kontekście. Jest dostępny w wersji papierowej oraz w formie elektronicznej, zarówno jako aplikacja, jak i strona internetowa. Słownik ten jest ceniony za szczegółowość i aktualność, a także za pomoc w nauce języka angielskiego.

Collins oferuje różne edycje, w tym słowniki przeznaczone dla uczniów, tłumaczące trudniejsze słowa i wyrażenia, a także wersje bardziej zaawansowane, które przybliżają subtelne różnice w znaczeniach słów. Słownik Collinsa charakteryzuje się również tym, że uwzględnia zmieniający się język, co oznacza, że w jego zasobach znajdują się nowoczesne słowa, które dopiero weszły do powszechnego użytku.

Collins jest również znany z Collins English Dictionary, który zawiera dokładne definicje i jest jednym z najczęściej używanych słowników w Wielkiej Brytanii. Dzięki systemowi przeszukiwania i zaawansowanej technologii, użytkownicy mogą łatwo znaleźć interesujące ich hasła i sprawdzić różne warianty językowe, a także poznać pochodzenie słów.


[1] Mowa tu o programach ydpdict oraz kydpdict przeznaczonych dla systemów Uniksowych.