6

Tích hợp SAS với ArcGIS Online trong kiến ​​trúc 3 tầng

Tích hợp SAS với ArcGIS Online trong kiến ​​trúc 3 tầng

Giới thiệu

SAS có các công cụ mạnh mẽ để tính toán thống kê cùng với bộ sản phẩm Trí tuệ Doanh nghiệp và Người tiêu dùng, đã được sử dụng trong các lĩnh vực khác nhau như nghiên cứu lâm sàng, tài chính và chăm sóc sức khỏe. SAS cũng có các sản phẩm Phát hiện gian lận dựa trên máy học và trí tuệ nhân tạo, đang trở nên tiện dụng để ngăn chặn gian lận trong nhiều ngành.

Mặt khác, ArcGIS Online là một phần mềm như một dịch vụ (SaaS) dựa trên đám mây để lập bản đồ web và Hệ thống thông tin địa lý. ArcGIS là Hệ thống Thông tin Địa lý hàng đầu thị trường để sắp xếp dữ liệu địa lý nhằm tạo và sử dụng bản đồ trong các ứng dụng dành riêng cho quy trình làm việc. Khi khả năng phân tích dữ liệu không gian của ArcGIS được thêm vào phân tích dữ liệu dạng văn bản và số của SAS, hiệu quả của người dùng đang sử dụng hệ thống sẽ được cải thiện vì người dùng giờ đây sẽ nhận ra và hiểu được kết quả ngay lập tức.

Bài viết này giải thích cách phần mềm SAS, khi được triển khai theo kiến ​​trúc 3 tầng, có thể được tích hợp với các hệ thống bên ngoài như ArcGIS trực tuyến hoặc bất kỳ dịch vụ web nào khác cho vấn đề đó.

Bạn cũng có thể thích:  Phân tích mô tả với SAS

Kiến trúc 3 tầng SAS

Việc triển khai SAS chủ yếu bao gồm ba thành phần - Máy chủ siêu dữ liệu SAS, Lưới điện toán SAS và Máy chủ ứng dụng web SAS. Trong môi trường dựa trên kiến ​​trúc 3 tầng, Máy chủ siêu dữ liệu SAS và Máy chủ tính toán thường được triển khai tới tầng dữ liệu trong khi Máy chủ ứng dụng web SAS được triển khai tới tầng ứng dụng với máy chủ web hoạt động như một proxy trong tầng trình bày.

Điều này làm cho việc tích hợp SAS với một hệ thống bên ngoài như ArcGIS Online rất phức tạp vì các thành phần trong các tầng dữ liệu cần phải giao tiếp trực tiếp với URL có thể có trên internet. Hầu hết các tổ chức không thích mở giao tiếp với thế giới bên ngoài trực tiếp từ tầng dữ liệu vì lý do bảo mật.

Tích hợp SAS với ArcGIS Online trong kiến ​​trúc 3 tầng

Khi người dùng gửi chương trình SAS thông qua SAS Enterprise Guide hoặc SAS Web Applications, chương trình đã gửi sẽ được thực thi trên máy chủ SAS Grid nằm trong Data Tier. Vì lý do này, bất kỳ Chương trình SAS nào được mong đợi để giao tiếp với các dịch vụ web bên ngoài không thể được thực thi thành công bởi SAS Grid Server. Ví dụ: chương trình SAS bên dưới trích xuất tập dữ liệu của tất cả các trận Động đất lớn hơn độ lớn 5,0 và gắn thẻ tọa độ bằng dịch vụ lập bản đồ ArcGIS. Vì Cấp dữ liệu sẽ không có quyền truy cập vào services.arcgisonline.com, nên việc thực thi chương trình sẽ không thành công.

DATA major_quakes;
SET sashelp.quakes (WHERE=(magnitude>5.0));
RUN;
PROC SGMAP ;
ESRIMAP URL= 'https://services.arcgisonline/arcgis/rest/services/World_Topo_Map';
TITLE 'Earthquakes > 5.0 magnitude';
BUBBLE /
FILLATTRS=();
RUN;


Giải pháp

Triển khai SAS đi kèm với Máy chủ Web được xây dựng trên Apache và máy chủ Ứng dụng Web Tomcat. Giải pháp là sử dụng các máy chủ web trong mỗi tầng làm proxy và gửi các yêu cầu đến dịch vụ web bên ngoài từ tầng trình bày.

Tích hợp SAS với ArcGIS Online trong kiến ​​trúc 3 tầng

Các thay đổi đối với httpd.conf của Máy chủ Web SAS Cấp ứng dụng

Khi Máy chủ lưới tính toán SAS gửi bất kỳ yêu cầu nào đến Máy chủ web SAS của tầng ứng dụng cho ngữ cảnh / arcgis, các yêu cầu cần được chuyển tiếp đến bộ cân bằng tải của tầng trình bày. Để điều đó xảy ra, cài đặt ProxyPass và ProxyPassReverse cần được cập nhật trong httpd.conf của Máy chủ web SAS của Tầng ứng dụng.

ProxyPass /arcgis http://<saspresentation.loadbalancer.host>:<saspresentation.outgoing.port>/arcgis

ProxyPassReverse /arcgis http://<saspresentation.loadbalancer.host>:<saspresentation.outgoing.port>/arcgis


Vì các máy chủ web đang được sử dụng cho lưu lượng đến cũng như cho lưu lượng đi, các cổng cho những mục đích này phải khác nhau.

Chuyển đổi lưu lượng HTTP sang HTTPS

Lưu lượng bắt nguồn từ Cấp ứng dụng bao gồm các yêu cầu HTTP nhưng giao tiếp với ArcGIS trực tuyến phải qua HTTPS. Vì lý do này, chứng chỉ trang web ArcGIS Online bắt buộc phải được cài đặt trên Máy chủ Http của Tầng trình bày để bắt tay thành công.

Trong ví dụ của chúng tôi, máy chủ HTTP nằm trong Tầng trình bày là máy chủ IHS của IBM. Tôi đã sử dụng công cụ Quản lý khóa của IBM để nhập chứng chỉ vào kho khóa và đặt các tệp kho khóa trong máy chủ IHS để kích hoạt giao tiếp HTTPS.

https://www.ibm.com/support/knowledgecenter/en/SSD29G_2.0.0/com.ibm.swg.ba.cognos.tm1_inst.2.0.0.doc/t_pa_use_ibmkeymgmt.html

  • /opt/IHS/IHS85/IBMIHS/certs/key.kdb
  • /opt/IHS/IHS85/IBMIHS/certs/key.sth

Các thay đổi đối với httpd.conf của Máy chủ Web Bậc trình bày

Cụm máy chủ IHS sẽ phải xử lý đồng thời cả yêu cầu HTTP đến và yêu cầu HTTPS đi. Tất cả các cài đặt Proxy và ReverseProxy hiện có cho các yêu cầu đến SAS sẽ cần được xác định trên VirutalHost như bên dưới để tách biệt các thông tin liên lạc đến và đi.

<VirtualHost *:2073>
ServerName presentationtierwebserver
ErrorLog "logs/sas-error.log"
ProxyPass /SASBIPortlets http://applicationtierloadbalancer:7981/SASBIPortlets
ProxyPassReverse /SASBIPortlets http://applicationtierloadbalancer:7981/SASBIPortlets
ProxyPass /SASLogon http://applicationtierloadbalancer:7981/SASLogon
ProxyPassReverse /SASLogon http://applicationtierloadbalancer:7981/SASLogon
ProxyPass /SASGridManager http://applicationtierloadbalancer:7981/SASGridManager
ProxyPassReverse /SASGridManager http://applicationtierloadbalancer:7981/SASGridManager
ProxyPass /SASContentServer http://applicationtierloadbalancer:7981/SASContentServer
ProxyPassReverse /SASContentServer http://applicationtierloadbalancer:7981/SASContentServer
ProxyPass /SASPrincipalServices http://applicationtierloadbalancer:7981/SASPrincipalServices
ProxyPassReverse /SASPrincipalServices http://applicationtierloadbalancer:7981/SASPrincipalServices
ProxyPass /SASPackageViewer http://applicationtierloadbalancer:7981/SASPackageViewer
ProxyPassReverse /SASPackageViewer http://applicationtierloadbalancer:7981/SASPackageViewer
ProxyPass /SASWIPSoapServices http://applicationtierloadbalancer:7981/SASWIPSoapServices
ProxyPassReverse /SASWIPSoapServices http://applicationtierloadbalancer:7981/SASWIPSoapServices
ProxyPass /SASAdmin http://applicationtierloadbalancer:7981/SASAdmin
ProxyPassReverse /SASAdmin http://applicationtierloadbalancer:7981/SASAdmin
ProxyPass /SASPermissionManager http://applicationtierloadbalancer:7981/SASPermissionManager
ProxyPassReverse /SASPermissionManager http://applicationtierloadbalancer:7981/SASPermissionManager
ProxyPass /SASStudio http://applicationtierloadbalancer:7981/SASStudio
ProxyPassReverse /SASStudio http://applicationtierloadbalancer:7981/SASStudio
ProxyPass /SASFlexThemes http://applicationtierloadbalancer:7981/SASFlexThemes
ProxyPassReverse /SASFlexThemes http://applicationtierloadbalancer:7981/SASFlexThemes
ProxyPass /SASTemplateEditor http://applicationtierloadbalancer:7981/SASTemplateEditor
ProxyPassReverse /SASTemplateEditor http://applicationtierloadbalancer:7981/SASTemplateEditor
ProxyPass /SASBIDashboardEventGen http://applicationtierloadbalancer_Singleton1:7981/SASBIDashboardEventGen
ProxyPassReverse /SASBIDashboardEventGen http://applicationtierloadbalancer_Singleton1:7981/SASBIDashboardEventGen
ProxyPass /FolderModule http://applicationtierloadbalancer:7981/FolderModule
ProxyPassReverse /FolderModule http://applicationtierloadbalancer:7981/FolderModule
ProxyPass /SASPortal http://applicationtierloadbalancer:7981/SASPortal
ProxyPassReverse /SASPortal http://applicationtierloadbalancer:7981/SASPortal
ProxyPass /SASIdentityServices http://applicationtierloadbalancer:7981/SASIdentityServices
ProxyPassReverse /SASIdentityServices http://applicationtierloadbalancer:7981/SASIdentityServices
ProxyPass /SASLASRAuthorization http://applicationtierloadbalancer:7981/SASLASRAuthorization
ProxyPassReverse /SASLASRAuthorization http://applicationtierloadbalancer:7981/SASLASRAuthorization
ProxyPass /SASStoredProcess http://applicationtierloadbalancer:7981/SASStoredProcess
ProxyPassReverse /SASStoredProcess http://applicationtierloadbalancer:7981/SASStoredProcess
ProxyPass /SASEnterpriseMinerServices http://applicationtierloadbalancer:7981/SASEnterpriseMinerServices
ProxyPassReverse /SASEnterpriseMinerServices http://applicationtierloadbalancer:7981/SASEnterpriseMinerServices
ProxyPass /SASBIDashboard http://applicationtierloadbalancer:7981/SASBIDashboard
ProxyPassReverse /SASBIDashboard http://applicationtierloadbalancer:7981/SASBIDashboard
ProxyPass /SASSharedApps http://applicationtierloadbalancer:7981/SASSharedApps
ProxyPassReverse /SASSharedApps http://applicationtierloadbalancer:7981/SASSharedApps
ProxyPass /SASVisualAnalyticsTransport http://applicationtierloadbalancer:7981/SASVisualAnalyticsTransport
ProxyPassReverse /SASVisualAnalyticsTransport http://applicationtierloadbalancer:7981/SASVisualAnalyticsTransport
ProxyPass /SASBackupManager http://applicationtierloadbalancer:7981/SASBackupManager
ProxyPassReverse /SASBackupManager http://applicationtierloadbalancer:7981/SASBackupManager
ProxyPass /SASWorkflowServices http://applicationtierloadbalancer:7981/SASWorkflowServices
ProxyPassReverse /SASWorkflowServices http://applicationtierloadbalancer:7981/SASWorkflowServices
ProxyPass /SASWebReportStudio http://applicationtierloadbalancer:7981/SASWebReportStudio
ProxyPassReverse /SASWebReportStudio http://applicationtierloadbalancer:7981/SASWebReportStudio
ProxyPass /SASBIWS http://applicationtierloadbalancer:7981/SASBIWS
ProxyPassReverse /SASBIWS http://applicationtierloadbalancer:7981/SASBIWS
ProxyPass /SASSecurityAdminModule http://applicationtierloadbalancer:7981/SASSecurityAdminModule
ProxyPassReverse /SASSecurityAdminModule http://applicationtierloadbalancer:7981/SASSecurityAdminModule
ProxyPass /PlatformWebServices http://applicationtierloadbalancer:7981/PlatformWebServices
ProxyPassReverse /PlatformWebServices http://applicationtierloadbalancer:7981/PlatformWebServices
ProxyPass /SASEnvironmentMgrLibraryMod http://applicationtierloadbalancer:7981/SASEnvironmentMgrLibraryMod
ProxyPassReverse /SASEnvironmentMgrLibraryMod http://applicationtierloadbalancer:7981/SASEnvironmentMgrLibraryMod
ProxyPass /SASWebDoc http://applicationtierloadbalancer:7981/SASWebDoc
ProxyPassReverse /SASWebDoc http://applicationtierloadbalancer:7981/SASWebDoc
ProxyPass /SASTheme_default http://applicationtierloadbalancer:7981/SASTheme_default
ProxyPassReverse /SASTheme_default http://applicationtierloadbalancer:7981/SASTheme_default
ProxyPass /SASThemeDesignerForFlex http://applicationtierloadbalancer:7981/SASThemeDesignerForFlex
ProxyPassReverse /SASThemeDesignerForFlex http://applicationtierloadbalancer:7981/SASThemeDesignerForFlex
ProxyPass /SASJSR168RemotePortlet http://applicationtierloadbalancer:7981/SASJSR168RemotePortlet
ProxyPassReverse /SASJSR168RemotePortlet http://applicationtierloadbalancer:7981/SASJSR168RemotePortlet
ProxyPass /SASEnvironmentMgrMidTier http://applicationtierloadbalancer:7981/SASEnvironmentMgrMidTier
ProxyPassReverse /SASEnvironmentMgrMidTier http://applicationtierloadbalancer:7981/SASEnvironmentMgrMidTier
ProxyPass /SASWIPServices http://applicationtierloadbalancer:7981/SASWIPServices
ProxyPassReverse /SASWIPServices http://applicationtierloadbalancer:7981/SASWIPServices
ProxyPass /SASDeploymentBackup http://applicationtierloadbalancer:7981/SASDeploymentBackup
ProxyPassReverse /SASDeploymentBackup http://applicationtierloadbalancer:7981/SASDeploymentBackup
ProxyPass /SASUserModule http://applicationtierloadbalancer:7981/SASUserModule
ProxyPassReverse /SASUserModule http://applicationtierloadbalancer:7981/SASUserModule
ProxyPass /SASEnterpriseMinerJWS http://applicationtierloadbalancer:7981/SASEnterpriseMinerJWS
ProxyPassReverse /SASEnterpriseMinerJWS http://applicationtierloadbalancer:7981/SASEnterpriseMinerJWS
ProxyPass /SASVisualAnalytics http://applicationtierloadbalancer:7981/SASVisualAnalytics
ProxyPassReverse /SASVisualAnalytics http://applicationtierloadbalancer:7981/SASVisualAnalytics
ProxyPass /SASWIPClientAccess http://applicationtierloadbalancer:7981/SASWIPClientAccess
ProxyPassReverse /SASWIPClientAccess http://applicationtierloadbalancer:7981/SASWIPClientAccess
ProxyPass /SASServerModule http://applicationtierloadbalancer:7981/SASServerModule
ProxyPassReverse /SASServerModule http://applicationtierloadbalancer:7981/SASServerModule
ProxyPass /SASPreferences http://applicationtierloadbalancer:7981/SASPreferences
ProxyPassReverse /SASPreferences http://applicationtierloadbalancer:7981/SASPreferences
ProxyPass /SASAuthorizationServices http://applicationtierloadbalancer:7981/SASAuthorizationServices
ProxyPassReverse /SASAuthorizationServices http://applicationtierloadbalancer:7981/SASAuthorizationServices
ProxyPass /SASWorkflowWebServices http://applicationtierloadbalancer:7981/SASWorkflowWebServices
ProxyPassReverse /SASWorkflowWebServices http://applicationtierloadbalancer:7981/SASWorkflowWebServices
ProxyPass /SASVisualAnalyticsAdministrator http://applicationtierloadbalancer:7981/SASVisualAnalyticsAdministrator
ProxyPassReverse /SASVisualAnalyticsAdministrator http://applicationtierloadbalancer:7981/SASVisualAnalyticsAdministrator
ProxyPass /sasweb http://applicationtierloadbalancer:7981/sasweb
ProxyPassReverse /sasweb http://applicationtierloadbalancer:7981/sasweb
ProxyPass /sas http://applicationtierloadbalancer:7981/sas
ProxyPassReverse /sas http://applicationtierloadbalancer:7981/sas
ProxyPass /PlatformWebServices http://applicationtierloadbalancer:7981/PlatformWebServices
ProxyPassReverse /PlatformWebServices http://applicationtierloadbalancer:7981/PlatformWebServices
</VirtualHost>


Cài đặt ProxyPass và ProxyPassReverse cho các yêu cầu HTTPS gửi đi sẽ cần được xác định trong một cấu hình Virtualhost khác trong httpd.conf.

<VirtualHost *:6443>
ServerName presentationtierwebserver
ErrorLog "logs/error.log"
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
CacheDisable *
ProxyPass /arcgis https://services.arcgisonline.com/arcgis
ProxyPassReverse /arcgis https://services.arcgisonline.com/arcgis
RedirectMatch ^/$ http://presentationtierwebserver:6443/arcgis
</VirtualHost>


Thư viện SSL và các cài đặt như chi tiết kho khóa phải được cập nhật vào tệp httpd.conf:

LoadModule ibm_ssl_module modules/mod_ibm_ssl.so

KeyFile /opt/IHS/IHS85/IBMIHS/certs/key.kdb
SSLStashFile /opt/IHS/IHS85/IBMIHS/certs/key.sth


Dưới đây là các mô-đun được bật trong máy chủ IHS để giao tiếp hoạt động:

LoadModule authz_host_module modules/mod_authz_host.so
LoadModule cache_module modules/mod_cache.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule headers_module modules/mod_headers.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule mime_module modules/mod_mime.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgid_module modules/mod_cgid.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so


Tất cả các máy chủ được yêu cầu khởi động lại sau khi những thay đổi này được áp dụng. Các thay đổi cấu hình có thể được kiểm tra bằng cách đơn giản chạy lệnh wget hoặc curl cho các URL tương ứng trên mỗi máy chủ.

Cập nhật cho URL chương trình SAS

Vì giao tiếp hiện đã được thiết lập với URL bên ngoài, nên URL trong chương trình SAS sẽ cần được cập nhật lên máy chủ của bộ cân bằng tải cấp ứng dụng và cổng lưu lượng đi để chuyển các yêu cầu đến máy chủ HTTP trong Cấp ứng dụng và sau đó đến Bản trình bày Tầng.

DATA major_quakes;
SET sashelp.quakes (WHERE=(magnitude>5.0));
RUN;
PROC SGMAP ;
ESRIMAP URL= 'https://<saswebapp.loadbalancer.dns>:<saswebapp.loadbanlancer.port>/arcgis/rest/services/World_Topo_Map';
TITLE 'Earthquakes > 5.0 magnitude';
BUBBLE /
FILLATTRS=();
RUN;


Các kết quả

Sau khi thực hiện thành công chương trình trên, kết quả SAS sẽ hiển thị bản đồ và tập dữ liệu như bên dưới.

Tích hợp SAS với ArcGIS Online trong kiến ​​trúc 3 tầng


Tích hợp SAS với ArcGIS Online trong kiến ​​trúc 3 tầng

SAS có thể được tích hợp với bất kỳ số lượng dịch vụ web bên ngoài nào mà không cần thêm các thành phần cơ sở hạ tầng mới vào kiến ​​trúc với giải pháp này.

Đọc thêm

Hướng dẫn trực quan về tham gia SAS SQL

GIS dành cho nhà phát triển

|