US20140351832A1 - Electronic device using framework interface for communication - Google Patents

Electronic device using framework interface for communication Download PDF

Info

Publication number
US20140351832A1
US20140351832A1 US14/281,355 US201414281355A US2014351832A1 US 20140351832 A1 US20140351832 A1 US 20140351832A1 US 201414281355 A US201414281355 A US 201414281355A US 2014351832 A1 US2014351832 A1 US 2014351832A1
Authority
US
United States
Prior art keywords
electronic device
service
layer
peer
data
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US14/281,355
Inventor
Ki-Soo Cho
Aravind Iyer
Mahesh ANJANAPPA
Ranjeet Kumar Patro
Prasad Tirumala Sree Hari Vara VADLAPUDI
Suck-Ho Seo
In-Hyuk Choi
Il-Sung HONG
Abhijit C. PATHAK
Amit PRABHUDESAI
Ashok SUBASH
Ravindra Balkrishna SHET
Dong-Hyoun SON
Byeong-Ho SHIM
Ji-Ryang CHUNG
Kangli HAO
Madhavan VASUDEVAN
Mahesh Malagouda PATIL
M.S.S.K. Sharma
Ranjitsinh Udaysinh Wable
Shekhar Anantha AMBEKAR
Subba Reddy Venkata KOTA
Raghavendra Vaddarahalli RAMEGOWDA
Varunjith Therath KAINOTH
Vishwanath BALEKUDIGE GOPALKRISHNA
Nam-Kun KIM
Young-Ju Kim
Jeong-Mi Kim
Chang-Sik Kim
Hyeong-Geun Kim
Shashanka DASARI
Gyu-Seok SHIM
Won-Geun SHIM
Anil Agiwal
Jin-Hyuk Lee
Sang-hyun Han
In-Hyup HWANG
Ji-Young Hwang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority to US201361825702P priority Critical
Priority to US201361870428P priority
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to US14/281,355 priority patent/US20140351832A1/en
Assigned to SAMSUNG ELECTRONICS CO., LTD. reassignment SAMSUNG ELECTRONICS CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHO, KI-SOO, CHOI, IN-HYUK, CHUNG, Ji-Ryang, DASARI, Shashanka, HAN, SANG-HYUN, HAO, Kangli, Hong, Il-Sung, HWANG, In-Hyup, HWANG, JI-YOUNG, KIM, CHANG-SIK, KIM, HYEONG-GEUN, KIM, JEONG-MI, KIM, Nam-Kun, KIM, YOUNG-JU, LEE, JIN-HYUK, SEO, SUCK-HO, SHIM, Byeong-Ho, SHIM, Gyu-Seok, SHIM, Won-Geun, SON, Dong-Hyoun, SUBASH, Ashok, AGIWAL, ANIL, AMBEKAR, Shekhar Anantha, ANJANAPPA, Mahesh, BALEKUDIGE GOPALKRISHNA, Vishwanath, IYER, ARAVIND, KAINOTH, Varunjith Therath, KOTA, Subba Reddy Venkata, PATHAK, Abhijit C., PATIL, Mahesh Malagouda, PATRO, RANJEET KUMAR, PRABHUDESAI, Amit, RAMEGOWDA, Raghavendra Vaddarahalli, SHARMA, M.s.s.k., SHET, Ravindra Balkrishna, VADLAPUDI, Prasad Tirumala Sree Hari Vara, VASUDEVAN, Madhavan, WABLE, RANJITSINH UDAYSINH
Publication of US20140351832A1 publication Critical patent/US20140351832A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/14Network-specific arrangements or communication protocols supporting networked applications for session management
    • H04L67/141Network-specific arrangements or communication protocols supporting networked applications for session management provided for setup of an application session
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements or protocols for real-time communications
    • H04L65/10Signalling, control or architecture
    • H04L65/1066Session control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements or protocols for real-time communications
    • H04L65/10Signalling, control or architecture
    • H04L65/1066Session control
    • H04L65/1069Setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements or protocols for real-time communications
    • H04L65/80QoS aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/18Multi-protocol handler, e.g. single device capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks
    • H04L69/321Aspects of inter-layer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals

Abstract

An apparatus and method for providing one or more protocols for one or more electronic devices are provided. The method includes establishing, by an electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more physical channels with an external electronic device, using one or more communication modules, executing, by the electronic device, two or more application programs to interface with the framework interface, and communicating, via the framework interface, data from the two or more application programs through the one or more physical channels to the external electronic device, using at least one logical channel or session for a respective one of the two or more application programs.

Description

    CROSS-REFERENCE TO RELATED APPLICATION(S)
  • This application claims the benefit under 35 U.S.C. §119(e) of a U.S. Provisional application filed on May 21, 2013 in the U.S. Patent and Trademark Office and assigned Ser. No. 61/825,702, and a U.S. Provisional application filed on Aug. 27, 2013 in the U.S. Patent and Trademark Office and assigned Ser. No. 61/870,428, the entire disclosure of each of which is hereby incorporated by reference.
  • This application is also related to a U.S. patent application Ser. No. 14/281,206 filed on May 19, 2014 and titled “ELECTRONIC DEVICE USING LOGICAL CHANNELS FOR COMMUNICATION”, the entire disclosure of which is hereby incorporated herein by reference.
  • TECHNICAL FIELD
  • The present disclosure generally relates to one or more electronic devices, and more particularly to one or more electronic devices using one or more protocols.
  • BACKGROUND
  • Mobile terminals are developed to provide wireless communication between users. As technology has advanced, mobile terminals now provide many additional features beyond simple telephone conversation. For example, mobile terminals are now able to provide additional functions such as an alarm, a Short Messaging Service (SMS), a Multimedia Message Service (MMS), E-mail, games, remote control of short range communication, an image capturing function using a mounted digital camera, a multimedia function for providing audio and video content, a scheduling function, and many more.
  • With the plurality of features now provided, a mobile terminal has effectively become a necessity of daily life. Accordingly, there are efforts to develop an apparatus and method for providing improved functionalities for a mobile terminal.
  • SUMMARY
  • Aspects of the present disclosure are to address at least the above-mentioned problems and/or disadvantages and to provide at least the advantages described below. Accordingly, an aspect of the present disclosure is to provide an apparatus and method for using one or more protocols for one or more electronic devices.
  • In accordance with an aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by at least one processor of the electronic device, an application program to interface with a framework interface, routing, by the framework interface, data between the application program and one or more communication modules, wherein each of the one or more communication modules is configured to operate according to a selected one or more communication protocols, wherein the framework interface is configured to select at least one of the one or more communication modules for at least part of the data, and communicating, by the one or more communication modules, the data with one or more external electronic devices.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules, wherein each of the one or more communication modules is configured to communicate with one or more external electronic devices based on one or more communication protocols, and at least one processor configured to execute an application program to interface with a framework interface, route data between the application program and the one or more communication modules, wherein the framework interface is configured to select at least one of the one or more communication modules for at least part of the data, and control the one or more communication modules to communicate the data with the one or more external electronic devices based on a selected one or more communication protocols.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to communicate with one or more external electronic devices, based on one or more communication protocols, and at least one processor configured to provide a framework interface configured to interface with an application program to be downloaded from outside the electronic device, wherein the framework interface is configured to route data to/from the one or more communication modules, and control the one or more communication modules to communicate the data with the one or more external electronic devices, based on a selected one or more communication protocols.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by an electronic device, one or more physical channels with an external electronic device, using one or more communication protocols, and communicating, by the electronic device, data with the external electronic device via one or more logical channels or sessions, using the one or more physical channels, wherein the one or more logical channels or sessions are independent of the one or more communication protocols.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more physical channels with an external device, using one or more communication protocols, and at least one processor configured to control the one or more communication modules to establish the one or more physical channels with the external electronic device, and control the one or more communication modules to communicate data with the external device via one or more logical channels or sessions, using the one or more physical channels, wherein the one or more logical channels or sessions are independent of the one or more communication protocols.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by an electronic device configured to provide a framework interface, one or more physical communication channels with an external electronic device, executing, by the electronic device, an application program to interface with the framework interface, receiving, by the framework interface, information on at least one of one or more logical channels or sessions, using the one or more physical communication channels, changing, by the framework interface, at least one of the one or more logical channels or sessions, based at least in part on the received information, and communicating data from the application program using the changed at least one of the one or more logical channels or sessions over the one or more physical communication channels.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more physical communication channels with an external device, and at least one processor configured to operatively communicate with the external electronic device on one or more logical channels or sessions, using the one or more physical communication channels, execute an application program to interface with a framework interface, wherein the framework interface is configured to receive information on at least one of the one or more logical channels or sessions, using the one or more physical channels, change at least one of the one or more logical channels or sessions based at least in part on the received information, and operatively communicate data from the application program using the changed at least one of the one or more logical channels or sessions over the one or more physical communication channels.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes receiving, by the framework interface, an indication of requirements for data transmission, for an application program of an electronic device, establishing, by the framework interface, one or more physical communication channels between the electronic device and an external electronic device, configuring, by the framework interface, one or more logical channels over which data from the application program is to be communicated between the electronic device and the external electronic device according to the indication of requirements for data transmission, and communicating data, by the framework interface, from the application program over the one or more configured logical channels using the one or more physical communication channels.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more physical communication channels with an external device, and at least one processor configured to operatively communicate with the external electronic device, on one or more logical channels, using the one or more physical communication channels, and execute an application program to interface with a framework interface, wherein the framework interface is configured to receive an indication of requirements for data transmission for the application program, establish one or more physical communication channels between the electronic device and an external electronic device, configure one or more logical channels over which data from the application program is to be communicated between the electronic device and the external electronic devices according to the indication of requirements for data transmission, and operatively communicate data from the application program over the one or more configured logical channels using the one or more physical communication channels.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by an electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more physical channels with an external electronic device, using one or more communication modules, executing, by the electronic device, two or more application programs to interface with the framework interface, and communicating, via the framework interface, data from the two or more application programs through the one or more physical channels to the external electronic device, using at least one logical channel or session for a respective one of the two or more application programs, wherein communicating the data comprises providing, by the framework interface, a data packet including a payload, to the communication module, and wherein the payload includes first data from one of the two or more application programs, and second data from another of the two or more application programs.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more physical channels with an external electronic device, and at least one processor configured to control the one or more communication modules to establish the one or more physical channels with the external electronic device, execute two or more application programs to interface with a framework interface provided by the electronic device, and control the framework interface to communicate data from the two or more application programs through the one or more physical channels to the external electronic device, using at least one logical channel or session for a respective one of the two or more application programs, wherein the framework interface provides a data packet including a payload, to the one or more communication modules, and wherein the payload includes first data from one of the two or more application programs, and second data from another one of the two or more application programs.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by the electronic device, one or more communication channels with an external electronic device, and requesting, by the electronic device, the external electronic device to communicate one or more profile identifiers (IDs) to the electronic device, using at least one of the one or more communication channels, wherein each of the one or more profile IDs is associated with one or more service capabilities supported by a respective one of one or more application programs supported by the external electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels, and at least one processor configured to operatively communicate with an external electronic device, using at least one of the one or more communication channels, and send the external electronic device a request for the external electronic device to provide one or more profile identifiers (IDs) to the electronic device, using the at least one of the one or more communication channels, wherein each of the one or more profile IDs is associated with one or more service capabilities supported by a respective one of one or more application programs supported by the external electronic device.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by the electronic device configured to run one or more application programs, one or more communication channels with an external electronic device, and receiving, by the electronic device, a request from the external electronic device to provide one or more profile identifiers (IDs) to the external electronic device, using at least one of the one or more communication channels, wherein each of the profile IDs is associated with one or more service capabilities supported by a respective one of the one or more application programs.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels, a memory configured to store one or more application programs, and at least one processor configured to operatively communicate with an external electronic device, using at least one of the one or more communication channels, and operatively receive, from the external electronic device, a request to provide one or more profile identifiers (IDs) to the external electronic device, using the at least one of the one or more communication channels, wherein each of the profile IDs is associated with one or more service capabilities supported by a respective one of the application programs.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by the electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more application programs, and registering, by at least one of the one or more application programs, a service capability thereof with the framework interface.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes a memory configured to store one or more application programs, and a framework interface, and at least one processor configured to execute at least one of the one or more application programs, wherein at least one of the one or more application programs, a service capability thereof with the framework interface.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by the electronic device, one or more communication channels with an external electronic device, communicating, by the electronic device, to the external electronic device, an inquiry on a capability of the external electronic device, and communicating, by the electronic device, to the external electronic device, an indication of a type of the inquiry.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, and at least one processor configured to operatively communicate with the external electronic device, using the one or more communication channels, operatively communicate, to the external electronic device, an inquiry on a capability of the external electronic device, and operatively communicate, to the external electronic device, an indication of a type of the inquiry.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by the electronic device, one or more communication channels with an external electronic device, and communicating, by the electronic device, to the external electronic device, information associated with one or more of services, function, or capabilities of the electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, and at least one processor configured to communicate with the external electronic device using the one or more communication channels, and operatively communicate, to the external electronic device, information associated with one or more of services, function, or capabilities of the electronic device.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by the electronic device, one or more communication channels with an external electronic device, communicating, by the electronic device, to the external electronic device, an inquiry on a capability of the external electronic device, and communicating, by the electronic device, to the external electronic device, an indication as to whether the inquiry is a query according to which the external electronic device is required to report on a current capability of the external electronic device, or a query according to which the external electronic device is required to report on a current capability of the external electronic device and to report on a change to the current capability of the external electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, and at least one processor configured to communicate with the external electronic device using the one or more communication channels, and communicate, to the external electronic device, an indication as to whether the inquiry is a query according to which the external electronic device is required to report on a current capability of the external electronic device, or a query according to which the external electronic device is required to report on a current capability of the external electronic device and to report on a change to the current capability of the external electronic device.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by the electronic device, one or more communication channels with an external electronic device, and communicating, by the electronic device, to the external electronic device, in response to receiving a request from the external electronic device, capability information that is configured to identify one or more application programs residing on the electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, and at least one processor configured to operatively communicate with the external electronic device, using the one or more communication channels, and operatively communicate, in response to receiving a request from the external electronic device, capability information that is configured to identify one or more application programs residing on the electronic device.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by the electronic device, one or more communication channels with a first external electronic device and a second external electronic device, communicating, by the electronic device, to the first external electronic device, a request for information on a change of capability of the first external electronic device, and communicating, by the electronic device, to the second external electronic device, a request for information on a change of capability of the second external electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, and at least one processor configured to operatively communicate, to the first external electronic device, a request for information on a change of capability of the first external electronic device, and operatively communicate, to the second external electronic device, a request for information on a change of capability of the second external electronic device.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by an electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more application programs, receiving, by the framework interface, a service capability inquiry from at least one of the one or more application programs, wherein the service capability inquiry includes a service capability query filter, and communicating, by the framework interface, one or more service capability records matching the service capability inquiry, to the at least one of the one or more application programs, if one or more service capability records match the service capability inquiry.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes a memory configured to store one or more application programs, and a framework interface, and at least one processor configured to execute the one or more application programs to interface with the framework interface, wherein the one or more application programs are configured to communicate, to the framework interface, a service capability including a service capability query filter, and receive, from the framework interface, one or more service capability records matching the capability inquiry, and wherein the framework interface is configured to receive, from at least one of the one or more application programs, the service capability including the service capability query filter, and communicate, to the at least one of the one or more programs, the one or more service capability records matching the service capability inquiry, if one or more service capability records match the service capability inquiry.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by an electronic device including an operating system stored in a memory, one or more application programs on a framework interface that is configured to interface with the operating system, establishing, by the electronic device, one or more communication channels with an external electronic device, communicating, by the electronic device, data from the one or more application programs with the external electronic device using the one or more communication channels, and determining, by the framework interface of the electronic device, whether at least one of the one or more application programs stops running, at least partly in response to a function of the operating system.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, a memory configured to store an operating system, and at least one processor configured to communicate data with the external electronic device using the one or more communication modules, and execute one or more application programs on a framework interface that is configured to interface with the operating system, wherein the framework interface is configured to determine whether the one or more application programs stops running, at least partly in response to a function of the operating system.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by an electronic device configured to provide an operating system and a framework interface by executing instructions stored in a memory, one or more application programs on the framework interface, wherein the framework interface is configured to interface with the operating system, establishing, by electronic device, one or more communication channels with an external electronic device, communicating, by the electronic device, data from the one or more application programs with an external electronic device using the one or more communication channels, and monitoring, by the framework interface, at least one of a status of the one or more communication channels or a status of a process of the operating system.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, a memory configured to store an operating system and a framework interface, and at least one processor configured to communicate data with the external electronic device using at least one of the one or more communication modules, and execute one or more application programs on the framework interface, wherein the framework interface is configured to interface with an operating system, and wherein the framework interface is configured to monitor at least one of a status of the one or more communication channels or a status of a process of the operating system.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by an electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more application programs on the framework interface, establishing, by one or more communication modules of the electronic device, one or more communication channels with an external electronic device, communicating, by the one or more communication modules of the electronic device, data with the external electronic device via at least one of the one or more communication channels, and selecting, by the framework interface, a subset of all features available in the framework interface for communicating the data according to at least one of feature capability of the electronic device or feature capability of the external electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, a memory configured to store a framework interface, and at least one processor configured to communicate data with the external electronic device, using at least one of the one or more communication channels, and execute one or more application programs on a framework interface, wherein the framework interface is configured to select a subset of all features available in the framework interface for communicating the data according to at least one of feature capability of the electronic device or feature capability of the external electronic device.
  • In accordance with another aspect of the present disclosure, a system of one or more electronic devices for using one or more protocols is provided. The system includes a first electronic device and a second electronic device, wherein the first electronic device and the second electronic device communicate with each other to determine a common minimum set of features, wherein each of the first electronic device and the second electronic device respectively comprises, one or more communication modules configured to establish one or more communication channels with a respective one of the first electronic device or the second electronic device, a memory configured to store a framework interface, and at least one processor configured to communicate with the respective one of the first electronic device or the second electronic device using the one or more communication channels, and execute one or more application programs on a framework interface, and wherein the framework interface is configured to select a subset of all features available in the framework interface for communicating the data according to feature capability of the first electronic device or feature capability of the second electronic device.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by an electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more communication channels with the external electronic device, based on one or more communication protocols, and executing, by the electronic device, one or more application programs to interface with the framework interface, wherein the framework interface is configured to communicate information on a version of the framework interface with the external electronic device during discovery of the external electronic device.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by an electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more communication channels with an external electronic device, based on one or more communication protocols, and executing, by the electronic device, one or more application programs to interface with the framework interface, wherein the framework interface is configured to transmit a message for determining compatibility to the external electronic device, and wherein the message includes information relating to a version.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes establishing, by an electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more communication channels with an external electronic device, based on one or more communication protocols, and executing, by the electronic device, one or more application programs to interface with the framework interface, wherein the framework interface is configured to provide a header according to a frame format to at least one message transmitted to the external electronic device, and, wherein the header includes a version that indicates the frame format which the framework interface uses to determine frame format compatibility.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device based on one or more communication protocols, a memory configured to store a framework interface, and at least one processor configured to control the one or more communication modules to establish the one or more communication channels with the external electronic device, and execute one or more application programs that interface with the framework interface, wherein the framework interface is configured to communicate information on a version of the framework interface with the external electronic device during discovery of the external electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device based on one or more communication protocols, a memory configured to store a framework interface, and at least one processor configured to control the one or more communication modules to establish the one or more communication channels with the external electronic device, and execute one or more application programs that interface with the framework interface, wherein the framework interface is configured to provide a header according to a frame format to at least one message transmitted to the external electronic device, and wherein the header includes a version that indicates the frame format which the framework interface uses to determine frame format compatibility.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, based on one or more communication protocols, a memory configured to store a framework interface, and at least one processor configured to control the one or more communication modules to establish the one or more communication channels with the external electronic device, and execute one or more application programs that interface with a framework interface, wherein the framework interface is configured to transmit a message for determining compatibility to the external electronic device, and wherein the message includes information relating to a version.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device based on one or more communication protocols, a memory configured to store a framework interface, and at least one processor configured to control the one or more communication modules to establish the one or more communication channels with the external electronic device, and execute one or more application programs that interface with a framework interface, wherein the framework interface is configured to provide a header according to a frame format to at least one message transmitted to the external electronic device, and wherein the header includes a version that indicates the frame format which the framework interface uses to determine frame format compatibility.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by at least one processor of the electronic device, a framework interface and an application program that interfaces with the framework interface, routing, by the framework interface, data between the application program and one or more communication modules that communicate with an external electronic device based on one or more communication protocols, and communicating, by the one or more communication modules, the data with the external electronic device, wherein the framework interface comprises a session layer configured to receive information from the application program and to manage one or more logical channels or sessions used for communicating the data with the external electronic device, based at least partly on the information from the application program.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by at least one processor of the electronic device, a framework interface and an application program that interfaces with the framework interface, routing, by the at least one processor, data through the framework interface between the application program and one or more communication modules that operate based on one or more communication protocols, and communicating, by the one or more communication modules, the data with an external electronic device, wherein the framework interface comprises a session layer, and a transport layer configured to receive, via the session layer, information from the application program relating to Quality of Service (QoS) of one or more logical channels or sessions used for communicating data with the external device, and adapt a respective one of the one or more logical channels or sessions according to the information received from the application program relating to QoS.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by at least one processor of the electronic device, a framework interface and an application program that interfaces with the framework interface, routing, by the at least one processor, data through the framework interface between the application program and one or more communication modules that communicate based on one or more communication protocols, and communicating, by the one or more communication modules, the data with an external electronic device, wherein the framework interface comprises a transport layer, and a connection layer configured to receive data from the transport layer, add, to a data unit received from the transport layer, a field for confirming that the data is communicated to the external electronic device according to a preset minimum data integrity, and add, to a data unit received from the transport layer, a length field that is indicative of a number of bytes constituting the data unit.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by at least one processor of the electronic device, an application program providing one or more services, and communicating, by one or more communication modules configured to communicate with an external electronic device based on one or more communication protocols, data between the application program and the external electronic device, wherein the application program includes one or more service agents, and wherein each of the one or more service agents is assigned to handle data for one of the one or more services provided by the application program.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to communicate data with an external electronic device based on one or more communication protocols, a memory configured to store a framework interface, and at least one processor configured to execute a framework interface and an application program that interfaces with the framework interface, wherein the framework interface routes the data between the application program and the one or more communication modules, and wherein the framework interface comprises a session layer configured to receive information from the application program and to manage one or more logical channels or sessions used for communicating the data with the external electronic device, based at least partly on the information from the application program.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to communicate data with an external electronic device based on one or more communication protocols, a memory configured to store a framework interface, and at least one processor configured to execute a framework interface and an application program that interfaces with the framework interface, and route the data through the framework interface between the application program and the one or more communication modules, wherein the framework interface comprises a session layer, and a transport layer configured to receive, via a session layer, information from the application program relating to Quality of Service (QoS) of one or more logical channels or sessions used for communicating data with the external device, and change a respective one of the one or more logical channels or sessions according to the information received from the application program relating to QoS.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to communicate data with an external electronic device based on one or more communication protocols, a memory configured to store a framework interface, and at least one processor configured to execute a framework interface and an application program that interfaces with the framework interface, route the data through the framework interface between the application program and the one or more communication modules, wherein the framework interface comprises a transport layer, and a connection layer configured to receive data from a transport layer, add, to a data unit received from the transport layer, a field for confirming that the data is communicated to the external electronic device according to a preset minimum data integrity, and add, to a data unit received from the transport layer, a length field that is indicative of a number of bytes constituting the data unit.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to communicate data with an external electronic device based on one or more communication protocols, a memory configured to store a framework interface, and at least one processor configured to execute an application program providing one or more services, wherein the application program includes one or more service agents, and wherein each of the one or more service agents is assigned to handle data for one of the one or more services provided by the application program.
  • In accordance with another aspect of the present disclosure, a method for using one or more protocols for one or more electronic devices is provided. The method includes executing, by an electronic device configured to provide a framework interface by executing instructions stored in a memory, one or more application programs, establishing, by the electronic device, one or more communication channels with an external electronic device, and routing, by the electronic device, data from the one or more application programs via the framework interface to the external electronic device, wherein the one or more application programs support one or more services, wherein the one or more services comprise one or more service objectives, and wherein the one or more application programs provide the one or more services objectives by communicating one or more application messages with the external electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes one or more communication modules configured to establish one or more communication channels with an external electronic device, a memory configured to store a framework interface, and at least one processor configured to execute one or more application programs, wherein the framework interface is configured to route data from the one or more application programs to the external electronic device, wherein the one or more services comprise one or more service objectives, and wherein the one or more application programs provides the one or more services objectives by communicating one or more application messages with the external electronic device.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes a portable electronic housing, one or more communication modules housed in the housing, the communication modules being configured to communicate with an external electronic device, based on one or more communication protocols, wherein the communication modules include one or more of a Universal Serial Bus (USB) module, a Universal Asynchronous Receiver/Transmitter (UART) module, a ZigBee module, an Ultra-WideBand (UWB) module, Radio Frequency IDentification (RFID) module, infrared module, a Bluetooth module, a Bluetooth Low Energy (BLE) module, a WiFi module, a Near Field Communication (NFC) module, or a cellular communication module, a touch screen display housed at last partly in the housing, a battery housed in the housing, a memory housed in the housing, the memory storing an operating system and a media player software program, an application processor housed in the housing, the application processor being configured to run the operating system, wherein the memory further stores instructions that, when executed, cause the application processor to provide a framework interface configured to interface between the operating system and the media player software program, route media data between the media player software program and one or more of the one or more communication modules, and select at least one of the communication modules for communicating at least part of the media data with the external electronic device, independently of the media player software program.
  • In accordance with another aspect of the present disclosure, an electronic device for using one or more protocols is provided. The electronic device includes a portable electronic housing, one or more communication modules housed in the housing, the communication modules being configured to communicate with an external electronic device, based on one or more communication protocols, wherein the communication modules include one or more of a Universal Serial Bus (USB) module, a Universal Asynchronous Receiver/Transmitter (UART) module, a ZigBee module, an Ultra-WideBand (UWB) module, Radio Frequency IDentification (RFID) module, infrared module, a Bluetooth module, a Bluetooth Low Energy (BLE) module, a WiFi module, a Near Field Communication (NFC) module, or a cellular communication module, a touch screen display housed at last partly in the housing, a battery housed in the housing, a memory housed in the housing, the memory storing an operating system and a dialer software program, and an application processor housed in the housing, the application processor being configured to run the operating system, wherein the memory further stores instructions that, when executed, cause the application processor to provide a framework interface configured to interface between the operating system and the dialer software program, route notification data between the dialer software program and one or more of the one or more communication modules, and select at least one of the communication modules for communicating at least part of the notification data with the external electronic device, independently of the dialer software program.
  • Other aspects, advantages, and salient features of the disclosure will become apparent to those skilled in the art from the following detailed description, which, taken in conjunction with the annexed drawings, discloses various embodiments of the disclosure.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The above and other aspects, features, and advantages of various embodiments of the present disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
  • FIG. 1 illustrates a network environment including an electronic device according to an embodiment of the present disclosure;
  • FIG. 2 illustrates a block diagram of an electronic device according to an embodiment of the present disclosure;
  • FIG. 3 illustrates a block diagram of a programming module according to an embodiment of the present disclosure;
  • FIG. 4 illustrates a block diagram of a layered framework architecture according to an embodiment of the present disclosure;
  • FIG. 5 illustrates a system of electronic devices communicating according to an embodiment of the present disclosure;
  • FIG. 6 illustrates communication between electronic devices according to an embodiment of the present disclosure;
  • FIG. 7 illustrates a configuration of an electronic device according to an embodiment of the present disclosure;
  • FIG. 8 illustrates a configuration of an electronic device according to an embodiment of the present disclosure;
  • FIG. 9 illustrates an overall architecture of an accessory protocol according to an embodiment of the present disclosure;
  • FIG. 10 illustrates an overall sequence of operations for carrying out an accessory protocol according to an embodiment of the present disclosure;
  • FIG. 11 illustrates an overall sequence of operations for carrying out an accessory protocol according to an embodiment of the present disclosure;
  • FIG. 12 illustrates communication between electronic devices according to an embodiment of the present disclosure;
  • FIG. 13 illustrates communication between electronic devices according to an embodiment of the present disclosure;
  • FIG. 14 illustrates a configuration of an application layer in relation to a network layer according to an embodiment of the present disclosure;
  • FIG. 15 illustrates a configuration of an application layer according to an embodiment of the present disclosure;
  • FIG. 16 illustrates a structure of a message according to an application protocol according to an embodiment of the present disclosure;
  • FIG. 17 illustrates a structure of a message according to an application protocol according to an embodiment of the present disclosure;
  • FIG. 18 illustrates an addressing of a service agent according to an embodiment of the present disclosure;
  • FIG. 19 illustrates configuration of a first electronic device and a second electronic device for communication therebetween according to an embodiment of the present disclosure;
  • FIG. 20 illustrates a method of communication between a first electronic device and a second electronic device according to an embodiment of the present disclosure;
  • FIG. 21 illustrates a signaling diagram for a service discovery according to an embodiment of the present disclosure;
  • FIG. 22 illustrates a signaling diagram for establishing a service connection according to an embodiment of the present disclosure;
  • FIG. 23 illustrates a service connection and communicating using an application protocol according to an embodiment of the present disclosure;
  • FIG. 24 illustrates a procedure for establishing a service connection according to an embodiment of the present disclosure;
  • FIG. 25 illustrates a service connection according to an embodiment of the present disclosure;
  • FIG. 26 illustrates a communication between service agents according to an embodiment of the present disclosure;
  • FIG. 27 illustrates communication of a message according to an embodiment of the present disclosure;
  • FIG. 28 illustrates a termination of communication between service agents according to an embodiment of the present disclosure;
  • FIG. 29 illustrates a message exchange between service agents according to an embodiment of the present disclosure;
  • FIG. 30 illustrates a message exchange between service agents according to an embodiment of the present disclosure;
  • FIG. 31 illustrates a message exchange between service agents according to an embodiment of the present disclosure;
  • FIG. 32 illustrates a message exchange between service agents according to an embodiment of the present disclosure;
  • FIG. 33 illustrates a message exchange between service agents according to an embodiment of the present disclosure;
  • FIG. 34 illustrates a message exchange between service agents according to an embodiment of the present disclosure;
  • FIG. 35 illustrates a state diagram of registration of an application layer entity according to an embodiment of the present disclosure;
  • FIG. 36 illustrates a state diagram of a capability query according to an embodiment of the present disclosure;
  • FIG. 37 illustrates a state diagram of an application layer entity according to an embodiment of the present disclosure;
  • FIG. 38 illustrates a state diagram of a capability discovery layer according to an embodiment of the present disclosure;
  • FIG. 39 illustrates a signaling diagram for a service discovery according to an embodiment of the present disclosure;
  • FIG. 40 illustrates a capability exchange procedure according to an embodiment of the present disclosure;
  • FIG. 41 illustrates a capability exchange procedure according to an embodiment of the present disclosure;
  • FIG. 42 illustrates a state diagram of a device management entity according to an embodiment of the present disclosure;
  • FIG. 43 illustrates a state diagram for connectivity of an electronic device according to an embodiment of the present disclosure;
  • FIG. 44 illustrates a state diagram for connectivity of an electronic device according to an embodiment of the present disclosure;
  • FIG. 45 illustrates a message sequence chart illustrating electronic device addition according to an embodiment of the present disclosure;
  • FIG. 46 illustrates a message sequence chart illustrating electronic device deletion according to an embodiment of the present disclosure;
  • FIG. 47 illustrates a message sequence chart illustrating a success scenario related to service connection according to an embodiment of the present disclosure;
  • FIG. 48 illustrates a message sequence chart illustrating a failure scenario related to a service connection where there is a non-existent remote service agent according to an embodiment of the present disclosure;
  • FIG. 49 illustrates a message sequence chart illustrating a failure scenario related to rejection of a service connection by a remote service agent according to an embodiment of the present disclosure;
  • FIG. 50 illustrates a message sequence chart illustrating service connection termination according to an embodiment of the present disclosure;
  • FIG. 51 illustrates a message sequence chart illustrating service connection termination according to an embodiment of the present disclosure;
  • FIG. 52 illustrates a data flow through network protocol layers according to an embodiment of the present disclosure;
  • FIG. 53 illustrates packet loading according to an embodiment of the present disclosure;
  • FIG. 54 illustrates a priority queuing scheduler of the transport layer according to an embodiment of the present disclosure;
  • FIG. 55 illustrates buffer management by the transport layer according to an embodiment of the present disclosure;
  • FIG. 56 illustrates a structure of a transport layer frame according to an embodiment of the present disclosure;
  • FIG. 57 illustrates a structure of a header of a transport layer frame according to an embodiment of the present disclosure;
  • FIG. 58 illustrates a structure of a payload of a transport layer frame according to an embodiment of the present disclosure;
  • FIG. 59 illustrates a structure of a first data frame format supported by a transport layer according to an embodiment of the present disclosure;
  • FIG. 60 illustrates a structure of a second data frame format supported by a transport layer according to an embodiment of the present disclosure;
  • FIG. 61 illustrates a structure of a control frame format supported by a transport layer according to an embodiment of the present disclosure;
  • FIG. 62 illustrates a structure of a control payload supported by a transport layer according to an embodiment of the present disclosure;
  • FIG. 63 illustrates a frame structure of a message in an application, session, transport, and connection layers according to an embodiment of the present disclosure;
  • FIG. 64 illustrates an overview of a generic frame structure for a transport frame according to an embodiment of the present disclosure;
  • FIG. 65 illustrates an overall frame structure for a transport frame according to an embodiment of the present disclosure;
  • FIG. 66 illustrates a transport layer data frame structure for a create service connection request according to an embodiment of the present disclosure;
  • FIG. 67 illustrates a transport layer data frame structure for a create service connection response according to an embodiment of the present disclosure;
  • FIG. 68 illustrates a transport layer data frame structure for a terminate service connection request according to an embodiment of the present disclosure;
  • FIG. 69 illustrates a transport layer data frame structure for a terminate service connection response according to an embodiment of the present disclosure;
  • FIG. 70 illustrates a transport layer data frame structure for sending data according to an embodiment of the present disclosure;
  • FIG. 71 illustrates parameters for message type, fragmentation, and sequence number fields of the transport layer data frame structures of FIGS. 66 to 70 according to an embodiment of the present disclosure;
  • FIG. 72 illustrates a transport layer control frame structure for immediate acknowledgment according to an embodiment of the present disclosure;
  • FIG. 73 illustrates a transport layer control frame structure for block acknowledgment according to an embodiment of the present disclosure;
  • FIG. 74 illustrates a transport layer control frame structure for selective negative acknowledgment according to an embodiment of the present disclosure;
  • FIG. 75 illustrates parameters for message type, fragmentation, and sequence number fields of the transport layer control frame structures of FIGS. 72 to 74 according to an embodiment of the present disclosure;
  • FIG. 76 illustrates a message sequence chart for a scenario of no-ACK with successful data transmission according to an embodiment of the present disclosure;
  • FIG. 77 illustrates a message sequence chart for a scenario where a session layer passes a TSDU with invalid parameters according to an embodiment of the present disclosure;
  • FIG. 78 illustrates a message sequence chart for a scenario for immediate ACK with successful data transmission according to an embodiment of the present disclosure;
  • FIG. 79 illustrates a message sequence chart for a scenario where there is a lost data frame and a lost acknowledgment frame according to an embodiment of the present disclosure;
  • FIG. 80 illustrates a message sequence chart for message transmission with smart acknowledgment for a scenario where a window gets full according to an embodiment of the present disclosure;
  • FIG. 81 illustrates a message sequence chart for message transmission with smart acknowledgment for a scenario where a window gets full according to an embodiment of the present disclosure;
  • FIG. 82 illustrates a message sequence chart for message transmission with smart acknowledgment for a scenario where one hole has a successful selective negative acknowledgment according to an embodiment of the present disclosure;
  • FIG. 83 illustrates a message sequence chart for message transmission with smart acknowledgment for a scenario where one hole has a lost selective negative acknowledgment according to an embodiment of the present disclosure;
  • FIG. 84 illustrates an example of locations where a connection between electronic devices may be compromised according to an embodiment of the present disclosure;
  • FIG. 85 illustrates an example of a connection between electronic devices being compromised due to a loss of a physical link according to an embodiment of the present disclosure;
  • FIG. 86 illustrates an example of a connection between electronic devices being compromised due to an application program crashing according to an embodiment of the present disclosure;
  • FIG. 87 illustrates an example of a connection between electronic devices being compromised due to a framework crashing according to an embodiment of the present disclosure;
  • FIG. 88 illustrates a flowchart for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 89 illustrates a flowchart for communicating data between electronic devices according to an embodiment of the present disclosure;
  • FIG. 90 illustrates a flowchart for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 91A illustrates a flowchart for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 91B illustrates a flowchart for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 92 illustrates a flowchart for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 93 illustrates a flowchart for exchanging capabilities between electronics device according to an embodiment of present disclosure;
  • FIG. 94 illustrates a flowchart for exchanging capabilities between electronic devices according to an embodiment of the present disclosure;
  • FIG. 95 illustrates a flowchart for exchanging capabilities between electronic devices according to an embodiment of the present disclosure;
  • FIG. 96A illustrates a flowchart for exchanging capabilities between electronic device according to an embodiment of the present disclosure;
  • FIG. 96B illustrates a flowchart for capability exchange with an application program according to an embodiment of the present disclosure;
  • FIG. 97 illustrates a flowchart for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 98 illustrates a flowchart for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 99 illustrates a flowchart for monitoring a status of an application program on an electronic device according to an embodiment of the present disclosure;
  • FIG. 100 illustrates a flowchart for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 101 illustrates a flowchart of a method for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 102 illustrates a flowchart of a method for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 103 illustrates a flowchart of a method for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 104 illustrates a flowchart of a method for operating an electronic device according to an embodiment of the present disclosure;
  • FIG. 105 illustrates a flowchart of a method for an electronic device to communicate with another electronic device according to an embodiment of the present disclosure;
  • FIG. 106 illustrates a flowchart of a method for an electronic device to communicate with another electronic device according to an embodiment of the present disclosure; and
  • FIG. 107 illustrates a flowchart of a method for operating an electronic device according to an embodiment of the present disclosure.
  • Throughout the drawings, it should be noted that like reference numbers are used to depict the same or similar elements, features, and structures.
  • BRIEF DESCRIPTION OF TERMS
  • Terms as used in the present disclosure are used to describe the various embodiments of the present disclosure, and are not intended to limit the present disclosure. Singular terms are intended to include plural forms, unless the context makes it clear that plural forms are not intended. Unless defined differently, all terms used in the present disclosure, including technical or scientific terms, have meanings that are understood generally by a person having ordinary skill in the art. Ordinary terms that may be defined in a dictionary should be understood to have the meaning consistent with their context, and unless clearly defined in the present disclosure, should not be interpreted to be excessively idealistic or formalistic. In addition, any definition of a term provided herein should not be construed to be limiting the meanings of that or other terms, and the term can be interpreted differently, depending on the context and/or usage.
  • Accessory Service Profile (ASP): A defined method for providing an Accessory Service that specifies a definition of a service provider (i.e., a logical entity that provides the service), a definition of a service consumer (i.e., a logical entity that consumes the service), and a definition of an application protocol specifying formats for transaction and data which are exchanged as packets between the service provider and service consumer.
  • Accessory Service Profile ID (ASP ID): An Accessory Service Profile is uniquely identified by this identifier. In order to avoid conflicts, this ID can be assigned & managed by an authority. However un-assigned ID's can also be used at the risk of conflicts in case of duplicate identifiers. When a Service Agent registers with session layer, it may specify the ASP ID. When a Service Agent initiates a Service-Connection, it may specify the ASP ID.
  • Application Layer Entity (ALE): The application layer may include Application Layer Entities (ALEs). An ALE encapsulates an application logic that utilizes one or more Accessory Services to fulfill some purpose of the User.
  • Application Layer Entity (ALE) Registration Database: A repository that may include identity and capability info of ALE's that have registered with an underlying Capability Discovery Layer.
  • Application Layer Entity Identifier (ALE-ID): An Application Layer Entity Identifier (ALE-ID) identifies an ALE uniquely on a given device and binds the Service Agents used by the ALE.
  • Application Packet Data Unit (APDU): Application PDU's make up an Application Protocol message exchanged between a SP and a SC.
  • Device Identifier (ID): A peer electronic device is uniquely identified by the Device ID. The terms “Device ID” and “Peer Device ID” are used interchangeably. The Device ID can be assigned by the Discovery Management Entity (DME). The Device ID can be used by ALEs to refer to a specific peer electronic device when issuing a primitive to the network protocol
  • Device Management Application: This entity identifies the application layer which helps the users to find out the accessory devices, pair with them, authenticate whether they are certified devices and vice versa.
  • Entity: An entity embodies the actor that performs specific roles and responsibilities at a specific layer. For example, an entity performing roles at an N Layer is referred to as an N Layer Entity (NLE). The entity that provides data services at an N Layer is referred to as the N Layer Data Entity (NLDE). The entity that provides management services at an N Layer is referred to as the N Layer Management Entity (NLME).
  • In-order Delivery: If an (N+1) Layer requests in-order delivery from an N Layer, then an (N+1) PDU transmitted by a remote (N+1) LDE may be provided to the local (N+1) LDE, only after all prior (N+1) PDUs transmitted by the same remote (N+1) LDE have been provided to the local (N+1) LDE.
  • Layer: A layer represents a collection of roles and responsibilities at a specific level of abstraction. Often, the term N Layer is used to refer to a layer, and its upper and lower layers are respectively referred to as, e.g., N+1 Layer and N−1 Layer.
  • Local Persistent Query State: Local Persistent Query State may include a filter list (list of {Peer-Device ID, ASP ID} pairs) which is union of the filters in the CD-ServiceList.request requests (that requested for Persistent Query Behavior) received so far. Each entry in this list has an associated list of ALE-ID's of ALE's that included the particular {Peer-Device ID, or ASP ID} pair in their CD-ServiceList.request request.
  • Peer Electronic Device: A remote smart device or accessory to which, when connected over a particular connectivity interface, in general is referred to as a peer electronic device or peer device. In this document, the term “peer (electronic) device” can be interchangeably used, without limitation, with “external (electronic) device,” “accessory (electronic) device,” or “appcessory (electronic) device,” depending on the context. With respect to a given first (electronic) device, other (electronic) devices can be referred to as “peer (electronic) devices,” “(electronic) devices,” or “external (electronic) devices.” Herein, the terms “external” and “peer” can be used interchangeably and the term “electronic” may be omitted. When describing a procedure or a concept referring to two or more electronic devices, there may not be a “local device” and a “peer device, but only “peer devices.” In this case, the terms “external” and “peer” may not be interchangeable.
  • If the same remote smart device or accessory is connected over multiple connectivity interfaces, it is viewed as a number of different and distinct peer-devices, as many as the number of interfaces.
  • Peer Electronic Device ALE Database: A repository that may include identity and capability info of ALE's on peer electronic devices learned by capability exchange procedures.
  • Primitive: A primitive is a unit interaction step to realize a Service Access Point (SAP). The following primitives are used in this specification: request, ready, confirm, indication and response. A primitive may also be referred to as a message in the present disclosure.
  • Priority: Priority is the basis on which the local NLDE prioritizes transmissions of multiple (N+1) PDUs to the peer NLDE. At any time, (N+1) PDUs of “High” priority are transmitted first. If there are no (N+1) PDUs of “High” priority, then (N+1) PDUs of “Medium” priority are transmitted. If there are no (N+1) PDUs of “High” or “Medium” priority, then (N+1) PDUs of “Low” priority are transmitted.
  • Quality of Service (QoS) Attribute: A QoS Attribute is a specific characteristic of an (N+1) PDU which identifies how it should be treated by the peer NLDEs.
  • Quality of Service (QoS): The term Quality of Service refers to how an N+1 Layer Protocol Data Unit ((N+1) PDU) from a local (N+1) LDE is treated by NLE, in order to be delivered to a peer (N+1) LDE.
  • Remote Persistent Query State: Remote Persistent Query State includes a filter list which is union of all {Peer Electronic Device ID, ASP-ID} tuples gathered from the Capability Query messages received so far, that indicated Persistent Query Behavior.
  • Restricted Service Data Unit (SDU): If an N Layer provides a restricted NSDU service, then the N Layer does not follow any procedures to mask the NSDU size limitation arising due to limitations of (N−1) layers and below. The maximum NSDU or (N+1) PDU size is indicated by the N Layer to the (N+1) Layer. The (N+1) PDU should be strictly within the NSDU size limit imposed by the N Layer.
  • Accessory Network Protocol: The Accessory Network Protocol provides uniform data services on top of diverse connectivity technologies. The suite of Accessory Application Protocols is expected to make use of the services of the Network Protocol.
  • Services: The roles and responsibilities performed by NLEs are made available to N+1 Layer Entities by means of N Layer Services. Specifically, the data service offered by NLDE enables (N+1) LEs to transmit data to peer (N+1) LEs. Also, the management services offered by NLME enables (N+1) LEs to setup and/or configure the data services.
  • Service Access Point (SAP): The unit of an N Layer service is specified as a Service Access Point. A collection of Service Access Points is abbreviated as SAP. At N Layer, NLDE provides data service specified as the NLDE-SAP, and NLME provides a collection of management services specified as the NLME-SAP.
  • Service Agent: A Service Agent is an entity that realizes or implements an Accessory Service Profile.
  • Service Agent ID: A Service Agent ID identifies a Service Agent uniquely across Service Agents realizing or implementing the same Accessory Service Profile on a given device.
  • Service Connection: A Service Connection is a context between an SC and an SP over which the SP provides a service to the SC. It is composed of a set of channels that carry the messages pertaining to the application protocol defined in the associated ASP.
  • Service Consumer: A logical entity that consumes a service. The Service Consumer may be generically referred to as a Service Agent.
  • Service Provider: A logical entity that provides a service. The Service Provider may be generically referred to as a Service Agent.
  • Unordered Delivery: If an (N+1) Layer requests unordered delivery from N Layer, then an (N+1) PDU transmitted by a remote (N+1) LDE may be provided to the local (N+1) LDE, even if prior (N+1) PDUs transmitted by the same remote (N+1) LDE have not been provided to the local (N+1) LDE.
  • Unrestricted SDU: If an N Layer provides an unrestricted NSDU service, then the local and peer N layers follow fragmentation and reassembly procedures to provide a uniform NSDU size abstracting away the limitations of (N−1) layers and below. The maximum NSDU or (N+1) PDU size is indicated by the N Layer to the (N+1) Layer. The (N+1) PDU should be strictly within the NSDU size limit imposed by the N Layer.
  • BRIEF DESCRIPTION OF ABBREVIATIONS
  • ACK: Acknowledgment
  • ALE: Application Layer Entity
  • AME: Authentication Management Entity
  • AOAP: Android Open Accessory Protocol
  • APDU: Application Protocol Data Unit
  • AS: Accessory Service
  • ASP: Accessory Service Profile
  • ASP Id: Accessory Service Profile identifier
  • BLE: Bluetooth Low Energy
  • BR/EDR: (Bluetooth) Basic Rate/Enhanced Data Rate
  • BT: Bluetooth
  • BT_ADDR: Bluetooth Device Address
  • CL: Connection Layer
  • CLDE: Connection Layer Data Entity
  • CLDE-SAP: Connection Layer Data Entity Service Access Point
  • CPDU: Connection layer Protocol Data Unit
  • CSDU: Connection layer Service Data Unit
  • DME: Discovery Management Entity
  • ID: Identifier
  • IP: Internet Protocol
  • L2CAP: Logical Link Layer Control and Adaptation Protocol
  • LE: (Bluetooth) Low Energy
  • MAC: Medium Access Control
  • MTU: Maximum Transmission Unit
  • NAK: Negative Acknowledgment
  • NLE: N Layer Entity
  • NLDE: N Layer Data Entity
  • NLME: N Layer Management Entity
  • PDU: Protocol Data Unit
  • QoS: Quality of Service
  • RFCOMM: (Bluetooth) Radio Frequency Communications
  • SAP: Service Access Point
  • SC: Service Consumer
  • SDU: Service Data Unit
  • SL: Session Layer
  • SLDE: Session Layer Data Entity
  • SLDE-SAP: Session Layer Data Entity Service Access Point
  • SLME: Session Layer Management Entity
  • SLME-SAP: Session Layer Management Entity Service Access Point
  • SP: Service Provider
  • SPDU: Session Protocol Data Unit
  • SSDU: Session Service Data Unit
  • TCP: Transmission Control Protocol
  • TL: Transport Layer
  • TLDE: Transport Layer Data Entity
  • TLDE-SAP: Transport Layer Data Entity Service Access Point
  • TLME: Transport Layer Management Entity
  • TLME-SAP: Transport Layer Management Entity Service Access Point
  • TPDU: Transport Protocol Data Unit
  • TSDU: Transport Service Data Unit
  • UART: Universal Asynchronous Receiver Transmitter
  • UDP: User Datagram Protocol
  • USB: Universal Serial Bus
  • DETAILED DESCRIPTION
  • Detailed descriptions of the various aspects of the present disclosure will be discussed below with reference to the attached drawings. The descriptions are set forth as examples only, and shall not limit the scope of the present disclosure. With respect to the description of the drawings, like features are referenced with like numerals.
  • Table of Contents
  • A. Introductory Statements
  • B. Overview of Electronic Device
  • C. Introductory Concepts
  • D. Accessory Protocol
  • E. Application Protocol
  • F. Service Discovery/Capability Exchange
  • G. Device Discovery
  • H. Network Protocol
  • I. Various Embodiments
  • A. Introductory Statements
  • As used in the present disclosure, terms such as “includes” or “may include” refer to the presence of the corresponding function, operation or feature, and do not limit the presence of additional functions, operations or features. Also, terms such as “includes” or “has” refers to the presence of characteristics, numbers, steps, operations, components or combinations thereof, and is not intended to exclude one or more additional characteristics, numbers, steps, operations, components or combinations thereof.
  • As used in the present disclosure, without limitation, the phrase “configured to” may be interchangeably used with other terms, such as “suitable for,” “having the capacity to,” “designed to,” “adapted to,” “made to,” or “capable of,” depending on the circumstances. In certain examples, the term “configured to” may not necessarily mean “specifically designed to” in a hardware sense. Rather, in a certain context, the term “configured to” may mean “capable of with assistance of other components. For example, the phrase “a processor configured to perform A, B, and C” can mean a generic-purpose processor (for example, a CPU or an application processor) that can perform A, B, and C by executing one or more software programs stored in a memory device.
  • As used in the present disclosure, the term “or” is used to include any and all combination of terms listed. For examples, “A or B” includes only A, only B, or both A and B. As used in the present disclosure, terms such as “first” or “second” may be used to describe various features, but do not limit such features. For example, the terms do not limit the order and/or the importance of their associated features. Such terms may be used to differentiate one feature from another. For example, a first user equipment (alternatively, “UE”) and a second user equipment are both user equipment, but are different user equipments. For example, without departing from the scope of the present disclosure, a first component may be called a second component, and likewise, a second component may be called a first component.
  • As used in the present disclosure, the phrase “at least one of A or B” or “at least one of A and B” can mean (1) A, (2) B, or (3) A and B, not necessarily requiring at least one A and at least one B.
  • If a component is said to be “connected with” or “connected to” another component, the component may be directly connected with, or connected to, the other component, or another component may exist in between. On the other hand, if a component is said to be “directly connected with” or “directly connected to” another component, it should be understood that no components exist in between.
  • It is to be understood that the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a component surface” includes reference to one or more of such surfaces.
  • By the term “substantially” it is meant that the recited characteristic, parameter, or value need not be achieved exactly, but that deviations or variations, including for example, tolerances, measurement error, measurement accuracy limitations and other factors known to those of skill in the art, may occur in amounts that do not preclude the effect the characteristic was intended to provide.
  • B. Overview of Electronic Device
  • An electronic device according to the present disclosure may include communication functionality. For example, an electronic device according to the present disclosure may be a smart phone, a tablet Personal Computer (PC), a mobile phone, a video phone, an e-book reader, a desktop PC, a laptop PC, a netbook PC, a Personal Digital Assistant (PDA), Portable Multimedia Player (PMP), an MP3 player, a mobile medical device, a camera, or a wearable device (e.g., Head-Mounted Device (HMD), electronic clothes, electronic braces, an electronic necklace, an electronic accessory, an electronic tattoo, a smart watch, a smart glass, a smart glove, or a smart patch).
  • According to various embodiments, an electronic device may be a smart home appliance with communication functionality. A smart home appliance may be, for example, a television, Digital Video Disk (DVD) player, audio, refrigerator, air conditioner, vacuum cleaner, oven, microwave oven, washer, dryer, air purifier, set-top box, TV box (e.g., HomeSync™, Apple TV™, or Google TV™), gaming console, electronic dictionary, electronic key, camcorder, or electronic picture frame.
  • According to various embodiments, an electronic device may be a medical device (e.g., a Magnetic Resonance Angiography (MRA) device, a Magnetic Resonance Imaging (MRI) device, a Computed Tomography (CT) device, an imaging device, or a ultrasonic device), a navigation device, a Global Positioning System (GPS) receiver, an Event Data Recorder (EDR), a Flight Data Recorder (FDR), an automotive infotainment device, a naval electronic device (e.g., naval navigation device, gyroscope or compass), an avionic electronic device, security device, or industrial or consumer robot.
  • According to various embodiments, an electronic device may be furniture, part of a building/structure, an electronic board, an electronic signature receiving device, a projector, or various measuring devices (e.g., water, electricity, gas or electromagnetic wave measuring devices), that include communication functionality.
  • An electronic device according to the present disclosure may be any combination of the foregoing devices. In addition, it will be apparent to one having ordinary skill in the art that an electronic device according to the present disclosure is not limited to the foregoing devices.
  • FIG. 1 illustrates a network environment including an electronic device according to an embodiment of the present disclosure.
  • Referring to FIG. 1, an electronic device 101 may include a bus 111, a processor 112, a memory 113, an Input/Output (I/O) interface 114, a display 115, and a communication interface 116.
  • The bus 111 may be circuitry that connect the foregoing components and allow communication (e.g., send control messages) between the foregoing components.
  • The processor 112 may, for example, receive instructions from other components (e.g., the memory 113, the I/O interface 114, the display 115, or the communication interface 116), interpret the received instructions and execute computation or data processing according to the interpreted instructions.
  • The memory 113 may, for example, store instructions or data that are received from, or generated by, other components (e.g., the memory 113, the I/O interface 114, the display 115, or the communication interface 116). For example, the memory 113 may include programming modules such as a kernel 121, a middleware 122, an Application Programming Interface (API) 123 or an application 124. Each of the foregoing programming modules may include a combination of at least two of software, firmware or hardware.
  • The kernel 121 may control or manage system resources (e.g., the bus 111, the processor 112 or the memory 113) that may be used in executing operations or functions implemented in other programming modules such as, for example, the middleware 122, the API 123 or the application 124. Also, the kernel 121 may provide an interface for allowing the middleware 122, the API 123 or the application 124 to access individual components of the electronic device 101.
  • The middleware 122 may be a medium through which the kernel 121 may communicate with the API 123 or the application 124 to send and receive data. Also, the middleware 122 may control (e.g., scheduling or load balancing) work requests by one or more applications 124 by, for example, assigning priorities for using system resources (the bus 111, the processor 112 or the memory 113) of the electronic device 101 to the one or more applications 124.
  • The API 123 is an interface that may control functions that the application 124 may provide at the kernel 121 or the middleware 122. For example, the API 123 may include at least an interface or function (e.g., command) for file control, window control, video processing or character control.
  • According to various embodiments, the application 124 may include, for example, an SMS/MMS application, an email application, a calendar application, an alarm application, a health care application (e.g., exercise amount or blood sugar level measuring application) or an environmental information application (e.g., an application that may provide atmospheric pressure, humidity or temperature information). In addition to or alternatively, the application 124 may be an application that is associated with information exchange between the electronic device 101 and a peer electronic device (e.g., the electronic device 118). The application that is associated with the information exchange may include, for example, a notification relay application that may provide the peer electronic device with certain type of information, or a device management application that may manage the peer electronic device.
  • For example, the notification relay application may include a functionality that provides notification generated by other applications at the electronic device 101 (e.g., SMS/MMS application, email application, health care application or environmental information application) to a peer electronic device (e.g., the electronic device 118). In addition to or alternatively, the notification relay application may provide, for example, receive notification from a peer electronic device (e.g., the electronic device 118) and provide the notification to a user. The device management application may manage, for example, enabling or disabling of functions associated with at least a portion of a peer electronic device (the peer electronic device itself, or one or more components of the peer electronic device) in communication with the electronic device 101, controlling of brightness (or resolution) of a display of the peer electronic device, or application operated at, or service (e.g., voice call service or messaging service) provided by, the peer electronic device.
  • According to various embodiments, the application 124 may include, for example, one or more applications that are determined according to a property (e.g., type of electronic device) of the peer electronic device (e.g., the electronic device 118). For example, if the peer electronic device is an mp3 player, the application 124 may include one or more applications related to music playback. In another example, if the peer electronic device is a mobile medical device, the application 124 may be health care-related applications. According to an embodiment, the application 124 may include at least one of an application that is preloaded at the electronic device 101 or an application that is received from a peer electronic device (e.g., the electronic device 118 or the server 119).
  • The I/O interface 114, for example, may receive an instruction or data from a user and send, via the bus 111, the instruction or data to the processor 112, the memory 113, or the communication interface 116. For example, the I/O interface 114 may provide data associated with user input received via a touch screen to the processor 112. Also, the I/O interface 114 may, for example, output instructions or data received via the bus 111 from the processor 112, the memory 113, or the communication interface 116, via an I/O device (e.g., a speaker or a display). For example, the I/O interface 114 may output voice data processed using the processor 112, via a speaker.
  • The display 115 may display various types of information (e.g., multimedia or text data) to the user.
  • The communication interface 116 may provide communication between the electronic device 101 and one or more peer electronic devices (e.g., the electronic device 118 or the server 119). For example, the communication interface 116 may communicate with the peer electronic device by establishing a connection with the network 117 using wireless or wired communication. The wireless communication may be at least one of, for example, Wi-Fi, Bluetooth, Near Field Communication (NFC), Global Positioning System (GPS), or cellular communication (e.g., LTE, LTE-A, CDMA, WDCMA, UMTS, WiBro or GSM). The wired communication may be at least one of, for example, Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), recommended standard 232 (RS-232) or Plain Old Telephone Service (POTS).
  • According to various embodiments, the network 117 may be a telecommunications network. The telecommunications network may include at least one of, for example, a computer network, the Internet, the Internet of Things or a telephone network. According to an embodiment, a protocol (e.g., transport layer protocol, data link layer protocol or physical layer protocol) for communicating between the electronic device 101 and a peer electronic device may be supported by, for example, at least one of the application 124, the application programming interface 123, the middleware 122, the kernel 121 or the communication interface 116.
  • FIG. 2 illustrates a block diagram of an electronic device according to an embodiment of the present disclosure.
  • Referring to FIG. 2, an electronic device 200 may be, for example, a part or all of the electronic device 101. Referring to FIG. 2, the electronic device 200 may include one or more Application Processors (AP) 210, a communication module 220, a Subscriber Identification Module (SIM) card 224, a memory 230, a sensor module 240, an input module 250, a display module 260, an interface 270, an audio module 280, a camera module 291, a power management module 295, a battery 296, an indicator 297 or a motor 298.
  • The AP 210 may control one or more hardware or software components that are connected to the AP 210, or perform processing or computation of data (including multimedia data). The AP 210 may be implemented, for example, as a System-on-Chip (SoC). The AP 210 may further include a Graphics Processing Unit (GPU; not shown).
  • The communication module 220 (e.g., the communication interface 116) may transmit and receive data in communications between the electronic device 200 and other electronic devices (e.g., the electronic device 118 or the server 119). The communication module 220 may include, for example, one or more of a cellular module 221, a Wi-Fi module 222, a Bluetooth module 225, a GPS module 227, a Near-Field Communication (NFC) module 228, or a Radio Frequency (RF) module 229.
  • The cellular module 221 may provide services such as, for example, voice call, video call, Short Messaging Service (SMS) or internet, via a communication network (e.g., LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro or GSM). The cellular module 221 may, for example, also differentiate and authorize electronic devices within a communication network, using a subscriber identification module (SIM) card (e.g., the SIM card 224). According to an embodiment, the cellular module 221 may perform at least a part of the functionalities of the AP 210. For example, the cellular module 221 may perform at least a part of multimedia control functionality.
  • According to an embodiment, the cellular module 221 may include a Communication Processor (CP). The cellular module 221 may, for example, be implemented as SoC. Although FIG. 2 shows components such as the cellular module 221 (e.g., CP), the memory 230 or the power management module 295 as components that are separate from the AP 210, according to the present disclosure, the AP 210 may include, or be integrated with, one or more of the foregoing components (e.g., the cellular module 221).
  • According to an embodiment, the AP 210 or the cellular module 221 (e.g., a CP) may process instructions or data received from at least one of a non-volatile memory or other components by loading in a volatile memory. Also, the AP 210 or the cellular module 221 may store at the non-volatile memory at least one of data that is received from at least one of other components or data that is generated by at least one of the other components.
  • Each of the Wi-Fi module 222, the Bluetooth module 225, the GPS module 227 or the NFC module 228 may, for example, include one or more processors that may process data received or transmitted by the respective modules. Although FIG. 2 shows the cellular module 221, the Wi-Fi module 223, the Bluetooth module 225, the GPS module 227 and the NFC module 228 as separate blocks, according to an embodiment, any combination (e.g., two or more) of the cellular module 221, the Wi-Fi module 223, the Bluetooth module 225, the GPS module 227 or the NFC module 228 may be included in an Integrated Chip (IC) or an IC package. For example, at least some of the processors corresponding to the respective cellular module 221, the Wi-Fi module 223, the Bluetooth module 225, the GPS module 227 or the NFC module 228 may be implemented as a single SoC. For example, a CP corresponding to the cellular module 221 and a Wi-Fi processor corresponding to the Wi-Fi module 223 may be implemented as a single SoC.
  • The RF module 229 may, for example, transmit and receive RF signals. Although not shown, the RF module 229 may include a transceiver, a Power Amp Module (PAM), a frequency filter or a Low Noise Amplifier (LNA). Also, the RF module 229 may include one or more components for transmitting and receiving Electro-Magnetic (EM) waves in free space such as, for example, conductors or conductive wires. Although FIG. 2 shows that the cellular module 221, the Wi-Fi module 223, the Bluetooth module 225, the GPS module 227 and the NFC module 228 are sharing one RF module 229, according to an embodiment, at least one of the cellular module 221, the Wi-Fi module 223, the Bluetooth module 225, the GPS module 227 or the NFC module 228 may transmit and receive RF signals via a separate RF module.
  • The SIM card 224 may be a card implementing a SIM, and may be configured to be inserted into a slot disposed at a specified location of the electronic device. The SIM card 224 may include a unique identifier (e.g., Integrated Circuit Card Identifier (ICCID)) or subscriber information (e.g., International Mobile Subscriber Identity (IMSI)).
  • The memory 230 may include an internal memory 232 or a peer memory 224. The internal memory 232 may be, for example, at least one of volatile memory (e.g., Dynamic RAM (DRAM), Static RAM (SRAM) or Synchronous Dynamic RAM (SDRAM)) or non-volatile memory (e.g., One Time Programmable ROM (OTPROM), Programmable ROM (PROM), Erasable and Programmable ROM (EPROM), Electrically Erasable and Programmable ROM (EEPROM), mask ROM, flash ROM, NAND flash memory or NOR flash memory).
  • According to an embodiment, the internal memory 232 may be a Solid State Drive (SSD). The external memory 234 may be, for example, a flash drive (e.g., a Compact Flash (CF) drive, a Secure Digital (SD), a micro Secure Digital (micro-SD), a mini Secure Digital (mini-SD), an extreme Digital (xD) or a Memory Stick). The external memory 234 may be operatively coupled to the electronic device 200 via various interfaces. According to an embodiment, the electronic device 200 may include recording devices (or recording media) such as, for example, Hard Disk Drives (HDD).
  • The sensor module 240 may measure physical/environmental properties or detect operational states associated with the electronic device 200, and convert the measured or detected information into signals such as, for example, electric signals or electromagnetic signals. The sensor module 240 may include at least one of, for example, a gesture sensor 240A, a gyro sensor 240B, an atmospheric pressure sensor 240C, a magnetic sensor 240D, an accelerometer 240E, a grip sensor 240F, a proximity sensor 240G, an RGB sensor 240H, a biometric sensor 240I, a temperature/humidity sensor 240J, a luminosity sensor 240K or an Ultra Violet (UV) sensor 240M. The sensor module 240 may detect the operation state of the electronic device or measure physical properties and convert the detected or measured information into electrical signals. Additionally or alternatively, the sensor module 240 may also include, for example, electrical-nose sensor (not shown), electromyography (EMG) sensor (not shown), electroencephalogram (EEG) sensor (not shown), infrared (IR) sensor (not shown), eye-scanning sensor (e.g., iris sensor; not shown) or fingerprint sensor. Sensor module 240 may also include control circuitry for controlling one or more sensors included therein.
  • The input module 250 may include a touch panel 252, a (digital) pen sensor 254, a key 256 or an ultrasonic input device 258. The touch panel 252 may detect touch input using, for example, capacitive, resistive, infrared or ultrasonic methods. The touch panel 252 may also include a touch panel controller (not shown). A capacitive-type touch panel may, for example, detect proximity inputs (e.g. hovering input) in addition to, or alternative to, physical touch inputs. The touch panel 252 may also include a tactile layer. Haptic feedback may be provided to the user using the tactile layer.
  • The (digital) pen sensor 254 may be implemented, for example, using methods identical to or similar to receiving a touch input from a user, or using a separate detection sheet (e.g., a digitizer). The key 256 may be, for example, a keypad or a touch key. The ultrasonic input device 258 may be a device configured to identify data by detecting, using a microphone (e.g., the microphone 288), ultrasonic signals generated by a device capable of generating the ultrasonic signal. The ultrasonic input device 258 may detect data wirelessly. According to an embodiment, the electronic device 200 may receive user input from an external device (e.g., a network, computer or server) connected to electronic device 200 using the communication module 220.
  • The display module 260 (e.g., the display 115) may include a panel 262, a hologram device 264 or a projector 266. The panel 262 may be, for example, a Liquid-Crystal Display (LCD) or an Active-Matrix Organic Light-Emitting Diode (AM-OLED) display. The panel 262 may be configured to be, for example, flexible, transparent or wearable. The panel 262 and the touch panel 252 may be implemented as a single module. The hologram device 264 may utilize the interference of light waves to provide a three-dimensional image in empty space. The projector 266 may provide image by projecting light on a surface (e.g., a wall or a screen). The surface may, for example, be positioned internal or external to the electronic device 200. According to an embodiment, the display module 260 may also include a control circuitry for controlling the panel 262, the hologram device 264 or the projector 266.
  • The interface 270 may include, for example, one or more interfaces for a High-Definition Multimedia Interface (HDMI) 272, a Universal Serial Bus (USB) 274, a projector 276 or a D-subminiature (D-sub) 278. Additionally or alternatively, the interface 270 may include, for example, one or more interfaces for Secure Digital (SD)/MultiMedia Card (MMC) (not shown) or Infrared Data Association (IrDA) (not shown).
  • The audio codec 280 may encode/decode a voice into an electrical signal, and vice versa. The audio codec 280 may, for example, encode/decode voice information that is input into, or output from, the speaker 282, the receiver 284, the earphone 286 or the microphone 288.
  • The camera module 291 may capture still images or video. According to an embodiment, the camera module 291 may include one or more image sensors (e.g., front sensor module or rear sensor module; not shown), an Image Signal Processor (ISP, not shown), or a flash Light-Emitting Diode (flash LED, not shown).
  • The power management module 295 may manage electrical power of the electronic device 200. Although not shown, the power management module 295 may include, for example, a Power Management Integrated Circuit (PMIC), a charger Integrated Circuit (charger IC) or a battery fuel gauge.
  • The PMIC, for example, may be disposed in an integrated circuit or an SoC semiconductor. The charging method for the electronic device 200 may include wired or wireless charging. The charger IC may charge a battery, or prevent excessive voltage or excessive current from a charger from entering the electronic device 200. According to an embodiment, the charger IC may include at least one of a wired charger IC or a wireless charger IC. The wireless charger IC may be, for example, a magnetic resonance type, a magnetic induction type or an electromagnetic wave type, and may include circuits such as, for example, a coil loop, a resonance circuit or a rectifier.
  • The battery gauge may measure, for example, charge level, voltage while charging, or temperature of the battery 296. The battery 296 may supply power to, for example, the electronic device 200. The battery 296 may be, for example, a rechargeable battery.
  • The indicator 297 may indicate one or more states (e.g., boot status, message status or charge status) of the electronic device 200 or a portion thereof (e.g., the AP 210). The motor 298 may convert electrical signal into mechanical vibration. The MCU 299 may control the sensor module 240.
  • Although not shown, the electronic device 200 may include one or more devices for supporting mobile television (mobile TV, e.g., a Graphics Processing Unit (GPU)). The devices for supporting mobile TV support processing of media data compliant with, for example, Digital Multimedia Broadcasting (DMB), Digital Video Broadcasting (DVB) or media flow.
  • FIG. 3 illustrates a block diagram of a programming module according to an embodiment of the present disclosure.
  • Referring to FIG. 3, a programming module 300 may be included (for example, stored) in the electronic device 100 (for example, in the memory 113) illustrated in FIG. 1. At least a part of the programming module 300 may be implemented in software, firmware, hardware, or in a combination of them. The programming module 300 may be implemented in hardware (for example, the electronic device 200) and may include an Operating System (OS) that controls resources related to an electronic device (for example, the electronic device 100) or various applications executed on the OS (for example, applications 370). For example, the OS may be Android, iOS, Windows, Symbian, Tizen, Bada, or the like. Referring to FIG. 3, the programming module 300 may include a kernel 310, middleware 330, an Application Programming Interface (API) 360, or the applications 370.
  • The kernel 310 (for example, the kernel 121) may include a system resource manager 311 or a device driver 312. The system resource manager 311 may include, for example, a process manager (not shown), a memory manager (not shown), or a file system manager (not shown). The system resource manager 311 may control, allocate, or deallocate system resources. The device driver 312 may include, for example, a display driver (not shown), a camera driver (not shown), a Bluetooth driver (not shown), a shared memory driver (not shown), a USB driver (not shown), a keypad driver (not shown), a Wi-Fi driver (not shown), or an audio driver (not shown). In an embodiment of the present disclosure, the device driver 312 may include an Inter-Process Communication (IPC) driver (not shown).
  • The middleware 330 may include a plurality of modules that have already been implemented to provide functions commonly used for the applications 370. The middleware 330 may provide functions through the API 360 so that the applications 370 may efficiently use limited system resources available within the electronic device. For example, as illustrated in FIG. 3, the middleware 330 (for example, the middleware 122) may include at least one of a runtime library 335, an application manager 341, a window manager 342, a multimedia manager 343, a resource manager 344, a power manager 345, a database manager 346, a package manager 347, a connectivity manager 348, a notification manager 349, a location manager 350, a graphic manager 351, or a security manager 352.
  • The runtime library 335 may include, for example, a library module that a complier uses to add a new function in a programming language during execution of an application 370. In an embodiment of the present disclosure, the runtime library 335 may perform input/output, memory management, a function related to arithmetic function, or the like.
  • The application manager 341 may manage, for example, the life cycle of at least one of the applications 370. The window manager 342 may manage GUI resources used for a screen. The multimedia manager 343 may determine formats used to play back various media files and may encode or decode a media file using a CODEC suitable for the format of the media file. The resource manager 344 may manage resources including source code, a memory, or storage space of at least one of the applications 370.
  • The power manager 345 may manage a battery or a power source by operating in conjunction with a Basic Input/Output System (BIOS) and may provide power information used for an operation. The database manager 346 may manage a database for at least one of the applications 370 so that the database may be generated, searched, or modified. The package manager 347 may manage installation or update of an application distributed as a package file.
  • The connectivity manager 348 may manage, for example, wireless connectivity of Wi-Fi, Bluetooth, or the like. The notification manager 349 may indicate or notify an event such as message arrival, a schedule, a proximity alarm, or the like in a manner that does not bother a user. The location manager 350 may mange position information about the electronic device. The graphic manager 351 may manage graphical effects to be provided to the user or related user interfaces. The security manager 352 may provide an overall security function used for system security, user authentication, and the like. In an embodiment of the present disclosure, if the electronic device (for example, the electronic device 100) has a telephony function, the middleware 330 may further include a telephony manager (not shown) to manage a voice or video call function of the electronic device.
  • A new middleware module may be created and used by combining various functions of the above-described component modules in the middleware 330. The middleware 330 may provide a customized module for each OS type in order to provide differentiated functions. In addition, the middleware 330 may dynamically delete a part of the existing components or add a new component. Accordingly, a part of the components may be omitted, another component may be added, or a component may be replaced with a component with a different name but a similar function in the embodiment of the present disclosure.
  • The API 360 (for example, the API 123) is a set of API programming functions, which may be configured differently according to an OS. For example, in the case of Android or iOS, one API set may be provided per platform, whereas in the case of Tizen, two or more API sets may be provided per platform.
  • The applications 370 (for example, the applications 124) may include, for example, a preloaded application or a third party application.
  • At least a part of the programming module 300 may be implemented as commands stored in a computer-readable storage medium. When a command is executed by one or more processors (for example, the processor 210), the one or more processors may execute a function corresponding to the command. The computer-readable storage medium may be, for example, the memory 230. At least a part of the programming module 300 may be implemented (for example, executed) by the processor 210. At least a part of the programming module 300 may include, for example, a module, a program, a routine, a set of instructions, and/or a process to execute one or more functions.
  • The names of components of a programming module according to the present disclosure (for example, the programming module 300) may vary according to the type of an OS. The programming module of the present disclosure may include at least one of the afore-described components, may not include a part of the components, or may include an additional component. Operations of the programming module or other components according to the present disclosure may be performed sequentially, in parallel, repeatedly, or heuristically. Further, a part of the operations may be omitted or a new operation may be added.
  • Components of hardware described above according to the present disclosure may each include one or more components, and each component's name may vary according to the type of an electronic device. The hardware according to the present disclosure may include at least one of the above-described components, and some may be omitted or may include additional components. Also, some of the components of the hardware according to the present disclosure may be combined into a single entity and perform functions identical or similar to those of the respective components before their combination.
  • The term “module” as used herein may include its ordinary meaning including, but not limited to, for example, a unit of one, or a combination of two or more, hardware, software or firmware. The term “module” may be used interchangeably with terms such as, for example, unit, logic, logical block, component or circuit. A module may be the smallest unit for performing one or more functions, or a portion thereof. A module may be implemented mechanically, or electronically. For example, a module according to the present disclosure may include at least one of a known, or to-be-developed, Application-Specific Integrated Circuit (ASIC) chip, Field-Programmable Gate Array (FPGA) or programmable logic device that perform certain operations.
  • A module according to the present disclosure may include one or more of the above-described components, may omit a portion thereof, or may include additional components. Operations that are performed by a module, a programming module or other components according to the present disclosure may be processed in a serial, parallel, repetitive or heuristic manner, and some operations may be omitted or additional operations may be added.
  • C. Introductory Concepts
  • To assist with an understanding of the present disclosure a concept of a layered framework architecture is introduced.
  • FIG. 4 illustrates a block diagram of a layered framework architecture according to an embodiment of the present disclosure.
  • Referring to FIG. 4, the framework interface has a layered architecture including multiple layers with each layer providing services to its upper layer by utilizing the services of its lower layer.
  • A layer represents a collection of roles and responsibilities at a specific level of abstraction. The term N Layer 403 is used to refer to a layer, and its upper layer and lower layer are respectively referred to as N+1 Layer 401 and N−1 Layer.
  • An entity embodies the actor that performs specific roles and responsibilities at a specific layer. Specifically, an entity performing roles at N Layer 403 is referred to as an N Layer Entity (NLE). The specific entity that provides data services at N Layer 403 is referred to as the N Layer Data Entity (NLDE). The specific entity that provides management services at N Layer 403 is referred to as the N Layer Management Entity (NLME).
  • The roles and responsibilities performed by NLEs are made available to N+1 Layer Entities by means of N Layer Services. Specifically, the data service offered by NLDE enables (N+1)LEs to transmit data to peer (N+1)LEs. Also, the management services offered by NLME enables (N+1)LEs to setup and/or configure the data services.
  • The unit of an N Layer service is specified as a Service Access Point (SAP). At N Layer 403, NLDE provides data service specified as an NLDE-SAP 405, and NLME provides a collection of management services specified as an NLME-SAP 407.
  • A Protocol Data Unit (PDU) is a unit of message exchange between peer N layer entities. Specifically, an N layer PDU is called an NPDU.
  • A Service Data Unit (SDU) is a unit of data exchange between an N+1 layer and an N layer. Specifically, an SDU submitted by N+1 layer 401 to N Layer 403 for delivery to a peer N+1 layer, is referred to as an NSDU. The transmitting N Layer 403 may append its headers to an NSDU to construct an NPDU. The receiving N Layer may strip its headers from an NPDU to construct an NSDU.
  • A primitive is a unit interaction step to realize a SAP. The following primitives are used in this disclosure: request, ready, confirm, indication and response.
  • Here, a NLDE-SAP primitive can be one of the following generic types.
  • Request: The request primitive is issued by N+1 layer 401 to N Layer 403 to request a data service from N-Layer 403. N+1 Layer 401 may wait for a confirmation before initiating a fresh request.
  • Ready: The ready primitive is issued by N layer 403 to N+1 Layer 401 to notify that it is ready to accept further data from N+1 layer 401.
  • Confirm: The confirm primitive is used by N layer 403 to convey the delivery status of the previously requested data from N+1 layer 401.
  • Indication: The indication primitive is used by N Layer 403 to indicate/deliver data received for N+1 layer 401.
  • Here, a NLME-SAP primitive can be one of the following generic types.
  • Request: The request primitive is issued by N+1 layer 401 to N Layer 403 to request a management service from N Layer 403.
  • Confirm: The confirm primitive is used by N layer 403 to convey the result of a previous management service request from N+1 layer 401.
  • Indication: The indication primitive is used by N Layer 403 to indicate to N+1 layer 401 of N Layer events concerning the N+1 layer 401.
  • Response: The response primitive is issued by N+1 layer 401 to N layer 403 to notify completion of a procedure previously invoked by an indication primitive.
  • In order to allow multiple instances of the same primitive to be issued by one layer to another layer, the concept of Transaction Identifier (ID) is used. The default method for the use of Transaction IDs for various primitives is specified below.
  • When the N+1 layer 401 issues a Request primitive from the NLDE-SAP 405, the N+1 layer 401 is responsible for generating the Transaction ID.
  • In the Ready primitive and the Confirm primitive that the N layer 403 issues to N+1 layer 401 in response to the above Request primitive, the Transaction ID included in the Request primitive is echoed.
  • When the N layer 403 issues an Indication primitive from the NLDE-SAP 405, the N layer 403 is responsible for generating the Transaction ID.
  • When the N+1 layer 401 issues a Request primitive from the NLME-SAP 407, the N+1 layer 401 is responsible for generating the Transaction ID.
  • In the Confirm primitive that the N layer 403 issues to N+1 layer 401 in response to the above Request primitive, the Transaction ID included in the Request primitive is echoed.
  • When the N layer 403 issues an Indication primitive from the NLME-SAP 407, the N layer 403 is responsible for generating the Transaction ID.
  • In the Response primitive that the N+1 layer 401 issues to N layer 403 in response to the above Indication primitive, the Transaction ID included in the Indication primitive is echoed.
  • The disclosure is not limited to the above default method for the use of Transaction IDs. Other specific primitives may be utilized, such as those put forth throughout the present disclosure.
  • The term Quality of Service (QoS) refers to how an N+1 Layer Protocol Data Unit ((N+1)PDU) from a local (N+1)LDE is treated by the NLE, in order to be delivered to a peer (N+1)LDE. A QoS Attribute is a specific characteristic of an (N+1)PDU which identifies how it should be treated by the peer NLDEs. The following QoS attributes may be employed.
  • Here, a NLDE-SAP primitive can be one of the following generic types.
  • Datagram Service: The N Layer is said to provide a datagram service to the (N+1) Layer 401 if each (N+1)PDU transmitted by the local (N+1) Layer 401 is delivered to the peer (N+1) Layer as is, in the form of a single distinct data unit. Without being segmented into multiple data units, and without being concatenated with other (N+1)PDUs.
  • In-Order Delivery: If (N+1) Layer 401 requests in-order delivery of (N+1)PDUs from N Layer: Then an (N+1)PDU transmitted by the local (N+1)LDE may be delivered to the peer (N+1)LDE, only after all prior (N+1)PDUs transmitted by the local (N+1)LDE have been delivered to the peer (N+1)LDE. The local and peer NLDEs may follow retransmission and recovery mechanisms or rely on the capabilities of (N−1) layers and below for (N+1)PDU delivery. If the local NLDE and the peer NLDE are unable to deliver an (N+1)PDU to the peer (N+1)LDE, then they should terminate the connection and notify their respective (N+1)LDEs of connection failure.
  • Unordered Delivery: If the (N+1) Layer 401 requests unordered delivery of (N+1)PDUs from N Layer: Then an (N+1)PDU transmitted by the local (N+1)LDE may be delivered to the peer (N+1)LDE, even if prior (N+1)PDUs transmitted by the local (N+1)LDE have not been delivered to the peer (N+1)LDE. (N+1)PDUs are transmitted by the local NLDE to the peer NLDE in the same sequence as received from the local (N+1)LDE. The local and peer NLDEs do not follow any retransmission and recovery mechanisms, but simply rely on the capabilities of (N−1) layers and below for (N+1)PDU delivery. If the local NLDE and the peer NLDE are unable to deliver an (N+1)PDU to the peer (N+1)LDE, then they should drop that (N+1)PDU and attempt to deliver the next (N+1)PDU in the sequence.
  • Restricted SDU: If N Layer 403 provides a restricted NSDU service: Then the N Layer 403 does not follow any procedures to mask the NSDU size limitation arising due to limitations of (N−1) layers and below. According to the limitations of (N−1) layers and below, the N Layer 403 indicates the maximum NSDU or (N+1)PDU size to the (N+1) Layer. The (N+1)PDU should be strictly within the NSDU size limit.
  • Unrestricted SDU: If N Layer 403 provides an unrestricted NSDU service: Then the local and peer N layers follow fragmentation and reassembly procedures to provide a uniform NSDU size masking the limitations of (N−1) layers and below. For practical reasons, the N Layer 403 imposes a reasonable maximum NSDU or (N+1)PDU size independent of the limitations of (N−1) layers and below, and indicates this to the (N+1) Layer. The (N+1)PDU should be strictly within the NSDU size limit.
  • Priority: Priority is the basis on which the local NLDE prioritizes transmissions of multiple (N+1)PDUs to the peer NLDE: At any time, (N+1)PDUs of “High” priority are transmitted first. From all non-empty (N+1)PDU queues, the NLDE picks the queue for which Priority is set to “High Priority”. If there are multiple such queues, the NLDE should break the tie using an implementation-specific technique. If there are no (N+1)PDUs of “High” priority, then (N+1)PDUs of “Medium” priority are transmitted by the NLDE by picking the queue for which Priority is set to “Medium Priority”. Again, if there are multiple such queues, the NLDE should break the tie using an implementation-specific technique. If there are no (N+1)PDUs of “High” or “Medium” priority, then (N+1)PDUs of “Low” priority are transmitted by the NLDE picking the queue for which Priority is set to “Low Priority”. Again, if there are multiple such queues, the NLDE should break the tie using an implementation-specific technique. If multiple queues with the same priority have PDUs to be transmitted, then the tie should be broken using an implementation-specific technique which is dictated by the platform capability and policies of that electronic device.
  • Data Rate: Data Rate is the basis on which the local NLDE tunes its retransmission and recovery mechanisms which it may be using to provide In-Order Delivery of (N+1)PDUs: If the (N+1)LDE specifies the Data Rate as “Low”, the local and peer NLDEs acknowledge each (N+1)PDU individually. If the (N+1)LDE specifies the Data Rate as “High”, the local and peer NLDEs may not acknowledge each (N+1)PDU individually but may rather use acknowledgments selectively. The Data Rate parameter is used to tune the retransmission and recovery mechanism to provide in-order delivery. With a “Low” setting of Data Rate, it is expected that (N+1)PDUs may be transmitted relatively sporadically. Therefore, the peer NLDEs should acknowledge each (N+1)PDU individually. With a “High” setting of Data Rate, it is expected that (N+1)PDUs may be transmitted relatively frequently. Therefore, the peer NLDEs could use window-based acknowledgment mechanisms to selectively acknowledge (N+1)PDUs.
  • Scope of QoS Settings: The (N+1) Layer 401 can apply the aforementioned QoS parameters and settings at the granularity of a logical flow of (N+1)PDUs between peer (N+1) Layer entities. After individual layer functionalities are introduced, the notion of a logical flow may be precisely specified, to which QoS parameters and settings can be applied.
  • D. Accessory Protocol
  • FIG. 5 illustrates a system of electronic devices communicating with one another according to an embodiment of the present disclosure.
  • Referring to FIG. 5, a system of electronic devices may communicate therebetween. The system may include an electronic device 501, a first external electronic device 503, a second external electronic device 505, an N-th external electronic device 507, and/or the like.
  • According to various embodiments of the present disclosure, the electronic device 501, the first external electronic device 503, the second external electronic device 505, and the N-th external electronic device 507 may communicate using a common protocol (e.g., common between at least each set of electronic devices communicating). As an example, the common protocol may enable the electronic device 501 and the first external electronic device 503 to provide a service to a user. For example, the common protocol may enable the electronic device 501 and the first external electronic device 503 to communicate information regarding an accessory service. The electronic device 501 may provide services to the first external electronic device 503 and/or consume services provided by the first external electronic device 503. Conversely, the first external electronic device 503 may provide services to the electronic device 501 and/or consumer services provided by the electronic device 501.
  • According to various embodiments of the present disclosure, the electronic device 501 may communicate with the first external electronic device 1 503 over a first physical channel 509. Similarly, the electronic device 501 may communicate with the second external electronic device 505 over a second physical channel 511. The electronic device 501 may communicate with the N-th external electronic device 507 over an N-th physical channel 513.
  • According to various embodiments of the present disclosure, the common protocol may enable the electronic device 501 to establish the corresponding physical channel between each of the first external electronic device 503, the second external electronic device 505, and the N-th external electronic device 507.
  • According to various embodiments of the present disclosure, the common protocol may allow application programs to be developed independently or agnostic of the connectivity technology with which the corresponding physical channel is established between the electronic device 501 and the corresponding peer electronic device.
  • FIG. 6 illustrates communication between electronic devices according to an embodiment of the present disclosure.
  • Referring to FIG. 6, a first electronic device 601 may communicate with a second electronic device 615.
  • The first electronic device 601 may include a first application 603 (e.g., an application program installed on the first electronic device 601, a service agent, and/or the like), a second application 605, and an N-th application 607. According to various embodiments of the present disclosure, the first electronic device 601 may include an accessory framework 609, a software framework 611, connection hardware 613, and/or the like.
  • The second electronic device 615 may include a first application 617, a second application 619, and an N-th application 621. According to various embodiments of the present disclosure, the second electronic device 615 may include an accessory framework 623, a software framework 625, connection hardware 627, and/or the like.
  • According to various embodiments of the present disclosure, the connection hardware 613 of the first electronic device 601 and the connection hardware 627 of the second electronic device 615 may establish a channel therebetween to enable communication between the first electronic device 601 and the second electronic device 615. For example, the connection hardware 613 and the connection hardware 627 may establish, for example, a first channel 629, a second channel 631, and a third channel 633. The channels between the connection hardware 613 and the connection hardware 627 may be physical wireless and/or wired channels.
  • According to various embodiments of the present disclosure, an application (e.g., the first application 603, the second application 605, and the N-th application 607) on the first electronic device 601 may communicate with (1) a respective one of applications (e.g., the first application 617, the second application 619, and the N-th application 621) or (2) one or more of the applications 666 on the second electronic device 615 over the channels formed between the connection hardware 613 and the connection hardware 627.
  • The accessory framework 609 may enable an application on the first electronic device 601 to establish and communicate over a connection (e.g., a channel) between the first electronic device 601 and the second electronic device 615. For example, the accessory framework 609 may negotiate with the software framework 613 to communicate with the peer electronic device.
  • FIG. 7 illustrates a configuration of an electronic device according to an embodiment of the present disclosure.
  • Referring to FIG. 7, an electronic device 701 may include an application layer 703, a connectivity software/middleware layer 705, and a connectivity hardware layer 707.
  • All or part of at least one of the application layer 703 and the connectivity software/middleware layer 705, etc. may be part of an operation system (OS) or can be a separate software module downloaded and installed onto the OS. Additionally or alternatively, all or part of at least one of the application layer 703 and the connectivity software/middleware layer 705, etc. may be implemented in hardware (e.g., ASIC) or in a configurable processor (e.g., FPGA).
  • According to various embodiments of the present disclosure, the application layer 703 may include one or more applications. For example, the application layer 703 may include a first application 709, a second application 711, a third application 713, and an N-th application 715. The one or more applications may provide a user with an accessory service. For example, the one or more applications may enable the user to send/receive communications, and/or to consume data received.
  • According to various embodiments of the present disclosure, the application layer 703 may interface with an accessory framework 717. The accessory framework may support communication and/or interaction between one or more applications (e.g., the first application 709, the second application 711, the third application 713, and the N-th application 715) and other modules and/or layers within the electronic device 701. The accessory framework 717 may include a common application programming interface 719 with which the one or more applications may communicate in order to carry out their respective services (e.g., accessory services).
  • According to various embodiments of the present disclosure, the one or more applications may communicate with a network layer in order to communicate with a peer electronic device (not shown). For example, the one or more applications may communicate with a network layer using the accessory framework 717. The one or more applications may communicate with the connectivity software/middleware layer 705 and/or the connectivity hardware layer 707.
  • The connectivity software/middleware layer 705 may include one or more communication adapters 721. For example, the one or more communication adapters 721 may include a first adapter 725, a second adapter 725, a third adapter 727, and an N-th adapter 729. The one or more communication adapters 721 may be respectively associated with at least one connectivity technology. According to various embodiments of the present disclosure, the connectivity software/middleware layer 705 may facilitate communication between the application layer 703 and the connectivity hardware layer 707. The one or more communication adapters 721 may support communication between the application layer 703 and connection hardware 731 used by the electronic device 701 to communicate with a peer electronic device.
  • The connectivity hardware layer 707 may serve as an interface for communication between the electronic device 701 and a peer electronic device. For example, the connectivity hardware layer 707 may communicate information from the application layer 703 to a peer electronic device. The connectivity hardware layer 707 may include the connection hardware 731. The connection hardware 731 may correspond to various hardware elements for communication technologies supported by the electronic device 701. For example, the connection hardware 731 may include a cellular unit 733 for communication over cellular technology, a WiFi unit 735 for communication over WiFi technology, a Bluetooth unit 737 for communication over Bluetooth, a Bluetooth low energy (BLE) unit 739 for communication over Bluetooth low energy technology, and/or the like.
  • According to various embodiments of the present disclosure, the one or more communication adapters 721 in the software network framework 721 may communicate and/or interface with a hardware element of the connection hardware 731 to perform communication with a peer electronic device using a desired communication technology.
  • FIG. 8 illustrates a configuration of an electronic device according to an embodiment of the present disclosure.
  • Referring to FIG. 8, the electronic device includes a plurality of application programs 801, 803, 805, and 807, an application programming interface 809, an accessory framework 811, a connectivity software/middleware layer 819, and a connectivity hardware layer 857 that includes diverse connectivity technologies. The separation of connectivity software/middleware layer 819 and a connectivity hardware layer 857 is not fixed to that shown in FIG. 8 and may be different depending on the embodiment.
  • Each of the plurality of application programs 801, 803, 805, and 807 implements its own accessory service profile. The accessory service profiles may be uniform across connectivity technologies. The accessory framework 811 includes a session layer 813, a transport layer 815, and a connection layer 817. The connectivity software/middleware layer 819 and connectivity hardware layer 857 are configured to support communication through, for example, TCP/IP, Bluetooth, USB, UDP/IP, and BLE. TCP/IP may be supported by including TCP 821 and IP 823 in the connectivity software/middleware layer 819, and WiFi MAC 825 and WiFi PHY 827 in the connectivity hardware layer 857. Further, the diverse connectivity technologies 8 may include Universal Asynchronous Receiver/Transmitter (UART), a ZigBee, an Ultra-WideBand (UWB), Radio Frequency Identification (RFID), infrared, Near Field Communication (NFC), and cellular communication. Bluetooth may be supported by including RFCOMM 829 and L2CAP 831 in the connectivity software/middleware layer 819, and ACL 833, and Bluetooth Radio 835 in the connectivity hardware layer 857. USB may be supported by including USB protocol 837 in the connectivity software/middleware layer 819, and USB Electricals 839 in the connectivity hardware layer 857. UDP/IP may be supported by including UDP 841 and IP 843 in the connectivity software/middleware layer 819, and WiFi MAC 845 and WiFi PHY 847 in the connectivity hardware layer 857. BLE may be supported by including BLE GATT/ATT 849 and L2CAP 851 in the connectivity software/middleware layer 819, and ACL 853, and BLE Radio 855 in the connectivity hardware layer 857. TCP/IP, Bluetooth, and USB 88 may employ an in-order byte stream. UDP/IP and BLE 8 may communicate with the accessory framework 811 using an unordered datagram. The accessory framework 811 communicates with the application programming interface 809 using a datagram with per session QoS.
  • FIG. 9 illustrates an overall architecture of the accessory protocol according to an embodiment of the present disclosure.
  • Referring to FIG. 9, the Accessory Protocol stack may include multiple protocols with each protocol being realized by multiple layers and functional blocks. The Accessory Network Protocol may include a session layer 929, a Transport layer 933 and a connection layer 937 which operate on top of Connectivity Interfaces 927.
  • The payload of the Network Protocol carries the messages pertaining to the Service Discovery Protocol and the suite of Application Protocols. The Accessory Service Discovery Protocol operates on top of the Accessory Network Protocol and is realized by means of a peer Capability Exchange Entity 915.
  • The Accessory Service Discovery Protocol enables Application Layer (AL) entities (e.g., a first ALE 907 and a second ALE 909) to discover AL entities on a peer electronic device. The suite of Accessory Application Protocols can operate on top of the Accessory Network Protocol and the Accessory Service Discovery Protocol, and are realized by means of the peer application layer entities (e.g., the first ALE 907 and the second ALE 909).
  • The Accessory Device Discovery Protocol operates in parallel to the Accessory Network Protocol, the Service Discovery Protocol, and the Application Protocol, and is responsible for enabling Accessory Protocol-capable devices to discover and authenticate one another. The Accessory Device Discovery Protocol is realized by means of a Device Management Application 917, a Discover Management Entity 921, and a Security Service 923 (e.g., Trust Zone or Chip).
  • As shown in FIG. 9, the overall architecture 901 of the Accessory Protocol can include an application layer 903 and a network layer 905. The application layer 903 includes a first ALE 907, a second ALE 909, an SL-SAP 911, a CAPEX-SAP 913, the Capability Exchange Entity 915, the Device Management Application 917, and a DME-SAP 919. While the first ALE 907 and the second ALE 909 are described herein, the Accessory Protocol may be utilized with one or more than two AL Entities. The first ALE 907 and the second ALE 909 are coupled to the CAPEX-SAP 913. The CAPEX-SAP 913 is also coupled to the Capability Exchange Entity 915. The first ALE 907, the second ALE 909, and the Capability Exchange Entity 915 are all coupled to the SL-SAP 911. Also, in the application layer 903, the Device Management Application 917 is coupled to the DME-SAP 919.
  • The network layer 905 includes an ATTACH-SAP 931, the Discover Management Entity 921, an AUTH-SAP 925, the Security Service 923 (e.g., Trust Zone or Chip), the session layer 929, a TL-SAP 935, the Transport layer 933, a CL-SAP 939, connection layer 937, and the Connectivity Interfaces 927. The Discover Management Entity 921 is coupled to the DME-SAP 919 of the network layer 905. Also, the Discover Management Entity 921 is coupled to the AUTH-SAP 925 which is coupled to the Security Service 923 (e.g., Trust Zone or Chip). In addition, the Discover Management Entity 921 is coupled to the ATTACH-SAP 931 and the Connectivity Interfaces 927. The session layer 929 is attached to the SL-SAP 911 of the application layer 903, the ATTACH-SAP 931, and the TL-SAP 935. The TL-SAP 935 is also coupled to the transport layer 933. The transport layer 933 is also coupled to the CL-SAP 939. The CL-SAP 939 is coupled to the connection layer 937. The connection layer 937 is also coupled to the Connectivity Interfaces 927.
  • FIG. 10 illustrates an overall sequence of operations for carrying out an accessory protocol according to an embodiment of the present disclosure.
  • In operation 1009, by means of user interaction or by means of a programmatic trigger, a second electronic device 1003 makes itself visible to a first electronic device 1001 via a communication between a device management application 1007 and a discovery management entity 1011. In operation 1015, by means of a user interaction or by means of a programmatic trigger, the first electronic device 1001 attempts to scan for a visible second electronic device 1003 via a communication between a device management application 1013 and a discovery management entity 1017. In operation 1019, the first electronic device 1001 authenticates the cryptographic credentials of the second electronic device 1003 via a communication between the discovery management entity 1017 and security service 1021. Similarly, in operation 1023, the second electronic device 1003 authenticates the cryptographic credentials of the first electronic device 1001 via a communication between the discovery management entity 1011 and a security service 1025.
  • In operation 1027, upon successfully concluding the authentication process, the discovery management entity 1011 on the second electronic device 1003 notifies the session layer 1029 on the second electronic device 1003. Similarly, upon successfully concluding the authentication process, the discovery management entity 1017 on the electronic device notifies a session layer 1033 on the second electronic device 1003. In operations 1051 and 1037, an application layer entity 1035 on the first electronic device 1001 registers itself to the session layer 1033 and a capability exchange entity 1039. In operation 1041, by means of a service discovery protocol, the service capability of the application layer entity 1035 on the first electronic device 1001 is made available on the second electronic device 1003. In operation 1045, an application layer entity 1047 on the second electronic device 1003 discovers the service capability of the application layer entity 1035 on the first electronic device 1001.
  • In operation 1049, the application layer entity 1047 on the second electronic device 1003 initiates a Service Connection to the application layer entity 1047 on the second electronic device 1003. In operation 1051, the application layer entity 1035 on the first electronic device 1001 accepts the Service Connection request. In operation 1053, the session layers 1033 and 1029 set up the Service Connection and configure the channels for application protocol data exchange. In operation 1055, the application layer entities 1035 and 1047 exchange APDUs with each other using multiple channels as per their mutually agreed application protocol. Herein, it is noted that the communication in operations 1041, 1053, and 1055 occurs over at least one of a plurality of connectivity technologies 1005.
  • FIG. 11 illustrates an overall sequence of operations for carrying out an accessory protocol according to an embodiment of the present disclosure.
  • Referring to FIG. 11, a sequence of operations is shown for carrying out an accessory protocol between a first electronic device 1101 and a second electronic device 1103. In operation 11A, a user input triggers establishment of device discovery. Here, a device management entity 1107 in a discovery framework 1105 uses a device connection 1109 between the first electronic device 1101 and the second electronic device 1103 for the discovery procedure. In operation 11B, an accessory description exchange happens on the device connection 1109.
  • In operation 11C, the device management entity 1107 triggers a protocol framework 1111 to establish a device connection 1115 with the network layer of the protocol. In operation 11D, a default session 1117 is implicitly established. In operation 11E, user input on an application triggers a capability exchange 1119 to establish a designated service connection 1123 for a capability exchange 1121. In operation 11F, further user input on the application triggers an application level service connection establishment for an application protocol message exchange. More specifically, a service connection 1133 is established with logical channels 1127, 1129, and 1131 for a first ALE 1125. Similarly, a service connection 1143 is established with logical channels 1137, 1139, and 1141 for a second ALE 1135.
  • FIG. 12 illustrates communication between electronic devices according to an embodiment of the present disclosure.
  • Referring to FIG. 12, a first electronic device 1201 may communicate with a second electronic device 1203 and a third electronic device 1205. According to various embodiments, a fourth application layer entity 1207 (e.g., an application program on the electronic device) may communicate with the second electronic device 1203 and the third electronic device 1205.
  • As illustrated in FIG. 12, the first electronic device 1201 may communicate with multiple electronic devices. In particular, a service agent on the first electronic device 1201 may communicate with multiple service agents across the various electronic devices. The service agent on the first electronic device 1201 may concurrently communicate with the multiple service agents across the various electronic devices.
  • According to various embodiments of the present disclosure, a service agent may be a service provider and/or a service consumer. A service agent may be both a service provider and a service consumer in relation to another service agent or in relation to a group of service agents. A service provider may provide services to a counterpart service agent. A service consumer may consume services from a counterpart service agent.
  • The first electronic device 1201 includes the fourth application layer entity 1207. As illustrated in FIG. 12, the fourth application layer entity 1207 may include a service provider 1209 (e.g., a service agent).
  • The second electronic device 1203 may include a first application layer entity 1211 and a second application layer entity 1215. The first application layer entity 1211 may include a first service consumer 1213 (e.g., a service agent). The second application layer entity 1215 may include a second service consumer 1217 (e.g., a service agent).
  • The third electronic device 1205 may include a third application layer entity 1219. The third application layer entity 1219 may include a third service consumer 1221 (e.g., a service agent).
  • According to various embodiments of the present disclosure, a single service agent may contemporaneously communicate with multiple service agents. For example, the service provider 1209 may communicate with the first service consumer 1213, the second service consumer 1217, and the third service consumer 1221.
  • According to various embodiments of the present disclosure, a service agent may contemporaneously communicate with at least one service agent as a service provider and communicate with at least one service agent as a service consumer. For example, the service agent corresponding to the service provider 1209 may contemporaneously communicate with the first service consumer 1213, the second service consumer 1217, and the third service consumer 1221, while contemporaneously communicating with a service provider (not shown) in the role of service consumer. In other words, a given service agent may contemporaneously serve in the role of a service provider and a service consumer (e.g., depending on the desired accessory services).
  • FIG. 13 illustrates communication between electronic devices according to an embodiment of the present disclosure.
  • Referring to FIG. 13, a first electronic device 1301 may communicate with a second electronic device 1303 and a third electronic device 1305. According to various embodiments, a first application layer entity 1307 (e.g., an application program on the electronic device) may communicate with the second electronic device 1303 and the third electronic device 1305.
  • The second electronic device 1303 may include a fourth application layer entity 1315. The fourth application layer entity 1315 may include a third service provider 1317.
  • The first electronic device 1301 includes the first application layer entity 1307. As illustrated in FIG. 13, the first application layer entity 1307 may include a first service consumer 1309, a second service consumer 1311, and a third service consumer 1313.
  • The third electronic device 1305 may include a second application layer entity 1319 and a third application layer entity 1323. The second application layer entity 1319 may include a first service provider 1321. The third application layer entity 1323 may include a second service provider 1325.
  • The second electronic device 1303 may include a fourth application layer entity 1315. The fourth application layer entity 1315 may include a third service provider 1317.
  • According to various embodiments of the present disclosure, an application layer entity may include one or more service agents. For example, the application layer entity may include one or more service consumers. As illustrated in FIG. 13, the first application layer entity 1307 includes a plurality of service consumers (e.g., the first service consumer 1309, the second service consumer 1311, and the third service consumer 1313).
  • According to various embodiments of the present disclosure, an electronic device may consume services from a plurality of other electronic devices. For example, the electronic device may consume services from a plurality of other electronic devices such that a subset of the services consumed by the electronic device are provided by one electronic device, and another subset of services consumed by the electronic device are provided by another electronic device.
  • As illustrated in FIG. 13, the plurality of service consumers (e.g., the first service consumer 1309, the second service consumer 1311, and the third service consumer 1313) may consume services provided by the third electronic device 1305 (e.g., services provided by the first service provider 1321 and/or the second service provider 1325) and may consume services provided by the second electronic device 1303 (e.g., services provided by the third service provider 1317).
  • According to various embodiments of the present disclosure, an application layer entity (e.g., an application program installed on an electronic device) may receive and/or consumer services provided by one or more other electronic devices in order to perform an accessory service (e.g., in order to perform a service desired by a user). According to various embodiments of the present disclosure, an application layer entity may communicate with one or more other electronic devices for data to be used in performing an accessory service (e.g., data used in performing the service desired by the user).
  • E. Application Protocol
  • As discussed above, an electronic device may be connected with a peer electronic device. The electronic device and peer electronic device may communicate to provide one or more users of at least one of the electronic device or the peer electronic device with a desired service (e.g., the accessory service). As an example, the desired service may be provided by running (e.g., executing) at least one application that is installed on at least one of the electronic device or the peer electronic device.
  • According to various embodiments of the present disclosure, the application protocol may be used to enable the accessory service. For example, the electronic device and the peer electronic device may communicate according to an application protocol in order to provide the user with the desired service. According to various embodiments of the present disclosure, the application protocol may be an agreed specification between applications installed on different electronic devices (e.g., the electronic device and the peer electronic device). The application protocol may define data exchanges (e.g., including data formats, scheme, sequence of message exchanges, and/or the like) that are independent of various connectivity technologies. For example, the application may define a data exchange using an application protocol so that the applications may perform the data exchange across a plurality of connectivity technologies (e.g., to allow for a connectivity abstraction). The application protocol may be used such that an application may only define the data exchange once and the application protocol may perform the data exchange between the electronic device and the peer electronic device regardless of the connectivity technology by which the electronic device and the peer electronic device are connected.
  • Various embodiments of the present disclosure described below relate to the application layer and the relationship between the application layer and the application protocol.
  • FIG. 14 illustrates a configuration of an application layer in relation to a network layer according to an embodiment of the present disclosure.
  • Referring to FIG. 14, an application layer 1401 may operate logically on top of a network protocol (e.g., a session layer) 1410. For example, the application layer 1401 may leverage the network protocol 1410 for communication between the electronic device and the peer electronic device. In particular, the application layer 1401 may communicate data between the electronic device and the peer electronic device (e.g., to provide an accessory service) using the network protocol 1410.
  • According to various embodiments of the present disclosure, data may be communicated between the application layer 1401 and the network protocol 1410 or session layer using a session layer data entity service access point 1413. According to various embodiments of the present disclosure, data may be communicated between the application layer 1401 and the network protocol 1410 or session layer using a session layer management entity service access point 1412.
  • According to various embodiments of the present disclosure, data may be communicated between a capability discovery layer 1409 and the network protocol 1410 or session layer using the session layer data entity service access point 1413. According to various embodiments of the present disclosure, data may be communicated between the capability discovery layer 1409 and the network protocol 1410 or session layer using a session layer management entity service access point 1412.
  • According to various embodiments of the present disclosure, data may be communicated between the application layer 1401 and the capability discovery layer 1409 using a capability discovery service access point 1411.
  • As illustrated in FIG. 14, the application layer 1401 may include at least one application layer entity 1402. The application layer 1401 may include application logic that uses at least one accessory service to provide a service to a user of at least one of the electronic device or the peer electronic device. The application layer entity 1402 may include logic that is used to fulfill a purpose/desire of a user. The application layer entity 1402 may include at least one accessory service to fulfill the purpose/desire of the user. The accessory service may include a set of instructions and/or data for performing a service for the user. The application layer entity 1402 may leverage the specific service performed by the various applicable application services to perform an overarching service for the user.
  • The application layer entity 1402 may include at least one service provider (e.g., SP1 1403, SP2 1404, SPn 1405, and/or the like) and/or at least one service consumer (e.g., SC1 1406, SC2 1407, SCn 1408, and/or the like).
  • The at least one service provider (e.g., SP1 1403, SP2 1404, SPn 1405, and/or the like) may be a logical entity that provides an accessory service to at least one service consumer using a certain protocol (e.g., that includes the application protocol and the network protocol). According to various embodiments of the present disclosure, the at least one service provider may provide the accessory service to the at least one service consumer by responding to service requests received from the at least one service consumer. According to various embodiments of the present disclosure, the at least one service provider may provide an accessory service without receiving a service request from at least one consumer device. The at least one service provider may provide an accessory service or data related thereto according to a defined protocol (e.g., a defined transaction and data).
  • The at least one service consumer (e.g., SC1 1406, SC2 1407, SCn 1408, and/or the like) may be a logical entity that consumes an accessory service. For example, the at least one service consumer may be a logical entity that consumes an accessory service provided by at least one service provider. The at least one consumer may request an accessory service or data related thereto from at least one service provider.
  • According to various embodiments, at least one service provider of an electronic device may provide an accessory service or data related thereto to at least one service consumer on another electronic device (e.g., a peer electronic device) peered with the electronic device that includes the at least one service provider.
  • The application protocol may define a set of messages that are exchanged between the at least one service provider and the at least one service consumer to perform/provide an accessory service. The at least one service provider and the at least one service consumer may be configured to generate and interpret the messages exchanged between the at least one service provider and the at least one service consumer. The at least one service provider and the at least one service consumer may be configured to perform actions according to a received message exchanged between the at least one service provider and the at least one service consumer.
  • The application layer entity 1402 may provide data related thereto to another electronic device (e.g., the peer electronic device). For example, the application layer entity 1402 may advertise at least one of an identity thereof, a capability thereof (e.g., the list of services that the application layer entity 1402 may provide) and/or the like. According to various embodiments of the present disclosure, the application layer entity 1402 may advertise the identity thereof, the capability thereof, and/or the like using a capability discovery layer 1409. According to various embodiments of the present disclosure, the application layer entity 1402 may advertise the identity thereof, the capability thereof, and/or the like independent of the capability discovery layer 1409. For example, as illustrated in FIG. 9, the application layer entity 907 and 909 may communicate data to the network layer 905 without having to send the data through the capability exchange entity 915.
  • As discussed above, the application layer 1401 may communicate data between the electronic device and the peer electronic device (e.g., to provide an accessory service) using the network protocol 1410. The network protocol 1410 may configure a session layer that enables the at least one service provider (e.g., SP1 1403, SP2 1404, SPn 1405, and/or the like) and/or at least one service consumer (e.g., SC1 1406, SC2 1407, SCn 1408, and/or the like) to exchange messages. For example, the session layer may enable the at least one service provider and/or at least one service consumer to setup a conduit for message exchange. The network protocol 1410 may allow the at least one service provider and/or at least one service consumer to define a number of channels, a Quality of Service (QoS), and/or the like for message exchange therebetween.
  • FIG. 15 illustrates a configuration of an application layer according to an embodiment of the present disclosure.
  • As discussed above, an application layer may include at least one application layer. Referring to FIG. 15, an application layer 1501 may include an application layer entity 1502, an application layer entity 1503, and an application layer entity 1504. Each application layer entity may include at least one service agent. For example, as illustrated in FIG. 15, the application layer entity 1502 may include a service agent 1505, a service agent 1506, and a service agent 1507; the application layer entity 1503 may include a service agent 1508, a service agent 1509, and a service agent 1510; and the application layer entity 1504 may include a service agent 1511, a service agent 1512, and a service agent 1513. Accordingly, an application layer may include at least one service agent.
  • As discussed above in relation to FIG. 14, an application layer may include application logic with which the application layer provides a service to a user of at least one of the electronic device or the peer electronic device. According to various embodiments of the present disclosure, the application layer may use at least one service agent to fulfill a purpose/desire of the user. For example, the application layer 1501 may use at least one of the service agent 1505 through the service agent 1513 to fulfill a purpose/desire of the user.
  • A service agent may include logic that may manage communication between at least one service provider and at least one service consumer used in order to provide a service to the user. According to various embodiments of the present disclosure, the service agent may be at least one of a service provider and/or a service consumer. Each service agent carries out instructions/actions according to a defined role of the service agent for a specific service (e.g., according to whether the service agent is implemented as a service provider or a service consumer).
  • Each service agent within an application layer may include a service agent identifier. The service agent identifier may be a unique identification across service agents on a given electronic device. For example, the service agent identifier may be a unique identification across service agents on a given electronic device that implements the same accessory service profile.
  • Each service agent within an application layer may be associated with an accessory service profile. The accessory service profile may enable a service provider to provide an accessory service to a service consumer. For example, the accessory service profile may define a specification and/or protocol according to which communication between a service provider and an accessory may be configured. The accessory service profile may define a number of channels across which a service provider and a service consumer may communicate, a QoS for communication between a service provider and a service consumer (e.g., a QoS for each respective channel), a structure of messages communicated between a service provider and a service consumer, a channel over which a particular message may be communicated, define message semantics, message sequences (e.g., identify valid message sequences) of message exchanges between a service provider and a service consumer, which of a service provider and a service consumer may initiate a service connection therebetween, and/or the like. An accessory service profile may have an ASP ID associated therewith.
  • According to various embodiments of the present disclosure, a service agent may be identified by a combination of an applicable ASP ID and a service agent identifier. As illustrated in FIG. 15, the service agent 1505 may be identified by a combination of an ASP ID 1 and a service agent identifier 1; the service agent 1506 may be identified by a combination of an ASP ID 2 and a service profile identifier 1; the service agent 1508 may be identified by a combination of an ASP ID 1 and a service agent identifier 2; and the service agent 1509 may be identified by a combination of an ASP ID 3 and a service agent identifier 1.
  • As discussed above, the accessory service profile may enable a service provider to provide an accessory service to a service consumer. For example, the accessory service profile may define a specification and/or protocol according to which communication between a service provider and an accessory may be configured. The accessory service profile may be used as a template with which a developer may develop an accessory using previously defined characteristics associated with the application, and with the communication between the electronic device and the peer electronic device. Development of an application using a predefined accessory service profile may reduce development time and thus may encourage developers to develop applications against electronic devices that leverage the accessory service profile and associated protocols.
  • The application layer entity 1402 may use accessory services corresponding to a set of service agents, and manage and/or use the service agents in order to achieve a purpose (e.g., to fulfill the desired purpose/desire of a user). Each application layer entity may have a corresponding unique application layer entity identifier that uniquely identifies the application layer entity on a given electronic device. The applicable set of accessory service profiles and service agents (e.g., respectively identified using the ASP ID and the service agent identifier) may be bound to the application layer entity identifier.
  • According to various embodiments of the present disclosure, an application protocol may define a structure of messages communicated between an electronic device and a peer electronic device. The messages may be communicated according to a predefined format. For example, the messages may be communicated according to a binary format, a JSON format, an XML format, and/or the like. Examples of message structures defined in an accessory service profile according to the applicable application protocol are described below in reference to FIGS. 16 and 17.
  • FIG. 16 illustrates a structure of a message according to an application protocol according to an embodiment of the present disclosure.
  • Referring to FIG. 16, a binary structure of a message for a request and/or an indication is illustrated. According to various embodiments of the present disclosure, any message for a request and/or indication communicated between an electronic device and a peer electronic device may include at least two parts: a message identifier 1601 and parameters.
  • The message identifier 1601 may correspond to a field having 8 bits. The message identifier 1601 may correspond to a field used to identify the specific message. The message identifier 1601 may uniquely identify a particular type of message across the corresponding accessory service profile. The message identifier 1601 may include elements identifying a feature, an intent, a type, and/or the like. The feature may correspond to an identification of a high-level function of the service. The intent may correspond to the service objective. The type may correspond to the type of the message. For example, the type may correspond to a request, a response, an indication, and/or the like. If the type corresponds to a request, then the type may indicate that a response message is expected. If the type corresponds to a response, then the type may indicate that the message is a response to a prior request message. If the type corresponds to an indication, then the type may indicate that a response message is not expected.
  • The parameters may include a parameter name, a parameter length, and a parameter value. For example, as illustrated in FIG. 16, the message may include parameters that include a parameter 1 name 1603, a parameter 1 length 1605, a parameter 1 value 1607, a field for additional information associated with the parameter 1 value referred to as parameter 1 value (contd.) 1609, a parameter 2 name 1611, a parameter 2 value 1613, and a field for additional information associated with the parameter 2 value referred to as parameter 2 value (contd.) 1615. The parameter 1 name 1603 may correspond to a field in which the parameter name is communicated. The parameter 1 value 1607 may correspond to a field in which the value of the corresponding parameter is communicated. The parameter 1 value (contd.) 1609 may be a field in which additional information regarding the value of the corresponding parameter is communicated.
  • Each parameter may have a variable length or a fixed length. For example, the parameter 1 illustrated in FIG. 16 may have a variable length. If the parameter has a variable length, then the message may include an additional parameter field (e.g., parameter 1 length 1605) in which information regarding the length of the corresponding parameter is communicated. As another example, the parameter 2 illustrated in FIG. 16 may have a fixed length. If the parameter has a fixed length, then communication of information regarding length of the corresponding parameter may be unnecessary. The parameter name field may have 8 bits. Thus, the message may not include an additional parameter field in which information regarding the length of the corresponding parameter is communicated. According to various embodiments of the present disclosure, the parameters may be communicated in the message in any order irrespective of whether the corresponding parameter has a fixed length or a variable length.
  • FIG. 17 illustrates a structure of a message according to an application protocol according to an embodiment of the present disclosure.
  • Referring to FIG. 17, a binary structure of a message for a response (e.g., a response to a message for a request and/or an indication) is provided. According to various embodiments of the present disclosure, any message for a response communicated between an electronic device and a peer electronic device may include at least two parts: a message identifier 1701 and a result. The message for a response may also include a reason. The message for a response may also include parameters.
  • The message identifier 1701 may correspond to a field having 8 bits. The message identifier 1701 may correspond to a field used to identify the specific message.
  • The results may include a result identifier 1703 and a result value 1705. The result identifier 1703 may correspond to a field having 8 bits, and the results value 1705 may correspond to a field having 16 bits.
  • The reason may include a reason identifier 1707 and a reason value 1709. The reason identifier may correspond to a field having 16 bits, and the reason value 1709 may correspond to a field having 16 bits.
  • The parameter may include a parameter 2 name 1711, and a parameter 2 value 1713. The parameter may also include a parameter 2 value (contd.) 1715. The parameter 2 name 1711 may correspond to a field in which the parameter name is communicated. The parameter 2 value 1713 may correspond to a field in which the value of the corresponding parameter is communicated. The parameter 2 value (contd.) 1715 may be a field in which additional information regarding the value of the corresponding parameter is communicated.
  • FIG. 18 illustrates an addressing of a service agent according to an embodiment of the present disclosure.
  • Referring to FIG. 18, an address of a service agent may be used to facilitate communication between applicable service agents on an electronic device and/or a peer electronic device. The address of the service agent may include a peer device identifier 1801, an application layer entity 1803, an ASP ID 1805, and a service agent identifier 1807.
  • The peer device identifier 1801 may identify the device that hosts the application layer entity that may include the service agent.
  • The application layer entity identifier 1803 may identify the application layer entity within the device that may include the service agent. As an example, the application layer entity identifier 1803 may be obtained by registering with a capability discovery layer (e.g., be declaring or identifying the set of service agents used by the application layer entity). The application layer entity advertises its capabilities by using the capability discovery layer to advertise to a peer electronic device the application layer entity and the associated service agents. If the application layer entity does not wish to receive service connection requests (e.g., from another application layer entity), then the application layer entity may not register with the capability discovery layer. The application layer entity may not register with the capability discovery layer if the application layer entity has or may use an alternative mechanism for advertising or publishing capabilities and/or information to another application layer entity (e.g., on a peer electronic device).
  • The ASP ID 1805 may identify the accessory service profile that the service agent implements.
  • The service agent identifier 1807 may identify the service agent among the service agents across application layer entities on the device that implement the same accessory service profile. The service agent identifier 1807 may be obtained by registering with the session layer.
  • According to various embodiments of the present disclosure, a service agent may establish at least one service connections with another service agent using the session layer. A service agent may use the unique addressing of the service agent for setting up a service connection.
  • FIG. 19 illustrates configuration of a first electronic device and a second electronic device for communication therebetween according to an embodiment of the present disclosure. FIG. 20 illustrates a method of communication between a first electronic device and a second electronic device according to an embodiment of the present disclosure.
  • Referring to FIG. 19, a service discovery procedure between a first electronic device 1901 and a second electronic device 1903 is illustrated. The first electronic device 1901 has a peer device identifier 1, and the second electronic device 1903 has an peer device identifier 2.
  • The first electronic device 1901 may include an application layer entity 1905 having an application layer entity identifier 1. The application layer entity 1905 may include a service agent 1907 and a service agent 1909. The service agent 1907 may be identified by the combination of an ASP ID 1 and a service agent identifier 1. The service agent 1909 may be identified by the combination of an ASP ID 2 and a service agent identifier 1.
  • Similarly, the second electronic device 1903 may include an application layer entity 1917 having an application layer entity identifier 1. The application layer entity 1917 may include a service agent 1921 and a service agent 1919. The service agent 1921 may be identified by the combination of an ASP ID 1 and a service agent identifier 1. The service agent 1919 may be identified by the combination of the accessory service identifier 2 and the service agent identifier 1.
  • According to various embodiments of the present disclosure, providing and/or consumption of an accessory service by a service agent may include service discovery, service connection establishment, application protocol message exchange, and service connection termination.
  • Referring to FIG. 20, according to service discovery, an application layer entity of a first electronic device may advertise itself or may discover an application layer entity on a second electronic device (e.g., that corresponds to an application layer entity of interest). For example, at operation 2001, the application layer entity of the first electronic device may advertise itself. At operation 2002, the application layer entity of the second electronic device may discover the application layer entity of the first electronic device (e.g., that is advertising itself). The application layer entity of the first electronic device may obtain information about an application layer entity on the second electronic device during service discovery. The information about an application layer entity on the second electronic device may include addresses of the service agents associated with the discovered application layer entity.
  • As illustrated in FIG. 19, the service agent 1907 may register with a session layer 1911 of the first electronic device 1901. The registration of the service agent 1907 with the session layer 1911 is illustrated by reference numeral 1913. Similarly, the registration of the service agent 1909 with the session layer 1911 is illustrated by reference numeral 1914. The service agent 1909 may register with the capability discovery layer 1916. For example, registration for the service agent 1909 with the capability discovery layer 1916 is illustrated by reference numeral 191. If the service agent 1909 registers with the capability discovery layer 1916, then the service agent 1909 may obtain an application layer entity identifier. If the service agent 1907 registers with the session layer 1911, then the service agent 1907 may obtain a service agent identifier (e.g., in the example illustrated in FIG. 19, the service agent 1907 has obtained a service agent identifier 1). The combination of the ASP ID and the service agent identifier is a unique identifier among service agents across an application layer entity on a given electronic device. Similarly, the service agent 1909 may register with the session layer 1911. If the service agent 1909 registers with the session layer 1911, then the service agent 1909 may obtain a service agent identifier (e.g., in the example illustrated in FIG. 19, the service agent 1909 has obtained a service agent identifier 1). Registration of the service agent 1909 with the session layer 1911 is illustrated by reference numeral 1914. The service agent 1909 may register with the capability discovery layer 1916. For example, registration of the service agent 1909 with the capability discovery layer 1916 is illustrated by reference numeral 1915. If the service agent 1909 registers with the capability discovery layer 1916, then the service agent 1909 may obtain an application layer entity identifier.
  • The service agent 1919 may register with the session layer 1923 of the second electronic device 1903. If the service agent 1919 registers with the session layer 1923, then the service agent 1919 may obtain a service agent identifier (e.g., in the example illustrated in FIG. 19, the service agent 1919 has obtained a service agent identifier 1). Similarly, the service agent 1921 may register with the session layer 1923. If the service agent 1921 registers with the session layer 1923, then the service agent 1921 may obtain a service agent identifier (e.g., in the example illustrated in FIG. 19, the service agent 1921 has obtained a service agent identifier 1). Registration of the service agent 1921 with the session layer 1923 is illustrated by reference numeral 1929.
  • According to various embodiments of the present disclosure, an application layer entity may use a capability discovery layer in order to advertise capabilities of the application layer entity to another application layer entity. Similarly, an application layer entity may use a capability discovery layer to discover another application layer entity. For example, the application layer entity may use the capability discovery layer to discover (e.g., identify) another application layer entity that has a desired capability set (e.g., a desired set of service agents).
  • As illustrated in FIG. 19, the application layer entity 1905 may register with a capability discovery layer 1923 of the first electronic device 1901. If the application layer entity 1905 registers with the capability discovery layer 1923, then the application layer entity 1905 may obtain an application layer entity identifier. The application layer entity identifier may be associated with the set of the ASP ID and the service agent identifier (e.g., {ASP ID, service agent identifier}) of the application layer entity. The application layer entity identifier and the set of ASP IDs and service agent identifiers may form at least a part of the information (e.g., the application layer entity information) that is advertised by the capability discovery layer. For example, if the application layer entity 1905 registers with the capability discovery layer 1923, then the capability discovery layer 1923 may advertise (to the second electronic device) information including the application layer entity identifier, the service agent identifier of the service agent 197, the service agent identifier of the service agent 1909, the ASP ID associated with the service agent 1907, and the ASP ID associated with the service agent 1909.
  • The capability discovery layer of the first electronic device may communicate with the capability discovery layer of the second electronic device to provide information from which a capability set of the first electronic device may be identified. The capability discovery layer of the first electronic device may respond to queries from capability discovery layers of the second electronic device in order to provide information relating to the capability set of the first electronic device.
  • As illustrated in FIG. 19, the application layer entity 1917 may coordinate with a capability discovery layer 1925 of the second electronic device 1903 to determine whether an electronic device in proximity of or otherwise connected to the second electronic device 1903 has a desired capability set. For example, if application layer entity 1917 has a service agent that wants to act as a service consumer to consume an accessory service, then the application layer entity 1917 may coordinate with the capability discovery layer 1925 to determine whether any electronic device in proximity of or otherwise connected to the second electronic device 1903 has an applicable service agent that may act as a service provider to provide information associated with the desired accessory service.
  • The application layer entity 1917 may query the capability discovery layer 1925 to obtain the application layer entity identifier and the identities of the service agents of an application layer of interest on the second electronic device.
  • The capability discovery layer 1925 of the second electronic device 1903 may communicate with the capability discovery layer 1916 of the first electronic device 1901 to receive information relating to the capability set of the first electronic device 1901 (e.g., to receive information relating to the capability set of a specific application layer entity on the first electronic device 1901). The communication relating to the query for information relating to the capability set of the first electronic device 1901 between the application layer entity 1917 and the capability discovery layer 1925 is illustrated by reference numeral 1931. The capability discovery layer 1925 may query the capability discovery layer 1916 when the capability discovery layer 1925 is queried by the application layer entity 1917 of the second electronic device 1903, or the capability discovery layer 1925 may receive information relating to the capability set of the first electronic device 1901 at specific times (e.g., at connection between the first electronic device 1901 and the second electronic device 1903, at an update on the capability set of at least one of the first electronic device 1901 or the second electronic device 1903, at a predetermined periodic interval, and/or the like). The capability discovery layer 1925 may provide the application layer entity 1917 a response to the query of the capability set of the first electronic device 1901.
  • At operation 2003, a service connection is established between the first electronic device and the second electronic device. For example, at operation 2003, the service agents of the application layer entity of the first electronic device and the service agents of the application layer entity of the second electronic device establish at least one service connection therebetween. According to service connection establishment, a service agent of an application layer entity on the second electronic device may establish a service connection in order to setup a conduit for message exchange according to the application protocol.
  • The application layer entity 1917 of the second electronic device 1903 may determine whether the application layer entity 1905 of the first electronic device 1901 has a desired capability (e.g., uses a desired service agent) according to the response that the application layer entity 1917 received from the capability discovery layer 1925 to the query 1931. If the application layer entity 1917 determines that the application layer entity 1905 has a desired capability set (e.g., uses a desired service agent), then at least one service agent of the application layer entity 1917 may communicate with at least one service agent of the application layer entity 1905. For example, if information relating to the capability set of the first electronic device 1901 indicates a desired capability set, then a service agent 1921 may establish a service connection with the service agent 1909. The service connection may be established between the session layer 1933 of the second electronic device 1903 and the first electronic device 1901.
  • According to various embodiments of the present disclosure, if at least one service connection is established between a service agent of the second electronic device and a service agent of the first electronic device, then the service agent of the second electronic device and the service agent of the first electronic device may communicate information (e.g., information relating to an accessory service and/or the like). The service agent of an application layer entity on a given electronic device may use the address of a desired service agent on an application layer on an electronic device in order to establish a connection therebetween. For example, the service agent 1921 may use the address (e.g., the peer device identifier, the application layer entity identifier, the ASP ID, and the service agent identifier) of the service agent 1909 in order to initiate and setup a connection between the service agent 1921 and the service agent 1909.
  • At operation 2004, messages are exchanged between the first electronic device and the second electronic device in order to fulfill a desired purpose. For example, the service agents of the application layer entity of the first electronic device and the service agents of the application layer entity of the second electronic device may exchange messages in order to fulfill the desired purpose. The messages may be exchanged according to the applicable application protocol. The service agents of the application layer entity of the first electronic device and the service agents of the application layer entity of the second electronic device may exchange messages in order to respectively provide and consume an accessory service.
  • At operation 2005, the service connections are terminated. The application layer entity of the first electronic device and the application layer entity of the second electronic device may terminate the service connection that were established to allow the service agents to fulfill the desired purpose.
  • According to various embodiments of the present disclosure, if the desired purpose is fulfilled, then the service connection between a service agent of the second electronic device and a service agent of the first electronic device may be terminated.
  • The service connection may be terminated by identifying a service connection to be terminated. For example, the application layer entity may send a termination request to terminate a service connection with the service connection identifier identifying the service connection that the application layer entity desires to terminate.
  • FIG. 21 illustrates a signaling diagram for a service discovery according to an embodiment of the present disclosure.
  • Referring to FIG. 21, an application layer entity of a first electronic device may register with a session layer of the application layer entity. For example, the application layer of the first electronic device may register with the session layer management entity of the first electronic device.
  • As illustrated in FIG. 21, the application layer entity 2101 may register with the session layer management entity 2103. The application layer entity 2101 may send a registration request (e.g., SLME-Register.request) 2111 to the session layer management entity 2103. The registration request 2111 may include an ASP ID associated with application layer entity 2101.
  • In response to the registration request 2111, the session layer management entity 2103 may send a registration confirmation (e.g., SLME-Register.confirm) 2113 to the application layer entity 2101 of the first electronic device. The registration confirmation 2113 may include a service agent identifier associated with a service agent of the application layer entity 2101 to identify the service agent.
  • Thereafter, the application layer entity 2101 of the first electronic device may send a registration request (e.g., CD-Register.request) 2115 to the capability discovery layer 2105 of the first electronic device. The registration request 2115 may include a list of the capabilities of the application layer entity 2101. For example, the registration request 2115 may include a list of the associated service agent identifiers and ASP IDs associated with the various service agents of the application layer entity 2101.
  • In response to the registration request 2115, the capability discovery layer 2105 may send a registration confirmation (e.g., CD-Register.confirm) 2117 to the application layer entity 2101. The registration confirmation may include an application layer entity identifier to identify the application layer entity 2101 being registered with the capability discovery layer 2105.
  • According to various embodiments of the present disclosure, a first electronic device and a second electronic device may perform a procedure for identifying capabilities of at least one of the first electronic device or the second electronic device. For example, the first electronic device and the second electronic device may perform a capability exchange. The capability exchange may provide the first electronic device with the capability set of the second electronic device (e.g., a list of services that the second electronic device may perform, a list of service agents on the second electronic device, and/or the like), and may provide the second electronic device with the capability set of the first electronic device.
  • As illustrated in FIG. 21, the capability discovery layer 2105 of the first electronic device may communicate with a capability discovery layer 2107 of a second electronic device to communicate capabilities of at least one of the first electronic device or the second electronic device. For example, the capability discovery layer 2105 and the capability discovery layer 2107 may perform a capability exchange procedure 2119.
  • If an application layer entity on the second electronic device wants to provide a service to a user (e.g., to perform an accessory service), then the application layer entity may query the capability discovery layer of the second electronic device to determine whether an application layer entity or a service agent is available to provide information for the service and/or to identify an available application layer entity or service agent to provide information for the service.
  • An application layer entity 2109 on the second electronic device may send a service request (e.g., CD-ServiceList.request) 2121 to the capability discovery layer 2107 of the second electronic device. The service request 2121 may correspond to a query for an identification of application layer entities and/or service agents that may be available to provide information for a desired service (e.g., an accessory service). The service request 2121 may include a filter which is used to focus the query on logical entities that may be relevant to the second electronic device, the desired service, and/or the like. The filters on the service request 2121 may correspond to a filter related to an ASP ID, peer device identifiers, and/or the like. For example, the filter may serve to focus the query on capabilities of a specific device, on availability for information sources of a particular application, and/or the like.
  • The capability discovery layer 2107 of the second electronic device may provide a list of capabilities to the application layer entity 2109. For example, in response to the service request 2121, the capability discovery layer 2107 may provide a service confirmation (e.g., CD-ServiceList.confirmation) 2123. The service confirmation 2123 may include a list of associated application layer entity identifiers, service agent identifiers, and ASP IDs. The service confirmation 2123 may provide information from which the application layer entity 2109 may determine whether a desired capability may be satisfied (e.g., whether logical entity such as an application layer entity and/or a service agent is available to provide information for a desired service).
  • FIG. 22 illustrates a signaling diagram for establishing a service connection according to an embodiment of the present disclosure.
  • Referring to FIG. 22, a logical entity of a first electronic device may wish to communicate with a logical entity of a second electronic device to communicate information relating to a desired service (e.g., an accessory service). For example, in order to provide an accessory service to a user, a logical entity of the first electronic device may communicate with a logical entity of the second electronic device to communicate information relating to the accessory service. According to various embodiments of the present disclosure, a service agent on the first electronic device may communicate with a service agent on the second electronic device in order to communicate information relating to the desired service. According to various embodiments of the present disclosure, in order to communicate information relating to a desired service, the service agent on the first electronic device may initiate and setup (e.g., establish) at least one service connection over which information relating to the desired service is communicated.
  • As illustrated in FIG. 22, a service agent 2201 on the first electronic device may send a service connection creation request (e.g., SLME-ServiceConnectionCreation.request) 2209 to a session layer of the first electronic device. For example, the service agent 2201 may send the service connection creation request 2209 to a session layer management entity 2203 of the first electronic device. The service connection creation request 2209 may include a peer device identifier, a service agent identifier such as an originating service agent identifier that identifies the service agent from which the request to establish the service connection originated, a terminating service agent identifier that identifies the service agent with which a service connection is desired, an ASP ID, and/or the like. The peer device identifier may identify an electronic device with which service connection is desired.
  • If the session layer management entity 2203 receives a request to establish a service connection, then the session layer management entity 2203 may communicate with a session layer management entity of the second electronic device on which the desired service agent resides. As an example, the session layer management entity 2203 may communicate with the session layer management entity of the peer device identified in the service connection creation request 2209. According to various embodiments of the present disclosure, if the session layer management entity 2203 receives a service connection creation request 2209, then the session layer management entity 2203 may send a service connection creation request message (e.g., ServiceConnectionCreationRequest) 2211 to a session layer management entity 2205 of the second electronic device. The service connection creation request message 2211 may include a service agent identifier such as an originating service agent identifier that identifies the service agent from which the request to establish the service connection originated, a terminating service agent identifier that identifies the service agent with which a service connection is desired, an ASP ID, and/or the like.
  • If the session layer management entity 2205 of the second electronic device receives the service connection creation request message 2211, then the session layer management entity 2205 may send to a service agent 2207 on the second electronic device an indication that the service agent on the first electronic device wants to establish a service connection therewith. For example, the session layer management entity 2205 may send a service connection creation indication (e.g., SLME-ServiceConnectionCreation.indication) 2213 to the service agent 2207. The service connection creation indication 2213 may include a peer device identifier, a service agent identifier such as an originating service agent identifier that identifies the service agent from which the request to establish the service connection originated, a terminating service agent identifier that identifies the service agent with which a service connection is desired, an ASP ID, and/or the like. The peer device identifier may identify the electronic device from which the request to establish the service connection originated.
  • In response to receiving a service connection creation indication, a logical entity on the second electronic device, may determine whether to accept the service connection creation request. For example, in response to receiving a service connection creation indication, the service agent 2207 of the second electronic device may determine whether to accept the service connection creation request of the service agent 2201 of the first electronic device. For example, the service agent 2207 may authenticate the service agent 220, and/or the like.
  • The service agent 2207 may send a service connection creation response (e.g., SLME-ServiceConnectionCreation.response) 2215 to the session layer management entity 2205 of the second electronic device. The service connection creation response may indicate whether the request for service connection creation is accepted, conditions and/or parameters for the service connection, and/or the like.
  • If the session layer management entity 2205 receives the service connection creation response 2215 from the service agent 2207, then the session layer management entity 2205 may send a service connection creation response message (e.g., ServiceConnectionCreationResponse) 2217 to the session layer management entity 2203 of the first electronic device. The service connection creation response message 2217 may include a service agent identifier such as an originating service agent identifier that identifies the service agent from which the request to establish the service connection originated, a terminating service agent identifier that identifies the service agent with which a service connection is desired, an ASP ID, and/or the like. The service connection creation response message 2217 may indicate whether the request for service connection creation is accepted, conditions and/or parameters for the service connection, and/or the like.
  • According to various embodiments of the present disclosure, the session layer management entity 2205 may start a timer upon receiving a service connection creation request message 2211. The timer may be used to determine whether the service connection creation request message has timed out. For example, the timer may be used to determine whether the service agent 2207 has responded to the service connection creation indication 2213 within a preset time. If the service agent 2207 has not responded to the service connection creation indication 2213 within the preset time, then the session layer management entity 2205 may send a service connection creation response message 2217 that indicates to the service agent 2201 (e.g., through the session layer management entity 2203) that the service agent 2207 is unavailable, that the request for a service connection has timed out, and/or the like. For example, upon expiration of the timer, then the session layer management entity 2205 may send a service connection creation response message 2217 that indicates to the service agent 2201 (e.g., through the session layer management entity 2203) that the service agent 2207 is unavailable, that the request for a service connection has timed out, and/or the like.
  • If the session layer management entity 2203 receives the service connection creation response message 2217, then the session layer management entity 2203 may send a service connection creation confirmation (SLME-ServiceConnectionCreation.confirm) 2219 to the service agent 2201 (e.g., to the service agent at which the request for the service connection originated). The service connection creation confirmation 2219 may include a peer device identifier, a service agent identifier such as an originating service agent identifier that identifies the service agent from which the request to establish the service connection originated, a terminating service agent identifier that identifies the service agent with which a service connection is desired, an ASP ID, and/or the like. The peer device identifier may identify the peer electronic device with which service connection is desired.
  • FIG. 23 illustrates a service connection and communicating using an application protocol according to various embodiments of the present disclosure. FIG. 24 illustrates a procedure for establishing a service connection according to an embodiment of the present disclosure.
  • Referring to FIG. 23, a service connection procedure between a first electronic device 2301 and a second electronic device 2303 is illustrated. The first electronic device 2301 has a peer device identifier 1, and the second electronic device 2303 has a peer device identifier 2.
  • The first electronic device 2301 may include an application layer entity 2305 having an application layer entity identifier 1. The application layer entity 2305 may include a service agent 2307 and a service agent 2309. The service agent 2307 may be identified by the combination of an ASP ID 2 and a service agent identifier 1. The service agent 2309 may be identified by the combination of an ASP ID 1 and a service agent identifier 1.
  • Similarly, the second electronic device 2303 may include an application layer entity 2313 having an application layer entity identifier 1. The application layer entity 2313 may include a service agent 2315 and a service agent 2317. The service agent 2315 may be identified by the combination of an ASP ID 1 and a service agent identifier 1. The service agent 2317 may be identified by the combination of the accessory service identifier 2 and the service agent identifier 1.
  • Referring to FIG. 24, if an electronic device performs an accessory service or otherwise determines to fulfill a purpose/desire (e.g., to provide a user thereof with a service), then the electronic device may establish a service connection with a peer electronic device.
  • At operation 2401, a service agent of the electronic device sends a request to establish a service connection to an applicable session layer. For example, as illustrated in FIG. 23, the service agent 2307 may initiate a service connection by communicating with a session layer 2311 of the first electronic device 2301. The initiation of the service connection is identified by reference numeral 2321. The service agent 2307 may send a request to establish a service connection to the session layer 2311.
  • At operation 2403, the session layer sends a request to establish a service connection to an applicable session layer. For example, as illustrated in FIG. 23, the session layer 2311 of the first electronic device 2301 may send a request to establish a service connection to a session layer 2319 of the second electronic device 2303.
  • At operation 2405, the session layer sends an indication of a request to establish a service connection to an applicable service agent. For example, as illustrated in FIG. 23, the session layer 2319 may send an indication to the service agent 2317 of the second electronic device 2303 that the session layer 2319 received a request to establish a service connection (e.g., between the service agent 2307 and the service agent 2317).
  • At operation 2407, the service agent determines whether to accept the service connection request. For example, as illustrated in FIG. 23, the service agent 2317 may determine whether to accept the service connection request for establishing a service connection (e.g., between the service agent 2307 and the service agent 2317).
  • At operation 2409, the service agent sends a response to the service connection request to the applicable session layer. For example, as illustrated in FIG. 23, the service agent 2317 sends the response to the service connection request to the session layer 2319. The response to the service connection request provides an indication as to whether the service agent 2317 accepts the service connection (e.g., between the service agent 2307 and the service agent 2317). The response to the service connection request communicated between the service agent 2317 and the session layer 2319 is illustrated by reference numeral 2323.
  • At operation 2411, the session layer determines whether to accept the service connection according to the response received from the service agent. For example, as illustrated in FIG. 23, the session layer 2319 may determine whether to accept the service connection (e.g., whether to establish the service connection between the service agent 2307 and the service agent 2317) according to the response received from the service agent 2317 as to whether the service agent 2317 accepts the service connection.
  • If the session layer determines to accept the service connection at operation 2411, then the service connection procedure may proceed to operation 2413 at which the session layer establishes the service connection. For example, as illustrated in FIG. 23, if the session layer 2319 determines to accept the service connection request received from the session layer 2311, then the session layer 2319 may communicate with the session layer 2311 to establish the service connection between the service agent 2307 and the service agent 2317. Thereafter, the service connection procedure proceeds to operation 2415.
  • At operation 2415, the applicable service agents communicate according to the application protocol. For example, as illustrated by reference numeral 2325, if the service connection is established between the service agent 2307 and the service agent 2317 (e.g., using the session layer 2311 and the session layer 2319), then the service agent 2307 and the service agent 2317 may communicate. The service agent 2307 and the service agent 2317 may communicate using an accessory service profile specific application protocol.
  • According to various embodiments of the present disclosure, an electronic device may include a service agent that acts as a service provider and a service agent that acts as a service consumer at any given time. For example, an electronic device is not limited to only include service agents acting as service providers or service consumers at a given time. According to various embodiments of the present disclosure, a service agent may act as a service provider in relation to communication with a first peer electronic device and the service agent may act as a service consumer in relation to communication with a second peer electronic device.
  • According to various embodiments of the present disclosure, a service consumer may be configured to request a service provider to provide the service consumer with an accessory service or information relating thereto. The service consumer may be configured to request the service provider using a message configured to the application protocol for the applicable accessory service profile. The service consumer may be configured to receive messages (e.g., accessory service or information relating thereto) from the service provider. The service consumer may be configured to process or interpret messages received from the service provider according to the application protocol for the applicable accessory service profile.
  • According to various embodiments of the present disclosure, a service provider may be configured to receive a request and/or a message from a service consumer. The service provider may be configured to process and execute procedures in response to the request and/or message received from the service consumer according to the application protocol for the applicable accessory service profile. The service provider may be configured to provide the service consumer with an accessory service or information relating thereto. According to various embodiments of the present disclosure, a service provider may serve one or more service consumers.
  • According to various embodiments of the present disclosure, a service provider may serve multiple service consumers on the same peer electronic device.
  • According to various embodiments of the present disclosure, an electronic device may include multiple service providers that provide the same accessory service.
  • According to various embodiments of the present disclosure, the accessory service profile corresponding to an accessory service may ensure consistent behavior of a service provider and/or service consumer implemented for the accessory service. For example, the accessory service profile may be a standardized set of protocols according to which service providers and service consumers may communicate in relation to the accessory service. As a result, the accessory service profile allows the development of accessory services to be extensible to be developed with greater ease. The accessory services may be developed across a variety of electronic devices that implement accessory service profiles.
  • According to various embodiments of the present disclosure, network protocols that an electronic device uses to communicate with a peer electronic device may be agnostic to the applicable accessory service profiles being used between service providers and service consumers of the electronic device and the peer electronic device.
  • As illustrated in FIG. 23, the service agent 2315 may initiate a service connection by sending a request to establish a service connection to the session layer 2319. The session layer 2319 may then communicate with the session layer 2311 to send a request to establish a service connection to the session layer 2311. Thereafter, the session layer 2311 may send an indication of a request to establish a service connection to the service agent 2309. For example, the session layer 2311 may send an indication that the session layer 2311 received a request to establish a service connection (e.g., between the service agent 2315 and the service agent 2309). Thereafter, the service agent 2309 may determine whether to accept the service connection, and the service agent 2309 may provide to the session layer 2311 an indication of whether to accept the service connection. For example, the indication of whether to accept the service connection that is communicated between the service agent 2309 and the session layer 2311 may be illustrated by reference numeral 2329. If the service agent 2309 accepts the service connection, then the session layer 2311 may communicate with the session layer 2319 to establish the desired service connection. Thereafter, the service agent 2315 may communicate with the service agent 2309 using an accessory service protocol specific application protocol 2331. The communication between the service agent 2315 and the service agent 2309 using an accessory service protocol specific application protocol 2331 may occur over at least one service connection 2333 established between the service agent 2315 and the service agent 2309.
  • As illustrated in FIG. 23, an application layer entity may include a service agent that initiates a service connection, and a service agent that receives a request to establish a service connection and that accepts or authenticates a service connection. For example, the application layer entity 2305 may include the service agent 2307 that initiates a service connection with service agent 2317, and the service agent 2309 that receives a request to establish a service connection from service agent 2315.
  • FIG. 25 illustrates a service connection according to an embodiment of the present disclosure.
  • Referring to FIG. 25, a service connection between a service agent 2501 of a first electronic device and a service agent 2503 of a second electronic device may be established. According to various embodiments of the present disclosure, the service connection may be established using a service connection creation session between the first electronic device and the second electronic device. According to various embodiments of the present disclosure, a service connection between the service agent 2501 and the service agent 2503 may include at least one session between the first electronic device and the second electronic device. For example, a service connection may include a plurality of sessions between the first electronic device and the second electronic device.
  • The service agent 2501 may attempt to initiate a service connection to another service agent such as, for example, the service agent 2503. The service agent 2501 may initiate a service connection in order to perform an accessory service, to fulfill a purpose/need for a user of an electronic device, and/or the like. According to various embodiments of the present disclosure, the service agent 2501 may attempt to establish a service connection according to a corresponding application service protocol. According to various embodiments of the present disclosure, the service agent 2501 may initiate a service connection by communicating with a network protocol and/or session layer 2505 of the first electronic device. For example, the service agent 2501 may send a service connection request 2509 to the network protocol and/or session layer 2505.
    </