KR20150126792A - 동적 프리젠테이션과 데이터 구성을 사용하여 보안 모바일 협력 애플리케이션을 구축하기 위한 플랫폼 - Google Patents

동적 프리젠테이션과 데이터 구성을 사용하여 보안 모바일 협력 애플리케이션을 구축하기 위한 플랫폼 Download PDF

Info

Publication number
KR20150126792A
KR20150126792A KR1020150063411A KR20150063411A KR20150126792A KR 20150126792 A KR20150126792 A KR 20150126792A KR 1020150063411 A KR1020150063411 A KR 1020150063411A KR 20150063411 A KR20150063411 A KR 20150063411A KR 20150126792 A KR20150126792 A KR 20150126792A
Authority
KR
South Korea
Prior art keywords
application
server
mobile
data
communication terminal
Prior art date
Application number
KR1020150063411A
Other languages
English (en)
Other versions
KR102111180B1 (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 KR20150126792A publication Critical patent/KR20150126792A/ko
Application granted granted Critical
Publication of KR102111180B1 publication Critical patent/KR102111180B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • H04W4/003
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/08Upper layer protocols
    • H04W80/12Application layer protocols, e.g. WAP [Wireless Application Protocol]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 통신 단말에서 보호된 데이터에의 액세스를 제공하는 시스템 및 방법에 관한 것으로, 상기 시스템은 암호화된 형태로 보호된 데이터를 저장하도록 구성된 발행자 데이터베이스; 상기 발행자 데이터베이스와 결합된 제1 서버; 상기 제1 서버와 결합된 제2 서버로서, 상기 보호된 데이터에의 액세스의 암호로 강한 인증을 제공하도록 구성된 제2 서버; 상기 제1 서버와 상기 통신 단말 간에 제1 보안 채널과의 인터페이스; 및 상기 제1 서버와 고객 애플리케이션 간에 제2 보안 채널과의 인터페이스를 포함하되, 상기 제1 서버는 상기 제1 보안 채널을 통해 상기 통신 단말과 보호된 데이터를 교환하고, 상기 제2 보안 채널을 통해 상기 고객 애플리케이션과 보호된 데이터를 교환하도록 구성된다.

Description

동적 프리젠테이션과 데이터 구성을 사용하여 보안 모바일 협력 애플리케이션을 구축하기 위한 플랫폼{PLATFORM TO BUILD SECURE MOBILE COLLABORATIVE APPLICATIONS USING DYNAMIC PRESENTATION AND DATA CONFIGURATIONS}
본 발명의 실시예는 일반적으로 보안 애플리케이션 개발 플랫폼에 관한 것으로, 보다 상세하게는, 건강 정보와 같은 민감한 데이터에 액세스하는 보안 모바일 애플리케이션을 개발하는 시스템 및 방법에 관한 것이다.
모바일 건강(mobile health: "mHealth")은 모바일 폰, 환자 모니터링 디바이스, PDA(personal digital assistant) 및 다른 모바일 또는 무선 디바이스와 같은 통신 단말에 의해 지원되는 의료 및 공중 보건 실무 용어이다. mHealth는 음성 및 단문 메시지 서비스(short messaging service: SMS)의 사용, 및 모바일 데이터 통신 시스템(예를 들어, 3G, 4G, 4GLTE 등), GPS(global positioning system) 및 블루투스 기술과 같은 보다 복잡한 기술의 사용을 수반한다.
일반적으로 인터넷 사용에 최적화된 스마트폰의 개선된 연산 능력으로 인해 개인은 임의의 시간에 임의의 곳으로부터 (건강 및 의료 보험과 관련된 것을 포함하나 이들로 제한되지 않는) 민감한 데이터, 개인 정보 및 어드바이스(advice)에 액세스할 수 있다. 또한 스마트폰은 GPS와 카메라 기능을 추가하고 이동하는 센서로부터 정보를 캡처하는 능력과 같은 랩탑을 통해 이용가능하지 않은 기능을 제공한다. 민감한 데이터, 개인 정보와 어드바이스는, 다른 의미가 명시적으로 또는 사용 문맥상 명확히 지시되지 않는 한, 본 명세서에서 집합적으로 민감한 개인 정보라고 지칭될 수 있다.
모바일 애플리케이션(또는 모바일 앱)은 스마트폰, 태블릿 컴퓨터 및 다른 모바일 디바이스에서 실행되도록 설계된 소프트웨어 애플리케이션이다. 일부 모바일 앱은 건강 보험 정보와 같은 민감한 개인 정보를 소비자에 전달하거나, 또는 소비자로부터 건강 상태 정보를 수집하여 이를 건강 보험 제공자로 송신하는데 사용된다. 민감한 개인 정보, 예를 들어 건강 보험에서 개발된 정보의 교환과 관련된 모든 모바일 앱은 소비자에 널리 이용가능한 것은 아니다. 대부분의 개선된 의료용 앱 중 일부는 일반 소비자를 타깃으로 하여 설계된 것이 아니다. 일부 모바일 앱은 건강 보험 의사용으로 설계되었고, 다른 모바일 앱은 환자를 위한 것이기는 하지만 처방전(prescription)을 요하는 것이고, 다른 모바일 앱은 일부 환자들을 위해서만 의도된 것이다. 일부 모바일 앱은 미국 FDA(Food and Drug Administration)에 의한 승인을 요구한다. 모바일 앱은, 예를 들어, 안드로이드로부터 윈도우즈(Windows) 또는 iOS에 이르는 기본 운영 시스템에 포팅(ported)된 경우 개인용 컴퓨터(PC)와 같은 다른 플랫폼에서 실행될 수도 있다. 본 명세서에서 사용된 바와 같이, "모바일 앱" 또는 "모바일 애플리케이션"이라는 용어는, 이동성이 언급된 이익을 제공하지 않는 한, 또는 사용 문맥상 명확히 달리 제한되지 않는 한, 모바일 디바이스로 제한됨이 없이 PC(예를 들어, 데스크탑, 타워, 랩탑, 넷북 등) 또는 다른 일반 목적 소비자-컴퓨팅 디바이스에서 실행되는 애플리케이션을 포함할 수 있다.
환자 건강 정보와 같은 특정 민감한 개인 정보는 법(예를 들어, 미국에서는 "HIPAA"(42 U.S.C. §300gg 및 29 U.S.C §1181 이하 및 42 USC 1320d 이하에서 규정된 Healthcare Information Portability and Accountability Act))으로 보호되고, 환자 프라이버시를 유지하는 방법으로 처리되어야 한다. 이러한 정보는 보호된 건강 정보(protected health information: PHI)라고 지칭된다. PHI에 대해서, 모바일 앱에 입력된 데이터를 사용하는 방식은 투명하고 인식가능해야 하고 PHI 데이터 사용시 환자의 동의를 얻는 것이 중요하다. 건강 보험 모바일 앱이 PHI를 수집하거나 저장하거나 및/또는 송신하는 경우, 모바일 앱이 HIPAA 및 관련된 국가의 임의의 다른 적용가능한 법 또는 규정에 전적으로 순응하는 것이 필수적이다. 사용자가 모바일 디바이스와 EHR/PHR 간에 환자 정보를 송신하고 검색할 수 있게 하는 전자 건강 레코드(Electronic Health Record: EHR) 또는 개인 건강 레코드(Personal Health Record: PHR)에 연결하도록 의도된 임의의 모바일 앱은, 보안 방식으로 이루어져야 하고, 수반된 모든 이해관계자(stakeholder)는 내부에 포함된 PHI 데이터를 보호하는 청지기 역할(stewardship role)을 수용하여야 한다.
데이터 보안은 상이한 레벨의 정보 라이프 사이클에 각각 있는 기밀(예를 들어, 암호화를 사용하는 것에 의해), 무결성, 이용가능성, 진정성(authenticity), 부인 방지(non-repudiation) 및 액세스 제어와 같은 여러 보안 측면을 포함한다. 데이터 보안은 암호화를 사용하는 것에 의해 제공된다. 암호화는 데이터와 통신의 프라이버시를 보장하는 표준 도구이다. 여러 암호화 구조가 보호된 정보를 보안화하기 위해 상업적으로 이용가능한데, 예를 들어, NIST(National Institute of Standards and Technology)가 2001년 11월 26일에 연방 정보 처리 표준 간행물(Federal Information Processing Standards Publication) 197로 공표된 AES(Advanced Encryption Standard)가 있다. AES는 동일한 암호 키(cipher key)를 인코딩과 디코딩에 모두 사용하는 대칭적인 암호화 구조이다. AES 구조 그 자체는 다수의 변형(variation)으로 존재하는데, 예를 들어, AES 카운터 모드, AES 암호 블록 체인(cipher block chaining: CBC) + 암호 텍스트 도난(cipher text stealing: CTS), RSA 등에 존재한다. AES의 일부 변형은 2005년 2월자 코멘트 요청 (RFC) 3962, "Advanced Encryption Standard (AES) Encryption for Kerberos 5" 및 거기에 언급된 참조 문헌에서 설명되어 있을 수 있다.
모바일 애플리케이션은 고객 및 공급자와 비즈니스를 수행하는 회사에서 점점 더 중요해지고 있다. 건강 정보와 같은 민감한 개인 정보를 취급하는 조직(organization)의 경우에, 환자에 직접 도달하기 위해 이동성이 매우 바람직하지만, HIPAA에서 요구하는 모든 보안 및 아키텍처 요구조건에 순응하는 모바일 애플리케이션은 구축하기 매우 곤란하다.
또한 모바일 애플리케이션은 애플리케이션이 보안 메시징(messaging) 및 조사(survey)와 같은 기본 운영 시스템에 의해 직접 지원되지 않는 작업을 수행하고, 모바일 디바이스 외부에 존재하지만 블루투스 디바이스, GPS 등과 같은 모바일 디바이스와 통신 연결을 수립하는 디바이스와 통신을 수반하는 작업을 수행할 수 있게 하는 인터페이스를 더 포함한다. 모바일 디바이스는 시간에 따라 진화하고, 새로운 특징이 이 디바이스에 추가되고, 이에 따라 새로운 특징을 지원하기 위하여 새로운 인터페이스가 모바일 디바이스에 추가될 수 있다. 새로운 특징을 지원하는 것은 운영 시스템 또는 애플리케이션 개발 도구에 업데이트를 요구할 수 있지만, 이러한 업데이트는 모바일 디바이스에 있는 애플리케이션 프로그램의 구성을 변경하는 빈도에 비해 매우 자주 일어나는 것이 아니다.
모바일 디바이스를 지원하는 것의 주요한 곤란성은 모바일 디바이스에서 전개되는 애플리케이션 프로그램의 버전(version)을 업데이트하는 것에 대한 정책과 절차이다. 업데이트된 애플리케이션 프로그램이 이용가능할 때, 애플리케이션 프로그램을 구비하는 모든 사용자는 모바일 내 애플리케이션 프로그램의 버전을 업데이트하여야 한다. 일부 애플리케이션 프로그램은 짧은 버전 시간(즉, 특정 버전이 현재 버전인 시간 길이)을 제공하고, 다른 애플리케이션 프로그램은 안정성, 동적 시장, 기술적 OS 요구조건 등과 같은 팩터의 긴 리스트에 따라 더 긴 버전 시간을 요구할 수 있다. 애플리케이션 프로그램 버전을 업데이트하는 것은 통상적으로 모바일 디바이스 사용자가 온라인 앱 저장소(app store)와 같은 서버와 통신하고 애플리케이션 프로그램의 새로운 사본을 검색할 것을 요구한다. 이 과정은, 앱 저장소가 애플리케이션 프로그램을 제한하는 경향이 있고 애플리케이션 프로그램의 새로운 버전을 발행(publish)하는 과정을 지연시키기 때문에 느리고 곤란할 수 있다.
나아가, 모바일 애플리케이션 개발을 위한 대부분의 시스템은 그 통합 레벨에 결함이 있다. 모바일 디바이스를 위한 애플리케이션의 현재 구현은 그래픽 사용자 인터페이스(graphic user interface: GUI), 데이터 구조 및 논리(logic)를 미리 한정하거나 하드코딩(hardcode)하고, 이들은 이후 애플리케이션이 저장소 또는 호스팅 서버로부터 다운로드될 때 함께 팩킹된다. 다른 유형의 모바일 애플리케이션은 모바일 디바이스가 서버에 연결된 동안 클라이언트/서버 모드에서 완전히 온라인으로 동작하여 GUI, 데이터 구조 및 논리를 취하거나 사용하며, 서버에 데이터 연결이 없는 경우 효과적으로 동작할 수 없다. 다른 애플리케이션은 그 GUI, 데이터 구조 및 논리를 하드코딩하게 하지만 데이터를 동기화하기 위하여 서버에 연결될 수 있다. 클라이언트로 사용된 모바일 디바이스는 미리 한정된 기능 세트만을 실행하고 미리 한정된 GUI를 구비할 수 있다.
모바일 애플리케이션 개발을 위한 일부 알려진 시스템은 (예를 들어, GUI, 논리 및 데이터에 대한) 기능을 동적으로 생성할 수 있고, 이들 기능을 무선으로 전달할 수 있으나, 통신, 저장 및 처리시에 통합된 보안이 없다. 이러한 시스템은 서버가 모바일 디바이스로부터 정보에 대한 데이터 복구(recovery), 보안 관리 및 다른 유형의 액세스의 채용을 제공하기 위하여 이 시스템의 중요한 일부라는 것을 고려하지 않는다.
따라서, 모바일 디바이스 사용자를 위한 암호로 보안 모바일 애플리케이션, 예를 들어, mHealth가 사용하는 애플리케이션; HIPAA 및 NIST/FIPS와 같은 정부 보안 표준을 구현하는 애플리케이션; 서버 애플리케이션과 통신하며 GUI, 논리 및 데이터를 동적으로 업데이트하는 애플리케이션; 온라인 및 오프라인에서 동작하는 애플리케이션; 모바일 디바이스가 분실되거나 또는 변경된 경우 그 상태 및 데이터를 재구성할 수 있는 애플리케이션; 등을 포함하나 이들로 제한되지 않는 애플리케이션을 개발하는 통합된 개발 플랫폼이 요구된다.
본 발명에 따른 실시예는 단일 플랫폼에서 이전에 이용가능하지 않은 다수의 특징을 통합하는 모바일 애플리케이션 개발 플랫폼을 제공한다. 이 통합은 그 애플리케이션을 구축하는 간단한 인터페이스를 개발자에 제공하여, 보안, 애플리케이션 분배 및 관리와 연관된 복잡성을 추상화(abstract)하는 것에 의해 시너지를 제공한다. 통합된 특징은 소프트웨어 개발자가 여러 모바일 운영 시스템을 프로그래밍하는 상세한 및/또는 낮은 레벨의 지식을 가져야 함이 없이 내장된 보안(built-in security), 서버 동기화 및 공통 개발 도구의 사용을 포함할 수 있다.
실시예는 HIPAA에 순응할 수 있게 하는 애플리케이션 컨테이너를 제공하는 것에 의해 순응하는 애플리케이션의 개발을 간략화한다. 플랫폼을 사용하는 조직은 임의의 지원되는 모바일 플랫폼에서 동작하는 하나의 HTML/CSS 자바스크립트 애플리케이션 세트에만 집중할 수 있어, 개발 노력과 인증 부담을 감소시킬 수 있다.
일 실시예에서, 시스템은, 암호화된 형태로 보호된 데이터를 저장하도록 구성된 발행자 데이터베이스(publisher database); 상기 발행자 데이터베이스와 결합된 발행 서버(publishing server); 고객 애플리케이션과의 통신 인터페이스; 상기 발행 서버와 결합된 인증 서버(authentication server)를 포함할 수 있고, 상기 인증 서버는 상기 발행 서버를 통해 제공된 활성화 코드(activation code)를 인증하고, 모바일 인증 일회용 패스워드를 검증(validate)하고, 디바이스로부터 데이터를 복호화하는 보안 세션 키(secure session key)를 생성하도록 구성되고; 상기 고객 애플리케이션은 상기 모바일 디바이스로부터 정보를 수신하고 이 모바일 디바이스로 정보를 포스팅(post)하도록 구성된다. 모바일 디바이스는 모바일 애플리케이션 컨테이너(또는 컨테이너); 및 상기 모바일 컨테이너와 결합된 보안 저장 매체를 포함하고, 상기 모바일 컨테이너는 제1 모바일 구성 애플리케이션(또는 구성)과 내부 보안 웹 서버를 실행하도록 구성된다.
상기 애플리케이션 컨테이너는 여러 개의 애플리케이션 구성의 사용을 호스팅하고 지원할 수 있는 모바일 애플리케이션이다. 각 구성은 GUI 외관, 애플리케이션 흐름, 논리 및 데이터를 기술한다. 상기 컨테이너는 상기 제1 구성으로 식별된 하나의 구성으로 시작할 수 있다. 상기 제1 구성을 통해 사용자는 사용할 다른 구성을 선택할 수 있다.
본 발명에 따른 실시예는 통신 단말에서 보호된 데이터에의 액세스를 제공하는 시스템 및 방법을 제공할 수 있고, 상기 시스템은 암호화된 형태로 보호된 데이터를 저장하도록 구성된 발행자 데이터베이스; 상기 발행자 데이터베이스와 결합된 발행 서버; 상기 발행 서버와 결합된 인증 서버로서, 상기 인증 서버는 상기 보호된 데이터에의 액세스의 암호로 강한 인증(cryptographically strong authentication)을 제공하도록 구성된 것인, 상기 인증 서버; 상기 발행 서버와 상기 통신 단말 간에 제1 보안 채널과의 인터페이스; 및 상기 발행 서버와 고객 애플리케이션 간에 제2 보안 채널과의 인터페이스를 포함하고, 상기 고객 애플리케이션은 상기 제1 보안 채널과 상기 제2 보안 채널을 통해 상기 통신 단말로부터 정보를 수신하고 이 통신 단말로 정보를 포스팅하도록 구성된다.
본 발명의 일 실시예에 따른 방법은, 발행자 데이터베이스와 결합된 발행 서버에 의해, 암호화된 형태로 보호된 데이터를 저장하는 단계; 상기 통신 단말로부터, 상기 보호된 데이터에의 액세스 요청을 수신하는 단계로서, 상기 요청은 주장된 크리덴셜(purported credential)을 포함하는 것인, 상기 수신하는 단계; 암호로 강한 인증에 의해 상기 주장된 크리덴셜을 인증하기 위하여 상기 주장된 크리덴셜을 인증 서버에 송신하는 단계; 상기 주장된 크리덴셜이 인증된 경우, 상기 통신 단말과 상기 보호된 데이터 간에 액세스를 부여(granting)하는 단계; 고객 애플리케이션과 상기 발행자 데이터베이스 간에 상기 보호된 데이터를 통신하는 단계; 및 상기 통신 단말과 상기 발행자 데이터베이스 간에 상기 보호된 데이터를 통신하는 단계를 포함할 수 있다.
상기 사항은 본 발명의 일부 측면의 이해를 제공하기 위해 본 발명의 실시예의 간략화된 개요이다. 이 개요는 본 발명 및 그 여러 실시예의 광범위한 개관도 아니고 전체 개관도 아니다. 이 개요는 본 발명의 핵심 또는 중요한 요소를 식별하려고 의도된 것이 아닐 뿐만 아니라 본 발명의 범위를 정하려고 의도된 것이 아니라 아래 제시된 보다 상세한 설명에 대한 도입부로서 간략화된 형태로 본 발명의 선택된 개념을 제시하려고 의도된 것이다. 이해되는 바와 같이, 전술되거나 후술된 특징들 중 하나 이상을 단독으로 또는 조합으로 사용하는 본 발명의 다른 실시예들도 가능하다.
본 발명의 상기 및 또 다른 특징 및 장점은 특히 여러 도면에서 동일한 참조 부호는 동일한 컴포넌트를 나타내는데 사용된 첨부 도면과 함께 취해질 때 본 실시예의 이하의 상세한 설명을 고려하여 보다 명백해질 것이다:
도 1은 본 발명의 일 실시예에 따른 모바일 통신 네트워크를 도시한 블록도;
도 2a는 본 발명의 일 실시예에 따른 모바일 디바이스를 도시한 시스템 레벨의 블록도;
도 2b는 본 발명의 일 실시예에 따른 최종-사용자 비-모바일 디바이스(end-user non-mobile device)를 도시한 시스템 레벨의 블록도;
도 3은 본 발명의 일 실시예에 따른 시스템(300)의 전체도;
도 4는 본 발명의 일 실시예에 따른 개발 플랫폼의 내부 아키텍처 및 노출된 인터페이스를 상대적으로 보다 상세한 레벨로 도시한 도면;
도 5는 본 발명의 일 실시예에 따라 애플리케이션을 발행하는 공정을 도시한 도면;
도 6은 본 발명의 일 실시예에 따라 애플리케이션에 사용자를 등록하는 공정을 도시한 도면;
도 7은 본 발명의 일 실시예에 따라 애플리케이션을 서치하는 공정을 도시한 도면;
도 8은 본 발명의 일 실시예에 따라 통신 단말에 애플리케이션을 스타트업하고 사용하는 공정을 도시한 도면;
도 9는 본 발명의 일 실시예에 따라 애플리케이션을 동기화하고 업데이트하는 공정을 도시한 도면.
본 명세서에 사용된 표제는 단지 편제를 위한 것일 뿐 상세한 설명 또는 청구범위를 제한하기 위하여 사용되도록 의도된 것이 아니다. 본 출원서에서 사용된 바와 같이, "할 수 있다"라는 용어는 가능하다는 의무적인 의미(즉, 해야 한다는 것을 의미)하는 것이 아니라 의미(즉, 가능성을 가지고 있다는 의미)에서 사용된 것이다. 유사하게, "포함하고", "구비하는" 및 "구비하고"라는 용어는 포함하지만 이들로 제한되지 않는 것을 의미한다. 이해를 용이하게 하기 위해, 가능한 경우 여러 도면에 공통인 동일한 요소를 지정하는데 동일한 참조 부호가 사용되었다. 도면에서 선택적인 부분은, 사용 문맥이 달리 지시하지 않는 한, 대시 라인이나 점선을 사용하여 도시될 수 있다.
본 발명은 예시적인 디지털 정보 시스템과 관련하여 아래에서 설명된다. 예를 들어, 서버(들) 및/또는 데이터베이스(들)를 사용하는 시스템에 사용하기에 매우 적합하지만, 본 발명은 임의의 특정 유형의 시스템 또는 시스템 요소의 구성에 사용하는 것으로 제한되지 않는다. 이 기술 분야에 통상의 지식을 가진 자라면 개시된 기술이 정보에 액세스하거나 또는 결정을 제어하는데 대해 전송가능한 허가를 제공하는 것이 바람직한 임의의 시스템 또는 공정에 사용될 수 있다는 것을 인식할 수 있을 것이다.
본 발명의 예시적인 시스템 및 방법은 소프트웨어, 모듈 및 연관된 하드웨어와 관련하여 더 설명된다. 그러나, 본 발명을 불필요하게 불명확하게 하지 않게 하기 위하여, 이하의 상세한 설명에서 블록도 형태로 도시되거나 잘 알려져 있거나 또는 개요에 언급된 잘 알려진 구조, 컴포넌트 및 디바이스는 생략된다.
이하의 상세한 설명에서 본 명세서에 설명된 실시예 또는 다른 예의 철저한 이해를 제공하기 위하여 다수의 특정 상세들이 제시된다. 일부 경우에, 잘-알려진 방법, 과정, 컴포넌트 및 회로는 이하의 상세한 설명을 불명확하게 하지 않기 위하여 상세히 설명되지 않았다. 나아가, 개시된 예는 단지 예시를 위한 것일 뿐 다른 예들이 개시된 예 대신에 또는 이와 조합하여 사용될 수 있다. 또한, 본 명세서에 제시된 예는 다른 동일하게 효과적인 예들이 가능하고 있을 수 있으므로 본 발명의 실시예의 범위를 제한하는 것으로 해석되어서는 안되는 것으로 이해되어야 한다.
본 명세서에 사용된 바와 같이, "모듈"이라는 용어는 일반적으로 단계, 공정 또는 컴포넌트의 논리 시퀀스 또는 연관을 말한다. 예를 들어, 소프트웨어 모듈은 컴퓨터 프로그램 내 연관된 루틴 또는 서브 루틴의 세트를 포함할 수 있다. 대안적으로, 모듈은 실질적으로 독립적인 하드웨어 디바이스를 포함할 수 있다. 모듈은 임의의 소프트웨어 또는 하드웨어 구현에 상관없이 논리적 처리 세트를 더 포함할 수 있다.
본 명세서에 사용된 바와 같이, "전송기"라는 용어는 일반적으로 신호를 전송할 수 있는 임의의 디바이스, 회로 또는 장치를 포함할 수 있다. 본 명세서에 사용된 바와 같이, "수신기"라는 용어는 일반적으로 신호를 수신할 수 있는 임의의 디바이스, 회로 또는 장치를 포함할 수 있다. 본 명세서에 사용된 바와 같이, "트랜시버"라는 용어는 일반적으로 신호를 송수신할 수 있는 임의의 디바이스, 회로 또는 장치를 포함할 수 있다. 본 명세서에 사용된 바와 같이, "신호"라는 용어는 전기 신호, 무선 신호, 광 신호, 음향 신호 등 중 하나 이상을 포함할 수 있다.
본 명세서에 사용된 바와 같이 "컴퓨터-판독가능한 매체"라는 용어는 실행할 명령을 프로세서에 저장하고/하거나 제공하는데 참여하는 임의의 유형적인 저장매체 및/또는 전송 매체를 말한다. 이러한 매체는 비-휘발성 매체, 휘발성 매체 및 전송 매체를 포함하지만 이들로 제한되지 않는 많은 형태를 취할 수 있다. 비-휘발성 매체는, 예를 들어, NVRAM 또는 자기 또는 광 디스크를 포함한다. 휘발성 매체는 메인 메모리와 같은 동적 메모리를 포함한다. 컴퓨터-판독가능한 매체의 일반적인 형태는, 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, 광자기 매체, CD-ROM, 임의의 다른 광 매체, 펀치 카드, 페이퍼 테이프, 홀 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 솔리드 스테이트 매체, 예를 들어, 메모리 카드, 임의의 다른 메모리 칩 또는 카트리지, 본 명세서에서 후술된 반송파, 또는 컴퓨터에서 판독될 수 있는 임의의 다른 매체를 포함한다. 이메일(e-mail) 또는 다른 독립적인 정보 아카이브(archive) 또는 아카이브 세트에 디지털 파일 부착물이 유형적인 저장 매체와 동등한 분배 매체로 고려된다. 컴퓨터-판독가능한 매체가 데이터베이스로 구성될 때, 데이터베이스는 관계 데이터베이스, 계층 데이터베이스, 객체 지향 데이터베이스 및/또는 등과 같은 임의의 유형의 데이터베이스일 수 있는 것으로 이해된다. 따라서, 본 발명은 본 발명의 소프트웨어 구현을 저장하는 유형적인 저장 매체 또는 분배 매체 및 종래 기술에서 인식된 동등한 및 후속(successor) 매체를 포함하는 것으로 고려된다.
도 1은 통신 단말(예를 들어, 모바일 디바이스와 비-모바일 디바이스)의 분산 시스템 및 이 통신 단말에서 실행되는 애플리케이션을 사용하고 통신 단말을 사용하여 민감한 개인 정보에 액세스할 수 있는 연관된 사용자를 도시한다. 다수의 모바일 디바이스(20)는 셀룰러 통신을 통해 셀룰러 베이스 스테이션(24)과 무선으로 통신하는 것으로 도시된다. 셀룰러 베이스 스테이션(24)은 하나 이상의 셀룰러 통신 캐리어(미도시)에 의해 동작되는 다수의 중간 서버를 통해 인터넷(28)과 같은 대규모 공중 네트워크에 걸쳐 통신을 가능하게 한다. 도 1은 인터넷(28)과 통신가능하게 접촉하는 다수의 비-모바일 컴퓨팅 디바이스(21)를 또한 도시한다. 트랜잭션 서버(transaction server)(32)는 또한 인터넷(28)과 통신할 수 있다. 트랜잭션 서버(32)는 또한 사설 네트워크를 통해 검증 서버(validation server)(36)와 통신할 수 있다. 추가적으로, 트랜잭션 서버(32)는 모바일 디바이스(20) 및/또는 비-모바일 컴퓨팅 디바이스(21)의 사용자가 비지니스 또는 건강 보험과 같은 일부 종류의 관계를 가질 수 있는 의료 기관 또는 금융 기관(40)과 같은 민감한 정보의 하나 이상의 레포지토리(repository)와 통신하거나 이 민감한 정보를 처리하는 시스템과 통신할 수 있다.
본 발명에 따른 실시예는 도 1에 도시된 모바일 디바이스(20) 및/또는 비-모바일 컴퓨팅 디바이스(21)의 유형으로 제한되지 않는다. 실시예는 네트워크를 통해 액세스가능한 PC, 맥북(MacBook), 태블릿 컴퓨터, 신(thin) 클라이언트, 또는 실질적으로 임의의 다른 유형의 컴퓨팅 디바이스를 포함하는 실질적으로 임의의 유형의 입력/출력 디바이스 또는 통신 단말과 사용될 수 있다.
도 1에 도시된 요소의 구성은 예시를 위한 것일 뿐, 본 발명의 실시예를 임의의 특정 배열의 요소로 제한하는 것으로 해석되어서는 안 된다는 것이 강조된다.
서버는 소프트웨어를 실행하는 처리 유닛(CPU), 마이크로프로세서 또는 다른 유형의 디지털 데이터 프로세서 또는 응용 특정 집적 회로(ASIC) 및 이러한 요소의 여러 부분 또는 조합을 포함하는 소프트웨어로-제어되는 시스템일 수 있다. 메모리는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 또는 이들 및 다른 유형의 전자 메모리 디바이스의 조합을 포함할 수 있다. 본 발명의 실시예는 소프트웨어, 하드웨어(논리 회로를 포함하나 이들로 제한되지 않는 것) 또는 이들의 조합으로 구현될 수 있다.
도 2a를 참조하면, 모바일 디바이스(20)의 다수의 컴포넌트가 도시된다. 도시된 바와 같이, 이 실시예에서, 모바일 디바이스(20)는 기본 기능을 구비하는 일반적인 모바일 폰이다. 모바일 디바이스(20)는 사용자로부터 입력을 수신하는 입력 인터페이스(60)를 구비하고, 디스플레이(64)는 정보를 사용자에 시각적으로 제시하기 위해 제공된다. 모바일 디바이스(20)는 모바일 디바이스(20)에서 실행되는 다수의 애플리케이션과 함께 모바일 디바이스(20)의 메인 기능을 제어하는 운영 시스템과 데이터를 저장하는 메모리(68)를 또한 포함한다. 프로세서(72)는 운영 시스템과 애플리케이션을 실행한다. SIM 카드(76)는 애플리케이션과 데이터를 저장하는 추가적인 메모리를 제공하고, 이를 실행하는 마이크로프로세서를 구비한다. 추가적으로, SIM 카드(76)는 모바일 디바이스(20)를 식별할 수 있게 하는 고유한 하드웨어 식별 코드를 구비한다. 설치될 때, SIM 카드(76)는 모바일 디바이스(20)의 일부를 형성한다. 다른 유형의 모바일 디바이스는 SIM 카드(76) 대신에 균등한 기능을 제공하는 암호화된 디바이스 메모리를 구비할 수 있다. 통신 인터페이스(80)는 음성 및 데이터 면에서 셀룰러 네트워크와 통신을 가능하게 한다.
도 2b는 비-모바일 컴퓨팅 디바이스(21)의 다수의 컴포넌트를 도시한다. 도시된 바와 같이, 이 실시예에서, 비-모바일 디바이스(21)는 기본 기능을 구비하는 일반적인 데스크탑 또는 타워 컴퓨터이다. 비-모바일 디바이스(21)는 사용자(예를 들어, 키보드, 터치스크린 및/또는 마이크로폰)로부터 입력을 수신하는 사용자 입력 인터페이스(251)를 구비하고, 사용자 출력 인터페이스(253)는 정보를 사용자에 시각적으로 또는 청각적으로 제시하기 위해 제공된다. 비-모바일 디바이스(21)는 비-모바일 디바이스(21)에서 실행되는 다수의 애플리케이션과 함께 비-모바일 디바이스(21)의 메인 기능을 제어하는 운영 시스템과 데이터를 저장하는 메모리(255)를 더 포함한다. 프로세서(257)는 운영 시스템과 애플리케이션을 실행한다. 비-모바일 디바이스(21)는 비-모바일 디바이스(21)를 식별할 수 있게 하는 고유한 하드웨어 식별 코드(예를 들어, 매체 액세스 제어(MAC) 어드레스)를 구비할 수 있다. 메모리(255)의 적어도 일부는 암호화될 수 있다. 통신 인터페이스 259는, 예를 들어, 이더넷 또는 Wi-Fi 인터페이스에 의해 LAN 또는 인터넷(28)과 통신을 가능하게 한다.
여러 시스템 컴포넌트 중에서 보안 설계의 부적절한 통합을 제공하는 알려진 기술의 도구 및 방법과 달리, 본 발명에 따른 실시예는 보다 끊김없는 인터페이싱을 위해 컴포넌트에 걸쳐 보안 설계를 통합하여, 시스템 컴포넌트의 개발자가 보안 인터페이싱에 대한 많은 걱정을 갖는 것을 덜어 주도록 설계된 시스템 컴포넌트를 포함한다. 실시예는 또한 허가되지 않은 사용자에 의한 액세스로부터 정보를 보호한다.
통합은 느슨하게 결합된 애플리케이션들 간에 시너지를 제공할 수 있다. '느슨하게 결합된'이라는 용어는 애플리케이션들이 반드시 서로 종속된 것은 아닌 것을 의미한다. 존재할 수 있는 임의의 종속성은 다른 (즉, 종속) 애플리케이션이 존재하지 않는 경우 하나의 애플리케이션의 거동에 영향을 미치지 않아야 한다. 이러한 애플리케이션은 독립적으로 또는 함께 사용될 수 있으나, 함께 사용되는 경우, 서로 통신할 수 있다. 예를 들어 2개의 애플리케이션이 컨테이너에서 협력하는 경우 및 하나의 애플리케이션이 동기화 공정 후에 업데이트되는 경우, 다른 애플리케이션은 이에 영향을 받지 않을 수 있으나, 협력 작업은 영향을 받을 수 있다. 애플리케이션들 간에 느슨하게-결합된 관계는 이들 사이에 선택적인 데이터를 공유하는 것에 의해 달성될 수 있다. 공유된 애플리케이션들이 존재하는 경우, 두 애플리케이션들이 공유된 데이터를 사용하여 상호작용할 수 있다.
본 발명에 따른 실시예는 알려진 기술의 개발 플랫폼에서 통합된 형태로 이용가능하지 않은 특징의 통합을 포함하는 모바일 애플리케이션 개발 플랫폼을 제공한다. 실시예는 소프트웨어 애플리케이션 개발자로 하여금 상이한 모바일 플랫폼 소프트웨어 개발 환경의 상세한 기술적 지식을 가질 필요 없이 또는 보안 또는 모바일 통신에 전문가일 필요 없이, HTML, CSS 및 자바스크립트와 같은 공통 개발 도구를 사용하여 보다 보안 모바일 애플리케이션을 생성할 수 있게 한다. 실시예는 복잡한 클라이언트/서버 애플리케이션을 생성하는데 필요한 도구로 통합된 종단간 보안(end-to-end security)을 제공할 수 있다. 실시예는 백엔드 서버와 통신하는 것에 의해 모바일 앱 클라이언트에 있는 디지털 컨텐츠를 동기화하고/하거거나 업데이트하는 방법을 제공할 수 있고, 본 방법은 (예를 들어, 모바일 디바이스가 분실되어 교체된 경우 또는 소프트웨어 업그레이드가 예상치 못한 문제를 야기한 경우) 복구하는데 유용하다. 모바일 애플리케이션 개발 플랫폼은 또한 모바일 앱이 인터넷에 연결되어 있지 않을 때 모바일 앱을 사용하는데 유용한 보안 모바일 저장매체를 제공한다.
본 발명의 일 실시예에 따른 고객 애플리케이션은 모바일 디바이스로부터 정보를 송신하고 수신하기 위하여 발행자(예를 들어, 발행 서버)와 통신할 수 있는 서버측 애플리케이션이다. 발행 서버는 예를 들어, 도 1의 트랜잭션 서버(32)로 예시될 수 있다. 본 발명의 일 실시예에 따른 모바일 애플리케이션은 클라이언트(모바일 또는 비-모바일 클라이언트)를 위해 구축된 애플리케이션이고, 최종 사용자와 인터페이스를 제공할 수 있다. 예를 들어, 모바일 애플리케이션은 혈당측정기 판독값(glucometer reading)을 추적하는 당뇨병 애플리케이션을 포함할 수 있고, 대응하는 고객 애플리케이션은 혈당측정기 판독값을 수신하고 처리하는 서버-기반 프로그램(예를 들어, 전자 의료 레코드(electronic medical record: EMR) 프로그램)을 포함할 수 있다.
본 발명에 따른 실시예는 모바일 앱 클라이언트와 백엔드 서버 간에 통신 경로 및 상대적으로 잘 한정된 인터페이스를 제공할 수 있다. 모바일 앱 클라이언트의 단일 개발 노력은 각 다양한 모바일 플랫폼 운영 시스템(예를 들어, 안드로이드, 윈도우즈 모바일, iOS 등)에서 실행될 수 있는 모바일 앱 클라이언트로 레버리지될 수 있다. 제너릭 서버를 사용하여 모바일 앱 클라이언트와 통신하기 위하여 실시예의 일부로 제공된 인터페이스를 사용하는 백엔드 서버 애플리케이션을 호스팅할 수 있다.
모바일 앱 클라이언트와 백엔드 서버 간의 인터페이스는 여러 레벨의 인터페이스를 포함할 수 있다. 예를 들어, 클라이언트 애플리케이션은 자바스크립트 인터페이스를 사용하여 모바일 디바이스에 있는 보안 저장소에 액세스할 수 있다. 서버측 애플리케이션(예를 들어, 고객 애플리케이션)은 웹 서비스 인터페이스(Web Service Interface)(SOAP 표준 보안 특징을 사용하여 구성된 SOAP)와 같은 보안된 통신 인터페이스를 사용하여 발행 서버와 통신할 수 있다. SOAP는 이 기술 분야에 통상의 지식을 가진 자에 의해 알려진 바와 같이 웹 서비스 활동(Web Service Activity)의 일부인 XML 프로토콜 작업 그룹(Protocol Working Group)이 형성한 W3C 권고로 알려져 있다. 현재 버전은 2007년 4월 27일자 SOAP 1.2이다. 본 발명에 따른 실시예는 모바일 디바이스의 보안 저장소를 발행 서버와 함께 링크하여, 모바일 디바이스 애플리케이션과 고객 애플리케이션 간에 통신 링크를 제공한다. 인터페이스에 사용되는 기술은 다른 유형의 인터페이스 기술을 포함할 수 있다.
본 발명에 따른 실시예는 사용자가 앱 저장소로부터 컨테이너를 단 한번만 다운로드하도록 모바일 애플리케이션 개발 플랫폼을 사용하는 공정을 제공할 수 있다. 컨테이너는 여러 애플리케이션 구성을 보유할 수 있고, 모바일 디바이스는 모바일 디바이스와 사용자 선호도에 적절한 구성을 사용하여 사용자 GUI, 흐름, 논리 및 데이터를 제시한다. 이후, 애플리케이션 구성은 연관된 서버로부터 직접 업데이트되게 이루어진다. 이것을 통해 사용자는 서버에 액세스하기 위해 애플리케이션 프로그램이 사용자에 의해 사용된 다음에 애플리케이션 구성의 최신 버전을 획득할 수 있다. 예를 들어, 컨테이너는 HTML/CSS 또는 자바스크립트와 같은 코드에 있어서 미리 결정된 모바일 디바이스에 대한 사용자 GUI, 흐름, 논리 및 데이터의 기술을 포함할 수 있다. 컨테이너는 모바일 플랫폼에 적절한 코드를 해석할 수 있고, 모바일 플랫폼에 사용자 GUI, 흐름, 논리 및 데이터를 제공할 수 있다.
예를 들어, 컨테이너가 서버에 연결될 때, 컨테이너는 애플리케이션 구성을 수신한다. 제1 애플리케이션 구성은 초기에 컨테이너에 의해 사용될 수 있고, 사용자가 애플리케이션과 동작하기 시작하게 할 수 있다. 애플리케이션 구성은 서버에 의해 컨테이너에 송신된 디스크립터(descriptor), 논리 및 데이터 구조 세트이다. 디스크립터, 논리 및 데이터 구조는 예를 들어 HTML, CSS, 자바스크립트 및 JSON을 사용하여 여러 방식으로 구현되거나 통신될 수 있다. 다른 기술이 또한 사용될 수 있다.
컨테이너는 서버에 저장된 최신 구성을 수신한다. 서버는 임의의 시간에 이 구성을 업데이트할 수 있고, 이 구성이 업데이트된 경우 컨테이너는 최신(즉, 최근) 버전을 수신할 수 있다. 컨테이너는 여러 서버에 연결될 수 있다. 컨테이너가 (예를 들어, 활성화 코드를 제공하는 것에 의해) 초기화된 경우, 컨테이너는 연관된 서버를 식별하고 나서 연관된 서버와 통신을 개시할 수 있다. 연관된 서버가 선택되고 나면, 컨테이너는 항상 연관된 서버를 사용할 수 있다. 일부 실시예에서, 모바일 디바이스는 복수의 연관된 서버와 통신하고, 예를 들어, 하나의 연관된 서버가 이용가능하지 않은 경우, 다른 연관된 서버와 연속적으로 통신하도록 구성될 수 있다.
본 발명에 따른 실시예는 발행 서버를 통해 모바일 디바이스로부터 정보를 수신하고 이 모바일 디바이스로 정보를 포스팅할 수 있는 외부 애플리케이션(예를 들어, "고객 애플리케이션")과 인터페이스를 제공할 수 있다. 고객 애플리케이션은 발행 서버와 통신하며 모바일 클라이언트로부터 정보를 송수신하는 서버 애플리케이션이다. 고객 애플리케이션은 보안된 웹 서비스 인터페이스(SOAP)를 사용하여 발행자에 연결될 수 있다. 고객 애플리케이션의 일례는 발행 서버의 WSI 인터페이스를 사용하여 모바일 사용자와 정보를 교환하는 EMR 시스템을 포함할 수 있다. 모바일 애플리케이션 개발 플랫폼은 모바일 애플리케이션으로부터 고객 애플리케이션을 분리하는 것을 도와주고 고객 애플리케이션에 개입함이 없이 (정보가 모바일에서 분실된 경우) 사용자의 정보를 복구할 수 있기 위하여 고객 애플리케이션으로부터 모바일 디바이스로 발행된 실질적으로 모든 정보를 모바일 애플리케이션 개발 플랫폼에 의해 액세스가능한 보안 데이터베이스에 저장할 수 있다.
고객 애플리케이션 개발 플랫폼은 적어도 2개의 상이한 유형의 고객 애플리케이션, 즉 대화식(interactive) 애플리케이션과 폴링(polling) 애플리케이션을 가능하게 한다. 대화식 애플리케이션에서, 고객 애플리케이션은 고객 애플리케이션과 연관된 데이터가 발행자 데이터베이스(예를 들어, 도 4의 발행자 데이터베이스(402))에서 수정된 때 통지를 받을 수 있다. 폴링 애플리케이션에서, 폴링 고객 애플리케이션은 플랫폼 데이터베이스에 있는 정보 중 수정된 정보를 주기적으로 조사하고 나서, 데이터를 검색하여 이를 고객 애플리케이션의 목적을 수행하기 위하여 처리한다. 대화식 고객 애플리케이션은 플랫폼이 고객 애플리케이션이 자체 라이프 사이클을 가지게 하는 큐잉 메커니즘(queuing mechanism)을 제공하므로 온라인 또는 오프라인일 수 있다.
고객 애플리케이션은 통상 발행 서버에 연결된 컴퓨터 서비스이고, 발행 서버로부터 통지를 수신할 수 있다. 특정 시간 기간 동안 고객 애플리케이션은 유지보수 사이클 또는 통신 실패 때문에 오프라인일 수 있다(예를 들어, 서비스 되지 않을 수 있다). 오프라인 시간 기간 동안, 모바일 애플리케이션을 사용하는 사용자는 여전히 정보를 변경(예를 들어, 데이터 등을 업데이트/추가/제거)할 수 있고, 발행 서버는 여전히 변경을 고객 애플리케이션에 통지할 필요가 있다. 그러나, 고객 애플리케이션이 오프라인이므로, 고객 애플리케이션은 통지를 수신할 수 없다. 통지 누락을 방지하기 위하여, 실시예는 통지를 큐잉하여야 하고, 고객 애플리케이션 서비스가 다시 온라인일 때, 큐(queue)는 오프라인 시간 동안 일어난 모든 변경에 대한 통지를 전달하기 시작할 수 있다. 라이프 사이클은 고객 애플리케이션을 업데이트하고 업데이트된 고객 애플리케이션이 모바일 애플리케이션 사용자에 액세스가능하게 만드는 스케줄을 말한다. 라이프 사이클이 온라인 및 오프라인 상태(phase)에서 본 명세서에 설명되었으나, 나아가 다른 상태들이 사용되거나 이용가능할 수 있다.
모바일 애플리케이션 개발 플랫폼은 하나 이상의 조직, 사용자 그룹 및 애플리케이션을 지원할 수 있다. 각 조직은 사용자 그룹 및 애플리케이션의 자체 세트를 구비할 수 있고 이러한 사용자 그룹의 멤버에는 사용자 그룹 내에 없는 개체에 비해 애플리케이션 구성에 더 많은 신뢰 또는 액세스가 부여될 수 있다. 일부 사용자 그룹은 제1 애플리케이션 구성 세트에 액세스를 할 수 있고 다른 그룹은 제2 애플리케이션 구성 세트에 액세스할 수 있다. 하나의 시스템이 다수의 고객, 예를 들어 병원 ABC과 병원 XYZ 간에 공유될 때 다수의 조직이 유용할 수 있다. 병원 ABC의 환자는 제1 그룹을 형성할 수 있고, 직원 멤버(staff member)는 제2 사용자 그룹을 형성할 수 있는 반면, 병원 XYZ는 상이한 사용자 조직을 구비할 수 있다. 2개의 조직이 동일한 컴퓨팅 및 통신 장비(예를 들어, 서버)를 사용하지만, 여러 그룹의 사용자, 애플리케이션 및 데이터는 서로 독립적이다. 자원의 이러한 다중 조직 사용은 다중-태넌트 사용이라고 지칭될 수 있다. 액세스 제어는 조직, 사용자 그룹 및 애플리케이션 간에 허가되지 않은 액세스를 방지하는데 사용된다. 액세스 제어는 사용자 그룹과 애플리케이션 간에 관리자에 의해 할당된 액세스 특권에 기초한다.
실시예는 이용가능한 경우 대역 외(out-of-band) 사용자 등록 또는 앱 내(in-app) 사용자 등록을 지원할 수 있다. 대역 외 사용자 등록은 고객 애플리케이션을 통해 사용자가 등록될 수 있을 때 일어난다. 이 경우에, 이 등록은 고객 포털을 통해 또는 모바일 애플리케이션을 사용함이 없이 사람 자원 시스템과 같은 다른 시스템으로부터 자동 등록에 의해 수행된다. 이에 비해, 앱 내 사용자 등록은 사용자가 모바일 애플리케이션으로부터 자가 등록이 가능하게 한다.
모바일 애플리케이션 개발 플랫폼은 데이터, 상태 및 사용자 선호도를 공유하는 것에 의해 함께 동작하도록 설계된 다수의 애플리케이션 구성을 지원할 수 있다. 애플리케이션 구성은 애플리케이션에 의해 사용되는 데이터세트를 포함할 수 있고, 이 데이터세트는 다른 애플리케이션 구성과 공유될 수 있다. 공유가능한 애플리케이션 구성 데이터세트는 복잡한 애플리케이션을 모듈식으로 구축하거나 또는 다른 분리된 애플리케이션과 상대적으로 독립적으로 동작할 수 있는 다수의 분리된 애플리케이션을 구축할 수 있는 융통성을 개발자에 제공한다. 이러한 애플리케이션은 협력 애플리케이션 또는 느슨하게-결합된 애플리케이션이라고 지칭될 수 있다.
사용자 데이터 관점으로부터 보면, 모바일 애플리케이션 개발 플랫폼은 "문서(document)"에 작용하고, 이 문서는 실질적으로 임의의 유형의 구조(예를 들어, 측정, 문서, 스프레드시트, 텍스트, 그래프, 이미지, 오디, 비디오, 스트리밍 미디어 등)를 갖는 실질적으로 임의의 유형의 데이터일 수 있다. 선택적으로, 실질적으로 각 문서는 문서가 생성되거나 또는 업데이트될 때 제공되는 하나 이상의 라벨 또는 태그에 의해 식별될 수 있다. 라벨과 태그는 고유성을 보장하기 위해 시스템에서 제공될 수 있거나, 또는 기억 가능한 네이밍 규약(memorable naming convention)을 보장하는 것을 도와주기 위해 사용자에서 제공될 수 있다. 라벨 또는 태그는 개별 문서를 용이하게 색인하고 식별하고 발견하는데 사용될 수 있다. 일부 실시예에서, 문서는 문서가 업데이트될 때 라벨 또는 태그를 보유할 수 있다. 일부 실시예에서, 라벨과 태그는 사용자에 의해 관리(예를 들어, 변경, 추가, 제거)될 수 있다. 라벨과 태그는 문서가 포함하는 데이터의 유형(예를 들어, MP4 비디오)을 나타내는데 사용될 수 있다. 모바일 애플리케이션이 데이터에 작용하는 방식은 제한되지 않는다. 예를 들어, 데이터가 HTML/CSS/JS 코드를 포함하는 경우, 모바일 애플리케이션은 데이터를 이 데이터에 적절한 포맷으로 렌더링하도록 구성될 수 있다.
본 발명에 따른 일부 실시예에서, 모바일 사용자는 애플리케이션을 활성화하는데 사용될 수 있는 활성화 코드를 습득하거나, 또는 등록된 사용자에 이용가능한 추가적인 특징 또는 이익을 갖는 모바일 애플리케이션을 사용하기 위하여 대역 외 통신 메커니즘(예를 들어, 웹 포털 또는 사람과 같은 제2 통신 채널)을 사용하여 고객 서비스 개체에 등록될 수 있다. 본 발명에 따른 다른 실시예에서, 제어기 애플리케이션은 시스템에서 사용자 등록을 제어하고, 활성화 코드를 사용자에 제공하여 사용자가 모바일 애플리케이션을 활성화하게 할 수 있다. 이 제2 옵션은 제1 옵션과 유사하지만, 이 제2 옵션은 사용자가 발행 서버에 등록되기 전에 다른 시스템에 이미 등록된다는 점에서 상이하다. 본 발명에 따른 다른 실시예에서, 활성화는 모바일 애플리케이션 그 자체로부터 수행될 수 있는데 이 경우 모바일 디바이스의 사용자가 모바일 애플리케이션을 사용하여 제일 먼저 (예를 들어 이메일 또는 SMS 텍스트 메시지를 통해) 대역 외 활성화 코드를 요청하여 수신하고 나서, 수신된 코드를 입력하여 애플리케이션을 활성화하고 활성화된 기능을 따라 진행할 수 있도록 할 수 있다.
여러 실시예에 의해 해결되는 문제는 각 모바일 플랫폼을 위한 별개의 소프트웨어 코드를 작성해야 하는 부담을 유발함이 없이 온라인 및 오프라인 사용을 위해 고유하게 보안된 모바일 애플리케이션을 개발하는 방법이다. 나아가, 모바일 애플리케이션은 보안 데이터 애플리케이션과 관련된 실질적으로 모든 보안 표준 및 사양에 따라 설계되고 동작되어야 한다. 모바일 애플리케이션 개발 플랫폼을 사용하여 개발된 다른 모바일 애플리케이션에 대해, 바람직한 특성은 모바일 애플리케이션이 협력적이어야 하고, 서로 데이터를 공유할 수 있고, 모바일 디바이스와 모듈식으로 공유가능하고 업로드가능하여야 하고, 동적으로 업데이트될 수 있는 것을 포함한다. 모바일 애플리케이션 개발 플랫폼은 GUI 기술 언어를 사용하고 스크립트 언어(들)를 지원할 수 있다.
본 발명에 따른 실시예는 민감한 정보를 취급하거나 처리하는 모바일 애플리케이션(예를 들어, 환자와 소비자의 사용을 위한 건강 애플리케이션)을 개발하고 지원할 수 있게 하고, 상기 식별된 바람직한 특성을 병합할 수 있다. 실시예는 민감한 정보에 액세스할 필요가 있는 개체(예를 들어, 의료 서비스 제공자)가 환자 거동의 개선된 이해, 처방되거나 또는 권고된 처방약의 준수, 및 환자 건강에 대한 약물 치료의 영향과 같은 민감한 데이터와 관련된 보다 깊이 있는 지식을 획득할 수 있게 한다. 본 명세서에 설명된 실시예는 환자와 같은 사람의 관심을 야기하고, 환자가 신뢰성 있게 자신의 데이터를 입력하게 하는 모바일 애플리케이션을 개발할 수 있게 한다. 건강 애플리케이션을 위한 모바일 애플리케이션은 환자 정보가 노출되거나 또는 오남용되는 것으로부터 보호되는 것을 보장하기 위해 HIPAA 순응 애플리케이션일 수 있다.
모바일 애플리케이션이 환자의 관심을 야기하여야 하므로, 모바일 애플리케이션과 그 컨텐츠는 변경 환자 사용, 요구 및 기대에 따라 조절하여, 관심을 지속적으로 야기하기 위하여 상대적으로 빈번히 업데이트되고 개선되어야 한다. 종종, 사용자는 업데이트와 개선의 이익을 인지하여야 한다. 따라서, 건강 애플리케이션의 경우에, 사용자의 의료-관련된 많은 또는 모든 요구를 해결하려고 노력하는 하나의 간단하나 통합된 모바일 애플리케이션을 제공하는 것에 의해 사용자는 모바일 애플리케이션을 사용하는 것에 보다 더 이끌릴 수 있다. 개선된 환자 건강은 환자가 자신의 건강 보험에 보다 더 이끌릴 때 발생할 수 있다.
본 발명에 따른 실시예는 애플리케이션 개발자가 모바일 애플리케이션 또는 모바일 애플리케이션 개발 플랫폼의 적어도 이하의 특성을 지니는 모바일 애플리케이션을 개발할 수 있게 하는 모바일 애플리케이션 개발 플랫폼을 제공할 수 있다:
실시예는 보안 소켓 계층(secure sockets layer: SSL)과 독립적인 강한 송신 보안 프로토콜을 사용하여 애플리케이션 구성 정보, 데이터, 설정 등의 다운로드를 지원할 수 있다. 보안 송신 메커니즘은 또한 여분의 SSL 계층의 상부에 사용될 수 있다.
실시예는 영구적인 인터넷 연결(WiFi, 3G, 4G, 5G 등), 인터넷 연결 없음 또는 산발적인 인터넷 연결을 요구하는 모바일 애플리케이션의 개발을 지원할 수 있다.
실시예는 동일한 컨테이너에서 다수의 애플리케이션 구성의 실행을 지원할 수 있는 컨테이너를 앱 저장소로부터 다운로드하는 능력을 지원할 수 있다.
실시예는 각 상이한 유형의 사용자를 위한 다수의 애플리케이션 구성을 서버로부터 다운로드하는 능력을 지원할 수 있다.
실시예는 다른 애플리케이션을 설치할 필요 없이 및 디바이스를 위한 모바일 애플리케이션의 상이한 또는 업데이트된 버전을 획득할 필요 없이, 사용자마다 다수의 애플리케이션 구성을 구성하는 능력을 지원할 수 있다.
실시예는 데이터를 공유하거나 또는 독립적인 데이터세트를 구비하기 위하여 다수의 모바일 애플리케이션 구성을 제공하는 능력을 지원할 수 있다. 데이터세트는 사용자가 정보를 저장할 수 있는 미리 한정된 논리적 위치 또는 분류일 수 있다. 데이터세트는 계층적 및/또는 회귀적(recursive)일 수 있다. 데이터세트는 애플리케이션마다 상이할 수 있고 또는 애플리케이션들 간에 공유될 수 있다. 데이터세트는 데이터그룹에서 함께 그룹화될 수 있다. 예를 들어, 단일 사용자는 논리적 공간 내에 상이한 데이터세트의 상이한 문서, 예를 들어, PHI 데이터세트 내 PHI 문서와, 측정 데이터세트 내 혈압 측정 문서를 구비할 수 있다. 상이한 사용자는 상이한 논리적 공간 또는 관계 구조(예를 들어, 폴더 트리(folder tree) 또는 부모/자녀 폴더 관계)를 구비할 수 있으나, 동일한 데이터세트에 유사한 문서를 구비할 수도 있다.
데이터그룹은 고객 애플리케이션 URL 입력 지점(entry point)을 사용하여 고객 애플리케이션과 연관된다. 고객 애플리케이션은 통지를 취득할 필요가 있는 데이터그룹에 가입될 수 있다. 가입된 고객 애플리케이션은 데이터그룹과 연관된 데이터세트의 문서가 생성되거나, 수정되거나 또는 삭제될 때 통지될 수 있다.
실시예는 강한 보안 저장 매체를 사용하여 구성, 논리 및 데이터를 저장하는 모바일 애플리케이션을 개발하는 능력을 지원할 수 있다. 강한 저장 매체는 암호화된 저장 매체의 암호화 강도를 말한다. 이러한 강한 보안 저장 매체는 종종 AES 또는 다른 유사하게 강한 보안 표준을 사용한다.
실시예는 클라이언트와 서버에서 사용자 데이터 변경과 사용자 데이터의 상호 작용을 추적할 수 있는 모바일 애플리케이션을 개발하는 능력을 지원한다.
실시예는 데이터 복구(recovery), 보안 크리덴셜 복구, 사용자들 간 데이터 공유를 지원하기 위하여 통합된 서버 상호작용을 제공하고, 동일한 플랫폼에서 사용자 정보와 상호 작용하기 위하여 포털을 사용할 수 있다. 통합된 서버 상호 작용은 발행 서버가 고객 애플리케이션이 이와 상호 작용하게 하는 WSI 인터페이스를 제공할 때 존재한다. WSI 인터페이스는 서버를 고객 포털과 통합하고, 또는 서버를 레거시 앱(legacy app) 등과 같은 고객 애플리케이션과 통합하는데 사용될 수 있다. 포털은 최종 사용자가 원격 시스템과 상호 작용하게 하는 애플리케이션 프로그램으로 알려져 있다. 포털은 또한 웹 애플리케이션으로 지칭될 수 있다.
실시예는 외부 서버가 일부 또는 모든 사용자 변경의 통지를 수신하고, 제공된 웹 서비스 인터페이스를 통해 사용자 정보를 검색하고 푸시할 수 있기 위한 통합된 메커니즘(예를 들어, 통신 인터페이스)을 제공할 수 있다. 이러한 서버는 정보를 모바일 디바이스에 발행하고 모바일 디바이스로부터 정보를 수신하는데 사용될 수 있다. 예를 들어, 외부 서버는 모바일 디바이스로부터 송신된 정보를 수신하고 처리한다. 서버는 보안된 웹 서비스 인터페이스(WSI)를 사용하여 발행 서버와 통신하고, 모바일 디바이스에서 생성된 정보를 검색할 수 있다. WSI는 SOAP 표준에 기초한 호출, 파라미터 및 데이터 구조의 미들웨어로 알려져 있다. 본 발명에 따른 실시예는 발행 서버와 통신하기 위하여 SOAP 표준을 사용한다.
실시예는 디바이스가 분실 또는 도난된 것으로 보고될 때 모바일 디바이스에 있는 보안 정보의 자동 소거를 지원할 수 있다. 이 소거는 원격으로, 무선(over-the-air wireless) 커맨드를 통해 또는 여러 번의 유효하지 않은 패스워드 입력 시도 후에 개시될 수 있다. 이후, 새로운 디바이스를 활성화하기 위해, 사용자는 활성화 코드를 수신하고 나서, 오래된 이제-소거된 디바이스에 저장된 보안 컨텐츠를 복구하기 위하여 발행 서버와 디바이스를 동기화할 수 있다. 실시예는 보안 데이터 저장소를 복제(clone)할 수 없는 것을 보장하는 보안 특징을 사용하는데, 즉, 데이터 저장소는 데이터 저장소를 보유하는 디바이스를 제일 먼저 소거하거나 또는 새로운 활성화 코드를 습득하지 않으면 복제될 수 없다.
실시예는 기밀 정보, 예를 들어, HIPAA, DIACAP(Defense Information Assurance Certification & Accreditation Process) 및 차후에 사용될 수 있는 다른 순응 조직을 보조하기 위하여 전적인 법적 및 규제에의 순응을 제공할 수 있다.
실시예는 다중-태넌트(multi-tenant)의 지원 및 다수의 사용자 그룹의 지원을 제공할 수 있다.
실시예는 사용자 그룹의 멤버에 의해, 본 발명에 따른 실시예에서 개발된 애플리케이션에의 액세스 권리의 부여를 지원할 수 있다.
실시예는 본 발명에 따라 다른 사용자에 속하는 데이터를 판독, 업데이트, 삭제 또는 공유하기 위하여 다른 사용자에 속하는 데이터에 사용자가 액세스하는 권리의 부여를 지원할 수 있다.
실시예는 외부 서버(예를 들어, 고객 애플리케이션)와 모바일 디바이스 간에 보안 통신 경로를 제공할 수 있다. 고객 애플리케이션과 모바일 애플리케이션 구성의 개발자는 특정 구현에 친숙할 것을 요하지 않는다.
실시예는 고객 애플리케이션과 연관된 데이터가 플랫폼 데이터베이스에서 수정될 때 고객 애플리케이션을 업데이트하기 위해 상이한 대화식 및 폴링 구조를 지원할 수 있다.
실시예는 더 새로운 모바일 디바이스 특징을 사용하는 네이티브(native) 및 하이브리드(hybrid) 애플리케이션을 지원하도록 애플리케이션 프로그램 인터페이스(application program interface: API)를 확장하는 능력을 제공할 수 있다.
실시예는 사용자 데이터에 문서 추상화의 사용을 지원하고, 차후 서치 성능을 개선시키기 위하여 사용자가 태그를 문서 메타 정보에 추가하는 능력을 제공할 수 있다. 문서 추상화는 실시예들이 시스템에 의해 송신된 정보로부터 독립적으로 만드는 것을 도와준다. 문서는 서치 가능한 태그, 정보 유형 등을 나타낼 수 있는 메타-정보 필드를 구비할 수 있는 실질적으로 임의의 유형의 컨텐츠일 수 있다. 이러한 정보는 주로 고객 애플리케이션 서버 및 대응하는 애플리케이션 구성에 중요하다.
실시예는 고객 애플리케이션이 플랫폼 데이터베이스를 사용하고/하거나 고객 애플리케이션이 자체 데이터베이스를 구비하는 능력을 제공할 수 있다.
실시예는 다른 통신 프로토콜(예를 들어, 블루투스)을 지원하고, 생체인식(biometric) 디바이스와 같은 다른 외부 디바이스를 지원할 수 있다.
실시예는 실질적으로 임의의 시간에 고객 애플리케이션으로부터 사용자-프로파일 관리 요청을 수신하도록 구성된 발행 서버를 포함할 수 있다. 사용자-프로파일을 생성한 후, 발행 서버는 사용자 프로파일을 등록하고 인증 서버로부터 활성화 코드를 습득할 수 있다. 인증 서버는, 예를 들어, 도 1의 검증 서버(36)로 예시될 수 있다. 활성화 코드는 고객 애플리케이션에 제공될 수 있다.
실시예는 실질적으로 임의의 시간에 모바일 디바이스로부터 사용자 등록 요청을 수신하도록 구성된 발행 서버를 포함할 수 있다. 사용자 등록 요청을 수신한 후, 발행 서버는 인증 서버로부터 인증 코드를 요청할 수 있고 인증 코드를 모바일 디바이스에 제공할 수 있다. 인증 코드를 수신한 후, 모바일 디바이스는 활성화 공정으로 진행할 수 있다.
실시예는 모바일 디바이스에 패스워드 또는 암호화 키를 저장함이 없이 사용자 패스워드, 수신된 보안 크리덴셜 및 내부 모바일 정보를 사용하여 보안 저장 매체를 위한 암호화 키를 유도하도록 구성된 모바일 디바이스를 포함할 수 있다.
실시예는 대응하는 데이터가 영향을 받을 때(예를 들어, 생성되거나, 업데이트되거나 또는 삭제될 때) 통지를 큐잉하고 이를 고객 애플리케이션에 전달하도록 구성된 발행 서버를 포함할 수 있다.
실시예는 보안된 웹 서비스 인터페이스 호출을 수신하여 고객 애플리케이션으로부터 정보를 검색하거나 포스팅하여, 애플리케이션이 모니터링에 할당된 정보에만 애플리케이션이 액세스할 수 있게 하도록 구성된 발행 서버를 포함할 수 있다. 애플리케이션은 변경을 폴링하거나 또는 발행자 통지(publisher notification)에 반응할 수 있다.
실시예는 생체인식 판독기(예를 들어, 지문 판독기, 홍채 스캐너 등)를 포함하는 모바일 디바이스를 포함할 수 있다. 모바일 디바이스는 Wi-Fi, 블루투스, ZigBee, 근거리 통신(NFC) 등과 같은 근거리 무선 인터페이스를 더 포함할 수 있다.
실시예는 감사(auditing) 및 로그(logging) 기능을 개발자에 제공하는 모듈을 포함하는 모바일 애플리케이션을 포함할 수 있다. 시스템의 실질적으로 모든 동작은 감사를 위하여 로그될 수 있다.
실시예는 사용자 데이터에 보안 변경 이력을 유지하도록 구성된 발행 서버를 포함할 수 있다.
실시예는 복수의 모바일 디바이스를 서로 독립적으로 지원하는 정보를 발행하도록 구성된 발행 서버를 포함할 수 있다.
실시예는 자가 모니터링하고, 오기능 모듈 또는 예외적인 에러(예를 들어, 프로세서 결함 또는 운영 시스템 결함을 야기하고, 데이터 송신 에러를 포함하지 않는 에러)를 검출하도록 구성된 발행 서버를 포함할 수 있다. 발행 서버는 오기능 모듈 또는 예외적인 에러를 관리자에 통지할 수 있다.
실시예는 느린(lazy) 다운로드 기술과 보안 다운로드 메커니즘을 사용하여 문서 부착을 관리하도록 구성된 발행 서버를 포함할 수 있다. 느린 다운로드 기술은 수신자 사용자가 문서에 액세스를 요구할 때 그리고 이 때에만 부착된 문서가 다운로드되는 기술로 알려져 있을 수 있다.
실시예는 스트리밍 멀티미디어 및 대규모 데이터를 관리하도록 구성된 발행 서버를 포함할 수 있다.
실시예는 제어의 반전(inversion of control: IOC)이 고객 모듈과 통신하게 하는 다른 인터페이스 세트를 제공하도록 구성된 발행 서버를 포함할 수 있다. 고객 모듈은 발행 서버의 일부로 볼 수 있으나, 발행 서버 API와 자원을 사용하여 동작하는 고객 논리 회로를 포함할 수 있다. 발행 서버는 필요할 때 고객 모듈을 사용하여, 예를 들어, 고객 모듈이 사용자로부터 시스템에 도달한 정보를 알 수 있게 할 수 있다.
실시예는 경량의 디렉토리 액세스 프로토콜(Lightweight Directory Access Protocol: LDAP), 윈도우즈(Windows)(상표명) 활성 디렉토리(Active Directory) 등과 같은 사용자-관리 및 인증 메커니즘과 통합을 제공하도록 구성된 발행 서버를 포함할 수 있다. LDAP는 인터넷 프로토콜(IP) 네트워크를 통해 분산된 디렉토리 정보 서비스에 액세스하고 유지하는 개방된 벤더-중립적인 산업 표준 애플리케이션 프로토콜로 알려져 있다.
도 3은 본 발명의 일 실시에에 따른 시스템(300)의 전체도를 도시한다. 시스템(300)은 2개의 주요한 디바이스 애플리케이션(310) 및 컴퓨팅 디바이스(307)를 포함한다. 컴퓨팅 디바이스(307)와 상호 작용하는 컴포넌트와, 디바이스 애플리케이션(307) 컴포넌트 그 자체는 고객 서버 애플리케이션의 예이다. 이 고객 서브시스템에서, 디바이스 애플리케이션(307)은 고객에 의해 사용되어 사용자가 컴퓨팅 디바이스(307)에 상주하는 고객 애플리케이션(306)에 액세스하게 하는 인터페이스(304)를 인터넷 브라우저(302)에 제공한다. 컴퓨팅 디바이스(307)는 메모리와 결합된 프로세서를 포함하고, 이 메모리는, 프로세서에 의해 수행될 때, 고객 애플리케이션(306)의 기능을 제공하는 명령을 저장하도록 구성된다. 고객 애플리케이션(306) 및/또는 컴퓨팅 디바이스(307)는 서버 컴퓨터를 포함하거나 이 서버 컴퓨터에 의해 호스팅될 수 있다. 고객 애플리케이션(306)은 최종-사용자 웹 포털, 케이스 관리 포털 등과 같은 하나 이상의 개별 애플리케이션을 나타낼 수 있다. 일부 실시예에서, 컴퓨팅 디바이스(307)는 또한 인터넷 브라우저(302)가 실행되는 컴퓨팅 플랫폼을 제공할 수 있다. 일부 실시예에서, 관리자 인터페이스(308)는 컴퓨팅 디바이스(307) 또는 고객 애플리케이션(306)을 구성하거나 그 구성을 제어하기 위하여 컴퓨팅 디바이스(307 또는 306)에 제공될 수 있다.
시스템(300)은 디바이스 애플리케이션(310)을 더 포함한다. 디바이스 애플리케이션은 사이트(314)와 고객 서브시스템(307, 306) 간에 통신 인터페이스(318)를 포함한다. 통신 인터페이스(318)는 인터넷과 같은 LAN 또는 WAN에 이더넷 인터페이스를 포함할 수 있다. 네트워킹 계층에서, 통신 인터페이스(318)는 프로토콜의 보안이 SSL에 의존하지 않는 표준 SOAP 보안 특징을 사용하는 단순 객체 액세스 프로토콜(SOAP)과 같은 보안 통신 인터페이스를 사용할 수 있다. SOAP는 분산된 환경에서 정보를 교환하기 위하여 경량의 프로토콜(즉, 연산 집약적이 아닌 것)로 이 기술 분야에 통상의 지식을 가진 자에 알려져 있다. SOAP는 3개의 부분, 즉 메시지에 무엇이 있는지 및 이를 처리하는 방법을 기술하는 프레임워크를 한정하는 엔벨롭(envelope), 애플리케이션-한정된 데이터 유형의 인스턴스(instance)를 표현하는 인코딩 규칙 세트, 및 원격 절차 호출과 응답을 나타내는 규약을 포함하는 XML 기반 프로토콜이다. SOAP는 잠재적으로 여러 다른 프로토콜과 함께 사용될 수 있고, 이 기술 분야에 통상의 지식을 가진 자에게는 HTTP 및 HTTP 확장 프레임워크와 함께 SOAP를 사용하는 방식을 기술하는 바인딩(binding)이 알려져 있다.
서버(314)는 통신 인터페이스(318)와 통신가능하게 인터페이스하고, 발행 매니저 서버, 인증 서버 및 제공 서버와 같은 여러 서버 애플리케이션을 위한 서버로 작용하도록 구성된다. 서버(314)는 디바이스 애플리케이션(310)에 통신 인터페이스(312)를 지원할 수 있다. 디바이스 애플리케이션(310)은 하나 이상의 애플리케이션 구성을 갖는 클라이언트 부분(또는 컨테이너)을 지원하거나 실행할 수 있고, 이 클라이언트 부분은 컴퓨팅 디바이스(307)에서 실행될 수 있다. 디바이스 애플리케이션(310)은 보호된 정보의 보안(즉, 암호화된) 저장을 제공하고, 통신 인터페이스(312)를 통해 보안 통신을 제공하도록 구성될 수 있다. 일부 실시예에서, 디바이스 애플리케이션(310)은 서버(314) 내에 제공될 수 있다. 서버(314)는 관리자(316)에 인터페이스(예를 들어, 웹 인터페이스)를 더 포함할 수 있다. 관리자(316)는 서버(314) 및/또는 디바이스 애플리케이션(310)을 구성하거나 그 구성을 제어하는데 사용될 수 있다. 서버(314)는 Microsoft Health Vault(상표명), Google Health(상표명) 등과 같은 이 기술 분야에 알려진 클라우드에-기반한 건강과-관련된 서비스(320), 및 메시징, 팩스 등을 위한 Clickatel(상표명) 및 Esker(상표명)와 같은 다른 서비스와의 통신 인터페이스를 더 포함할 수 있다.
도 4는 특히 발행 서버(406) 및 인증 서버(410)와 통신하는 모바일 애플리케이션(414)의 사용자를 위해 서버(314)에 의해 사용되는 내부 아키텍처 및 노출된 인터페이스의 실시예(400)를 상대적으로 보다 상세한 레벨로 도시한다. 일부 실시예에서, 단일 서버는 발행 서버(406)와 인증 서버(410)를 구현하는데 사용될 수 있다.
모바일 애플리케이션(414) 및/또는 컴퓨팅 디바이스(310)는 보안 저장소(416)와 통신가능하게 결합될 수 있다. 보안 저장소(416)는 또한 컴퓨팅 디바이스(310)에 의해 호스팅될 수 있다. 컴퓨팅 디바이스(310)는 또한 내부 로컬 웹 구성과 비지니스 논리를 관리하는데 사용되는 내부 보안 웹 서버와 브라우저를 포함할 수 있다.
발행 서버(406)는 통신 인터페이스(408)를 통해 인증 서버(410)와 통신가능하게 결합될 수 있다. 통신 인터페이스(408)는 발행 서버(406)와 인증 서버(410) 간에 이메일 서비스와 검증 서비스(validation service)를 지원하도록 더 구성될 수 있다.
나아가, 발행 서버(406)는 통신 인터페이스(404)를 통해 발행자 데이터베이스(402)에 통신가능하게 결합될 수 있다. 통신 인터페이스(404)는 자바 데이터베이스 연결성(Java Database Connectivity: JDBC) 프로토콜을 지원하도록 더 구성될 수 있다. JDBC는 자바 프로그래밍 언어와 넓은 범위의 데이터베이스, SQL 데이터베이스 및 다른 테이블 데이터 소스, 예를 들어, 스프레드시트 또는 플랫 파일(flat file) 간에 데이터베이스와-독립적인 연결을 위한 표준 프로토콜로 이 기술 분야에 알려져 있다. JDBC API는 SQL-기반 데이터베이스에 액세스를 위한 호출-레벨 API를 제공한다. 다른 통신 프로토콜이 또한 통신 인터페이스(404)에 사용될 수 있다.
나아가, 발행 서버(406)는 통신 인터페이스(424)를 통해 고객 애플리케이션(426)에 통신가능하게 결합될 수 있다. 통신 인터페이스(424)는 웹 서비스 인터페이스(WSI) 프로토콜을 지원하도록 더 구성될 수 있다. WSI는, 개발자가 소스 코드를 수정함이 없이, 원격 시스템으로부터 또는 대량으로 다수의 작업을 수행하게 하는 API와 유사한 기능을 수행하는 XML-기반 도구로 이 기술 분야에 알려져 있다. 다른 프로토콜이 또한 통신 인터페이스(424)(예를 들어, JDBC, REST 등)에 사용될 수 있고, 실시예는 이런 점으로 제한되지 않는다.
인증 서버(410)는 통신 인터페이스(420)를 통해 제공 데이터베이스(422)에 통신가능하게 결합될 수 있다. 통신 인터페이스(424)는 JDBC를 지원하도록 더 구성될 수 있다. 다른 프로토콜이 또한 통신 인터페이스(420)에 사용될 수 있고, 실시예는 이런 점으로 제한되지 않는다. 제공 데이터베이스(422)는 실시예(400)와 관련된 프로파일, 설정 및 다른 정보를 저장하고 또한 디바이스 자동 검출을 사용하여 필요한 경우 모바일 애플리케이션을 저장하고 분배하는데 사용될 수 있다.
동작시, 모바일 애플리케이션(414) 및/또는 컴퓨팅 디바이스(310)는 각각 통신 인터페이스(412)와 통신 인터페이스(418)를 통해 무선 메커니즘(예를 들어, 무선 통신 채널)을 사용하여, 및 암호로 강한 인증 및 암호화 방법을 사용하는 것에 의해 발행 서버(406)로부터 웹 구성 및 논리를 수신하고 인증 서버(410)로부터 보안 크리덴셜을 수신할 수 있다.
컴퓨팅 디바이스(310)는 보안 저장 매체(416)에 웹 구성 및 논리를 저장하도록 설계될 수 있다. 컴퓨팅 디바이스(307)에 있는 보안 웹 서버는 필요한 경우 리뷰와 변경을 위해 웹 구성 및 논리를 사용자 또는 다른 제어기에 렌더링하기 위하여 로컬 보안 브라우저에 의해 요청된 페이지를 공급한다. 보안 브라우저가 동작할 때, 외부 서버와 통신이 필요치 않아서, 컴퓨팅 디바이스(307)에 있는 애플리케이션이 오프라인에서 동작하고 보안 저장 매체(416)에 보안된 정보를 유지한다. 내부 웹 서버에 의해 공급되는 구성과 논리는 데이터 구조, 프리젠테이션 메커니즘 및 논리를 기술하는 실질적으로 임의의 종류의 언어를 사용할 수 있다. 예를 들어, 구성 및 논리는 자바스크립트 객체 표기(JavaScript Object Notation: JSON), HTML 및 자바스크립트로 각각 표현될 수 있다. 실시예는 이런 점으로 제한되지 않고, 다른 실시예는 다른 컴퓨팅 언어 또는 프로토콜을 사용할 수 있다. 보안 저장 매체(416)에 저장된 데이터, 구성 및 논리는 애플리케이션(414)의 스타트업 동안 또는 사용자 요청에 의해 또는 주기적인 스케줄에 따라, 발행 서버(406)와 동기화되어 이로부터 업데이트될 수 있다. 발행 서버(406)는 사용자의 데이터에 액세스 허가를 구비한 사용자에 고객 애플리케이션(426)을 통해 사용자로부터 요청을 수신하는 능력을 포함할 수 있다. 사용자는 발행 서버 보안 데이터베이스(402)에 저장된 정보를 포스팅하거나 판독할 수 있다. 사용자는 미리 결정된 보안 규칙에 따라 보안 데이터베이스(402)에 정보를 공유할 수 있다.
사용자는 컴퓨팅 디바이스(307)와 같은 모바일 디바이스로부터 또는 종래의 인터넷 브라우저로부터 정보를 액세스할 수 있다. 발행 서버(406)에 이용가능한 관리 도구는 발행된 데이터에 대한 데이터 보안 관리를 가능하게 하고, 사용자와 디바이스가 발행된 데이터에 액세스하는 능력을 관리할 수 있다. 클라이언트와 서버 간의 통신은 암호화(예를 들어, AES)로 인해 본질적으로 보안이고 SSL에만 의존하지 않는다. 모바일 애플리케이션(414)은 원래의 모바일 디바이스가 분실되거나 도난된 경우 새로운 디바이스에서 이전의 동작 상태로 복구될 수 있다. 원래의 모바일 디바이스는 자동적으로 디스에이블될 수 있고, 보안 저장 매체(416)에 있는 모든 데이터는 자동적으로 삭제될 수 있다.
도 5는 본 발명의 일 실시예에 따른 애플리케이션을 발행하는 공정(500)을 도시한다. 공정(500)은 도 5의 상부에서 하부로 시간이 진행함에 따라 개발자(502), 고객 애플리케이션(504)과 발행자(506)(예를 들어, 발행 서버(406)) 간에 메시지 시퀀스 다이어그램으로 도시된다. 개별 메시지는 각 메시지의 발신지 부근에 위치된 참조 부호로 표시된다. 모바일 애플리케이션(414)과 서버 애플리케이션(예를 들어, 고객 애플리케이션)은 직접 통신하지 않는다. 대신, 발행자(506)는 저장 매체와 미들웨어로 동작한다.
공정(500)은 단계(516)에서 시작하고, 여기서 개발자(502)가 애플리케이션을 생성하거나 수정할 수 있다. 이 시간 동안, 고객 애플리케이션은 통상 다른 애플리케이션에 의해 일반적으로 액세스가능하거나 또는 사용가능하지 않다. 단계(516)는 무기한 반복할 수 있다. 개발자가 고객 애플리케이션을 생성하거나 수정하여 애플리케이션이 충분히 발행될 때, 단계(516)는 종결된다.
다음에, 공정(500)의 제어는 단계(518)로 이행되고, 여기서 개발자(502)는 일반적으로 발행자(506)(예를 들어, 발행 서버(406))에 의해 전개되거나 또는 이용가능하게 만들어지기 위하여 고객 애플리케이션을 구성할 수 있다.
다음에, 공정(500)의 제어는 단계(520)로 이행되고, 여기서 개발자(502)는 고객 애플리케이션이 액세스 또는 수정 허가를 구비하거나, 또는 멤버인 데이터 그룹을 식별하기 위하여 고객 애플리케이션을 구성할 수 있다.
다음에, 공정(500)의 제어는 단계(522)로 이행되고, 여기서 개발자(502)는 고객 애플리케이션이 액세스 또는 수정 허가를 구비하는 데이터세트를 식별하기 위하여 고객 애플리케이션을 구성할 수 있다.
다음에, 공정(500)의 제어는 단계(524)로 이행되고, 여기서 개발자(502)는 발행자(506)에 고객 애플리케이션을 등록할 수 있기 위하여 고객 애플리케이션을 구성할 수 있다.
다음에, 공정(500)의 제어는 단계(526)에 이행되고, 여기서 개발자(502)는 모바일 애플리케이션 구성을 생성, 수정 또는 저장할 수 있다. 이 구성은 애플리케이션과 연관된 데이터 세트 및 데이터 그룹을 포함할 수 있다. 단계(526)는 이 구성의 충분한 수정이 필요할 때까지 반복할 수 있다. 개발자가 이 구성을 생성, 수정 또는 저장하여 애플리케이션 구성이 충분히 발행될 때, 단계(526)는 종결된다.
다음에, 공정(500)의 제어는 단계(528)로 이행되고, 여기서 개발자(502)는 발행자(506)와 통신하며 애플리케이션 구성이 모바일 컨테이너에 의해 사용하도록 포스팅되고 이용가능하게 일반적으로 이루어진다.
도 6은 본 발명의 일 실시예에 따라 애플리케이션에 사용자를 등록하는 공정(600)을 도시한다. 공정(600)은 일반적으로 모바일 사용자(514)가 주장된 크리덴셜(예를 들어, 일회용 패스워드(OTP))을 제공하고, 주장된 크리덴셜이 인증기(508)에 의해 인증되게 하고, 인증기(508)가 주장된 크리덴셜이 진정한 것이라는 것을 증명하는 인증서(예를 들어, 디지털 인증서, 활성화 코드 등)를 생성하여, 액세스, 특권 등을 모바일 사용자(514)에 부여하는 암호로 강한 인증 방법을 제공한다. 공정(600)은 도 6의 상부에서 하부로 시간이 진행함에 따라 고객 애플리케이션(504), 발행자(506), 인증기(508)(예를 들어, 인증 서버(410)), 모바일 디바이스(510)(예를 들어, 컴퓨팅 디바이스(307)) 및 모바일 사용자(514) 간에 메시지 시퀀스 다이어그램으로 도시된다. 개별 메시지는 각 메시지의 발신지 부근에 위치된 참조 부호로 표시된다.
공정(600)은 단계(602)에서 시작하고, 여기서 등록 요청(또는 이와 균등한 것)이 모바일 사용자(514)로부터 고객 애플리케이션(504)으로 송신된다. 등록 요청 메시지는 요청하는 모바일 사용자(514)를 식별하는 크리덴셜을 포함한다.
다음에, 공정(600)의 제어는 단계(604)로 이행되고, 여기서 사용자 생성 및 데이터 포스팅(Create User and Post Data)() 메시지(또는 이와 균등한 것)가 고객 애플리케이션(504)으로부터 발행자(506)로 송신된다.
다음에, 공정(600)의 제어는 단계(606)로 이행되고, 여기서 발행자(506)는 사용자 등록 요청 메시지를 인증기(508)로 송신할 수 있다. 사용자 등록 요청 메시지는 요청하는 모바일 사용자(514)를 식별하는 크리덴셜을 포함한다. 단계(606)는 인증기(508)가 모바일 사용자(514)에 의해 제공된 크리덴셜을 인증하고 보안 크리덴셜을 생성할 것을 요청하는데 사용가능하다.
다음에, 공정(600)의 제어는 단계(608)로 이행되고, 여기서 인증기(508)는 발행자(506)에 의해 제공된 크리덴셜을 인증할 수 있다. 크리덴셜이 인증된 경우, 인증기(508)는 보안 크리덴셜을 생성할 수 있고, 활성화 코드를 생성할 수 있다. 활성화 코드는 고객 애플리케이션을 사용하기 시작하기 위하여 모바일 사용자(514)에 의해 사용되도록 의도된다.
다음에, 공정(600)의 제어는 단계(610)로 이행되고, 여기서 활성화 코드 메시지(또는 이와 균등한 것)가 인증기(508)로부터 발행자(506)로 리턴된다.
다음에, 공정(600)의 제어는 단계(612)로 이행되고, 여기서 발행자(506)가 활성화 코드를 수신한 후, 발행자(506)는 사용자를 내부에서 생성하거나 활성화시켜 리턴할 수 있다.
다음에, 공정(600)의 제어는 단계(614)로 이행되고, 여기서 활성화 코드 메시지는 발행자(506)로부터 고객 애플리케이션(504)으로 송신할 수 있다. 단계(614)는 모바일 사용자(514)가 고객 애플리케이션(504)에 의해 제어되는 액세스 데이터 고객 또는 애플리케이션(504)을 사용하는 것이 이제 허가되었다는 것을 고객 애플리케이션(504)에 알리는데 사용가능하다.
다음에, 공정(600)의 제어는 단계(616)로 이행되고, 여기서 고객 애플리케이션(504)은 활성화 코드를 모바일 사용자(514)로 제공할 수 있고, 모바일 사용자(514)는 고객 애플리케이션(504)에 의해 제어되는 액세스 데이터 또는 고객 애플리케이션(504)을 사용하는 것이 이제 허가되었다는 것을 알게 된다.
도 7은 모바일 디바이스(510)에서 이미 이용가능하지 않은 애플리케이션을 모바일 사용자(514)가 앱 저장소(512)에서 서치하는 공정(700)을 도시한다. 공정(700)은 도 7의 상부에서 하부로 시간이 진행함에 따라 모바일 디바이스(510)(예를 들어, 컴퓨팅 디바이스(307))와 모바일 사용자(514) 간에 메시지 시퀀스 다이어그램으로 도시된다. 개별 메시지는 각 메시지의 발신지 부근에 위치된 참조 부호로 표시된다. 공정(700)은 원하는 앱이 모바일 디바이스(510)에서 이미 이용가능하지 않은 것을 가정한다.
공정(700)은 단계(702)에서 시작하고, 여기서 모바일 사용자(514)가 앱 저장소(512)에서 원하는 컨테이너를 서치하기 위하여 모바일 디바이스(510)를 제어한다. 모바일 디바이스(510)는 앱 저장소(512)에 통신가능하게 결합된다. 제어는, 예를 들어, 모바일 디바이스(510)를 제어하는 모바일 사용자(514)에 의해 또는 모바일 사용자(514)에 의해 앱 저장소에서 컨테이너 서치(Search Container in App Store)() 커맨드(또는 이와 균등한 것)를 모바일 디바이스(510)에 송신하는 것에 의해 직접 조작하는 것을 통한 것일 수 있다.
다음에, 공정(700)의 제어는 단계(704)로 이행되고, 여기서 모바일 디바이스(510)는, 앱 저장소(512)에서 요청된 앱을 찾은 후, 앱 저장소(512)로부터 요청된 앱을 다운로드한다.
다음에, 공정(700)의 제어는 단계(706)로 이행되고, 여기서 모바일 디바이스(510)는 단계(704) 동안 다운로드된 요청된 앱을 설치한다.
도 8은 본 발명의 일 실시예에 따라 모바일 사용자(514)가 사용 허가된 모바일 디바이스(510)에서 애플리케이션을 모바일 사용자(514)에 의해 스타트업 및 사용하는 공정(800)을 도시한다. 공정(800)은 도 8의 상부에서 하부로 시간이 진행함에 따라 고객 애플리케이션(504), 발행자(506), 인증기(508)(예를 들어, 인증 서버(410)), 모바일 디바이스(510)(예를 들어, 컴퓨팅 디바이스(307)) 및 모바일 사용자(514) 간에 메시지 시퀀스 다이어그램으로 도시된다. 개별 메시지는 각 메시지의 발신지 부근에 위치된 참조 부호로 표시된다.
공정(800)은 단계(802)에서 시작하고, 여기서 모바일 사용자(514)는 모바일 디바이스(510)에서 이용가능한 애플리케이션을 사용하기 시작하는 요구를 나타내기 위하여 모바일 디바이스(510)를 제어한다. 지시는, 예를 들어, 모바일 디바이스(510)를 제어하는 모바일 사용자(514)에 의해 또는 모바일 사용자(514)에 의해 컨테이너 시작(Start Container) 커맨드(또는 이와 균등한 것)를 모바일 디바이스(510)에 송신하는 것에 의해 직접 조작하는 것을 통한 것일 수 있다.
다음에, 공정(800)의 제어는 단계(804)로 이행되고, 여기서 모바일 디바이스(510)는 모바일 사용자가 애플리케이션 프로그램을 사용하게 하기 위하여 모바일 사용자(514)와 활성화 코드(또는 이와 균등한 것)를 공유하는 것에 의해 단계(802)에서 요청에 응답한다.
다음에, 공정(800)의 제어는 단계(806)로 이행되고, 여기서 모바일 사용자(514)는 애플리케이션을 활성화하는데 사용되는 주장된 활성화 코드를 포함하는 활성화 코드(또는 이와 균등한 것)를 모바일 디바이스(510)에 입력하는 것에 의해 단계(804)의 메시지에 응답할 수 있다.
다음에, 공정(800)의 제어는 단계(808)로 이행되고, 여기서 모바일 디바이스(510)는 모바일 사용자(514)에 의해 공급되는 주장된 활성화 코드를 인증하기 위하여 보안 크리덴셜(활성화 코드) 취득(Get-Secure-Credential) 커맨드(또는 이와 균등한 것)를 인증기(508)에 송신한다.
다음에, 공정(800)의 제어는 단계(810)로 이행되고, 여기서 인증기(508)는 모바일 사용자(514)에 의해 공급되는 주장된 활성화 코드를 인증하기 시도할 수 있다.
다음에, 공정(800)의 제어는 단계(812)로 이행되고, 여기서 인증기(508)는 모바일 사용자(514)에 의해 공급된 주장된 활성화 코드가 진정한 것으로 단계(810)에서 인증된 경우 보안-크리덴셜 응답(또는 이와 균등한 것)을 모바일 디바이스(510)로 송신할 수 있다.
다음에, 공정(800)의 제어는 단계(814)로 이행되고, 여기서 모바일 디바이스(510)는 인증된 크리덴셜과, 단계(812)에서 인증기(508)로부터 이 크리덴셜이 진정한 것이라는 지시에 기초하여 보안 저장 매체를 초기화할 수 있다.
다음에, 공정(800)의 제어는 단계(816)로 이행되고, 여기서 모바일 디바이스(510)는 모바일 디바이스(510)와 발행자(506) 간에 애플리케이션에 의해 사용되는 데이터 또는 코드를 동기화하기 위하여 동기화 요청(또는 이와 균등한 것)을 발행자(506)에 송신할 수 있다.
다음에, 공정(800)의 제어는 단계(818)로 이행되고, 여기서 발행자(506)는 애플리케이션에 의해 사용되는 데이터 또는 코드가 메시지(816)의 결과 변경된 경우 통지 메시지를 고객 애플리케이션(504)에 송신할 수 있다.
다음에, 공정(800)의 제어는 단계(820)로 이행되고, 여기서 발행자(506)는 모바일 디바이스(510)가 애플리케이션의 현재 버전과, 애플리케이션과 연관된(또는 이에 의해 사용된) 현재 데이터를 구비하는 것을 보장하기 위하여 애플리케이션 구성 및 데이터() 메시지(또는 이와 균등한 것)를 모바일 디바이스(510)에 송신할 수 있다.
다음에, 공정(800)의 제어는 단계(822)로 이행되고, 여기서 모바일 디바이스(510)는 단계(820)에서 전술한 애플리케이션 구성 및 데이터() 메시지(또는 이와 균등한 것)를 통해 발행자(506)로부터 수신된 애플리케이션 구성 및 데이터 정보를 보안 저장 매체에 저장할 수 있다,
다음에, 공정(800)의 제어는 단계(824)로 이행되고, 여기서 모바일 디바이스(510)는 단계(820)에서 수신된 데이터를 사용하여 단계(820)에서 수신된 애플리케이션을 실행할 수 있다.
도 9는 본 발명의 일 실시예에 따라 모바일 사용자(514)가 사용 허가된 모바일 디바이스(510)에서 구성 애플리케이션 및 데이터를 동기화하고 업데이트하는 공정(900)을 도시한다. 공정(900)은 도 9의 상부에서 하부로 시간이 진행함에 따라 고객 애플리케이션(504), 발행자(506), 모바일 디바이스(510)(예를 들어, 컴퓨팅 디바이스(307)) 및 모바일 사용자(514) 간의 메시지 시퀀스 다이어그램으로 도시된다. 개별 메시지는 각 메시지의 발신지 부근에 위치된 참조 부호로 표시된다.
공정(900)은 단계(902)에서 시작하고, 여기서 고객 애플리케이션(504)은 고객 애플리케이션(504)이 고객 애플리케이션(504)과 관련된 임의의 코드 또는 데이터 업데이트를 수신할 것을 요청하기 위하여 업데이트 검색(Retrieve Update)() 메시지(또는 이와 균등한 것)를 통해 요청을 발행자(506)에 송신한다.
다음에, 공정(900)의 제어는 단계(904)로 이행되고, 여기서 이용가능한 임의의 업데이트가 있는 경우, 발행자(506)는 고객 애플리케이션(504)과 관련된 임의의 코드 또는 데이터 업데이트를 송신하기 위하여 사용자-업데이트된-데이터() 응답 메시지(또는 이와 균등한 것)를 고객 애플리케이션(504)에 송신할 수 있다. 업데이트가 이용가능하지 않은 경우, 대신 발행자(506)는 업데이트가 이용가능하지 않다는 것을 고객 애플리케이션(504)에 지시할 수 있고, 이 경우에 공정(900)은 종료될 수 있다.
다음에, 공정(900)의 제어는 단계(906)로 이행되고, 여기서 고객 애플리케이션(504)은, 메시지(904)에 의해 송신된 업데이트를 수신한 후, 예를 들어, 단계(904)에서 고객 애플리케이션(504)에 의해 수신된 메시지에 의해 제공된 코드 또는 데이터를 업데이트하는 것에 의해 업데이트를 처리할 수 있다.
다음에, 공정(900)의 제어는 단계(908)로 이행되고, 여기서 고객 애플리케이션(504)은, 단계(906) 동안 업데이트를 처리한 후, 단계(906)의 일부로 고객 애플리케이션(504)에 의해 수행된 임의의 처리 결과를 송신하고 발행하기 위하여 데이터 포스팅(Post Data)() 메시지(또는 이와 균등한 것)를 발행자(506)에 송신할 수 있다.
다음에, 공정(900)의 제어는 선택적인 단계(910)로 이행되고, 여기서 모바일 사용자(514)는 모바일 디바이스(510)가 발행자(506)로부터 이용가능한 코드 또는 데이터의 현재 사본 또는 버전에 동기화할 것을 요청하기 위하여 동기화 요청(Request Synchronization) 메시지(또는 이와 균등한 것)를 모바일 디바이스(510)에 송신할 수 있다.
다음에, 공정(900)의 제어는 단계(912)로 이행되고, 여기서 모바일 디바이스(510)는 단계(910)에서 수신된 동기화 요청() 메시지(또는 이와 균등한 것)를 처리하기 시작한다.
다음에, 공정(900)의 제어는 단계(914)로 이행되고, 여기서 모바일 디바이스(510)는 발행자(506)가 발행자(506)로부터 이용가능한 코드 또는 데이터의 현재 사본 또는 버전과 관련된 정보를 모바일 디바이스(510)에 송신하거나 또는 모바일 디바이스의 보안 저장소에 이용가능한 업데이트된 정보를 모바일 디바이스(510)로부터 발행자(506)에 송신할 것을 요청하기 위하여 동기화() 메시지(또는 이와 균등한 것)를 발행자(506)에 송신할 수 있다. 이 정보는 현재 사본 자체를 포함할 수 있고, 또는 모바일 디바이스(510)가 동기화된 마지막 시간 이후 업데이트 또는 차이만을 포함할 수 있다.
다음에, 공정(900)의 제어는 선택적인 단계(916)로 이행되고, 여기서 발행자(506)로부터 이용가능한 코드 또는 데이터가 디바이스에서 동기화 처리 결과 변경된 경우, 발행자(506)는 업데이트된 코드 또는 데이터를 고객 애플리케이션(504)에 알리기 위하여 통지() 메시지(또는 이와 균등한 것)를 고객 애플리케이션(504)에 송신할 수 있다.
다음에, 공정(900)의 제어는 선택적인 단계(918)로 이행되고, 여기서 발행자(506)는 발행된 코드 또는 데이터의 업데이트를 모바일 디바이스(510)에 알리거나, 또는 모바일 디바이스(510)가 업데이트된 마지막 시간 이후 코드 및 데이터의 업데이트가 없다는 것을 모바일 디바이스(510)에 알리기 위하여 애플리케이션 업데이트 구성(변경된 것으로 식별된 경우) 및 데이터() 메시지(또는 이와 균등한 것)를 모바일 디바이스(510)에 송신할 수 있다.
다음에, 공정(900)의 제어는 단계(920)로 이행되고, 여기서 모바일 디바이스(510)는 단계(918)에서 발행자(506)로부터 수신된 업데이트된 애플리케이션 구성 및 데이터를 처리하고 저장할 수 있다.
다음에, 공정(900)의 제어는 단계(922)로 이행되고, 여기서 모바일 디바이스(510)는, 단계(918)에서 발행자(506)로부터 수신되고 단계(920)에서 모바일 디바이스(510)에 의해 저장된, 필요에 따라 업데이트된 데이터를 사용하여 업데이트된 애플리케이션 구성을 사용할 수 있다.
본 발명의 실시예는 하나 이상의 메모리와 결합된 하나 이상의 처리 유닛을 구비하는 시스템을 포함한다. 하나 이상의 메모리는, 하나 이상의 처리 유닛에 의해 실행될 때, 적어도 도 3 내지 도 4 및 관련된 텍스트를 포함하는 본 명세서에 설명된 실시예를 실행할 수 있는 소프트웨어를 저장하도록 구성될 수 있다.
개시된 방법은 여러 컴퓨터 또는 워크스테이션 플랫폼에서 사용될 수 있는 휴대용 소스 코드를 제공하는 예를 들어 객체 또는 객체 지향적인 소프트웨어 개발 환경을 사용하는 것에 의해 소프트웨어에서 용이하게 구현될 수 있다. 대안적으로, 개시된 시스템은 예를 들어 표준 논리 회로 또는 VLSI 설계를 사용하는 것에 의해 부분적으로 또는 완전히 하드웨어로 구현될 수 있다. 본 발명의 여러 실시예에 따른 시스템을 구현하는데 사용될 수 있는 소프트웨어 또는 하드웨어는 시스템의 속도 또는 효율 요구조건, 특정 기능, 및 사용되는 특정 소프트웨어 또는 하드웨어 시스템과 같은 여러 고려사항에 종속될 수 있다.
상기한 바는 본 발명의 실시예에 관한 것이지만, 본 발명의 다른 및 추가적인 실시예를 본 기본 범위를 벗어남이 없이 고안할 수 있을 것이다. 본 명세서에 설명된 여러 실시예는 본 명세서에 포함된 범위를 벗어남이 없이 설명된 임의의 다른 실시예와 조합하여 사용될 수 있는 것으로 이해된다. 나아가, 상기 설명은 개시된 정확한 형태로 본 발명을 제한하려고 의도된 것이 전혀 아니다. 상기한 바에 비춰 여러 변형과 변경이 가능하거나 또는 본 발명을 실시하여 획득될 수 있을 것이다. 특정 예시적인 실시예는 리스트 항목이 실시예를 대표하는 것이라는 것과 리스트는 추가적인 실시예의 폐쇄적인 리스트를 배타적으로 나타내려고 의도된 것이 아니라는 것을 나타내는 용어를 포함하는 개방형 리스트를 사용하는 것에 의해 식별될 수 있다. 이러한 용어는 "예를 들어", "등", "와 같은", "예를 들어 ", "등", "등" 등과 주변 상황으로부터 명백한 다른 용어를 포함할 수 있다.
본 출원의 상세한 설명에 사용된 요소, 행동 또는 명령은, 명시적으로 그렇게 설명되지 않은 한, 본 발명에 중요하다거나 핵심적인 것으로 해석되어서는 안 된다. 또한, 본 명세서에 사용된 바와 같이, 관사 "일"은 하나 이상의 항목을 포함하는 것으로 의도된다. 단 하나의 항목만이 의도된 경우, "하나"라는 용어 또는 유사한 언어가 사용된다. 나아가, 본 명세서에 사용된 바와 같이, 복수의 항목 및/또는 복수의 항목 카테고리의 리스트에 이어서 나오는 " 중 어느 하나"라는 용어는 개별적으로 또는 다른 항목 및/또는 다른 항목 카테고리와 함께 항목 및/또는 항목 카테고리의 "중 어느 하나", " 중 어느 조합", "중 임의의 다수" 및/또는 "중 임의의 다수의 조합"을 포함하는 것으로 의도된다.
나아가, 청구범위는, 그 효과를 언급하지 않는 한, 설명된 순서 또는 요소로 제한하는 것으로 해석되어서는 안 된다. 나아가, 임의의 청구범위에서 "수단"이라는 용어의 사용은 35 U.S.C. §112, ¶6를 상기하려고 의도된 것이고, "수단"이라는 용어가 없는 임의의 청구범위는 그렇게 의도된 것이 아니다.

Claims (20)

  1. 통신 단말에서 보호된 데이터에의 액세스를 제공하는 시스템으로서,
    발행자 데이터베이스와 결합된 제1 서버로서, 상기 발행자 데이터베이스는 암호화된 형태로 보호된 데이터를 저장하도록 구성된, 상기 제1 서버;
    상기 제1 서버와 결합된 제2 서버로서, 상기 제2 서버는 상기 보호된 데이터에의 액세스의 암호로 강한 인증을 제공하도록 구성된, 상기 제2 서버;
    상기 제1 서버와 상기 통신 단말 간에, 제1 보안 채널과의 인터페이스; 및
    상기 제1 서버와 고객 애플리케이션 간에, 제2 보안 채널과의 인터페이스를 포함하되,
    상기 제1 서버는 상기 제1 보안 채널을 통해 상기 통신 단말과 보호된 데이터를 교환하고, 상기 제2 보안 채널을 통해 상기 고객 애플리케이션과 보호된 데이터를 교환하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  2. 제1항에 있어서, 상기 제1 서버는 상기 고객 애플리케이션의 데이터그룹, 데이터세트 및 URL 중 적어도 하나에 대한 구성을 수신하도록 구성되고, 상기 제1 서버는 상기 데이터그룹에 있는 데이터가 영향을 받을 때 상기 고객 애플리케이션에 통지를 제공하도록 더 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  3. 제1항에 있어서, 상기 제1 서버는 상기 통신 단말로 포스팅될 업데이트된 애플리케이션 구성을 수신하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  4. 제1항에 있어서, 상기 통신 단말은 상기 통신 단말에 패스워드 또는 암호화 키를 저장함이 없이 사용자 패스워드 및 수신된 보안 크리덴셜을 사용하여 상기 보안 저장 매체를 위한 암호화 키를 유도하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  5. 제1항에 있어서, 상기 통신 단말은 상기 제1 서버와 상기 제2 서버 중 적어도 하나로부터 애플리케이션 구성 및 논리를 수신하는 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  6. 제1항에 있어서, 상기 통신 단말은 암호화된 무선 채널을 사용하여 애플리케이션 구성 및 논리를 수신하는 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  7. 제1항에 있어서, 상기 제1 서버는 대응하는 데이터가 영향을 받을 때 통지를 큐잉하고 이를 상기 고객 애플리케이션에 전달하기 위한 큐(queue)를 포함하는 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  8. 제1항에 있어서, 상기 제1 서버는 고객 애플리케이션과 보호된 데이터를 교환하는 보안된 웹 서비스 인터페이스 호출을 수신하고, 애플리케이션이 해당 애플리케이션이 모니터링을 위해 할당된 상기 보호된 데이터에만 액세스할 수 있도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  9. 제1항에 있어서, 상기 고객 애플리케이션은 상기 제1 서버와 대화식으로 통신하며 상기 발행자 데이터베이스에서 수정된 정보를 발견하도록 구성된 애플리케이션을 포함하는 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  10. 제1항에 있어서, 구성 애플리케이션에의 액세스는 상기 통신 단말의 사용자의 그룹 멤버십에 기초한 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  11. 제1항에 있어서, 상기 모바일 프로세서는 제1 모바일 애플리케이션과 제2 모바일 애플리케이션을 제공하도록 더 구성되되, 상기 제2 모바일 애플리케이션은 상기 제1 모바일 애플리케이션과 암호화 모듈 및 데이터의 사용을 공유하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  12. 제1항에 있어서, 상기 통신 단말은 각 유형의 사용자를 위한 다수의 애플리케이션 구성을 다운로드하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  13. 제1항에 있어서, 상기 보안 저장 매체는 보안 정보의 원격 자동 소거 및 이용가능하지 않은 보안 저장 매체의 원격 복구를 지원하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  14. 제1항에 있어서, 상기 제1 서버는 다중 조직의 사용(multi-organization usage)을 지원하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  15. 제1항에 있어서, 상기 제1 서버는 SSL과 사용가능한 비-SSL 보안 통신 채널(non-SSL secure communication channel)을 통해 상기 통신 단말 및 고객 애플리케이션과의 인터페이스를 포함하는 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  16. 제1항에 있어서, 상기 제1 서버는 서로 독립적으로 복수의 통신 단말을 지원하는 정보를 발행하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 시스템.
  17. 통신 단말에서 보호된 데이터에의 액세스를 제공하는 방법으로서,
    발행자 데이터베이스와 결합된 제1 서버에 의해, 암호화된 형태로 보호된 데이터를 저장하는 단계;
    상기 통신 단말로부터, 상기 보호된 데이터에 액세스하는 요청을 수신하는 단계로서, 상기 요청은 주장된 크리덴셜을 포함하는 것인, 상기 수신하는 단계;
    암호로 강한 인증에 의해 상기 주장된 크리덴셜을 인증하기 위해 상기 주장된 크리덴셜을 제2 서버에 송신하는 단계;
    상기 주장된 크리덴셜이 인증된 경우, 상기 통신 단말과 상기 보호된 데이터 간에 액세스를 부여(granting)하는 단계;
    고객 애플리케이션과 상기 발행자 데이터베이스 간에 상기 보호된 데이터를 통신하는 단계; 및
    상기 통신 단말과 상기 발행자 데이터베이스 간에 상기 보호된 데이터를 통신하는 단계를 포함하는, 통신 단말에서 보호된 데이터에의 액세스 제공 방법.
  18. 제17항에 있어서,
    상기 고객 애플리케이션의 데이터그룹, 데이터세트 및 URL 중 적어도 하나에 대한 구성을 수신하는 단계; 및
    상기 데이터그룹에 있는 데이터가 영향을 받을 때 통지를 상기 고객 애플리케이션에 제공하는 단계를 더 포함하는, 통신 단말에서 보호된 데이터에의 액세스 제공 방법.
  19. 제17항에 있어서,
    상기 통신 단말로 포스팅될 업데이트된 애플리케이션 구성을 수신하는 단계를 더 포함하는, 통신 단말에서 보호된 데이터에의 액세스 제공 방법.
  20. 제17항에 있어서, 상기 통신 단말은 제1 모바일 애플리케이션과 제2 모바일 애플리케이션을 제공하도록 구성되되, 상기 제2 모바일 애플리케이션은 상기 제1 모바일 애플리케이션과 암호화 모듈 및 데이터의 사용을 공유하도록 구성된 것인, 통신 단말에서 보호된 데이터에의 액세스 제공 방법.
KR1020150063411A 2014-05-05 2015-05-06 동적 프리젠테이션과 데이터 구성을 사용하여 보안 모바일 협력 애플리케이션을 구축하기 위한 플랫폼 KR102111180B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/269,893 US9792458B2 (en) 2014-05-05 2014-05-05 Platform to build secure mobile collaborative applications using dynamic presentation and data configurations
US14/269,893 2014-05-05

Publications (2)

Publication Number Publication Date
KR20150126792A true KR20150126792A (ko) 2015-11-13
KR102111180B1 KR102111180B1 (ko) 2020-06-09

Family

ID=53189617

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150063411A KR102111180B1 (ko) 2014-05-05 2015-05-06 동적 프리젠테이션과 데이터 구성을 사용하여 보안 모바일 협력 애플리케이션을 구축하기 위한 플랫폼

Country Status (5)

Country Link
US (1) US9792458B2 (ko)
EP (1) EP2942729B1 (ko)
JP (1) JP6600156B2 (ko)
KR (1) KR102111180B1 (ko)
CN (1) CN105095786B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102532269B1 (ko) * 2022-04-05 2023-05-11 이준희 디지털트윈을 기반으로 하는 설비제어 시뮬레이션 시스템 및 이를 이용한 교육 컨텐츠 제공 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10264113B2 (en) 2014-01-10 2019-04-16 Onepin, Inc. Automated messaging
US10298740B2 (en) * 2014-01-10 2019-05-21 Onepin, Inc. Automated messaging
US9648164B1 (en) 2014-11-14 2017-05-09 United Services Automobile Association (“USAA”) System and method for processing high frequency callers
US11450415B1 (en) * 2015-04-17 2022-09-20 Medable Inc. Methods and systems for health insurance portability and accountability act application compliance
US10142450B1 (en) * 2015-08-27 2018-11-27 Sprint Communications Company L.P. Custom mobile telecommunication device configuration management
KR101680525B1 (ko) * 2016-07-12 2016-12-06 김주한 앱 위변조 탐지 가능한 2채널 인증 대행 시스템 및 그 방법
US10635509B2 (en) * 2016-11-17 2020-04-28 Sung Jin Cho System and method for creating and managing an interactive network of applications
US20180240546A1 (en) * 2017-02-22 2018-08-23 Margaret Christine Pfeiffer Regulatory and procedural framework compliance and hospital staff communication and development system and processes for facilitating hospital staff communication, development, and compliance with regulatory and procedural frameworks
CN107147701B (zh) * 2017-04-18 2022-11-11 上海魔谷计算机科技有限公司 一种弱联网应用托管服务系统及其托管方法
KR20200104043A (ko) * 2019-02-26 2020-09-03 삼성전자주식회사 사용자 식별 정보를 저장하기 위한 전자 장치 및 그에 관한 방법
US11375043B2 (en) * 2019-03-06 2022-06-28 Citizen Watch Co., Ltd. Program management system, external device and terminal device for controlling a program developer's ability to access, publish and manage marketing of a program
JP7331398B2 (ja) * 2019-03-20 2023-08-23 富士フイルムビジネスイノベーション株式会社 情報処理システムおよびプログラム
US11288399B2 (en) * 2019-08-05 2022-03-29 Visa International Service Association Cryptographically secure dynamic third party resources
CN112688979B (zh) * 2019-10-17 2022-08-16 阿波罗智能技术(北京)有限公司 无人车远程登录处理方法、装置、设备及存储介质
CN113064948B (zh) * 2021-04-29 2022-10-04 济南慧天云海信息技术有限公司 一种高效安全的数据服务发布方法
KR102484665B1 (ko) 2021-06-17 2023-01-06 주식회사 마이지놈박스 유전체 분석 결과를 플랫폼 기반으로 제공하기 위한 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242685A1 (en) * 2002-09-23 2006-10-26 Credant Technologies, Inc. System and method for distribution of security policies for mobile devices
US20120129503A1 (en) * 2010-11-19 2012-05-24 MobileIron, Inc. Management of Mobile Applications
WO2014062395A1 (en) * 2012-10-15 2014-04-24 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3626491B1 (ja) * 2003-12-26 2005-03-09 株式会社ドワンゴ メッセンジャーサービスシステムおよびその制御方法、ならびにメッセンジャーサーバおよびその制御プログラム
US20060036838A1 (en) * 2004-08-10 2006-02-16 Salcedo David M Security system network interface and security system incorporating the same
JP4722519B2 (ja) * 2005-03-25 2011-07-13 株式会社日立製作所 計算機システム及びストレージサーバ、検索サーバ、端末装置並びに検索方法
US20090320088A1 (en) * 2005-05-23 2009-12-24 Jasvir Singh Gill Access enforcer
CA2556464C (en) 2006-08-18 2012-04-17 Diversinet Corp. A method for device auto-detection and classification
CA2571666A1 (en) 2006-12-12 2008-06-12 Diversinet Corp. Secure identity and personal information storage and transfer
CA2590989C (en) 2007-06-05 2014-02-11 Diversinet Corp. Protocol and method for client-server mutual authentication using event-based otp
CA2694500C (en) 2010-02-24 2015-07-07 Diversinet Corp. Method and system for secure communication
CA2697687C (en) 2010-03-24 2014-02-18 Diversinet Corp. Method and system for secure communication using hash-based message authentication codes
EP2909777B1 (en) * 2012-10-19 2018-03-07 McAfee, LLC Data loss prevention for mobile computing devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242685A1 (en) * 2002-09-23 2006-10-26 Credant Technologies, Inc. System and method for distribution of security policies for mobile devices
US20120129503A1 (en) * 2010-11-19 2012-05-24 MobileIron, Inc. Management of Mobile Applications
WO2014062395A1 (en) * 2012-10-15 2014-04-24 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102532269B1 (ko) * 2022-04-05 2023-05-11 이준희 디지털트윈을 기반으로 하는 설비제어 시뮬레이션 시스템 및 이를 이용한 교육 컨텐츠 제공 방법

Also Published As

Publication number Publication date
JP2015213319A (ja) 2015-11-26
JP6600156B2 (ja) 2019-10-30
CN105095786A (zh) 2015-11-25
CN105095786B (zh) 2019-08-16
KR102111180B1 (ko) 2020-06-09
US9792458B2 (en) 2017-10-17
US20150317493A1 (en) 2015-11-05
EP2942729A1 (en) 2015-11-11
EP2942729B1 (en) 2021-08-04

Similar Documents

Publication Publication Date Title
KR102111180B1 (ko) 동적 프리젠테이션과 데이터 구성을 사용하여 보안 모바일 협력 애플리케이션을 구축하기 위한 플랫폼
US10972290B2 (en) User authentication with self-signed certificate and identity verification
CN108369622B (zh) 软件容器注册表服务
US9781098B2 (en) Generic server framework for device authentication and management and a generic framework for endpoint command dispatch
US8539231B1 (en) Encryption key management
US10587697B2 (en) Application-specific session authentication
US10911426B2 (en) Custom authenticator for enterprise web application
US11902268B2 (en) Secure gateway onboarding via mobile devices for internet of things device management
US8848922B1 (en) Distributed encryption key management
US11645377B1 (en) Online authentication and security management using device-based identification
JP2011215753A (ja) 認証システムおよび認証方法
US20190090102A1 (en) Message-based management service enrollment
Buecker et al. Enterprise Single Sign-On Design Guide Using IBM Security Access Manager for Enterprise Single Sign-On 8.2
US10049222B1 (en) Establishing application trust levels using taint propagation
JP2021152975A (ja) 情報処理装置、制御方法、およびプログラム
EP3739836A1 (en) Secure transmission of data to systems using scannable codes
Behan Open Personal Identity as a Service
Familiar et al. Security and Identity

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right