Instrukcja techniczna - zamowienia.mazovia.pl
Transkrypt
Instrukcja techniczna - zamowienia.mazovia.pl
Wydatek współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Regionalnego Programu Operacyjnego Województwa Mazowieckiego 2007-2013 ESB Instrukcja techniczna Strona 1 z 29 ESB Instrukcja techniczna SPIS TREŚCI. 1. Wstęp. ........................................................................................... 3 1.1 Cel dokumentu. .............................................................................. 3 1.2 Warunki początkowe. ....................................................................... 3 1.3 Referencje do innych dokumentów. ................................................... 4 2. Budowanie źródeł aplikacji serwera ................................................... 4 2.1 Zmiany w źródłach .......................................................................... 4 2.1.1 Aktualizacja modułu logowania jboss-logging do wersji 2.1.1.GA ..... 4 2.1.2 Kompilacja źródeł serwera JBOSS ................................................ 5 3. Budowanie źródeł szyny ESB ............................................................ 6 3.1 Zmiany w źródłach .......................................................................... 6 3.2 Kompilacja źródeł szyny ESB ............................................................ 7 4. Zmiana silnika JBoss-WS-Native na JBoss-WS-CXF 3.4.0 ..................... 7 5. Konfiguracja regionalnej szyny ESB z serwerem bazy danych MSSQL .... 8 6. Konfiguracja lokalnej szyny ESB z serwerem bazy danych PostgreSQL . 10 7. Wdrożenie szyny ESB na serwer JBoss ............................................. 11 8. Usługi ESB - struktura źródeł aplikacji.............................................. 12 8.1 Warunki początkowe ...................................................................... 12 8.2 Założenia wynikające z wymagań .................................................... 12 8.3 Mechanizm podpisywania kopert SOAP w oparciu o silnik WSS4j ......... 13 8.4 Schemat ogólny struktury usługi ESB .............................................. 13 8.5 Usługi ESB ................................................................................... 14 8.5.1 Usługi dynamicznie routowane .................................................. 20 8.5.2 Usługi typu SOAP Proxy ............................................................ 21 8.5.3 Konfiguracja SSL usługi ............................................................ 22 8.5.4 Konfiguracja WS-Security usługi ................................................ 23 8.5.5 Konfiguracja ról dostępowych do usługi ...................................... 26 9. Dodanie nowej usługi ESB .............................................................. 27 10. Kompilacja źródeł usług ESB ........................................................... 27 Strona 2 z 29 ESB Instrukcja techniczna 1. Wstęp. 1.1 Cel dokumentu. Celem dokumentu jest przekazanie wiedzy programistycznej w zakresie zmian wykonanych w źródłach serwera JBoss oraz szyny ESB, aktualizacji bibliotek silnika usług sieciowych JBoss-WS-CXF, a także implementacji, testowania i wdrożenia usług centralnych oraz lokalnych na szynie ESB. 1.2 Warunki początkowe. Osoba wykonująca jakiekolwiek prace związane z implementacją usług powinna posiadać ogólną wiedzę programistyczną z zakresu specyfikacji Java EE 5/6. W szczególności wymagana jest wiedza z zakresu: język programowania JAVA, implementacja usług sieciowych w oparciu o silnik Apache CXF z wykorzystaniem mechanizmów zabezpieczeń WS-Security, w tym podpis elektroniczny, a także standardowe uwierzytelnienie (login/haslo) w kopercie SOAP, JMS Server i konfiguracja kolejek JMS. Wymagana dodatkowa wiedza z zakresu administracji systemem operacyjnym, obsługi plików XML oraz XSD, a także generowaniem i podpisywaniem certyfikatem kopert SOAP. Wymagana również wiedza z zakresu przesyłania informacji protokołami: HTTP, szyfrowanym HTTP, SOAP, a także wykorzystania interfejsów REST. Wymagana wiedza ogólna z zakresu konfiguracji i wdrożenia usług na szynie ESB. Zakłada się również, że środowisko pracy ze skonfigurowane. Poprawna konfiguracja obejmuje: źródłami jest poprawnie instalację środowiska uruchomieniowego JAVA, Strona 3 z 29 ESB Instrukcja techniczna instalację narzędzi do automatycznego budowania MAVEN oraz ANT, instalację środowiska deweloperskiego Eclipse lub JBoss Developers Studio. Wykorzystane wersje oprogramowania: Oprogramowanie Wersja JAVA JDK jdk1.6.0_45 MAVEN apache-maven-2.2.1 ANT apache-ant-1.7.1 JBoss Developers Studio jbdevstudio-product-universal5.0.0.v20120615-1714-H213GA.jar 1.3 Referencje do innych dokumentów. Podręcznik Administratora ESB 2. Budowanie źródeł aplikacji serwera 2.1 Zmiany w źródłach 2.1.1 Aktualizacja modułu logowania jboss-logging do wersji 2.1.1.GA Aktualizacja modułu logowania umożliwi łatwiejsze zarządzanie logami usług ESB oraz samego serwera JBOSS. Modyfikacja obejmuje zmianę wersji bibliotek logowania w pliku konfiguracyjnym: /jboss-5.1.0.GA-src/component-matrix/pom.xml <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging-spi</artifactId> <version>2.1.1.GA</version> </dependency> <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging-jdk</artifactId> <version>2.1.1.GA</version> </dependency> <dependency> Strona 4 z 29 ESB Instrukcja techniczna <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging-log4j</artifactId> <version>2.1.1.GA</version> <exclusions> <exclusion> <groupId>apache-log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> Po zmianie wymagane jest przebudowanie aplikacji zgodnie z sekcją Kompilacja źródeł serwera. 2.1.2 Kompilacja źródeł serwera JBOSS Warunki początkowe: zainstalowane narzędzie ANT, widoczne z linii komend zainstalowane środowisko uruchomieniowe JAVA dostęp do internetu Konfiguracja repozytorium JBoss Należy zweryfikować konfigurację publicznych repozytorium czy zawierają listę poniższych serwerów. Gdyby, któryś z serwerów był niedostępny należy znaleźć inne publiczne repozytorium zawierające niezbędne biblioteki i dodać je do listy repozytoriów. Konfiguracja publicznych repozytoriów znajduje się w pliku pom.xml, w głównym katalogu archiwum jboss-5.1.0.GA-modified-src.zip: <repositories> <repository> <id>jboss-public-repository-group</id> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public/</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </snapshots> </repository> <repository> <id>jboss-deprecated</id> <name>JBoss Strona 5 z 29 ESB Instrukcja techniczna Deprecated</name> d/</url> <url>https://repository.jboss.org/nexus/content/repositories/deprecate <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>jboss-maven2-brew</id> <name>JBoss Maven 2 Brew Repository</name> <url>http://repository.jboss.org/maven2-brew/</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> W celu kompilacji źródeł serwera JBOSS należy: znajdować się w katalogu z źródłami aplikacji serwera [JBOSS_5.1.0.GA_SRC_HOME]/build wykonać poniższe polecenie w celu usunięcia katalogu wynikowego ant clean wykonać poniższe polecenie w celu kompilacji źródeł ant 3. Budowanie źródeł szyny ESB 3.1 Zmiany w źródłach W celu poprawy błędu obsługi kopert SOAP w wersji 1.2 wprowadzono zmiany w klasach org.jboss.soa.esb.services.security.auth.ws.SoapConstants oraz Strona 6 z 29 ESB Instrukcja techniczna org.jboss.soa.esb.services.security.auth.ws.SoapExtractionUtil. Należy podmienić pliki znajdujące się w katalogu: jbossesb-4.11-modifiedsrc.zip/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/ na pliki z katalogu esb_modified. 3.2 Kompilacja źródeł szyny ESB W celu kompilacji źródeł szyny ESB należy: znajdować się w katalogu: [JBOSSESB_4.11_SRC_HOME]/product wykonać poniższe polecenie w celu usunięcia katalogu wynikowego ant clean wykonać poniższe polecenie w celu kompilacji źródeł ant dist 4. Zmiana silnika JBoss-WS-Native na JBossWS-CXF 3.4.0 Warunki początkowe: zainstalowane narzędzie ANT, widoczne z linii komend zainstalowane środowisko uruchomieniowe JAVA Przejść do folderu głównego aktualizacji (do którego została rozpakowana zawartość jbossws-cxf-3.4.0.GA.zip): [jbossws-cxf-bin-dist] Skonfigurować: ścieżkę do domowego folderu serwera JBoss w pliku konfiguracyjnym ./ant.properties (usunąć fragment rozszerzenia pliku .example): jboss510.home <- w sekcji # Optional JBoss Home np. jboss510.home=D:/UMWM/ESB/src/ws/jboss-5.1.0.GA profil konfiguracji serwera w sekcji # The JBoss settings: jboss.server.instance np. jboss.server.instance=all Strona 7 z 29 ESB Instrukcja techniczna Polecenie wdrożenia aktualizacji silnika WS (wykonać z poziomu folderu [jbossws-cxf-bin-dist]): ant -Djboss.server.instance=all deploy-jboss510 5. Konfiguracja regionalnej szyny ESB z serwerem bazy danych MSSQL W celu konfiguracji szyny ESB z SZBD (Systemem Zarządzania Bazą Danych) MSSQL należy usunąć konfigurację domyślną bazy Hypersonic oraz dostarczyć odpowiednią konfigurację dla bazy MSSQL. Należy usunąć foldery: ./jboss-5.1.0.GA/server/default ./jboss-5.1.0.GA/server/minimal ./jboss-5.1.0.GA/server/standard ./jboss-5.1.0.GA/server/web Należy usunąć pliki: ./jboss-5.1.0.GA/server/all/hsqldb-ds.xml ./jboss-5.1.0.GA/server/all/deploy/messaging/hsqldb-persistenceservice.xml Do katalogu ./jboss-5.1.0.GA/server/all/deploy/messaging/ należy skopiować plik konfiguracyjny dedykowany dla SZBD MSSQL: mssql-persistence-service.xml z katalogu mssql Następnie należy podmienić poniższe pliki na ich odpowiedniki dedykowane dla SZBD MSSQL (znajdują się one w katalogu mssql): ./jboss-5.1.0.GA/server/all/deploy/jbpm.esb/jbpm-service.xml ./jboss-5.1.0.GA/server/all/deploy/jbpm.esb/hibernate.cfg.xml ./jboss-5.1.0.GA/server/all/deploy/jbossesb.esb/jbossesb-service.xml ./jboss-5.1.0.GA/server/all/deploy/jbossesb-registry.sar/juddi_config/METAINF/persistence.xml Konfiguracja sterownika JDBC dla wybranej wersji MSSQL: Skopiować do katalogu ./ jboss-5.1.0.GA/server/all/lib plik sqljdbc4.jar z katalogu mssql. Konfiguracja połączenia do wybranej bazy danych została umieszczona w plikach konfiguracyjnych w kilku lokalizacjach: 1. Konfiguracja DataSource dla instancji bazy danych localDB serwera JBoss oraz pozostałych źródeł danych dla aplikacji wdrażanych na serwer: Strona 8 z 29 ESB Instrukcja techniczna $JBOSS_HOME/server/all/deploy/mssql-ds.xml 2. Konfiguracja DataSource dla juddiDB - rejestru serwisów ESB: $JBOSS_HOME/server/all/deploy/jbossesb-registry.sar/juddi-ds.xml 3. Konfiguracja DataSource dla instancji bazy danych jbossesb - źródła danych dla szyny ESB, składowania kolejek JMS oraz innych danych konfiguracyjnych: $JBOSS_HOME/server/all/deploy/jbossesb.esb/message-store-ds.xml Konfiguracja przewiduje utworzenie struktur DB w pustych bazach danych podczas pierwszego rozruchu serwera. Wymagane jest aby utworzyć puste instancje baz danych (localDB, juddiDB, jbossesb) w systemie zarządzania bazą danych oraz przypisać do nich odpowiedniego użytkownika – ‘jbossesb’. Opcjonalna konfiguracja bazy danych dla katalogu raportów wymaga, aby w SZBD utworzyć bazę danych o nazwie esblogging oraz wykonać na niej dostarczony skrypt mssql_create.sql. Konfiguracja przechowywana jest w pliku konfiguracyjnym mechanizmów logowania na serwerze JBoss (jboss-log4j.xml). W celu nawiązania komunikacji z bazą danych MSSQL należy w plikach konfiguracyjnych (wymienionych powyżej) ustawić wskazane atrybuty (w zależności od pliku mogą być dostępne różne, wymienione niżej atrybuty): Konfiguracja URL połączenia z instancją DB: connection-url jdbc:sqlserver://[HOST]:[PORT];DatabaseName=[DATABASE_NAME] Klasa sterownika dla MSSQL: driver-class com.microsoft.sqlserver.jdbc.SQLServerDriver Użytkownik administracyjny user-name [NAZWA_UZYTKOWNIKA] Hasło użytkownika: password [HASLO_UZYTKOWNIKA] Mapowanie typów metadanych w wybranej wersji MSSQL: type-mapping MS SQLSERVER2000 Konfiguracja URL połączenia z instancją DB: URL jdbc:sqlserver://[HOST]:[PORT];DatabaseName=[DATABASE_NAME] Klasa sterownika dla MSSQL: driver com.microsoft.sqlserver.jdbc.SQLServerDriver Użytkownik administracyjny user [NAZWA_UZYTKOWNIKA] Hasło użytkownika: password [HASLO_UZYTKOWNIKA] Strona 9 z 29 ESB Instrukcja techniczna 6. Konfiguracja lokalnej szyny ESB z serwerem bazy danych PostgreSQL W celu konfiguracji szyny ESB z SZBD PostgreSQL należy usunąć konfigurację domyślną bazy Hypersonic oraz dostarczyć odpowiednią dla bazy PostgreSQL. Należy usunąć foldery: ./jboss-5.1.0.GA/server/default ./jboss-5.1.0.GA/server/minimal ./jboss-5.1.0.GA/server/standard ./jboss-5.1.0.GA/server/web Należy usunąć pliki: ./jboss-5.1.0.GA/server/all/hsqldb-ds.xml ./jboss-5.1.0.GA/server/all/deploy/messaging/hsqldb-persistenceservice.xml Do katalogu ./jboss-5.1.0.GA/server/all/deploy/messaging/ skopiować plik konfiguracyjny dedykowany dla SZBD PostgreSQL o nazwie postgresqlpersistence-service.xml z katalogu postgresql Następnie należy podmienić poniższe pliki na ich odpowiedniki dedykowane dla SZBD PostgreSQL (znajdują się w katalogu postgresql): ./jboss-5.1.0.GA/server/all/deploy/jbpm.esb/jbpm-service.xml ./jboss-5.1.0.GA/server/all/deploy/jbpm.esb/hibernate.cfg.xml ./jboss-5.1.0.GA/server/all/deploy/jbossesb.esb/jbossesb-service.xml ./jboss-5.1.0.GA/server/all/deploy/jbossesb-registry.sar/juddi_config/METAINF/persistence.xml Konfiguracja sterownika JDBC dla wybranej wersji PostgreSQL 9.1: Skopiować do katalogu ./jboss-5.1.0.GA/server/all/lib plik postgresql-9.1903.jdbc4.jar z katalogu postgresql. Konfiguracja połączenia do wybranej bazy danych została umieszczona w plikach konfiguracyjnych w kilku lokalizacjach: 1. Konfiguracja DataSource dla instancji bazy danych localDB serwera JBoss oraz pozostałych źródeł danych dla aplikacji wdrażanych na serwer : $JBOSS_HOME/server/all/deploy/postgresql-ds.xml 2. Konfiguracja DataSource dla juddiDB - rejestru serwisów ESB: $JBOSS_HOME/server/all/deploy/jbossesb-registry.sar/juddi-ds.xml 3. Konfiguracja DataSource dla instancji bazy danych jbossesb - źródła danych dla szyny ESB, składowania kolejek JMS oraz innych danych konfiguracyjnych: Strona 10 z 29 ESB Instrukcja techniczna $JBOSS_HOME/server/all/deploy/jbossesb.esb/message-store-ds.xml Konfiguracja przewiduje utworzenie struktur DB w pustych bazach danych podczas pierwszego rozruchu serwera. Wymagane jest aby utworzyć puste instancje baz danych (localDB, juddiDB, jbossesb) w systemie zarządzania bazą danych oraz przypisać do nich odpowiedniego użytkownika – ‘jbossesb’. Opcjonalna konfiguracja bazy danych dla katalogu raportów wymaga, aby w SZBD utworzyć bazę danych o nazwie esblogging oraz wykonać na niej dostarczony skrypt postgresql_create.sql. Konfiguracja przechowywana jest w pliku konfiguracyjnym mechanizmów logowania na serwerze JBoss (jbosslog4j.xml). W celu nawiązania komunikacji z bazą danych PostgreSQL należy w plikach konfiguracyjnych (wymienionych powyżej) ustawić wskazane atrybuty (w zależności od pliku mogą być dostępne różne, wymienione niżej atrybuty): Konfiguracja URL połączenia z instancją DB: connection-url jdbc:postgresql://[HOST]:[PORT]/[NAZWA_BAZY_DANYCH] Klasa sterownika dla PostgreSQL: driver-class org.postgresql.Driver Użytkownik administracyjny user-name [NAZWA_UZYTKOWNIKA] Hasło użytkownika: password [HASLO_UZYTKOWNIKA] Mapowanie typów metadanych w wybranej wersji PostgreSQL: type-mapping PostgreSQL 8.0 Konfiguracja URL połączenia z instancją DB: URL jdbc:postgresql://[HOST]:[PORT]/[NAZWA_BAZY_DANYCH] Klasa sterownika dla PostgreSQL: driver org.postgresql.Driver Użytkownik administracyjny user [NAZWA_UZYTKOWNIKA] Hasło użytkownika: password [HASLO_UZYTKOWNIKA] 7. Wdrożenie szyny ESB na serwer JBoss W celu wdrożenia szyny ESB na serwer JBoss należy w pierwszej kolejności przeprowadzić konfigurację ścieżki do serwera w pliku konfiguracyjnym: jbossesb-4.11-modified-src.zip\trunk\product\install\deployment.properties Następnie należy wykonać poniższe operacje: Zmienić rozszerzenie pliku jbossesb-4.11-modifiedsrc.zip\trunk\product\install\deployment.properties-example na deployment.properties Skonfigurować właściwości: Strona 11 z 29 ESB Instrukcja techniczna o org.jboss.esb.server.home=D:/BGWM/ESB/src/cxf/jboss-5.1.0.GA o Profil serwera: org.jboss.esb.server.config=all Wykonać komendę (z poziomu folderu instalacyjnego ./jbossesb/install/): ant deploy 8. Usługi ESB - struktura źródeł aplikacji 8.1 Warunki początkowe Serwer i szyna ESB są poprawnie zainstalowane, połączone z zewnętrznym systemem bazy danych. 8.2 Założenia wynikające z wymagań Dostęp do usług ESB chroniony jest podpisem koperty SOAP przy użyciu certyfikatu prywatnego oraz oznaczeniem koperty czasem wygenerowania żądania. Podpis obejmuje sekcje nagłówka koperty SOAP w zależności od usługi (Timestamp, BinarySecurityToken, Body lub bez sekcji BinarySecurityToken), Usługa ESB dostępna na szynie ESB poprzez przedstawienie się prywatnym certyfikatem wygenerowanym przez Lokalne Centrum Certyfikacji, Komunikacja po szyfrowanym protokole HTTP, Zgodność ze specyfikacją WS-Metadata-Exchange, Transparentność WSDL wystawianej usługi, niezależnie od tego czy usługa jest zewnętrzna, czy wewnętrzna, Zgodność z SOAP 1.1, SOAP 1.2, Zgodność wersji WSS4J oraz XML-Security pomiędzy szyną ESB, serwerem JBoss oraz bibliotekami usług sieciowych JBoss-WS-CXF 3.4.0. Strona 12 z 29 ESB Instrukcja techniczna 8.3 Mechanizm podpisywania kopert SOAP w oparciu o silnik WSS4j W celu realizacji wymagania zabezpieczenia przesyłanych wiadomości podpisem elektronicznym został zaimplementowany mechanizm podpisywania i weryfikacji przesyłanych kopert SOAP na poziomie łańcucha akcji usługi ESB. Koperta zawierająca podpis elektroniczny podlega weryfikacji na poziomie mechanizmu logowania operacji wykonywanych przez szynę ESB. Dzięki temu uzyskujemy informację o tym, kto przesyła wiadomość i czy ma odpowiednie prawa do korzystania z funkcjonalności usługi ESB. Moduł podpisujący jest częścią wspólną wszystkich usług ESB, zarówno na szynie centralnej, jak i na szynach lokalnych. Moduł podpisu obsługuje koperty SOAP w wersji 1.1 oraz 1.2. 8.4 Schemat ogólny struktury usługi ESB [/ESB_SERVICE_NAME.esb] | jbm-queue-service.xml | jbossesb-properties.xml | log4j.properties ----lib | [esb-common-utils].jar | ----META-INF | | [PROXY_WSDL].wsdl | | crypto_[system]_client_check.properties | | crypto_[system]_client_request.properties | | crypto_[system]_client_response.properties | | deployment.xml | | https-443.properties | | jboss-classloading.xml | | jboss-esb.xml | | MANIFEST.MF | |---maven | |---com.comarch.umwm.esb.services | |---[ESB_SERVICE_PROJECT_NAME] | pom.properties | pom.xml |---pl |---gov |--- ... Objaśnienia: . W folderze głównym usługi znajduje się konfiguracja kolejek JMS (dla komunikacji synchronicznej Strona 13 z 29 ESB Instrukcja techniczna /lib META-INF /maven /pl/gov/... żądanie/odpowiedź) usługi (plik jbmqueue-service.xml) oraz parametrów dodatkowych, dedykowanych dla wdrożonej usługi (jbossesbproperties.xml), a także konfiguracja mechanizmu logowania log4j dla usługi. Folder przechowuje biblioteki zależne, wymagane do wdrożenia i poprawnego działania usługi na szynie ESB Folder przechowuje kluczową konfigurację usługi. Istotnym plikiem konfiguracyjnym jest jboss-esb.xml, który zawiera definicję oraz opis funkcjonalny usługi ESB. W celu poprawnego wdrożenia usługi wymagane jest również dodanie pliku wdrożenia, który stanowi o kolejności ładowania zależności usługi (deployment.xml). Pozostała konfiguracja dotyczy konfiguracji klienta HTTP, którego wewnętrznie wykorzystuje usługa do komunikacji z systemami zewnętrznymi (https443.properties). Pozostałe właściwości dotyczą mechanizmu podpisu elektronicznego wiadomości, przechowują konfigurację certyfikatów dla podpisu oraz jego weryfikacji. Niektóre usługi mogą wymagać ustawienia izolacji ładowania zależnych bibliotek w oparciu o odpowiedni poziom ClassLoader'a (jboss-classloading.xml). Informacje o zależnościach źródeł dla procesu automatycznego budowania aplikacji. Skompilowane klasy funkcji, które realizuje usługa ESB. 8.5 Usługi ESB Usługi ESB zostały zintegrowane z bramką HTTP oraz kolejkami JMS, które stanowią punkt dostępowy do usługi odpowiednio z zewnątrz oraz z wewnątrz Strona 14 z 29 ESB Instrukcja techniczna szyny ESB. Bramka HTTP umożliwia przyjęcie przez szynę wiadomości w formacie niezrozumiałym jeszcze przez szynę ESB, z kolei JMS przyjmuje wiadomość zrozumiałą dla szyny, mechanizmy konwersji zapewniają poprawną transformację wiadomości pomiędzy punktami dostępowymi. Każda usługa została zintegrowana z rozbudowanym modułem weryfikacji certyfikatów, zapewniającym uwierzytelnienie klientów usług na podstawie podpisu wiadomości. Usługi zostały podzielone na publiczne i prywatne. Do realizacji grupowania usług został wykorzystany mechanizm ról dostępowych powiązanych z klientami usług, który jest częścią składową rozszerzonego modułu uwierzytelniania klientów usług poprzez prywatny certyfikat. W środowisku projektowym wszystkie usługi mają status public. Kolejny podział usług niewynikający z ról dostępowych uwzględnia centralne oraz lokalne usługi ESB, zgodnie z podziałem infrastruktury ESB dla opracowywanego systemu. Każda usługa przechowuje fizyczny plik WSDL, który jest skonfigurowany jako parametr wejściowy akcji SOAPProxy lub DynamicEndpointProxyAction. Plik WSDL przechowuje adres końcowy/dostępowy do zewnętrznej usługi. Przykład pliku WSDL: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://userinfo.zp.epuap.gov.pl" xmlns:impl="http://userinfo.zp.epuap.gov.pl" xmlns:intf="http://userinfo.zp.epuap.gov.pl" xmlns:tns2="http://sign.zp.comarch.gov" xmlns:tns3="http://exception.userinfo.zp.epuap.gov.pl" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <schema targetNamespace="http://userinfo.zp.epuap.gov.pl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns2="http://sign.zp.comarch.gov" Strona 15 z 29 ESB Instrukcja techniczna xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <import namespace="http://sign.zp.comarch.gov" /> <element name="getTpUserInfoResponse"> <complexType> <sequence> <element name="getTpUserInfoReturn" nillable="true" type="tns2:TpUserInfo" /> </sequence> </complexType> </element> <element name="getTpUserInfo"> <complexType> <sequence> <element name="tgsid" nillable="true" <element name="systemOrganisationId" type="xsd:string" /> nillable="true" type="xsd:string" /> </sequence> </complexType> </element> </schema> <schema targetNamespace="http://sign.zp.comarch.gov" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <complexType name="TpUserInfo"> <sequence> Strona 16 z 29 ESB Instrukcja techniczna <element nillable="true" type="xsd:string" /> <element name="accountEmailAddress" name="claimedRole" nillable="true" type="xsd:string" /> </sequence> </complexType> </schema> <schema targetNamespace="http://exception.userinfo.zp.epuap.gov.pl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <complexType name="TpUserInfoException"> <sequence> <element name="message" nillable="true" type="xsd:string" /> </sequence> </complexType> <element name="TpUserInfoException" nillable="true" type="tns3:TpUserInfoException" /> </schema> </wsdl:types> <wsdl:message name="getTpUserInfoResponse"> <wsdl:part name="parameters" /> element="intf:getTpUserInfoResponse" </wsdl:message> <wsdl:message name="getTpUserInfoRequest"> <wsdl:part element="intf:getTpUserInfo" name="parameters" /> </wsdl:message> Strona 17 z 29 ESB Instrukcja techniczna <wsdl:message name="TpUserInfoException"> <wsdl:part element="tns3:TpUserInfoException" name="fault" /> </wsdl:message> <wsdl:portType name="TpUserInfoService"> <wsdl:operation name="getTpUserInfo"> <wsdl:input name="getTpUserInfoRequest" /> <wsdl:output name="getTpUserInfoResponse" /> <wsdl:fault name="TpUserInfoException" /> message="intf:getTpUserInfoRequest" message="intf:getTpUserInfoResponse" message="intf:TpUserInfoException" </wsdl:operation> </wsdl:portType> <wsdl:binding type="intf:TpUserInfoService"> name="TpUserInfoServiceSoapBinding" <wsaw:UsingAddressing wsdl:required="false" /> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getTpUserInfo"> <wsdlsoap:operation soapAction="getTpUserInfo" /> <wsdl:input name="getTpUserInfoRequest"> <wsdlsoap:body use="literal" /> </wsdl:input> <wsdl:output name="getTpUserInfoResponse"> <wsdlsoap:body use="literal" /> </wsdl:output> <wsdl:fault name="TpUserInfoException"> Strona 18 z 29 ESB Instrukcja techniczna <wsdlsoap:fault name="TpUserInfoException" use="literal" /> </wsdl:fault> </wsdl:operation> </wsdl:binding> <wsdl:service name="TpUserInfoServiceService"> <wsdl:port name="TpUserInfoService"> binding="intf:TpUserInfoServiceSoapBinding" <wsdlsoap:address location="https://test.epuap.gov.pl:443/zp_userinfo_external_ws/ services/TpUserInfoService" /> <wsp:PolicyReference URI="#x509SecuritySignPolicy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/08/policy" /> </wsdl:port> </wsdl:service> <wsp:UsingPolicy Required="true" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/08/policy" /> <wsp:Policy wsu:Id="x509SecuritySignPolicy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/08/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis200401-wss-wssecurity-utility-1.0.xsd"> <wsp:ExactlyOne> <wsse:SecurityToken xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"> <wsse:TokenType> "http://docs.oasis-open.org/wss/2004/01/oasis200401-wss-x509-token-profile-1.0#X509v3" </wsse:TokenType> Strona 19 z 29 ESB Instrukcja techniczna </wsse:SecurityToken> </wsp:ExactlyOne> </wsp:Policy> </wsdl:definitions> 8.5.1 Usługi dynamicznie routowane Usługi dynamicznie routowane są typem usług, których odbiorca (endpoint) jest zmienny w zależności od parametru przekazanego w kopercie SOAP. Ten typ usług jest wykorzystywany m.in. przez usługę EZDStatusService. Dynamiczny routing pozwolił znacznie ograniczyć liczbę usług ESB świadczonych przez szynę. Dynamiczny mechanizm wyznaczania trasy został zrealizowany w oparciu o rozbudowany mechanizm akcji SOAPProxy oraz rozbudowany mechanizm publikowania kontraktu na szynie ESB. Programowe wywołanie usługi SOAPProxy umożliwiło dynamiczną konfigurację docelowych punktów odbioru wiadomości. Usługa dynamicznie routowana pobiera atrybut partnerId z nagłówka koperty SOAP, a następnie odnajduję adres hosta z pliku konfiguracyjnego partners.properties (JBOSS_HOME\server\all\conf\partners.properties). Przykładowa zawartość pliku partners.properties: TEST=TESTEURZAD-JST.wrotamazowsza.pl:8543 OSostroAndrzGW=OSTROANDRZGWVM1.wrotamazowsza.pl:8543 CPplonsBabosGW=PLONSBABOSGWVM1.wrotamazowsza.pl:8543 OSostroBaranGW=OSTROBARANGWVM1.wrotamazowsza.pl:8543 ... Pozostała konfiguracja jest zawarta w pliku jboss-esb.xml usługi (wewnątrz archiwum *.esb\META-INF), gdzie zamiast akcji SOAPProxy należy podać poniższy wpis: <action name="WSDLContractPublisher" class="pl.gov.ezd.esb.custom.actions.WSDLServiceContractPublisherActi on"> <property name="wsdl" value="classpath:///METAINF/statusService.wsdl" /> </action> <action class="pl.gov.ezd.esb.custom.actions.DynamicEndpointProxyAction" name="request-action"> <property name="routeDestinations" value="C:/comarch/szyna_esb/jboss5.1.0.GA/server/all/conf/partners.properties" /> <property name="file" value="/META-INF/https-443.properties" /> <property name="clientCredentialsRequired" value="false" /> Strona 20 z 29 ESB Instrukcja techniczna <property name="protocol" value="https://" /> <property name="serviceEndpointUrl" value="/esb-local-ezd-status-service/http/SOAP/EZDLocalStatusWS" /> </action> Parametry: wsdl - określa lokalizację pliku WSDL routeDestinations – określa lokalizację pliku partners.properties file – określa lokalizację pliku z konfiguracją dla połączenia HTTPS. Jest to parametr opcjonalny clientCredentialsRequired – parametr opcjonalny określający, czy połączenie SSL wymaga clientCredentials protocol – określa protokół adresu endpoint serviceEndpointUrl – określa resztę ciągu adresu endpoint usługi. Dla powyżej przykładowej konfiguracji jeśli do szyny ESB trafi koperta z parametrem partnerId ustawionym na TEST, to koperta zostanie przekierowana na adres https:// TESTEURZAD-JST.wrotamazowsza.pl:8543/esb-local-ezdstatus-service/http/SOAP/EZDLocalStatusWS, a nie na adres zawarty w pliku WSDL, jak dla zwykłych akcji SOAP Proxy 8.5.2 Usługi typu SOAP Proxy Usługi typu SOAP Proxy są najpopularniejsze i polegają na przekierowaniu koperty wejściowej SOAP na inny adres endpoint. Adres endpoint jest pobierany z sekcji address zawartej w pliku WSDL usługi. Konfiguracja jest zawarta w pliku jboss-esb.xml (wewnątrz archiwum *.esb\META-INF), usługi, gdzie w łańcuchu akcji należy podać poniższy wpis: <action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"> <property name="wsdl" value="classpath:///METAINF/[PLIK_WSDL].wsdl" /> <property name="file" value="/META-INF/https-443.properties" /> <property name="clientCredentialsRequired" value="false" /> </action> Parametry: wsdl – określa lokalizację pliku WSDL z adresem endpoint proxowanej usługi file – opcjonalny parametr zawierający lokalizację pliku konfiguracyjnego dla połączeń https Strona 21 z 29 ESB Instrukcja techniczna clientCredentialsRequired – opcjonalny parametr wykorzystywany dla połączeń https. Określa czy połączenie SSL wymaga clientCredentials 8.5.3 Konfiguracja SSL usługi Konfiguracja połączenia HTTPS polega na utworzeniu pliku https-443.properties (wewnątrz archiwum *.esb\META-INF), modyfikacji akcji SOAP Proxy lub DynamicEndpointProxyAction w łańcuchu akcji oraz zmiany protokołu w adresie endpoint. Plik https-443.properties ma poniższą składnię: # HTTP Protocol config configurators=pl.gov.epuap.protocol.config.EpuapProtocol # SSLv3 socket factory protocol-socketfactory=pl.gov.epuap.protocol.factory.SSL3ProtocolSocketFactory # Keystore config keystore=C:/comarch/szyna_esb/jboss-5.1.0.GA/server/all/conf/jboss.keystore keystore-passw=changeit # Truststore config truststore=C:/comarch/szyna_esb/jboss-5.1.0.GA/server/all/conf/jboss.keystore truststore-passw=changeit # Connection config connection-timeout=1000 host-name=TESTeUrzad-Portale.wrotamazowsza.pl Parametry: configurators oraz protocol-socket-factory – jest to parametr opcjonalny. Wymusza on połaczenie SSL w wersji 3. Należy go używać wyłącznie dla połączeń SSL, które udostępniają również starsze wersje protokołu SSL keystore oraz trustowe – lokalizacja kontenera certyfikatów SSL keystore-passwd oraz trustowe-passws – hasło do kontenerów certyfikatów connection-timeout – jest to parametr opcjonalny. Definiuje maksymalny czas połączenia host-name – jest to parametr opcjonalny z nazwą hosta SSL. Należy go używać wyłącznie gdy nazwa hosta jest stała, np. dla SOAP Proxy. Nie należy go używać dla DynamicEndpointProxyAction Dla usługi typu SOAP Proxy należy w pliku jboss-esb.xml dodać dodatkowe parametry file (określające lokalizację pliku z konfiguracją SSL) i clientCredentialsRequired (parametr ten określa czy połączenie SSL wymaga clientCredentials) oraz w pliku WSDL zmienić adres endpoint na protokół https Np.: Strona 22 z 29 ESB Instrukcja techniczna <action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"> <property name="wsdl" value="classpath:///METAINF/[PLIK_WSDL].wsdl" /> <property name="file" value="/META-INF/https-443.properties" /> <property name="clientCredentialsRequired" value="false" /> </action> Dla usługi typu DynamicEndpointProxyAction należy w pliku jboss-esb.xml dodać dodatkowy parametry file (określający lokalizację pliku z konfiguracją SSL) i clientCredentialsRequired (parametr ten określa czy połączenie SSL wymaga clientCredentials) oraz zmienić parametr protocol na ‘https://’ Np.: <action class="pl.gov.ezd.esb.custom.actions.DynamicEndpointProxyAction" name="request-action"> <property name="routeDestinations" value="C:/comarch/szyna_esb/jboss5.1.0.GA/server/all/conf/partners.properties" /> <property name="file" value="/META-INF/https-443.properties" /> <property name="clientCredentialsRequired" value="false" /> <property name="protocol" value="https://" /> <property name="serviceEndpointUrl" value="/esb-local-ezd-status-service/http/SOAP/EZDLocalStatusWS" /> </action> 8.5.4 Konfiguracja WS-Security usługi Mechnizm WS-Security polega na dodawaniu elementu Timestamp oraz podpisywaniu/weryfikacji elementu Body i Timestamp koperty SOAP. Typ identyfikacji klucza jest ustawiany na: BinarySecurityToken Dodanie WSSecurity do usługi ESB polega na utworzeniu 3 plików properties z konfiguracją certyfikatów oraz dodaniu akcji do łańcucha akcji w pliku jbossesb.xml. [ESB_SERVICE.esb]/META-INF/crypto_client_check.properties – weryfikacja podpisu odpowiedzi sytemu zewnętrznego oraz żądania do szyny ESB Zawartość: Atrybut org.apache.ws.security.crypto.provider org.apache.ws.security.crypto.merlin.truststore.type org.apache.ws.security.crypto.merlin.truststore.file Opis Komponent provider’a Apache obsługujący kryptografię. Typ pliku repozytorium certyfikatów zaufanych. Ścieżka względna/bezwzględna do pliku. Strona 23 z 29 ESB Instrukcja techniczna org.apache.ws.security.crypto.merlin.truststore.password timestamp.time.to.live enable.signature.confirmation Hasło do repozytorium zaufanych certyfikatów. Czas ważności znacznika czasu Potwierdzenie weryfikacji podpisu. [ESB_SERVICE.esb]/META-INF/crypto_client_request.properties – konfiguracja dla podpisu żądania przesyłanego do systemu zewnętrznego Zawartość: Atrybut org.apache.ws.security.crypto.provider org.apache.ws.security.crypto.merlin.keystore.type org.apache.ws.security.crypto.merlin.file Org.apache.ws.security.crypto.merlin.keystore.alias org.apache.ws.security.crypto.merlin.keystore.password timestamp.time.to.live enable.signature.confirmation Opis Komponent provider’a Apache obsługujący kryptografię. Typ pliku repozytorium certyfikatów. Ścieżka względna/bezwzględna do pliku. Alias certyfikatu z podpisem. Hasło do repozytorium certyfikatów. Czas ważności znacznika czasu Potwierdzenie weryfikacji podpisu. [ESB_SERVICE.esb]/META-INF/crypto_client_response.properties – konfiguracja dla podpisu odpowiedzi z szyny ESB Zawartość: Atrybut org.apache.ws.security.crypto.provider org.apache.ws.security.crypto.merlin.keystore.type org.apache.ws.security.crypto.merlin.file org.apache.ws.security.crypto.merlin.keystore.alias org.apache.ws.security.crypto.merlin.keystore.password timestamp.time.to.live enable.signature.confirmation Opis Komponent provider’a Apache obsługujący kryptografię. Typ pliku repozytorium certyfikatów. Ścieżka względna/bezwzględna do pliku. Alias certyfikatu z podpisem. Hasło do repozytorium certyfikatów. Czas ważności znacznika czasu Potwierdzenie weryfikacji podpisu. Przykładowa zawartość pliku: org.apache.ws.security.crypto.provider=org.apache.ws.security.components.cryp to.Merlin org.apache.ws.security.crypto.merlin.keystore.type=JKS org.apache.ws.security.crypto.merlin.keystore.password=123456 org.apache.ws.security.crypto.merlin.keystore.alias=central-signature-key org.apache.ws.security.crypto.merlin.file=C:/comarch/szyna_esb/jboss5.1.0.GA/server/all/conf/esb.keystore timestamp.time.to.live=300 enable.signature.confirmation=true Strona 24 z 29 ESB Instrukcja techniczna W łańcuchu akcji pliku jboss-esb.xml przed oraz po akcji proxującej (SOAPProxy lub DynamicEndpointProxyAction) należy dodać poniższe wpisy: <action class="com.custom.common.logging.esb.actions.SystemPrintln" name="echo-request1"> <property name="message" value="[esb-eurzad-proxy-pull-service] Message before RequestSignExchangeAction" /> <property name="printfull" value="false" /> <property name="level" value="debug" /> </action> <action class="pl.gov.eurzad.esb.custom.actions.RequestSignExchangeAction" name="request-sign-exchange-action"> <property name="senderFileBaseURI" value="/METAINF/crypto_eurzad_central_request.properties" /> <property name="receiverFileBaseURI" value="/METAINF/crypto_eurzad_central_check.properties" /> </action> <action class="com.custom.common.logging.esb.actions.SystemPrintln" name="echo-response1"> <property name="message" value="[esb-eurzad-proxy-pull-service] Message after RequestSignExchangeAction" /> <property name="printfull" value="false" /> <property name="level" value="debug" /> </action> <action class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"> .......... </action> name="proxy" <action class="com.custom.common.logging.esb.actions.SystemPrintln" name="echo-request2"> <property name="message" value="[esb-eurzad-proxy-pull-service] Message after SOAPProxy" /> <property name="printfull" value="false" /> <property name="level" value="debug" /> </action> <action class="pl.gov.eurzad.esb.custom.actions.ResponseSignExchangeAction" name="response-sign-exchange-action"> <property name="receiverFileBaseURI" Strona 25 z 29 ESB Instrukcja techniczna value="/METAINF/crypto_eurzad_central_check.properties" /> <property name="senderFileBaseURI" value="/METAINF/crypto_eurzad_central_response.properties" /> </action> <action class="com.custom.common.logging.esb.actions.SystemPrintln" name="echo-response2"> <property name="message" value="[esb-eurzad-proxy-pull-service] Message after ResponseSignExchangeAction" /> <property name="printfull" value="false" /> <property name="level" value="debug" /> </action> Akcja RequestSignExchangeAction jest wykonywana przed akcją proxującą z parametrami: receiverFileBaseURI – wskazanie na plik konfiguracyjny do weryfikacji podpisu przychodzącego do szyny żądania senderFileBaseURI – wskazanie na plik konfiguracyjny do podpisu żądania przesyłanego do systemu zewnętrznego zdefiniowanego np. w SOAPProxy Akcja ResponseSignExchangeAction jest wykonywana przed akcją proxującą z parametrami: receiverFileBaseURI – wskazanie na plik konfiguracyjny do weryfikacji podpisu odpowiedzi otrzymanej od systemu zewnętrznego zdefiniowanego np. w SOAPProxy senderFileBaseURI – wskazanie na plik konfiguracyjny do podpisu odpowiedzi z szyny ESB Dodatkowo zalecane jest przed oraz po akcji do tworzenia/weryfikacji podpisu dodać akcję typu com.custom.common.logging.esb.actions.SystemPrintln, która doda do logów z określonym poziomem logowania (parametr level) wpis z prefixem (parametr message) i aktualną kopertą SOAP 8.5.5 Konfiguracja ról dostępowych do usługi Mechanizm dostępu do usług ESB może zostać dodatkowo rozszerzony o role. Funkcjonalność ta pozwala zdefiniować grupę usług z rolą publiczną (rola public) i prywatną (rola private) oraz ograniczyć dostęp do usługi dla wybranej roli. Mechanizm ten wymaga włączonego mechanizmu WSSecurity dla usługi. Nadanie usłudze wymagalności posiadania wybranej roli pozwoli ograniczyć dostęp do wybranej usługi wyłącznie do klientów posiadających wymaganą rolę. Strona 26 z 29 ESB Instrukcja techniczna Konfiguracja roli usługi polega na dodaniu poniższego wpisu do pliku jbossesb.xml usługi wewnątrz sekcji service: <security moduleName="ESBCertLogin" rolesAllowed="public" callbackHandler="pl.gov.esb.cert.callback.handler.CertCallbackHandler"> </security> Wewnątrz atrybutu rolesAllowed należy podać nazwę wymaganej roli. Definicja klientów i ich ról znajduje się w pliku C:\comarch\szyna_esb\ jboss5.1.0.GA\server\all\conf\props\roles.properties Jako nazwę systemu należy podać Common Name (CN) certyfikatu wydanego przez LCC (Lokalne Centrum Certyfikacji), który służy do komunikacji z wykorzystaniem WSSecurity z szyną ESB, natomiast po znaku równości listę ról danego systemu. Przykładowa zawartość pliku: TESTeUrzad-Portale.wrotamazowsza.pl=public TESTEURZAD-JST.wrotamazowsza.pl=public,private OSTROANDRZGWVM1.wrotamazowsza.pl=public 9. Dodanie nowej usługi ESB Dodanie nowej usługi powinno utrzymywać schemat ogólny struktury usług przedstawiony w punkcie 8.4 Schemat ogólny struktury usługi ESB. Zgodność z przygotowanymi usługami ESB zapewni poprawne wdrożenie nowej usługi oraz integrację z przygotowanymi mechanizmami wywołania, konfiguracji i zabezpieczeń na poziomie modułów bezpieczeństwa serwera JBoss. W celu wdrożenia nowej usługi na serwer należy zbudowane archiwum usługi w postaci pliku *.esb skopiować do katalogu JBOSS_HOME/server/all/deploy i zrestartować usługę sieciową serwera JBOSS. 10. Kompilacja źródeł usług ESB Źródła zostały podzielone tematycznie w zależności od przeznaczenia usług ESB. Główna klasyfikacja pozwala odróżnić usługi centralne (services-central) od lokalnych (services-local). Kolejna klasyfikacja pozwala ustalić poziom/zakres integracji, który umożliwia usługa. Strona 27 z 29 ESB Instrukcja techniczna Szyna regionalna Zakres integracji central comarchportal eop epuap eurzad ezd gis rdp teryt wksp Szyna lokalna Zakres integracji central comarchportal eop eurzad gis plp rdp ezd teryt wksp Opis Usługi świadczone centralnie dla partnerów Integracja z aplikacją Comarch Portal w zakresie publikacji rejestrów BIP, zarządzania użytkownikami Integracja z EOP na poziomie centralnym Integracja z platformą EPUAP Integracja z EUrząd Integracja z EZD Integracja z WMS i WFS Integracja z RDP Integracja z Teryt Integracja z WKSP Opis Integracja z usługami świadczonymi przez szynę regionalną. Usługi komunikują się z centralnymi. Integracja z aplikacją Comarch Portal poprzez szynę centralną w zakresie publikacji rejestrów BIP, zarządzania użytkownikami. Usługi komunikują się z centralnymi. Integracja z EOP na poziomie lokalnym. Integracja z EUrząd na poziomie lokalnym. Usługi komunikują się z centralnymi. Integracja z WMS i WFS na poziomie lokalnym. Usługi komunikują się z centralnymi. Integracja z PLP na poziomie lokalnym. Integracja z RDP na poziomie lokalnym. Usługi komunikują się z centralnymi. Integracja z lokalnymi EZD Integracja z Teryt na poziomie lokalnym. Usługi komunikują się z centralnymi. Integracja z WKSP na poziomie lokalnym. Usługi komunikują się z centralnymi. Strona 28 z 29 ESB Instrukcja techniczna W lokalizacji głównej ROOT źródeł znajduje się plik konfiguracyjny pom.xml grupujący moduły, które zostaną zbudowane w procesie automatycznego budowania narzędziem MAVEN. Aby zbudować z wiersza poleceń systemu operacyjnego źródła usług ESB należy przejść do głównego folderu źródeł usług ESB i wywołać polecenie: mvn -P[NAZWA_PROFILU] clean install Do działania polecenia mvn należy skonfigurować narzędzie MAVEN, ustawić zmienną środowiskową JAVA_HOME na katalog domowy JDK, dodać do zmiennej środowiskowej PATH katalog bin z Mavenem oraz posiadać dostęp do repozytoriów Maven Dostępne profile: prod – profil dla środowiska produkcyjnego np.: EURZADESB.wrotamazowsza.pl prodTest – profil dla środowiska testowego produkcyjnego np.: TESTEURZAD-ESB.wrotamazowsza.pl preprod – profil dla środowiska przedprodukcyjnego Przykład dla środowiska produkcyjnego: mvn –Pprod clean install Strona 29 z 29