본문 바로가기

Salesforce/Certification

Integration Architecture Designer

ABOUT THE EXAM

For specialists who assess the architecture environment and requirements and design sound and scalable technical solutions on the Salesforce Platform that meet end-to-end integration requirements.Get the Exam Guide

Study & PrepareLearn at your own pace with a learning path designed just for you.
Architect Journey: Integration Architecture
Grow your architect skills and expertise in the area of Integration Architecture. This Trailmix has been curated just for you!

EXAM OUTLINE

SALESFORCE INTEGRATION CAPABILITIES 28%

  • In a given scenario, recommend when to use API-based integrations, such as SOAP, REST, Bulk, Streaming, Canvas, Workflow outbound, APEX (Callouts, @ future, etc.) and Lightning Connect to achieve business requirements.
  • Compare and contrast the advantages and drawbacks (design trade-offs) of using API-based integrations such as SOAP, REST, Bulk, Streaming, Canvas, Workflow outbound, APEX (Callouts, @future, etc.) and Lightning Connect.

SALESFORCE INTEGRATION PATTERNS 17%

  • Provided an integration scenario, describe requirements and issues that the Architect must consider to select the right pattern (Layer, Timing, Direction, and Volume).
  • In a customer scenario containing business requirements, summarize which implementation pattern will achieve those goals.
  • Compare and contrast the advantages and drawbacks (design trade-offs) of using various patterns, such as: Remote Process Invocation—Request and Reply, Remote Process Invocation—Fire and Forget, Batch Data Synchronization, Remote Call-In, and UI Update Based on Data Changes.

ENTERPRISE INTEGRATION ARCHITECTURE CONCEPTS 15%

  • Given a customer scenario containing business requirements for integrating Salesforce with other enterprise back-office systems, recommend the appropriate integration architecture.
  • Analyze and determine when and where to use data cleaning, standardization, deduplication, and data transformation as part of data integration.
  • Analyze and determine the various considerations while performing data migration (including but not limited to: platform handle bulk data load vs SOAP data load, monitoring the data loads, and error handling). 

SALESFORCE INTEGRATION TESTING 10%

  • Given a software development lifecycle scenario, determine the timing, type, and sequence of testing activities that are needed for successful implementation. 
  • Given an integration scenario, determine the appropriate platform capability needed to meet the testing requirements.

INTEGRATING WITH SALESFORCE: SECURITY 15%

  • Given a scenario, determine the appropriate security strategy to meet the customer requirements. 

TOOLS 10%

  • Given a scenario, determine the appropriate tools to meet the customer requirements.
  • Given a scenario, analyze and recommend the appropriate tools by comparing the pros and cons to meet the business requirements.

MONITORING 5%

  • Given a scenario, identify, isolate, and recommend approaches for integration challenges.

Topic


Understanding Outbound Messaging
Integration Patterns and Practices
Soap API Implementation Considerations
Introducing Lightning Platform REST API
Streaming API
When to Use Bulk API
Chatter REST API Developer Guide
Salesforce Security Guide
Salesforce to Salesforce

Future Call
Queue 로 실행
Org 당 2000개 이하 권장
Queue방식으로 하나의 call이 너무 많은 시간 또는 리소스를 사용하면 다음이 지연

Named Credentials
콜아웃 End point의 URL및 파라메터 저장
인정정보를 저장함으로써 콜아웃로직의 단순화
인증을 보안하에서 관리

Testing
기존의 기능들이 개발 릴리즈 연동 데이터 축적등으로 인해
오작동 하는 것을 방지하기 위해 Break point마다(개발완료 릴리즈 Bulk Insert등)
Regression Testing를 진행해서 사용성을 확인, 보장하여야 한다

Middle ware
SFDC에서는 모든것을 SFDC로 처리하는것을 권장하지 않는다
Cloud상 한계가 존재하기에 외부에서 처리하는 것이 더 효율적인 경우 그 솔루션을 이용하는 것을 권장하는 편이다.
(예를들어 기능 구현의 단계가 AppExchange-Configuration-Develop 순인것처럼)
Middle ware의 경우 Integration에서 SFDC에서 처리하기 곤란한경우 사용을 권장하고 있다
Bug Tracking, Monitoring, 1:N 연결의 관리등 상황에 따라 MiddleWare의 장점과 SFDC의 한계가 일치하는 경우
Middle Ware를 사용하는것이 좋다

Locking issue
I/F를 통해 대량 CRUD를 발생하는경우
Relation 관계에 있는 Object의 Record의 Locking이 발생할 수 있다.
Object Level의 Locking의 경우 Batch의 같은 Parent 관계의 데이터를 모아서 처리하고
User Ownership의 경우 granular locking을 고려하여 Serial 또는 Parallel 구성해야 한다.

Batch Data Synchronization
시간기준 변경된(insert, update, delete) Record를 가져오기 위해서 사용할수 있는 방법은
Soap API getUpdated(),getDeleted()
(타 요점정리에 Data Replication API라고도 명시되어 있으나 같은 내용 하지만 명칭상 틀리지 않으므로 함정문제 예상)
Rest API getUpdated(),getDeleted() (실제 API의 URI에 유의해야함)
Target Application 시점에서 Dynamic SOQL을 작성 (APP 직접 호출 또는 ETL 솔루션등)

I/F User
I/F에 사용되는 User를 설정할때 다음과 같은 사항을 고려해야 한다.
단일 User의 경우 License를 절약할 수 있지만 Batch Job등을 실행할때 concurrent Limit(25 call/20sec)
또는 API Query Cursor Limits(10 QueryLocator)를 일으킬 수 있다.
그럴 경우는 목적에 맞게 User를 분산하여 설정한다.

Canvas App
oAuth 또는 Signed requst를 통해 권한을 컨트롤 할 수 있다.
Lifecycle Handler를 이용해 endpoint URLs를 다이나믹하게 변경 할 수 있다.

Deduplicate
시스템간 데이터 통합을 위해 데이터 업로드시 중복을 방지하기위해 키를 이용한 중복체크 후 insert(upsert)를 진행하는데
이때 사용 할 수 있는 필드는 Text field를 External Id로 설정하면 Index가 생성되고(Object당 7개 Max)
또는 Field에 Index를 생성해달라고 Salesforce에 요청하면 Custom Index를 생성 할 수 있다.
이를 통해 사전 정의한 키 값으로 기존 값이 존재하는지 검색하여  없을 경우만 Insert 하거나 Update하거하는
로직을 구현하여 중복을 방지 할 수 있다.

authority-signed certificate
Certificate and Key Management에서 CA-signed certificate를 생성 인증 후 업로드하여  Integration시 보안을 확보할 수 있다.
Org당 모든 key 최대 50개 까지 관리 가능

Rest API 사용 시 API Limit이 우려되는경우
Bulk API사용을 고려 할 수 있다
Batch job 단위로 다중 작업을 직/병렬 실행할 수 있고 동일하게 Rest를 사용한다.
Rest API의 batch는 single call당 최대 100 DML을 처리 할 수 있으니 DML을 Batch로 작업 할 수 있도록 로직을 수정한다.

Bulk API Batch size
10,000 batch per rolling 24-hour period
Max 10,000 rows
Chunks 200 rows
batch size가 너무 클 경우 Max CPU time exceeded 발생가능
너무 작을 경우 bulk job 실행시간이 너무 길어 지거나 record locking error가 발생 할 수 있음.

protect credentials
외부 인증정보 등을 안전하게 보호하기 위해 named credentials
Custom Setting(Visibility - Protected)를 사용 할 수 있다.

Middle ware benefit(Functional)
Error Handling, Orchestration, Logging

restrict access from outside connection
Login IP Ranges, login flow(validate the IP), 2nd factor(incorrect)

strategies of Avoid encountering API Limits when using Rest API
Using Bulk API(does not count towards the API limits)
Utilize the REST API batch URI to consolidate 100 DML operations into single API call

Bulk API사용 중 발생하는 에러
Monitor Bulk Data Load Jobs를 사용하여 에러를 확인하여 해결 가능

Custom Field set External Id
오브젝트당 개수 제한
설정하면 인덱스가 생성됨
오브젝트당 인덱스 개수 제한으로 설정할 수 없는 경우도 발생
up to 25 External ID fields per object
Default 7
External ID fields must be Custom text, number or email fields.
문서에따라 최대 갯수 얘기가 좀 다른데(25, 20, 7)
일단 기본적으로 External Id를 통한 Index는 7이였던것 같다.
그 이상 생성하려면 Case를 통해 요청해야되고
그것의 최대가 25가 아닐까...

outbound message
Queue에 담겨 실행되므로 Invoke되면 곧 발송되나 즉시는 아니기때문에
긴급을 요하는 상황에서는 Apex에서(Trigger등) 즉시 실행하는 것이 좋다.

Outbound Message - Notifications

  • If the endpoint is unavailable, messages will stay in the queue until sent successfully, or until they are 24 hours old. After 24 hours, messages are dropped from the queue.
  • If a message cannot be delivered, the interval between retries increases exponentially, up to a maximum of two hours between retries.
  • Messages are retried independent of their order in the queue. This may result in messages being delivered out of order.
  • You cannot build an audit trail using outbound messaging. While each message should be delivered at least once, it may be delivered more than once. Also, it may not be delivered at all if delivery cannot be done within 24 hours. Finally, as noted above, the source object may change after a notification is queued but before it is sent, so the endpoint will only receive the latest data, not any intermediate changes.
  • Because a message may be delivered more than once, your listener client should check the notification IDs delivered in the notification before processing.

Lightning Connector
External Object를 통해 외부 데이터를 salesforce에서 접근가능
정책상 데이터를 salesforce에 저장 할 수 없거나 전략상 salesforce에 저장하지 않는 것이 좋을 경우 사용 한다.
기본적으로 Read only이나 APEX통해 DML할 수 있다.

WS-Security
Currently there is no support for WS security in Apex web service callouts. If needed, consider manually modifying the class generated by WSDL2Apex to include the security headers in the SOAP request.
즉 WSDL로 Apex Class 생성 후 코딩해야됨

지속적으로 연동해야되는 시스템이 늘어가는 환경일 경우
SFDC / Legacy 직접 연동의 경우
Concurrent API Request Limits 나 API Limit이 우려되고
ESB역시 비슷한 문제를 일으킬 수 있어
ETL등의 Tool로 Batch 작업을 수행하는 것이 좋다.