1. Wprowadzenie
Usługi określania stawek i usługi aukcyjne (B&A) obejmują 4 usługi, które ułatwiają kupującym i sprzedającym przeprowadzanie aukcji z użyciem Protected Audience API:
Technologie kupującego:
- Usługa interfejsu kupującego
- Usługa określania stawek
Technologie sprzedawcy:
- Usługa frontendu sprzedawcy
- Serwis aukcyjny
W tym module nauczysz się konfigurować i testować kompleksową konfigurację w środowisku lokalnym. Przewodnik powinien zająć około 1 godziny, nie licząc czasu potrzebnego na utworzenie usługi.
Nawet jeśli pracujesz tylko nad kodem po stronie kupującego lub sprzedającego, warto skonfigurować pełny proces w środowisku lokalnym, aby lepiej zrozumieć, jak działają ze sobą platformy kupującego i sprzedającego. Skonfigurowanie obu stosów pozwoli Ci później z większą pewnością przeprowadzić integrację z odpowiednim stosem kupującego lub sprzedającego innej firmy. Testowanie usług lokalnie pozwala też obniżyć koszty programowania.
W tym samouczku będziemy korzystać z aplikacji B&A Local Testing App.
Aplikacja towarzysząca do testów lokalnych zawiera różne zasoby dla kupujących i sprzedawców używane w aukcji B&A. Aplikacja udostępnia też interfejs użytkownika pod adresem http://localhost:3000, w którym możesz symulować różne konfiguracje aukcji.
2. Konfigurowanie środowiska
2.1 Przygotuj komputer z systemem Linux
Użyj lokalnego komputera z systemem Linux lub udostępnij maszynę wirtualną z systemem Linux u wybranego dostawcy usług chmurowych. Aby skrócić czas kompilacji, zalecamy co najmniej 16 rdzeni, a najlepiej 32 rdzenie lub więcej.
Pamiętaj, że będziemy wczytywać stronę HTML z http://localhost:3000 tego urządzenia. Jeśli maszyna wirtualna nie udostępnia graficznego interfejsu użytkownika, upewnij się, że port 3000 jest dostępny dla Twojego komputera lokalnego, aby można było się z nim połączyć.
2.2 Instalowanie Dockera
Do uruchamiania usług i aplikacji do testowania lokalnego używamy platformy Docker.
Do zainstalowania Dockera w środowisku testowym użyjemy skryptu ułatwiającego.
# Install Docker
> curl -fsSL https://get.docker.com -o get-docker.sh
> sudo sh get-docker.sh
# Set up sudo-less Docker
> sudo groupadd docker
> sudo usermod -aG docker $USER
> newgrp docker
# Test
> docker run hello-world
Ostrzeżenie: w przypadku konfiguracji bez sudo grupa Docker przyznaje użytkownikowi uprawnienia na poziomie roota. Więcej informacji znajdziesz w przewodniku po Dockerze bez sudo.
2.3 Uruchom aplikację towarzyszącą do testowania lokalnego
Aplikacja towarzysząca udostępnia zasoby takie jak skrypty symulujące określanie stawek lub ocenianie oraz symulowane punkty końcowe BYOS typu klucz/wartość. Aplikację należy uruchomić przed uruchomieniem usług B&A, aby można było załadować do nich zasoby.
Pobierz repozytorium aplikacji do testów lokalnych:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
W katalogu głównym repozytorium uruchom skrypt konfiguracji:
./setup
Skrypt konfiguracji utworzy sieć Dockera ba-dev, wygeneruje certyfikaty SSL i zbuduje obraz aplikacji testowej.
Po pomyślnym utworzeniu uruchom skrypt startowy:
./start
3. Tworzenie i uruchamianie B&A lokalnie
3.1 Rozwiń menu Usługi B&A
Na tym samym urządzeniu uruchomimy 2 zestawy usług B&A, więc pobierzemy repozytorium do 2 różnych folderów.
Zestaw A:
Pobierz repozytorium B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Zestaw B
Pobierz repozytorium B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Tworzenie usług
W folderze głównym każdego folderu B&A uruchom to polecenie, aby utworzyć wszystkie 4 usługi:
production/packaging/build_and_test_all_in_docker \
--service-path bidding_service \
--service-path auction_service \
--service-path buyer_frontend_service \
--service-path seller_frontend_service \
--platform gcp \
--instance local \
--no-precommit \
--no-tests \
--build-flavor non_prod \
--gcp-skip-image-upload
To polecenie utworzy instancję local wersji deweloperskiej (non_prod) dla Google Cloud (gcp) wszystkich 4 usług. W razie potrzeby zmień flagę --platform na wybranego dostawcę usług w chmurze. Więcej informacji o flagach kompilacji znajdziesz w pliku build_and_test_all_docker.
Pierwsza kompilacja może potrwać 2 godziny, jeśli używasz maszyny z 64 rdzeniami. Czas kompilacji jest proporcjonalny do liczby rdzeni. Jeśli korzystasz z maszyny z 32 rdzeniami, może to potrwać 4 godziny. Jeśli używasz maszyny 16-rdzeniowej, może to zająć 8 godzin.
Pamiętaj, że kolejne kompilacje korzystają z pamięci podręcznej, a każda z nich powinna zająć około 5–20 minut.
Dwóch programistów leniuchuje, gdy trwa kompilacja.
(Podczas pisania tych ćwiczeń z programowania spotkałem się z Randallem Munroe z xkcd i powiedziałem mu, że dodałem tu ten komiks)
3.3 Uruchamianie usług
Na potrzeby testów uruchomimy 8 usług (4 usługi na stos). Każde polecenie jest skonfigurowane tak, aby korzystać z zasobów udostępnianych przez aplikację do testowania lokalnego. Zdecydowanie zalecamy używanie menedżera okien, takiego jak tmux.
Otwórz co najmniej 8 dodatkowych okien terminala i w każdej sesji uruchom te polecenia.
Pamiętaj, że serwer aplikacji do testowania lokalnego musi już działać w osobnym procesie, ponieważ skrypty określania stawek i oceniania będą obsługiwane przez aplikację.
3.3.1 Polecenia z zestawu A
Usługa | Polecenie |
|
|
|
|
|
|
|
|
3.3.2 Polecenia Set B
Usługa | Polecenie |
|
|
|
|
|
|
|
|
3.3.2 Zmienne środowiskowe dla lokalnych skryptów startowych
Do kontrolowania zachowania podczas uruchamiania można używać tych zmiennych środowiskowych.
Zmienna środowiskowa | Dostępność | Opis |
| Wszystkie usługi | Flagi do ustawienia dla polecenia docker |
| Wszystkie usługi | Podczas testowania na komputerze lokalnym może być konieczne użycie podpisanego samodzielnie certyfikatu, który nie przejdzie weryfikacji SSL Domyślna wartość to |
| Wszystkie usługi | Poziom logów usługi. Wyższy poziom zapewnia więcej logów. 0 to najniższa, a 10 – najwyższa wartość. Domyślna wartość to |
| Usługa określania stawek | Port usługi określania stawek. Domyślna wartość to |
| Usługa określania stawek | Adres URL logiki ustalania stawek |
| Usługa określania stawek | Eksportowanie danych na potrzeby trenowania modelu |
| Usługa określania stawek | Argumenty dotyczące wnioskowania o stawkach |
| Usługa BFE | Port usługi BFE. Domyślna wartość to |
| Usługa BFE | Adres BYOS K/V kupującego |
| Usługa BFE | Adres TEE K/V kupującego |
| Usługa BFE | Adres usługi określania stawek kupującego |
| Serwis aukcyjny | Port usługi aukcyjnej. Domyślna wartość to |
| Serwis aukcyjny | Adres URL logiki oceny |
| Serwis aukcyjny | Adres URL raportu o wygranej kupującego |
| Serwis aukcyjny | Skrypt raportowania wygranej kupującego |
| Serwis aukcyjny | Skrypt raportowania wygranych kupującego w przypadku PAS |
| Usługa SFE | Port usługi SFE. Domyślna wartość to |
| Usługa SFE | Adres Serwisu aukcyjnego sprzedawcy |
| Usługa SFE | Adres BYOS K/V sprzedawcy |
| Usługa SFE | Adres TEE K/V sprzedawcy |
| Usługa SFE | Kraj pochodzenia sprzedawcy |
| Usługa SFE | Adresy BFE kupującego |
4. Testowanie za pomocą bezpiecznego wywoływania z wiersza poleceń
4.1 Testowanie SFE
Możesz też użyć narzędzia Secure Invoke, które jest częścią pakietu usług B&A, aby wywoływać usługi bezpośrednio z wiersza poleceń.
4.1.2 Ładunek SFE SelectAd
To żądanie JSON zostało wypełnione konfiguracją aukcji B&A SSP-BA z jednym sprzedawcą:
{
"auction_config": {
"seller": "https://localhost:6002",
"auction_signals": "{\"testKey\":\"someValue\"}",
"seller_signals": "{\"testKey\":\"someValue\"}",
"buyer_list": [
"https://localhost:5003",
"https://localhost:5004"
],
"per_buyer_config": {
"https://localhost:5003": { "buyer_signals": "{\"testKey\":\"someValue\"}" },
"https://localhost:5004": { "buyer_signals": "{\"testKey\":\"someValue\"}" }
}
},
"raw_protected_audience_input": {
"publisher_name": "http://localhost:4001",
"generation_id": "1210718540",
"enable_debug_reporting": true,
"raw_buyer_input": {
"https://localhost:5003": {
"interest_groups": [
{
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" },
"user_bidding_signals": "[1, 2, 3]"
}
]
},
"https://localhost:5004": {
"interest_groups": [
{
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" },
"user_bidding_signals": "[1, 2, 3]"
}
]
}
}
}
}
Zapisz plik jako sfe-test.json w folderze głównym repozytorium Set A's B&A Services(skrypt kompilacji B&A skopiuje pliki z folderu głównego repozytorium do folderu /src/workspace obrazu Dockera).
4.1.2 Wywoływanie funkcji SFE za pomocą bezpiecznego wywoływania
Uruchom to polecenie w folderze głównym repozytorium usług B&A:
DOCKER_NETWORK=ba-dev ./builders/tools/bazel-debian run //tools/secure_invoke:invoke \
-- \
-target_service=sfe \
-input_file=/src/workspace/sfe-test.json \
-host_addr=192.168.84.104:50053 \
-client_ip=192.168.84.100 \
-insecure=true
Jeśli stosy B&A są skonfigurowane prawidłowo, otrzymasz tę odpowiedź:
{"adRenderUrl":"https://localhost:5004/ad.html","interestGroupName":"dsp-x-demo","interestGroupOwner":"https://localhost:5004","score":39,"bid":39,"biddingGroups":{"https://localhost:5003":{"index":[0]},"https://localhost:5004":{"index":[0]}}}
4.2 Testowanie BFE
4.2.1 Żądanie BFE GetBids
{
"buyer_input": {
"interest_groups": {
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" }
}
},
"auction_signals": "{\"testKey\":\"someValue\"}",
"buyer_signals": "{\"testKey\":\"someValue\"}",
"seller": "https://localhost:6002",
"publisher_name": "http://localhost:4001",
"enable_debug_reporting": true,
"client_type": "CLIENT_TYPE_BROWSER"
}
Zapisz plik jako bfe-test.json w folderze głównym repozytorium usług B&A.
4.2.2 Wywołanie BFE za pomocą bezpiecznego wywołania
Uruchom to polecenie w folderze głównym repozytorium usług B&A:
DOCKER_NETWORK=ba-dev ./builders/tools/bazel-debian run //tools/secure_invoke:invoke \
-- \
-target_service=bfe \
-input_file="/src/workspace/bfe-test.json" \
-host_addr="192.168.84.102:50051" \
-client_ip=192.168.84.100 \
-insecure=true
Jeśli stosy B&A są prawidłowo skonfigurowane, BFE zwraca tę odpowiedź:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Sprawdzanie logów SFE
Otwórz terminal i sprawdź dzienniki SFE. Przyjrzymy się niektórym ważnym logom w danych wyjściowych.
4.3.1 SelectAd żąda zaszyfrowanego ładunku
W tym wyjściu dziennika SFE znajduje się zaszyfrowany ładunek wywołania navigator.getInterestGroupAdAuctionData(). Ten ładunek jest generowany przez przeglądarkę, wysyłany z tagu do SAS, a następnie przekazywany przez SAS do SFE:
I1210 21:20:47.266673 37 select_ad_reactor.cc:228] Protected auction ciphertext: AEAAIAABAAKg3OQSSLEBMR1MmJiwfOT8uef41iE+DQIvKUowsQvVcGbWZ+r17ff2r/iTbEnwqLPtpAxSTy77mi+cVV5cKjkKb4piaZnKiCDIMCyEvrQUD4+BG+HgrbUFhqiWPmQhNThvInMaHuYrXG7xushbRtvSPsVzEl6iBZcLZzD7W3CHMFK7bnJ+ufu52W6B7/8dOQ1gZW6SpwXMGNcrurTGoucbwbZRIPqCcbZk76J1gB69wrDYRo1wQ6jmBleLM36nulxbEj/sHhpQIgr895aKqEGQ3Fy+/HHPTO+zHphcX44YeF6mZ/I+WxZTDxCi1x27nI4yvzC8vI4a/giJN5XUlJZGb/fMrj3/Qly+gwJ8lbxdX+4GWTooDoS4MTtiBpJqh9wkIQ5XwfO54p8Kv6j/tk+51hOfVkOdtGwX0LvVrWT9PiJOJHa23nZ1fLg/22mTe05xdbR3WVeA+xiO9YwF4ozyCYDRUkDyWB/3k9RuaaT9H5S1szVpuOuD2nYSRpT9svmpfG4kipiS6BTPZPX2whDlukpuuoFgdiDtH6cFShNhZ5C47R0ayAvaZ1QSpOZMWfA6pdl4nhvNLpOKesKY/KFDEBzpUXRDsQWsfvmdqFl1mCeX9rOrEc9rodYVLXXhM8GPycehHmvqkccTBW6kipOQlmnSdIYaFmtWSFpUrzxajGkct3mZdTjVjOf...
4.3.2 Odszyfrowany ładunek
W tych danych wyjściowych znajdziesz odszyfrowany ładunek wywołania navigator.getInterestGroupAdAuctionData():
I1210 21:20:47.267590 37 select_ad_reactor.cc:347] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Decoded BuyerInput:
https://localhost:5003 : {interest_groups { name: "dsp-x-demo" bidding_signals_keys: "demo-key" browser_signals { join_count: 1 recency: 7 prev_wins: "[]" } }}
4.3.3 GetBids prośba do BFE
Żądanie GetBids jest wysyłane z SFE do BFE:
I1210 21:20:47.267710 37 select_ad_reactor.cc:751] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Getting bid from a BFE
I1210 21:20:47.267729 37 buyer_frontend_async_client.cc:52] Raw request:
buyer_input {
interest_groups {
name: "dsp-x-demo"
bidding_signals_keys: "demo-key"
browser_signals {
join_count: 1
recency: 7
prev_wins: "[]"
}
}
}
auction_signals: "{\"testKey\":\"someValue\"}"
buyer_signals: "{\"testKey\": \"someValue\"}"
seller: "https://localhost:6002"
publisher_name: "localhost"
enable_debug_reporting: true
log_context {
generation_id: "c2824bfc-d515-4a1a-9de9-7660ad963252"
}
client_type: CLIENT_TYPE_BROWSER
4.3.4 GetBids odpowiedź z BFE
BFE odpowiada, podając stawkę:
I1210 21:20:47.282549 41 select_ad_reactor.cc:856] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Received response from a BFE ...
I1210 21:20:47.282552 41 select_ad_reactor.cc:859] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252)
GetBidsResponse:
bids {
bid: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
}
update_interest_group_list {
}
4.3.5 ScoreAds żądanie do usługi aukcyjnej;
Po otrzymaniu stawek SFE wywołuje w usłudze aukcji wywołanie ScoreAds dla każdej stawki:
I1210 21:20:47.287898 18 select_ad_reactor.cc:1280] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) ScoreAdsRawRequest:
ad_bids {
bid: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
interest_group_owner: "https://localhost:5003"
join_count: 1
k_anon_status: true
}
seller_signals: "{\"testKey\":\"someValue\"}"
auction_signals: "{\"testKey\":\"someValue\"}"
scoring_signals: "{\"renderUrls\":{\"https://localhost:5003/ad.html\":[1,2,3],\"https://localhost:5004/ad.html\":[1,2,3]}}"
publisher_hostname: "localhost"
enable_debug_reporting: true
log_context {
generation_id: "c2824bfc-d515-4a1a-9de9-7660ad963252"
}
per_buyer_signals {
key: "https://localhost:5003"
value: "{\"testKey\": \"someValue\"}"
}
per_buyer_signals {
key: "https://localhost:5004"
value: "{\"testKey\": \"someValue\"}"
}
seller: "https://localhost:6002"
4.3.6 ScoreAds odpowiedź z usługi aukcyjnej
Usługa aukcyjna sprzedawcy odpowiada, podając wynik atrakcyjności:
I1210 21:20:47.298029 33 default_async_grpc_client.h:134] Decrypting the response ...
I1210 21:20:47.298100 33 default_async_grpc_client.h:152] Decryption/decoding of response succeeded: ad_score {
desirability: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
buyer_bid: 9
interest_group_owner: "https://localhost:5003"
win_reporting_urls {
top_level_seller_reporting_urls {
}
}
ad_type: AD_TYPE_PROTECTED_AUDIENCE_AD
}
4.3.7 Odpowiedź SelectAd z SFE
Odpowiedź SFE SelectAd jest szyfrowana i wysyłana do SAS:
I1210 21:20:47.298428 33 select_ad_reactor.cc:1413] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Encrypted SelectAdResponse:
auction_result_ciphertext: "\023\233\252\321\000\331M\327\216\201S\332kl?\322\255\247\312\375h\007W\367\016\366FR\364\275\377\326\027h\204\203\265\t\271-\333\266\tH\342\033F\001k\211C\026V\013\271\255(\236\273\353\260\275\007\346\027\340?\005|\235S\244\265\2563U\246\322\177%\200/\3175\034 \020\024\362\345\3263\356F.s\261\005\231\262Z\000\330x\0230\335>\"\217\254\010\254\330>\206\007\274\235\037`\370W\032\207\356\367\206\026\341.i\"$\370\367\2554i\247\354\304e\306\2466S\337\321w\327+!\316\035:\002\231\246\362\366qm\211\000\013\343\345\224{\365py\361\374\316\202\217-\244\302\331\216D\025W#.\304nH\235\315\311<#\342\344\324\257\354\2441\251\312\320\226\342\021\377>3`\347/\350\254h\306\273\023\365\340@\321\2412\254\323\213\0137,\013n\220|\211\323/\030)\314\263\223\355>\254\312aa`!\375\335\023Z\234p\206\037\001\355\261{$\025+\341\275\327Ny\342\342\264=\376\2138\224\026\2058\251\020\202\245*46\023\307)K\342\364k<\2104r\247\034\216}\034\001\374\215\363\210\026\275\371S>\031;f.b\260\363\257.\255\023I\341A\237*_T\355\262\005\344L\336D%\327\267@\302$\300\340\203c\350|\337>C\275c\260\202o\315xp\260\257\241\305U\nK\033\274L6\025\350\373a:\253\212&>p\210\215\017&^\327\005_\037\020\212\362\351\341\231@g\372\0037\275b:)\207\303d\243?\261O\266\343\214\200\004\247\372\022S\326\200\037\330\252r\257+e\273[\231\202\3625{\330\213\240\370\245\\\214\350/\313\ty/\004\313\0304k\223\354\374\305\233\264\224K\344\241\251\322?\323q6\314D\027\200\203\035]\023O\306\230?\203\237:\254\305\265\332\330\2641l\322\020\022\330O-\242\207>Q\364_{F\235\353tk\207\035\205\005\221\373\207\0143\035\014\322\240H\220\347%\262f\347\017\352\273\265\231\014\204\r\312\254z\000\340&\354\222\323\245\356\217(i\246"
5. Testowanie za pomocą lokalnej aplikacji testowej w przeglądarce
5.1 Otwieranie Chrome
Przeczytaj artykuł o Chromium na temat uruchamiania Chrome z wiersza poleceń i uruchom przeglądarkę z tymi flagami:
google-chrome --enable-privacy-sandbox-ads-apis --disable-features=EnforcePrivacySandboxAttestations,FledgeEnforceKAnonymity --enable-features=FledgeBiddingAndAuctionServerAPI,FledgeBiddingAndAuctionServer:FledgeBiddingAndAuctionKeyURL/https%3A%2F%2Fstorage.googleapis.com%2Fba-test-buyer%2Fcoordinator-test-key.json
Flaga jest ustawiona tak, aby wczytywać klucz koordynatora testowego, który hostujemy pod adresem https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json.
Ważne: zanim otworzysz Chrome z wiersza poleceń za pomocą flag B&A, upewnij się, że wszystkie wystąpienia Chrome zostały zamknięte. Aby zamknąć wszystkie procesy Chrome, spróbuj uruchomić ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9 z wiersza poleceń.
5.2 Otwórz interfejs aplikacji do testów lokalnych
Interfejs aplikacji znajdziesz pod adresem http://localhost:3000 w instancji przeglądarki Chrome otwartej z flagami. Jeśli używasz maszyny wirtualnej z inną nazwą hosta, dokładny adres, który odwiedzasz, może być inny.
Zrzut ekranu aplikacji do testowania lokalnego otwartej w przeglądarce
W górnym wierszu aplikacji panel „Controls” (Elementy sterujące) zawiera przyciski do symulowania różnych konfiguracji aukcji. Pozostałe 2 panele zawierają elementy iframe z witryn reklamodawcy i wydawcy.
Zrzut ekranu przedstawiający grupy zainteresowań w Narzędziach deweloperskich w Chrome.
Następnie kliknij przyciski w panelu „Elementy sterujące”, aby symulować różne typy aukcji.
Jeśli usługi B&A i aplikacja do testowania lokalnego są prawidłowo skonfigurowane, powyższa reklama zostanie wyrenderowana w panelu „Publisher site iframe” (Element iframe witryny wydawcy).
5.3 Konfiguracja aukcji aplikacji do testów lokalnych
W aplikacji towarzyszącej do testowania lokalnego znajdują się te uczestniczące strony, które są rozróżniane na podstawie numeru portu (inny port jest traktowany jako pochodzący z innej domeny):
Uczestnik | Opis | Port |
Reklamodawca | Wczytuje tagi DSP na stronie. |
|
Wydawca | Wczytuje tagi SSP na stronie. |
|
| Kupujący na urządzeniu |
|
| Kupujący na urządzeniu |
|
| Kupujący B&A |
|
| Kupujący B&A |
|
| Sprzedawca najwyższego poziomu |
|
| Sprzedawca oferujący tylko produkty na urządzeniu |
|
| Sprzedawca korzystający tylko z usługi B&A |
|
| Sprzedawca w trybie mieszanym |
|
Dostępne są 4 platformy DSP:
DSP-AiDSP-Buczestniczą w aukcjach na urządzeniu.DSP-XiDSP-Yuczestniczyć w aukcjach z określaniem stawek i automatyzacją.
Są 4 platformy SSP, a każdy sprzedawca stosuje inną konfigurację aukcji:
SSP-ODprzeprowadza aukcję tylko na urządzeniu.SSP-BAprzeprowadza aukcję tylko z licytowaniem ceny minimalnej.SSP-MIXprzeprowadza aukcję w trybie mieszanym.SSP-TOPprzeprowadza aukcję wielu sprzedawcówSSP-OD/BA/MIXuczestniczyć jako sprzedawcy komponentów w aukcji wielu sprzedawcówSSP-TOP;
Pełną architekturę znajdziesz na schemacie projektu.
5.4 Konfiguracja usług określania stawek i aukcji
W tym ćwiczeniu z programowania uruchomimy obok siebie 2 zestawy testów porównawczych.
Ustaw | Usługa | Uczestnik |
|
Zestaw A | Usługa określania stawek |
|
|
Usługa BFE |
|
| |
Serwis aukcyjny |
|
| |
Usługa SFE |
|
| |
Zestaw B | Usługa określania stawek |
|
|
Usługa BFE |
|
| |
Serwis aukcyjny |
|
| |
Usługa SFE |
|
| |
Promująca aplikację | Aplikacja do testów lokalnych | Wszystkie |
|
- W grupie A usługi kupującego są używane przez
DSP-X, a usługi sprzedającego – przezSSP-BA. - W grupie B z usług kupującego korzysta
DSP-Y, a z usług sprzedającego –SSP-MIX.
Do komunikacji między aplikacją do testowania lokalnego a usługami B&A używana jest sieć pomostowa Docker. Sieć pomostowa ba-dev jest tworzona przez skrypt konfiguracji aplikacji do testowania lokalnego. Usługom B&A przypisywany jest adres IP w podsieci 192.168.84.0.
Na przykład, gdy dzwonisz do SFE zestawu A z aplikacji, używany jest adres sieciowy 192.168.84.104:50053. Gdy wczytujesz skrypt symulacji ustalania stawek z platformy DSP-X do BFE, używany jest znak https://192.168.84.100:5003/generate-bid.js.
6. Podsumowanie
Mamy nadzieję, że udało Ci się już zapoznać z uruchamianiem lokalnie na komputerze stosu usług B&A i lepiej zrozumieć, jak te usługi komunikują się ze sobą.
6.1. Pomoc techniczna
- Jeśli masz pytanie dotyczące konfigurowania aplikacji do testowania lokalnego, zgłoś problem w repozytorium LTA.
- Jeśli masz pytanie dotyczące usług ustalania stawek i aukcji, zgłoś problem w repozytorium usług ustalania stawek i aukcji.
6.2 Więcej informacji
- Dowiedz się więcej o architekturze B&A w przypadku internetu
- Dowiedz się więcej o integracji sprzedawcy z B&A w przypadku witryn