Rozdział monografii: `Bazy Danych: Struktury, Algorytmy, Metody

Transkrypt

Rozdział monografii: `Bazy Danych: Struktury, Algorytmy, Metody
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.
<?xml version="1.0"?>
<!—deklaracja OFX -->
<?OFX OFXHEADER="200" VERSION="210" SECURITY="NONE" OLDFILEUID="NONE"
NEWFILEUID="NONE"?>
<!—zapytanie OFX-->
<OFX>
... zapytanie OFX ...
</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