1. Giới thiệu
Dịch vụ đặt giá thầu và đấu giá (B&A) bao gồm 4 dịch vụ dành cho người mua và người bán để hỗ trợ phiên đấu giá Protected Audience:
Ngăn xếp của người mua:
- Dịch vụ người mua
- Dịch vụ đặt giá thầu
Ngăn xếp của người bán:
- Dịch vụ phụ trợ của người bán
- Dịch vụ đấu giá
Lớp học lập trình này hướng dẫn bạn cách thiết lập và kiểm thử chế độ thiết lập toàn diện trong môi trường cục bộ. Theo dự kiến, hướng dẫn này sẽ mất khoảng 1 giờ, không bao gồm thời gian tạo dịch vụ ban đầu.
Mặc dù bạn có thể chỉ làm việc trên mã phía người mua hoặc mã phía người bán, nhưng việc thiết lập quy trình toàn diện trong môi trường cục bộ sẽ giúp bạn hiểu rõ hơn về cách các ngăn xếp của người mua và người bán hoạt động với nhau. Bằng cách thiết lập cả hai ngăn xếp, sau này bạn có thể tự tin hơn khi tích hợp với ngăn xếp người mua hoặc người bán tương ứng của bên khác. Việc kiểm thử các dịch vụ tại địa phương cũng giúp bạn tiết kiệm chi phí phát triển.
Trong lớp học lập trình này, chúng ta sẽ sử dụng Ứng dụng kiểm thử cục bộ B&A làm hướng dẫn.
Ứng dụng kiểm thử tại địa phương đi kèm lưu trữ nhiều tài nguyên dành cho người mua và người bán được dùng trong phiên đấu giá B&A. Ứng dụng này cũng cung cấp một giao diện người dùng tại http://localhost:3000, nơi bạn có thể mô phỏng nhiều cấu hình đấu giá.
2. Thiết lập môi trường
2.1 Chuẩn bị máy Linux
Sử dụng máy Linux cục bộ hoặc cung cấp một máy ảo Linux của nhà cung cấp dịch vụ đám mây mà bạn chọn. Để cải thiện thời gian tạo bản dựng, bạn nên dùng tối thiểu 16 lõi và tốt nhất là 32 lõi trở lên.
Xin lưu ý rằng chúng ta sẽ tải một trang HTML từ http://localhost:3000 của máy này. Nếu VM không cung cấp GUI, hãy đảm bảo rằng máy cục bộ của bạn có thể truy cập vào cổng 3000 để bạn có thể kết nối với cổng này.
2.2 Cài đặt Docker
Chúng tôi sử dụng Docker để chạy các dịch vụ và ứng dụng kiểm thử cục bộ.
Chúng ta sẽ dùng tập lệnh tiện lợi để cài đặt Docker trong môi trường kiểm thử.
# 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
Cảnh báo: Với chế độ thiết lập không cần sudo, nhóm Docker sẽ cấp đặc quyền cấp gốc cho người dùng. Hãy đọc hướng dẫn về Docker không cần sudo để tìm hiểu thêm.
2.3 Khởi động Ứng dụng kiểm thử cục bộ đồng hành
Ứng dụng đồng hành cung cấp các tài nguyên như tập lệnh đặt giá thầu hoặc tính điểm mô phỏng và các điểm cuối K/V BYOS mô phỏng. Bạn nên khởi động ứng dụng trước khi chạy các dịch vụ B&A để có thể tải tài nguyên vào các dịch vụ.
Kéo kho lưu trữ Ứng dụng kiểm thử cục bộ xuống:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
Từ gốc của kho lưu trữ, hãy chạy tập lệnh thiết lập:
./setup
Tập lệnh thiết lập sẽ tạo mạng ba-dev Docker, tạo chứng chỉ SSL và tạo hình ảnh ứng dụng kiểm thử.
Sau khi quá trình tạo bản dựng thành công, hãy chạy tập lệnh khởi động:
./start
3. Tạo và chạy B&A cục bộ
3.1 Kéo xuống Dịch vụ B&A
Chúng ta sẽ chạy 2 nhóm Dịch vụ B&A trên cùng một máy, vì vậy, chúng ta sẽ kéo kho lưu trữ xuống 2 thư mục khác nhau.
Tập hợp A:
Kéo kho lưu trữ B&A xuống:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Bộ B
Kéo kho lưu trữ B&A xuống:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Xây dựng các dịch vụ
Từ thư mục gốc của mỗi thư mục B&A, hãy chạy lệnh sau để tạo cả 4 dịch vụ:
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
Lệnh này sẽ tạo một phiên bản local của bản dựng phát triển (non_prod) cho Google Cloud (gcp) của cả 4 dịch vụ. Cập nhật cờ --platform thành nhà cung cấp dịch vụ đám mây mà bạn chọn nếu cần. Để tìm hiểu thêm về cờ bản dựng, hãy kiểm tra tệp build_and_test_all_docker.
Quá trình tạo ban đầu có thể mất 2 giờ nếu bạn sử dụng máy có 64 lõi và thời gian tạo sẽ tăng tuyến tính theo số lõi. Nếu bạn đang sử dụng máy có 32 lõi, thì quá trình này có thể mất 4 giờ. Nếu đang dùng máy 16 lõi, có thể mất 8 giờ.
Lưu ý rằng các bản dựng tiếp theo sẽ sử dụng bộ nhớ đệm và mỗi bản dựng sẽ mất khoảng 5 đến 20 phút.
Truyện tranh xkcd có liên quan:
Hai lập trình viên đang trốn việc trong khi bản dựng đang chạy.
(Tôi đã gặp Randall Munroe của xkcd khi viết lớp học lập trình này và nói với anh ấy rằng tôi đã thêm truyện tranh này vào đây)
3.3 Chạy các dịch vụ
Đối với hoạt động kiểm thử, chúng ta sẽ chạy 8 dịch vụ (4 dịch vụ cho mỗi ngăn xếp). Mỗi lệnh được thiết lập để sử dụng các tài nguyên do Ứng dụng kiểm thử cục bộ cung cấp. Bạn nên sử dụng một trình quản lý cửa sổ như tmux.
Mở ít nhất 8 cửa sổ dòng lệnh khác và chạy các lệnh sau trong mỗi phiên.
Xin lưu ý rằng máy chủ Ứng dụng kiểm thử cục bộ phải đang chạy trong một quy trình riêng biệt, vì các tập lệnh đặt giá thầu và tính điểm sẽ do ứng dụng cung cấp.
3.3.1 Thiết lập các lệnh A
Dịch vụ | Lệnh |
Dịch vụ đặt giá thầu |
|
|
|
|
|
|
|
3.3.2 Lệnh Set B
Dịch vụ | Lệnh |
Dịch vụ đặt giá thầu |
|
|
|
|
|
|
|
3.3.2 Biến môi trường cho tập lệnh khởi động cục bộ
Bạn có thể dùng các biến môi trường sau đây để kiểm soát hành vi khởi động.
Biến môi trường | Phạm vi cung cấp | Mô tả |
| Tất cả dịch vụ | Các cờ cần đặt cho lệnh docker |
| Tất cả dịch vụ | Khi kiểm thử trên máy cục bộ, bạn có thể cần sử dụng một chứng chỉ tự ký không vượt qua được quy trình kiểm tra xác minh ngang hàng SSL của Giá trị mặc định là |
| Tất cả dịch vụ | Cấp độ của nhật ký dịch vụ. Cấp độ càng cao thì càng có nhiều nhật ký. 0 là mức thấp nhất và 10 là mức cao nhất. Giá trị mặc định là |
| Dịch vụ đặt giá thầu | Cổng của Dịch vụ đặt giá thầu. Mặc định là |
| Dịch vụ đặt giá thầu | URL của logic đặt giá thầu |
| Dịch vụ đặt giá thầu | Truy xuất dữ liệu để huấn luyện mô hình |
| Dịch vụ đặt giá thầu | Đối số cho suy luận về chiến lược đặt giá thầu |
| Dịch vụ BFE | Cổng của dịch vụ BFE. Mặc định là |
| Dịch vụ BFE | Địa chỉ K/V BYOS của người mua |
| Dịch vụ BFE | Địa chỉ K/V TEE của người mua |
| Dịch vụ BFE | Địa chỉ Dịch vụ đặt giá thầu của người mua |
| Dịch vụ đấu giá | Cổng của Dịch vụ đấu giá. Mặc định là |
| Dịch vụ đấu giá | URL của logic tính điểm |
| Dịch vụ đấu giá | URL báo cáo lượt giành chiến thắng của người mua |
| Dịch vụ đấu giá | Tập lệnh báo cáo lượt hiển thị giành được quyền mua của người mua |
| Dịch vụ đấu giá | Tập lệnh báo cáo lượt thắng của người mua cho PAS |
| Dịch vụ SFE | Cổng của dịch vụ SFE. Mặc định là |
| Dịch vụ SFE | Địa chỉ Dịch vụ đấu giá của người bán |
| Dịch vụ SFE | Địa chỉ K/V BYOS của người bán |
| Dịch vụ SFE | Địa chỉ K/V TEE của người bán |
| Dịch vụ SFE | Quốc gia xuất xứ của người bán |
| Dịch vụ SFE | Địa chỉ BFE của người mua |
4. Kiểm thử bằng Secure Invoke từ dòng lệnh
4.1 Kiểm thử SFE
Bạn cũng có thể sử dụng công cụ Secure Invoke có trong gói B&A Services để gọi trực tiếp các dịch vụ từ dòng lệnh.
4.1.2 Tải trọng SFE SelectAd
Yêu cầu JSON sau đây đã được điền sẵn thông tin về chế độ thiết lập phiên đấu giá B&A một người bán của SSP-BA:
{
"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]"
}
]
}
}
}
}
Lưu tệp dưới dạng sfe-test.json trong thư mục gốc của kho lưu trữ B&A Services của Nhóm A(tập lệnh tạo B&A sẽ sao chép các tệp trong thư mục gốc của kho lưu trữ vào thư mục /src/workspace của hình ảnh Docker).
4.1.2 Gọi SFE bằng Secure Invoke
Chạy lệnh sau từ thư mục gốc của kho lưu trữ B&A Services:
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
Nếu thiết lập các ngăn xếp B&A đúng cách, bạn sẽ nhận được phản hồi thành công sau:
{"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 Kiểm tra hiệu quả lọc vi khuẩn (BFE)
4.2.1 Yêu cầu 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"
}
Lưu tệp dưới dạng bfe-test.json trong thư mục gốc của kho lưu trữ B&A Services.
4.2.2 Gọi BFE bằng Secure Invoke
Chạy lệnh sau từ thư mục gốc của kho lưu trữ B&A Services:
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
Nếu các ngăn xếp B&A được thiết lập đúng cách, BFE sẽ trả về phản hồi sau:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Kiểm tra nhật ký SFE
Truy cập vào thiết bị đầu cuối và kiểm tra nhật ký SFE. Chúng ta sẽ xem xét một số nhật ký đáng chú ý trong đầu ra.
4.3.1 Tải trọng đã mã hoá của yêu cầu SelectAd
Trong đầu ra nhật ký SFE này, chúng ta tìm thấy tải trọng được mã hoá của lệnh gọi navigator.getInterestGroupAdAuctionData(). Tải trọng này do trình duyệt tạo, được gửi từ thẻ đến SAS, sau đó SAS chuyển tiếp tải trọng này đến 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 Tải trọng đã giải mã
Trong đầu ra này, chúng ta tìm thấy tải trọng đã giải mã của lệnh gọi 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 yêu cầu đến BFE
Yêu cầu GetBids được gửi từ SFE đến 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 phản hồi từ BFE
BFE phản hồi bằng giá thầu:
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 yêu cầu đối với Dịch vụ đấu giá
Sau khi nhận được giá thầu, SFE sẽ thực hiện lệnh gọi ScoreAds đến Dịch vụ đấu giá cho từng giá thầu:
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 Phản hồi ScoreAds từ Dịch vụ đấu giá
Dịch vụ đấu giá của người bán phản hồi bằng điểm mức độ phù hợp:
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 Phản hồi SelectAd từ SFE
Phản hồi SelectAd của SFE được mã hoá và gửi đến 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. Kiểm thử bằng Ứng dụng kiểm thử cục bộ trên trình duyệt
5.1 Mở Chrome
Đọc bài viết về Chromium về cách khởi động Chrome từ dòng lệnh và khởi động Chrome bằng các cờ sau:
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
Cờ này được đặt để tải khoá điều phối mô phỏng mà chúng tôi đã lưu trữ tại https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json
Quan trọng: Đảm bảo bạn đã thoát hoàn toàn khỏi tất cả các phiên bản Chrome trước khi mở Chrome từ dòng lệnh bằng các cờ B&A. Để thoát khỏi tất cả các quy trình của Chrome, hãy thử chạy ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9 từ dòng lệnh.
5.2 Truy cập vào giao diện người dùng của Ứng dụng kiểm thử cục bộ
Bạn có thể tìm thấy giao diện người dùng của ứng dụng tại http://localhost:3000 trong phiên bản trình duyệt Chrome mà bạn đã mở bằng các cờ. Địa chỉ chính xác mà bạn truy cập có thể khác nếu bạn đang sử dụng một máy ảo có tên máy chủ khác.
Ảnh chụp màn hình ứng dụng kiểm thử cục bộ đang được truy cập trong một trình duyệt
Trong hàng trên cùng của ứng dụng, bảng điều khiển "Controls" (Điều khiển) chứa các nút để mô phỏng nhiều cấu hình đấu giá. Hai bảng điều khiển còn lại chứa iframe từ trang web của nhà quảng cáo và nhà xuất bản.
Ảnh chụp màn hình về các nhóm lợi ích trong Công cụ của Chrome cho nhà phát triển.
Sau đó, hãy nhấp vào các nút trong bảng điều khiển "Controls" (Điều khiển) để mô phỏng nhiều loại phiên đấu giá.

Nếu B&A Services và Local Testing App được thiết lập đúng cách, thì quảng cáo trước đó sẽ được hiển thị trong bảng điều khiển "Publisher site iframe" (iframe trang web của nhà xuất bản).
5.3 Cấu hình phiên đấu giá của Ứng dụng kiểm thử cục bộ
Trong ứng dụng kiểm thử cục bộ đi kèm, các thành phần sau được lưu trữ, phân biệt theo số cổng (một cổng khác được coi là khác nguồn):
Người hoặc tổ chức tham gia | Mô tả | Cổng |
Nhà quảng cáo | Tải các thẻ DSP trên trang |
|
Nhà xuất bản | Tải các thẻ SSP trên trang |
|
| Người mua trên thiết bị |
|
| Người mua trên thiết bị |
|
| Người mua B&A |
|
| Người mua B&A |
|
| Người bán cấp cao nhất |
|
| Chỉ người bán trên thiết bị |
|
| Người bán chỉ có B&A |
|
| Người bán kết hợp |
|
Có 4 DSP:
DSP-AvàDSP-Btham gia các phiên đấu giá trên thiết bịDSP-XvàDSP-Ytham gia các phiên đấu giá B&A
Có 4 SSP và mỗi người bán chạy một cấu hình đấu giá khác nhau:
SSP-ODchạy một phiên đấu giá chỉ diễn ra trên thiết bịSSP-BAchạy phiên đấu giá chỉ có giá thầu và giá muaSSP-MIXchạy phiên đấu giá ở chế độ kết hợpSSP-TOPchạy phiên đấu giá nhiều người bánSSP-OD/BA/MIXtham gia với tư cách là người bán thành phần của phiên đấu giá nhiều người bán củaSSP-TOP
Để xem toàn bộ cấu trúc, hãy xem sơ đồ thiết kế.
5.4 Cấu hình dịch vụ Đặt giá thầu và Phiên đấu giá
Trong lớp học lập trình này, chúng ta sẽ chạy 2 nhóm thử nghiệm A/B song song với nhau.
Đặt | Dịch vụ | Người hoặc tổ chức tham gia | Địa chỉ mạng |
Bộ A | Dịch vụ đặt giá thầu |
|
|
Dịch vụ BFE |
|
| |
Dịch vụ đấu giá |
|
| |
Dịch vụ SFE |
|
| |
Bộ B | Dịch vụ đặt giá thầu |
|
|
Dịch vụ BFE |
|
| |
Dịch vụ đấu giá |
|
| |
Dịch vụ SFE |
|
| |
Ứng dụng | Ứng dụng kiểm thử cục bộ | Tất cả |
|
- Trong Nhóm A,
DSP-Xsử dụng các dịch vụ của người mua vàSSP-BAsử dụng các dịch vụ của người bán - Trong Nhóm B,
DSP-Ysử dụng các dịch vụ của người mua vàSSP-MIXsử dụng các dịch vụ của người bán
Để giao tiếp giữa Ứng dụng kiểm thử cục bộ và Dịch vụ B&A, mạng cầu nối Docker sẽ được sử dụng. Mạng cầu nối ba-dev được tạo bằng tập lệnh thiết lập của Ứng dụng kiểm thử cục bộ. Các dịch vụ B&A được chỉ định một địa chỉ IP trong mạng con của 192.168.84.0.
Ví dụ: khi bạn gọi SFE của Tập hợp A từ ứng dụng, địa chỉ mạng của 192.168.84.104:50053 sẽ được dùng. Khi bạn đang tải tập lệnh đặt giá thầu mô phỏng từ DSP-X vào BFE, https://192.168.84.100:5003/generate-bid.js sẽ được sử dụng.
6. Tóm tắt
Đến đây, chúng tôi hy vọng bạn đã làm quen với việc chạy ngăn xếp B&A Services cục bộ trên máy của mình và hiểu rõ hơn về cách các dịch vụ giao tiếp với nhau.
6.1. Hỗ trợ kỹ thuật
- Nếu bạn có thắc mắc về cách thiết lập Ứng dụng kiểm thử cục bộ, hãy mở một vấn đề trong kho lưu trữ LTA.
- Nếu bạn có câu hỏi về Dịch vụ đặt giá thầu và phiên đấu giá, hãy mở một vấn đề trong kho lưu trữ Dịch vụ đặt giá thầu và phiên đấu giá.
6.2 Tìm hiểu thêm
- Tìm hiểu thêm về cấu trúc B&A cho web
- Tìm hiểu thêm về việc tích hợp người bán với B&A cho web