Rất nhiều lớp trong một hoặc nhiều dịch vụ? (và tại sao)


13

Tôi có một câu hỏi hóc búa mà tôi nhận được lời khuyên hỗn hợp về cách đi. Do đó, id muốn đưa nó vào GIS-SE cho một số câu trả lời hợp lý.

Kịch bản:

  • Khách hàng có một ứng dụng bản đồ web. Không muốn chia thành nhiều ứng dụng nhỏ hơn. Mặc dù điều này đi ngược lại với cách tiếp cận hiện đại dành cho bản đồ trên web, (nghĩa là rất nhiều ứng dụng bản đồ web tập trung trên một bản đồ web chính) Tôi tin tưởng mạnh mẽ rằng đối với một số người dùng, cố gắng sao chép ứng dụng GIS trên web là ok ( đôi khi ).

  • Khách hàng đã lưu trữ nhiều lớp sơ đồ cơ sở của mình vào các dịch vụ riêng biệt.

  • Khách hàng vẫn yêu cầu thêm 600-700 lớp trong dịch vụ bản đồ động ...
  • Dịch vụ sẽ được xuất bản với tất cả các lớp này đã tắt .
  • Người ta không dự đoán rằng người dùng sẽ bật hơn 10-40 lớp cùng một lúc.

Tôi tưởng tượng phản ứng ban đầu của bạn về điều này tương tự như của tôi (600+?! WTF?!)

Tuy nhiên - yêu cầu được đặt trong đá và tại sao không? Ứng dụng ArcIMS trước đây của họ có chức năng tương tự, vậy tại sao sản phẩm ArcGIS Server mới hơn này không thể làm như vậy? Người dùng có khả năng cần có khả năng so sánh chéo và thực hiện phân tích trên toàn bộ phạm vi của các lớp, ngay cả khi các lớp thuộc về các bộ phận khác.

Trước khi bạn đi đến kết luận, khách hàng là quản trị viên ArcGIS Server.
Họ đã quản lý 600 lớp theo tất cả các quy tắc thực hành tốt nhất: ví dụ: phạm vi tỷ lệ kết hợp với truy vấn định nghĩa; chú thích về ghi nhãn; khái quát các lớp phức tạp ở quy mô nhỏ; xuất bản dưới dạng MSD; Vân vân

Vấn đề :

Cách tiếp cận tốt hơn ở đây là gì?

  1. Xuất bản tất cả 600 lớp vào một dịch vụ bản đồ động

  2. Chia các lớp thành các nhóm hợp lý (thủy văn, quy hoạch, sinh thái, tiện ích, v.v.)

Nếu bạn đi với # 1, và bạn có một vài lớp phức tạp được bật. Nếu bạn muốn bật một lớp điểm đơn giản, thì ArcGIS Server vẫn sẽ phải hiển thị toàn bộ các lớp được hiển thị lại.

Nếu bạn đi với số 2, mỗi lần bạn đưa ra yêu cầu, ứng dụng web có thể phải thực hiện một số yêu cầu GET cho Xuất khẩu từ các dịch vụ bản đồ riêng lẻ (điều này có tệ không, hoặc nó tạo thêm tải cho ArcGIS Server trên # 1 ?)

Và sau đó, điều này dẫn đến cấu hình & điều chỉnh để đảm bảo mọi thứ nhanh nhất có thể. Chúng tôi có thể mở rộng mặt sau của ArcGIS Server thành nhiều máy chủ và có một số phần cứng tốt để sử dụng.

Nếu bạn đi với số 1, bạn có thể ném số trường hợp tối đa mà AGS của bạn có thể xử lý.

Nếu bạn đi với số 2, tôi giả sử bạn đánh giá hiệu suất của các dịch vụ bản đồ (kiểm tra tải và xem xét thời gian chờ) và giải quyết các trường hợp tối thiểu / tối đa phù hợp để đảm bảo không có một dịch vụ nào là 'liên kết yếu'.

Tôi hiện đang nghiêng về cách tiếp cận số 2, vì đầu tôi vẫn nói với tôi rằng có 600 lớp trong một dịch vụ là điên rồ, nhưng nếu tất cả chúng đều bị tắt theo mặc định, thực sự không có vấn đề gì.

Rất muốn được nghe những suy nghĩ của bạn. Hãy cho tôi biết nếu bạn cần thêm thông tin qua các bình luận, nhưng không tìm kiếm câu trả lời như 'sử dụng ứng dụng máy tính để bàn' hoặc 'giáo dục họ làm những việc khác nhau'


Từ các cuộc thảo luận trong các ý kiến, tôi đã không đề cập đến một sự xem xét khác. Ứng dụng mà dịch vụ sẽ được sử dụng trong phạm vi, có khả năng bảo mật cấp lớp (ở cấp ứng dụng). Do đó, nhóm người dùng (khá lớn) được gán cho một vai trò cụ thể và vai trò đó sẽ có quyền truy cập vào toàn bộ 600 lớp. Các vai trò khác sẽ bị hạn chế.


Cá nhân, tôi đã đặt ra một câu hỏi cho Thủ tướng nêu ra vấn đề, tư vấn về cách thực hành tốt nhất, tư vấn một lối thoát, sau đó để nó trong tay họ. Vào cuối ngày, ngay khi bạn có ai đó nói: 'nhưng đó là như vậy', bạn có trong tay đầy đủ. Trong tình huống này, tôi sẽ làm như trên, sau đó bạn đã chuyên nghiệp, hoàn thành công việc yuor và phần còn lại tùy thuộc vào họ. Ngoài ra, tôi cũng khuyên bạn nên bao gồm bất kỳ ai giàu có và nổi tiếng về nơi bạn làm việc, qua email, để đảm bảo lời khuyên được đưa ra, và mọi người đều biết lời khuyên đó là gì và ai đã đưa ra lời khuyên đó.
Lông

Bạn không nói loại ứng dụng web sẽ được sử dụng để duyệt các lớp, nhưng tôi cho rằng đó là loại trình mở. Trong trường hợp đó, hãy nhớ rằng trình duyệt cũng có thể gặp sự cố, vì nó sẽ không phát hành nhiều hơn một vài (từ 2 đến 6) yêu cầu đồng thời cho cùng một máy chủ (bao gồm XHR, css và mọi thứ). Xem bài viết này để biết chi tiết và một số lựa chọn thay thế (tôi thường dùng nhiều tên khi CNTT hợp tác): stevesouders.com/blog/2008/03/20/ Lỗi
unicoletti

@Herry - Tôi thực sự nghĩ rằng chúng tôi có thể đáp ứng các yêu cầu của máy khách với ArcGIS Server, và mặc dù nó đẩy các giới hạn về những gì có thể với AGS, nhưng nó vẫn có thể, và chúng tôi vẫn có thể rút lại lời khuyên trước đó để phá vỡ ứng dụng vào nhiều ứng dụng.
Simon

1
Tôi biết điều đó là có thể, tôi đã làm việc với những khách hàng cũng làm như vậy, nhưng tôi không nghĩ đó là điều nên làm, đó là những điều khác biệt. Nếu họ quyết định có 10 khách hàng muốn có tất cả 600 lớp, cùng một lúc, bất kể bạn đang chạy AGS trên cái gì, nó sẽ rơi xuống
Hairy

Câu trả lời:


8

Đã sử dụng Công cụ lập kế hoạch năng lực để giúp so sánh một dịch vụ bản đồ siêu nặng với 4 dịch vụ bản đồ nhỏ và kết quả chỉ ra rằng dịch vụ bản đồ hạng nặng là hướng đi.

Đây có thể không phải là câu trả lời đúng và công cụ lập kế hoạch năng lực không tính đến mọi yếu tố (ví dụ: quy trình làm việc của người dùng) - hãy cho tôi biết qua nhận xét bạn nghĩ gì.

1 dịch vụ bản đồ siêu nặng:
Sử dụng CPU của Máy chủ ứng dụng = 49,4%
Sử dụng CPU của Máy chủ cơ sở dữ liệu = 7,6%
Tải mạng = 16 Mbps
Thời gian đáp ứng hiển thị = 0,88 giây

(Hình ảnh có thể được nhìn thấy lớn bằng RC và mở trong tab mới)

nhập mô tả hình ảnh ở đây

Dịch vụ bản đồ 4 lite:
Sử dụng CPU của Máy chủ ứng dụng = 55,4%
Sử dụng CPU của Máy chủ cơ sở dữ liệu = 7.6%
Tải mạng = 64 Mbps
Thời gian đáp ứng hiển thị = 0,32 giây mỗi giây, do đó, từ 0,32 đến 1,28 giây tùy thuộc vào chi phí của trình duyệt web

nhập mô tả hình ảnh ở đây

Thêm logic để hỗ trợ cách tiếp cận dịch vụ một bản đồ:

  1. Do đó, tất cả các lớp trong cùng một dịch vụ bản đồ;
    a. một yêu cầu được gửi đến máy chủ
    b. một quá trình SOC vẽ bản đồ
    c. một hình ảnh được trả lại qua mạng

  2. 40 lớp được trải rộng trên 4 dịch vụ bản đồ (mỗi lớp 10 lớp);
    a. 4 yêu cầu được gửi đến máy chủ
    b. 4 quy trình SOC vẽ bản đồ
    c. 4 hình ảnh được trả lại qua mạng

1a và 1c sẽ nhanh hơn và tải ít hơn trên mạng so với 2a và 2c.

2b có thể sử dụng xử lý song song để trả về bản đồ nhanh hơn 1b cho một người dùng, nhưng điều này sẽ không xảy ra đối với nhiều người dùng. Trên thực tế, chi phí chung của các giao dịch bổ sung đang được máy chủ xử lý trong 2b (cộng với tải mạng bổ sung là 2c) sẽ thấy tỷ lệ 1b tốt hơn nhiều khi số lượng người dùng tăng lên.


2
Nghe có vẻ hợp lý. Quản lý MXD 600 lớp nghe có vẻ không thú vị lắm.
Stephen chì

1

Mặc dù sử dụng nhiều dịch vụ, chia tỷ lệ lớp / nhãn, lưu vào bộ nhớ cache và sử dụng nhãn không động đều giúp cải thiện trải nghiệm ứng dụng web, lần đầu tiên tải tất cả hơn 600 lớp vào một ứng dụng sẽ được người dùng cuối chú ý. Đặc biệt là thời gian cần thiết để đưa vào TOC. Nếu bạn phải tạo một ứng dụng hơn 600 lớp, tôi chắc chắn sẽ đi với tùy chọn # 2. Bạn có thể muốn mô hình cấu trúc dữ liệu của mình theo mô hình dữ liệu (chẳng hạn như mô hình dữ liệu của chính quyền địa phương).

Bản trắng dưới đây nêu bật một số hướng dẫn thực hành tốt nhất và thống kê hiệu suất cho các cấu hình ứng dụng web của ArcGIS Server.

http://www.esri.com


Điểm tốt trên TOC, nhưng nó thực sự tải tốt. 'lần truy cập ban đầu để tải hơn 600 lớp' = từ phối cảnh yêu cầu bản đồ, nó vẫn chỉ thực hiện một yêu cầu cho một dịch vụ. Vì vậy, thực sự khá nhanh chóng để AGS trả lại UNTIL xuất khẩu, họ bắt đầu bật> 20 lớp.
Simon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.