Zastosowanie standardu XML do przechowywania danych finansowych

Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rozdział 18 w...
3 downloads 0 Views 192KB Size
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006

Rozdział 18

w

Zastosowanie standardu XML do przechowywania danych finansowych

w 1 Wstęp

da .b

w

Streszczenie. Od początku istnienia instytucji finansowych ich klienci chcieli posiadać wiedzę o wykonanych operacjach. Na początku otrzymywali ją w postaci przekazu ustnego, potem pisanego, drukowanego. W ciągu ostatnich kilkunastu lat bardzo dynamicznie rozwija się prezentacja historii różnych rachunków w postaci elektronicznej. Szczególnie dużą popularnością cieszą się różne postaci XML-a. W poniższym artykule opisane zostały najistotniejsze cechy takiego sposobu przekazywania danych finansowych.

pl s.

W obecnych czasach zdecydowana większość firm i osób prywatnych kontroluje swoje przepływy pieniężne. Dla pojedynczej osoby albo nawet dla małej firmy na ogół nie sprawia to dużego problemu. Przejrzenie kilkunastu, czy nawet kilkudziesięciu wpłat lub wypłat na zestawieniu miesięcznym z banku nie zajmuje dużo czasu. Istnieje jednak duża grupa użytkowników instytucji finansowych, którzy bardzo aktywnie korzystają z usług finansowych generując kilkaset, kilka tysięcy operacji miesięcznie. W takiej sytuacji najczęściej obsługa takiego przedsięwzięcia jest wspomagana przez program komputerowy. Programy komputerowe muszą jednak działać na pewnych danych, które musimy im dostarczyć. Dane możemy dostarczyć na kilka sposobów: 1) wprowadzić wszystkie potrzebne dane ręcznie, 2) zapewnić bezpośrednie połączenie między instytucją finansową i naszym programem, 3) zaimportować dane ze standardowo sformatowanego pliku. Jak można sobie łatwo wyobrazić najgorszym rozwiązaniem jest ręczne wprowadzanie informacji finansowych. Poza tym, że operacja taka jest bardzo czasochłonna to dodatkowo nietrudno jest w trakcie jej wykonywania popełnić błąd. Bezpośrednie połączenie jest o wiele bardziej zaawansowane technologicznie jednak najczęściej usługa taka jest oferowana jedynie ogromnym przedsiębiorstwom. Poza ewiMarcin Lizis: Uniwersytet Łódzki, Instytut Studiów Informatycznych, ul. Konstytucji 3 Maja 65/67, 97-200 Tomaszów Mazowiecki, Polska email: [email protected]

Sebastian Wojczyk: Uniwersytet Łódzki, Wydział Matematyki, Katedra Analizy Matematycznej i Teorii Sterowania, ul. Banacha 22, 90-238 Łódź, Polska email: [email protected]

Arkadiusz Popa: Uniwersytet Łódzki, Wydział Matematyki, ul. Banacha 22, 90-238 Łódź email: [email protected]

(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006

Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006

M. Lizis, S. Wojczyk, A. Popa

w

dentnymi korzyściami płynącymi z realizacji takiej koncepcji należy zwrócić uwagę na problemy związane z samą realizacją połączenia, które najczęściej odbywa się na zasadzie dedykowanego połączenia modemowego. Trzecia możliwość jest najprostsza w realizacji i jednocześnie najskuteczniejsza zarówno z punktu widzenia instytucji finansowej jak i jej klienta. Już obecnie większość tego typu instytucji oferuje dostęp do swoich usług przez przeglądarkę WWW gdzie każdy z klientów ma dostęp do swoich danych finansowych a w szczególności do pełnej historii rachunków. W takiej sytuacji jedyną czynnością, która musi być wykonana jest sformatowanie danych w jakiś standardowy sposób i wysłanie ich do klienta. W dalszej części rozdziału omówione są podstawowe zalety i wady różnych standardów formatowania danych finansowych.

w

2 Formaty tekstowe

da .b

w

Najprostszym sposobem formatowania analogicznych danych jest umieszczenie ich w pliku tekstowym. W takiej sytuacji najczęściej dane powiązane ze sobą, np. dane opisujące jedną transakcję umieszczone są w jednej linii, natomiast poszczególne pola mogą być oddzielone na przykład tabulatorem. Innym, tekstowym formatem jest csv. W takiej sytuacji dane są umieszczone również w pliku tekstowym, transakcje najczęściej są umieszczone w osobnych liniach, różnice pojawiają się jedynie podczas określania znaków rozdzielających pola. Jako znaki rozdzielające najczęściej stosowane są przecinki, bądź średniki. W niektórych instytucjach stosowane są mechanizmy do kontrolowania zawartości pliku. Polegają one na umieszczeniu informacji kontrolnych na początku i końcu pliku zawierających dane, np. o koncie, dla którego zostało wygenerowane zestawienie, ilości zaewidencjonowanych operacji, bilansie wszystkich operacji itp. Dane zapisane w taki sposób mogą być w łatwy sposób wczytane do dedykowanych programów korporacyjnych jak również do takich programów jak Microsoft Word, czy OpenOffice Calc. Niewątpliwą zaletą formatów tekstowych jest prostota korzystania z nich. Największym problemem mogą się na przykład okazać różnice w interpretacji końca linii w różnych systemach operacyjnych.

pl s.

3 Wykorzystanie XML-a

W związku ze stale rosnącą ilością transakcji finansowych odbywających się drogą elektroniczną pojawiło się zapotrzebowanie na nowoczesne narzędzia umożliwiające poprawną obsługę dużej ilości danych. W takiej sytuacji dostęp do elektronicznej wersji historii rachunku i możliwość wysyłania definicji przelewów to zdecydowanie za mało. Duże znaczenie ma już tutaj agregacja kont bankowych, obsługa wszelkich płatności, inwestycji finansowych oraz podatków. Poza tym ogromne znaczenie ma tutaj bezpieczeństwo przesyłanych danych. Bardzo istotne jest zapewnienie spójności oraz możliwość stwierdzenia czy przesłane dane są pełne, pochodzą od podmiotu posiadającego uprawnienia do przesłania określonego komunikatu, oraz czy informacje zawarte w komunikacie nie zostały zmodyfikowane przez nieuprawnione osoby. Zaimplementowanie powyższych założeń przy wykorzystaniu tekstowych standardów zapisu mogłoby sprawić wiele problemów. W związku z tym powstała koncepcja wykorzystania języka XML. Okazał się on idealnym narzędziem do tego typu zadań. Głównymi

178

(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006

Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006

Zastosowanie standardu XML do przechowywania danych finansowych

w

cechami, które przemawiają za jego wyborem do implementacji zbiorów z danymi finansowymi są: 1) przesyłanie danych XML jest równie proste jak przesyłanie dokumentów HTML, 2) reguły tworzenia dokumentów XML są jasne i określone jednoznacznie, 3) tworzenie oprogramowania przetwarzającego dokumenty XML nie jest skomplikowane implementacyjnie; Wykorzystując powyższe założenia powstało kilka standardów zapisu danych finansowych przy użyciu XML-a. Poniżej umieszczony został dokładniejszy opis kilku najpopularniejszych formatów. 3.1 Open Financial eXchange (OFX)

w

da .b

w

W 1997 roku firmy CheckFree Corp., Intuit Inc. i Microsoft Corporation zakończyły pracę nad pierwszą wersją standardu OFX. Już sama nazwa wskazuje, że od samego początku jest to standard otwarty, dzięki czemu dowolna organizacja finansowa, jak i dowolny producent oprogramowania może z niego korzystać bez wnoszenia jakichkolwiek opłat. Dzięki powyższemu i przy dużym wsparciu potentata w dziedzinie oprogramowania, OFX stał się bardzo popularnym standardem, wykorzystywanym przez wiele instytucji finansowych, oraz ich klientów. Standard OFX służy do wymiany informacji między instytucjami i ich klientami. Wszelkie przesyłane dane są sformatowane zgodnie z zasadami tworzenia dokumentów XML. Konkretne porcje danych mogą być przesyłane między serwerem a klientem na wiele sposobów. Dwie najpopularniejsze metody to wykorzystanie protokołu TCP/IP lub protokołu HTTP. Pierwsza metoda stosowana jest w sytuacji, gdy korzystamy z oprogramowania potrafiącego połączyć się z określoną instytucją finansową w celu synchronizacji danych. Druga metoda wymaga większej ingerencji człowieka w sam proces przepływu danych. Jest on zmuszony do ręcznego zalogowania się do właściwego serwisu WWW i dopiero wtedy może pobrać interesujący go plik z danymi, ewentualnie wgrać odpowiedni plik do systemu. Dla zapewnienia większego bezpieczeństwa przesyłanych danych możliwe jest korzystanie z protokołu SSL. Korzystając z wyżej wymienionych sposobów transmisji danych musimy mieć świadomość, że wszystkie informacje przesyłane są zgodnie ze schematem zapytanie-odpowiedź. Dodatkowym założeniem jest to, że w jednym zapytaniu do serwera możemy umieścić wiele poleceń. Taka konstrukcja znacznie ułatwia pracę, jeżeli posługujemy się plikami wsadowymi, ale również podczas przesyłania zbiorczych zapytań za pośrednictwem protokołu TCP/IP. Ogólna postać dokumentu OFX wygląda następująco:

pl s.

... zapytanie OFX ...

Przy przesyłaniu tak istotnych danych, jakimi są informacje finansowe duże znaczenie ma zapewnienie odpowiedniego bezpieczeństwa transmisji. Określone są tu dwa poziomy zabezpieczeń: 1) poziom kanału transmisji – zarówno klient jak i serwer korzystają z protokołu SSL, natomiast w samym dokumencie OFX nie ma żadnych dodatkowych zabezpieczeń,

179

(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006

Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006

M. Lizis, S. Wojczyk, A. Popa

w

2) poziom aplikacji – na tym poziomie poza wyżej wymienionym sposobem zabezpieczenia stosowane są jeszcze dodatkowe mechanizmy polegające, na przykład na dodatkowym szyfrowaniu istotnych danych. Twórcy OFX główny nacisk położyli na: 1) zapewnienie prywatności danych - jedynie uprawniony użytkownik jest w stanie odczytać przesłaną informację; realizowane jest to przy pomocy algorytmów szyfrujących, takich jak: a) X.509 – standard wykorzystujący asymetryczny algorytm kryptograficzny, b) RSA – algorytm klucza publicznego. 2) umożliwienie identyfikacji organizacji przesyłającej informację - klient identyfikowany jest na podstawie jednoznacznego loginu i hasła, natomiast serwer na podstawie odpowiedniego certyfikatu, 3) zapewnienie integralności przesyłanych danych – każdy dokument OFX zawiera sumę kontrolną, dzięki czemu łatwo można stwierdzić czy informacja jest uszkodzona czy nie. Standard OFX został stworzony do obsługi różnego rodzaju operacji finansowych. Szczególnie przydatne wydaje się zastosowanie OFX do transferu danych między klientem a bankiem. Oznacza to możliwość pełnego zarządzania swoimi środkami finansowymi zgromadzonymi na wielu kontach w różnych bankach za pośrednictwem specjalizowanej aplikacji działającej lokalnie u klienta.

da .b

w

w

3.2 Interactive Financial eXchange (IFX)

pl s.

Kolejnym protokołem służącym do przesyłania danych finansowych jest IFX. Zadaniem wyżej omawianego protokołu OFX jest zapewnienie odpowiedniego mechanizmu do synchronizacji danych finansowych między instytucją finansową a klientem indywidualnym lub niewielką firmą. Dla dużych klientów biznesowych stosowane były inne rozwiązania. W związku z tym stworzono IFX, który w dużej mierze wzoruje się na OFX. Głównymi założeniami podczas tworzenia tego standardu były: 1) zapewnienie jednolitego, standardowego mechanizmu obsługi klientów indywidual.nych i korporacyjnych, 2) możliwość przesyłania dowolnych danych finansowych, 3) zapewnienie łatwej rozbudowy standardu, 4) obsługa operacji w dowolnym języku i dowolnej walucie, 5) niezależność od platformy sprzętowej i programowej, 6) zapewnienie skutecznych rozwiązań zabezpieczających na poziomie aplikacji, 7) możliwość korzystania z protokołu w trybie wsadowym i interaktywnym. Jak widać powyżej założenia zarówno dla standardu OFX jak i IFX są analogiczne. W obu tych przypadkach jako format zapisu danych przyjęto XML. Podczas budowania standardu IFX jego twórcy mogli już wykorzystać doświadczenia związane z OFX oraz zapotrzebowanie rynku na nowe usługi. Dzięki temu, już na samym początku, pojawiły się możliwości wykorzystania standardu, na przykład w automatycznych serwisach telefonicznych, w bankowości korporacyjnej czy w firmach ubezpieczeniowych.

4 Przykład użycia W poprzednich podrozdziałach opisane zostały główne założenia dotyczące przesyłania danych finansowych z zastosowaniem standardu XML. Najbardziej obiecująco wyglądają możliwości zastosowania standardów IFX lub OFX. Standard IFX jest o wiele bardziej roz180

(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006

Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006

Zastosowanie standardu XML do przechowywania danych finansowych

w

budowany i w związku z tym niesie ze sobą szansę bardziej kompleksowej obsługi dużych przedsięwzięć. Pomimo to nadal jest on stosowany rzadziej niż OFX. Opisywane standardy najczęściej wykorzystywane są do pobierania danych o historii rachunku z instytucji finansowej i następnie przetwarzanie tak otrzymanych informacji przez specjalistyczne oprogramowanie. Oprócz oprogramowania firmowego, które bardzo często tworzone jest na konkretne zamówienie istnieje również dosyć duża grupa programów dla użytkowników indywidualnych pragnących mieć kontrolę nad swoimi finansami. Najpopularniejsze aplikacje do zarządzania finansami osobistymi (Skarbnik 4, MS Money, Moje Pieniądze, GnuCash, ...) posiadają możliwość wczytywania informacji w postaci pliku OFX. Istotnym problemem, na który należy zwrócić w tym miejscu uwagę jest niewielka ilość banków dostarczających swoim klientom historię rachunku w postaci pliku. Większość instytucji posiadających takie mechanizmy stosuje swój standard formatowania danych. Natomiast stosowanie takich standardów jak OFX jest ekstremalnie rzadkie. Idealnym rozwiązaniem byłoby uzyskanie danych finansowych w formacie OFX niezależnie od banku, w którym posiadamy konto. W związku z powyższym powstała idea stworzenia mechanizmu tłumaczącego dane pochodzące z dowolnego banku na format OFX. Musimy tutaj wziąć pod uwagę indywidualne rozwiązania poszczególnych instytucji. Oznacza to, że tak na prawdę konieczne jest stworzenie osobnych translatorów dla różnych banków. Aplikacja tłumacząca tworzona była w kilkuosobowej grupie. W związku z tym należało ją podzielić na odrębne moduły ze zdefiniowanym mechanizmem zarządzającym, które to części mogły być implementowane przez różne osoby. Przetwarzanie danych odbywa się w następujących krokach: 1) wczytane dane są przetwarzane prez moduł wybrany przez użytkownika aplikacji (wybrany moduł jest jednoznacznie związany z bankiem, z którego pobraliśmy dane źródłowe), 2) pobrane dane składowane są w module zarządzającym aplikacją w wielowymiarowej tabeli, która swoją strukturą przypomina format OFX, 3) użytkownik ma możliwość wygenerowania pliku wyjściowego w formacie przez niego wybranym.

da .b

w

w

wejście

Bank 2

OFX

pl s.

Bank 1

wyjście

TRANSLATOR

TXT

Rys. 1. Schemat aplikacji tłumaczącej z dwoma modułami wejściowymi i dwoma modułami wyjściowymi

Jak widać na powyższym rysunku aplikacja w żaden sposób nie jest ograniczona pod względem ilości obsługiwanych banków jak również pod względem ilości formatów wyjściowych. Aplikację można w bardzo łatwy sposób rozszerzyć dodając do niej odpowiedni moduł obsługujący wejście (translator dla kolejnego banku) lub wyjście. Należy tu zauważyć, że informacje wejściowe w głównej mierze zależą od konkretnego banku. Oznacza to możliwość przetwarzania, np. pliku tekstowego. Najbardziej wrażliwymi translatorami wejściowymi są te przetwarzające strony html banków, które nie dostarczają innych mecha181

(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006

Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006

M. Lizis, S. Wojczyk, A. Popa

w

nizmów prezentujących historię. Moduły te mogą działać niewłaściwie lub nawet zupełnie przestać działać przy nawet niewielkiej zmianie wyglądu serwisu internetowego. Niestety dla tych instytucji nie ma możliwości stworzenia innego mechanizmu. Jak wspomniano wyżej, w części zarządzającej całą aplikacją gromadzone są wszystkie dane finansowe. Istnieje możliwość dołożenia kolejnej porcji danych, na przykład podczas przetwarzania historii na podstawie kilku stron html z jednego banku. Poza tym, użytkownik aplikacji ma możliwość wygenerowania pliku wynikowego w różnych formatach. W wersji testowej aplikacji stworzono dwa moduły wejściowe: 1) dla jednego z głównych banków detalicznych dostarczającego historię w postaci pliku tekstowego (kolejne przelewy w kolejnych liniach; dane w jednej linii rozdzielone tabulatorami), 2) dla największego banku internetowego gdzie należało stworzyć mechanizm tłumaczący stronę html i dwa wyjściowe (OFX, txt).

w

w

5 Zakończenie

da .b

Z punktu widzenia aktywnego użytkownika serwisów biznesowych mechanizmy, które były pobieżnie omówione powyżej są bardzo istotnym dodatkiem do standardowego sposobu prezentacji danych. Instytucje finansowe zapewniając standardowe mechanizmy starają się zaspokoić potrzeby jak najszerszej grupy odbiorców. Dla części klientów jest to jednak zdecydowanie za mało. Dostarczenie danych źródłowych klientowi jest tutaj najlepszym rozwiązaniem zarówno dla instytucji jak i dla jej klienta. Klient posiadający dane źródłowe może skorzystać z wielu istniejących aplikacji jak również może sobie sam taką aplikację stworzyć. Istnieją tu, więc nieograniczone możliwości tworzenia wszelkiego rodzaju zestawień, przeszukiwania danych po różnych kluczach, wybierania interesujących nas wpisów. Informacją, która jest najczęściej wykorzystywana w kontekście standardów danych finansowych jest prezentacja historii rachunku. Sprawdzając ofertę banków działających na rynku polskim niestety trzeba stwierdzić, że jedynie kilka z nich daje możliwość ściągnięcia plików tekstowych z historią rachunku. Zarówno w ofercie banków, jak i na stronach standardów OFX, IFX nie było informacji o jakimkolwiek banku z naszego kraju wykorzystującym standardy XML-owe. Jedynie dla wąskiej grupki największych klientów dostarczane są nieco bardziej zaawansowane mechanizmy zapewniające przesyłanie danych z i do banku. Zdecydowanie lepiej wygląda sytuacja w Stanach Zjednoczonych i Europie Zachodniej. Działa tam kilkadziesiąt banków dostarczających mechanizmy wykorzystujące OFX lub IFX. Stworzono również oprogramowanie komercyjne i Open Source wykorzystujące powyższe standardy.

1. 2. 3. 4. 5. 6.

pl s.

Literatura

Harold R.: XML in a Nutshell, 3rd edition, O'Reilly, 2004. http://www.ofx.net/ http://www.ifxforum.org http://www.xml.com Intuit Inc., Microsoft Corp., CheckFree Corp.: Open Financial Exchange, Specification 2.1 IFX Forum inc.: Interactive Financial Exchange, version 1.7, Business Message Specification

182

(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006

Suggest Documents