KR102671275B1 - 애플리케이션 프로그래밍 인터페이스 상호 작용에 기반하여 계정 승인을 생성하기 위한 시스템 및 방법 - Google Patents

애플리케이션 프로그래밍 인터페이스 상호 작용에 기반하여 계정 승인을 생성하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102671275B1
KR102671275B1 KR1020220010101A KR20220010101A KR102671275B1 KR 102671275 B1 KR102671275 B1 KR 102671275B1 KR 1020220010101 A KR1020220010101 A KR 1020220010101A KR 20220010101 A KR20220010101 A KR 20220010101A KR 102671275 B1 KR102671275 B1 KR 102671275B1
Authority
KR
South Korea
Prior art keywords
account
api
computing system
record
access
Prior art date
Application number
KR1020220010101A
Other languages
English (en)
Other versions
KR20220113263A (ko
Inventor
산데쉬 키니 쿠라이
브라이언 스완
Original Assignee
쇼피파이 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쇼피파이 인크. filed Critical 쇼피파이 인크.
Publication of KR20220113263A publication Critical patent/KR20220113263A/ko
Application granted granted Critical
Publication of KR102671275B1 publication Critical patent/KR102671275B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Human Computer Interaction (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

컴퓨팅 시스템 상의 계정에 대한 계정 승인들을 생성하기 위한 시스템들 및 방법들이 제공된다. 일부 실시예들에서, 외부 애플리케이션 및 컴퓨팅 시스템을 수반하는 애플리케이션 프로그래밍 인터페이스(API) 상호 작용들은 계정에 대한 상응하는 세트의 계정 승인들을 생성하는 데 이용된다. 외부 애플리케이션에 대한 API 승인들이 또한 또는 대신에 계정에 대한 계정 승인들의 세트를 생성하는 데 이용될 수 있다. 계정 승인들의 세트는 외부 애플리케이션과 컴퓨팅 시스템 상의 동일한 리소스들에 계정이 액세스하는 것을 가능하게 할 수 있으며, 이는 컴퓨팅 시스템에 대한 지나치게 넓은 액세스를 계정에 허가하는 것을 피할 수 있다.

Description

애플리케이션 프로그래밍 인터페이스 상호 작용에 기반하여 계정 승인을 생성하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR GENERATING ACCOUNT PERMISSIONS BASED ON APPLICATION PROGRAMMING INTERFACE INTERACTIONS}
본 출원은 컴퓨팅 시스템 상의 계정 기반 인가에 관한 것으로, 특정 실시예들에서, 애플리케이션 프로그래밍 인터페이스(API)와의 상호 작용에 기반하여 컴퓨팅 시스템 상의 계정에 대한 계정 승인을 생성하는 것에 관한 것이다.
컴퓨팅 시스템에 의해 지원되는 일부 소프트웨어 인스턴스는 일정 사용자에 제한될 수 있다. 전자 상거래 플랫폼 상의 온라인 스토어의 관리자는 전형적으로 단일 사용자 또는 단일 그룹의 사용자들에 제한되는 소프트웨어 인스턴스의 일 예이다. 예를 들어, 관리자를 통해 액세스 가능한 리소스는 제3자와 공유되지 않아야 할 민감한 정보에 대한 액세스를 가능하게 할 수 있다. 그러나, 온라인 스토어의 관리자로부터 제3자를 완전히 제한하는 것은 온라인 스토어에 대한 지원 및 개발을 저해할 수 있다.
컴퓨팅 시스템 상의 리소스들의 세트에 제3자가 액세스하는 것을 가능하게 하도록 제3자 계정 승인들이 컴퓨팅 시스템에 의해 제공될 수 있다. 일부 경우에, 제3자는 컴퓨팅 시스템의 기능을 보완하거나 강화시키는 외부 애플리케이션에 관하여 기술적 및/또는 비즈니스 지원 서비스들을 제공할 수 있다. 예를 들어, 제3자는 외부 애플리케이션의 개발자일 수 있고, 외부 애플리케이션은 컴퓨팅 시스템의 사용자와 연관된 소프트웨어 인스턴스에 의해 구현될 수 있다. 사용자에게 외부 애플리케이션에 대한 적절한 지원을 제공하기 위해, 제3자에게는 사용자와 연관된 소프트웨어 인스턴스에 대한 적어도 일부 액세스를 가능하게 하는 계정 승인들이 제공될 수 있다. 그러나, 이러한 계정 승인들은 외부 애플리케이션과 관련 있는 소프트웨어 인스턴스의 부분들에 제한될 수 있다. 예를 들어, 외부 애플리케이션이 소프트웨어 인스턴스의 특정 리소스들에 액세스하지 않으면, 제3자에 대한 계정 승인들은 그러한 리소스들에 대한 액세스를 포함하지 않을 수 있다.
일부 실시예들에서, 외부 애플리케이션은, 예를 들어 애플리케이션 프로그래밍 인터페이스(API)와 같은 인터페이스를 통하여 컴퓨팅 시스템과 상호 작용할 수 있다. 제3자에 대한 계정 승인들은 외부 애플리케이션의 API 범위에 기반하여 생성될 수 있다. 외부 애플리케이션의 API 범위는 외부 애플리케이션과 관련 있는 컴퓨팅 시스템의 리소스들 및/또는 컴퓨팅 시스템 상의 하나 이상의 소프트웨어 인스턴스의 리소스들을 나타낸다. 일 예에 따르면, 외부 애플리케이션에 허가되는 API 승인들(예를 들어, 외부 애플리케이션이 행하는 것이 인가되는 API 호출들)은 외부 애플리케이션의 API 범위를 결정하는 것을 돕는 데 이용될 수 있다. 부가적으로 또는 대안적으로, 외부 애플리케이션을 수반하는 API 상호 작용들(예를 들어, 외부 애플리케이션에 의해 행해지는 실제 API 호출들)이 외부 애플리케이션의 API 범위를 결정하는 것을 돕는 데 이용될 수 있다. 이에 따라, 외부 애플리케이션의 API 범위는 외부 애플리케이션에 대한 API 승인들 그리고/또는 외부 애플리케이션을 수반하는 API 상호 작용들을 포함할 수 있다.
외부 애플리케이션에 대한 지원을 제공하는 제3자에 대한 계정 승인들은 외부 애플리케이션의 API 범위에 비례하도록 생성될 수 있다. 예를 들어, API 범위는 외부 애플리케이션에 의해 액세스되는 컴퓨팅 시스템의 리소스들의 세트를 나타낼 수 있고, 외부 애플리케이션에 대한 계정 승인들이 동일한 세트의 리소스들에 대한 액세스를 가능하게 하도록 생성될 수 있다.
외부 애플리케이션의 API 범위에 기반하여 제3자 계정 승인들을 결정하는 것은 컴퓨팅 시스템에 의해 자동적으로 수행될 수 있으므로, 제3자 계정 승인들을 수작업으로 생성할 필요를 감소시키거나 제거할 수 있다. 이러한 방식으로, 계정 승인들은 API 범위를 이용하여 더 빠르게 생성될 수 있고 사용자들이 제3자 지원 서비스들에 빠르게 액세스하는 것을 가능하게 할 수 있다. 게다가, API 범위에 기반하여 제3자 승인들을 생성하는 것은 사람의 판단 및 편견을 제거할 수 있으므로, 수작업으로 선택된 계정 승인들보다 범위가 더 적절한 계정 승인들을 제공할 수 있다.
본 발명의 일 양태에 따르면, 컴퓨팅 시스템의 리소스들의 세트에 액세스하는 소프트웨어 애플리케이션을 수반하는 API 상호 작용들의 기록을 얻는 단계를 포함하는 컴퓨터 구현 방법이 제공된다. 방법은 또한 API 상호 작용들의 기록에 기반하여 계정에 대한 계정 승인들의 세트를 생성하는 단계를 포함한다. 계정 승인들의 세트는 컴퓨팅 시스템의 리소스들의 세트에 그러한 계정이 액세스하는 것을 가능하게 한다. 선택적으로, 리소스들의 세트는 API 상호 작용들의 기록에서의 API 호출들을 통하여 액세스 가능한 데이터를 포함할 수 있다. 계정 승인들의 세트는 API 상호 작용들의 기록에 상응하지 않는 컴퓨팅 시스템의 다른 리소스들에 대한 계정의 액세스를 제한할 수도 있다. 이러한 방법은 계정 및 소프트웨어 애플리케이션이 컴퓨팅 시스템의 동일한 세트의 리소스들에 액세스하도록 보장하는 것을 도울 수 있으며, 이는 컴퓨팅 시스템에 대한 지나치게 넓게 액세스를 계정에 허가하는 것을 피할 수 있다. 계정은, 예를 들어 소프트웨어 애플리케이션에 대한 지원을 제공하기 위해 사용자가 컴퓨팅 시스템에 액세스하는 것을 가능하게 할 수 있다.
일부 실시예들에서, 계정에 대한 계정 승인들의 세트를 생성하는 단계는 API 상호 작용들의 기록에서의 특정 API 상호 작용을 컴퓨팅 시스템의 리소스들의 세트의 특정 리소스로 매핑하는 단계, 및 계정이 특정 리소스에 액세스하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함한다. 선택적으로, 특정 API 상호 작용을 특정 리소스로 매핑하는 단계는 API의 부분들과 컴퓨팅 시스템의 리소스들 사이의 저장된 매핑에 기반한다.
일부 실시예들에서, 계정 승인들의 세트는 시간 의존적이다. 예를 들어, API 상호 작용들의 기록을 얻는 단계는 특정 API 상호 작용에 대한 기간을 얻는 단계를 포함할 수 있다. 특정 API 상호 작용으로 매핑되는 특정 리소스가 컴퓨팅 시스템 상의 데이터세트에 대한 액세스를 가능하게 하면, 적어도 하나의 계정 승인은 상기 기간에 상응하는 데이터세트의 부분들로 계정의 액세스를 제한할 수 있다.
일부 실시예들에서, 계정 승인들의 세트는 워크플로우 기반 방식으로 생성된다. 예를 들어, 계정에 대한 계정 승인들의 세트를 생성하는 단계는 API 상호 작용들의 기록에서의 API 상호 작용들의 그룹을 컴퓨팅 시스템의 워크플로우로 매핑하는 단계, 및 계정이 워크플로우를 수행하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함할 수 있다. 선택적으로, API 상호 작용들의 그룹을 워크플로우로 매핑하는 단계는 API의 부분들과 컴퓨팅 시스템의 워크플로우들 사이의 저장된 매핑에 기반한다.
일부 실시예들에서, 계정 승인들의 세트는 소프트웨어 애플리케이션과 연관된 컴퓨팅 시스템 상의 소프트웨어 인스턴스에 계정이 액세스하는 것을 가능하게 한다. 예를 들어, 소프트웨어 인스턴스는 소프트웨어 애플리케이션을 구현할 수 있다. 게다가, 리소스들의 세트는 소프트웨어 인스턴스에 특정할 수 있고 계정 승인들의 세트는 소프트웨어 인스턴스에 제한될 수 있다. 즉, 계정 승인들의 세트는 컴퓨팅 시스템 상의 다른 소프트웨어 인스턴스들에 대한 액세스를 가능하게 하지 않을 수 있다. 선택적으로, 계정 승인들의 세트를 생성하는 단계 이전에, 방법은 소프트웨어 인스턴스와 계정 사이에 관계가 존재한다고 판단하는 단계를 더 포함할 수 있다.
일부 실시예들에서, API 상호 작용들의 기록을 얻는 단계는 소프트웨어 애플리케이션을 실행시키는 외부 디바이스로부터 컴퓨팅 시스템에 의해 수신되는 API 호출들을 모니터링하는 단계를 포함한다.
일부 실시예들에서, 방법은 소프트웨어 애플리케이션에 대한 API 승인들의 기록을 얻는 단계를 더 포함한다. 계정에 대한 계정 승인들의 세트를 생성하는 단계는 API 승인들의 기록에 추가로 기반할 수 있다.
본 발명의 다른 양태에 따르면, API 상호 작용들의 기록들, API 승인들의 기록들 및/또는 API 매핑들을 저장하는 메모리, 그리고 본원에 개시되는 바와 같은 임의의 방법을 수행하는 하나 이상의 프로세서를 포함하는 시스템이 제공된다.
본 발명의 추가 양태에 따르면, 컴퓨터에 의해 실행될 때, 컴퓨터가 본원에 개시되는 임의의 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 매체가 제공된다.
따라서, 뒤따르는 청구항들에서 상세화되는 바와 같은 방법, 시스템 및 컴퓨터 프로그램이 제공된다.
실시예들을 첨부 도면들을 참조하여 예로서만 설명할 것이다.
도 1은 일 실시예에 따른 전자 상거래 플랫폼의 블록도이다.
도 2는 일 실시예에 따른 관리자의 홈 페이지의 일 예이다.
도 3은 계정 승인 엔진을 포함하는 도 1의 전자 상거래 플랫폼을 도시한다.
도 4는 일 실시예에 따른 API 범위에 기반하여 계정 승인들을 생성하기 위한 시스템을 도시하는 블록도이다.
도 5는 일 실시예에 따른 API 범위에 기반하여 계정 승인들을 생성하기 위한 방법을 도시하는 흐름도이다.
도 6은 일 실시예에 따른 전자 상거래 플랫폼과 상호 작용하는 외부 애플리케이션 및 제3자를 도시하는 블록도이다.
도 7 및 도 8은 도 6의 전자 상거래 플랫폼 상의 협력자 계정을 이용하여 제3자에 의해 액세스 가능한 예시적 스크린 페이지들을 도시한다.
예시적인 목적으로, 특정 예시적 실시예들을 도면들과 함께 이제 보다 상세히 후술할 것이다.
예시적 전자 상거래 플랫폼
일부 실시예들에서, 본원에 개시되는 방법들은 전자 상거래 플랫폼으로서 본원에서 지칭될 상업 플랫폼 상에서 또는 이것과 연관하여 수행될 수 있다. 그러므로, 전자 상거래 플랫폼의 일 예를 설명할 것이다.
도 1은 일 실시예에 따른 전자 상거래 플랫폼(100)을 도시한다. 전자 상거래 플랫폼(100)은 고객들에게 머천트 제품들 및 서비스들을 제공하는 데 사용될 수 있다. 본 발명이 제품들 및 서비스들을 구매하기 위해 장치, 시스템 및 프로세스를 이용하는 것을 고려하지만, 단순함을 위해 본원의 설명은 제품들을 언급할 것이다. 본 발명 전체에 걸친 제품들에 대한 모든 참조는 또한 물리적 제품, 디지털 콘텐츠, 티켓, 구독료, 제공될 서비스 등을 포함하는 제품들 및/또는 서비스들에 대한 참조들인 것으로 이해되어야 한다.
'머천트' 및 '고객'이 개인 이상일 수 있다는 것을 본 발명이 전체에 걸쳐 고려하지만, 단순함을 위해, 본원의 설명은 이에 따른 머천트들 및 고객들을 전반적으로 언급할 수 있다. 본 발명 전체에 걸친 머천트들 및 고객들에 대한 모든 참조는 또한 개인, 회사, 기업, 컴퓨팅 엔티티 등의 그룹들에 대한 참조들인 것으로 이해되어야 하고, 제품들의 영리 목적 또는 비영리 목적 교환을 나타낼 수 있다. 게다가, 본 발명이 전체에 걸쳐 '머천트들' 및 '고객들'을 언급하고, 이에 따른 '머천트들' 및 '고객들'의 역할들을 설명하지만, 전자 상거래 플랫폼(100)은 전자 상거래 환경에서 사용자들을 보다 전반적으로 지원하는 것으로 이해되어야 하고, 본 발명 전체에 걸친 머천트들 및 고객들에 대한 모든 참조는 또한 사용자가 머천트 사용자(예를 들어, 제품들의 판매자, 소매업자, 도매업자 또는 제공자), 고객 사용자(예를 들어, 제품들의 구매자, 매입 대리인 또는 사용자), 유망한 사용자(예를 들어, 브라우징하고 아직 구매를 하지 않았던 사용자, 제품들을 마케팅하고 판매하는 데의 잠재적인 이용에 대해 전자 상거래 플랫폼(100)을 평가하는 사용자 등), 서비스 제공자 사용자(예를 들어, 배송 제공자(112), 재무 제공자 등), 회사 또는 기업 사용자(예를 들어, 제품들의 구매, 판매 또는 사용에 대한 회사 대표자; 기업체 사용자; 고객 관련 사항 또는 고객 관리부 등), 정보 기술 사용자, 컴퓨팅 엔티티 사용자(예를 들어, 제품들의 구매, 판매 또는 사용에 대한 컴퓨팅 보트) 등인 경우와 같은 사용자들에 대한 참조들인 것으로 이해되어야 한다.
전자 상거래 플랫폼(100)은 머천트들의 비즈니스를 관리하기 위한 온라인 리소스들 및 설비들을 머천트들에게 제공하는 중앙 집중식 시스템을 제공할 수 있다. 본원에 설명하는 설비들은 플랫폼(100)의 일부이거나 이것의 외부에 있을 수 있는 하나 이상의 프로세서 상에서 컴퓨터 소프트웨어, 모듈들, 프로그램 코드들 및/또는 명령어들을 실행시키는 기계를 통해 부분적으로 또는 전부 전개될 수 있다. 머천트들은 온라인 스토어(138)를 통해, 채널들(110A 및 110B)을 통해, 물리적 위치들(예를 들어, 물리적 스토어프론트 또는 키오스크, 단말기, 판독기, 프린터, 3D 프린터 등을 통해서와 같이 다른 위치)에서의 POS 디바이스들(152)을 통해 고객들과의 전자 상거래 경험을 구현함으로써, 전자 상거래 플랫폼(100)을 통해 머천트들의 비즈니스를 관리함으로써, 그리고 전자 상거래 플랫폼(100)의 통신 설비(129)를 통해 고객들과 상호 작용함으로써, 또는 이들의 임의의 조합에 의해서와 같이 고객들과의 상업을 관리하기 위해 전자 상거래 플랫폼(100)을 활용할 수 있다. 머천트는 고객들과의 단독의 상업 존재로서, 또는 물리적 스토어(예를 들어, '오프라인 거래' 소매점들), 머천트 플랫폼 외 웹사이트(104)(예를 들어, 상업 인터넷 웹사이트, 또는 전자 상거래 플랫폼과 별도로 머천트에 의해 또는 머천트를 대신하여 지원되는 다른 인터넷 또는 웹 소유물 또는 자산) 등을 통해서과 같이 다른 머천트 상업 설비들과 함께 전자 상거래 플랫폼(100)을 활용할 수 있다. 그러나, 이러한 '다른' 머천트 상업 설비들도 머천트의 물리적 스토어에서의 POS 디바이스들(152)이 전자 상거래 플랫폼(100)에 연계되는 경우, 머천트 플랫폼 외 웹사이트(104)에서 온라인 스토어(138)로 콘텐츠를 연계시키는 '구입 버튼들'을 통해서와 같이 머천트 플랫폼 외 웹사이트(104)가 전자 상거래 플랫폼(100)에 결부되는 경우 등과 같이 전자 상거래 플랫폼으로 포함될 수 있다.
온라인 스토어(138)는 복수의 가상 스토어프론트를 포함하는 다수 차용자 설비를 나타낼 수 있다. 실시예들에서, 머천트들은 머천트 디바이스(102)(예를 들어, 컴퓨터, 랩탑 컴퓨터, 모바일 컴퓨팅 디바이스 등)를 통해서와 같이 온라인 스토어(138)에서의 하나 이상의 스토어프론트를 관리하고, 다수의 상이한 채널(110A 및 110B)(예를 들어, 온라인 스토어(138); POS 디바이스(152)를 통한 물리적 스토어프론트; 소셜 네트워크, 소셜 미디어 페이지, 소셜 미디어 메시징 시스템 상에서와 같이 웹사이트 또는 소셜 미디어 채널로 통합되는 전자 구입 버튼을 통한 전자 시장 등)을 통해 고객들에게 제품들을 제공할 수 있다. 머천트는 채널들(110A 및 110B)을 거쳐 판매하고 그 후 전자 상거래 플랫폼(100)을 통해 머천트의 판매들을 관리할 수 있으며, 채널들(110A)은 전자 상거래 플랫폼(100)의 내부에 또는 전자 상거래 채널(110B)의 외부로부터 제공될 수 있다. 머천트는 머천트의 물리적 소매점에서, 팝 업에서, 도매를 통해, 전화기를 통해 등으로 판매하고 그 후 전자 상거래 플랫폼(100)을 통해 머천트의 판매들을 관리할 수 있다. 머천트는 POS 디바이스들(152)을 활용하여 물리적 스토어프론트를 통해 비즈니스를 유지 관리하는 것, 온라인 스토어(138)를 통해 가상 스토어프론트를 유지 관리하는 것, 그리고 고객 상호 작용들을 레버리징하기 위해 통신 설비(129) 그리고 판매 확률을 개선하기 위해 분석 정보(132)를 활용하는 것 모두, 또는 이들의 임의의 조합을 채용할 수 있다. 본 발명 전체에 걸쳐, 온라인 스토어(138) 및 스토어프론트라는 용어들은 전자 상거래 플랫폼(100)을 통해 존재를 제공하는 머천트의 온라인 전자 상거래를 지칭하는 데 동의어로 사용될 수 있으며, 온라인 스토어(138)는 (예를 들어, 복수의 머천트에 대한) 전자 상거래 플랫폼(100)에 의해 지원되는 스토어프론트들의 다수 차용자 컬렉션 또는 개별 머천트의 스토어프론트(예를 들어, 한 머천트의 온라인 스토어)를 지칭할 수 있다.
일부 실시예들에서, 고객은 고객 디바이스(150)(예를 들어, 컴퓨터, 랩탑 컴퓨터, 모바일 컴퓨팅 디바이스 등), POS 디바이스(152)(예를 들어, 소매 디바이스, 키오스크, 자동화된 체크아웃 시스템 등), 또는 관련 분야에 알려져 있는 임의의 다른 상업 인터페이스 디바이스를 통해 상호 작용할 수 있다. 전자 상거래 플랫폼(100)은 물리적 위치들에서(예를 들어, 머천트의 스토어프론트에서 또는 다른 곳에서) POS 디바이스들(152)을 통한 온라인 스토어(138)를 통해 머천트들이 고객들에게 이르는 것을 가능하게 하여, 고객들에게 이르기 위한 시스템을 제공하고, 고객들에게 이르고 이들과 상호 작용하는 데 이용 가능한 실제 또는 가상 경로들에 대한 머천트 서비스들을 용이하게 하는 전자 통신 설비(129) 등을 통하여 대화를 통해 고객들과의 상업을 촉진할 수 있다.
일부 실시예들에서 그리고 본원에 추가로 설명하는 바와 같이, 전자 상거래 플랫폼(100)은 프로세서 및 메모리를 포함하는 처리 설비를 통해 구현될 수 있으며, 처리 설비는, 실행될 때 본원에 설명하는 바와 같은 전자 상거래 및 지원 기능들을 전자 상거래 플랫폼(100)이 수행하게 하는 명령어들의 세트를 저장한다. 처리 설비는 서버, 클라이언트, 네트워크 인프라 구조체, 모바일 컴퓨팅 플랫폼, 클라우드 컴퓨팅 플랫폼, 정지형 컴퓨팅 플랫폼, 또는 다른 컴퓨팅 플랫폼의 일부이고, 전자 상거래 플랫폼(100), 머천트 디바이스들(102), 지불 게이트웨이들(106), 애플리케이션 개발자들, 채널들(110A 및 110B), 배송 제공자들(112), 고객 디바이스들(150), 판매 시점 디바이스들(152) 등의 전자 구성 요소들 사이에서 전자 접속 및 통신을 제공할 수 있다. 전자 상거래 플랫폼(100)은 소프트웨어가 승낙 기반으로 허가를 받고 중심적으로 호스팅되는(예를 들어, 웹 브라우저 또는 다른 애플리케이션을 통하여 클라이언트(예를 들어, 신 클라이언트)를 이용하여 사용자들에 의해 액세스되고, POS 디바이스들을 통해 액세스되는 등인) 소프트웨어 및 전달 모델에서와 같은 클라우드 컴퓨팅 서비스, 서비스로서의 소프트웨어(SaaS), 서비스로서의 인프라 구조체(IaaS), 서비스로서의 플랫폼(PaaS), 서비스로서의 데스크탑(DaaS), 서비스로서의 관리되는 소프트웨어(MSaaS), 서비스로서의 모바일 백엔드(MBaaS), 서비스로서의 정보 기술 관리(ITMaaS) 등으로서 구현될 수 있다. 일부 실시예들에서, 전자 상거래 플랫폼(100)의 요소들은 iOS, Android, 웹 등과 같은 다양한 플랫폼 및 운영 체제 상에서 작동하도록 구현될 수 있다(예를 들어, 관리자(114)는 각각 유사한 기능을 갖는 iOS, Android 및 웹에 대한 주어진 온라인 스토어에 대해 다수의 인스턴스에서 구현됨).
일부 실시예들에서, 온라인 스토어(138)는 전자 상거래 플랫폼(100)의 서버에 의해 제공되는 웹페이지를 통해 고객 디바이스(150)에 제공될 수 있다. 서버는 고객 디바이스(150) 상에 설치되는 브라우저 또는 다른 애플리케이션으로부터 웹페이지에 대한 요청을 수신할 수 있으며, 브라우저(또는 다른 애플리케이션)은 IP 어드레스를 통해 서버에 연결되며, IP 어드레스는 도메인 이름을 변환시킴으로써 얻어진다. 답하여, 서버는 요청된 웹페이지를 다시 송신한다. 웹페이지들은 하이퍼텍스트 마크업 언어(HTML), 템플릿 언어, 자바스크립트 등, 또는 이들의 임의의 조합으로 기록되거나 이것들을 포함할 수 있다. 예를 들어, HTML은 웹페이지의 레이아웃, 형식 및 콘텐츠와 같은 웹페이지에 대한 정적인 정보를 기술하는 컴퓨터 언어이다. 웹사이트 설계자들 및 개발자들은 다수의 페이지 상에서 동일한 정적 콘텐츠, 및 페이지마다 변화되는 동적 콘텐츠를 결합시키는 웹페이지들을 구축하는 데 템플릿 언어를 사용할 수 있다. 템플릿 언어는, 온라인 스토어로부터의 데이터를 페이지에 동적으로 상주시키면서 웹페이지의 레이아웃을 한정하는 정적 요소들을 재사용하는 것을 가능하게 할 수 있다. 정적 요소들은 HTML로 기록될 수 있고, 동적 요소들은 템플릿 언어로 기록될 수 있다. 파일에서의 템플릿 언어 요소들은 플레이스홀더들로서의 역할을 할 수 있어, 예를 들어 테마가 설치될 때, 파일에서의 코드는 컴파일되고 고객 디바이스(150)로 송신되고 그 후 템플릿 언어는 온라인 스토어(138)로부터의 데이터로 대체된다. 템플릿 및 테마들은 태그들, 객체들 및 필터들을 고려할 수 있다. 클라이언트 디바이스 웹 브라우저(또는 다른 애플리케이션)은 그 후 그에 상응하게 페이지를 렌더링한다.
일부 실시예들에서, 온라인 스토어들(138)은 전자 상거래 플랫폼(100)에 의해 고객들에게 제공될 수 있으며, 고객들은 이용 가능한 다양한 제품을 브라우징하고 구입할 수 있다(예를 들어, 다양한 제품을 장바구니에 추가하고, 구입 버튼을 통해 즉시 구입하는 등일 수 있음). 온라인 스토어들(138)은 다양한 제품이 (머천트로부터 직접적으로 이루어지는 것이 아니라) 전자 상거래 플랫폼(100)을 통해 제공되고 있다는 것을 고객들이 반드시 인지하지는 않는 상태로 명료한 방식으로 고객들에게 제공될 수 있다. 머천트들은 머천트가 구성 가능한 도메인 이름, 주문 제작 가능 HTML 테마 등을 이용하여, 머천트들의 온라인 스토어(138)를 주문 제작할 수 있다. 머천트들은, 예를 들어 온라인 스토어의 제품 체계 내에 나타내어지는 동일한 근본적인 제품 및 비즈니스 데이터를 가지면서, 머천트들의 테마를 변경함으로써 머천트들의 온라인 스토어(138)의 룩앤필을 머천트들이 선택하고 변경할 수 있는 테마 시스템을 통해 머천트들의 웹사이트의 모양 및 분위기를 주문 제작할 수 있다. 테마들은 사용자들이 융통성 있게 사용자들의 웹사이트의 설계를 주문 제작하는 것을 가능하게 하는 테마 편집기인, 설계 인터페이스를 통해 추가로 주문 제작될 수 있다. 테마들은 특정 색상들, 폰트들 및 미리 구축된 레이아웃 방식들과 같은 양상들을 변경하는 테마-특정 설정들을 이용하여 주문 제작될 수도 있다. 온라인 스토어는 웹사이트 콘텐츠에 대한 콘텐츠 관리 시스템을 구현할 수 있다. 머천트들은 블로그 포스트들 또는 정적 페이지들을 쓰고, 블로그, 아티클 등을 통해서와 같이 블로그 포스트들 또는 정적 페이지들을 머천트들의 온라인 스토어(138)에 공개할 뿐만 아니라, 내비게이션 메뉴들을 구성할 수 있다. 머천트들은 (예를 들어, 데이터(134)로서의) 시스템에 의한 저장을 위해서와 같이 전자 상거래 플랫폼(100)에 (예를 들어, 제품들에 대한) 이미지들, 영상, 콘텐츠, 데이터 등을 업로드할 수 있다. 일부 실시예들에서, 전자 상거래 플랫폼(100)은 이미지들을 크기 조절하고, 이미지를 제품과 연관시키고, 텍스트를 추가하고 이미지와 연관시키고, 새로운 제품 변형예에 대한 이미지를 추가하고, 이미지들을 보호하는 등의 기능들을 제공할 수 있다.
본원에 설명하는 바와 같이, 전자 상거래 플랫폼(100)은 전화기를 통해서뿐만 아니라 본원에 설명하는 바와 같은 물리적 POS 디바이스들(152)을 통한 온라인 스토어(138)를 포함하는 다수의 상이한 채널(110A 및 110B)을 통해 제품들에 대한 트랜잭션 설비들을 머천트들에게 제공할 수 있다. 전자 상거래 플랫폼(100)은, 예를 들어 머천트들의 온라인 스토어와 연관된 도메인 서비스(118), 고객과의 트랜잭션들을 용이하게 하는 지불 서비스들(120), 구매된 제품들에 대한 고객 배송 옵션들을 제공하는 배송 서비스들(122), 제품 보호 및 채무, 머천트 청구서 발부 등과 연관된 리스크 및 보험 서비스들(124)을 제공하는 온라인 비즈니스를 실행하는 것과 연관된 비즈니스 지원 서비스들(116), 관리자(114) 등을 포함할 수 있다. 서비스들(116)은 지불 처리에 대한 지불 게이트웨이(106), 제품들의 출하를 더 신속히 처리하는 배송 제공자들(112) 등을 통해서과 같이 외부 설비들과 연관하여 또는 전자 상거래 플랫폼(100)을 통하여 제공될 수 있다.
일부 실시예들에서, 전자 상거래 플랫폼(100)은, 예를 들어 실시간 업데이트들, 추적, 자동 속도 계산, 대량 주문 대비, 라벨 프린팅 등을 머천트들에게 제공하는 (예를 들어, 전자 상거래 플랫폼 배송 설비 또는 제3자 배송 운송업자를 통한) 통합된 배송 서비스들(122)을 제공할 수 있다.
도 2는 일일 업무들, 스토어의 최근의 활동, 그리고 머천트가 자신의 비즈니스를 구축하는 데 취할 수 있는 다음 단계들에 대한 정보를 나타낼 수 있는 관리자(114)의 홈 페이지에 대한 비제한적인 실시예를 도시한다. 일부 실시예들에서, 머천트는 데스크탑 컴퓨터 또는 모바일 디바이스로부터와 같이 머천트 디바이스(102)를 통하여 관리자(114)에 로그인하고, 온라인 스토어(138)의 최근의 활동을 보는 것, 온라인 스토어(138)의 카탈로그를 업데이트하는 것, 주문, 최근의 방문 활동, 총 주문 활동을 관리하는 것 등과 같은 머천트의 온라인 스토어(138)의 양상들을 관리할 수 있다. 일부 실시예들에서, 머천트는 도 2에 도시된 것과 같은 사이드바를 사용함으로써 관리자(114)의 상이한 구획들에 액세스하는 것이 가능할 수 있다. 관리자(114)의 구획들은 주문, 제품, 고객, 이용 가능한 보고서 및 할인을 포함하는 머천트의 비즈니스의 핵심 양상들에 액세스하고 이것들을 관리하기 위한 다양한 인터페이스를 포함할 수 있다. 관리자(114)는 온라인 스토어를 포함하는 스토어에 대한 판매 채널들을 관리하기 위한 인터페이스들, 스토어에 액세스하기 위해 고객들이 이용할 수 있는 모바일 애플리케이션(들)(모바일 앱), POS 디바이스들, 및/또는 구입 버튼을 포함할 수도 있다. 관리자(114)는 머천트의 계정 상에 설치되는 애플리케이션들(앱들)을 관리하기 위한 인터페이스들을 포함할 수도 있으며; 설정들이 머천트의 온라인 스토어(138) 및 계정에 적용된다. 머천트는 제품, 페이지 또는 다른 정보를 찾는 데 검색 바를 사용할 수 있다. 머천트가 사용하고 있는 디바이스(102) 또는 소프트웨어 애플리케이션에 의존하여, 머천트는 관리자(114)를 통한 상이한 기능에 대해 인에이블링될 수 있다. 예를 들어, 머천트가 브라우저로부터 관리자(114)에 로그인하면, 머천트는 자신의 온라인 스토어(138)의 모든 양상을 관리하는 것이 가능할 수 있다. 머천트가 (예를 들어, 모바일 애플리케이션을 통하여) 모바일 디바이스로부터 로그인하면, 머천트는 온라인 스토어(138)의 최근의 활동을 보는 것, 온라인 스토어(138)의 카탈로그를 업데이트하는 것, 주문들을 관리하는 것 등과 같은 온라인 스토어(138)의 양상들 모두 또는 서브세트를 보는 것이 가능할 수 있다.
상업 및 머천트의 온라인 스토어(138)에의 방문자들에 대한 보다 상세한 정보는, 예를 들어 머천트의 전체 비즈니스에 대한 판매 요약, 활성 판매 채널들에 대한 특정 판매 및 관여 데이터 등을 표시하는 획득 보고서들 또는 메트릭들을 통해 볼 수 있다. 보고서들은 획득 보고서, 행위 보고서, 고객 보고서, 재무 보고서, 마케팅 보고서, 판매 보고서, 맞춤 보고서 등을 포함할 수 있다. 머천트는 드롭 다운 메뉴들을 사용함으로써와 같이 상이한 기간들(예를 들어, 수 일, 수 주, 수 개월 등)로부터의 상이한 채널들(110A 및 110B)에 대한 판매 데이터를 보는 것이 가능할 수 있다. 스토어의 판매 및 관여 데이터의 보다 상세한 보기를 원하는 머천트에게 개요 대시보드가 제공될 수 있다. 머천트의 계정 상의 활동의 개요를 예시하기 위해 홈 메트릭 구획에서의 활동 피드가 제공될 수 있다. 예를 들어, '모든 최근의 활동 보기' 대시보드 버튼을 클릭함으로써, 머천트는 머천트의 계정 상에서 더 긴 피드의 최근의 활동을 보는 것이 가능할 수 있다. 홈 페이지는, 예를 들어 계정 상태, 성장, 최근의 고객 활동 등에 기반한 머천트의 온라인 스토어(138)에 대한 통지들을 나타낼 수 있다. 통지들은 지불을 캡처하는 것, 주문을 처리된 것으로 마킹하는 것, 완료된 주문을 아카이빙하는 것 등과 같은 프로세스를 통해 머천트가 내비게이팅하는 것을 돕도록 제공될 수 있다.
전자 상거래 플랫폼(100)은 제품의 판매 등을 제공하는 것에 대한 잠재력을 증가시키기 위해서와 같이 통신을 집계하고 분석하도록, 예를 들어 머천트들, 고객들, 머천트 디바이스들(102), 고객 디바이스들(150), POS 디바이스들(152) 등 사이의 통신 상호 작용들을 수집하고 분석하는 전자 메시징 집계 설비를 활용하여, 전자 통신 및 마케팅을 제공하는 통신 설비(129) 및 연관된 머천트 인터페이스를 제공할 수 있다. 예를 들어, 고객은 고객과 머천트(또는 머천트를 나타내는 자동화된 프로세서 기반 중개인) 사이의 대화를 생성할 수 있는 제품과 관련된 질문을 가질 수 있으며, 통신 설비(129)는 판매 확률을 개선할 방법에 대해 상호 작용을 분석하고 머천트에게 분석 결과를 제공한다.
전자 상거래 플랫폼(100)은 보안 카드 서버 환경을 통해서와 같이 고객들과의 보안 재무 트랜잭션들에 대한 재무 설비(120)를 제공할 수 있다. 전자 상거래 플랫폼(100)은 재무를 조정하고, 머천트들에게 청구서를 보내고, (예를 들어, 자본금을 사용할 때) 전자 상거래 플랫폼(100) 금융 기관 계정과 머천트의 은행 계정 사이의 자동 결제(ACH) 이체를 수행하는 등을 위해, 예를 들어 지불 카드 산업 데이터(PCI) 환경들(예를 들어, 카드 서버)에서의 신용 카드 정보를 저장할 수 있다. 이러한 시스템들은 사베인즈 옥슬리 법(SOX) 준수 및 이러한 시스템들의 개발 및 운영에서 필요한 높은 레벨의 주의를 가질 수 있다. 재무 설비(120)는 자본금의 대출(예를 들어, 자금 대출, 현금 선지급 등) 및 보험의 제공을 통해서와 같이 재무 지원을 머천트들에게 제공할 수도 있다. 게다가, 전자 상거래 플랫폼(100)은 마케팅 및 파트너 서비스들의 세트를 제공하고 전자 상거래 플랫폼(100)과 파트너들 사이의 관계를 제어할 수 있다. 마케팅 및 파트너 서비스들은 전자 상거래 플랫폼(100)으로 새로운 머천트들을 연결시키고 온보딩할 수도 있다. 이러한 서비스들은 전자 상거래 플랫폼(100)에 걸쳐 머천트들이 작업하는 것을 더 용이하게 함으로써 머천트 성장을 가능하게 할 수 있다. 이러한 서비스들을 통해, 머천트들에게 전자 상거래 플랫폼(100)을 통한 도움 설비들이 제공될 수 있다.
일부 실시예들에서, 온라인 스토어(138)는 다수의 독립적으로 운영되는 스토어프론트를 지원하고 다양한 제품에 대해 매일 큰 용량의 트랜잭션 데이터를 처리할 수 있다. 트랜잭션 데이터는 고객 접촉 정보, 청구서 발부 정보, 배송 정보, 구매되는 제품들에 대한 정보, 렌더링되는 서비스들에 대한 정보, 및 전자 상거래 플랫폼(100)을 통한 비즈니스와 연관된 임의의 다른 정보를 포함할 수 있다. 일부 실시예들에서, 전자 상거래 플랫폼(100)은 데이터 설비(134)에 이러한 데이터를 저장할 수 있다. 트랜잭션 데이터는 온라인 상업과 관련되고, 대시보드 인터페이스, 보고서 등을 통해 제공되는, 예를 들어 소비자 동향, 마케팅 및 판매 식견, 판매를 개선하기 위한 권고, 고객 행위의 평가, 마케팅 및 판매 모델링, 사기 행위의 동향 등을 제공하는, 결국 머천트들 또는 제3자 상업 엔티티들에 제공될 수 있는, 분석 정보(132)를 만들어 내도록 처리될 수 있다. 전자 상거래 플랫폼(100)은 비즈니스 및 머천트 트랜잭션들에 대한 정보를 저장할 수 있고, 데이터 설비(134)는 데이터를 강화시키고, 이것에 기여하고, 이것을 개선하고, 추출하는 많은 방식을 가질 수 있으며, 시간이 지남에 따라, 수집된 데이터는 전자 상거래 플랫폼(100)의 양상들에 대한 개선을 가능하게 할 수 있다.
다시 도 1을 참조하면 일부 실시예들에서, 전자 상거래 플랫폼(100)은 (예를 들어, 제품, 재고품, 고객, 주문, 공동 작업, 공급자, 보고서, 재무, 리스크 및 사기 행위 등과 관련되는) 복수의 온라인 스토어(138)에 대한 지원 및 서비스들을 가능하게 하도록 콘텐츠 관리, 태스크 자동화 및 데이터 관리를 위한 상업 관리 엔진(136)을 갖도록 구성되지만, 점점 커지는 갖가지의 머천트 온라인 스토어, POS 디바이스, 제품 및 서비스를 수용하는 데 필요한 더 많은 융통성 및 맞춤 프로세스들을 가능하게 하는 애플리케이션들(142A 및 142B)을 통해 확장 가능할 수 있으며, 애플리케이션들(142A)이 전자 상거래 플랫폼(100)의 내부에 제공될 수 있거나 애플리케이션들(142B)이 전자 상거래 플랫폼(100)의 외부로부터 제공될 수 있다. 일부 실시예들에서, 애플리케이션(142A)은 플랫폼(100)을 제공하는 동일한 당사자 또는 상이한 당사자에 의해 제공될 수 있다. 일부 실시예들에서, 애플리케이션(142B)은 플랫폼(100)을 제공하는 동일한 당사자 또는 상이한 당사자에 의해 제공될 수 있다. 상업 관리 엔진(136)은 고객 식별자, 주문 식별자, 온라인 스토어 식별자 등에 의해서와 같이 기능들 및 데이터의 분배(예를 들어, 분할)를 통한 융통성 및 확장성을 위해 구성될 수 있다. 상업 관리 엔진(136)은 스토어 특정 비즈니스 로직을 수용할 수 있고, 일부 실시예들에서, 관리자(114) 및/또는 온라인 스토어(138)를 포함할 수 있다.
상업 관리 엔진(136)은 전자 상거래 플랫폼(100)의 기본 또는 “핵심” 기능들을 포함하고, 이에 따라 본원에 설명하는 바와 같이, 온라인 스토어들(138)을 지원하는 모든 기능이 포함되는 것이 적절하지 않을 수도 있다. 예를 들어, 상업 관리 엔진(136)으로 포함되는 기능들은 핵심 기능 한계점을 초과할 필요가 있을 수 있으며, 이를 통해, 기능이 상업 경험에의 핵심이고(예를 들어, 채널, 관리자 인터페이스, 머천트 위치, 산업, 제품 타입 등에 걸쳐서와 같이 다수의 온라인 스토어 활동에 공통이고), 한 번에 단일 온라인 스토어(138)의 맥락에 제한되는(예를 들어, 온라인 스토어들(138)이 서로의 데이터에 액세스할 수 없는 것을 보장하는, 코드가 한 번에 다수의 온라인 스토어(138)와 상호 작용할 수 없는, 온라인 스토어 '격리 원리'를 구현하는), 온라인 스토어들(138)에 걸쳐 재사용 가능하고(예를 들어, 핵심 기능들에 걸쳐 재사용될/변경될 수 있는 기능들), 트랜잭션 작업량을 제공하는 등이라는 것이 판단될 수 있다. 무슨 기능들이 구현되는지의 제어를 유지 관리하는 것은, 많은 필요한 특징이 상업 관리 엔진(136)에 의해 직접 제공되거나, 애플리케이션 프로그래밍 인터페이스(API) 연결을 통한 애플리케이션들(142A 및 142B) 및 채널들(110A 및 110B)로의 상업 관리 엔진(136)의 확장에 의해서와 같이 인터페이스(140A 및 140B)를 통해 가능해짐에 따라, 상업 관리 엔진(136)이 대응하게 유지되는 것을 가능하게 할 수 있으며, 인터페이스들(140A)은 전자 상거래 플랫폼(100)의 내부의 애플리케이션들(142A) 및/또는 채널들(110A)에 제공될 수 있거나 인터페이스들(140B)은 전자 상거래 플랫폼(100)의 외부의 애플리케이션들(142B) 및/또는 채널들(110B)에 제공될 수 있다. 일반적으로, 플랫폼(100)은 다른 플랫폼, 시스템, 소프트웨어, 데이터 소스, 코드 등에의 연결 및 이것들과의 통신을 용이하게 하는 인터페이스들(140A 및 140B)(확장부, 연결기, API 등일 수 있음)을 포함할 수 있다. 그러한 인터페이스들(140A 및 140B)은 보다 일반적으로 상업 관리 엔진(136)의 인터페이스(140A) 또는 플랫폼(100)의 인터페이스(140B)일 수 있다. 상업 관리 엔진(136)의 기능을 제한하는 것에 주의하지 않으면, 예컨대 느린 데이터베이스들 또는 중대하지 않은 백엔드 고장들을 통한 인프라 구조체 저하를 통해, 데이터 센터가 오프라인이 되는 것으로와 같이 파국적 인프라 구조체 고장을 통해, 예상되는 것보다 실행하는 데 더 오래 걸리는 새로운 코드가 전개되는 것을 통해, 및 기타 등등으로 인해 반응성이 위태롭게 될 수 있다. 이러한 상황들을 방지하거나 완화시키기 위해, 상업 관리 엔진(136)은 타임아웃들, 큐들, 저하를 방지하기 위한 후단 압박, 등을 활용하는 구성을 통해서와 같이 반응성을 유지 관리하도록 구성될 수 있다.
온라인 스토어 데이터를 격리시키는 것이 온라인 스토어들(138)과 머천트들 사이의 데이터 프라이버시를 유지 관리하는 데 중요하지만, 둘 다가 양호하게 수행하기 위해 다수의 온라인 스토어(138)로부터의 정보를 필요로 하는, 예를 들어 주문 리스크 평가 시스템 또는 플랫폼 지불 설비와 같이 교차 스토어 데이터를 수집하고 사용하는 것에 대한 이유들이 있을 수 있다. 일부 실시예들에서, 격리 원리를 위반하는 것보다는 오히려, 상업 관리 엔진(136) 밖으로, 그리고 전자 상거래 플랫폼(100) 내의 이러한 구성 요소들 자체의 인프라 구조체로 이러한 구성 요소들을 이동시키는 것이 바람직할 수 있다.
일부 실시예들에서, 전자 상거래 플랫폼(100)은 플랫폼 지불 설비(120)를 제공할 수 있으며, 플랫폼 지불 설비(120)는 상업 관리 엔진(136)으로부터의 데이터를 활용하지만 격리 원리를 위반하지 않도록 외부에 위치될 수 있는 구성 요소의 다른 예이다. 플랫폼 지불 설비(120)는 온라인 스토어들(138)과 상호 작용하는 고객들이 상업 관리 엔진(136)에 의해 자신의 지불 정보를 안전하게 저장하는 것을 가능하게 할 수 있어 고객들이 상기 지불 정보를 한 번 입력하기만 하면 된다. 고객이 상이한 온라인 스토어(138)를 방문할 때, 고객이 결코 이전에 거기에 있지 않았었더라도, 플랫폼 지불 설비(120)는 더 빠르고 정확한 체크아웃을 가능하게 하도록 고객의 정보를 회수할 수 있다. 이는, 예를 들어 고객 구매들에 대하여 이용의 용이함 때문에 더 흔하게 체크아웃하는 더 많은 고객이 있으므로, 더 많은 머천트가 가입함에 따라, 전자 상거래 플랫폼(100)의 머천트들에게 전자 상거래 플랫폼(100)이 더 유용해지는 교차 플랫폼 네트워크 효과를 제공할 수 있다. 이러한 네트워크의 효과를 최대화하기 위해, 주어진 고객에 대한 지불 정보는 온라인 스토어의 체크아웃으로부터 회수 가능할 수 있어, 온라인 스토어들(138)에 걸쳐 정보가 전반적으로 이용 가능해지는 것을 가능하게 한다. 임의의 다른 온라인 스토어(138)에 저장된 지불 정보를 회수하기 위해 각각의 온라인 스토어(138)가 임의의 다른 온라인 스토어(138)에 연결될 수 있는 것은 어렵고 오류가 발생하기 쉬울 것이다. 결과적으로, 플랫폼 지불 설비는 상업 관리 엔진(136)의 외부에 구현될 수 있다.
상업 관리 엔진(136) 내에 포함되지 않는 기능들의 경우, 애플리케이션들(142A 및 142B)은 전자 상거래 플랫폼(100)에 특징들을 추가하는 방식을 제공한다. 애플리케이션들(142A 및 142B)은 머천트의 온라인 스토어(138)에 액세스하고 이것 상의 데이터를 변경하고, 관리자(114)를 통한 태스크들을 수행하고, (예를 들어, 확장부들/API를 통해 표면화되는) 사용자 인터페이스를 통해 머천트에 대한 새로운 플로우들을 생성하는 것 등을 할 수 있다. 머천트들은 애플리케이션 검색, 추천 및 지원부(128)를 통해 애플리케이션들(142A 및 142B)을 찾아내고 설치하는 것이 가능해질 수 있다. 일부 실시예들에서, 핵심 제품들, 핵심 확장점들, 애플리케이션들 및 관리자(114)는 함께 작용하도록 개발될 수 있다. 예를 들어, 애플리케이션 확장점들은 확장부를 통해 머천트에게 기능을 전할 수 있는 애플리케이션들을 통하여 핵심 특징들이 확장될 수 있도록 관리자(114)의 내부에 구축될 수 있다.
일부 실시예들에서, 애플리케이션들(142A 및 142B)은 애플리케이션(142A 및 142B)이 머천트에게 트랜잭션 데이터를 표면화할 수 있는 경우(예를 들어, 앱: “엔진은 내장된 앱 SDK를 이용하여 모바일 및 웹 관리자에서 나의 앱 데이터를 표면화하라”), 그리고/또는 상업 관리 엔진(136)이 요구 시에 작업을 수행할 것을 애플리케이션에 요청할 수 있는 경우(엔진: “앱은 이러한 체크아웃에 대한 지방세 계산 결과를 나에게 달라”)와 같이 인터페이스(140A 및 140B)를 통해 머천트에게 기능을 전할 수 있다.
애플리케이션들(142A 및 142B)은 온라인 스토어들(138) 및 채널들(110A 및 110B)을 지원하고, 머천트 지원을 제공하고, 다른 서비스들과 통합되는 것 등을 할 수 있다. 상업 관리 엔진(136)이 온라인 스토어(138)에 서비스들의 토대를 제공할 수 있는 경우, 애플리케이션들(142A 및 142B)은 특정한 그리고 때때로 고유한 요구들을 만족시키는 방식을 머천트들에게 제공할 수 있다. 상이한 머천트들은 상이한 요구들을 가질 것이므로, 상이한 애플리케이션들(142A 및 142B)로부터 이익을 얻을 수 있다. 애플리케이션들(142A 및 142B)은 전자 상거래 플랫폼(100)이 머천트를 위해 수행하는 기능의 타입에 따라 애플리케이션들이 태깅되는 것을 가능하게 하는 애플리케이션 분류 체계(카테고리들)의 개발을 통한 전자 상거래 플랫폼(100)을 통해; 검색, 순위 매김 및 추천 모델들을 지원하는 애플리케이션 데이터 서비스들을 통해; 애플리케이션 스토어, 홈 정보 카드들, 애플리케이션 설정 페이지와 같은 애플리케이션 탐색 인터페이스들을 통해; 기타 등등을 통해 더 양호하게 찾게 될 수 있다.
애플리케이션들(142A 및 142B)은, 예를 들어 상업 관리 엔진(136)을 통해 그리고 이것 내에서 이용 가능한 기능 및 데이터를 (예를 들어, REST, GraphQL 등을 통해) 애플리케이션들의 기능에 드러내는 데 API들을 이용하여 인터페이스(140A 및 140B)를 통해 상업 관리 엔진(136)에 연결될 수 있다. 예를 들어, 전자 상거래 플랫폼(100)은, 예를 들어 애플리케이션 확장부, 프로세스 흐름 서비스, 개발자 지향 리소스 등을 포함하는 머천트 및 파트너 지향 제품들 및 서비스들에 API 인터페이스들(140A 및 140B)을 제공할 수 있다. 고객들이 쇼핑을 위해 모바일 디바이스들을 더 빈번하게 사용하면서, 모바일 이용과 관련되는 애플리케이션들(142A 및 142B)은 관련된 성장하는 상업 트래픽을 지원하는 API들의 보다 광범위한 사용으로부터 이익을 얻을 수 있다. (예를 들어, 애플리케이션 개발을 위해 제안되는 바와 같은) 애플리케이션들 및 API들의 사용을 통해 제공되는 융통성은 상업 관리 엔진(136)에 대한 끊임 없는 변화를 필요로 하지 않고 머천트들(그리고 내부 API들을 통한 내부 개발자들)의 새롭고 고유한 요구들을 전자 상거래 플랫폼(100)이 더 양호하게 수용하는 것을 가능하게 하므로, 머천트들이 필요로 할 때, 머천트들이 필요로 하는 것을 머천트들에게 제공한다. 예를 들어, 배송 서비스들(122)은 배송 또는 운송업자 서비스 API를 통해 상업 관리 엔진(136)과 통합될 수 있으므로, 상업 관리 엔진(136)에서 실행되는 코드에 직접 영향을 주지 않고 전자 상거래 플랫폼(100)이 배송 서비스 기능을 제공하는 것을 가능하게 한다.
비영업 부서 운영들과 연관된(머천트 지향 애플리케이션들(142A 및 142B)) 그리고 온라인 스토어(138)에서의(고객 지향 애플리케이션들(142A 및 142B)) 문제들과 같은 많은 머천트 문제는 애플리케이션 개발을 통해 파트너들이 머천트 워크플로우들을 개선하고 확장시키게 함으로써 해결될 수 있다. 비즈니스를 하는 것의 일부로서, 많은 머천트는 비영업 부서 태스크들(예를 들어, 판촉, 재고품, 할인, 주문 처리 등) 및 온라인 스토어 태스크들(예를 들어, 머천트들의 온라인 숍과 관련되는 애플리케이션들, 반짝 세일의 경우, 새로운 제품 제공 등)을 위해 매일 모바일 및 웹 관련 애플리케이션들을 사용할 것이며, 애플리케이션들(142A 및 142B)은 확장부/API(140A 및 140B)를 통해, 빠르게 성장하는 시장에서 제품들을 보고 구매하는 데 용이하게 하는 것을 돕는다. 일부 실시예들에서, 파트너, 애플리케이션 개발자, 내부 애플리케이션 설비 등에는 애플리케이션 인터페이스를 샌드박스화하는 프레임을 관리자(114) 내에 생성하는 것을 통해서와 같이 소프트웨어 개발 키트(SDK)가 구비될 수 있다. 일부 실시예들에서, 관리자(114)는 프레임 내에서 일어나는 것을 통제하지도 않고 인지하지도 않을 수 있다. SDK는, 예를 들어 상업 관리 엔진(136)의 확장부로서의 역할을 하는 전자 상거래 플랫폼(100)의 룩앤필을 모방하는 인터페이스들을 생성하도록 사용자 인터페이스 키트와 함께 사용될 수 있다.
API들을 활용하는 애플리케이션들(142A 및 142B)은 요구 시에 데이터를 풀링할 수 있지만, 흔히 또한, 업데이트들이 일어날 때 데이터를 푸싱되게 할 필요가 있다. 업데이트 이벤트들은, 예를 들어 고객 생성, 제품 변경 또는 주문 취소와 같은 승낙 모델에서 구현될 수 있다. 업데이트 이벤트들은, 예를 들어 로컬 데이터베이스를 동기화하고, 외부 통합 파트너에 통지하는 등을 위해 상업 관리 엔진(136)의 변경된 상태에 대하여 필요한 업데이트들을 머천트들에게 제공할 수 있다. 업데이트 이벤트들은 상업 관리 엔진(136)을 내내 폴링할 필요 없이 이러한 기능이 업데이트 이벤트 승낙을 통해서와 같이 업데이트들을 점검하는 것을 가능하게 할 수 있다. 일부 실시예들에서, 업데이트 이벤트 승낙과 관련되는 변화가 일어날 때, 상업 관리 엔진(136)은 미리 정해진 회신 URL과 같은 요청을 발송할 수 있다. 이러한 요청의 대부분은 대상의 새로운 상태, 그리고 행위 또는 이벤트의 설명을 포함할 수 있다. 업데이트 이벤트 승낙들은 관리자 설비(114)에서 수작업으로, 또는 (예를 들어, API(140A 및 140B)를 통하여) 자동적으로 생성될 수 있다. 일부 실시예들에서, 업데이트 이벤트들은 큐잉되고 업데이트 이벤트들을 트리거하였던 상태 변화로부터 비동기로 처리될 수 있으며, 상기 상태 변화는 실시간으로 분배되지 않는 업데이트 이벤트 통지를 생성할 수 있다.
일부 실시예들에서, 전자 상거래 플랫폼(100)은 애플리케이션 검색, 추천 및 지원부(128)를 제공할 수 있다. 애플리케이션 검색, 추천 및 지원부(128)는 애플리케이션들의 개발을 돕는 개발자 제품들 및 툴들, (예를 들어, 개발자들에게 개발 인터페이스, 관리자들에게 애플리케이션들의 관리, 머천트들에게 애플리케이션들의 맞춤화를 제공하는 등의) 애플리케이션 대시보드, (예를 들어, 설치되기 전에, 기준들이 충족되어야 하는 경우와 같이 공공 액세스를 위한 또는 머천트에 의한 사적인 사용을 위한) 애플리케이션(142A 및 142B)을 설치하고 이것에 대한 액세스를 제공하는 것에 대한 승인들을 제공하기 위한 설비들, 머천트의 온라인 스토어(138)에 대한 요구를 만족시키는 애플리케이션들(142A 및 142B)을 머천트가 검색하는 것을 용이하게 하는 애플리케이션 검색, 머천트들의 온라인 스토어(138)를 통한 사용자 경험을 개선할 수 있는 방법에 대한 제안들을 머천트들에게 제공하는 애플리케이션 추천들, 상업 관리 엔진(136) 내의 핵심 애플리케이션 능력들의 설명 등을 포함할 수 있다. 이러한 지원 설비들은 자신만의 애플리케이션(142A 및 142B)을 개발하는 머천트, (예를 들어, 머천트에 의해 계약되고, 대중에게 제안하기 위해 자력으로 개발되고, 전자 상거래 플랫폼(100)과 연관하여 사용을 위해 계약되는 등인) 애플리케이션(142A 및 142B)을 개발하는 제3자 개발자, 또는 애플리케이션(142A 또는 142B)이 전자 상거래 플랫폼(100)과 연관된 내부 개인 리소스들에 의해 개발되는 것을 포함하는 임의의 엔티티에 의해 수행되는 애플리케이션 개발에 의해 활용될 수 있다. 일부 실시예들에서, 애플리케이션들(142A 및 142B)은, 예를 들어 (예를 들어, API를 통해) 애플리케이션에 연계되고, 애플리케이션을 검색하고, 애플리케이션 추천을 하는 등을 위한 애플리케이션 식별자(ID)가 할당될 수 있다.
상업 관리 엔진(136)은 전자 상거래 플랫폼(100)의 기본 기능들을 포함하고 이러한 기능들을 API들(140A 및 140B)을 통해 애플리케이션들(142A 및 142B)에 드러낼 수 있다. API들(140A 및 140B)은 애플리케이션 개발을 통해 구축되는 상이한 타입들의 애플리케이션들을 인에이블링할 수 있다. 애플리케이션들(142A 및 142B)은 머천트들에 대한 매우 다양한 요구를 만족시키는 것이 가능할 수 있지만, 3개의 카테고리: 고객 지향 애플리케이션, 머천트 지향 애플리케이션, 통합 애플리케이션 등으로 대략적으로 그룹화될 수 있다. 고객 지향 애플리케이션들(142A 및 142B)은 머천트들이 제품들을 목록으로 나열할 수 있는 곳들이고 제품들이 구매되게 하는 온라인 스토어(138) 또는 채널들(110A 및 110B)(예를 들어, 반짝 세일(예를 들어, 제3자 소스들로부터의 편의 주의적 판매 기회들로부터의 머천트 제품들)에 대한 온라인 스토어, 애플리케이션들, 모바일 스토어 애플리케이션, 소셜 미디어 채널, 도매 구매를 제공하는 애플리케이션 등)을 포함할 수 있다. 머천트 지향 애플리케이션들(142A 및 142B)은 머천트가 (예를 들어, 웹 또는 웹사이트, 또는 모바일 디바이스들과 관련되는 애플리케이션들을 통해) 자신의 온라인 스토어(138)를 관리하고, (예를 들어, POS 디바이스들과 관련되는 애플리케이션들을 통해) 자신의 비즈니스를 하고, (예를 들어, 배송(예를 들어, 드롭 배송), 자동화되는 중개인들의 이용, 프로세스 흐름 개발 및 개선들의 이용과 관련되는 애플리케이션들을 통해) 자신의 비즈니스를 성장시키는 것 등을 가능하게 하는 애플리케이션들을 포함할 수 있다. 통합 애플리케이션들은 배송 제공자들(112) 및 지불 게이트웨이들과 같은 비즈니스의 실행에 관여하는 유용한 통합들을 제공하는 애플리케이션들을 포함할 수 있다.
일부 실시예들에서, 애플리케이션 개발자는 외부 위치로부터 데이터를 페치하고 온라인 스토어(138)의 페이지 상에 상기 데이터를 표시하는 데 애플리케이션 프록시를 이용할 수 있다. 이러한 프록시 페이지들 상의 콘텐츠는 동적이고, 업데이트되는 것이 가능한 등일 수 있다. 애플리케이션 프록시들은 이미지 갤러리, 통계 자료, 맞춤 형태 및 다른 유형들의 동적 콘텐츠를 표시하는 데 유용할 수 있다. 전자 상거래 플랫폼(100)의 핵심 애플리케이션 구조는 증가하는 수의 머천트 경험이 애플리케이션들(142A 및 142B)에서 구축되는 것을 가능하게 할 수 있어 상업 관리 엔진(136)이 보다 흔하게 활용되는 상업의 비즈니스 로직에 집중되게 유지될 수 있다.
전자 상거래 플랫폼(100)은 융통성 있고 투명한 방식으로 머천트들이 고객들과 연결되는 것을 가능하게 하는 큐레이터 시스템 아키텍처를 통해 온라인 쇼핑 경험을 제공한다. 전형적인 고객 경험은, 고객이 채널(110A 및 110B) 상에서 머천트의 제품들을 브라우징하고, 고객이 구매하려 하는 것을 장바구니에 추가하고, 체크아웃으로 진행하고, 장바구니의 콘텐츠에 대해 지불하여, 머천트에 대한 주문의 생성을 야기하는 일 실시예의 예시적 구매 워크플로우를 통해 더 잘 이해될 수 있다. 머천트는 그 후 주문을 검토하고 주문 처리할(또는 취소할) 수 있다. 제품은 그 후 고객에게 배달된다. 고객이 만족하지 않으면, 고객은 머천트에게로 제품들을 돌려보낼 수 있다.
예시적 실시예에서, 고객은 채널(110A 및 110B) 상에서 머천트의 제품들을 브라우징할 수 있다. 채널(110A 및 110B)은 고객들이 제품들을 보고 구매할 수 있는 곳이다. 일부 실시예들에서, 채널들(110A 및 110B)은 애플리케이션들(142A 및 142B)로서 모델링될 수 있다(가능한 예외는 상업 관리 엔진(136) 내에 통합되는 온라인 스토어(138)임). 판촉 구성 요소는 머천트들이 판매하기를 원하는 것 그리고 머천트들이 이를 판매하는 장소를 기술하는 것을 가능하게 할 수 있다. 제품과 채널 사이의 연관은 제품 공개로서 모델링되고 제품 목록 API를 통해서와 같이 채널 애플리케이션들에 의해 액세스될 수 있다. 제품은 크기 및 색상과 같은 많은 옵션, 그리고 특소형이고 녹색인 변형예, 또는 큰 크기이고 청색인 변형예와 같은 모든 옵션의 특정 조합들로 이용 가능한 옵션들을 확대시키는 많은 변형예를 가질 수 있다. 제품들은 적어도 한 가지의 변형예를 가질 수 있다(예를 들어, “디폴트 변형예”가 임의의 옵션이 없는 제품에 대해 생성됨). 브라우징 및 관리를 용이하게 하기 위해, 제품들은 컬렉션들, 제공된 제품 식별자들(예를 들어, 재고 관리 코드(SKU)) 등으로 그룹화될 수 있다. 제품들의 컬렉션들은 제품들을 하나로 수작업으로 분류함으로써(예를 들어, 맞춤 컬렉션), 자동 분류를 위해 규칙 세트들을 구축함으로써(예를 들어, 스마트 컬렉션) 등으로 구축될 수 있다. 제품들은 2D 이미지, 3D 이미지, 가상 또는 증강 현실 인터페이스를 통한 회전 뷰 이미지 등으로서 보여질 수 있다.
일부 실시예들에서, 고객은 고객이 구매하려는 것을 장바구니에 추가할 수 있다(대안적인 실시예에서, 제품은 본원에 설명하는 바와 같이 구입 버튼을 통해서와 같이 직접 구매될 수 있음). 고객들은 쇼핑 장바구니에 제품 변형예들을 추가할 수 있다. 쇼핑 장바구니 모델은 채널 특이적일 수 있다. 온라인 스토어(138) 장바구니는 다수의 장바구니 품목명으로 구성될 수 있으며, 각각의 장바구니 품목명은 제품 변형예에 대한 양을 추적한다. 머천트들은 고객들의 장바구니의 콘텐츠에 기반하여 고객들에게 특수 홍보를 제공하는 데 장바구니 스크립트들을 사용할 수 있다. 제품을 장바구니에 추가하는 것이 고객 또는 머천트로부터의 임의의 책무를 시사하지 않고, 장바구니의 예상되는 존속 기간은 (수 일이 아닌) 수 분 정도일 수 있으므로, 장바구니들은 단기간의 데이터 저장소에서 지속될 수 있다.
고객은 그 후 체크아웃으로 진행한다. 체크아웃 구성 요소는 고객 지향 주문 생성 프로세스로서의 웹 체크아웃을 구현할 수 있다. 체크아웃 API는 (예를 들어, 판매 시점에 대해) 고객들을 대신하여 주문들을 생성하기 위해 일부 채널 애플리케이션에 의해 이용되는 컴퓨터 지향 주문 생성 프로세스로서 제공될 수 있다. 체크아웃들은 장바구니로부터 생성되고 이메일 주소, 청구서 발부 및 배송 세부 사항들과 같은 고객의 정보를 기록할 수 있다. 체크아웃 시에, 머천트는 가격 책정을 한다. 고객이 자신의 접촉 정보를 입력하지만 지불로 진행하지 않으면, 전자 상거래 플랫폼(100)은 (예를 들어, 포기된 체크아웃 특색에서) 고객에게 다시 관여할 기회를 제공할 수 있다. 그러한 이유로, 체크아웃들은 장바구니들보다 훨씬 더 긴 존속 기간들(수 시간 또는 심지어 수 일)을 가질 수 있으므로, 지속된다. 체크아웃들은 세금들, 및 고객의 배송 주소에 기반한 배송 비용들을 계산할 수 있다. 체크아웃은 세금들의 계산을 세금 구성 요소에, 그리고 배송 비용들의 계산을 배달 구성 요소에 위임할 수 있다. 가격 책정 구성 요소는 머천트들이 할인 코드들(예를 들어, 체크아웃 시에 입력될 때, 체크아웃에서의 항목들에 새로운 가격들을 적용시키는 '비밀' 스트링들)을 생성하는 것을 가능하게 할 수 있다. 할인들은 고객들을 끌어들이고 마케팅 캠페인들의 성과를 평가하기 위해 머천트들에 의해 이용될 수 있다. 예를 들어, 가격 규칙들(예를 들어, 충족될 때, 자격들의 세트를 시사하는 전제 조건들의 세트)을 통한 할인 및 다른 맞춤 가격 시스템들이 동일한 플랫폼 부분의 상단 상에 구현될 수 있다. 예를 들어, 전제 조건들은 “주문 소계가 100 $ 초과임” 또는 “배송 비용이 10 $ 미만임”과 같은 항목들일 수 있고, 자격들은 “전체 주문 시에 20% 할인” 또는 “10 $ 할인 제품들 X, Y, 및 Z”와 같은 항목들일 수 있다.
고객들은 그 후 장바구니의 콘텐츠에 대해 지불하여, 머천트에 대한 주문의 생성을 야기한다. 채널들(110A 및 110B)은 고객들과 머천트들 간에 (달러 또는 암호 화폐와 같은) 금전, 통화 또는 가치의 저장 수단을 옮기는 데 상업 관리 엔진(136)을 이용할 수 있다. 다양한 지불 제공자(예를 들어, 온라인 지불 시스템, 모바일 지불 시스템, 디지털 지갑, 신용 카드 게이트웨이 등)와의 통신은 지불 처리 구성 요소 내에서 구현될 수 있다. 지불 게이트웨이들(106)과의 실제 상호 작용들은 카드 서버 환경을 통해 제공될 수 있다. 일부 실시예들에서, 지불 게이트웨이(106)는 선도하는 국제 신용 카드 프로세서들과의 통합과 같은 국제 지불을 수용할 수 있다. 카드 서버 환경은 카드 서버 애플리케이션, 카드 싱크, 호스팅되는 필드들 등을 포함할 수 있다. 이러한 환경은 민감한 신용 카드 정보의 보안 게이트키퍼로서의 역할을 할 수 있다. 일부 실시예들에서, 프로세스의 대부분은 지불 처리 작업에 의해 편성될 수 있다. 상업 관리 엔진(136)은 (예를 들어, 고객이 다른 웹사이트로 재지향되는) 오프사이트 지불 게이트웨이(106)를 통해, 수작업으로(예를 들어, 현금)와 같이 많은 다른 지불 방법, 온라인 지불 방법들(예를 들어, 온라인 지불 시스템, 모바일 지불 시스템, 디지털 지갑, 신용 카드 게이트웨이 등), 기프트 카드들 등을 지원할 수 있다. 체크아웃 프로세스가 끝나면, 주문이 생성된다. 주문은, 머천트가 주문들(예를 들어, 주문 품목명들, 배송 품목명들 등) 상에 목록으로 나열되는 상품 및 서비스들을 제공하는 것에 동의하고 고객이 지불(세금을 포함함)을 제공하는 것에 동의하는 머천트와 고객 사이의 판매 계약이다. 이러한 프로세스는 판매 구성 요소에서 모델링될 수 있다. 상업 관리 엔진(136) 체크아웃들에 의존하지 않는 채널들(110A 및 110B)은 주문들을 생성하는 데 주문 API를 이용할 수 있다. 주문이 생성되면, 통지 구성 요소를 통하여 고객에게로 주문 확증 통지가 송신될 수 있고 머천트에게로 주문 발주 통지가 송신될 수 있다. 재고품은 초과 판매를 피하기 위해, 지불 처리 작업이 시작될 때 비축될 수 있다(예를 들어, 머천트들은 각각의 변형예의 재고품 정책상 이러한 행위를 제어할 수 있음). 재고품 비축은 짧은 기간(수 분)을 가질 수 있고 반짝 세일들(예를 들어, 충동 구매를, 예를 들어 타겟화하는 짧은 시간 동안 제공되는 할인 또는 홍보)을 지원하도록 매우 빠르고 계측 가능할 필요가 있을 수 있다. 지불이 실패하면, 비축이 해제된다. 지불이 성공하고, 주문이 생성될 때, 비축은 특정 위치에 할당되는 장기 재고품 책무로 전환된다. 재고품 구성 요소는 변형예들이 비축되는 위치를 기록할 수 있고, 변형예들에 대한 양들을 추적하며, 이는 재고품 추적이 가능해지게 한다. 이는 재고품 항목들(양 및 위치가 관리되는 항목을 나타내는 머천트 지향 개념)에서 제품 변형예들(제품 목록의 템플릿을 나타내는 고객 지향 개념)을 분리시킬 수 있다. 재고품 레벨 구성 요소는 판매에 이용 가능하거나, 주문에 충당되거나, 재고품 전달 구성 요소(예를 들어, 판매 회사)로부터 유입되는 양들을 추적할 수 있다.
머천트는 그 후 주문을 검토하고 주문 처리할(또는 취소할) 수 있다. 검토 구성 요소는, 주문들을 실제로 주문 처리하기 전에 주문들이 주문 처리에 적절하다는 것을 보장하도록 비즈니스 프로세스 머천트의 사용을 구현할 수 있다. 주문들은 사기 행위일 수 있고, 검증(예를 들어, ID 체킹)을 필요로 하고, 머천트가 자신의 자금들을 받을 것을 확실히 하도록 기다리는 것을 필요로 하는 지불 방법을 갖는 등이다. 리스크들 및 추천들이 주문 리스크 모델에서 지속될 수 있다. 주문 리스크들은 주문 리스크 API 등을 통해 제3자에 의해 제시되는 사기 행위 검출 툴로부터 생성될 수 있다. 주문 처리로 진행하기 전에, 머천트는 지불 정보(예를 들어, 신용 카드 정보)를 캡처하거나 (예를 들어, 은행 이체, 수표 등을 통하여) 지불 정보를 받는 것을 기다리고, 주문을 지불된 것으로 마킹할 필요가 있을 수 있다. 머천트는 이제 배달을 위한 제품들을 준비할 수 있다. 일부 실시예들에서, 이러한 비즈니스 프로세스는 주문 처리 구성 요소에 의해 구현될 수 있다. 주문 처리 구성 요소는 재고품 위치 및 주문 처리 서비스에 기반하여 작업의 논리 주문 처리 유닛으로 주문의 품목명들을 그룹화할 수 있다. 머천트는, 머천트가 제품들을 골라서 상자에 포장할 때 사용되는 (예를 들어, 머천트 관리 위치들에서의) 수작업 주문 처리 서비스를 통해서와 같이 검토하고, 작업의 유닛을 조정하고, 적절한 주문 처리 서비스들을 트리거하거나, 배송 라벨을 구매하고 배송 라벨의 추적 번호를 입력하거나, 주문 처리된 것으로 단지 항목을 마킹할 수 있다. 맞춤 주문 처리 서비스는 이메일을 송신할 수 있다(예를 들어, API 연결을 제공하지 않는 위치). API 주문 처리 서비스는 제3자를 트리거할 수 있으며, 제3자 애플리케이션은 주문 처리 기록을 생성한다. 레거시 주문 처리 서비스는 상업 관리 엔진(136)으로부터 제3자에게로 맞춤 API 호출을 트리거할 수 있다(예를 들어, Amazon에 의한 주문 처리). 기프트 카드 주문 처리 서비스는 기프트 카드를 권한 설정하고 (예를 들어, 번호를 생성함) 활성화시킬 수 있다. 머천트들은 패킹 슬립들을 인쇄하기 위해 주문 프린터 애플리케이션을 사용할 수 있다. 주문 처리 프로세스는, 항목들이 상자에 포장되고 배송할 준비가 되고, 배송되고, 추적되고, 배달되고, 고객이 받은 것으로 검증되는 등일 때 실행될 수 있다.
고객이 만족하지 않으면, 머천트에게로 제품(들)을 돌려보내는 것이 가능할 수 있다. 비즈니스 프로세스 머천트들은 복귀 구성 요소에 의해 구현될 수 있는 “판매하지 않음” 항목을 거칠 수 있다. 복귀들은, 판매되었던 제품이 실제로 비즈니스로 되돌아오고 다시 판매 가능한 재고 보충; 고객으로부터 모였던 돈이 부분적으로 또는 완전히 복귀되는 환불; (예를 들어, 임의의 재고 보충 수수료가 있었던 경우, 또는 복귀되지 않았고 고객의 수중에 남아 있는 상품을 포함하여) 얼마나 많은 돈이 환불되었는지를 주목하는 회계 조정 등과 같은 다양한 상이한 행위로 구성될 수 있다. 복귀는 판매의 계약(예를 들어, 주문)에 대한 변경을 나타낼 수 있고, 전자 상거래 플랫폼(100)은 법적 의무들에 대한(예를 들어, 세금들에 대한) 준수 문제들을 머천트가 인지하게 할 수 있다. 일부 실시예들에서, 전자 상거래 플랫폼(100)은, 예를 들어 판매 모델 구성 요소(예를 들어, 항목에 일어났던 판매 관련 이벤트들을 기록하는 첨부 전용 날짜 기반 원장)를 통해 구현되는 시간이 지남에 따른 판매들의 계약에 대한 변경들을 머천트들이 추적하는 것을 가능하게 할 수 있다.
제3자 계정 승인
전자 상거래 플랫폼(100)뿐만 아니라 서비스로서의 소프트웨어(SaaS)를 제공하는 다른 컴퓨팅 시스템들은 사용자들에게 이용 가능한 서비스들을 제3자 개발자들이 강화시키고/시키거나 보완하는 것을 가능하게 할 수 있다. 예를 들어, 제3자 개발자들은 컴퓨팅 시스템의 사용자들에게 이용 가능한 소프트웨어 애플리케이션들(“외부 애플리케이션들” 및 “제3자 애플리케이션들”로 또한 지칭됨)을 제공할 수 있다. 제3자 개발자들은 일반적으로 컴퓨팅 시스템과는 별개이고, 컴퓨팅 시스템의 “파트너들” 또는 “협력자들”로 지칭될 수 있다.
앞서 기술된 바와 같이, 도 1의 애플리케이션들(142B)은 전자 상거래 플랫폼(100)의 기능을 강화시키고/시키거나 보완할 수 있는 외부 애플리케이션들의 예들이다. 예를 들어, 머천트들은 자신의 개별 요구들을 충족시키기 위해 전자 상거래 플랫폼(100)에 의해 제공되는 서비스들을 맞추는 것을 돕는 데 애플리케이션들(142B)을 사용할 수 있다. 일부 외부 애플리케이션은, 예를 들어 온라인 스토어(138)와 같은 머천트의 스토어프론트의 기능을 강화시키는 고객 지향 특징들을 제공할 수 있다. 대안적으로 또는 부가적으로, 외부 애플리케이션들은 머천트가 보다 효율적으로 비즈니스를 관리하는 것을 돕는 머천트 지향 특징들을 제공할 수 있다. 예를 들어, 이러한 외부 애플리케이션들은 도 1의 관리자(114)의 기능을 강화시키는 진보된 분석 정보를 제공할 수 있다.
전자 상거래 플랫폼에서 구현되는 외부 애플리케이션들이 갖는 잠재적인 문제는, 머천트가 외부 애플리케이션에 대한 지원을 필요로 할 때 일어날 수 있다. 전자 상거래 플랫폼이 전형적으로 외부 애플리케이션의 개발자가 아니므로, 전자 상거래 플랫폼은, 외부 애플리케이션을 활용할 때 머천트들이 직면할 수 있는 문제들의 전영역을 다루는 지원을 제공하지 못할 수 있다. 외부 애플리케이션들에 대한 지원의 비제한적인 예들은 기술적 지원 및 비즈니스 지향적 지원을 포함한다. 그러나, 외부 애플리케이션의 제3자 개발자는 머천트의 애플리케이션에 관하여 머천트에게 지원을 제공하는 것이 가능할 수 있다. 게다가, 머천트는 외부 애플리케이션이 갖는 문제들을 내비게이팅하는 것을 돕는, 전자 상거래 플랫폼 및 외부 애플리케이션의 개발자와 별개인 다른 제3자 지원 서비스들과 관계할 수 있다. 이러한 제3자 지원 서비스들은 머천트에 의해 기술적 지원 시장을 통해 위치될 수 있다. 예를 들어, 제3자 지원 서비스들은 전자 상거래 플랫폼(100)의 애플리케이션 검색, 추천 및 지원부(128)를 통해 이용 가능할 수 있다.
일반적으로, 전자 상거래 플랫폼들 및 다른 컴퓨팅 시스템들의 맥락에서 본원에 사용될 때, “제3자”는 컴퓨팅 시스템과는 별개이고 컴퓨팅 시스템의 최종 사용자가 아닌 임의의 개인, 회사, 기업 등이다. 제3자 애플리케이션 개발자들 및 제3자 지원 서비스들이 제3자들의 예들이지만, 다른 예들이 또한 고려된다.
머천트가 제3자로부터 외부 애플리케이션에 대한 지원을 받을 때, 제3자가 제3자 애플리케이션 개발자이든 아니면 제3자 지원 서비스이든, 제3자는 전자 상거래 플랫폼 상의 머천트와 연관된 소프트웨어 인스턴스에 대한 적어도 일부 액세스를 필요로 할 수 있다. 이러한 소프트웨어 인스턴스는, 예를 들어 머천트의 온라인 스토어에 상응할 수 있다. 머천트와 연관된 소프트웨어 인스턴스에 대한 제3자 액세스는 머천트의 관리자의 리소스들에 대한 액세스를 포함할 수 있고, 상기 액세스는 제3자가 머천트의 문제를 평가하고 머천트에게 적절한 해결책을 제공하는 것을 도울 수 있다. 예를 들어, 제3자는 외부 애플리케이션의 작용에 영향을 줄 수 있는 (외부 애플리케이션 그 자체 상에서 또는 전자 상거래 플랫폼 상에서) 어느 머천트 구성들이 인에이블링되었는지를 아는 것이 가능할 수 있다. 전자 상거래 플랫폼 상의 머천트와 연관된 소프트웨어 인스턴스에 대한 제3자 액세스는 “협력자 액세스”로 지칭될 수 있다.
전자 상거래 플랫폼 상의 머천트와 연관된 소프트웨어 인스턴스에 대한 제3자 액세스가 신중히 관리되지 않으면, 제3자는 이러한 액세스를 남용할 수 있다. 그러한 남용의 가능한 예는 (예를 들어, 제3자가 경쟁 스토어를 시작하는 것을 돕는) 제품 정보 그리고/또는 (예를 들어, 제3자가 판매할 수 있는 개인적으로 식별 가능한 정보(PII)와 같은) 고객 정보를 포함하는 머천트의 온라인 스토어로부터의 자산들을 제3자가 카피하는 것이다. 남용을 줄이기 위해, 소프트웨어 인스턴스에 대한 제3자의 액세스를 한정하는 계정 승인들은 신중히 선택되고 구현되어야 한다.
제3자 계정 승인들을 수작업으로 선택하는 것은 상당한 결점들을 가질 수 있다. 전자 상거래 플랫폼 상의 머천트의 소프트웨어 인스턴스에 대한 제3자의 액세스를 한정하는 계정 승인들을 머천트가 수작업으로 선택하는 일 예를 고려한다. 머천트는 너무 넓은 액세스를 제3자에게 허가하는 것과 연관된 리스크들을 완전히 인식하지 않을 수 있으므로, 계정 승인들을 선택할 때 너무 관대할 수 있다. 대안적으로, 머천트는 제3자가 효과적으로 지원을 제공할 수 없는 정도까지, 계정 승인들을 선택할 때 너무 조심스러울 수 있다. 다른 예에서, 전자 상거래 플랫폼의 피고용인은 소프트웨어 인스턴스에 대한 제3자의 액세스를 한정하는 계정 승인들을 수작업으로 선택하는 일을 맡을 수 있다. 피고용인이 제3자에게 너무 많거나 너무 적은 액세스를 허가하는 리스크들을 이해할 수 있지만, 피고용인은 승인의 범위가 적절한 것에 관한 통지된 결정을 할 만큼 충분히 기술적 문제를 잘 이해하지 않을 수 있다. 이에 따라, 피고용인은 제3자에 의해 행해지는 요청들에 너무 심하게 의존할 수 있다. 제3 예에서, 제3자 개발자는 전자 상거래 플랫폼의 머천트 또는 피고용인으로부터의 동의를 선택적으로 받아야 하는 특정 세트의 계정 승인들을 직접 요청할 수 있다. 제3자 개발자가 문제 및 이에 따라 문제를 다루는 데 필요한 액세스의 레벨을 가장 잘 이해할 수 있지만, 관련 없는 악의적인 행위를 수행하기 위해 제3자 개발자가 너무 많은 액세스를 의도적으로 요청할 수 있음에 따라, 이는 남용의 문제를 해결하지 않는다. 제3자는 악의 없이 너무 많은 액세스를 요청할 수도 있다. 예를 들어, 제3자는 너무 많은 액세스를 무심코 요청할 수 있다.
제3자에 대한 계정 승인들을 수작업으로 선택할 때, 부가 문제들이 또한 존재한다. 일부 경우에, 외부 애플리케이션의 범위 및 기능이 시간이 지남에 따라 상당히 변경될 수 있으며, 이는 제3자가 외부 애플리케이션에 대한 지원을 제공하기 위해 필요로 할 수 있는 계정 승인들에 대한 상당한 변경들을 야기한다. 애플리케이션이 업데이트될 때마다 외부 애플리케이션과 연관된 승인들을 수작업으로 검토하고 바꾸는 것은 몹시 힘들고 시간 소모적인 프로세스일 수 있다. 더욱이, 계정 승인들의 수작업 선택은 제3자에 의해 제공되는 효과적인 지원 및/또는 특징들에 대한 머천트의 액세스를 궁극적으로 지연시킬 수 있는 느린 프로세스일 수 있다.
제3자 계정 승인들을 생성하는 것과 연관된 과제들을 전자 상거래 플랫폼에 관하여 전반적으로 상술하였지만, 예를 들어 소셜 미디어 플랫폼, 재무 플랫폼 및 건강 관리 플랫폼을 포함하는 다른 컴퓨터 시스템들이 유사한 과제들에 직면할 수 있다는 점이 주목되어야 한다. 계정 승인들의 범위가 적절하다는 것을 보장하면서, 컴퓨팅 시스템 상의 소프트웨어 인스턴스들에 대한 제3자 액세스를 효율적으로 가능하게 하도록 계정 승인들을 생성하는 프로세스를 자동화하는 시스템들 및 방법들에 대한 요구가 존재한다.
도 3은 계정 승인 엔진(300)을 포함하는 도 1의 전자 상거래 플랫폼(100)을 도시한다. 계정 승인 엔진(300)은, 예를 들어 제3자 애플리케이션 개발자들 및/또는 제3자 지원 서비스들과 같은 제3자들에 대한 계정 승인들을 생성하는 컴퓨터 구현 시스템의 일 예이다. 일부 구현에서, 계정 승인 엔진(300)은 전자 상거래 플랫폼(100) 상의 머천트들과 연관된 소프트웨어 인스턴스들에 대한 제3자 액세스를 가능하게 하는 계정 승인들을 자동적으로 생성한다. 이에 따라, 계정 승인 엔진(300)은 제3자 계정 승인들을 수작업으로 선택할 필요성을 줄이거나 없앨 수 있다. 계정 승인 엔진에 관한 추가 상세들을 본원의 다른 곳에서 찾을 수 있다.
계정 승인 엔진(300)이 도 3에서 전자 상거래 플랫폼(100)의 별개의 구성 요소로 도시되지만, 이는 단지 일 예이다. 계정 승인 엔진은 또한 또는 대신에 전자 상거래 플랫폼(100)의 다른 구성 요소에 의해 제공되거나, 플랫폼(100)의 외부에 있는 독립형 구성 요소 또는 서비스로서 제공될 수 있다. 일부 실시예들에서, 상업 관리 엔진(136)이 계정 승인 엔진을 제공한다. 전자 상거래 플랫폼(100)은 하나 이상의 당사자에 의해 제공되는 다수의 계정 승인 엔진을 포함할 수 있다. 다수의 계정 승인 엔진은 동일한 방식으로, 유사한 방식으로 그리고/또는 별개의 방식으로 구현될 수 있다.
계정 승인 엔진(300)은 본원에 설명하는 기능의 적어도 일부를 구현할 수 있다. 후술하는 실시예들이 전자 상거래 플랫폼(100)과 같은(그러나 이에 제한되지 않는) 전자 상거래 플랫폼과 연관하여 구현될 수 있지만, 후술하는 실시예들은 도 1 내지 도 3의 특정 전자 상거래 플랫폼(100)에 제한되지 않는다. 게다가, 본원에 설명하는 실시예들은 반드시 전자 상거래 플랫폼과 연관하여 구현되거나 이것을 수반할 필요가 전혀 없다. 다른 컴퓨팅 시스템들이 본원에 개시되는 실시예들을 구현할 수 있다. 그러한 컴퓨팅 시스템들의 예들은, 몇 가지만 말하자면 소셜 미디어 플랫폼, 재무 플랫폼 및 건강 관리 플랫폼을 포함한다.
API 범위에 기반한 계정 승인
본원의 다른 곳에서 기술되는 바와 같이, 외부 애플리케이션들은 인터페이스를 통하여 컴퓨팅 시스템과 상호 작용할 수 있다. 예로서, 도 1의 인터페이스(140B)는 애플리케이션들(142B)이 전자 상거래 플랫폼(100)과 상호 작용하는 것을 가능하게 할 수 있다. 애플리케이션 프로그래밍 인터페이스(API)는 컴퓨팅 시스템에 의해 구현될 수 있는 인터페이스의 일 예이다. API를 통해, 외부 애플리케이션은 컴퓨팅 시스템 상의 데이터에 액세스하여 이를 변경할 수 있고 컴퓨팅 시스템과 함께 태스크들을 수행할 수 있다.
API 참조문, API 안내서 및/또는 API 기록 문서가, API를 통하여 컴퓨팅 시스템과 외부 애플리케이션이 상호 작용할 수 있는 방법을 정의하는 데 사용될 수 있다. 예를 들어, API 참조문은 외부 애플리케이션들이 호출하거나 요청할 수 있는 API의 기능들(“API 기능들” 또는 “API 방법들”로 지칭될 수도 있음), 그리고 컴퓨팅 시스템이 제공할 응답들의 형식을 정의할 수 있다. 일부 실시예들에서, 컴퓨팅 시스템은 상이한 세트의 API 기능들을 각각 갖는 다수의 API를 구현할 수 있다. 전자 상거래 플랫폼의 경우에, 가능한 API 기능들의 비제한적인 예들은 다음을 포함한다:
● 머천트들의 비즈니스가 어떻게 돌아가고 있는지를 머천트들이 분석하는 것을 돕도록 상세한 보고서들을 제공하는 데 사용될 수 있는 분석 기능들;
● 머천트의 고객 데이터를 관리하는 것을 도울 수 있는 고객 기능들;
● 융통성있는 할인들을 제공하는 것을 도울 수 있는 할인 기능들;
● 외부 애플리케이션이 머천트의 온라인 스토어와 동기화되게 유지하도록 이벤트 데이터를 페치하는 것을 도울 수 있는 이벤트 기능들;
● 다수의 위치에 걸쳐 머천트의 재고품 레벨들을 관리하는 것을 도울 수 있는 재고품 기능들;
● 머천트의 온라인 스토어프론트 및 이의 콘텐츠를 업데이트하는 것을 도울 수 있는 온라인 스토어 기능들;
● 주문들을 받고, 처리하고, 관리하기 위한 새로운 방식들을 제공하는 것을 도울 수 있는 주문 기능들;
● 머천트의 제품 카탈로그에 액세스하여 조작하는 것을 도울 수 있는 제품 기능들; 및
● 체크아웃에서의 맞춤 배송 속도들을 나타내고 머천트 주문 처리들을 관리하는 것을 도울 수 있는 배송 및 주문 처리 기능들.
본 발명의 일 양태는 계정 승인들을 결정하기 위한 외부 애플리케이션의 API 승인들 및/또는 API 상호 작용들의 이용에 관한 것이다. 이러한 계정 승인들은, 예를 들어 외부 애플리케이션에 대한 지원을 제공함으로써 외부 애플리케이션과 연관된 제3자 계정에 대해 생성될 수 있다. API 승인들은 외부 애플리케이션이 호출하는 것이 허용되는 API 기능들과 관련되는 데 반해, API 상호 작용들은 외부 애플리케이션에 의해 행해지는 실제 API 호출들과 관련된다. 외부 애플리케이션과 연관된 API 상호 작용들 및/또는 API 승인들은 외부 애플리케이션의 “API 범위”를 결정하는 데 이용될 수 있다. API 범위는 외부 애플리케이션과 관련 있는 컴퓨팅 시스템의 리소스들(컴퓨팅 시스템 상의 하나 이상의 소프트웨어 인스턴스의 리소스들을 포함함)을 나타낼 수 있다. 이에 따라 일부 실시예들에서, API 범위는 외부 애플리케이션과 연관된 제3자 계정들에 대한 계정 승인들의 적절한 범위를 결정하는 것을 돕는 데 사용된다.
API 범위에 기반하는 제3자 계정 승인들은, API 범위에 상응하지 않는 리소스들에 대한 액세스를 제한하면서, API 범위에 상응하는 컴퓨팅 시스템의 리소스들에 대한 액세스를 가능하게 할 수 있다. 예로서, 계정 승인들이 전자 상거래 플랫폼에 대한 외부 애플리케이션을 지원하는 제3자에 대해 생성되는 경우를 고려한다. 외부 애플리케이션이 전자 상거래 플랫폼에 의해 구현되는 API의 임의의 고객 기능을 이용하지 않고/않거나 이에 액세스하지 않으면, 외부 애플리케이션은 전자 상거래 플랫폼 상의 임의의 고객 정보에 액세스하지 않을 수 있다. 이에 따라, 제3자는 외부 애플리케이션에 대한 효과적인 지원을 제공하기 위해 머천트의 고객 정보에 대한 액세스를 필요로 하지 않을 수 있고, 제3자에 대한 계정 승인들은 고객 정보에 대한 액세스를 포함하지 않을 수 있다. 그에 반해서, 외부 애플리케이션이 API의 한 가지 이상의 제품 기능을 이용하거나 이용하는 것이 허용되면, 제3자에게 외부 애플리케이션에 대한 효과적인 지원을 제공하기 위해 머천트의 제품 정보에 대한 액세스가 제공될 수 있다. 제3자의 관점에서, 제3자에게는 머천트의 관리자의 “제품” 구획과 유사하게 나타나는 스크린 페이지에 액세스하는 협력자 계정이 제공될 수 있다. 그러나, 머천트의 관리자의 “고객” 구획에 대한 임의의 링크는 제3자에 대해 디스에이블링될 수 있다. 더욱이, “제품” 구획 내에서 통상적으로 나타날 임의의 고객 데이터(예를 들어, 제품을 구매하였던 최근의 고객들의 목록)는 생략되거나 알기 어렵게 될 수 있다.
예시적 시스템들 및 방법들
도 4는 일 실시예에 따른 API 범위에 기반하여 계정 승인들을 생성하기 위한 시스템(400)을 도시하는 블록도이다. 시스템(400)은 계정 승인 엔진(402), 컴퓨팅 시스템(420), 다른 컴퓨팅 시스템(430), 사용자 디바이스(440), 제3자 디바이스(450) 및 네트워크(460)를 포함한다.
컴퓨팅 시스템(420)은 API(422) 및 적어도 하나의 소프트웨어 인스턴스(424)를 지원하거나, 호스팅하거나, 구현한다. API(422)는 외부 애플리케이션들이 컴퓨팅 시스템(420)과 상호 작용하는 것을 가능하게 하는 인터페이스의 일 예이다. API(422)는 실제로 컴퓨팅 시스템(420)에 의해 구현되는 다수의 API의 세트일 수 있으며, API들 각각은 상이한 그룹의 API 기능들에 상응할 수 있다. 다른 실시예들에서, API(422)는 상이한 타입의 인터페이스로 대체될 수 있다. 소프트웨어 인스턴스(424)는 컴퓨팅 시스템(420)의 하나 이상의 사용자와 연관된 서비스 인스턴스의 일 예이다. 일반적으로, 컴퓨팅 시스템(420)은 상이한 사용자들과 연관될 수 있는 임의의 수의 소프트웨어 인스턴스를 구현할 수 있다.
일부 구현에서, 컴퓨팅 시스템(420)은 전자 상거래 플랫폼이거나 이것을 포함한다. 이러한 구현들에서, 소프트웨어 인스턴스(424)는 컴퓨팅 시스템(420)에 의해 지원되는 온라인 스토어일 수 있고, 사용자 디바이스(440)는 온라인 스토어를 소유하는 머천트와 연관될 수 있다. 예를 들어, 컴퓨팅 시스템(420)은 전자 상거래 플랫폼(100)과 유사할 수 있고, 소프트웨어 인스턴스(424)는 온라인 스토어(138)와 유사할 수 있고, 사용자 디바이스(440)는 머천트 디바이스(102)와 유사할 수 있다.
컴퓨팅 시스템(430)은 컴퓨팅 시스템(420)과 별도이지만, 컴퓨팅 시스템(420)의 기능을 강화시키고/시키거나 보완하는 적어도 하나의 외부 애플리케이션(432)을 지원하거나, 호스팅하거나, 구현한다. 외부 애플리케이션(432)은 API(422)를 통하여 컴퓨팅 시스템(420)과 상호 작용하는 소프트웨어 애플리케이션의 일 예이다. 일부 경우에, 외부 애플리케이션(432)은 소프트웨어 인스턴스(424)에 의해 설치되고 구현될 수 있다. 예를 들어, 소프트웨어 인스턴스(424)가 온라인 스토어인 경우에, 외부 애플리케이션(432)은 온라인 스토어에 대한 새로운 그리고/또는 개선된 특징들을 제공하도록 구현될 수 있다. 일반적으로, 컴퓨팅 시스템(430)은 다수의 상이한 당사자와 연관될 수 있는 임의의 수의 소프트웨어 애플리케이션을 구현할 수 있다.
외부 애플리케이션(432)은 일부 방식으로 제3자 디바이스(450)와 연관될 수 있다. 예를 들어, 제3자 디바이스(450)는 외부 애플리케이션(432)의 개발자에 의해 소유되고/되거나 작동될 수 있다. 대안적으로 또는 부가적으로, 제3자 디바이스(450)는 외부 애플리케이션(432)에 대한 지원 서비스들을 제공하는 지원 부서 직원에 의해 소유되고/되거나 작동될 수 있다.
컴퓨팅 시스템들(420, 430)의 구조는 구현 특이적이다. 컴퓨팅 시스템들(420, 430)은, 예를 들어 프로세서, 메모리, 서버, 클라이언트, 네트워크 인터페이스, 네트워크 인프라 구조체, 모바일 컴퓨팅 플랫폼, 클라우드 컴퓨팅 플랫폼 및/또는 정지형 컴퓨팅 플랫폼을 포함하거나 구현할 수 있다.
디바이스들(440, 450) 중 어느 하나 또는 둘 다는 모바일 전화기, 태블릿, 랩탑 또는 컴퓨터일 수 있다. 도시된 바와 같이, 사용자 디바이스(440)는 프로세서(442), 메모리(444), 사용자 인터페이스(446) 및 네트워크 인터페이스(448)를 포함한다. 제3자 디바이스(450)는 또한 프로세서(452), 메모리(454), 사용자 인터페이스(456) 및 네트워크 인터페이스(458)를 포함한다. 사용자 디바이스(440)를 예로서 후술할 것이다. 그러나, 제3자 디바이스(450)가 동일하거나 유사한 방식으로 구현될 수 있다는 점이 주목되어야 한다.
사용자 인터페이스(446)의 일 예는 디스플레이 스크린(터치 스크린일 수 있음), 제스처 인지 시스템, 키보드 및/또는 마우스이다. 네트워크 인터페이스(448)는 네트워크(460)를 통한 통신을 위해 제공된다. 네트워크 인터페이스(448)의 구조는 사용자 디바이스(440)가 네트워크(460)와 인터페이싱하는 방법에 의존할 것이다. 예를 들어, 사용자 디바이스(440)가 모바일 전화기 또는 태블릿이면, 네트워크 인터페이스(448)는 네트워크(460)로/로부터 무선 전송을 송신하고 수신하기 위한 안테나를 갖는 송신기/수신기를 포함할 수 있다. 사용자 디바이스(440)가 네트워크 케이블로 네트워크에 연결되는 개인용 컴퓨터이면, 네트워크 인터페이스(448)는, 예를 들어 네트워크 인터페이스 카드(NIC), 컴퓨터 포트(예를 들어, 플러그 또는 케이블이 연결되는 물리적 출구), 및/또는 네트워크 소켓을 포함할 수 있다. 프로세서(442)는 사용자 디바이스(440)에 의해 수행되는 작동들 모두를 직접 수행하거나 지시한다. 이러한 작동들의 예들은 사용자 인터페이스(446)로부터 수신되는 사용자 입력들을 처리하는 것, 네트워크(460)를 통한 송신을 위해 정보를 준비하는 것, 네트워크(460)를 통해 수신되는 데이터를 처리하는 것, 그리고 정보를 표시할 것을 디스플레이 스크린에 지시하는 것을 포함한다. 프로세서(442)는 메모리(444)에 저장되는 명령어들을 실행시키는 하나 이상의 프로세서에 의해 구현될 수 있다. 대안적으로, 프로세서(442)의 일부 또는 모두는 주문형 반도체(ASIC), 그래픽 처리 장치(GPU) 또는 프로그래밍된 필드 프로그램 가능 게이트 어레이(FPGA)와 같은 전용 회로망을 사용하여 구현될 수 있다.
도 4에서, 다수의 사용자 디바이스 및 제3자 디바이스가 예로서 도시된다. 임의의 수의 그러한 디바이스가 시스템(400)에서 구현될 수 있다.
네트워크(460)는, 예를 들어 계정 승인 엔진(402), 컴퓨팅 시스템들(420, 430), 사용자 디바이스(440) 및 제3자 디바이스(450) 중 임의의 2개 이상을 포함하는 상이한 디바이스들 사이의 유선 및/또는 무선 연결들을 구현하는 컴퓨터 네트워크일 수 있다. 네트워크(460)는 관련 분야에 알려져 있는 임의의 통신 프로토콜을 구현할 수 있다. 통신 프로토콜들의 비제한적인 예들은 로컬 영역 네트워크(LAN), 무선 LAN, 인터넷 프로토콜(IP) 네트워크 및 셀룰러 네트워크를 포함한다.
계정 승인 엔진(402)은 컴퓨팅 시스템(420) 상의 하나 이상의 계정에 대한 계정 승인들을 생성하도록 구성된다. 이러한 계정 승인들은 제3자 계정 승인들을 포함할 수 있지만, 이에 제한되지 않는다. 제3자 계정 승인들은 컴퓨팅 시스템(420)의 적어도 일부 리소스에 제3자가 액세스하는 것을 가능하게 할 수 있다. 일부 경우에 제3자 계정 승인들을 이용하여, 제3자는 컴퓨팅 시스템(420)의 사용자들에게 외부 애플리케이션(432)에 대한 지원을 제공할 수 있다. 예를 들어, 제3자 계정 승인들은 소프트웨어 인스턴스(424)에 대한 맞춤 지원을 제공하는 것을 돕도록 소프트웨어 인스턴스(424)에 제3자 디바이스(450)가 액세스하는 것을 가능하게 할 수 있다. 이하에 추가로 상세히 논의되는 바와 같이, 제3자 계정 승인들은 외부 애플리케이션(432)의 API 범위에 기반하여 계정 승인 엔진(402)에 의해 생성될 수 있다.
도시된 바와 같이, 계정 승인 엔진(402)은 프로세서(404), 메모리(406) 및 네트워크 인터페이스(408)를 포함한다. 프로세서(404)는 메모리(406) 또는 다른 컴퓨터 판독 가능 매체에 저장되는 명령어들을 실행시키는 하나 이상의 프로세서에 의해 구현될 수 있다. 이러한 명령어들은 본원에 설명하는 임의의 방법을 구현할 수 있다. 대안적으로, 프로세서(404)의 일부 또는 모두는 ASIC, GPU 또는 프로그래밍된 FPGA와 같은 전용 회로망을 사용하여 구현될 수 있다.
네트워크 인터페이스(408)는 네트워크(460)를 통한 통신을 위해 제공된다. 네트워크 인터페이스(408)의 구조는 구현 특이적이다. 예를 들어, 네트워크 인터페이스(408)는 NIC, 컴퓨터 포트 및/또는 네트워크 소켓을 포함할 수 있다.
메모리(406)는 API 기록(410), API 매핑(416) 및 계정 승인 기록(418)을 저장한다. API 기록(410)은 API 승인 기록(412) 및 API 상호 작용 기록(414) 둘 다를 포함한다.
API 승인 기록(412)은 컴퓨팅 시스템(420)과 연관된 하나 이상의 외부 애플리케이션에 대한 API 승인들의 목록을 저장한다. 이러한 외부 애플리케이션들은, 예를 들어 소프트웨어 인스턴스(424)에 의해서와 같이 컴퓨팅 시스템(420) 상의 소프트웨어 인스턴스들에 의해 구현되는 애플리케이션들을 포함할 수 있다. 외부 애플리케이션과 연관된 API 승인들(“API 액세스” 또는 “API 액세스 범위들”로 지칭될 수도 있음)은 외부 애플리케이션이 액세스하거나 호출하는 것이 인가되는 API(422)의 기능들을 한정한다.
API 승인 기록(412)은 외부 애플리케이션(432)에 대한 API 승인들을 포함한다. 이러한 승인들은 외부 애플리케이션(432)의 검토 동안 컴퓨팅 시스템(420)에 의해 허가될 수 있다. 예를 들어, 외부 애플리케이션(432)이 API(422)의 기능들에 액세스하는 것이 허용되기 전에, 컴퓨팅 시스템(420)은 외부 애플리케이션(432)이 일정 요건들을 충족시킨다는 것을 보장하도록 외부 애플리케이션(432)을 검토할 수 있다. 검토 동안, 컴퓨팅 시스템(420)은 외부 애플리케이션(432)이 이용하는 것을 필요로 하거나 이용하려 의도하는 API(422)의 기능들에 기반하여 외부 애플리케이션(432)에 API 승인들의 세트를 허가할 수 있다. 대안적으로 또는 부가적으로, API 승인들은, 외부 애플리케이션(432)을 구매하고/하거나 구현할 때 컴퓨팅 시스템(420)의 사용자들에 의해 허가될 수 있다. 예를 들어, 소프트웨어 인스턴스(424)와 연관된 사용자는 외부 애플리케이션(432)을 이용하기 위해 소프트웨어 인스턴스(424)의 특정 리소스들에 대한 액세스를 외부 애플리케이션(432)에 허가할 수 있다.
예를 들어, 컴퓨팅 시스템(420)이 전자 상거래 플랫폼이고 외부 애플리케이션(432)이 머천트들에 대한 판매 분석을 수행하는 경우를 고려한다. 외부 애플리케이션(432)의 검토 동안, 컴퓨팅 시스템(420)은 외부 애플리케이션(432)이 판매 분석을 구현하기 위해 필요로 할 API 승인들을 결정할 수 있다. 예를 들어, API 승인들은 컴퓨팅 시스템(420) 상의 판매 정보를 외부 애플리케이션(432)이 판독하고/하거나 기록하는 것을 가능하게 하는 API(422)의 판매 기능들 및 분석 기능들에 대한 액세스를 포함할 수 있다.
API 승인들은 임의의 레벨의 입도로 한정될 수 있다. 일부 경우에, 외부 애플리케이션(432)의 제3자 개발자는 API(422)의 각각의 원하는 기능에 대한 액세스를 개별적으로 요청할 수 있다. 다른 경우들에서, 제3자 개발자는 API(422)에서의 모든 기능에 대한 액세스를 요청할 수 있으며, 상기 모든 기능은 외부 애플리케이션(432)이 실제로 호출하지 않는 일부 기능을 포함할 수 있다.
API 승인들은 대안적으로 워크플로우 기반(또는 태스크플로우 기반) 접근법을 이용하여 허가될 수 있다. 워크플로우 기반 접근법에서, API 기능들의 그룹은 컴퓨팅 시스템(420)에서의 상이한 타입들의 워크플로우에 대해 한정될 수 있다. 한 번 더, 컴퓨팅 시스템(420)이 전자 상거래 플랫폼이고 외부 애플리케이션(432)이 머천트들에 대한 판매 분석을 수행하는 경우를 고려한다. 판매 분석에 대한 API 기능들의 그룹이 컴퓨팅 시스템(420)에 의해 한정될 수 있다. 외부 애플리케이션(432)의 제3자 개발자는 이러한 API 기능들의 그룹에 대한 액세스를 요청할 수 있으며, 상기 액세스는 판매 분석 워크플로우를 수행하는 데 필요할 수 있는 API(422)의 기능들의 대부분 또는 모두에 대한 액세스를 외부 애플리케이션(432)에 제공한다.
외부 애플리케이션이 호출하는 것이 허용되는 API 기능들을 API 승인들이 나타낼 수 있지만, API 승인들은 외부 애플리케이션이 실제로 호출하는 실제 API 기능들에 직접 상응하지는 않을 수 있다. 다른 한편으로는, API 상호 작용들은 외부 애플리케이션에 의해 호출되는 실제 API 기능들의 표시를 제공할 수 있다.
API 상호 작용 기록(414)은 API(422), 및 외부 애플리케이션(432)을 포함하지만 이에 제한되지 않는 외부 애플리케이션들을 수반하는 API 상호 작용들의 목록을 저장한다. API 상호 작용들은 외부 애플리케이션들을 실행시키는 디바이스들로부터 API(422)에 의해 수신되는 API 호출들을 모니터링하거나 추적함으로써 결정될 수 있다. 이는 API 호출들에서 액세스되는 API(422)의 기능들을 추적하는 것, API 호출들의 타이밍 또는 시퀀스를 추적하는 것, API 호출들에 포함되는 콘텐츠를 추적하는 것, 그리고/또는 컴퓨팅 시스템(420)으로부터의 응답들의 콘텐츠를 추적하는 것을 포함할 수 있다. API 호출들을 추적하는 것으로부터 얻어지는 정보의 임의의 것, 일부 또는 모두는 API 상호 작용 기록(414)에 의해 저장될 수 있다. 이러한 방식으로, API 상호 작용 기록(414)은 외부 애플리케이션에 의해 생성되는 실제 API 호출들을 나타낸다.
일부 구현에서, API 상호 작용 기록(414)은 워크플로우 기반 접근법을 이용하여 API 상호 작용들을 저장할 수 있다. API 호출들의 시퀀스는 컴퓨팅 시스템(420)에서의 상이한 타입들의 워크플로우에 대해 한정될 수 있다. 주어진 워크플로우와 동일하거나 유사한 시퀀스로 API 호출들을 송신하는 외부 애플리케이션은 이러한 워크플로우를 구현하는 것으로 고려될 수 있다. 외부 애플리케이션에 의해 행해지는 API 호출들의 콘텐츠를 기록하고 분석하는 것은 그러한 외부 애플리케이션에 의해 구현되고 있는 워크플로우들의 표시를 제공할 수 있다. 예를 들어, 소프트웨어 인스턴스(424)가 온라인 스토어이고 API(422)의 주문 기능이 온라인 스토어에서의 주문들의 상태를 변경하기 위해 외부 애플리케이션(432)에 의해 사용되고 있으면(예를 들어, “주문 처리되지 않음”에서 “주문 처리됨”으로 주문들의 상태를 변경함), 외부 애플리케이션(432)은 주문 기능의 다른 양태들과 관련되는 워크플로우보다는 오히려 주문 처리 기반 워크플로우를 구현하고 있을 수 있다.
일부 구현에서, API 상호 작용 기록(414)은 컴퓨팅 시스템(420)의 상이한 소프트웨어 인스턴스들의 면에서 체계화된다. 예를 들어, 소프트웨어 인스턴스(424)의 리소스들과 관련되는 하나 이상의 외부 애플리케이션에 의해 행해지는 API 호출들은 소프트웨어 인스턴스(424)에 특정한 기록에 체계화될 수 있다. 이에 따라, API 상호 작용 기록(414)은 상이한 소프트웨어 인스턴스들에 대한 API 상호 작용들의 상이한 기록들을 포함할 수 있으며, 이는 한 소프트웨어 인스턴스에 대해 제3자 계정 승인들을 맞추는 것을 도울 수 있다. 예를 들어, 일부 외부 애플리케이션은 컴퓨팅 시스템(420) 상의 모든 소프트웨어 인스턴스에 의해 모두 이용되지는 않는 다수의 워크플로우를 실행시킬 수 있다. 일부 소프트웨어 인스턴스는 워크플로우들의 서브세트만을 이용할 수 있다. 소프트웨어 인스턴스에 의해 이용되는 워크플로우들의 서브세트는 소프트웨어 인스턴스와 관련되는 API 상호 작용들로부터 명백하거나 추론 가능할 수 있다. 이러한 방식으로, 특정 소프트웨어 인스턴스에 특정한 API 상호 작용들의 기록은, 외부 애플리케이션의 다른 능력들 그리고/또는 무슨 특징들을 다른 소프트웨어 인스턴스들이 이용할 수 있는지에 관계 없이 소프트웨어 인스턴스가 이용하는 외부 애플리케이션의 실제 워크플로우들을 나타낼 수 있다.
컴퓨팅 시스템(420)이 전자 상거래 플랫폼이고 외부 애플리케이션(432)이 머천트들을 위한 판매 분석 워크플로우를 수행하는 경우를 고려한다. 외부 애플리케이션(432)은 고객 분석과 관련되는 워크플로우를 수행할 수도 있지만, 소프트웨어 인스턴스(424)는 (예를 들어, 외부 애플리케이션(432)을 통한 소프트웨어 인스턴스(424)의 사용자에게 이용 가능한 권한 부여 설정들을 통해) 판매 분석에 대한 워크플로우만을 활용할 수 있다. 여기서, 소프트웨어 인스턴스(424)와 관련되는 API 상호 작용들은 외부 애플리케이션(432)이 판매 분석 워크플로우에 대해 소프트웨어 인스턴스(424)에 의해서만 구현되는 것을 나타낼 수 있다.
API 승인 기록(412) 및 API 상호 작용 기록(414)이 도 4에 별도로 도시되지만, 이러한 기록들이 대신에 단일 기록으로 결합될 수 있다는 점이 주목되어야 한다. 예를 들어, API 승인들 및 API 상호 작용들은 단일 외부 애플리케이션 및/또는 단일 소프트웨어 인스턴스에 선택적으로 특정한 단일 기록에 함께 저장될 수 있다.
API 기록(410)은, 예를 들어 외부 애플리케이션(432)과 같은 컴퓨팅 시스템(420)에 대한 외부 애플리케이션의 API 범위를 결정하는 데 사용될 수 있다. 이러한 API 범위는 API 승인 기록(412) 및 API 상호 작용 기록(414) 중 하나 또는 둘 다에 기반하여 결정될 수 있다.
API 매핑(416)은 API 범위 및 컴퓨팅 시스템(420) 상의 계정 승인들을 연관시키는 하나 이상의 관계를 한정한다. 일부 구현에서, API 매핑(416)은 이러한 관계들을 한정하기 위해 하나 이상의 기능, 모델 및/또는 룩업 테이블을 포함한다. 외부 애플리케이션에 대한 API 범위가 결정되면, API 매핑(416)은 외부 애플리케이션과 연관된 제3자에 대한 상응하는 세트의 계정 승인들을 얻는 것을 돕는 데 사용될 수 있다.
일부 구현에서, API 매핑(416)은 API(422)의 부분들(“API 표면 영역”으로 지칭될 수도 있음)과 컴퓨팅 시스템(420)의 리소스들 사이의 매핑을 포함한다(또는 이것에 적어도 기반한다). 이러한 매핑은 API(422)의 상이한 기능들에 상응하는 컴퓨팅 시스템(420)의 리소스들을 나타낼 수 있다. 예를 들어, API(422)의 각각의 기능은 컴퓨팅 시스템(420)에 의해 제공되는 하나 이상의 리소스에 대한 액세스를 가능하게 할 수 있다. API(422)의 각각의 기능이 액세스를 제공하는 리소스들은 API 매핑(416)에 의해 명시될 수 있다.
API 매핑(416)은 또한 또는 대신에 API(422)의 부분들의 컴퓨팅 시스템(420) 상의 워크플로우들로의 매핑을 포함할 수 있다. 예를 들어, API 기능들의 그룹들 또는 시퀀스들은 컴퓨팅 시스템(420) 상의 워크플로우로 매핑될 수 있다. 워크플로우는 그 후 워크플로우를 가능하게 하는 컴퓨팅 시스템(420) 상의 리소스들의 세트로 매핑될 수 있다.
컴퓨팅 시스템(420)이 전자 상거래 플랫폼인 일 예를 고려한다. API(422)의 제품 기능들은 컴퓨팅 시스템(420) 상의 머천트의 관리자의 “판촉” 및 “제품” 구획들과 상호 작용할 수 있어, 새로운 제품들 및 제품 변형예들이 생성되는 것을 가능하게 하고 재고품의 양 및 위치의 조정들을 가능하게 한다. 이러한 방식으로, 머천트의 관리자의 “판촉” 및 “제품” 구획들은 API(422)의 제품 기능들로 매핑될 수 있는 리소스들이다. 일부 경우에, 머천트의 관리자의 “판촉” 및 “제품” 구획들은 API(422)의 상이한 제품 기능들로 매핑될 수 있다. 예를 들어, 재고품을 조정하는 API(422)의 기능은 “판촉” 구획만으로 매핑할 수 있는 반면에, 새로운 제품을 생성하는 API(422)의 기능은 “제품” 구획만으로 매핑할 수 있다. 다른 예에서, API(422)의 고객 기능은 컴퓨팅 시스템(420) 상의 머천트의 관리자의 “고객” 구획으로 매핑할 수 있다.
외부 애플리케이션의 API 범위를 컴퓨팅 시스템(420)의 리소스들의 세트 및/또는 워크플로우로 매핑하는 것에 더하여, API 매핑(416)은 리소스들의 세트 및/또는 워크플로우를 컴퓨팅 시스템(420) 상의 계정에 대한 계정 승인들과 관련시킬 수도 있다. 이러한 방식으로, 외부 애플리케이션을 지원하는 제3자에 대한 계정 승인들은 외부 애플리케이션의 API 범위에 기반하여 결정될 수 있다. 이러한 계정 승인들은 외부 애플리케이션의 API 범위에 상응하는 리소스들의 세트에 대한 액세스를 제3자에게 제공할 수 있다. 예를 들어, 컴퓨팅 시스템(420)이 전자 상거래 플랫폼이고 외부 애플리케이션(432)의 API 범위가 API(422)의 고객 기능들을 포함할 때, 외부 애플리케이션(432)에 대한 지원을 제공하는 제3자에 대한 계정 승인들은 머천트의 관리자의 “고객” 구획에 대한 액세스를 가능하게 할 수 있다.
일부 구현에서, API 매핑(416)은 다수의 별도의 매핑을 포함할 수 있다. 하나의 매핑은 API(422)의 부분들을 컴퓨팅 시스템(420) 상의 리소스들 및/또는 워크플로우들과 관련시킬 수 있고, 다른 하나의 매핑은 컴퓨팅 시스템(420) 상의 리소스들 및/또는 워크플로우들을 계정 승인들과 관련시킬 수 있다.
API 매핑(416)에 포함되는 매핑들 중 하나 이상은 수작업으로 생성될 수 있다. 대안적으로 또는 부가적으로, 알고리즘이 사용될 수 있다. 일부 구현에서, 이러한 알고리즘은 주어진 API 기능에 상응하는 가능한 리소스들의 세트를 생성하는 열거 알고리즘이다. 일부 구현에서, 알고리즘은 이전의, 수작업으로 생성된 계정 승인들로부터 학습할 수 있는 기계 학습(ML) 모델 또는 다른 형태의 인공 지능(AI)일 수 있다. 예를 들어, ML 모델은 다수의 외부 애플리케이션과 연관된 API 상호 작용들 및/또는 API 승인들, 그리고 외부 애플리케이션들을 지원하는 제3자들에 대한 수작업으로 생성된 계정 승인들을 포함하는 트레이닝 데이터세트를 이용하여 트레이닝될 수 있다. 트레이닝된 ML 모델은 그 후 계정 승인들을 생성하기 위해 입력으로서 API 상호 작용들 및/또는 API 승인들을 이용할 수 있다. ML 모델 구조체들의 비제한적인 예들은 인공 신경망, 결정 트리, 서포트 벡터 기계, 베이지안 네트워크 및 유전 알고리즘을 포함한다. ML 모델에 대한 트레이닝 방법들의 비제한적인 예들은 지도 학습, 무감독 학습, 강화 학습, 자체 학습, 특징부 학습 및 희소 딕셔너리 학습을 포함한다.
계정 승인 기록(418)은 컴퓨팅 시스템(420) 상의 하나 이상의 계정에 대한 계정 승인들의 목록을 포함한다. 이러한 계정 승인들 중 적어도 일부는, 예를 들어 API 기록(410) 및/또는 the API 매핑(416)을 이용하여 계정 승인 엔진(402)에 의해 생성될 수 있다.
일부 구현에서, 제3자 계정 승인들은 계정 승인 기록(418)에 저장된다. 이러한 제3자 계정 승인들은 상응하는 외부 애플리케이션의 API 범위에 기반하여 결정될 수 있다. 예를 들어, 제3자 계정이 외부 애플리케이션(432)에 대한 지원을 제공하는 데 사용되면, 이러한 제3자 계정에 대한 계정 승인들은 외부 애플리케이션(432)의 API 범위에 기반하여 얻어질 수 있다.
일부 구현에서, 제3자 계정 승인들은 소프트웨어 인스턴스 특정 방식으로 생성될 수 있다. 예를 들어, 외부 애플리케이션(432)과 연관된 제3자 계정 승인들은 외부 애플리케이션(432) 및 소프트웨어 인스턴스(424)를 수반하는 API 상호 작용들에만 기반하여 생성될 수 있다. 다른 소프트웨어 인스턴스들을 수반하는 API 상호 작용들은 무시될 수 있다.
앞서 주목된 바와 같이, API 상호 작용들은 워크플로우 특정 방식으로 결정될 수 있으므로, 제3자 계정 승인들은 외부 애플리케이션에 의해 이용되는 것으로 관찰되었던 워크플로우들에 기반하여 생성될 수도 있다. 워크플로우 기반 제3자 승인들은 컴퓨팅 시스템(420) 상의 모든 소프트웨어 인스턴스에 걸쳐 관찰되는 상호 작용들에 기반하여 결정될 수 있다. 대안적으로, 워크플로우 기반 제3자 승인들은 상술한 바와 같이 소프트웨어 인스턴스에 특정한 방식으로 결정될 수 있다. 컴퓨팅 시스템(420)이 전자 상거래 플랫폼이고 소프트웨어 인스턴스(424)가 머천트의 온라인 스토어인 경우를 고려한다. 머천트가 외부 애플리케이션(432)의 일부 워크플로우만을 활용하면, 외부 애플리케이션(432)에 대한 지원을 제공하고 있는 제3자는 머천트에 의해 실제로 이용되는 워크플로우들에 상응하는 온라인 스토어의 부분들에 대한 액세스만을 필요로 할 수 있다. 외부 애플리케이션(432)이 전자 상거래 플랫폼 상의 다른 온라인 스토어들의 다른 부분들에 액세스하더라도 제3자는 온라인 스토어의 이러한 부분들로부터 제한될 수 있다.
API 범위에 기반하는 제3자 계정 승인들은 제3자가 컴퓨팅 시스템(420) 상의 일정 데이터에 액세스하는지 안 하는지 여부를 지시할 수 있다. 컴퓨팅 시스템(420)이 전자 상거래 플랫폼이고 소프트웨어 인스턴스(424)가 머천트의 온라인 스토어인 경우를 고려한다. 제3자가 머천트의 온라인 스토어의 “고객” 구획에 액세스할 수 있더라도, 제3자는 그러한 구획에 포함되는 고객 정보 모두에 액세스할 수는 없다. 고객 정보의 임의의 것, 일부 또는 모두는 감춰지거나, 스크램블되거나, 모조 정보로 대체될 수 있다. 고객 정보는 입도의 다양한 상이한 레벨 중 임의의 것으로 보호될 수 있다. 예를 들어, 제3자는, 다른 고객 정보 모두가 감춰지는 동안 “고객” 구획 상의 고객 배송 정보에 액세스하는 것이 가능할 수 있다.
컴퓨팅 시스템(420)에서의 개인적으로 식별 가능한 정보(PII) 및/또는 다른 개인 정보에 대한 제3자의 액세스는 API 범위에 기반하여 결정될 수 있다. 일부 경우에, 제3자 계정 승인들은, 상응하는 외부 애플리케이션의 API 범위가 API(422)의 일정 기능들을 포함하면 PII에 대한 액세스만을 포함할 수 있다. 예를 들어, 컴퓨팅 시스템(420)이 전자 상거래 플랫폼이고 소프트웨어 인스턴스(424)가 머천트의 온라인 스토어인 경우에, 외부 애플리케이션(432)에 대한 API 범위는 머천트의 온라인 스토어의 “주문” 페이지에 대한 액세스를 제공하는 API(422)의 주문 기능들을 포함할 수 있다. 그러나, API 범위가 API(422)의 고객 기능들을 포함하지 않으면, “주문” 페이지는 “주문” 페이지에 정상적으로 포함될 어떤 고객 PII도 드러내지 않을 수 있다.
일부 구현에서, 컴퓨팅 시스템(420) 상의 데이터에 대한 제3자의 액세스는 일정 기간으로 제한될 수 있다. 예를 들어, 제3자 계정 승인들은 30 일의 기간 내에 수집된 데이터에 대한 액세스만을 가능하게 하여, 완전한 데이터세트에 대한 제3자 액세스를 허가하는 것을 피할 수 있다. 제3자 데이터 액세스에 대한 기간은 외부 애플리케이션에 대한 API 승인들에 기반하여 결정될 수 있다. 예를 들어, 외부 애플리케이션(432)에 대한 API 승인들은, 외부 애플리케이션(432)이 1 년 동안의 API(422)의 특정 기능을 호출하는 것만이 허용되었다는 것을 나타낼 수 있다. 이러한 예에서, 외부 애플리케이션(432)을 지원하고 있는 제3자에 대한 계정 승인들은 1 년 동안 수집된 API(422)의 특정 기능과 연관된 데이터에 대한 액세스만을 가능하게 할 수 있다.
외부 애플리케이션과 연관된 API 상호 작용들은 또한 또는 대신에 데이터에 액세스하기 위한 한 번 이상의 기간을 결정하는 데 이용될 수 있다. 예를 들어, API 상호 작용들은 외부 애플리케이션(432)이 API(422)의 특정 기능을 이용하여 실제로 데이터에 액세스하였던 기간을 나타낼 수 있다. 제3자 계정 승인들은 그 후 API(422)의 이러한 특정 기능과 연관된 데이터에 대한 액세스를 동일한 기간으로 제한할 수 있다.
대안적으로 또는 부가적으로, 데이터 액세스를 제한하는 기간은 외부 애플리케이션이 컴퓨팅 시스템(420), 또는 컴퓨팅 시스템(420) 상의 특정 소프트웨어 인스턴스에 설치되고/되거나 등록된 날짜에 기반하여 결정될 수 있다. 예를 들어, 외부 애플리케이션(432)이 단지 1 주 전에만 소프트웨어 인스턴스(424)에 의해 설치되었으면, 외부 애플리케이션(432)과 연관된 제3자 계정 승인들은 1 주 내에 수집된 소프트웨어 인스턴스의 데이터에 대한 액세스만을 가능하게 할 수 있다.
유리하게는, API 기록(410)은 적절한 제3자 계정 승인들의 객관적인 표시를 제공할 수 있다. API 기록(410)으로부터 비롯되는 API 범위들의 이용은 계정 승인들을 생성하기 위한 사람의 판단에 대한 의존을 감소시키거나 제거할 수도 있으므로, 너무 넓거나 너무 좁은 계정 승인들을 제공하는 경향이 덜 있을 수 있다. 더욱이, API 범위들은 API 매핑(416)을 이용하여 제3자 계정 승인들이 자동적으로 생성되는 것을 가능하게 할 수 있다. 예를 들어, 제3자가 외부 애플리케이션(432)에 대한 기술적 지원을 제공하기 위해 계정을 요청하는 경우, API 승인 기록(412), API 상호 작용 기록(414) 및/또는 API 매핑(416)은 최소 수작업 개입으로 또는 어떤 수작업 개입 없이도 제3자에 대한 계정 승인들을 결정하기 위해 액세스되고 사용될 수 있다. 외부 애플리케이션(432)이 API(422)의 다른 기능들을 호출하는 승인들이 허가되고/되거나 새로운 API 호출들이 외부 애플리케이션(432)으로부터 수신됨에 따라, API 승인 기록(412) 및/또는 API 상호 작용 기록(414)은 시간이 지남에 따라 업데이트될 수 있다. API 승인 기록(412) 및/또는 API 상호 작용 기록(414)이 변경됨에 따라, 제3자 계정 승인들은 그 후 자동적으로 업데이트될 수 있다.
계정 승인 엔진(402)의 다른 구현들이 또한 고려된다. 일부 구현에서, 계정 승인 엔진(402)은 컴퓨팅 시스템(420)의 핵심 기능으로서 또는 컴퓨팅 시스템(420)에 의해 지원되는 애플리케이션 또는 서비스로서 컴퓨팅 시스템(420)에 의해 적어도 부분적으로 제공된다. 일부 구현에서, 계정 승인 엔진(402)은, 예를 들어 사용자 디바이스(440)와 같은 사용자 디바이스에 의해 적어도 부분적으로 구현된다. 일부 구현에서, 계정 승인 엔진(402)은 계정 승인들을 생성하고 관리하는 독립형 서비스로서 구현된다. 계정 승인 엔진(402)이 단일 구성 요소로서 도시되지만, 계정 승인 엔진은 대신에 네트워크를 통하여 통신하는 다수의 상이한 구성 요소에 의해 제공될 수 있다.
도 5는 일 실시예에 따른 API 범위에 기반하여 계정 승인들을 생성하기 위한 방법(500)을 도시하는 흐름도이다. 컴퓨팅 시스템(420) 상의 계정에 대한 계정 승인들의 세트를 생성하기 위해 계정 승인 엔진(402)에 의해 수행되는 것으로 방법(500)을 설명할 것이다. 그러나, 이것이 방법(500)의 단지 한 가지의 예시적 구현이라는 점이 주목되어야 한다.
컴퓨팅 시스템(420) 상의 계정은 컴퓨팅 시스템(420)의 적어도 일부 리소스에 제3자 또는 다른 사용자가 액세스하는 것을 가능하게 할 수 있다. 예를 들어, 계정은 컴퓨팅 시스템(420)에 대한 협력자 계정일 수 있다. 일부 구현에서, 제3자 디바이스(450)는 컴퓨팅 시스템(420)에 액세스하기 위해 계정에 로그인할 수 있다. 계정 승인들의 세트는 컴퓨팅 시스템(420) 상의 사용자 계정 세션 동안의 사용자 액세스의 정도를 한정할 수 있다.
일부 구현에서, 방법(500)을 이용하여 생성되는 계정 승인들의 세트는 컴퓨팅 시스템(420) 상의 소프트웨어 인스턴스(424)와 적어도 부분적으로 관련될 수 있다. 예를 들어, 계정 승인들의 세트는 소프트웨어 인스턴스(424)의 적어도 일부에 계정이 액세스하는 것을 가능하게 할 수 있다. 소프트웨어 인스턴스(424)에 대한 액세스를 가능하게 하는 계정 승인들의 세트를 생성하기 전에, 계정 승인 엔진(402)은 소프트웨어 인스턴스(424)과 계정 사이에 관계가 존재하는지 아닌지 여부를 판단하는 선택적 단계(502)를 수행할 수 있다. 그러한 관계의 일 예는 계정이 소프트웨어 인스턴스(424)에 외부 애플리케이션(432)에 대한 지원을 제공하는 데 사용되는 것이다. 이러한 예에서, 소프트웨어 인스턴스(424)(또는 소프트웨어 인스턴스(424)와 연관된 사용자)는 외부 애플리케이션(432)을 설치하고/하거나 구현하고 외부 애플리케이션(432)이 갖는 문제에 직면할 수 있다.
단계(502)는 소프트웨어 인스턴스(424)가 외부 애플리케이션(432)을 구현하고 계정이 외부 애플리케이션(432)의 개발자에 상응한다고 프로세서(404)가 판단하는 단계를 포함할 수 있다. 대안적으로 또는 부가적으로, 단계(502)는 계정이 외부 애플리케이션(432)에 대한 지원 서비스와 연관된다고 프로세서(404)가 판단하는 단계를 포함할 수 있다. 외부 애플리케이션(432)에 대한 지원을 얻기 위해 소프트웨어 인스턴스(424)가 계정(또는 계정과 연관된 제3자)과 관계하였다고 판단하기 위해 계정과 소프트웨어 인스턴스(424) 사이의 메시지들 및/또는 다른 온라인 활동이 분석될 수 있다. 대안적으로 또는 부가적으로, 단계(502)는 소프트웨어 인스턴스(424)와 계정 사이에 관계가 존재한다는 명백한 확증을 프로세서(404)가 수신하는 단계를 포함할 수 있다. 이러한 확증은, 예를 들어 사용자 디바이스(440)를 사용하여 생성되고/되거나 계정 승인 엔진(402)으로 송신될 수 있다.
단계(502)가 방법(500)의 모든 구현에서 수행되는 것은 아닐 수 있다는 점이 주목되어야 한다. 예를 들어, 계정 승인들의 세트는 컴퓨팅 시스템(420) 상의 모든 소프트웨어 인스턴스와 관련되거나, 어떤 특정 소프트웨어 인스턴스와도 관련되지 않을 수 있다. 이에 따라, 외부 애플리케이션(432)과 개별 소프트웨어 인스턴스들 사이에 임의의 관계가 존재하는지 여부를 판단할 필요가 없을 수 있다.
단계(504)는 컴퓨팅 시스템(420)의 제1 세트의 리소스들에 액세스하는 외부 애플리케이션(432)을 수반하는 API 상호 작용들의 기록을 프로세서(404)가 얻는 단계를 포함할 수 있다. 이러한 API 상호 작용들의 기록은, 예를 들어 API 상호 작용 기록(414)으로부터 얻어질 수 있다. 제1 세트의 리소스들이 컴퓨팅 시스템(420)의 모든 리소스들이 아니라 대신에 컴퓨팅 시스템(420)의 전체 리소스들의 서브세트일 수 있다는 점이 주목되어야 한다. 예를 들어, 제1 세트의 리소스들은 API 상호 작용들의 기록에서의 API 호출들을 통하여 액세스 가능한 데이터를 포함할 수 있지만, API 상호 작용들의 기록에서의 API 호출들을 통하여 액세스 가능하지 않은 데이터를 포함하지 않을 수 있다. 제1 세트의 리소스들은 컴퓨팅 시스템(420) 상의 하나 이상의 소프트웨어 인스턴스와 관련될 수 있다.
일부 구현에서, API 상호 작용들의 기록은 외부 애플리케이션(432)을 실행시키고 있는 컴퓨팅 시스템(430)(및/또는 다른 외부 디바이스)로부터 컴퓨팅 시스템(420)에 의해 수신되는 API 호출들을 모니터링함으로써 얻어진다. API 호출들을 모니터링하는 것은 API 호출들에서 액세스되는 API(422)의 기능들을 모니터링하는 것, API 호출들의 기간 또는 시퀀스를 모니터링하는 것, API 호출들에 포함되는 콘텐츠를 모니터링하는 것, 그리고/또는 컴퓨팅 시스템(420)으로부터의 응답들의 콘텐츠를 모니터링하는 것을 포함할 수 있다.
단계(506)는 외부 애플리케이션(432)에 대한 API 승인들의 기록을 프로세서(404)가 얻는 단계를 포함한다. 이러한 API 승인들의 기록은, 예를 들어 API 승인 기록(412)으로부터 얻어질 수 있다. 일부 구현에서, API 승인들의 기록은 외부 애플리케이션(432)이 API(422)를 통하여 액세스하는 컴퓨팅 시스템(420)의 제2 세트의 리소스들을 나타낼 수 있으며, 상기 제2 세트의 리소스들은 컴퓨팅 시스템(420)의 전체 리소스들의 서브세트일 수 있다. 제1 세트의 리소스들과 제2 세트의 리소스들 사이에 적어도 일부 중복이 있을 수 있다는 점이 주목되어야 한다.
단계(508)는 단계(504)에서 얻어지는 API 상호 작용들의 기록에 기반하여 그리고/또는 단계(506)에서 얻어지는 API 승인들의 기록에 기반하여 계정에 대한 계정 승인들의 세트를 프로세서(404)가 생성하는 단계를 포함한다. 단계(508)가 API 상호 작용들의 기록에 기반할 때, 계정 승인들의 세트는 컴퓨팅 시스템(420)의 제1 세트의 리소스들에 계정이 액세스하는 것을 가능하게 할 수 있다. 계정 승인들의 세트는 또한 또는 대신에 API 상호 작용들의 기록에 상응하지 않는 컴퓨팅 시스템(420)의 다른 리소스들에 대한 계정의 액세스를 제한할 수 있다. 마찬가지로, 단계(508)가 API 승인들의 기록에 기반할 때, 계정 승인들의 세트는 컴퓨팅 시스템(420)의 제2 세트의 리소스들에 계정이 액세스하는 것을 가능하게 할 수 있고/있거나, API 승인들의 기록에 상응하지 않는 컴퓨팅 시스템(420)의 다른 리소스들에 대한 계정의 액세스를 제한할 수 있다.
단계(508)가 단계(504)에서 얻어지는 API 상호 작용들의 기록에만 기반하여 또는 단계(506)에 기반한 API 승인들의 기록에만 기반하여 수행될 수 있으므로, 단계들(504, 506) 중 하나만이 방법(500)에서 수행될 수 있다는 점이 주목되어야 한다.
일부 구현에서, 단계(508)는 API 상호 작용들의 기록을 제1 세트의 리소스들로 매핑하는 단계를 포함한다. 이러한 매핑하는 단계는 API(422)의 부분들과 컴퓨팅 시스템(420)의 리소스들 사이의 API 매핑(416) 및/또는 다른 저장된 매핑에 기반하여 수행될 수 있다. 이러한 API(422)의 부분들은 API(422)의 상이한 기능들을 포함할 수 있지만, 이에 제한되지 않는다. 일 예에 따르면, 단계(508)는 API 상호 작용들의 기록에서의 특정 API 상호 작용을 제1 세트의 리소스들의 특정 리소스로 매핑하고, 계정이 특정 리소스에 액세스하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함할 수 있다. 이는 계정 승인들의 세트를 형성하는 API 상호 작용들의 기록에서의 각각의 API 상호 작용에 대해 수행될 수 있다. 그러나, 일부 API 상호 작용이 컴퓨팅 시스템(420) 상의 리소스로 매핑하지 않을 수 있고/있거나 일부 API 상호 작용이 컴퓨팅 시스템(420)의 동일한 리소스들로 매핑할 수 있다는 점이 주목되어야 한다. 그러므로, API 상호 작용들의 기록에서의 일부 API 상호 작용은 계정 승인들의 세트에 기여하지 않을 수 있다.
단계(508)는 개별 API 상호 작용들을 컴퓨팅 시스템(420)의 리소스들로 매핑하는 것에 제한되지 않는다. 예를 들어 일부 경우에, 단계(508)는 API 상호 작용들의 기록에서의 API 상호 작용들의 그룹을 컴퓨팅 시스템(420)의 워크플로우로 매핑하고, 계정이 워크플로우를 수행하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함할 수 있다. 이러한 매핑하는 단계는 API(422)의 부분들과 컴퓨팅 시스템(420)의 워크플로우들 사이의 API 매핑(416) 및/또는 다른 저장된 매핑에 기반하여 수행될 수 있다.
일부 구현에서, API 상호 작용들의 기록에서의 특정 API 상호 작용(또는 API 상호 작용들의 그룹)은 컴퓨팅 시스템(420) 상의 데이터세트에 대한 액세스를 가능하게 하는 리소스에 상응한다. 특정 API 상호 작용은 연관된 기간을 가질 수도 있다. 예를 들어, API 상호 작용들의 기록은 외부 애플리케이션(432)이 수 일, 수 주, 수 개월 또는 수 년의 기간 동안 데이터세트에 액세스하는 데 특정 API 상호 작용만을 이용하였다는 것을 나타낼 수 있다. 계정 승인들의 세트는 그 때 상기 기간에 상응하는 데이터세트의 부분들에 대한 액세스만을 가능하게 할 수 있다. 예를 들어, 계정 승인들의 세트에서의 적어도 하나의 계정 승인은 데이터세트에 대한 액세스를 가능하게 하지만, 상기 기간에 상응하는 데이터세트의 부분들로 계정의 액세스를 제한할 수 있다. 이러한 방식으로, 적어도 하나의 계정 승인은 외부 애플리케이션(432)이 또한 API(422)를 통하여 액세스할 수 있었던 데이터에만 계정이 액세스하는 것을 가능하게 할 수 있다. 이는 앞서 공개된 것보다 더 많은 데이터가 공개되는 것을 피할 수 있다.
일부 구현에서, 단계(508)는 API 승인들의 기록을 컴퓨팅 시스템(420) 상의 제2 세트의 리소스들 및/또는 워크플로우로 매핑하는 단계를 포함한다. 이러한 매핑하는 단계는 API(422)의 부분들과 컴퓨팅 시스템(420) 상의 리소스들 및/또는 워크플로우들 사이의 API 매핑(416)을 이용하여 그리고/또는 다른 저장된 매핑을 이용하여 수행될 수 있다. 예를 들어, 단계(508)는 API 승인들의 기록에서의 특정 API 승인을 제2 세트의 리소스들의 특정 리소스로 매핑하고, 계정이 특정 리소스에 액세스하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함할 수 있다. 대안적으로 또는 부가적으로, 단계(508)는 API 승인들의 기록에서의 API 승인들의 그룹을 컴퓨팅 시스템(420)의 워크플로우로 매핑하고, 계정이 워크플로우를 수행하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함할 수 있다.
일부 구현에서, API 승인들의 기록은 컴퓨팅 시스템(420) 상의 데이터세트에 대한 액세스를 가능하게 하는 특정 API 승인을 포함한다. API 승인들의 기록이 또한 그러한 특정 API 승인에 대한 기간을 포함하면, 계정 승인들의 기록에서의 적어도 하나의 승인은 상기 기간에 상응하는 데이터세트의 부분들로 계정의 액세스를 제한할 수 있다.
앞서 주목된 바와 같이, 단계(508)에서 생성되는 계정 승인들의 세트는 계정이 소프트웨어 인스턴스(424)에 액세스하는 것을 가능하게 할 수 있다. 일부 구현에서, 계정 승인들의 세트는 소프트웨어 인스턴스(424)에 특정하거나 이것에 제한될 수 있다. 예를 들어, 제1 세트의 리소스들 및/또는 제2 세트의 리소스들은 소프트웨어 인스턴스(424)에 특정할 수 있다. 이에 따라, 계정 승인들의 세트는 컴퓨팅 시스템(420) 상의 다른 소프트웨어 인스턴스들에 대한 액세스를 가능하게 하지 않을 수 있다.
일부 구현에서, 단계(508)에서 결정되는 계정 승인들의 세트는 계정에 대한 전체 계정 승인들 중 일부만을 형성할 수 있다. 예를 들어, 계정이 특정 사용자와 연관되면, 사용자 특정 계정 승인들이 계정 승인들의 세트 상에서 계층화될 수 있다. 사용자 특정 계정 승인들은 계정 승인들의 세트에서의 계정 승인들을 보완하고/하거나 제한할 수 있다.
소프트웨어 인스턴스(424)에 외부 애플리케이션(432)에 대한 지원을 계정이 제공하는 것을 가능하게 하도록 계정 승인들의 세트가 생성되는 경우에, 계정 승인들의 세트는 일정 기간 후에 종료될 수 있다. 예를 들어, 외부 애플리케이션(432)이 갖는 사용자의 문제가 해결된 후에, 계정 승인 엔진(402)은 계정에 대한 계정 승인들의 세트를 종료할 수 있다.
유리하게는, 방법(500)은 사람이 최소로 관여하거나 전혀 관여하지 않으면서 계정 승인 엔진(402)에 의해 계정 승인들이 자동적으로 생성되는 것을 가능하게 할 수 있다. 이는 계정 승인들이 생성될 수 있는 속도를 증가시킬 수 있고 계정 승인들의 생성에 악영향을 줄 수 있는 사람의 편견을 제거할 수도 있다. 게다가, API 상호 작용들 및/또는 API 승인들의 이용은 계정 승인들의 세트에 대한 적절한 범위를 제공할 수 있다.
추가 실시예들
도 6은 일 실시예에 따른 전자 상거래 플랫폼(610)과 상호 작용하는 외부 애플리케이션(600) 및 제3자(602)를 도시하는 블록도이다. 도시된 예에서, 외부 애플리케이션(600)은 온라인 스토어(630)를 포함하는 전자 상거래 플랫폼(610) 상의 온라인 스토어들에 대한 판매 분석 워크플로우를 제공한다. 판매 분석 워크플로우를 수행하기 위해, 외부 애플리케이션(600)은 전자 상거래 플랫폼(610)에 의해 제공되는 API(620)의 분석 기능들(622) 및 제품 기능들(624)을 호출한다. 분석 기능들(622) 및 제품 기능들(624)은 온라인 스토어(630)의 분석 리소스들(632), 제품 리소스들(634) 및 주문 리소스들(636)에 대한 액세스를 가능하게 한다. 외부 애플리케이션(600)은, 온라인 스토어(630)의 판매 분석 워크플로우를 수행할 때 온라인 스토어(630)의 리소스들(632, 634, 636)에 기록하고/하거나 이것들을 판독할 수 있다.
제3자(602)는 협력자 계정(626)을 통하여 온라인 스토어(630)의 분석 리소스들(632), 제품 리소스들(634) 및 주문 리소스들(636)에 액세스할 수도 있다. 예를 들어, 제3자(602)는 협력자 계정(626)에 로그인하고 리소스들(632, 634, 636)에 액세스하는 데 디바이스를 사용할 수 있다. 일부 구현에서, 제3자(602)는 외부 애플리케이션(600)에 대한 지원을 제공하고 보다 효과적으로 이러한 지원을 제공하기 위해 협력자 계정(626)이 제공된다. 예를 들어, 리소스들(632, 634, 636)에 액세스하는 것은 제3자(602)가, 외부 애플리케이션(600)을 이용할 때 온라인 스토어(630)와 연관된 머천트가 직면하는 문제를 더 잘 이해하고/하거나, 머천트가 문제를 바로잡는 것을 돕는 것을 가능하게 할 수 있다.
일부 구현에서, 협력자 계정(626)에 대한 계정 승인들은 도 5의 방법(500)을 이용하여 생성된다. 예를 들어, 외부 애플리케이션(600) 및 전자 상거래 플랫폼(610)을 수반하는 API 상호 작용들의 기록은 방법(500)의 단계(504)에서 얻어질 수 있다. 대안적으로 또는 부가적으로, 외부 애플리케이션(600)에 허가되는 API 승인들의 기록은 방법(500)의 단계(506)에서 얻어질 수 있다. API 상호 작용들의 기록 및/또는 API 승인들의 기록은 외부 애플리케이션(600)의 API 범위를 결정하는 데 이용될 수 있다. 도시된 바와 같이, 외부 애플리케이션(600)은 API(620)의 분석 기능들(622) 및 제품 기능들(624)에 액세스하고, 외부 애플리케이션(600)의 판매 분석 워크플로우를 구현하기 위해 이러한 기능들을 호출한다. 이에 따라, 외부 애플리케이션(600)의 API 범위는 분석 기능들(622) 및 제품 기능들(624)을 포함할 수 있다. 방법(500)의 단계(508)에서, 이러한 API 범위는 온라인 스토어(630)의 분석 리소스들(632), 제품 리소스들(634) 및 주문 리소스들(636)로 매핑될 수 있다. 온라인 스토어(630)의 리소스들(632, 634, 636)에 대한 액세스를 포함하고, 가능하게는 온라인 스토어(630)의 다른 리소스들에 대한 액세스를 제한하는 협력자 계정(626)에 대한 계정 승인들이 그 후 생성될 수 있다.
일부 구현에서, 방법(500)을 이용하여 생성되는 계정 승인들은 온라인 스토어(630)에 특정할 수 있다. 예를 들어, 협력자 계정(626)은 다른 온라인 스토어들의 분석 리소스들, 제품 리소스들 및 주문 리소스들에 액세스하지 않을 수 있다.
일부 구현에서, 외부 애플리케이션(600)의 API 범위는 리소스들(632, 634, 636) 전체보다는 오히려 온라인 스토어(630)의 리소스들(632, 634, 636)의 서브세트만을 포함할 수 있다. 마찬가지로, 협력자 계정(626)에 대한 계정 승인들은 리소스들(632, 634, 636)의 동일한 서브세트에 대한 액세스만을 가능하게 할 수 있다.
일부 구현에서, 협력자 계정(626)에 대한 계정 승인들을 생성하기 전에, 방법(500)의 단계(502)가 협력자 계정(626)과 온라인 스토어(630) 사이에 관계가 존재한다는 것을 확증하기 위해 수행된다. 단계(502)는 협력자 계정(626)이 온라인 스토어(630)에 외부 애플리케이션(600)에 대한 지원을 제공하기 위해 제3자(602)에 의해 사용된다고 판단하는 단계를 포함할 수 있다. 일 예에서, 외부 애플리케이션(600)은 제3자(602)에 의해 개발되었을 수 있다. 온라인 스토어(630)가 제3자(602)에 의해 개발된 외부 애플리케이션(600)을 이용하고 있고, 협력자 계정(626)이 제3자(602)와 연관된다는 인지에 기반하여, 협력자 계정(626)과 온라인 스토어(630) 사이의 관계가 그 후 확립될 수 있다. 다른 예에서, 제3자(602)는 외부 애플리케이션(600)에 대한 지원 서비스들을 제공한다. 협력자 계정(626)과 온라인 스토어(630) 사이의 관계는 온라인 스토어(630)의 머천트가 지원 서비스들을 얻기 위해 제3자(602)와 관계하는 것에 의해 입증될 수 있다. 예를 들어, 상기 관계는 전자 상거래 플랫폼(610)에서의 애플리케이션 지원에 대한 시장에서의 머천트의 활동에 기반하여, 그리고/또는 머천트와 제3자(602) 사이의 메시지들을 통해 확립될 수 있다. 온라인 스토어(630)와 제3자(602) 사이에 관계가 없는 것이 자동적으로 결정될 수 있으면, 온라인 스토어(630)의 머천트는 제3자(602)가 온라인 스토어(630)에 대한 액세스가 허가되어야 한다는 명백한 확증을 제공할 것을 요청 받을 수 있다.
도 7 및 도 8은 전자 상거래 플랫폼(610) 상의 협력자 계정(626)을 이용하여 제3자(602)에 의해 액세스 가능한 예시적 스크린 페이지들을 도시한다. 이러한 스크린 페이지들은 온라인 스토어(630)의 분석 리소스들(632), 제품 리소스들(634) 및 주문 리소스들(636) 중 적어도 일부에 대한 액세스를 제공한다.
도 7은 협력자 계정(626)을 이용하여 액세스되는 온라인 스토어(630)의 관리자의 홈 페이지(700)의 일 예를 도시한다. 홈 페이지(700)는 홈 페이지(700)에 액세스하는 옵션(702), 주문 페이지에 액세스하는 옵션(704), 제품 페이지에 액세스하는 옵션(706), 고객 페이지에 액세스하는 옵션(708), 분석 페이지에 액세스하는 옵션(710), 마케팅 페이지에 액세스하는 옵션(712), 할인 페이지에 액세스하는 옵션(714), 애플리케이션 페이지에 액세스하는 옵션(716), 및 설정 페이지에 액세스하는 옵션(718)을 포함한다.
도시된 예에서, 옵션들(702, 704, 706, 710, 714, 716)은 홈 페이지(700) 상에서 인에이블링된다. 그러므로 홈 페이지(700)에 더하여, 협력자 계정(626)은 온라인 스토어(630)의 관리자의 주문 페이지, 제품 페이지, 분석 페이지, 할인 페이지, 애플리케이션 페이지 및 설정 페이지에 액세스한다. 옵션들(702, 704, 706, 710, 714, 716)이 온라인 스토어(630)의 분석 리소스들(632), 제품 리소스들(634) 및 주문 리소스들(636)을 포함하거나 이것들과 관련되므로, 이러한 액세스가 제공되었을 수 있다.
옵션들(708, 712)은 홈 페이지(700) 상에서 인에이블링되지 않으며, 이는 옵션들(708, 712)에 빗금을 그어 도시된다. 이에 따라, 협력자 계정(626)은 관리자의 고객 페이지 및 마케팅 페이지에 액세스하지 않는다. 이는, 온라인 스토어(630)의 분석 리소스들(632), 제품 리소스들(634) 및 주문 리소스들(636)이 고객 페이지 또는 마케팅 페이지로 매핑하지 않으므로, 이러한 페이지들에 대한 액세스를 배제하는 협력자 계정(626)에 대한 계정 승인들이 생성되었기 때문일 수 있다.
협력자 계정(626)이 관리자의 홈 페이지(700), 주문 페이지, 제품 페이지, 분석 페이지, 할인 페이지, 애플리케이션 페이지 및 설정 페이지에 액세스하지만, 이러한 페이지들은 정상적으로 이러한 페이지들 상에 포함될 데이터 또는 다른 콘텐츠 모두를 포함하지는 않을 수 있다. 홈 페이지(700) 상에 나타나지 않은 부가 콘텐츠를 포함할 수 있는 상이한 홈 페이지가 온라인 스토어(630)의 머천트에게 나타내어질 수 있다. 머천트에게 나타내어지는 홈 페이지의 일 예가 도 2에 도시된다.
도 8은 협력자 계정(626)을 이용하여 액세스되는 온라인 스토어(630)의 관리자의 주문 페이지(800)의 일 예를 도시한다. 주문 페이지(800)는, 예를 들어 옵션(704)을 사용하여 홈 페이지(700)로부터 내비게이팅되었을 수 있다. 주문 페이지(800)는 온라인 스토어(630)에 의해 수신되는 다수의 주문(802, 804, 806, 808, 810, 812)의 기록을 포함하며, 이는 온라인 스토어(630)의 주문 리소스들(636)의 일 예이다. 주문 페이지(800)는 또한 협력자 계정(626)에 대해 인에이블링되지 않는 새로운 주문을 생성하는 옵션(814)을 포함한다. 예를 들어, 협력자 계정(626)에 대한 계정 승인들은 새로운 주문들을 생성하는 것에 대한 액세스를 포함하지 않을 수 있다.
주문 페이지(800)는 주문들(802, 804, 806, 808, 810, 812)과 관련되는 정보의 일부만을 제공한다. 예를 들어, 고객 정보는 주문들(802, 804, 806, 808, 810, 812) 각각에 대해 감춰진다. 외부 애플리케이션(600)의 API 범위가 온라인 스토어(630)의 고객 리소스들로 매핑하지 않으므로, 협력자 계정(626)에 대한 계정 승인들이 고객 리소스들에 대한 액세스를 가능하게 하지 않기 때문에, 고객 정보는 감춰질 수 있다.
게다가, 주문 페이지(800)는 특정 기간 내의 일부 타입의 데이터만을 나타낸다. 도시된 바와 같이, 주문들(802, 804, 806)에 대한 총 비용, 지불, 주문 처리 상태 및 항목의 수가 주문 페이지(800) 상에 표시된다. 그러나, 이러한 동일한 정보가 주문들(808, 810, 812)에 대해 감춰진다. 주문들(808, 810, 812)에 대한 총 비용, 지불, 주문 처리 상태 및 항목의 수는, 외부 애플리케이션(600)의 API 범위가 7 일의 기간으로 제한되므로 감춰졌을 수 있다. 예를 들어, 외부 애플리케이션(600)은 7 일 동안만 온라인 스토어(630)에 의해 설치되었을 수 있다. 그러므로, 협력자 계정(626)에 대한 계정 승인들은 7 일 기간을 넘어 얻어졌던 일부 데이터에 대한 액세스를 가능하게 하지 않을 수 있다.
결론
본 발명의 특정 특징들 및 실시예들을 참조하여 본 발명을 설명하였지만, 다양한 변경 및 조합이 본 발명으로부터 벗어나지 않는 범위 내에서 본 발명의 특정 특징들 및 실시예들에 행해질 수 있다. 따라서, 상세한 설명 및 도면들은 첨부된 청구항들에 의해 한정되는 본 발명의 일부 실시예의 예시로서 단순히 간주되어야 하고, 본 발명의 범위에 포함되는 임의의 그리고 모든 변경, 변형, 조합 또는 동등물을 포함하는 것으로 고려된다. 그러므로, 본 발명 그리고 본 발명의 이점들을 상세히 설명하였지만, 다양한 변화, 대체 및 개조가 첨부된 청구항들에 의해 한정되는 본 발명으로부터 벗어나지 않는 범위 내에서 본원에 행해질 수 있다. 더욱이, 본 출원의 범위는 본 명세서에 설명하는 프로세스, 기계, 제조품, 물질의 조성, 수단, 방법들 및 단계들의 특정 실시예들에 제한되는 것으로 의도되지 않는다. 당업자가 본 발명의 개시로부터 손쉽게 이해할 것인 바와 같이, 본원에 설명하는 상응하는 실시예들과 실질적으로 동일한 기능을 수행하거나 실질적으로 동일한 결과를 달성하는 현재 존재하거나 이후에 개발될 프로세스들, 기계들, 제조품, 물질의 조성들, 수단, 방법들 또는 단계들이 본 발명에 따라 활용될 수 있다. 따라서, 첨부된 청구항들은 첨부된 청구항들의 범위 내에서 그러한 프로세스들, 기계들, 제조품, 물질의 조성들, 수단, 방법들 또는 단계들을 포함하는 것으로 의도된다.
더욱이, 명령어들을 실행시키는 본원에 예시되는 임의의 모듈, 구성 요소 또는 디바이스는 컴퓨터/프로세서 판독 가능 명령어들, 데이터 구조체들, 프로그램 모듈들 및/또는 다른 데이터와 같은 비일시적 컴퓨터/프로세서 판독 가능 저장 매체 또는 정보의 저장을 위한 매체를 포함하거나 이것들에 액세스할 수 있다. 비일시적 컴퓨터/프로세서 판독 가능 저장 매체의 예들의 철저하지 않은 목록은 자기 카세트들, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 디바이스들, 컴팩트 디스크 읽기 전용 메모리(CD-ROM), 디지털 비디오 디스크들 또는 디지털 다기능 디스크들(DVDs), Blu-ray Disc™, 또는 다른 광 저장 장치와 같은 광 디스크들, 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성의, 제거 가능 및 제거 불가능 매체, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 전기적 소거 가능 프로그래밍 가능 읽기 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술을 포함한다. 임의의 그러한 비일시적 컴퓨터/프로세서 저장 매체는 디바이스의 일부이거나, 디바이스에 액세스 가능하거나 연결 가능할 수 있다. 본원에 설명하는 임의의 애플리케이션 또는 모듈은 그러한 비일시적 컴퓨터/프로세서 판독 가능 저장 매체에 의해 저장되거나 수용될 수 있는 컴퓨터/프로세서 판독 가능/실행 가능 명령어들을 사용하여 구현될 수 있다.
본 교시는 이하의 번호가 매겨진 조목들 중 하나 이상의 특징들로 확장될 수도 있다:
1. 컴퓨팅 시스템의 리소스들의 세트에 액세스하는 소프트웨어 애플리케이션을 수반하는 애플리케이션 프로그래밍 인터페이스(API) 상호 작용들의 기록을 얻는 단계; 및
API 상호 작용들의 기록에 기반하여 계정에 대한 계정 승인들의 세트를 생성하는 단계로서, 계정 승인들의 세트는 컴퓨팅 시스템의 리소스들의 세트에 그러한 계정이 액세스하는 것을 가능하게 하는 것인 단계를 포함하는 컴퓨터 구현 방법.
2. 계정에 대한 계정 승인들의 세트를 생성하는 단계는:
API 상호 작용들의 기록에서의 특정 API 상호 작용을 컴퓨팅 시스템의 리소스들의 세트의 특정 리소스로 매핑하는 단계; 및
계정이 특정 리소스에 액세스하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함하는 조목 1의 컴퓨터 구현 방법.
3. 특정 API 상호 작용을 특정 리소스로 매핑하는 단계는 API의 부분들과 컴퓨팅 시스템의 리소스들 사이의 저장된 매핑에 기반하는 조목 2의 컴퓨터 구현 방법.
4. API 상호 작용들의 기록을 얻는 단계는 특정 API 상호 작용에 대한 기간을 얻는 단계를 포함하고;
특정 리소스는 컴퓨팅 시스템 상의 데이터세트에 대한 액세스를 가능하게 하고;
적어도 하나의 계정 승인은 기간에 상응하는 데이터세트의 부분들로 계정의 액세스를 제한하는 조목 2의 컴퓨터 구현 방법.
5. 계정에 대한 계정 승인들의 세트를 생성하는 단계는:
API 상호 작용들의 기록에서의 API 상호 작용들의 그룹을 컴퓨팅 시스템의 워크플로우로 매핑하는 단계; 및
계정이 워크플로우를 수행하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함하는 조목 1의 컴퓨터 구현 방법.
6. API 상호 작용들의 그룹을 워크플로우로 매핑하는 단계는 API의 부분들과 컴퓨팅 시스템의 워크플로우들 사이의 저장된 매핑에 기반하는 조목 5의 컴퓨터 구현 방법.
7. 계정 승인들의 세트는 API 상호 작용들의 기록에 상응하지 않는 컴퓨팅 시스템의 다른 리소스들에 대한 계정의 액세스를 제한하는 조목 1의 컴퓨터 구현 방법.
8. 리소스들의 세트는 API 상호 작용들의 기록에서의 API 호출들을 통하여 액세스 가능한 데이터를 포함하는 조목 1의 컴퓨터 구현 방법.
9. 계정은 사용자가 컴퓨팅 시스템에 액세스하는 것을 가능하게 하는 조목 1의 컴퓨터 구현 방법.
10. 계정 승인들의 세트는 소프트웨어 애플리케이션과 연관된 컴퓨팅 시스템 상의 소프트웨어 인스턴스에 계정이 액세스하는 것을 가능하게 하는 조목 1의 컴퓨터 구현 방법.
11. 계정 승인들의 세트를 생성하는 단계 이전에, 소프트웨어 인스턴스와 계정 사이에 관계가 존재한다고 판단하는 단계를 더 포함하는 조목 10의 컴퓨터 구현 방법.
12. 리소스들의 세트는 소프트웨어 인스턴스에 특정하고;
계정 승인들의 세트는 소프트웨어 인스턴스에 제한되는 조목 10의 컴퓨터 구현 방법.
13. API 상호 작용들의 기록을 얻는 단계는 소프트웨어 애플리케이션을 실행시키는 외부 디바이스로부터 컴퓨팅 시스템에 의해 수신되는 API 호출들을 모니터링하는 단계를 포함하는 조목 1의 컴퓨터 구현 방법.
14. 소프트웨어 애플리케이션에 대한 API 승인들의 기록을 얻는 단계를 더 포함하며,
계정에 대한 계정 승인들의 세트를 생성하는 단계는 API 승인들의 기록에 추가로 기반하는 조목 1의 컴퓨터 구현 방법.
15. 컴퓨팅 시스템의 리소스들의 세트에 액세스하는 소프트웨어 애플리케이션을 수반하는 애플리케이션 프로그래밍 인터페이스(API) 상호 작용들의 기록을 저장하는 메모리; 및
API 상호 작용들의 기록에 기반하여 계정에 대한 계정 승인들의 세트를 생성하는 적어도 하나의 프로세서로서, 계정 승인들의 세트는 컴퓨팅 시스템의 리소스들의 세트에 그러한 계정이 액세스하는 것을 가능하게 하는 것인 적어도 하나의 프로세서를 포함하는 시스템.
16. 적어도 하나의 프로세서는:
API 상호 작용들의 기록에서의 특정 API 상호 작용을 컴퓨팅 시스템의 리소스들의 세트의 특정 리소스로 매핑하고;
계정이 특정 리소스에 액세스하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가할 수 있는 조목 15의 시스템.
17. 메모리는 API의 부분들과 컴퓨팅 시스템의 리소스들 사이의 매핑을 추가로 저장할 수 있고;
매핑은 특정 API 상호 작용을 특정 리소스로 매핑하기 위해 적어도 하나의 프로세서에 의해 사용되는 조목 16의 시스템.
18. API 상호 작용들의 기록은 특정 API 상호 작용에 대한 기간을 포함하고;
특정 리소스는 컴퓨팅 시스템 상의 데이터세트에 대한 액세스를 가능하게 하고;
적어도 하나의 계정 승인은 기간에 상응하는 데이터세트의 부분들로 계정의 액세스를 제한하는 조목 16의 시스템.
19. 적어도 하나의 프로세서는:
API 상호 작용들의 기록에서의 API 상호 작용들의 그룹을 컴퓨팅 시스템의 워크플로우로 매핑하고;
계정이 워크플로우를 수행하는 것을 가능하게 하는 계정 승인들의 세트에 적어도 하나의 승인을 추가할 수 있는 조목 15의 시스템.
20. 메모리는 API의 부분들과 컴퓨팅 시스템의 워크플로우들 사이의 매핑을 추가로 저장할 수 있고;
매핑은 API 상호 작용들의 그룹을 워크플로우로 매핑하기 위해 적어도 하나의 프로세서에 의해 사용되는 조목 19의 시스템.
21. 계정 승인들의 세트는 소프트웨어 애플리케이션과 연관된 컴퓨팅 시스템 상의 소프트웨어 인스턴스에 계정이 액세스하는 것을 가능하게 하는 조목 15의 시스템.
22. 적어도 하나의 프로세서는, 계정 승인들의 세트가 생성되기 전에 소프트웨어 인스턴스와 계정 사이에 관계가 존재한다고 추가로 판단할 수 있는 조목 21의 시스템.
23. 리소스들의 세트는 소프트웨어 인스턴스에 특정하고;
계정 승인들의 세트는 소프트웨어 인스턴스에 제한되는 조목 21의 시스템.
24. API 상호 작용들의 기록은 소프트웨어 애플리케이션을 실행시키는 외부 디바이스로부터 컴퓨팅 시스템에 의해 수신되는 API 호출들에 기반하는 조목 15의 시스템.
25. 컴퓨터에 의해 실행될 때, 컴퓨터가:
컴퓨팅 시스템의 리소스들의 세트에 액세스하는 소프트웨어 애플리케이션을 수반하는 애플리케이션 프로그래밍 인터페이스(API) 상호 작용들의 기록을 얻고;
API 상호 작용들의 기록에 기반하여 계정에 대한 계정 승인들의 세트를 생성하며, 계정 승인들의 세트는 컴퓨팅 시스템의 리소스들의 세트에 그러한 계정이 액세스하는 것을 가능하게 하는 것을 야기하는 컴퓨터 실행 가능 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 매체.

Claims (25)

  1. 컴퓨터 구현 방법에 있어서,
    컴퓨팅 시스템의 리소스들의 세트에 액세스하는 소프트웨어 애플리케이션을 수반하는 애플리케이션 프로그래밍 인터페이스(API) 상호 작용들의 기록을 얻는 단계 - 상기 API 상호 작용들의 기록은 상기 컴퓨팅 시스템과 별개인 외부 디바이스로부터 상기 컴퓨팅 시스템에 의해 수신되는 API 호출들에 기반함 - ; 및
    상기 API 상호 작용들의 기록에 기반하여 계정에 대한 계정 승인들의 세트를 생성하는 단계 - 상기 계정 승인들의 세트는 상기 컴퓨팅 시스템의 상기 리소스들의 세트에 그러한 계정이 액세스하는 것을 가능하게 함 -
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 계정에 대한 상기 계정 승인들의 세트를 생성하는 단계는:
    상기 API 상호 작용들의 기록에서의 특정 API 상호 작용을 상기 컴퓨팅 시스템의 상기 리소스들의 세트의 특정 리소스로 매핑하는 단계; 및
    상기 계정이 상기 특정 리소스에 액세스하는 것을 가능하게 하는 상기 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함하는, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 특정 API 상호 작용을 상기 특정 리소스로 매핑하는 단계는 API의 부분들과 상기 컴퓨팅 시스템의 리소스들 사이의 저장된 매핑에 기반하는, 컴퓨터 구현 방법.
  4. 제2항에 있어서,
    상기 API 상호 작용들의 기록을 얻는 단계는 상기 특정 API 상호 작용에 대한 기간을 얻는 단계를 포함하고;
    상기 특정 리소스는 상기 컴퓨팅 시스템 상의 데이터세트에 대한 액세스를 가능하게 하고;
    상기 적어도 하나의 계정 승인은 상기 기간에 상응하는 상기 데이터세트의 부분들로 상기 계정의 액세스를 제한하는, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 계정에 대한 상기 계정 승인들의 세트를 생성하는 단계는:
    상기 API 상호 작용들의 기록에서의 API 상호 작용들의 그룹을 상기 컴퓨팅 시스템의 워크플로우로 매핑하는 단계; 및
    상기 계정이 상기 워크플로우를 수행하는 것을 가능하게 하는 상기 계정 승인들의 세트에 적어도 하나의 승인을 추가하는 단계를 포함하는, 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 API 상호 작용들의 그룹을 상기 워크플로우로 매핑하는 단계는 상기 API의 부분들과 상기 컴퓨팅 시스템의 워크플로우들 사이의 저장된 매핑에 기반하는, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 계정 승인들의 세트는 상기 API 상호 작용들의 기록에 상응하지 않는 상기 컴퓨팅 시스템의 다른 리소스들에 대한 상기 계정의 액세스를 제한하는, 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 리소스들의 세트는 상기 API 상호 작용들의 기록에서의 상기 API 호출들을 통하여 액세스 가능한 데이터를 포함하는, 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 계정은 사용자가 상기 컴퓨팅 시스템에 액세스하는 것을 가능하게 하는, 컴퓨터 구현 방법.
  10. 제1항에 있어서,
    상기 계정 승인들의 세트는 상기 소프트웨어 애플리케이션과 연관된 상기 컴퓨팅 시스템 상의 소프트웨어 인스턴스에 상기 계정이 액세스하는 것을 가능하게 하는, 컴퓨터 구현 방법.
  11. 제10항에 있어서,
    상기 계정 승인들의 세트를 생성하는 단계 이전에, 상기 소프트웨어 인스턴스와 상기 계정 사이에 관계가 존재한다고 판단하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  12. 제10항에 있어서,
    상기 리소스들의 세트는 상기 소프트웨어 인스턴스에 특정되고;
    상기 계정 승인들의 세트는 상기 소프트웨어 인스턴스에 제한되는, 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 API 상호 작용들의 기록을 얻는 단계는, 상기 외부 디바이스가 상기 소프트웨어 애플리케이션을 실행시킬 때 상기 외부 디바이스로부터 상기 컴퓨팅 시스템에 의해 수신되는 상기 API 호출들을 모니터링하는 단계를 포함하는, 컴퓨터 구현 방법.
  14. 제1항에 있어서,
    상기 소프트웨어 애플리케이션에 대한 API 승인들의 기록을 얻는 단계
    를 더 포함하며, 상기 계정에 대한 상기 계정 승인들의 세트를 생성하는 단계는 상기 API 승인들의 기록에 추가로 기반하는, 컴퓨터 구현 방법.
  15. 시스템에 있어서,
    컴퓨팅 시스템의 리소스들의 세트에 액세스하는 소프트웨어 애플리케이션을 수반하는 애플리케이션 프로그래밍 인터페이스(API) 상호 작용들의 기록을 저장하는 메모리 - 상기 API 상호 작용들의 기록은 상기 컴퓨팅 시스템과 별개인 외부 디바이스로부터 상기 컴퓨팅 시스템에 의해 수신되는 API 호출들에 기반함 - ; 및
    상기 API 상호 작용들의 기록에 기반하여 계정에 대한 계정 승인들의 세트를 생성하는 적어도 하나의 프로세서 - 상기 계정 승인들의 세트는 상기 컴퓨팅 시스템의 리소스들의 세트에 그러한 계정이 액세스하는 것을 가능하게 함 -
    를 포함하는, 시스템.
  16. 제15항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 API 상호 작용들의 기록에서의 특정 API 상호 작용을 상기 컴퓨팅 시스템의 리소스들의 세트의 특정 리소스로 매핑하고;
    상기 계정이 상기 특정 리소스에 액세스하는 것을 가능하게 하는 상기 계정 승인들의 세트에 적어도 하나의 승인을 추가하는, 시스템.
  17. 제16항에 있어서,
    상기 메모리는 API의 부분들과 상기 컴퓨팅 시스템의 리소스들 사이의 매핑을 추가로 저장하고;
    상기 매핑은 상기 특정 API 상호 작용을 상기 특정 리소스로 매핑하기 위해 상기 적어도 하나의 프로세서에 의해 사용되는, 시스템.
  18. 제16항에 있어서,
    상기 API 상호 작용들의 기록은 상기 특정 API 상호 작용에 대한 기간을 포함하고;
    상기 특정 리소스는 상기 컴퓨팅 시스템 상의 데이터세트에 대한 액세스를 가능하게 하고;
    상기 적어도 하나의 계정 승인은 상기 기간에 상응하는 상기 데이터세트의 부분들로 상기 계정의 액세스를 제한하는, 시스템.
  19. 제15항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 API 상호 작용들의 기록에서의 API 상호 작용들의 그룹을 상기 컴퓨팅 시스템의 워크플로우로 매핑하고;
    상기 계정이 상기 워크플로우를 수행하는 것을 가능하게 하는 상기 계정 승인들의 세트에 적어도 하나의 승인을 추가하는, 시스템.
  20. 제19항에 있어서,
    상기 메모리는 API의 부분들과 상기 컴퓨팅 시스템의 워크플로우들 사이의 매핑을 추가로 저장할 수 있고;
    상기 매핑은 상기 API 상호 작용들의 그룹을 상기 워크플로우로 매핑하기 위해 상기 적어도 하나의 프로세서에 의해 사용되는, 시스템.
  21. 제15항에 있어서,
    상기 계정 승인들의 세트는 상기 소프트웨어 애플리케이션과 연관된 상기 컴퓨팅 시스템 상의 소프트웨어 인스턴스에 상기 계정이 액세스하는 것을 가능하게 하는, 시스템.
  22. 제21항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 계정 승인들의 세트가 생성되기 전에 상기 소프트웨어 인스턴스와 상기 계정 사이에 관계가 존재한다고 추가로 판단하는, 시스템.
  23. 제21항에 있어서,
    상기 리소스들의 세트는 상기 소프트웨어 인스턴스에 특정되고;
    상기 계정 승인들의 세트는 상기 소프트웨어 인스턴스에 제한되는, 시스템.
  24. 제15항에 있어서,
    상기 API 상호 작용들의 기록은, 상기 외부 디바이스가 상기 소프트웨어 애플리케이션을 실행할 때 상기 외부 디바이스로부터 상기 컴퓨팅 시스템에 의해 수신되는 상기 API 호출들에 기반하는, 시스템.
  25. 컴퓨터 실행 가능 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서,
    상기 컴퓨터 실행 가능 명령어들은 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금,
    컴퓨팅 시스템의 리소스들의 세트에 액세스하는 소프트웨어 애플리케이션을 수반하는 애플리케이션 프로그래밍 인터페이스(API) 상호 작용들의 기록을 얻게 하고 - 상기 API 상호 작용들의 기록은 상기 컴퓨팅 시스템과 별개인 외부 디바이스로부터 상기 컴퓨팅 시스템에 의해 수신되는 API 호출들에 기반함 - ;
    상기 API 상호 작용들의 기록에 기반하여 계정에 대한 계정 승인들의 세트를 생성하게 하는 - 상기 계정 승인들의 세트는 상기 컴퓨팅 시스템의 상기 리소스들의 세트에 그러한 계정이 액세스하는 것을 가능하게 함 - 것인, 비일시적 컴퓨터 판독 가능 매체.
KR1020220010101A 2021-02-05 2022-01-24 애플리케이션 프로그래밍 인터페이스 상호 작용에 기반하여 계정 승인을 생성하기 위한 시스템 및 방법 KR102671275B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/168,675 2021-02-05
US17/168,675 US11729178B2 (en) 2021-02-05 2021-02-05 Systems and methods for generating account permissions based on application programming interface interactions
EP21207302.7 2021-11-09
EP21207302.7A EP4040317A1 (en) 2021-02-05 2021-11-09 Systems and methods for generating account permissions based on application programming interface interactions

Publications (2)

Publication Number Publication Date
KR20220113263A KR20220113263A (ko) 2022-08-12
KR102671275B1 true KR102671275B1 (ko) 2024-05-31

Family

ID=78592680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220010101A KR102671275B1 (ko) 2021-02-05 2022-01-24 애플리케이션 프로그래밍 인터페이스 상호 작용에 기반하여 계정 승인을 생성하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (2) US11729178B2 (ko)
EP (1) EP4040317A1 (ko)
KR (1) KR102671275B1 (ko)
CN (1) CN114880652A (ko)
AU (1) AU2021286354A1 (ko)
CA (1) CA3141858A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE2050465A1 (en) * 2020-04-23 2021-10-24 Checkin Com Group Ab Method and system for generating a data collection process in a user device
US20240080367A1 (en) * 2020-12-30 2024-03-07 Synchronoss Technologies, Inc. Automatic Execution of Web Flows
US11729178B2 (en) 2021-02-05 2023-08-15 Shopify Inc. Systems and methods for generating account permissions based on application programming interface interactions
WO2024124060A1 (en) * 2022-12-07 2024-06-13 Meta Platforms Technologies, Llc Porting digital entitlements across applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070289024A1 (en) 2006-06-09 2007-12-13 Microsoft Corporation Microsoft Patent Group Controlling access to computer resources using conditions specified for user accounts
US20160019401A1 (en) 2014-07-18 2016-01-21 International Business Machines Corporation Managing Access of User Information by Third Party Applications
US10148701B1 (en) 2018-05-08 2018-12-04 Cyberark Software Ltd. Automatic development and enforcement of least-privilege security policies
US20200120138A1 (en) 2018-10-16 2020-04-16 Colorado School Of Mines Assigning privileges in an access control system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006023436A1 (de) * 2006-05-18 2007-11-22 Giesecke & Devrient Gmbh Authentisierung für entfernte Funktionsaufrufe
CN103268438B (zh) * 2013-02-04 2016-01-06 华为技术有限公司 基于调用链的Android权限管理方法及系统
CN109543411A (zh) * 2018-11-29 2019-03-29 北京元心科技有限公司 应用程序监控方法、装置、电子设备及可读存储介质
US11201871B2 (en) * 2018-12-19 2021-12-14 Uber Technologies, Inc. Dynamically adjusting access policies
CN112181681B (zh) * 2020-09-17 2024-07-26 彩讯科技股份有限公司 一种远程调用方法、装置、计算机设备及存储介质
US11729178B2 (en) 2021-02-05 2023-08-15 Shopify Inc. Systems and methods for generating account permissions based on application programming interface interactions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070289024A1 (en) 2006-06-09 2007-12-13 Microsoft Corporation Microsoft Patent Group Controlling access to computer resources using conditions specified for user accounts
US20160019401A1 (en) 2014-07-18 2016-01-21 International Business Machines Corporation Managing Access of User Information by Third Party Applications
US10148701B1 (en) 2018-05-08 2018-12-04 Cyberark Software Ltd. Automatic development and enforcement of least-privilege security policies
US20200120138A1 (en) 2018-10-16 2020-04-16 Colorado School Of Mines Assigning privileges in an access control system

Also Published As

Publication number Publication date
US20220255943A1 (en) 2022-08-11
KR20220113263A (ko) 2022-08-12
US20230336560A1 (en) 2023-10-19
AU2021286354A1 (en) 2022-08-25
CN114880652A (zh) 2022-08-09
CA3141858A1 (en) 2022-08-05
US12074881B2 (en) 2024-08-27
EP4040317A1 (en) 2022-08-10
US11729178B2 (en) 2023-08-15

Similar Documents

Publication Publication Date Title
EP4148643A1 (en) Non-fungible-token-based commerce attribute
US20220006770A1 (en) Systems and methods for recommending merchant discussion groups
KR102671275B1 (ko) 애플리케이션 프로그래밍 인터페이스 상호 작용에 기반하여 계정 승인을 생성하기 위한 시스템 및 방법
US20220005107A1 (en) Methods and systems for generating a customized return policy
US12045831B2 (en) Secure pin entry via mobile device
US11127070B2 (en) Methods and systems for dynamic online order processing
US20200402118A1 (en) Systems and methods for recommending merchant discussion groups based on merchant categories
US20230319155A1 (en) Code monitoring to recommend alternative tracking applications
US12099775B2 (en) Systems and methods for displaying a cursor on another user device
US20230401571A1 (en) Maintaining blockchain state when performing non-blockchain commerce workflow
US12008573B2 (en) Computer-implemented systems and methods for detecting fraudulent activity
US20220198036A1 (en) Systems and methods for facilitating protecting recipient privacy
US20200349620A1 (en) Email address verification
CA3098007C (en) System and method for merging accounts
US20230097083A1 (en) Methods and systems for cross-web headless transactions
US20220398568A1 (en) Methods and systems for authorizing devices in multiple domains
US20220164469A1 (en) System and method for processing erasure requests
US20230140629A1 (en) Dynamic product presentation of media elements

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant