Po ponad roku postanowiłem powrócić do zarzuconego projektu wprowadzającego w technologie SOA. Prace zacząłem od przeglądu i uruchomienia symulatora systemów bankowych - BankSourceSystem.
Pokazywanie postów oznaczonych etykietą JEE. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą JEE. Pokaż wszystkie posty
niedziela, 1 stycznia 2012
poniedziałek, 22 lutego 2010
SOA w akcji - integracja systemów bankowych (c.d. 2)
W poprzednich "odcinkach" opisałem na czym polega i jaki ma cel nowy projekt, którego realizacji się podjąłem oraz zaprezentował efekt końcowy pierwszego etapu - aplikację BankSourceSystem. Dzisiaj chciałby powrócić do aplikacji i opisać jakie interfejsy symulowanych systemów wystawia ona za pomocą usług WebService.
Na poniższym rysunku przedstawiłem wszystkie interfejsy, które niezbędne są do realizacji postawionego celu biznesowego - automatyzacji procesu zakładania produktów bankowych.
Serwis udostępniany przez system MigDZ służy do sprawdzenia czy podany numer dokumentu (paszport lub dowód osobisty) nie został zastrzeżony. Usługa verifyDocument zwraca true jeżeli dokument znajdzie się w bazie dokumentów zastrzeżonych.
System Sanctions udostępnia usługę sprawdzając czy osoba o podanym imieniu i nazwisku nie znajduje się na liście osób objętych sankcjami. Usługa verifyEntity zwraca wartość true jeżeli imię i nazwisko zostaną dopasowane do jednego z rekordów bazy danych.
System Customers przechowujący informacje o klientach udostępnia 3 usługi pozwalające: zapisać nowego klienta w systemie (createCustomer); wyszukać klientów na podstawie peselu, dowodu osobistego lub numeru paszportu(findCustomers); oraz pobrać informacje o pojedynczy kliencie (getCustomer).
Ostatni system, Products, umożliwia założenie konta (createAccount) oraz karty (createCard) jak również pobranie informacji o konkretnych produktach (getAccount i getCard).
Kolejny etap obejmuje przygotowanie aplikacji wnioskowej, która posłuży zebraniu informacji od wnioskodawcy o produktach, które on zamawia. Opis programu przedstawię w jednym z kolejnych wpisów.
Etykiety:
banki,
BankSourceSystem,
JEE,
SOA,
SOAwA,
WebService
niedziela, 21 lutego 2010
SOA w akcji - integracja systemów bankowych c.d.
Udało się zakończyć pierwszy etap projektu o którym wspominałem w jednym z poprzednich wpisów - przygotować aplikację, która symuluje zachowanie bankowych systemów źródłowych - BankSourceSystem.
Z technologicznego punktu widzenia aplikacja została wykonana z wykorzystaniem: JSF 2.0 oraz EJB 3.1. Zarówno rozwój jak i testy zostały przeprowadzone na serwerze aplikacji - Glassfish v3. Kody źródłowe dostępne są na SVN'owym repozytorium Google'a.
Tak jak wspomniałem poprzednio głównym zadaniem tego programu będzie symulowanie wielu systemów, z których może składać się system informatyczny banku. Symulacja ta ma na celu zademonstrowanie w jaki sposób może przebiegać integracja tych systemów w prostym procesie zamawiania produktów bankowych.
Symulacja jakich systemów wchodzi w grę?
- MigDZ - system, który umożliwia dostęp do informacjach o zastrzeżonych dokumentach: paszportach oraz dowodach osobistych.
- Sanctioned Entities - system przechowujący informacje o osobach znajdujących się na listach sankcyjnych np.: terrorystach, osobach zaangażowanych politycznie itp.
- Customers - prosty system przechowujący podstawowe informacje o klientach banku
- Products - system przechowujący informacje o produktach, które posiadają kliencie banku.
Każdy z systemów składa się z dwóch elementów: listy prezentującej zgromadzone w systemie dane oraz formularza umożliwiającego wprowadzanie nowych danych lub modyfikacje istniejących.
MigDZ System
Lista danych:
Edycja danych:
Santioned Entities System
Lista danych:
Edycja danych:
Customers System
Lista danych:
Edycja danych:
Products System - Rachunki
Lista danych:
Edycja danych:
Products System - Karty
Lista danych:
Edycja danych:
Jednak nie to stanowi sedno tej aplikacji. Najważniejszą rzeczą są funkcjonalności udostępnione za pomocą usług WebService. Każdy system udostępnia jedną lub kilka funkcji, których wykorzystanie potrzebne jest do realizacji procesu biznesowego zamawiania produktów bankowych. Opis tych funkcji zamieszczę w następnym wpisie.
sobota, 13 lutego 2010
SOA w akcji - integracji systemów bankowych
Powoli moje zainteresowania technologiami Javowymi zaczynają brać górę na blogu. Tym razem chciałbym zaproponować Wam projekt, którego celem będzie zapoznanie się z praktycznym wykorzystaniem SOA oraz technologiami z nim powiązanymi. Całość podzielona będzie na kilka etapów, a końcowym efektem będzie zintegrowana aplikacja do składania wniosków o produkty bankowe.
Integracja jakich systemów może wchodzić w grę w przypadku prostego wnioskowania o konto osobiste z kartą debetową? Po pierwsze należy sprawdzić czy wnioskodawca nie posługuje się zastrzeżonym dokumentem w systemie MigDZ. Po drugie należy sprawdzić czy wniosku nie składa osoba znajdująca się na listach terrorystycznych czy listach osób objętych sankcjami. W kolejnym etapie weryfikacji sprawdzamy czy wnioskodawca nie jest już klientem banku w systemie przechowującym informacje o klientach. Na koniec pozostaje założenie konta i karty w systemie przechowującym informacje o produktach klientów.
Oczywiście powyższy opis jest sporym uproszczeniem. Każdy bank ma zazwyczaj system dostępu elektronicznego, który może oferować jako dodatkowy produkt. Może również posiadać system maklerski, gdzie klienci składają zlecenia kupna i sprzedaży akcji lub jednostek funduszy inwestycyjnych. Nie wspominając już o systemach ubezpieczeniowych za pomocą których można oferować produkty ubezpieczeniowe.
Na potrzeby tego projektu przygotowana zostanie aplikacja symulująca kilku systemów źródłowych - BankSourceSystem. Symulować będzie ona funkcjonalności: sprawdzania klienta w MigDZ, sprawdzania czy nie znajduje się on na liście osób objętych sankcjami (terroryści na przykład), sprawdzania i zapisywania wnioskodawcy w systemie zarządzania klientami, zapisywać informacje o wnioskowanych produktach.
Kolejnym etapem będzie przygotowanie aplikacji, której celem jest zebranie informacji od klienta o produktach o które wnioskuje. Prostota tego typu aplikacji polega na tym, że prezentowanych jest kilka formularzy zbierających dane, które po zatwierdzeniu wniosku przekazywane są do aplikacji przetwarzającej go.
Ostatnim etapem jest przygotowanie aplikacji procesującej wniosek. Rozwiązań może być wiele - można skorzystać z systemu klasy workflow, który zapewni przepływ i realizację zadań w poszczególnych systemach źródłowcy; można również skorzystać z połączenia JBI oraz zintegrowanego silnika WS-BPEL, za pomocą którego również zrealizuje się opisane wcześniej wymagania.
Założeniem projektu co do ostatniego etapu jest skorzystanie z OpenESB. Jest to platforma, której głównym celem jest uproszczenie integracji biznesowej oraz ułatwienie implementacji architektury SOA. Udostępnia ona również komponenty JBI z których podczas wykonywania integracji zamierzam skorzystać.
W najbliższym czasie postaram się przedstawić opis prac nad pierwszym etapem projektu - przygotowaniem aplikacji symulującej systemy bankowe.
Na potrzeby tego projektu przygotowana zostanie aplikacja symulująca kilku systemów źródłowych - BankSourceSystem. Symulować będzie ona funkcjonalności: sprawdzania klienta w MigDZ, sprawdzania czy nie znajduje się on na liście osób objętych sankcjami (terroryści na przykład), sprawdzania i zapisywania wnioskodawcy w systemie zarządzania klientami, zapisywać informacje o wnioskowanych produktach.
Kolejnym etapem będzie przygotowanie aplikacji, której celem jest zebranie informacji od klienta o produktach o które wnioskuje. Prostota tego typu aplikacji polega na tym, że prezentowanych jest kilka formularzy zbierających dane, które po zatwierdzeniu wniosku przekazywane są do aplikacji przetwarzającej go.
Ostatnim etapem jest przygotowanie aplikacji procesującej wniosek. Rozwiązań może być wiele - można skorzystać z systemu klasy workflow, który zapewni przepływ i realizację zadań w poszczególnych systemach źródłowcy; można również skorzystać z połączenia JBI oraz zintegrowanego silnika WS-BPEL, za pomocą którego również zrealizuje się opisane wcześniej wymagania.
Założeniem projektu co do ostatniego etapu jest skorzystanie z OpenESB. Jest to platforma, której głównym celem jest uproszczenie integracji biznesowej oraz ułatwienie implementacji architektury SOA. Udostępnia ona również komponenty JBI z których podczas wykonywania integracji zamierzam skorzystać.
W najbliższym czasie postaram się przedstawić opis prac nad pierwszym etapem projektu - przygotowaniem aplikacji symulującej systemy bankowe.
wtorek, 9 lutego 2010
Wzorce JEE według Adama Bien'a
Zawodowo zajmuję się programowanie w Javie. Hobbystycznie, natomiast próbuję sił z JEE. Dlatego nie mogłem przejść obojętnie wobec książki, którą zaserwował Adam Bien - "Real World Java EE Patterns - Rethinking Best Practices". Dodatkowo w dotychczasowej karierze zawodowej zajmowałem się wyłącznie aplikacjami J2EE (ku mojemu wielkiemu rozczarowaniu). Jednak coraz więcej firm, dla których tworzone jest oprogramowanie migruje na serwery aplikacji zgodne ze specyfikacją JEE. Z tego powodu kwestią czasu jest kiedy w nowych projektach będzie można skorzystać z jej dobrodziejstw. Nie chcąc pozostać w tyle sięgnąłem po wyżej wymienioną książkę.
Motywem przewodnim są wszechobecne wzorce. Adam skupia się w niej głównie na tych, które mogą być bardzo pomocne w tworzeniu aplikacji JEE. Pisze z perspektywy osoby, która wcześniej dokładnie poznała architekturę J2EE i rozlegle stosowała wzorce zaproponowane przez Sun'a. Wskazuje te które nie mają obecnie żadnego zastosowania w nowej architekturze, ponieważ nowe rozwiązania wyeliminowały potrzebę ich wykorzystania. Ukazuje również te, których znaczenie się nie zmieniło, jednak z przyczyn częstego i błędnego ich stosowania stara się wyraźnie zaznaczyć jak powinno się z nich korzystać.
Główny podział wzorców przebieg według wykorzystania ich w odpowiednich warstwach. Warstwa integracji zawiera następujące wzorce: Service Facade, Service, Persistent Domain Object, Gateway, Fluid Logic, Paginator, Fase Lane Reader. Warstwa integracji natomiast: Data Access Object, Transfer Object., Service Activator. Dodatkowo w warstwie integracji opisuje strategie migracji beanów 2.x do 3.x ielegancki sposób wykorzystania Java Connector Architecture.
Oprócz wymienionych wyżej wzorców przyporządkowanych do odpowiednich warstw przedstawione są inne, równie użyteczne jak: Service Starter, Singleton, Bean Locator, Thread Tracker, Dependency Injection Extender, Payload Extractor, Resource Binder i Context Holder.
Książkę czyta się bardzo przyjemnie. Każdy wzorzec zaprezentowany jest z punktu widzenia problemu, który rozwiązuje, strategii, testowania, dokumentowania, konsekwencji które niesie wykorzystanie i wskazania powiązanych wzorców.
Moim zdaniem jest to obowiązkowa lektura dla architektów rozwiązań klasy Enterprise, jak również dla zwykłych programistów, którym przyjdzie implementować konkretne problemy biznesowe.
Subskrybuj:
Posty (Atom)











