US20140351446A1 - Electronic device using logical channels for communication - Google Patents

Electronic device using logical channels for communication Download PDF

Info

Publication number
US20140351446A1
US20140351446A1 US14/281,206 US201414281206A US2014351446A1 US 20140351446 A1 US20140351446 A1 US 20140351446A1 US 201414281206 A US201414281206 A US 201414281206A US 2014351446 A1 US2014351446 A1 US 2014351446A1
Authority
US
United States
Prior art keywords
electronic device
service
layer
present disclosure
application
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,206
Other languages
English (en)
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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to US14/281,206 priority Critical patent/US20140351446A1/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
Priority to PCT/KR2014/004546 priority patent/WO2014189290A2/en
Priority to AU2014269271A priority patent/AU2014269271B2/en
Priority to EP14801094.5A priority patent/EP3000217B1/en
Priority to CN201480041345.XA priority patent/CN105519071A/zh
Priority to KR1020157036165A priority patent/KR20160045635A/ko
Publication of US20140351446A1 publication Critical patent/US20140351446A1/en
Priority to US16/230,918 priority patent/US10693969B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • 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/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer 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

Definitions

  • 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.
  • 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.
  • SMS Short Messaging Service
  • MMS Multimedia Message Service
  • E-mail electronic 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.
  • 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.
  • 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • IDs profile identifiers
  • an electronic device for using one or more protocols 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.
  • IDs profile identifiers
  • a method for using one or more protocols for one or more electronic devices 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.
  • IDs profile identifiers
  • an electronic device for using one or more protocols 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.
  • IDs profile identifiers
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • a system of one or more electronic devices for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • an electronic device for using one or more protocols 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.
  • an electronic device for using one or more protocols 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • QoS Quality of Service
  • a method for using one or more protocols for one or more electronic devices 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • an electronic device for using one or more protocols 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.
  • QoS Quality of Service
  • an electronic device for using one or more protocols.
  • 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.
  • an electronic device for using one or more protocols 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.
  • a method for using one or more protocols for one or more electronic devices 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.
  • an electronic device for using one or more protocols 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.
  • an electronic device for using one or more protocols.
  • UART Universal
  • an electronic device for using one or more protocols.
  • 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
  • USB Universal Serial Bus
  • UART
  • 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. 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
  • FIG. 107 illustrates a flowchart of a method for operating an electronic device according to an embodiment of the present disclosure.
  • Accessory Service Profile 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.
  • 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
  • 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 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.
  • ASP ID Accessory Service Profile ID
  • the application layer may include Application Layer Entities (ALEs).
  • ALE Application Layer Entities
  • 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.
  • ALE-ID 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.
  • 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).
  • DME Discovery Management Entity
  • the Device ID can be used by ALEs to refer to a specific peer electronic device when issuing a primitive to the network protocol
  • 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.
  • NLE N Layer Entity
  • NLDE N Layer Data Entity
  • NLME N Layer Management Entity
  • an (N+1) Layer requests in-order delivery from an N Layer
  • 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.
  • N 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 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.
  • peer (electronic) device can be interchangeably used, without limitation, with “external (electronic) device,” “accessory (electronic) device,” or “appcessory (electronic) device,” depending on the context.
  • first (electronic) device other (electronic) devices can be referred to as “peer (electronic) devices,” “(electronic) devices,” or “external (electronic) devices.”
  • peer electronic
  • (electronic) devices other (electronic) devices
  • the terms “external” and “peer” can be used interchangeably and the term “electronic” may be omitted.
  • 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.
  • a primitive is a unit interaction step to realize a Service Access Point (SAP).
  • SAP Service Access Point
  • 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 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.
  • 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 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 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 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.
  • NLE 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 The unit of an N Layer service is specified as a Service Access Point.
  • a collection of Service Access Points is abbreviated as SAP.
  • NLDE provides data service specified as the NLDE-SAP
  • NLME provides a collection of management services specified as the NLME-SAP.
  • 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.
  • 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.
  • an (N+1) Layer requests unordered delivery from N Layer
  • 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.
  • AOAP Android Open Accessory Protocol
  • APDU Application Protocol Data Unit
  • ASP Id Accessory Service Profile identifier
  • BR/EDR (Bluetooth) Basic Rate/Enhanced Data Rate
  • BT_ADDR Bluetooth Device Address
  • CPDU Connection layer Protocol Data Unit
  • IP Internet Protocol
  • L2CAP Logical Link Layer Control and Adaptation Protocol
  • SLDE-SAP Session Layer Data Entity Service Access Point
  • SLME-SAP Session Layer Management Entity Service Access Point
  • TLDE-SAP Transport Layer Data Entity Service Access Point
  • TLME-SAP Transport Layer Management Entity Service Access Point
  • TPDU Transport Protocol Data Unit
  • USB Universal Serial Bus
  • 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.
  • 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.
  • 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.
  • the term “or” is used to include any and all combination of terms listed.
  • “A or B” includes only A, only B, or both A and B.
  • 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.
  • a first user equipment alternatively, “UE”
  • UE user equipment
  • a second user equipment are both user equipment, but are different user equipments.
  • a first component may be called a second component, and likewise, a second component may be called a first component.
  • 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.
  • 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.
  • An electronic device may include communication functionality.
  • an electronic device 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).
  • PDA Personal Digital Assistant
  • PMP Portable Multimedia Player
  • MP3 player MP3 player
  • 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., HomeSyncTM, Apple TVTM, or Google TVTM), gaming console, electronic dictionary, electronic key, camcorder, or electronic picture frame.
  • DVD Digital Video Disk
  • 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.
  • MRA Magnetic Resonance Angiography
  • MRI Magnetic Resonance Imaging
  • CT Computed Tomography
  • ultrasonic device e.g., 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, gyr
  • 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 electro-magnetic wave measuring devices), that include communication functionality.
  • various measuring devices e.g., water, electricity, gas or electro-magnetic wave measuring devices
  • An electronic device according to the present disclosure may be any combination of the foregoing devices.
  • 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.
  • 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 .
  • I/O Input/Output
  • 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.
  • other components e.g., the memory 113 , the I/O interface 114 , the display 115 , or the communication interface 116 .
  • 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 ).
  • 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 .
  • API Application Programming Interface
  • 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 .
  • system resources e.g., the bus 111 , the processor 112 or the memory 113
  • 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 .
  • control e.g., scheduling or load balancing
  • the API 123 is an interface that may control functions that the application 124 may provide at the kernel 121 or the middleware 122 .
  • the API 123 may include at least an interface or function (e.g., command) for file control, window control, video processing or character control.
  • 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).
  • 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.
  • 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 ).
  • 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.
  • a peer electronic device the peer electronic device itself, or one or more components of the peer electronic device
  • 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.
  • service e.g., voice call service or messaging service
  • 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 ).
  • a property e.g., type of electronic device
  • the application 124 may include one or more applications related to music playback.
  • the application 124 may be health care-related applications.
  • 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 I/O interface 114 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 .
  • the I/O interface 114 may provide data associated with user input received via a touch screen to the processor 112 .
  • 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).
  • 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.
  • information e.g., multimedia or text data
  • 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 ).
  • 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).
  • USB Universal Serial Bus
  • HDMI High Definition Multimedia Interface
  • RS-232 recommended standard 232
  • POTS Plain Old Telephone Service
  • 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.
  • a protocol e.g., transport layer protocol, data link layer protocol or physical layer protocol
  • the application 124 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.
  • an electronic device 200 may be, for example, a part or all of the electronic device 101 .
  • 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 .
  • AP Application Processors
  • SIM Subscriber Identification Module
  • 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).
  • SoC System-on-Chip
  • the AP 210 may further include a Graphics Processing Unit (GPU; not shown).
  • the communication module 220 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 .
  • a cellular module 221 e.g., 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 .
  • NFC Near-Field Communication
  • RF Radio Frequency
  • 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 ).
  • SIM subscriber identification module
  • the cellular module 221 may perform at least a part of the functionalities of the AP 210 .
  • the cellular module 221 may perform at least a part of multimedia control functionality.
  • the cellular module 221 may include a Communication Processor (CP).
  • the cellular module 221 may, for example, be implemented as SoC.
  • 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 ).
  • the AP 210 or the cellular module 221 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.
  • 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.
  • IC Integrated Chip
  • 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.
  • 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.
  • the RF module 229 may include a transceiver, a Power Amp Module (PAM), a frequency filter or a Low Noise Amplifier (LNA).
  • 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.
  • FIG. 1 Electro-Magnetic
  • 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)).
  • ICCID Integrated Circuit Card Identifier
  • IMSI International Mobile Subscriber Identity
  • 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).
  • volatile memory e.g., Dynamic RAM (DRAM), Static RAM (SRAM) or Synchronous Dynamic RAM (SDRAM)
  • 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, N
  • 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.
  • the electronic device 200 may include recording devices (or recording media) such as, for example, Hard Disk Drives (HDD).
  • HDD Hard Disk Drives
  • 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 240 A, a gyro sensor 240 B, an atmospheric pressure sensor 240 C, a magnetic sensor 240 D, an accelerometer 240 E, a grip sensor 240 F, a proximity sensor 240 G, an RGB sensor 240 H, a biometric sensor 240 I, a temperature/humidity sensor 240 J, a luminosity sensor 240 K or an Ultra Violet (UV) sensor 240 M.
  • 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.
  • EMG electromyography
  • EEG electroencephalogram
  • IR infrared
  • IR eye-scanning 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.
  • 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 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 .
  • 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).
  • HDMI High-Definition Multimedia Interface
  • USB Universal Serial Bus
  • IrDA Infrared Data Association
  • 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.
  • 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).
  • image sensors e.g., front sensor module or rear sensor module; not shown
  • ISP Image Signal Processor
  • flash LED flash LED
  • the power management module 295 may manage electrical power of the electronic device 200 .
  • 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.
  • PMIC Power Management Integrated Circuit
  • charger IC charger Integrated Circuit
  • battery fuel gauge a Battery Fuel gauge
  • the PMIC 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 .
  • 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 .
  • 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.
  • DMB Digital Multimedia Broadcasting
  • DVD Digital Video Broadcasting
  • FIG. 3 illustrates a block diagram of a programming module according to an embodiment of the present disclosure.
  • 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 ).
  • OS Operating System
  • the OS may be Android, iOS, Windows, Symbian, Tizen, Bada, or the like.
  • the programming module 300 may include a kernel 310 , middleware 330 , an Application Programming Interface (API) 360 , or the applications 370 .
  • API Application Programming Interface
  • the kernel 310 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).
  • the device driver 312 may include an Inter-Process Communication (IPC) driver (not shown).
  • IPC Inter-Process Communication
  • 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.
  • the middleware 330 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 .
  • 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.
  • 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.
  • 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 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 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.
  • module 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.
  • 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.
  • 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.
  • ASIC Application-Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • 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.
  • FIG. 4 illustrates a block diagram of a layered framework architecture according to an embodiment of the present disclosure.
  • 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.
  • NLE N Layer Entity
  • NLDE N Layer Data Entity
  • NLME N Layer Management Entity
  • NLEs 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.
  • N Layer service The unit of an N Layer service is specified as a Service Access Point (SAP).
  • SAP Service Access Point
  • NLDE provides data service specified as an NLDE-SAP 405
  • NLME provides a collection of management services specified as an NLME-SAP 407 .
  • a Protocol Data Unit is a unit of message exchange between peer N layer entities. Specifically, an N layer PDU is called an NPDU.
  • a Service Data Unit is a unit of data exchange between an N+1 layer and an N layer.
  • SDU Service Data Unit
  • 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.
  • NLDE-SAP primitive can be one of the following generic types.
  • 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.
  • 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 .
  • the confirm primitive is used by N layer 403 to convey the delivery status of the previously requested data from N+1 layer 401 .
  • the indication primitive is used by N Layer 403 to indicate/deliver data received for N+1 layer 401 .
  • NLME-SAP primitive can be one of the following generic types.
  • the request primitive is issued by N+1 layer 401 to N Layer 403 to request a management service from N Layer 403 .
  • the confirm primitive is used by N layer 403 to convey the result of a previous management service request from N+1 layer 401 .
  • 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 .
  • 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.
  • the N+1 layer 401 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.
  • the Transaction ID included in the Request primitive is echoed.
  • the N layer 403 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.
  • the N+1 layer 401 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.
  • the Transaction ID included in the Request primitive is echoed.
  • the N layer 403 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.
  • 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.
  • QoS Quality of Service
  • N+1PDU N+1 Layer Protocol Data Unit
  • N+1PDU N+1 Layer Protocol Data Unit
  • N+1PDU N+1 Layer Protocol Data Unit
  • NLDE-SAP primitive can be one of the following generic types.
  • 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.
  • (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.
  • 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.
  • 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 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”.
  • 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 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.
  • 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.
  • 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.
  • FIG. 5 illustrates a system of electronic devices communicating with one another according to an embodiment of the present disclosure.
  • 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.
  • 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).
  • the common protocol may enable the electronic device 501 and the first external electronic device 503 to provide a service to a user.
  • 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 .
  • the first external electronic device 503 may provide services to the electronic device 501 and/or consumer services provided by the electronic device 501 .
  • 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 .
  • 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 .
  • 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.
  • 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 .
  • 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.
  • 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 .
  • 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.
  • an application e.g., the first application 603 , the second application 605 , and the N-th application 607
  • 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 .
  • a connection e.g., a channel
  • 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.
  • 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).
  • OS operation system
  • FPGA configurable processor
  • the application layer 703 may include one or more applications.
  • 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.
  • the one or more applications may enable the user to send/receive communications, and/or to consume data received.
  • 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).
  • the one or more applications may communicate with a network layer in order to communicate with a peer electronic device (not shown).
  • 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 .
  • 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.
  • 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.
  • 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 .
  • 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.
  • 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.
  • 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 .
  • 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.
  • UART Universal Asynchronous Receiver/Transmitter
  • UWB Ultra-WideBand
  • RFID Radio Frequency Identification
  • NFC Near Field 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.
  • 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.
  • AAL Application Layer
  • 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).
  • 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 .
  • 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).
  • 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.
  • 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 .
  • 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 .
  • 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 .
  • 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 .
  • the discovery management entity 1011 on the second electronic device 1003 upon successfully concluding the authentication process, notifies the session layer 1029 on the second electronic device 1003 .
  • the discovery management entity 1017 on the electronic device upon successfully concluding the authentication process, notifies a session layer 1033 on the second electronic device 1003 .
  • an application layer entity 1035 on the first electronic device 1001 registers itself to the session layer 1033 and a capability exchange entity 1039 .
  • the service capability of the application layer entity 1035 on the first electronic device 1001 is made available on the second electronic device 1003 .
  • 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 .
  • 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 .
  • the application layer entity 1035 on the first electronic device 1001 accepts the Service Connection request.
  • the session layers 1033 and 1029 set up the Service Connection and configure the channels for application protocol data exchange.
  • the application layer entities 1035 and 1047 exchange APDUs with each other using multiple channels as per their mutually agreed application protocol.
  • 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.
  • a sequence of operations is shown for carrying out an accessory protocol between a first electronic device 1101 and a second electronic device 1103 .
  • a user input triggers establishment of device discovery.
  • 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.
  • an accessory description exchange happens on the device connection 1109 .
  • the device management entity 1107 triggers a protocol framework 1111 to establish a device connection 1115 with the network layer of the protocol.
  • a default session 1117 is implicitly established.
  • user input on an application triggers a capability exchange 1119 to establish a designated service connection 1123 for a capability exchange 1121 .
  • 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.
  • a first electronic device 1201 may communicate with a second electronic device 1203 and a third electronic device 1205 .
  • a fourth application layer entity 1207 e.g., an application program on the electronic device
  • the first electronic device 1201 may communicate with multiple electronic devices.
  • 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.
  • 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 .
  • 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).
  • a single service agent may contemporaneously communicate with multiple service agents.
  • the service provider 1209 may communicate with the first service consumer 1213 , the second service consumer 1217 , and the third service consumer 1221 .
  • 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.
  • 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.
  • 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.
  • a first electronic device 1301 may communicate with a second electronic device 1303 and a third electronic device 1305 .
  • a first application layer entity 1307 e.g., an application program on the electronic device
  • 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 .
  • 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 .
  • an application layer entity may include one or more service agents.
  • the application layer entity may include one or more service consumers.
  • 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 ).
  • an electronic device may consume services from a plurality of other electronic devices.
  • 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.
  • the plurality of service consumers 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 ).
  • an application layer entity e.g., an application program installed on an electronic device
  • 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).
  • 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).
  • a desired service e.g., the accessory service
  • 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.
  • the application protocol may be used to enable the accessory service.
  • 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.
  • 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.
  • 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.
  • FIG. 14 illustrates a configuration of an application layer in relation to a network layer according to an embodiment of the present disclosure.
  • an application layer 1401 may operate logically on top of a network protocol (e.g., a session layer) 1410 .
  • the application layer 1401 may leverage the network protocol 1410 for communication between the electronic device and the peer electronic device.
  • 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 .
  • 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 .
  • 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 .
  • 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 .
  • 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 .
  • data may be communicated between the application layer 1401 and the capability discovery layer 1409 using a capability discovery service access point 1411 .
  • 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).
  • service provider e.g., SP1 1403 , SP2 1404 , SPn 1405 , and/or the like
  • SC1 1406 SC1 1406
  • SC2 1407 e.g., SCn 1408
  • the at least one service provider 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).
  • 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.
  • 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 may be a logical entity that consumes an accessory service.
  • 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.
  • 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.
  • another electronic device e.g., a peer electronic device
  • 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 .
  • 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 .
  • 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.
  • 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.
  • QoS Quality of Service
  • FIG. 15 illustrates a configuration of an application layer according to an embodiment of the present disclosure.
  • an application layer may include at least one application layer.
  • 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.
  • 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 ;
  • the application layer entity 1504 may include a service agent 1511 , a service agent 1512 , and a service agent 1513 .
  • an application layer may include at least one service agent.
  • 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.
  • the application layer may use at least one service agent to fulfill a purpose/desire of the user.
  • 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.
  • 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.
  • 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.
  • 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.
  • a service agent may be identified by a combination of an applicable ASP ID and a service agent identifier.
  • 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 ;
  • the service agent 1509 may be identified by a combination of an ASP ID 3 and a service agent identifier 1 .
  • the accessory service profile may enable a service provider to provide an accessory service to a service consumer.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • 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.
  • 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.
  • 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.
  • 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.
  • the first electronic device 1901 has a peer device identifier 1
  • 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 .
  • 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 .
  • 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.
  • 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).
  • the application layer entity of the first electronic device may advertise itself
  • 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.
  • 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 .
  • 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 .
  • 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.
  • 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.
  • 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 .
  • 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 .
  • 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.
  • an application layer entity may use a capability discovery layer to discover another application layer entity.
  • 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).
  • 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.
  • 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.
  • 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 .
  • a service connection is established between the first electronic device and the second electronic device.
  • 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.
  • 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 .
  • a desired capability e.g., uses a desired service agent
  • 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.
  • 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 .
  • the address e.g., the peer device identifier, the application layer entity identifier, the ASP ID, and the service agent identifier
  • messages are exchanged between the first electronic device and the second electronic device in order to fulfill a desired purpose.
  • 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.
  • 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.
  • 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.
  • 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.
  • an application layer entity of a first electronic device may register with a session layer of the application layer entity.
  • the application layer of the first electronic device may register with the session layer management entity of the first electronic device.
  • 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 .
  • 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.
  • 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 .
  • 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 .
  • 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 .
  • 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.
  • 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.
  • 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.
  • the capability discovery layer 2105 and the capability discovery layer 2107 may perform a capability exchange procedure 2119 .
  • an application layer entity on the second electronic device wants to provide a service to a user (e.g., to perform an accessory service)
  • 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 .
  • 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.
  • 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).
  • a desired service e.g., an accessory service
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • a service connection creation request message e.g., ServiceConnectionCreationRequest
  • 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.
  • 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 session layer management entity 2205 of the second electronic device 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.
  • the session layer management entity 2205 may send a service connection creation indication (e.g., SLME-ServiceConnectionCreation.indication) 2213 to the service agent 2207 .
  • a service connection creation indication e.g., SLME-ServiceConnectionCreation.indication
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the first electronic device 2301 has a peer device identifier 1
  • 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 .
  • 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 .
  • an electronic device may establish a service connection with a peer electronic device.
  • a service agent of the electronic device sends a request to establish a service connection to an applicable session layer.
  • 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 .
  • the session layer sends a request to establish a service connection to an applicable session layer.
  • 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 .
  • the session layer sends an indication of a request to establish a service connection to an applicable service agent.
  • 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 ).
  • 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 ).
  • the service agent sends a response to the service connection request to the applicable session layer.
  • 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 .
  • 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.
  • the service connection e.g., whether to establish the service connection between the service agent 2307 and the service agent 2317 .
  • 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 .
  • 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.
  • 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.
  • an electronic device is not limited to only include service agents acting as service providers or service consumers at a given time.
  • 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.
  • 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.
  • 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.
  • a service provider may serve one or more service consumers.
  • a service provider may serve multiple service consumers on the same peer electronic device.
  • an electronic device may include multiple service providers that provide the same accessory service.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 .
  • the session layer 2311 may send an indication of a request to establish a service connection to the service agent 2309 .
  • 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 ).
  • 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.
  • 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 .
  • 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.
  • 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.
  • 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.
  • the service connection may be established using a service connection creation session between the first electronic device and the second electronic device.
  • 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.
  • 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.
  • the service agent 2501 may attempt to establish a service connection according to a corresponding application service protocol.
  • 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 .
  • the network protocol and/or session layer 2505 may communicate with a network protocol and/or session layer 2507 of the second electronic device.
  • the network protocol and/or session layer of an electronic device may have a reserved session for communication with a given peer electronic device.
  • the network protocol and/or session layer 2505 and the network protocol and/or session layer 2507 may open a service connection creation session therebetween.
  • the network protocol and/or session layer 2505 may send a service connection creation request 2511 to the network protocol and/or session layer 2507 .
  • a network protocol and/or session layer of an electronic device may provide an indication that the network protocol and/or session layer received a service connection request from the network protocol and/or session layer of a peer electronic device.
  • the network protocol and/or session layer 2507 may send a service connection request indication 2513 to the service agent 2503 (e.g., the service agent associated with the service connection request).
  • a service agent of an electronic device may determine whether to accept a service connection requested from a service agent of a peer electronic device. For example, the service agent may determine whether to accept a service connection request according to an authentication of the service agent requesting service connection, according to availability of resources (e.g., processing resources, communication resources, and/or the like), user preferences, and/or the like.
  • resources e.g., processing resources, communication resources, and/or the like
  • user preferences e.g., user preferences, and/or the like.
  • the service agent of an electronic device may provide an indication of whether the service agent accepts the service connection to the service agent of a peer electronic device through the applicable network protocol and/or session layer.
  • the service agent 2503 may send a service connection acceptance 2515 to the network protocol and/or session layer 2507 .
  • the network protocol and/or session layer 2507 may communicate with the first electronic device (e.g., the network protocol and/or session layer 2505 ) to establish the service connection.
  • the network protocol and/or session layer 2507 may send to the network protocol and/or session layer 2505 a service connection creation response 2517 (e.g., in response to the service connection creation request 2511 ).
  • the network protocol and/or session layer 2505 and the network protocol and/or session layer 2507 may establish the service connection 2521 .
  • the service connection 2521 may include one or more sessions between the network protocol and/or session layer 2505 and the network protocol and/or session layer 2507 .
  • the service connection 2512 may include SL-session 1 , SL-session 2 , SL-session 3 , and SL-session n.
  • the network protocol and/or session layer 2505 and the network protocol and/or session layer 2507 may send to the service agent 2501 an indication 2519 that the service connection is established.
  • a service connection is established between a service agent 2501 and a service agent 2503 (e.g., between a service provider and a service consumer)
  • the service agent 2501 and the service agent 2503 communicate using the sessions reserved for the established service connection.
  • the service connection between the service consumer and the service provider may be terminated.
  • any combination of the service consumer and the service provider may terminate the service connection.
  • any combination of the service consumer and the service provider may terminate the service connection at any time.
  • a service agent may serve one or more service consumers.
  • the service provider may serve multiple service consumers on one or more peer electronic devices.
  • the service provider may serve multiple service consumers on one or more peer electronic devices over separate individual established service connections.
  • a service consumer may consume an accessory service (e.g., receive information relating to a service) provided by one or more service providers.
  • the service consumer may consume an accessory service (e.g., receive information relating to a service) provided by one or more service providers on one or more peer electronic devices.
  • the service consumer may consume an accessory service (e.g., receive information relating to a service) provided by one or more service providers on one or more peer electronic devices over separate individual established service connections.
  • either a service provider or a service consumer may initiate a service connection according to the corresponding accessory service profile.
  • either the service provider or the service consumer may initiate the service connection according to the corresponding accessory service profile.
  • FIG. 26 illustrates a communication between service agents according to an embodiment of the present disclosure.
  • a service agent 2601 of a first electronic device may communicate with a service agent 2603 of a second electronic device over a service connection 2609 .
  • the service agent 2601 and the service agent 2603 may communicate over the service connection 2609 established using a network protocol and/or session layer 2605 of the first electronic device and a network protocol and/or session layer 2607 of the second electronic device.
  • the service connection 2609 established between the network protocol and/or session layer 2605 and the network protocol and/or session layer 2607 may include at least one session over which the service agent 2601 and the service agent 2603 communicate.
  • the service connection 2609 may include session 2611 (e.g., SL-Session 1), session 2613 (e.g., SL-Session 2), session 2615 (e.g., SL-Session 3), session 2617 (e.g., SL-Session n), and/or the like.
  • the service connection may include a plurality of channels over which messages between the service agent 2601 and the service agent 2603 are exchanged.
  • a session included in the service connection may be associated with a channel.
  • session 2611 may be associated with Channel 1 2619 formed between the service agent 2601 and the network protocol and/or session layer 2605 and Channel 1 2627 formed between the service agent 2603 and the network protocol and/or session layer 2607 ;
  • session 2613 may be associated with Channel 2 2621 formed between the service agent 2601 and the network protocol and/or session layer 2605 and Channel 2 2629 formed between the service agent 2603 and the network protocol and/or session layer 2607 ;
  • session 2615 may be associated with Channel 3 2623 formed between the service agent 2601 and the network protocol and/or session layer 2605 and Channel 1 2631 formed between the service agent 2603 and the network protocol and/or session layer 2607 ;
  • session 2617 may be associated with Channel n 2625 formed between the service agent 2601 and the network protocol and/or session layer 2605 and Channel n
  • additional channels may be established and/or configured with the service connection according to the applicable accessory service profile and the corresponding application protocol.
  • existing channels of a service connection may be terminated according to the applicable accessory service profile and the corresponding application protocol.
  • each channel may communicate at least one application protocol data unit associated with the accessory service.
  • the session layer is unaware of interactions between the service agents at an application level. For example, the session layer leverages the addressing of the service agents and service connections established between service agents to enable communication between the service agents.
  • the session layer may use the ASP ID and the service agent identifier to identify, locate, and/or service an applicable service agent.
  • the session layer may use the application layer entity identifier, the peer electronic device identifier, and/or the like to identify, locate, and/or service an applicable service agent.
  • the session layer may use a combination of the peer device identifier, application layer entity, ASP ID, and service agent identifier to identify, locate, and/or service an applicable service agent.
  • FIG. 27 illustrates communication of a message according to an embodiment of the present disclosure.
  • a service agent 2701 of a first electronic device may communicate messages with a service agent 2707 of a second electronic device.
  • the first electronic device may include a session layer data entity 2703
  • the second electronic device may include a session layer data entity 2705 .
  • the service agent 2701 may generate a message 2709 to be communicated to the service agent 2707 .
  • the service agent 2701 may generate the message 2709 in accordance with the corresponding application service profile.
  • the service agent 2701 may invoke a data request.
  • the service agent 2701 may send a message (e.g., SLDE-Data.request) 2711 to the session layer data entity 2703 .
  • the message 2711 may correspond to an application protocol data unit.
  • the service agent 2701 prepares to receive a message (e.g., SLDE-Data.Confirm) identifying the delivery status of the message 2711 . If the message identifying the delivery status of the message 2711 indicates that the delivery status is a failure, then a message including the message 2711 or information relating thereto may be retransmitted in accordance with the applicable application protocol. For example, if the application protocol supports retransmission of a message if a confirmation message is received that indicates that the transmission of a message failed, then retransmission of the message may be invoked.
  • the session layer of the first electronic device may send a message 2713 comprising data relating to the message 2711 to the session layer of the second electronic device.
  • the session layer data entity 2703 may perform transmission of data relating to the message 2711 (e.g., transmission of the application protocol data unit) to the session layer data entity 2705 over a connection (e.g., a service connection) between the first electronic device and the second electronic device.
  • the session layer of the second electronic device may inform the applicable service agent of the data reception. For example, upon receipt of data from the session layer entity 2703 , the session layer entity 2705 may send to the service agent 2707 an indication (e.g., SLDE-Data.indication) 2715 that the session layer entity 2705 received the message 2713 comprising data relating to the message 2711 .
  • the session layer entity 2705 may send to the service agent 2707 the received data.
  • the indication 2715 may include the data relating to the message 2711 .
  • the service agent 2707 may parse the received data. For example, as illustrated at reference numeral 2721 of FIG. 27 , the service agent 2707 may parse the received data. The service agent 2707 may process the received data.
  • the service agent 2701 may await an indication from the session layer (e.g., the session layer management entity) indicating that the service agent 2701 may initiate another data request on the respective channel corresponding to the channel for which the indication is received.
  • the service agent 2701 may receive the indication (e.g., SLDE-Data.ready) 2717 from the session layer data entity 2703 .
  • the service agent 2701 may generate a message 2719 to be communicated to the service agent 2707 .
  • the service agent 2701 may generate the message 2719 in accordance with the corresponding application service profile.
  • the service agent 2701 may invoke a data request.
  • the service agent 2701 may send a message (e.g., SLDE-Data.request) 2723 to the session layer data entity 2703 .
  • the message 2723 may correspond to an application protocol data unit.
  • the service agent 2701 invokes the data request and sends the message 2723
  • the service agent 2701 prepares to receive a message (e.g., SLDE-Data.confirm) indicating the delivery status of the message 2723 .
  • the session layer of the first electronic device may send a message 2725 comprising data relating to the message 2723 to the session layer of the second electronic device.
  • the session layer data entity 2703 may perform transmission of data relating to the message 2723 (e.g., transmission of the application data protocol unit) to the session layer entity 2705 over a connection (e.g., a service connection) between the first electronic device and the second electronic device.
  • the session layer of the second electronic device may inform the applicable service agent of the data reception. For example, upon receipt of data from the session layer entity 2703 , the session layer entity 2705 may send to the service agent 2707 , an indication (e.g., SLDE-Data.indication) 2727 that the session layer entity 2705 received the message 2725 comprising data relating to the message 2723 .
  • the session layer entity 2705 may send to the service agent 2707 the received data.
  • the indication 2727 may include the data relating to the message 2723 .
  • the service agent 2707 may parse the received data. For example, as illustrated at reference numeral 2731 of FIG. 27 , the service agent 2707 may parse the received data. The service agent 2707 may process the received data.
  • the service agent 2701 may receive a message (e.g., SLDE-Data.confirm) 2729 that indicates whether the message 2711 and/or the data associated with message 2709 was successfully delivered.
  • a message e.g., SLDE-Data.confirm
  • the service agent 2701 may await an indication from the session layer (e.g., the session layer management entity) indicating that the service agent 2701 may initiate another data request on the respective channel corresponding to the channel for which the indication is received. For example, the service agent 2701 may receive the indication (e.g., SLDE-Data.ready) 2733 from the session layer data entity 2703 .
  • the indication e.g., SLDE-Data.ready
  • the service agent 2701 may receive a message (e.g., SLDE-Data.confirm) 2735 that indicates whether the message 2723 and/or the data associated with message 2719 was successfully delivered.
  • a message e.g., SLDE-Data.confirm
  • FIG. 28 illustrates a termination of communication between service agents according to an embodiment of the present disclosure.
  • a service agent of a first electronic device and a service agent of a second electronic device are communicating over established service connections, then either of the service agents may invoke termination of the service connections between the service agents.
  • the service agent invoking termination of the service connection may be a service provider or a service consumer in relation to the service connection to be terminated.
  • a service agent may invoke termination of the service connection between the service agent and another service agent if the accessory service for which the service connection was established has been fulfilled.
  • the service agent may invoke termination of the service connection if the purpose/desire associated with the communication between service agents over the service connection is fulfilled.
  • a service agent 2801 of the first electronic device may communicate with a service agent 2807 of a second electronic device.
  • the service agent 2801 or the service agent 2807 may invoke termination of an existing service connection.
  • termination of the existing service connection may be initiated by the service agent that initiated establishing the service connection.
  • the service agent 2801 may stop sending messages (e.g., data) 2809 over the channels associated with the service connection to be terminated.
  • the service agent 2801 may invoke termination of an existing service connection by sending a service connection termination request (e.g., SLME-ServiceConnectionTermination.request) 2811 to a session layer of the first electronic device.
  • a service connection termination request e.g., SLME-ServiceConnectionTermination.request
  • the service agent 2801 may invoke termination of an existing service connection by sending the service connection termination request 2811 to a session layer management entity 2803 of the first electronic device.
  • the service connection termination request 2811 may include a peer device identifier, a local service agent identifier, a remote service agent identifier, an ASP ID, and/or the like.
  • the service connection termination request 2811 may include the same information transmitted during the service connection creation (e.g., the same information as information included in message 2219 and/or message 2213 ).
  • the peer device identifier may include an identifier of the device with which the service connection is to be terminated.
  • the peer device identifier may correspond to the second electronic device on which the service agent 1807 resides.
  • the session layer management entity 2803 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 2803 may communicate with the session layer management entity of the peer electronic device identified in the service connection termination request 2811 . According to various embodiments of the present disclosure, if the session layer management entity 2803 receives a service connection termination request 2811 , then the session layer management entity 2803 may send a service connection termination request message (e.g., ServiceConnectionTerminationRequest) 2813 to a session layer management entity 2805 of an second electronic device.
  • a service connection termination request message e.g., ServiceConnectionTerminationRequest
  • the service connection termination request message 2813 may include a service agent identifier such as an originating service agent identifier that identifies the service agent from which the request to terminate the service connection originated, a terminating service agent identifier that identifies the service agent with which termination of the service connection is desired, an ASP ID, and/or the like.
  • a service agent identifier such as an originating service agent identifier that identifies the service agent from which the request to terminate the service connection originated, a terminating service agent identifier that identifies the service agent with which termination of the service connection is desired, an ASP ID, and/or the like.
  • the session layer management entity 2805 of the second electronic device may send to a service agent 2807 of the second electronic device an indication that a service agent on the first electronic device wants to terminate a service connection therewith.
  • the session layer management entity 2805 may send a service connection termination indication (e.g., SLME-ServiceConnectionTermination.indication) 2815 to the service agent 2807 .
  • a service connection termination indication e.g., SLME-ServiceConnectionTermination.indication
  • the service connection creation indication 2815 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 termination the service connection originated, a terminating service agent identifier that identifies the service agent with which termination of 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 terminate the service connection originated.
  • a logical entity on the second electronic device may stop sending and/or receiving messages (e.g., data) 2817 over the channels associated with the service connection to be terminated.
  • the service agent 2807 of the second electronic device may determine to terminate the service connection.
  • a logical entity on the second electronic device may remove the terminated service connection from a list of service connections relating to the logical entity.
  • the service agent 2807 may remove the service connection (e.g., the one or more channels associated with the termination request) from a list of service connections for the service agent 2807 .
  • the session layer of the second electronic device may send a service connection termination request message (e.g., ServiceConnectionTerminationRequest.msg) 2819 to a session layer of the first electronic device.
  • a service connection termination request message e.g., ServiceConnectionTerminationRequest.msg
  • the session layer management entity 2805 may send to the session layer management entity 2803 the service connection termination request message 2819 .
  • the service agent 2807 may send to the session layer management entity 2805 a service termination response (e.g., SLME-ServiceTermination.response) 2821 .
  • a service termination response e.g., SLME-ServiceTermination.response
  • the service agent 2807 may release the resources associated with the termination of the service connection (e.g., the channels associated with the termination request).
  • the session layer management entity 2805 may release the resources associated with the termination of the service connection (e.g., the channels associated with the termination request).
  • the session layer management entity 2803 may send to the service agent 2801 a service connection termination confirmation (e.g., SLME-ServiceConnectionTermination.Confirm) 2823 .
  • a service connection termination confirmation e.g., SLME-ServiceConnectionTermination.Confirm
  • the session layer management entity 2803 may release the resources associated with the termination of the service connection (e.g., the channels associated with the termination request).
  • the service agent 2801 may release the resources associated with the termination of the service connection (e.g., the channels associated with the termination request).
  • an accessory service profile defines an accessory service to enable an electronic device (e.g., an accessory) to provide and/or consume services relating to the accessory service.
  • an accessory service profile may be a template according to which an application may be developed to enable an electronic device and a peer electronic device to communicate.
  • the accessory service profile creates a standard according to which data communication for a service may be carried out. Accordingly, various electronic devices may communicate data for similar services that are defined to communicate according to characteristics in the applicable accessory service profile.
  • every accessory service can be mapped to an accessory service profile.
  • an accessory service profile includes a specification for communication of information relating to a service.
  • the accessory service profile provides a structure in relation to application attributes and network attributes.
  • the accessory service profile may include an identifier (e.g., an ASP ID), an indication of a number of channels used in the service connection, a desired QoS (e.g., a QoS of the corresponding accessory service, a QoS of the service connection for the service, and/or the like), a message format (e.g., structure) for the various messages used in carrying out the service, an indication of channels over which a particular message may be communicated, an indication of which electronic device initiates the service connection therebetween, an indication of which electronic device initiates termination of the service connection therebetween, and/or the like.
  • an identifier e.g., an ASP ID
  • an indication of a number of channels used in the service connection e.g., a desired QoS (e.g., a QoS of the corresponding accessory service,
  • the application service profile may define the applicable service, a structure of messages using an application protocol associated with the application service profile, message identifiers, and/or the like.
  • the application service profile may define an ASP ID, a list of channels in the service connection, a list of channels to employ lazy setup, a description of a desired QoS for each channel, a message to channel mapping, a message format supported by each channel, a minimum bandwidth capability desired of the connectivity type, and/or the like.
  • the ASP ID identifies the accessory service profile.
  • the ASP ID is a unique identification across all the varying accessory service profiles.
  • the ASP ID may be 128 bits in size.
  • the ASP ID may be a string.
  • the list of channels in the service connection may identify the channels that are to be setup and provided by the service connection.
  • the list of channels corresponds to the channels over which messages related to the service are to be communicated.
  • the service may communicate messages relating to the service over a subset of the list of channels.
  • the list of channels to employ lazy setup may identify the channels (e.g., by channel number) that may be setup at a later time (e.g., to add the channels to an already established service connection).
  • channels may be setup when the service connection is established, and/or channels may be setup when the channels are desired and thus added to an already established service connection.
  • the description of the desired QoS for each channel may identify a desired QoS for each channel. For example, each channel may be identified by a channel number. A QoS for each channel may be mapped to the corresponding channel.
  • the description of the desired QoS may include a type value, a priority value, and a data rate value. Each of the type value, a priority value, and a data rate value may have a respective default value according to which the session layer selects a corresponding default value.
  • the message to channel mapping may identify the types of message that may be transported on each channel.
  • the message to channel mapping may provide a mapping of message identifiers to channel numbers.
  • the message format supported by each channel may provide an indication of the encoding formats of a message that is allowed on a channel.
  • a message may be encoded in binary format, JSON format, XML format, and/or the like.
  • a service agent using an accessory service profile may specify a message format from among a list of allowed formats that may be communicated over a given channel.
  • the messages exchanged on a particular channel may be the same message format. For example, upon the service connection being established, all messages exchanged on the particular channel should be of the same message format (e.g., which was defined in the accessory service profile or selected by the service agent from among a list of allowable message formats).
  • the minimum bandwidth capability desired of the connectivity type may identify an expectation of a particular connectivity type over which communication for a service is carried out.
  • the minimum bandwidth capability desired of the connectivity type may provide guidance to application developers as to which connectivity types may be ideal for running a desired service, which connectivity types may be unable to run the desired service, and/or the like.
  • an accessory service profile may include a version identifier (e.g., a version value).
  • the version identifier may track evolution of a specification for the accessory service profile.
  • the use of versioning enables tracking of changes and/or enhancements to features of the accessory service profile.
  • the use of versioning and, specifically, the version identifier may serve as a point of reference for certifying an implementation for compliance with an accessory service profile.
  • the use of versioning, and specifically, the version identifier may serve as a point of reference for determining compatibility and non-compatibility between implementations of a given accessory service profile.
  • the version identifier may include two fields—a major version value and a minor version value.
  • the major version value may have a size of 8 bits.
  • the minor version value may have a size of 8 bits.
  • an increment in the minor version value may be backwards compatible. For example, if the major version value is identical across two different versions of an accessory service profile, then the accessory service profile having a larger minor version value is backwards compatible with the accessory service profile having the smaller minor version value.
  • the accessory service profile having the larger minor version value may be backwards compatible with the accessory service profile having the smaller minor version value by allowing the accessory service profile having the larger minor version value to function under the specification according to the accessory service profile having the smaller minor version value.
  • an increment in the major version value may indicate that a major change and/or enhancement to the specification for the accessory service profile occurred in relation to an accessory service profile having a smaller major version value. For example, if the major version value is different across two different versions of an accessory service profile, then the two different versions of the accessory service profile may not be compatible. In other words, the version of the accessory service profile having the larger major version value may not be backwards compatible with the version of the accessory service profile having the smaller major version value.
  • every implementation of a given accessory service profile may correspond to a distinct version of the given accessory service profile.
  • every service agent of a given accessory service profile may correspond to a distinct version of the accessory service profile.
  • the accessory service profile to which an implementation corresponds may be made available to a capability discovery layer when the implementation registers therewith.
  • the specific accessory service profile e.g., the specific version of the accessory service profile
  • the capability discovery layer may communicate the versioning information (e.g., the version identifier) of the applicable accessory service profile with other information relating to the service agent to interested service agents (e.g., on a peer electronic device).
  • the capability discovery layer on the electronic device may communicate versioning information (e.g., the version identifier) of the applicable accessory service profile with other information relating to the service agent of the electronic device to the capability discovery layer on the peer electronic device.
  • versioning information e.g., the version identifier
  • the service agents may configure communication to ensure compatibility. For example, the service agent compliant with an accessory service profile having a larger major version value or a higher minor version value may determine whether the service agent is compatible with the service agent compliant with an accessory service profile having a smaller major version value or a smaller minor version value. If the service agent with an accessory service profile having a larger major version value or a higher minor version value is compatible with the service agent is compatible with the service agent compliant with an accessory service profile having a smaller major version value or a smaller minor version value, then the service agent may configure communications thereof to be compatibly (e.g., configure for backwards compatibility if beneficial).
  • the service agent compliant with an accessory service profile having a larger major version value or a higher minor version value may determine whether the service agent is compatible with the service agent compliant with an accessory service profile having a smaller major version value or a smaller minor version value. If the service agent with an accessory service profile having a larger major version value or a higher minor version value is compatible with the service agent is compatible with the service agent
  • an accessory service mapped to an accessory service profile may include an alarm service, a calendar service, a call service, a context service, a file transfer service, a music service, a notification service, and/or the like.
  • a context service may include a service relating to contextual data of the user, the electronic device (e.g., providing the accessory service), and/or the like.
  • the contextual service may correspond to a location-based data service, a fitness data service, and/or the like.
  • an accessory service corresponding to a call service may enable a service provider implementing the call service to initiate a call (e.g., a telephone call), to communicate an alert relating to an incoming call or a status of a call (e.g., to a service consumer), to handle incoming calls (e.g., as requested by a service consumer), to provide a call log (e.g., to a service consumer either automatically or as requested by the service consumer), to delete a call log (e.g., either automatically or as requested by a service consumer), and/or the like.
  • a call e.g., a telephone call
  • an alert relating to an incoming call or a status of a call e.g., to a service consumer
  • handle incoming calls e.g., as requested by a service consumer
  • to provide a call log e.g., to a service consumer either automatically or as requested by the service consumer
  • delete a call log e.g., either automatically or as requested by
  • an accessory service corresponding to a call service may enable a service consumer implementing the call service to request to initiate a call (e.g., a telephone call), to receive an incoming call alert, to process an incoming call alert, to request to answer an incoming call, to reject an incoming call, to silence an incoming call, to request a call log, to request that a specific call log be deleted, and/or the like.
  • a call e.g., a telephone call
  • an accessory service corresponding to an alarm service may enable a service provider implementing the alarm service to provide a list of alarms (e.g., to a service consumer either automatically or as requested by a service consumer), to provide data relating to an alarm (e.g., to a service consumer), to edit an alarm (e.g., according to a request from a service consumer), to provide an alert relating to an alarm (e.g., including data relating to an alarm ring, a snooze function, a time, and/or the like), to provide a status of an alarm (e.g., to a service consumer), to set an activation status of an alarm (e.g., according to a request from a service consumer), and/or the like.
  • a service provider implementing the alarm service may enable a service provider implementing the alarm service to provide a list of alarms (e.g., to a service consumer either automatically or as requested by a service consumer), to provide data relating to an alarm (e.g., to
  • an accessory service corresponding to an alarm service may enable a service consumer implementing the alarm service to request a list of alarms (e.g., from a service provider), to request data relating to an alarm (e.g., from a service provider), to request an alarm action (e.g., from a service provider), to provide data relating to an editing of an alarm (e.g., to a service provider), to receive an alert relating to an alarm (e.g., including data relating to an alarm ring, a snooze function, a time, and/or the like), to receive a status of an alarm (e.g., from a service provider), to set an activation status of an alarm, and/or the like.
  • a service consumer implementing the alarm service may request a list of alarms (e.g., from a service provider), to request data relating to an alarm (e.g., from a service provider), to request an alarm action (e.g., from a service provider), to provide data relating to an
  • an accessory service corresponding to a calendar service may enable a service provider implementing the calendar service to provide a list of calendar information (e.g., a number of event, a list of events, a status of events, and/or the like), to provide an alert (e.g., a notification) of a calendar event, to provide an alert of a calendar action, to dismiss an alert of a calendar event (e.g., in response to a request from a service consumer), to snooze an alert of a calendar event (e.g., in response to a request from a service consumer), to set a notification setting (e.g., in response to a request from a service consumer), to change (e.g., edit) a calendar event (e.g., in response to a request from a service consumer), to provide an indication of an upcoming calendar event (e.g., in response to a request from a service consumer), and/or the like.
  • a list of calendar information e.g., a number of
  • an accessory service corresponding to a calendar service may enable a service consumer implementing the calendar service to request calendar information, to receive a list of calendar information (e.g., a number of event, a list of events, a status of events, and/or the like), to receive an alert (e.g., a notification) of a calendar event, to receive an alert of a calendar action, to request to dismiss an alert of a calendar event, to request to snooze an alert of a calendar event, to request to set a notification setting, to request a change (e.g., edit) to a calendar event, to request an indication of an upcoming calendar event, and/or the like.
  • a list of calendar information e.g., a number of event, a list of events, a status of events, and/or the like
  • an alert e.g., a notification
  • an alert of a calendar event e.g., a notification of a calendar event
  • to receive an alert of a calendar action e.g
  • an accessory service corresponding to a context service may enable a service provider implementing the context service to launch an application (e.g., in response to a request from a service consumer), to register an event (e.g., in response to a request from a service consumer), to unregister an event (e.g., in response to a request from a service consumer), to provide an indication of an event (e.g., to a service consumer), to register a motion (e.g., in response to a request from a service consumer), to unregister a motion (e.g., in response to a request from a service consumer), to provide an indication of a motion event (e.g., to a service consumer), and/or the like.
  • an application e.g., in response to a request from a service consumer
  • register an event e.g., in response to a request from a service consumer
  • to unregister an event e.g., in response to a request from a service consumer
  • an accessory service corresponding to a context service may enable a service consumer implementing the context service to request to launch an application, to request to register an event, to request to unregister an event, to receive an indication of an event, to request to register a motion, to request to unregister a motion, to receive an indication of a motion event, and/or the like.
  • an accessory service corresponding to a file transfer service may enable a service provider implementing the file transfer service to setup a file transfer (e.g., in response to a request from a service consumer), to cancel a file transfer (e.g., in response to a request from a service consumer), to receive a file transfer progress, to provide an indication of whether a file transfer is complete, and/or the like.
  • an accessory service corresponding to a file transfer service may enable a service consumer implementing the file transfer service to request to setup a file transfer, to request to cancel a file transfer, to provide an indication of a file transfer progress, to receive an indication of whether a file transfer is complete, and/or the like.
  • an accessory service corresponding to a music service may enable a service provider implementing the music service to receive a request relating to a remote control function (e.g., from a service consumer), to provide information relating to a music attribute (e.g., in response to a service consumer), to set a music attribute (e.g., in response to a service consumer), to provide information relating to a sound path (e.g., in response to a service consumer), to set a sound path (e.g., in response to a service consumer), to change a media (e.g., in response to a service consumer), to provide an indication of a change to the media, to control a music function, and/or the like.
  • a remote control function e.g., from a service consumer
  • a music attribute e.g., in response to a service consumer
  • a music attribute e.g., in response to a service consumer
  • a sound path e.g., in response to a service consumer
  • an accessory service corresponding to a music service may enable a service consumer implementing the music service to send a request relating to a remote control function, to receive information relating to a music attribute, to request to set a music attribute, to receive information relating to a sound path, to request to set a sound path, to request to change a media, to receive an indication of a change to the media, to request to control a music function, and/or the like.
  • an accessory service corresponding to a notification service may enable a service provider implementing the notification service to provide an indication relating to a received notification, to configure a notification setting (e.g., in response to a request from a service consumer), to launch a notification (e.g., in response to a request from a service consumer), to receive an indication of an update to a notification, to provide an indication that a notification was checked, to receive an indication of whether a notification is synchronized, to provide an indication relating to synchronization of a notification, and/or the like.
  • a notification setting e.g., in response to a request from a service consumer
  • launch a notification e.g., in response to a request from a service consumer
  • an accessory service corresponding to a notification service may enable a service consumer implementing the notification service to receive an indication relating to a received notification, to request to configure a notification setting, to request to launch a notification, to provide an indication of an update to a notification, to receive an indication that a notification was checked, to provide an indication of whether a notification is synchronized, to receive an indication relating to synchronization of a notification, and/or the like.
  • FIG. 29 illustrates a message exchange between service agents according to an embodiment of the present disclosure.
  • a service consumer 2901 communicates with a service provider 2903 .
  • the service consumer 2901 and the service provider 2903 may communicate regarding an accessory service in accordance with a corresponding accessory service profile.
  • the corresponding accessory service profile may define a format for messages exchanged between the service consumer 2901 and the service provider 2903 relating to the accessory service.
  • the service consumer 2901 may send a message 2905 to the service provider 2903 .
  • the service provider 2903 may send a message 2907 to the service consumer 2901 .
  • Message identifiers for the message 2905 and the message 2907 may be configured in accordance with the accessory service profile to which the accessory service is mapped.
  • the accessory service profile may define a structure of a message identifier that includes an indication of a feature, an intent, a type, and/or the like.
  • FIG. 30 illustrates a message exchange between service agents according to an embodiment of the present disclosure.
  • a service consumer 3001 communicates with a service provider 3003 .
  • the service consumer 3001 and the service provider 3003 may communicate regarding an accessory service in accordance with a corresponding accessory service profile.
  • the accessory service relates to a call service.
  • the service consumer 3001 may send a message (e.g., call-initiate-req) 3005 to the service provider 3003 .
  • the message 3005 may be configured according to a format defined by the applicable accessory service profile.
  • the message 3005 may correspond to a request to initiate a call according to the call service.
  • the message identifier may correspond to call-initiate-req such that the service provider 3003 may determine how to process the message 3005 and what actions to take upon receipt of the message 3005 .
  • the message identifier may indicate that the accessory service relates to a call service, that the purpose of the message is to initiate a call, and that the type of message is a request (e.g., that a response to the message is expected).
  • the message 3005 may include the callee identification identifying the contact or address thereof of an intended recipient of the desired call.
  • the service provider 3003 may send a response message (call-initiate-rsp) 3007 to the service consumer 3001 .
  • the response message 3007 may be configured according to a format defined by the applicable accessory service profile.
  • the response message 3007 may include a status of the requested call, and/or the like.
  • FIG. 31 illustrates a message exchange between service agents according to an embodiment of the present disclosure.
  • a service consumer 3101 communicates with a service provider 3103 .
  • the service consumer 3101 and the service provider 3103 may communicate regarding an accessory service in accordance with a corresponding accessory service profile.
  • the accessory service relates to a call service.
  • the service provider 3103 may send an indication of an incoming call (e.g., call-incoming-ind) 3105 to the service consumer 3101 .
  • the indication of the incoming call 3105 may be configured according to a format defined by the applicable accessory service profile.
  • the indication of the incoming call 3105 may include an indication of a caller identification.
  • the service consumer 3101 may send a call response request (e.g., call-respond-req) 3107 to the service provider 3003 .
  • the call response request 3107 may be configured according to a format defined by the applicable accessory service profile.
  • the call response request 3107 may correspond to a request for responding to an incoming call.
  • the call response request 3107 may correspond to a request to answer the incoming call, reject the incoming call, silence the incoming call, and/or the like.
  • the call response request 3107 may include an indication of the response type that the service consumer 3101 requests the service provider 3103 to take.
  • the service provider 3103 may determine how to process the call response request 3107 and using the information relating to the response type, the service provider 3103 may determine the actions to take upon receipt of the call response request 3107 .
  • the service provider 3103 may send a response message (call-respond-rsp) 3109 to the service consumer 3101 .
  • the response message 3109 may be configured a format defined by the applicable accessory service profile.
  • the response message 3109 may include a status of the response to the incoming call.
  • FIG. 32 illustrates a message exchange between service agents according to an embodiment of the present disclosure.
  • a service consumer 3201 communicates with a service provider 3203 .
  • the service consumer 3201 and the service provider 3203 may communicate regarding an accessory service in accordance with a corresponding accessory service profile.
  • the accessory service relates to an alarm service.
  • the service provider 3203 may send an indication of an alarm alert (e.g., alarm-alert-ind) 3205 to the service consumer 3201 .
  • the indication of the alarm alert 3205 may be configured according to a format defined by the applicable accessory service profile.
  • the indication of the alarm alert 3205 may include an indication of an alarm that is ringing, data relating to the alarm, information relating to a snooze of the alarm, and/or the like.
  • the service consumer 3201 may send a response message (alarm-action-rsp) 3207 to the service provider 3203 .
  • the response message 3207 may be configured according to a format defined by the applicable accessory service profile.
  • the response message 3207 may indicate a desired action, and/or the like.
  • the response message 3207 may include an action which the service consumer 3201 wants to the service provider 3203 to perform in relation to the alarm that is ringing.
  • FIG. 33 illustrates a message exchange between service agents according to an embodiment of the present disclosure.
  • a service consumer 3301 communicates with a service provider 3303 .
  • the service consumer 3301 and the service provider 3303 may communicate regarding an accessory service in accordance with a corresponding accessory service profile.
  • the accessory service relates to a notification service.
  • the service provider 3303 may send an indication of a received notification (e.g., noti-received-ind) 3305 to the service consumer 3301 .
  • the indication of the received notification 3305 may be configured according to a format defined by the applicable accessory service profile.
  • the indication of the received notification 3305 may include an information relating to the received notification, and/or the like.
  • the information relating to the received notification that may be included with the indication of the received notification 3305 may include sufficient information to enable the service consumer 3301 to determine whether to take action in relation to the notification (e.g., to request the service provider 3303 to send a response, and/or the like).
  • FIG. 34 illustrates a message exchange between service agents according to an embodiment of the present disclosure.
  • a service consumer 3401 communicates with a service provider 3403 .
  • the service consumer 3401 and the service provider 3403 may communicate regarding an accessory service in accordance with a corresponding accessory service profile.
  • the accessory service relates to a file transfer service.
  • the service provider 3403 may send a request (e.g., filetransfer-cancel-req) 3405 to the service consumer 3401 .
  • the request 3405 may be configured according to a format defined by the applicable accessory service profile.
  • the request 3405 may correspond to a request to cancel a file transfer.
  • the message identifier may correspond to filetransfer-cancel-req such that the service consumer 3401 may determine how to process the request 3405 and what action to take upon receipt of the request 3405 .
  • the message identifier may indicate that the accessory service relates to a file transfer service, that the purpose of the message is to cancel a file transfer, and that the type of message is a request (e.g., that a response to the message is expected).
  • the service consumer 3401 may send a response message (filetransfer-cancel-req) 3407 to the service provider 3403 .
  • the response message 3407 may be configured according to a format defined by the applicable accessory service profile.
  • the response message 3407 may include a status of the file transfer (e.g., a status of the cancellation of the file transfer), and/or the like.
  • an electronic device and a peer electronic device can exchange respective capabilities.
  • the capability exchange between an electronic device and a peer electronic device may relate to the exchange of capabilities of application programs on connected electronic devices.
  • Capability exchange between electronic devices enables peer electronic devices (e.g., the applications on the peer electronic devices) to discover or identify the capabilities of other peer electronic devices.
  • capability exchange may include the protocol and/or procedure according to which application programs (e.g., application layer entities and corresponding supported service capabilities such as service agents) are communicated across peer electronic devices.
  • application programs e.g., application layer entities and corresponding supported service capabilities such as service agents
  • the capability exchange may include the protocol and/or procedure according to which application programs of an electronic device and the capabilities thereof are advertised to and/or discovered by a peer electronic device.
  • Capability exchange across peer electronic devices enables electronic devices having different configurations to communicate and provide services. For example, capability exchange enables peer electronic devices having a different feature set (e.g., supporting different subsets of features and/or having different applications respectively loaded thereon) to communicate and provide services. Accordingly, capability exchange across peer electronic devices enables a peer electronic device to leverage functions and/or capabilities of an electronic device to which the peer electronic device is connected. An electronic device may provide access to functions and/or capabilities thereof to a peer electronic device to which the electronic device is connected. In addition, the electronic device may provide access to functions and/or capabilities that are newly added thereto to a peer electronic device (e.g., when a new application or capability is installed on the electronic device).
  • a first electronic device 1001 may communicate with the second electronic device 1003 .
  • the first electronic device 1001 and the second electronic device 1003 may use the capability exchange protocol 1041 to communicate therebetween capabilities of at least one of the first electronic device 1001 or the second electronic device 1003 .
  • the first electronic device 1001 and the second electronic device 1003 may communicate the capabilities between the capability exchange 1039 of the first electronic device 1001 and the capability exchange 1043 of the second electronic device 1003 .
  • the first electronic device 1901 and the second electronic device 1903 may communicate capabilities between the capability discovery layer 1916 of the first electronic device 1901 and the capability discovery layer 1925 of the second electronic device 1903 .
  • the capability discovery layer 191 and the capability discovery layer 1925 may communicate capabilities that are respectively registered therewith.
  • the capability exchange protocol may be encapsulated in the capability discovery layer.
  • an application layer entity on an electronic device may use the functionality (e.g., services) of a capability discovery layer to advertise itself and/or capabilities thereof to an application layer entity on a peer electronic device.
  • an application layer entity on an electronic device may use the functionality (e.g., services) of the capability discovery layer to discover application layer entities of interest (e.g., or capabilities or services of interest) on a peer electronic device.
  • the capability discovery layer may leverage a session layer to achieve the functionality of the capability discovery layer.
  • the capability discovery layer may communicate with the session layer to create a service connection with a capability discovery layer of another capability discovery layer (e.g., a capability discovery layer of a peer electronic device). If a service connection is established for capability exchange between an electronic device and a peer electronic device, then the capability discovery layer of the electronic device and the capability exchange of the peer electronic device may perform capability exchange over the service connection.
  • the capability discovery layer may register with the session layer in order to facilitate capability exchange.
  • the capability discovery layer may register with the session layer to be able to accept (e.g., receive) incoming service connection creation requests from new peer electronic devices.
  • the capability discovery layer may register with the session layer to be able to receive notifications about new peer electronic devices.
  • the capability exchange entity 915 may use the session layer service access point 911 to leverage the session layer to establish a service connection with a peer electronic device for capability exchange.
  • the capability discovery layer may use the session layer service access point to communicate messages over a channel provided by the service connection.
  • the messages communicated between an electronic device and a peer electronic device in relation to capability exchange may be configured in accordance with a capability exchange protocol.
  • the capability discovery layer may initiate establishment of a service connection whenever the capability discovery layer queries a peer electronic device.
  • the capability discovery layer may initiate establishment of a service connection whenever the capability discovery layer is to notify a peer electronic device of a change in registered application layer entities and/or service capabilities thereof.
  • the service connection established for capability exchange may be maintained and used for capability exchange until the peer electronic device is no longer connected to the electronic device.
  • the capability exchange entity 915 may receive notifications of newly added and/or authenticated peer electronic devices through the session layer service access point 911 . For example, if a peer electronic device is newly connected to the electronic device 901 and/or if a peer electronic device is newly authenticated by the electronic device 901 , then the capability exchange entity 915 may use the session layer service access point 911 to receive notifications of such connection and/or authentication.
  • the capability discovery layer may receive registration from application layer entities.
  • the capability discovery layer may allow an application layer entity to register an identity and/or service capabilities thereof with the capability discovery layer.
  • the capability discovery layer may allow an application layer entity to de-register the identity and/or service capabilities (or subset of service capabilities) with the capability discovery layer.
  • an application layer entity 1402 may communicate with the capability discovery layer 1409 using the capability discovery service access point 1411 .
  • the capability discovery service access point 1411 may enable the application layer entity 1402 to register with the capability discovery layer 1409 .
  • the capability discovery service access point 1411 may enable the application layer entity 1402 to register service capabilities thereof (e.g., using the application layer entity identifier associated with the application layer entity 1402 ) with the capability discovery layer 1409 .
  • the application layer entity 1402 may use the capability discovery service access point 1411 to communicate with the capability discovery layer 1409 to obtain a list of application layer entity identifiers identifying application layer entities of peer electronic devices that provide a desired service.
  • the application layer entity 1402 may use the capability discovery service access point 1411 to instruct or request the capability discovery layer 1409 to receive incremental updates of capabilities of a peer electronic device.
  • the application layer entity 1402 may use the capability discovery service access point 1411 to instruct or request the capability discovery layer 1409 to automatically perform a persistent capability query to a new peer electronic device (e.g., such that the capability discovery layer may continually identify application layer entities on peer electronic devices that perform the desired service).
  • the capability discovery layer of an electronic device may communicate and/or advertise capabilities of the electronic device.
  • the capability discovery layer may communicate and/or advertise capabilities of the electronic device that are registered with the capability discovery layer.
  • the capability discovery layer may communicate and/or advertise application layer entities and/or service capabilities thereof that are registered with the capability discovery layer.
  • the capability discovery layer may maintain a list of registered application layer entities and/or service capabilities thereof.
  • the capability discovery layer may maintain a list of local registered application layer entities.
  • the capability discovery layer may maintain an application layer entity registration database.
  • the application layer registration database may correspond to a repository that includes an identity and capability information of an application layer entity that has registered with the corresponding capability discovery layer.
  • the application layer registration database may include identity and capability information of application layer entities that are currently registered with the corresponding capability discovery layer.
  • the capability discovery layer of an electronic device may receive queries from peer electronic devices.
  • the queries may include requests for information relating to capabilities of the electronic device.
  • the capability discovery layer may respond to a query from a peer electronic device with information relating to locally registered application layer entities.
  • the capability discovery layer of an electronic device may notify a peer electronic device of a change in registrations of application layer entities or service capabilities thereof.
  • the capability discovery layer may notify a peer electronic device of a change in the list of registered application layer entities.
  • a change in registrations of application layer entities may be a result of a new registration of an application layer entity or a de-registration of a previously registered application layer entity.
  • a change in registrations of application layer entities or service capabilities thereof may be a result of the electronic device installing a new application, upgrading an existing application, and/or the like.
  • the capability discovery layer may communicate an entire list of currently registered application layer entities and/or service capabilities thereof, or the capability discovery layer may communicate to the peer electronic device a difference between a currently list of registered application layer entities and/or service capabilities thereof and a previous list of registered application layer entities and/or service capabilities thereof that was communicated to the peer electronic device (e.g., the capability discovery layer may communicate the “delta” between registered application layer entities or service capabilities thereof over a period of time).
  • a capability discovery layer of an electronic device may receive a query with a filter for application layer entities and/or service capabilities thereof.
  • the query with a filter may correspond to a request from a peer electronic device for a specific set of application layer entities and/or service capabilities thereof, a specific set of a type of application layer entities and/or service capabilities thereof, and/or the like. If the capability discovery layer receives a query with a filter, then the capability discovery layer may respond to such a query with a list of application layer entities or service capabilities thereof that satisfy the filter.
  • the capability discovery layer may communicate and/or advertise a filtered set of application layer entities and/or service capabilities thereof that satisfy a particular query.
  • the capability discovery layer may identify and/or filter the currently registered application layer entities and/or service capabilities thereof that may provide a messaging service, and communicate such application layer entities and/or service capabilities thereof to the peer electronic device.
  • an electronic device may leverage a capability discovery layer thereof to discover application layer entities and/or service capabilities thereof on peer electronic devices.
  • the capability discovery layer may query a peer electronic device for a list of application layer entities and/or service capabilities thereof.
  • the query may be a filtered request for a specific set of application layer entities and/or service capabilities thereof, a specific set of a type of application layer entities and/or service capabilities thereof, and/or the like.
  • a capability discovery layer of an electronic device may maintain a list of application layer entities and/or service capabilities thereof of peer electronic devices to which the electronic device is connected, peer electronic devices to which the electronic device was previously connected, and/or the like.
  • the capability discovery layer may maintain a peer electronic device application layer entity database.
  • the peer electronic device application layer entity database may correspond to a repository that includes an identity and capability information of application layer entities on a peer electronic device.
  • the capability discovery layer may populate the peer electronic device application layer entity database with information received during capability exchange between the electronic device and a peer electronic device.
  • the capability discovery layer may keep the list of application layer entities and/or service capabilities thereof of a peer electronic device by querying the peer electronic device when the capability discovery layer receives a request from an application layer entity on the electronic device. According to various embodiments of the present disclosure, the capability discovery layer may keep the list of application layer entities and/or service capabilities thereof of a peer electronic device by receiving capability updates from peer electronic devices.
  • capability exchange may include a capability exchange protocol which defines a protocol by which an electronic device and a peer electronic device may communicate with each other in order to exchange capabilities.
  • the capability exchange protocol may define a protocol by which a capability discovery layer of an electronic device communicates with a capability discovery layer of a peer electronic device in order to exchange information about application layer entities respectively registered therewith and/or service capabilities of such application layer entities.
  • capability exchange between a capability discovery layer of an electronic device and a capability discovery layer of a peer electronic device may include a query requesting a list of application layer entities and/or service capabilities thereof.
  • the capability discovery layer of the electronic device may query the capability discovery layer of the peer electronic device for a list of application layer entities registered therewith and/or service capabilities thereof.
  • the capability exchange protocol may define the queries relating to capability exchange between an electronic device and a peer electronic device.
  • the capability exchange protocol may define behavior of an electronic device and/or peer electronic device during capability exchange.
  • the capability exchange protocol may define a normal query behavior.
  • the capability exchange protocol may define a persistent query behavior.
  • capability exchange behavior e.g., normal query behavior, persistent query behavior, and/or the like
  • the capability exchange behavior may be set according to a request received by a capability discovery layer of an electronic device from an application layer entity thereof for service capabilities of application layer entities on a peer electronic device.
  • the normal query behavior may relate to a capability exchange according to which a capability discovery layer of an electronic device queries (e.g., via a message exchange) a peer electronic device to discover (e.g., learn) application layer entities registered therewith and/or service capabilities thereof.
  • a capability discovery layer of an electronic device queries (e.g., via a message exchange) a peer electronic device to discover (e.g., learn) application layer entities registered therewith and/or service capabilities thereof.
  • the electronic device may repeat a query with the peer electronic device for application layer entities registered therewith and/or service capabilities thereof.
  • the electronic device may repeat a query for application layer entities registered with the peer electronic device and/or service capabilities thereof.
  • updates to the peer electronic device may not be communicated to the electronic device using a push scheme. Rather, the electronic device may repeat capability exchange queries to receive updated information relating to capabilities of the peer electronic device.
  • the normal query behavior may include a 1:1 query to query response message ratio (e.g., which may be distinguished from a persistent query behavior which may have multiple response messages for each query message).
  • the persistent query behavior may relate to a capability exchange according to which a capability discovery layer of an electronic device queries (e.g., via message exchange), a peer electronic device to discover (e.g., learn) application layer entities registered therewith and/or service capabilities thereof.
  • the peer electronic device queried by the capability exchange layer of the electronic device may perform incremental capability update (e.g., via another message exchange).
  • the peer electronic device queried by the electronic device may communicate incremental capability update if application layer entities registered therewith and/or service capabilities thereof is changed (e.g., since the most recent capability exchange or capability update).
  • the peer electronic device may continue to update the electronic device with a change in capabilities of the peer electronic device.
  • the peer electronic device may update the electronic device with a capability update at predefined time intervals, as the capabilities of the peer electronic device (e.g., capabilities of the registered application layer entities) are updated, and/or the like.
  • an electronic device may automatically query a newly connected peer electronic device. For example, if a new peer electronic device is connected to the electronic device, then the electronic device may automatically query the new peer electronic device for service capabilities (e.g., a list of application layer entities registered therewith and/or service capabilities thereof). As another example, if a peer electronic device is reconnected to the electronic device (e.g., after having been disconnected for a period of time), then the electronic device may automatically query the peer electronic device for an update of service capabilities. According to various embodiments of the present disclosure, the electronic device may automatically query a newly connected peer electronic device or a reconnected electronic device without being prompted by an application layer entity on the electronic device.
  • service capabilities e.g., a list of application layer entities registered therewith and/or service capabilities thereof.
  • the electronic device may automatically query the peer electronic device for an update of service capabilities.
  • the electronic device may automatically query a newly connected peer electronic device or a reconnected electronic device without being prompted by an application layer entity on the electronic device.
  • the capability discovery layer of the electronic device may automatically query a newly connected peer electronic device or a reconnected electronic device based on receipt of a notification from the session layer of the electronic device that a new peer electronic device is connected and/or that a peer electronic device is reconnected.
  • an electronic device may dynamically update and/or sync capabilities of the electronic device with a peer electronic device (e.g., a peer electronic device connected to the electronic device). For example, when a new application is installed to a peer electronic device connected to the electronic device, then the peer electronic device may send a message that updates the electronic device with the new set of service capabilities (or simply the delta new or incremental update of service capabilities) of the peer electronic device. The new set of service capabilities (or the delta new or incremental update of service capabilities) may be pushed to the electronic device.
  • a peer electronic device e.g., a peer electronic device connected to the electronic device.
  • the capability discovery layer may include an entity for enabling application layer entity registration.
  • the entity for enabling application layer entity registration may include or otherwise use a service access point with which services thereof may be accessed. For example, if an application layer entity wants to register with the capability discovery layer, then the application layer entity may register with the entity for enabling application layer entity registration using the corresponding service access point.
  • the capability discovery layer may include an entity for enabling application layer entity capability querying.
  • the entity for enabling application layer entity capability querying may include or otherwise use a service access point with which services thereof may be accessed. For example, if an application layer entity wants to discover an application layer entity on a peer electronic device that performs a desired service, then the application layer entity may query application layer entity capability using the corresponding service access point.
  • an application layer entity may register with the capability discovery layer. For example, if an application layer entity wants to inform peer electronic devices of service capabilities of the application layer entity that may be leveraged (e.g., of accessory services that the application layer entity may provide and/or consume), then the application layer entity may register with the capability discovery layer of the electronic device.
  • FIG. 35 illustrates a state diagram of registration of an application layer entity according to an embodiment of the present disclosure.
  • an application layer entity of an electronic device may be in an unregistered state 3501 according to which the application layer entity is not registered with a capability discovery layer of the electronic device.
  • the unregistered state 3501 may be the default state of an application layer entity.
  • a newly installed application layer entity may initialize in the unregistered state 3501 .
  • the application layer entity may communicate a request to register with the capability discovery layer.
  • the application layer entity may receive a message indicating that the request to register with the capability discovery layer is rejected. For example, if the capability discovery layer rejects the request for the application layer entity to register with the capability discovery layer, then the capability discovery layer may communicate a message (or otherwise inform) the application layer entity that the request to register with the capability discovery layer is rejected. The application layer entity may remain in the unregistered state 3501 as illustrated by the state transition arrow 3503 . If the request to register with the capability discovery layer is rejected, then the corresponding service agent may be notified of the rejection of the request to register with the capability discovery layer.
  • the application layer entity may receive a message indicating that the request to register with the capability discovery layer is accepted. For example, if the capability discovery layer accepts the request for the application layer entity to register with the capability discovery layer, then the capability discovery layer may communicate a message to (or otherwise inform) the application layer entity that the request to register with the capability discovery layer is accepted. If the request to register with the capability discovery layer is accepted, then the corresponding service agent may be notified of the acceptance of the request to register with the capability discovery layer. If the request to register with the capability discovery layer is accepted, then the application layer registration database may be updated. For example, the capability discovery layer may update the application layer registration database if the request to register with the capability discovery layer is accepted.
  • the capability discovery layer may update the application layer registration database with information relating to the application layer entity for which the request to register with the capability discovery layer is accepted. For example, the capability discovery layer may update or otherwise include in a list of registered application layer entities and/or service capabilities thereof the application layer entity for which the request to register with the capability discovery layer is accepted.
  • the application layer entity may transition to a registered state 3507 . If the application layer entity is in the registered state 3507 , the application layer entity (or applicable service agent thereof) is registered with the capability discovery layer. As illustrated in FIG. 35 , if the request to register with the capability discovery layer is accepted, then the application layer entity may transition to the registered state 3507 as illustrated by the state transition arrow 3505 .
  • the application layer entity may communicate a request to de-register from the capability discovery layer.
  • the application layer entity may receive a message indicating that the request to de-register from the capability discovery layer is rejected. For example, if the capability discovery layer rejects the request for the application layer entity to de-register from the capability discovery layer, then the capability discovery layer may communicate a message to (or otherwise inform) the application layer entity that the request to de-register from the capability discovery layer is rejected. The application layer entity may remain in the registered state 3507 as illustrated by the state transition arrow 3509 . If the request to de-register from the capability discovery layer is rejected, then the corresponding service agent may be notified of the rejection of the request to de-register from the capability discovery layer.
  • the application layer entity may receive a message indicating that the request to de-register from the capability discovery layer is accepted. For example, if the capability discovery layer accepts the request for the application layer entity to de-register from the capability discovery layer, then the capability discovery layer may communicate a message to (or otherwise inform) the application layer entity that the request to de-register from the capability discovery layer is accepted. If the request to de-register from the capability discovery layer is accepted, then the corresponding service agent may be notified of the acceptance of the request to de-register from the capability discovery layer. If the request to de-register from the capability discovery layer is accepted, then the application layer registration database may be updated.
  • the capability discovery layer may update the application layer registration database if the request to de-register from the capability discovery layer is accepted.
  • the capability discovery layer may update the application layer registration database to remove (or otherwise modify) information relating to the application layer entity for which the request to de-register from the capability discovery layer is accepted.
  • the capability discovery layer may update or otherwise remove from a list of registered application layer entities and/or service capabilities thereof the application layer entity for which the request to de-register from the capability discovery layer is accepted.
  • the application layer entity may transition to the unregistered state 3501 . As illustrated in FIG. 35 , if the request to de-register from the capability discovery layer is accepted, then the application layer entity may transition to the unregistered state 3501 as illustrated by the state transition arrow 3511 .
  • FIG. 36 illustrates a state diagram of a capability query according to an embodiment of the present disclosure.
  • the query state of a capability discovery layer in relation to a specific query may be in an initial state 3601 according to the specific query is not awaiting a response.
  • the capability discovery layer of an electronic device may receive a service list request according to a normal query.
  • the service list may include an indication that the request corresponds to a normal query according to normal query behavior defined by the applicable capability exchange protocol.
  • the capability discovery layer may receive a service list request according to a normal query from an application layer entity.
  • the service list request according to a normal query may include a service list that may identify the desired services that the application layer entity desires.
  • the service list request according to a normal query may include a new filter of desired services. If the capability discovery layer receives the service list request according to a normal query, then the capability discovery layer may communicate a capability request (e.g., a normal capability request message) to a peer electronic device.
  • a capability request e.g., a normal capability request message
  • the capability discovery layer may communicate the capability request to a capability discovery layer of the peer electronic device.
  • the capability discovery layer may communicate the capability request to the peer electronic device upon receipt of the service list request.
  • the capability discovery layer may communicate that the capability request corresponds to a normal query.
  • the capability request may include an indication that the capability request is a normal query such that the peer electronic device processes the capability request according to normal query behavior in accordance with the capability exchange protocol.
  • the capability discovery layer of the electronic device may transition to a normal query sent state 3605 in relation to the service list request according to a normal query.
  • the capability discovery layer may determine whether the response to the capability request indicates whether the peer electronic device may provide and/or consume any of the desired services (e.g., the services included in the service list request). For example, the capability discovery layer may determine whether any of the available services of the peer electronic device (e.g., the application layer entities registered with the peer electronic device and/or the service capabilities thereof) correspond to the applicable filter associated with the capability request (e.g., corresponding to the service list request). According to various embodiments of the present disclosure, a capability discovery layer may determine whether any common filters exist between the capability request and the capability answer according to capability exchange.
  • a capability discovery layer may determine whether any common filters exist between the capability request and the capability answer according to capability exchange.
  • a capability discovery layer may determine whether any common services exist between the desired services of the electronic device and the list of available services of the peer electronic device (e.g., based on results from querying the peer electronic device application layer entity database).
  • the response to the capability request e.g., the capability answer message
  • the capability request may include a list of available services of the peer electronic device and/or a response to the capability request indicating that no common services exist between the desired services of the electronic device and the list of available services of the peer electronic device.
  • the capability discovery layer may communicate such a result to the application layer entity associated with the service list request. As illustrated by state transition arrow 3607 , the capability discovery layer may transition to the initial state 3601 in relation to the query of the service list request according to a normal query.
  • the capability discovery layer may transition to a processing common filters state 3611 in relation to the service list request according to a normal query.
  • the capability discovery layer may query the peer electronic device application layer entity database for common filters.
  • the capability discovery layer may identify service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device (e.g., based on results from querying the peer electronic device application layer entity database). If the capability discovery layer identifies service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device, then the capability discovery layer may communicate a query result to the application layer entity associated with the service list request according to a normal query. According to various embodiments of the present disclosure, the capability discovery layer may receive from the peer electronic device a query result that identifies service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device. The capability discovery layer may notify the applicable application layer entity of the normal query result.
  • the capability discovery layer may transition to the initial state 3601 in relation to the service list request according to a normal query.
  • the capability discovery layer may transition to the initial state 3601 in relation to the service list request according to a normal query.
  • the capability discovery layer may communicate a list of application layer entities on a peer electronic device and/or service capabilities thereof that satisfy the service list request according to a normal query.
  • the capability discovery layer of an electronic device may receive a service list request according to a persistent query.
  • the service list may include an indication that the request corresponds to a persistent query according to persistent query behavior defined by the applicable capability exchange protocol.
  • the capability discovery layer may receive a service list request according to a persistent query from an application layer entity.
  • the service list request according to a persistent query may include a service list that may identify the desired services that the application layer entity desires.
  • the service list request according to a persistent query may include a new filter of desired services. If the capability discovery layer receives the service list request according to a persistent query, then the capability discovery layer may communicate a capability request (e.g., a persistent capability request message) to a peer electronic device.
  • a capability request e.g., a persistent capability request message
  • the capability discovery layer may communicate the capability request to a capability discovery layer of the peer electronic device.
  • the capability discovery layer may communicate the capability request to the peer electronic device upon receipt of the service list request.
  • the capability discovery layer may communicate that the capability request corresponds to a persistent query.
  • the capability request may include an indication that the capability request is a persistent query such that the peer electronic device processes the capability request according to persistent query behavior in accordance with the capability exchange protocol.
  • the capability discovery layer of the electronic device may transition to a persistent query sent state 3617 in relation to the service list request according to a persistent query.
  • the capability discovery layer may determine whether the response to the capability request indicates whether the peer electronic device may provide and/or consume any of the desired services (e.g., the services included in the service list request). For example, the capability discovery layer may determine whether any of the available services of the peer electronic device (e.g., the application layer entities registered with the peer electronic device and/or the service capabilities thereof) correspond to the applicable filter associated with the capability request (e.g., corresponding to the service list request). According to various embodiments of the present disclosure, a capability discovery layer may determine whether any common filters exist between the capability request and the capability answer according to capability exchange.
  • a capability discovery layer may determine whether any common filters exist between the capability request and the capability answer according to capability exchange.
  • a capability discovery layer may determine whether any common services exist between the desired services of the electronic device and the list of available services of the peer electronic device.
  • the response to the capability request (e.g., the capability answer message) may include a list of available services of the peer electronic device and/or a response to the capability request indicating that no common services exist between the desired services of the electronic device and the list of available services of the peer electronic device.
  • the capability discovery layer may store a list of the available services of the peer electronic device (e.g., the application layer entities registered with the peer electronic device and/or the service capabilities thereof).
  • the capability exchange protocol may define the persistent query behavior such that the peer electronic device updates the capability discovery layer with incremental changes to the available services of the peer electronic device.
  • the capability discovery layer may store such incremental changes.
  • the capability discovery layer may store such incremental changes so as to update the list of available services of the peer electronic device (e.g., the application layer entities registered with the peer electronic device and/or the service capabilities thereof).
  • the capability discovery layer may communicate such a result to the application layer entity associated with the service list request.
  • the capability discovery layer may save the peer electronic device application layer entity list (e.g., received with the capability answer message) to the peer electronic device application layer entity database.
  • the capability discovery layer may transition to the initial state 3601 in relation to the query of the service list request according to a persistent query.
  • the capability discovery layer may save the application layer entity list (e.g., received with the capability answer message). For example, the capability discovery layer may update the peer electronic device application layer entity database to include information included in the application layer entity list.
  • the capability discovery layer may query the peer electronic device application layer entity database for common filters.
  • the capability discovery layer may transition to the processing common filters state 3611 in relation to the service list request according to a persistent query.
  • the capability discovery layer may identify service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device. If the capability discovery layer identifies service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device (e.g., based on results from querying the peer electronic device application layer entity database), then the capability discovery layer may communicate a query result to the application layer entity associated with the service list request according to a persistent query. According to various embodiments of the present disclosure, the capability discovery layer may receive from the peer electronic device a query result that identifies service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device. The capability discovery layer may notify the applicable application layer entity of the query result.
  • the capability discovery layer may determine whether the service list request includes any new filters. For example, the capability discovery layer may determine whether a service list request includes only common filters. If the capability discovery layer determines that the service list request does not include a new filter, then the capability discovery layer may query the peer electronic device application layer entity database. The capability discovery layer may query the peer electronic device application layer entity database in order to determine whether the service capabilities of peer electronic devices satisfy the desired services (e.g., the list of services included in the service list request).
  • the capability discovery layer may query the peer electronic device application layer entity database (e.g., for common filters) and transition to the processing common filters state 3611 .
  • the capability discovery layer may identify service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device. If the capability discovery layer identifies service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device (e.g., based on results from querying the peer electronic device application layer entity database), then the capability discovery layer may communicate a query result to the application layer entity associated with the service list request. According to various embodiments of the present disclosure, the capability discovery layer may receive from the peer electronic device a query result that identifies service capabilities of the peer electronic device that satisfy at least one of the desired services of the electronic device. The capability discovery layer may notify the applicable application layer entity of the query result.
  • the capability discovery layer may transition to the initial state 3601 in relation to the service list request according to a persistent query.
  • the capability discovery layer may transition to the initial state 3601 in relation to the service list request according to a persistent query.
  • the capability discovery layer may communicate a list of application layer entities on a peer electronic device and/or service capabilities thereof that satisfy the service list request according to a persistent query.
  • FIG. 37 illustrates a state diagram of an application layer entity according to an embodiment of the present disclosure.
  • an application layer entity of an electronic device may issue a persistent query to a capability discovery layer.
  • the application layer entity may leverage the capability discovery layer to perform discovery of service capabilities of peer electronic devices.
  • the application layer entity may leverage the capability discovery to perform discovery using a persistent query, the behavior of which may be defined by the applicable capability exchange protocol.
  • a lifecycle of a persistent query filter/requesting application layer entity pair is shown in FIG. 37 .
  • the application layer entity may be in an initial state 3701 . If the application layer entity is in the initial state 3701 there are no current persistent query requests from the requesting application layer entity. This can be either because the requesting application layer entity has not yet submitted a persistent query request, or because the persistence duration of the request has timed out.
  • a first time request is made that corresponds to a new persistent query filter/requesting application layer entity pair.
  • the persistent query filter/requesting application layer entity pair is saved and a timer corresponding to the persistence duration requested by the application layer entity is started.
  • the application layer entity may request service capabilities of a peer electronic device according to a persistent query behavior.
  • the application layer entity may communicate a persistent service list request to the capability discovery layer.
  • the persistent service list request may include an indication that the request corresponds to a persistent query.
  • the persistent service list request may include an identifier of the application layer entity of the electronic device (e.g., the application layer entity initiating the request or otherwise requesting the service capabilities), a filter, and/or the like.
  • the filter may identify or otherwise provide an indication of the service capabilities that the application layer entity desires.
  • the filter may identify or otherwise provide an indication of the desired services.
  • the persistent service list request may include a new combination of a filter and application layer entity identifier (e.g., the parameters of the persistent query are new and not subject to a current persistent query).
  • the application layer entity may save the filter.
  • the filter may be saved to a local persistent query state (e.g., a new persistent query state for the requesting application layer entity) if the filter is new.
  • the application layer entity may start a requestor application layer entity timer.
  • the persistent query may include a persistence duration.
  • the persistence duration may correspond to a duration for which the requesting application layer entity wishes the query to persist.
  • the persistence duration may be specified according to a unit of minutes.
  • the persistence query may include a field in which a value corresponding to the persistence duration may be entered.
  • the persistence duration may be within a range of 1 to 1440 minutes.
  • the capability exchange protocol may define a default persistence duration. For example, the default persistence duration may be 720 minutes.
  • the application layer entity may transition to a filter created state 3705 that means that there is a live persistent query request corresponding to the persistent query filter/requesting application layer entity pair.
  • the application layer entity may transition to the initial state 3701 .
  • there is a timeout of the persistence duration timer in the specific case that there is at least one other application layer entity for which the lifecycle of that persistent query filter/requesting application layer entity pair is in the filter created state 3705 , i.e., the other application layer entity has a live request for the same filter.
  • the application layer entity may remain in the filter created state 3705 if the application layer entity reinitiates a persistent query or initiates a new persistent query.
  • the application layer entity and/or the capability discovery layer may restart the requestor application layer entity timer.
  • the application layer entity may transition to the removing filter state on peer electronic devices state 3713 , which is a cleaning up state where the electronic device is attempting to remove persistent query subscriptions from peer electronic devices for the filter.
  • the application layer entity may remove the device filter state on all peer electronic devices.
  • there is a timeout of the persistence duration timer (similar to the state transition arrow 3707 ) but there is no other application layer entity which has a live request for the same filter.
  • the application layer entity and/or capability discovery layer may purge entries associated with the persistent query from the peer electronic device application layer entity database.
  • state transition arrow 3715 if the filter state is removed on all peer electronic devices and the associated entries are purged from the peer electronic device application layer entity database, then the application layer entity may transition to the initial state 3701 .
  • all connected electronic devices have removed the filter from their state and would no longer provide any capability updates for the filter.
  • any local capability entries for the filter are cleaned up and the application layer entity may transition to the initial state 3701 .
  • FIG. 38 illustrates a state diagram of a capability discovery layer according to an embodiment of the present disclosure.
  • a capability discovery layer of an electronic device may be in an initial state 3801 in relation to a peer electronic device query.
  • the electronic device may determine whether any persistent filters are active (e.g., exist). For example, if the capability discovery layer is notified (e.g., by a session layer) that a new peer electronic device is connected, then the capability discovery layer may determine whether any persistent filters are active (e.g., exist). The capability discovery layer may determine whether any persistent queries have not yet expired.
  • the capability discovery layer may remain in the initial state 3801 . For example, if the capability discovery layer determines that no persistent filters are active, the capability discovery layer may remain in the initial state 3801 .
  • the capability discovery layer may transition to an await capability exchange completion state 3807 .
  • the capability discovery layer may transition to the await capability exchange completion state 3807 .
  • the capability discovery layer may transition to the await capability exchange completion state 3807 if no new service list request including a new filter and/or peer electronic device is received.
  • the electronic device performs capability exchange with the newly connected peer electronic device.
  • the electronic device may perform the capability exchange relating to existing persistent queries with the newly connected peer electronic device.
  • the capability discovery layer may perform capability exchange with the peer electronic device (e.g., the capability discovery layer thereof) using the persistent filter.
  • the capability discovery layer may complete the specified capability discovery associated with the active persistent queries.
  • the peer electronic device application layer entity database may be updated. For example, the peer electronic device application layer entity database may be updated to reflect current service capabilities of the newly connected peer electronic device. If the capability discovery layer determines that the capability exchange relating to existing queries is completed with the peer electronic device and the peer electronic device application layer entity database is updated to reflect the capability exchange, then the capability discovery layer may transition to a device filter created state 3811 .
  • the capability discovery layer may transition to the device filter created state 3811 .
  • the capability discovery layer may proceed to the device filter created state 3811 .
  • the peer electronic device application layer entity database may be updated.
  • the capability discovery layer may update the peer electronic device application layer entity database to reflect the change in the service capabilities of the peer electronic device.
  • the capability discovery layer may update the peer electronic device application layer entity database to incorporate the incremental update included in the received incremental capability update, and the capability discovery layer may communicate an incremental capability update acknowledgement to the peer electronic device.
  • the capability discovery layer may transition to the initial state 3801 .
  • the peer electronic device application layer entity database may be updated to purge the entries associated with the newly disconnected peer electronic device.
  • the capability discovery layer may update the peer electronic device application layer entity database if the capability discovery layer receives notification (e.g., from the session layer) that a peer electronic device is disconnected.
  • the capability discovery layer may purge matching entries in the peer electronic device application layer entity database, and transition to the initial state 3801 .
  • FIG. 39 illustrates a signaling diagram for service discovery according to various embodiments of the present disclosure.
  • a first electronic device may communicate with at least one other electronic device.
  • the first electronic device may include at least one application layer entity.
  • the first electronic device may include application layer entity 3901 and application layer entity 3903 .
  • the first electronic device may also include a capability discovery layer 3905 for performing capability exchange with the at least one other electronic device.
  • a second electronic device may include at least one application layer entity.
  • the second electronic device may include application layer entity 3909 and application layer entity 3911 .
  • the second electronic device may also include a capability discovery layer 3907 for performing capability exchange with the first electronic device.
  • a third electronic device may include at least one application layer entity.
  • the third electronic device may include application layer entity 3913 .
  • the application layer entity may register with the capability discovery layer. As illustrated at 3915 , the application layer entity 3901 may register with the capability discovery layer 3905 .
  • the application layer entity 3909 may register with the capability discovery layer 3907 .
  • the capability discovery layer 3905 may register with a session layer of the electronic device.
  • the capability discovery layer 3905 may register with the session layer in order to establish a service connection with a capability discovery layer of a peer electronic device.
  • the capability discovery layer 3905 may perform capability exchange over a channel provided by the service connection.
  • the capability discovery layer 3905 may exchange messages with a capability discovery layer of the second electronic device (e.g., in accordance with an applicable capability exchange protocol) in order to perform capability exchange.
  • the capability discovery layer 3907 may register with the session layer of the second electronic device in order to establish a service connection with a capability discovery layer of the electronic device.
  • the capability discovery layer 3907 may perform capability exchange with the capability discovery layer 3905 .
  • the application layer entity 3911 may request service capabilities of the electronic device.
  • the application layer entity 3911 may request (e.g., with filters) the capability discovery layer 3907 for a list application layer entities on peer electronic devices connected to the second electronic device (e.g., the electronic device on which the application layer entity 3911 resides).
  • the application layer entity 3911 may request the capability discovery layer 3907 for the list of application layer entities on electronic devices connected to the second electronic device with an indication (or expectation) that the request will be processed as a normal query with normal query behavior defined by the applicable capability exchange protocol.
  • the application layer entity 3911 may communicate a service list request to the capability discovery layer 3907 .
  • the peer electronic device application layer entity database is up-to-date (e.g., current)
  • information relating to the service list may be retrieved from the peer electronic device application layer entity database.
  • the information relating to the service list retrieved from the peer electronic device application layer entity database may be communicated to the application layer entity 3911 .
  • the capability discovery layer 3907 may determine whether the peer electronic device application layer entity database is sufficiently up-to-date to satisfy the filter associated with the service list request received from the application layer entity 3911 .
  • the capability discovery layer 3907 may perform capability exchange with the relevant electronic devices connected thereto.
  • the capability discovery layer 3907 may perform capability exchange according to a normal query behavior in accordance with the service list request received at 3919 .
  • the capability discovery layer 3907 may communicate a normal capability query (e.g., a query with normal query behavior) to the capability discovery layer 3905 .
  • the capability discovery layer 3907 may communicate the results of the normal capability query to the application layer entity 3911 .
  • the capability discovery layer 3907 may update the applicable peer electronic device application layer entity database with information received (e.g., service capabilities) from the capability exchange.
  • the capability discovery layer 3907 and the capability discovery layer 3905 may perform capability exchange according to a normal capability query.
  • the capability discovery layer 3907 may query the capability discovery layer 3905 according to the service list request received at 3919 from the application layer entity 3911 . Thereafter, the capability discovery layer 3907 may communicate the results of the normal capability query to the application layer entity 3911 .
  • the application layer entity 3903 may request service capabilities of at least one electronic device connected to the electronic device.
  • the application layer entity 3903 may request (e.g., with filters) the capability discovery layer 3905 for a list of application layer entities of electronic devices connected to the first electronic device (e.g., the electronic device on which the application layer entity 3903 resides).
  • the application layer entity 3903 may request the capability discovery layer 3905 for the list of application layer entities of electronic devices connected to the electronic device with an indication (or expectation) that the request will be processed as a persistent query with persistent query behavior defined by the applicable capability exchange protocol.
  • the application layer entity 3903 may communicate a persistent service list request to the capability discovery layer 3905 .
  • the capability discovery layer may save the filter associated with the persistent service list request. For example, the capability discovery layer may save the filter associated with the persistent service list request to a local persistent query state if the filter is new (e.g., if the filter does not correspond to an existing persistent query).
  • the peer electronic device application layer entity database is up-to-date (e.g., current)
  • information relating to the persistent service list may be retrieved from the peer electronic device application layer entity database.
  • the information relating to the service list retrieved from the peer electronic device application layer entity database may be communicated to the application layer entity 3903 .
  • the capability discovery layer 3905 may determine whether the peer electronic device application layer entity database is sufficiently up-to-date to satisfy the filter associated with the service list request received from the application layer entity 3903 .
  • the capability discovery layer 3905 may perform capability exchange with the relevant peer electronic devices connected thereto.
  • the capability discovery layer 3905 may perform capability exchange according to a persistent query behavior in accordance with the persistent service list request received at 3923 .
  • the capability discovery layer 3905 may communicate a normal persistent query (e.g., a query with persistent query behavior) to the capability discovery layer 3907 .
  • the capability discovery layer 3905 may communicate the results of the normal capability query to the application layer entity 3903 .
  • the capability discovery layer 3905 may update the applicable peer electronic device application layer entity database with information received (e.g., service capabilities) from the capability exchange.
  • the capability discovery layer 3905 and the capability discovery layer 3907 may perform capability exchange according to a persistent capability query.
  • the capability discovery layer 3905 may query the capability discovery layer 3907 according to the persistent service list request received at 3923 from the application layer entity 3903 . Thereafter, the capability discovery layer 3905 may communicate the results of the persistent capability query to the application layer entity 3903 .
  • the capability discovery layer 3905 may communicate to the capability discovery layer 3907 that the capability query at 3925 is of a persistent type.
  • the capability discovery layer 3905 may communicate to the capability discovery layer 3907 parameters associated with the persistent capability query.
  • the capability discovery layer 3907 may process the persistent capability query at 3925 in accordance with the applicable capability exchange protocols.
  • the application layer entity 3909 may deregister from the capability discovery layer 3907 .
  • the capability discovery layer 3907 may update the applicable application layer registration database to reflect deregistration of the application layer entity 3909 .
  • the capability discovery layer 3907 may perform capability exchange with the capability discovery layer 3905 .
  • the capability discovery layer 3907 may communicate incremental update information.
  • the incremental update information may include changes made to service capabilities (e.g., registered service capabilities) of the first peer electronic device.
  • the capability exchange for incremental updates may be prompted by an update to the service capabilities of an applicable peer electronic device.
  • the capability exchange for incremental updates may be performed at preset time intervals over which an applicable persistent query is valid (e.g., for the persistent duration).
  • the capability discovery layer 3905 may update the applicable peer electronic device application layer entity database to reflect the incremental update.
  • the capability discovery layer 3905 may update the applicable peer electronic device application layer entity database to reflect the de-registration of the application layer entity 3909 .
  • the capability discovery layer 3905 may communicate the change to the service capabilities (e.g., the incremental update) to the application layer entity 3903 from which the persistent service list request originated.
  • a new peer electronic device (e.g., the second electronic device) may be connected to the first electronic device.
  • the capability discovery layer 3905 may be notified of the connection of the second electronic device.
  • the session layer may notify the capability discovery layer 3905 of the connection of the second electronic device.
  • the capability discovery layer of the electronic device may determine whether any valid persistent queries (e.g., persistent queries that have not expired—a persistent query for which the persistence duration has not elapsed) exist. The capability discovery layer may also determine whether any valid persistent queries are relevant (e.g., applicable) to the newly connected peer electronic device. If the capability discovery layer of the electronic device determines that a valid persistent query exists, then the capability discovery layer may perform capability exchange with the newly connected peer electronic device.
  • any valid persistent queries e.g., persistent queries that have not expired—a persistent query for which the persistence duration has not elapsed
  • the capability discovery layer may also determine whether any valid persistent queries are relevant (e.g., applicable) to the newly connected peer electronic device. If the capability discovery layer of the electronic device determines that a valid persistent query exists, then the capability discovery layer may perform capability exchange with the newly connected peer electronic device.
  • the capability discovery layer 3905 may perform a capability exchange with a capability discovery layer of the newly connected device. For example, the capability discovery layer 3905 may perform a persistent capability query with the newly connected device. For example, if the application layer entity 3913 is previously registered with the capability discovery layer of the third electronic device, then the capability discovery layer 3905 may discover the application layer entity 3913 (e.g., receive information relating to the application layer entity 3913 ) through the persistent capability query with the third peer electronic device.
  • FIG. 40 illustrates a capability exchange procedure according to an embodiment of the present disclosure.
  • a first electronic device having a capability discovery layer 4001 may communicate with a second electronic device having a capability discovery layer 4003 , an application layer entity 4005 , and an application layer entity 3907 .
  • the application layer entity 4005 may communicate a service list request (e.g., CD-SRVC-LIST.REQ) with the capability discovery layer 4003 .
  • the service list request may include a transaction identifier, a number of accessory service profile filter, a list of ASP IDs, a number of peer electronic devices filters, a list of peer device identifiers, a query type, a requesting application layer entity identifier, a persistence duration, and/or the like.
  • the transaction identifier may be an identifier that identifies the service list request.
  • the transaction identifier may be used to correlate the service list request with a service list confirmation message.
  • the transaction identifier may be a value having 8 bits.
  • the transaction identifier may be determined according to a rolling counter that is incremented with each new service list request.
  • the number of ASP ID filters may specify the number of ASP IDs specified as filters.
  • the number of ASP ID filters may specify the number of ASP IDs to which the service list request relates.
  • the number of ASP ID filters may have a value that corresponds to a filter for all accessory service profiles.
  • a number of ASP ID filters having a value of zero may correspond to an indication that the service list request relates to all application layer entities on the applicable peer electronic devices irrespective of which accessory service profile that each application layer entity implements.
  • a number of ASP ID filters having a value of zero may correspond to an indication that the requesting application layer entity wants information (e.g., service capability information) on all application layer entities on the applicable peer electronic devices irrespective of which accessory service profile that each application layer entity implements.
  • information e.g., service capability information
  • the list of ASP IDs may correspond to an indication of the application layer entities for which the service list request is valid.
  • the list of ASP IDs may correspond to an indication of the application layer entities for which the requesting application layer entity wants information (e.g., service capability information).
  • the number of peer electronic devices filter may specify the number of peer electronic devices specified as filters.
  • the number of peer electronic devices filter may specify the number of peer electronic devices to which the service list request relates.
  • the number of peer electronic devices filter may have a value that corresponds to a filter for all peer electronic devices.
  • a number of peer electronic devices filter having a value of zero may correspond to an indication that the service list request relates to all peer electronic devices.
  • a number of peer electronic devices filter having a value of zero may correspond to an indication that the requesting application layer entity wants information (e.g., service capability information) on application layer entities across all peer electronic devices.
  • the list of peer device identifiers may correspond to an indication of the peer electronic devices for which the service list request is valid.
  • the list of peer device identifiers may correspond to an indication of the peer electronic device for which the requesting application layer entity wants information (e.g., service capability information).
  • the list of peer device identifiers may specify that the requesting application layer entity is interested in application layer entities (e.g., satisfying the applicable accessory service profile filters) on peer electronic devices corresponding to any peer device identifier included in the list of peer device identifiers.
  • the query type may indicate the type of query.
  • the query type may indicate whether the query corresponds to a normal query.
  • the query type may indicate whether the query corresponds to a persistent query.
  • the query type may indicate whether the application layer entity expects a normal query behavior or a persistent query behavior of the capability discovery layer in relation to the service list request.
  • the query type may be a 1 bit value (e.g., with 0 value corresponding to a normal query and a value of 1 corresponding to a persistent query type).
  • the requesting application layer entity identifier may identify the application layer entity that initiated the query (e.g., the application layer entity from which the service list request originated).
  • the persistence duration may correspond to a time duration for which the application layer entity (e.g., the application layer entity from which the service list request originated) wants the query to persist (e.g., to remain valid).
  • the application layer entity e.g., the application layer entity from which the service list request originated
  • the capability discovery layer 4003 may communicate a capability query (e.g., CapabilityQuery) to the capability discovery layer 4001 .
  • the capability query may include a filter for the query.
  • the capability query may correspond to a query for applicable peer electronic devices for a list of service capabilities.
  • the capability query may correspond to a query for applicable peer electronic devices for a list of registered application layer entities in accordance with normal query behavior or persistent query behavior.
  • the capability query may include a message type, a software version, a query type, a persistence duration, a number of accessory service profile filters, and an ASP ID filter.
  • the software version may correspond to a field that indicates the software version of the protocol implementation that relates to the communication between electronic devices to provide and/or consume services.
  • the software version may be a field having 2 bytes.
  • the software version may have a field indicating a major version of the software and a field indicating a minor version of the software.
  • the software version may be a field having 2 bytes in which the first byte indicates the major version and the second byte indicates the minor version.
  • the query type may indicate the type of query.
  • the query type may indicate whether the query corresponds to a normal query.
  • the query type may indicate whether the query corresponds to a persistent query.
  • the query type may indicate whether the query is expected to be processed according to normal query behavior or persistent query behavior.
  • the query type may be a 1 bit value (e.g., with 0 value corresponding to a normal query and a value of 1 corresponding to a persistent query type).
  • the number of accessory service profile filters may indicate the number of ASP IDs included as filters in the query.
  • the number of ASP ID filter may specify the number of ASP IDs to which the query relates.
  • the number of ASP ID filter may have a value that corresponds to a filter for all accessory service profiles.
  • a number of ASP ID filter having a value of zero may correspond to an indication that the query relates to all application layer entities on the applicable peer electronic devices irrespective of which accessory service profile that each application layer entity implements.
  • a number of ASP ID filter having a value of zero may correspond to an indication that the requesting application layer entity wants information (e.g., service capability information) on all application layer entities on the applicable peer electronic devices irrespective of which accessory service profile that each application layer entity implements.
  • information e.g., service capability information
  • the list of ASP IDs may correspond to an indication of the application layer entities for which the query is valid.
  • the list of ASP IDs may correspond to an indication of the application layer entities for which requesting application layer entity wants information (e.g., service capability information).
  • the persistence duration may correspond to a time duration for which the query is to persist (e.g., to remain valid).
  • the capability discovery layer 4001 may communicate a response to the capability query (e.g., CapabilityAnswer).
  • the response to the capability query may include filtered service capabilities (e.g., filtered according to the capability query).
  • the response to the capability query may include an indication of a message type, a software version, a number of application layer entity information, a list of application layer entity information, and/or the like.
  • the software version may correspond to a field that indicates the software version of the protocol implementation that relates to the communication between electronic devices to provide and/or consume services.
  • the software version may be a field having 2 bytes.
  • the software version may have a field indicating a major version of the software and a field indicating a minor version of the software.
  • the software version may be a field having 2 bytes in which the first byte indicates the major version and the second byte indicates the minor version.
  • a software version “3.4” may be encoded as 0x0304.
  • the number of application layer entity information may correspond to an indication of the number of application layer entities for which information is provided.
  • the list of application layer entity information may correspond to information about the application layer entities that match the accessory service profile filters included in the capability query.
  • the application layer entity information may include information relating to an application layer entity identifier, a friendly name of the application layer entity, a service agent identifier, an ASP ID, an accessory service profile version role, and/or the like for each application layer entity for which information is included in the response to the capability query.
  • the capability discovery layer 4003 may update the applicable peer electronic device application layer database with information relating to the response to the capability query.
  • the capability discovery layer 4003 may communicate to the application layer entity 4005 a response to the service list request (CD-SRVC-LIST.CNF).
  • the response to the service list request may notify the requesting application layer entity (e.g., the application layer entity 4005 ) of the list of application layer entities on the applicable peer electronic devices that satisfy the filters specified in the service list request.
  • the response to the service list request may include information that the capability discovery layer 4003 received in response to the capability query.
  • the response to the service list request may include a transaction identifier, a peer device identifier, a service agent identifier, an ASP ID, an accessory service profile version, an application layer entity identifier, an application layer entity name, a role, and/or the like.
  • the transaction identifier may be an identifier that identifies the service list request.
  • the transaction identifier may be the same as the transaction identifier associated with the corresponding service list request.
  • the transaction identifier may be a value having 8 bits.
  • the transaction identifier may be determined according to a rolling counter that is incremented with each new service list request.
  • the message exchange in 4009 through 4015 may correspond to a normal query.
  • the service list request communicated at 4009 may include a query type set to normal such that the query is treated according to the normal query behavior defined by the applicable capability exchange protocol.
  • the application layer entity 4007 may communicate a service list request (e.g., persistent CD-SRVC-LIST.REQ) with the capability discovery layer 4003 .
  • the service list request may be a persistent service list request.
  • the service list request may include a query type field that indicates that the request corresponds to a persistent type.
  • the capability discovery layer 4003 may communicate a capability query (e.g., PersistentCapabilityQuery) to the capability discovery layer 4001 .
  • the capability query may be a persistent capability query.
  • the capability query may include may include a query type field that indicates that the request corresponds to a persistent type.
  • the capability query may correspond to a query for applicable peer electronic devices for a list of service capabilities.
  • the capability discovery layer 4001 may communicate a response to the capability query (e.g., CapabilityAnswer).
  • the response to the capability query may include filtered service capabilities (e.g., filtered according to the capability query).
  • the response to the capability query may include an indication of a message type, a software version, a number of application layer entity information, a list of application layer entity information, and/or the like.
  • the capability discovery layer 4021 may update the applicable peer electronic device application layer database with information relating to the response to the capability query.
  • the capability discovery layer 4003 may communicate to the application layer entity 4005 a response to the service list request (CD-SRVC-LIST.CNF).
  • the response to the service list request may notify the requesting application layer entity (e.g., application layer entity 4007 ) of the list of application layer entities on the applicable peer electronic devices that satisfy the filters specified in the service list request.
  • the response to the service list request may include information that the capability discovery layer 4003 received in response to the capability query.
  • the response to the service list request may include a transaction identifier, a peer device identifier, a service agent identifier, an ASP ID, an accessory service profile version, an application layer entity identifier, an application layer entity name, a role, and/or the like.
  • an application layer entity on the first electronic device may communicate a service registration request (e.g., CD-SRVC-REGISTER.REQ) to the capability discovery layer 4001 .
  • a service registration request e.g., CD-SRVC-REGISTER.REQ
  • the capability discovery layer 4001 may update the applicable application layer entity registration database.
  • the capability discovery layer may determine the service capabilities of the newly registered application layer entity and/or service agent thereof matches a pending/valid persistent query.
  • the capability discovery layer 4001 may communicate an incremental capability update (e.g., IncrementalCapabilityPush) to the capability discovery layer 4003 .
  • the capability discovery layer 4001 may communicate the incremental capability according to a push communication scheme.
  • the capability discovery layer 4001 may communicate an incremental capability update if the first electronic device has a pending/valid persistent query from a second electronic device (e.g., if the capability discovery layer 4001 determines that a persistent duration has not expired on a previously received persistent capability query).
  • the incremental capability update may include changed service capabilities (e.g., a delta of service capabilities over a period of time such as since the last incremental update and/or the initial response to the initial capability query).
  • the incremental capability update may include an application layer entity update information.
  • the application layer entity update information may include information about an application layer entity that has newly registered, unregistered, or modified the registration thereof.
  • the application layer entity update information may include an application layer entity identifier, an update type, a friendly name of an application layer entity, a number of service agents, a list of service agent identifiers, a list of corresponding ASP IDs, accessory service profile version information, and role.
  • application layer entity update information may include a service agent identifier, and corresponding ASP IDs, accessory service profile version information, and role corresponding to the updated application layer entities.
  • the capability discovery layer 4003 may communicate a capability acknowledgement (e.g., CapabilityAck) to the capability discovery layer 4001 .
  • the capability acknowledgement may acknowledge receipt of the incremental capability update.
  • the application layer entity 4007 may communicate a service list request (e.g., persistent CD-SRVC-LIST.REQ) with the capability discovery layer 4003 .
  • the service list request may be a persistent service list request.
  • the service list request may include a query type field that indicates that the request corresponds to a persistent type.
  • the capability discovery layer 4003 may communicate to the application layer entity 4005 a response to the service list request (CD-SRVC-LIST.CNF).
  • the response to the service list request may notify the requesting application layer entity (e.g., the application layer entity 4007 ) of the list of application layer entities on the applicable peer electronic devices that satisfy the filters specified in the service list request.
  • the response to the service list request may include information that the capability discovery layer 4003 received in relation to the incremental capability update that the capability discovery layer 4003 received from the capability discovery layer 4001 .
  • FIG. 41 illustrates a capability exchange procedure according to an embodiment of the present disclosure.
  • a first electronic device having a capability discovery layer 4105 may communicate with a second electronic device having a capability discovery layer 4103 .
  • the first electronic device may also communicate with a third electronic device having a capability discovery layer 4101 .
  • an application layer entity on the first electronic device may communicate a service list request (e.g., persistent CD-SRVC-LIST.REQ) with the capability discovery layer 4105 .
  • the service list request may be a persistent service list request.
  • the service list request may include a query type field that indicates that the request corresponds to a persistent type.
  • the capability discovery layer 4105 may communicate a capability query (e.g., PersistentCapabilityQuery) to the capability discovery layer 4103 .
  • the capability query may be a persistent capability query.
  • the capability query may include may include a query type field that indicates that the request corresponds to a persistent type.
  • the capability query may correspond to a query for applicable peer electronic devices for a list of service capabilities (e.g., matching a filter of the service list request).
  • the capability discovery layer 4103 may communicate a response to the capability query (e.g., CapabilityAnswer).
  • the response to the capability query may include filtered service capabilities (e.g., filtered according to the capability query).
  • the response to the capability query may include an indication of a message type, a software version, a number of application layer entity information, a list of application layer entity information, and/or the like.
  • an application layer entity of the second electronic device may communicate a service registration request (e.g., CD-SRVC-REGISTER.REQ) to the capability discovery layer 4103 .
  • a service registration request e.g., CD-SRVC-REGISTER.REQ
  • the capability discovery layer 4103 may update the applicable application layer entity registration database.
  • the capability discovery layer 4103 may communicate an incremental capability update (e.g., IncrementalCapabilityPush) to the capability discovery layer 4105 .
  • the capability discovery layer 4103 may communicate the incremental capability according to a push communication scheme.
  • the capability discovery layer 4103 may communicate an incremental capability update if the first electronic device has a pending/valid persistent query from a second electronic device (e.g., if the capability discovery layer 4103 determines that a persistent duration has not expired on a previously received persistent capability query).
  • the incremental capability update may include changed service capabilities (e.g., a delta of service capabilities over a period of time such as since the last incremental update and/or the initial response to the initial capability query).
  • the incremental capability update may include an application layer entity update information.
  • the capability discovery layer 4105 may communicate a capability acknowledgement (e.g., CapabilityAck) to the capability discovery layer 4103 .
  • the capability acknowledgement may acknowledge receipt of the incremental capability update.
  • a third electronic device may connect to the first electronic device.
  • the third peer electronic device may be authenticated (e.g., the third electronic device may have to undergo an authentication procedure).
  • the third peer electronic device (e.g., the electronic device having the capability discovery layer 4101 ) may be connected to the first electronic device (e.g., the electronic device having the capability discovery layer 4105 ).
  • the capability discovery layer 4105 may authenticate the newly connected peer electronic device.
  • the capability discovery layer 4105 may communicate a capability query (e.g., PersistentCapabilityQuery) to the capability discovery layer 4101 .
  • the capability query may be a persistent capability query.
  • the capability query may include may include a query type field that indicates that the request corresponds to a persistent type.
  • the capability query may correspond to a query for applicable peer electronic devices for a list of service capabilities (e.g., matching a filter of the service list request).
  • the capability discovery layer 4105 may communicate a capability query corresponding to the persistent query associated with the service list received at 4107 .
  • the capability discovery layer 4101 may communicate a response to the capability query (e.g., CapabilityAnswer).
  • the response to the capability query may include filtered service capabilities (e.g., filtered according to the capability query).
  • the response to the capability query may include an indication of a message type, a software version, a number of application layer entity information, a list of application layer entity information, and/or the like.
  • the capability discovery layer 4105 may update the applicable peer electronic device application layer database with information relating to the response to the capability query.
  • an electronic device may discover at least one peer electronic device to which the electronic device may connect in order to provide a user with an accessory service.
  • the electronic device may discover at least one peer electronic device with which to establish a connection to enable the electronic device to provide and/or consume services.
  • an electronic device may want to determine whether any peer electronic devices exist with which the electronic device may connect in order to create a system of electronic devices that communicate using a common accessory protocol.
  • Common accessory protocols may include accessory protocols that are variations of a same accessory protocol.
  • the discovery of peer electronic devices with which to connect may be defined by a discovery protocol.
  • the discovery protocol may enable an electronic device that implements an accessory protocol to discover other electronic devices that implement an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the discovery protocol may enable an electronic device that implements an accessory protocol to authenticate other electronic devices that implement an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the discovery protocol may define service access points that may be used by a device management application installed on an electronic device to discover other electronic devices that implement an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the discovery protocol may enable an electronic device to discover other electronic devices across a variety of communication technologies.
  • the discovery protocol may enable the electronic device to discover other electronic devices according to Bluetooth, Bluetooth low energy, Bluetooth Basic Rate/Enhanced Data Rate, Internet Protocol, User Datagram Protocol, Transmission Control Protocol, Radio Frequency Communication, Wi-Fi, Near Field Communication (NFC), Global Positioning System (GPS), cellular communication (e.g., Long Term Evolution (LTE), LTE Advanced (LTE-A), Code Division Multiple Access (CDMA), Wideband-CDMA (WDCMA), Universal Mobile Telecommunications System (UMTS), Wireless Broadband (WiBro), Global System for Mobile Communications (GSM), and/or the like), Infrared Data Association (IrDA) technology, Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), Recommended Standard 232 (RS-232), Plain Old Telephone Service (POTS), Ethernet, Proprietary Connectivity technologies, Proprietary software communication frameworks and/or the like.
  • Bluetooth Bluetooth low energy
  • Internet Protocol
  • the discovery layer may enable the electronic device to discover other electronic devices according to various communication technologies using the various connection modules 821 through 855 .
  • the discovery protocol may enable an electronic device to discover a specific other electronic device across a variety of communication technologies.
  • the electronic device may discover the specific other electronic device across more than one communication technology concurrently, or sequentially.
  • the discovery protocol may enable an electronic device to discover more than one other electronic device, at least two of which are discovered using a communication technology relative to another.
  • the application layer may include a device management application 917 .
  • the device management application 917 may manage the operations relating to discovery, authentication, attachment of a device to an accessory communication protocol, and/or the like.
  • the discovery protocol may use a discovery management entity service access point 919 , an authentication management entity service access point 925 , and/or an attachment service access point 931 .
  • the discovery protocol may specify the protocol for communication between the device management application 917 and the discovery management entity 921 .
  • the device management application 917 may use the device management entity service access point 919 to communicate with the discovery management entity 921 .
  • the discovery management entity 921 may provide or otherwise communicate to the device management application 917 a list of potential electronic devices that implement an accessory protocol that is common to the accessory protocol implemented by the electronic device 901 .
  • the device management application 917 may communicate a request to the discovery management entity to connect to or disconnect from electronic devices that implement an accessory protocol that is common to the accessory protocol implemented by the electronic device 901 .
  • the discovery protocol may specify the protocol for communication between the discovery management entity 921 and a security service 923 .
  • the security service 923 may provide authentication functionality to enable the electronic device to authenticate peer electronic devices.
  • the discovery management entity 921 may use the authentication management entity service access point 925 to communicate with the security service 923 .
  • the discovery protocol may specify the protocol for communication between the discovery management entity 921 and a session layer 929 .
  • the discovery management entity 921 may use the attachment service access point 931 to communicate with the session layer 929 .
  • the discovery management entity 921 may use the attachment service access point 931 to communicate with application protocols and/or application entities.
  • the discovery management entity 921 may use the attachment service access point 931 to notify applicable accessory communication protocols that a peer electronic device that implements an accessory protocol that is common to the accessory protocol implemented by the electronic device 901 is discovered, authenticated, attached, detached and/or the like to the electronic device 901 .
  • the discovery management entity 921 may set roles for performing a discovery procedure for peer electronic devices that implement an accessory protocol that is common to the accessory protocol implemented by the electronic device 901 .
  • the discovery management entity 921 may define roles for performing device discovery procedures.
  • the discovery management entity 921 may initiate a discovery procedure.
  • the discovery management entity 921 may respond to incoming messages relating to the discovery procedure.
  • the discovery management entity 921 may provide appropriate indications (e.g., notifications and/or message exchanges) to the device management application 917 .
  • the discovery management entity 921 may request the authentication management entity service access point 925 to authenticate a peer electronic device that is connected to the electronic device 901 and that implements an accessory protocol that is common to the accessory protocol implemented by the electronic device 901 .
  • the discovery management entity 921 may process and/or handle responses (e.g., message exchange) received from the authentication management entity service access point 925 (e.g., in relation to an authentication of a connected device).
  • the discovery management entity 921 may provide the applicable accessory communication protocols with an indication of peer electronic devices that implement an accessory protocol that are common to the accessory protocol implemented by the electronic device 901 and that are authenticated (e.g., by the security service 923 ).
  • the security service 923 may provide various services to the discovery management entity 921 and/or an accessory protocol transport layer.
  • the security service 923 may manage the cryptographic certificate thereof.
  • the security service 923 may verify the cryptographic certificates of a peer electronic device that is connected to the electronic device 901 and that implements an accessory protocol that is common to the accessory protocol implemented by the electronic device 901 .
  • the security service 923 may perform random number generation.
  • the security service 923 may provide generation and verification of cryptographic signatures.
  • the security service 923 may provide encryption and/or decryption services.
  • the second electronic device 1003 and the first electronic device 1001 may find each other and exchange peer descriptions.
  • peer electronic devices that implement a common accessory protocol may respectively set a visibility setting to be visible to other electronic devices and/or scan for visible peer electronic devices.
  • the second electronic device 1003 is configured to be visible to the first electronic device 1001 at 1009 .
  • the first electronic device 1001 scans for a peer electronic device (e.g., that is visible thereto).
  • the first electronic device 1001 and the second electronic device 1003 may respectively authenticate each other.
  • the discovery management entity 1017 may communicate with the security service 1021 to authenticate the second electronic device 1003 .
  • the discovery management entity 1017 may communicate with the security service 1021 to exchange and verify the cryptographic credentials of the second electronic device 1003 .
  • the discovery management entity 1011 may communicate with the security service 1025 to authenticate the first electronic device 1001 .
  • the first electronic device 1001 and the second electronic device 1003 may respectively perform attachment procedures with respect to the electronic device connected thereto.
  • an electronic device may trigger an accessory protocol communication phase according to which an applicable network protocol, an applicable discovery protocol, and an applicable application protocol are used by application layer entities on the respective electronic device.
  • the electronic device may trigger an accessory protocol communication phase according to which an applicable network protocol, an applicable discovery protocol, and an applicable application protocol are used by application layer entities on the respective electronic device in order to allow the electronic device to communicate with the peer electronic device connected thereto.
  • an electronic device may perform an accessory description exchange with a peer electronic device in order for the electronic device and the peer electronic device to respectively advertise (e.g., notify) their respective abilities to communicate using an accessory protocol.
  • the electronic device e.g., a smart device
  • the peer electronic device e.g., an accessory
  • the electronic device may be aware of each other's description, connectivity specific addresses, and other metadata with which the applicable accessory communication protocols may establish a connection and exchange messages in order to provide accessory services.
  • an accessory device protocol may define generic procedures that are independent of the connectivity technology by which an electronic device and a peer electronic device are connected. Because the accessory device protocol may define generic procedures, development of application layer entities (e.g., application programs) may be extensible. Developers of application layer entities may benefit from reduced complexity for developing application layer entities that may be installed on an electronic device and that may communicate and provide and/or consumer services with an application layer entity installed on a peer electronic device. As a result of the reduced complexity and ease of programing compatible application programs, an eco-system of application programs for use on electronic devices that implement applicable accessory device protocol may flourish.
  • application layer entities e.g., application programs
  • Generic procedures that may defined by the accessory device protocol and that may be independent of connectivity technology may include sending and/or receiving scan messages, sending and/or receiving response messages, exchange of cryptographic credentials, verification of cryptographic credentials, exchanging communication protocol messages, and/or the like.
  • FIG. 42 illustrates a state diagram of a device management entity according to various embodiments of the present disclosure.
  • a device management entity may support three roles or states for performing device discovery (e.g., accessory device discovery).
  • the device management entity may support an inactive role, a responder role, and/or a scanner role.
  • the inactive role may be a role in which the device management entity may not transmit or listen for any messages on any of the connectivity interfaces of the electronic device.
  • the inactive role may be the default role for the electronic device (e.g., the device management entity thereof).
  • the responder role may be a role in which the device management entity turns on (e.g., activates) a specified connectivity interface (or all connectivity interfaces) and listens for incoming messages that may include peer electronic device descriptions from a peer electronic device (e.g., that may be in the scanner role) that may implement an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the device management entity may respond to incoming messages that may include peer electronic device descriptions from a peer electronic device.
  • the device management entity may provide a notification of a successful attachment of a peer electronic device that may implement an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the device management entity may activate a timer (e.g., having a value set by variable ACTIVE_TIMEOUT) upon the device management entity entering the responder role.
  • the device management entity may transition back to the inactive role if the timer expires.
  • the scanner role may be a role in which the device management entity turns on (e.g., activates) the specified connectivity interface (or all connectivity interfaces) and listens for incoming messages that may include peer electronic device descriptions from a peer electronic device (e.g., that may be in the scanner role) that may implement an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the device management entity may respond to incoming messages that may include peer electronic device descriptions from a peer electronic device.
  • the device management entity may transmit a message that may include peer electronic device descriptions of the electronic device.
  • the device management entity may trigger an authentication procedure (e.g., for authenticating peer electronic devices that are in the responder role).
  • the device management entity may provide a notification of a successful attachment of a peer electronic device that may implement an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the device management entity may activate a timer (e.g., having a value set by variable SCAN_TIMEOUT) upon the device management entity entering the scanner role. The device management entity may transition back to the responder role if the timer expires.
  • the device management entity in an inactive role 4201 may be a default role. For example, if an electronic device is initialized (e.g., turned on) when the electronic device is inactive, then the device management entity of the electronic device may start in the inactive role 4201 .
  • the device management entity may transition to a responder role 4205 .
  • the device management entity may transition to the responder role 4205 in response to the electronic device being turned on or otherwise activated.
  • the device management entity may start a timer. For example, upon the device management entity transitioning to the responder role 4205 , the device management entity may start or otherwise initialize a timer.
  • state transition arrow 4209 if the timer (e.g., ACTIVE_TIMEOUT) expires, then the device management entity may transition to the inactive role 4201 . For example, if the timer expires when the timer device management entity is in the responder role 4205 , then the device management entity may transition to the inactive role 4201 . Similarly, as illustrated by state transition arrow 4209 , if the electronic device (e.g., accessory) is turned off or otherwise deactivated, then the device management entity may transition to the inactive role 4201 (e.g., from the responder role 4205 ).
  • the timer e.g., ACTIVE_TIMEOUT
  • state transition arrow 4207 if the electronic device turns on or otherwise activates scanning (e.g., when the device management entity is in the responder role 4205 ), then the device management entity may transition from the responder role to a scanner role 4211 .
  • the device management entity may start a timer. For example, upon the device management entity transitioning to the scanner role 4211 , the device management entity may start or otherwise initialize a timer.
  • the device management entity may transition to the responder role 4205 .
  • the device management entity may transition from the scanner role 4211 to the responder role in response to the scanning role being turned off.
  • the device management entity may transition to the inactive role 4201 (e.g., from the scanner role 4211 ).
  • the device management entity may transition to a scanner role 4211 .
  • the device management entity may transition to the scanner role 4211 in response to the scanning being turned on or otherwise activated.
  • the device management entity may store information relating to peer electronic devices.
  • the device management entity may store information relating to peer electronic devices to keep track of peer electronic devices, for use in performing discovery procedures, and/or for use in performing authentication procedures.
  • the device management entity may store a peer electronic device list.
  • the peer electronic device list may include information about peer electronic devices.
  • the peer electronic device list may include a device identifier (e.g., that corresponds to each peer electronic device discovered by the device management entity), a device action (e.g., an indication whether the device management application has instructed the device management entity to connect with the corresponding peer electronic device), a device state (e.g., an indication whether the corresponding peer electronic device has been discovered, authenticated, connected, and/or the like), a device connection type (e.g., an indication of the connectivity technology associated with the corresponding peer electronic device), accessory description information, and or the like.
  • a device identifier e.g., that corresponds to each peer electronic device discovered by the device management entity
  • a device action e.g., an indication whether the device management application has instructed the device management entity to connect with the corresponding peer electronic device
  • a device state e.g., an indication whether the corresponding peer electronic device has been discovered, authenticated, connected, and/or the like
  • a device connection type e.g., an indication of the connectivity technology associated with
  • each peer electronic device included in the peer electronic device list may correspond to a single connectivity technology.
  • the peer electronic device may be included in the peer electronic device list multiple times, with each entry corresponding to a single instance of the peer electronic device and one of the connectivity technologies associated therewith.
  • the peer electronic device list may include accessory description information.
  • the accessory description information may include a product identifier of the peer electronic device, a manufacturer identifier of the peer electronic device, a friendly name of the peer electronic device, an accessory protocol version supported by the peer electronic device (e.g., a major version, a minor version, and/or the like), an accessory software version (e.g., a version of the accessory protocol implemented by the peer electronic device), an ASP ID of a provided service (e.g., identifying a primary service provided by the peer electronic device), an ASP ID of a consumed service (e.g., identifying a primary service consumed by the peer electronic device), a device connectivity-specific address, a device connectivity-specific metadata, and/or the like.
  • the device management application may communicate information for discovery procedures to the applicable device management entity in accordance with the discovery protocols.
  • the device management application may communicate a role, a connectivity preference (e.g., an indication of a preferred connectivity technology), a timeout preference (e.g., an indication of whether a timer value other than a default value is preferred for timers to determine a whether the device management entity experiences a timeout in a given role), an active timeout override (e.g., an indication for timers to determine whether the device management entity experiences a timeout in a given role) and/or the like.
  • a connectivity preference e.g., an indication of a preferred connectivity technology
  • a timeout preference e.g., an indication of whether a timer value other than a default value is preferred for timers to determine a whether the device management entity experiences a timeout in a given role
  • an active timeout override e.g., an indication for timers to determine whether the device management entity experiences a
  • the device management entity may store information relating to a device identifier of the peer electronic device, a device state of the peer electronic device (e.g., an indication whether the peer electronic device is authenticated, connected, and/or the like), a device connection type (e.g., identifying the connectivity technology with which the peer electronic device is connected), accessory description detail information, and/or the like.
  • a device identifier of the peer electronic device e.g., an indication whether the peer electronic device is authenticated, connected, and/or the like
  • a device connection type e.g., identifying the connectivity technology with which the peer electronic device is connected
  • FIG. 43 illustrates a state diagram for connectivity of an electronic device according to an embodiment of the present disclosure.
  • the connectivity technology may correspond to an IP connectivity.
  • the connectivity technology may correspond to a USB connectivity.
  • various states of the connectivity of an electronic device may be stored in a peer electronic device list.
  • the electronic device is in an uninitialized state in relation to a peer electronic device.
  • the electronic device may receive an accessory description from a peer electronic device.
  • the accessory description may include information from which the electronic device may determine whether the peer electronic device implements an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the electronic device may store information relating to the peer electronic device. For example, the electronic device may add the peer electronic device to the peer electronic device list.
  • the electronic device may transition to the accessory capability state 4305 .
  • the electronic device may have discovered a peer electronic device that implements an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the electronic device and the peer electronic device may perform authentication procedures. For example, the electronic device may authenticate the peer electronic device.
  • the electronic device may update the peer electronic device list. For example, the electronic device may update the peer electronic device list to reflect the results of the authentication procedure.
  • the electronic device may transition to the authenticated peer state 4309 .
  • the electronic device may transition to the authenticated peer state 4309 .
  • the electronic device and/or the peer electronic device may perform authentication procedures.
  • the electronic device may be authenticated in relation to the peer electronic device.
  • a peer electronic device list may be updated to reflect the results of the authentication of the electronic device in relation to the peer electronic device.
  • the electronic device may transition to an authentication complete state 4313 .
  • the electronic device and the peer electronic device may be authenticated in relation to one another.
  • the electronic device or connectivity state of the electronic device in relation to the peer electronic device
  • the electronic device and/or the peer electronic device may perform authentication procedures.
  • the electronic device may be authenticated in relation to the peer electronic device.
  • a peer electronic device list may be updated to reflect the results of the authentication of the electronic device in relation to the peer electronic device.
  • the electronic device may transition to the authenticated self state 4317 .
  • the electronic device may transition to the authenticated self state 4317 .
  • the electronic device and the peer electronic device may perform authentication procedures.
  • the electronic device may authenticate the peer electronic device.
  • the electronic device may update the peer electronic device list.
  • the electronic device may update the peer electronic device list to reflect the results of the authentication procedure.
  • the electronic device may transition to the authentication complete state 4313 .
  • the electronic device and the peer electronic device may be authenticated in relation to one another.
  • the electronic device or connectivity state of the electronic device in relation to the peer electronic device
  • FIG. 44 illustrates a state diagram for connectivity of an electronic device according to an embodiment of the present disclosure.
  • the connectivity technology may correspond to a Bluetooth connectivity.
  • the connectivity technology may correspond to a Bluetooth low energy connectivity.
  • various states of the connectivity of an electronic device may be stored in a peer electronic device list.
  • the electronic device is in an uninitialized state in relation to a peer electronic device.
  • the electronic device may add a peer pairing in relation to a peer electronic device.
  • the electronic device may store information relating to the peer electronic device. For example, the electronic device may add the peer electronic device to the peer electronic device list.
  • the electronic device may transition to the paired state 4405 .
  • the electronic device may perform a scanning for a peer electronic device to which to pair. For example, the electronic device may perform a Bluetooth scan for a peer electronic device. If the electronic device finds a peer electronic device with which to pair, then the electronic device may store information relating to the peer electronic device. As an example, in response to the electronic device finding the peer electronic device with which to pair (e.g., using a scanning process), the electronic device may store information relating to the peer electronic device. For example, the electronic device may add the peer electronic device to the peer electronic device list.
  • the electronic device may transition to an unpaired state 4409 .
  • the unpaired state 4409 may correspond to the electronic device being unpaired in relation to the peer electronic device.
  • the electronic device and the peer electronic device may perform a pairing procedure.
  • the electronic device and the peer electronic device may perform a Bluetooth pairing.
  • the electronic device may update the peer electronic device list.
  • the electronic device may update the peer electronic device list to reflect the results of the pairing procedure.
  • the electronic device and the peer electronic device are determined to be paired (e.g., in response to the Bluetooth pairing procedures), then the electronic device may transition to the paired state 4405 .
  • the electronic device may receive an accessory description from a peer electronic device.
  • the accessory description may include information from which the electronic device may determine whether the peer electronic device implements an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the electronic device may store information relating to the peer electronic device. For example, the electronic device may add the peer electronic device to the peer electronic device list.
  • the electronic device may transition to the accessory capability state 4415 .
  • the electronic device may have paired with a peer electronic device that implements an accessory protocol that is common to the accessory protocol implemented by the electronic device.
  • the electronic device and the peer electronic device may perform authentication procedures. For example, the electronic device may authenticate the peer electronic device.
  • the electronic device may update the peer electronic device list. For example, the electronic device may update the peer electronic device list to reflect the results of the authentication procedure.
  • the electronic device may transition to the authenticated peer state 4419 .
  • the electronic device may transition to the authenticated peer state 4419 .
  • the electronic device and/or the peer electronic device may perform authentication procedures.
  • the electronic device may be authenticated in relation to the peer electronic device.
  • a peer electronic device list may be updated to reflect the results of the authentication of the electronic device in relation to the peer electronic device.
  • the electronic device may transition to an authentication complete state 4423 .
  • the electronic device and the peer electronic device may be authenticated in relation to one another.
  • the electronic device or connectivity state of the electronic device in relation to the peer electronic device
  • the electronic device and/or the peer electronic device may perform authentication procedures.
  • the electronic device may be authenticated in relation to the peer electronic device.
  • a peer electronic device list may be updated to reflect the results of the authentication of the electronic device in relation to the peer electronic device.
  • the electronic device may transition to the authenticated self state 4427 .
  • the electronic device may transition to the authenticated self state 4427 .
  • the electronic device and the peer electronic device may perform authentication procedures. For example, the electronic device may authenticate the peer electronic device.
  • the electronic device may update the peer electronic device list. For example, the electronic device may update the peer electronic device list to reflect the results of the authentication procedure.
  • the electronic device may transition to the authentication complete state 4423 .
  • the electronic device and the peer electronic device may be authenticated in relation to one another.
  • the electronic device or connectivity state of the electronic device in relation to the peer electronic device
  • the network protocol provides uniform data services on top of diverse connectivity technologies.
  • the application protocols make use of the services of the network protocol.
  • the network protocol may include the session layer, the transport layer, and the connection layer, which have been introduced above.
  • the session layer includes a Session layer Device Management (SDM) entity, a Service Agent Management (SAM) entity, a Service Connection Management (SCM) entity, and a Session layer Data Communication (SDC) entity.
  • the transport layer includes a Transport layer Device Management (TDM) entity, a Transport layer Session Configuration (TSC) entity, and a Transport layer Data Communication (TDC) entity.
  • TDM provides services to the session layer to configure and remove accessory protocol capable peer electronic devices via the TDM-SAP.
  • the TSC entity provides services to the session layer to configure and remove the QoS and priority attributes of a session via the TSC-SAP.
  • the TDC entity provides data communication services to the session layer via the TDC-SAP.
  • the application layer uses the services provided by Session layer.
  • ALEs of the application layer rely on the session layer to setup Service Connections over which Application Protocol data exchange can occur.
  • the application layer includes five primary responsibilities.
  • the application layer is responsible to define the application protocol between peer ALEs.
  • the application layer is responsible to request the session layer to create a Service Connection to enable application protocol data exchange between peer ALEs.
  • a Service Connection may include a multiplicity of channels to logically separate APDU sequences employing different QoS treatments.
  • the application layer is responsible to request the session layer to terminate Service Connections.
  • the application layer is responsible to process APDUs communicated on a channel, as per the application protocol.
  • Fifth, the application layer is responsible for forming APDUs as per the application protocol while adhering to the SDU size restriction of the channel over which those APDUs are to be sent.
  • the application layer expects the session layer to provide a registration/unregistration service. This allows credentials of registered ALEs to be reachable by peer ALEs.
  • the application layer expects the session layer to provide service Connection Creation and Termination.
  • the application layer expects the session layer to provide a datagram service.
  • the session layer enables ALEs to interact with peer ALEs by providing an abstraction referred to as a Service Connection. That is, the session layer allows ALEs to register themselves by providing service capability details such as ASP IDs so that they can be reachable by peer ALEs wishing to establish a Service Connection to them.
  • the Service Connection is a conduit set up between peer ALEs that binds a set of data channels over which they can exchange APDUs. Each channel can be specified with its own desired QoS treatment. However the session layer itself is agnostic of the Application Protocol interactions and data exchanges between the peer ALEs.
  • the specification of a Service Connection includes Channel Numbers that the initiating ALE populates as per the Accessory Application Protocol that the peer ALEs intend to use to interact with each other.
  • Sessions set up between peer session layer entities and the Channel Numbers of a Service Connection map one-to-one with a Session ID.
  • There is a Default Session which uses a reserved Session ID on which exchange session layer control messages are exchanged.
  • the session layer also enables the transmission and reception of session layer Service Data Units (SSDUs).
  • SSDUs Ses
  • the session layer includes eight primary responsibilities. First, the session layer receives notifications from the Discovery Management Entity about connected and authenticated peer electronic devices. Second, the session layer configures the transport layer to communicate with an authenticated peer electronic device. Third, the session layer creates and terminates Service Connections as requested from the application layer. Here, the application layer request for Service Connection specifies the channels desired and their respective QoS. Fourth, the session layer configures the transport layer corresponding to the QoS desired for the Channels of a Service Connection. Fifth, the session layer provides a datagram service to the application layer. Sixth, the session layer relays application layer data to the transport layer. Seventh, the session layer routes the data received from the transport layer and passes it to appropriate ALEs.
  • the session layer acts upon connection or session events notified by the transport layer.
  • the transport layer provides a data service that enables the transmission and reception of transport layer service data units (TSDUs).
  • TSDUs transport layer service data units
  • the transport layer management service enables QoS parameters and settings to be applied by the session layer at the granularity of individual sessions. To be precise, all the TSDUs carried in a given session receive the same QoS treatment.
  • the transport layer includes eight primary responsibilities.
  • the transport layer configures the Connection layer to communicate with an authenticated peer electronic device.
  • the transport layer provides appropriate QoS on each session; traffic in both directions (outgoing and incoming) is treated in the same way for a given session.
  • the transport layer performs acknowledgement and retry procedures.
  • the transport layer performs fragmentation and reassembly procedures to provide an Unrestricted SDU service by abstracting the SDU size limitations of the underlying connectivity technology.
  • the transport layer provides a datagram service to the Session layer.
  • the transport layer acts upon connection events notified by the connection layer.
  • the transport layer provides appropriate priority to PDUs from different sessions, as per a Priority Queuing process.
  • the transport layer brakes the tie should using an implementation-specific technique which is dictated by the platform capability and policies of that device.
  • connection layer provides a data service that receives data from the transport layer and transmits it over the appropriate connectivity medium.
  • the connection layer also receives data from a connectivity medium and relays it to the transport layer.
  • the connection layer management entity may provide a service such as radio link failure notification, device disassociation notification etc.
  • the connection layer includes four primary responsibilities. First, the connection layer provides common connection layer SAPs to the transport layer. Second, the connection layer supports the transmission of transport layer frames over connectivity technologies including, but not limited to, TCP, Wi-Fi, Bluetooth, Bluetooth low energy, USB and UART. Third, the connection layer provides a datagram service to the transport layer. Fourth, the connection layer provides connectivity technology specific event notifications to the transport layer. Fifth, the connection layer also provides Data Integrity and CRC protection to the Datagram.
  • the session layer protocol is used to carry out various functions.
  • the functions of the session layer protocol include peer electronic device addition, peer electronic device deletion, service connection creation, service connection termination, the exchange of APDUs, and default session and session identifier generation. Examples of these functions are described below.
  • Peer electronic device addition is performed by the AME triggering, upon discovery and authentication of a peer electronic device, the session layer which in turn configures the connection layer and the transport layer for the new peer electronic device.
  • An example of peer electronic device addition is described below with reference to FIG. 45 .
  • FIG. 45 illustrates a message sequence chart illustrating electronic device addition according to an embodiment of the present disclosure.
  • the first electronic device 4501 includes an AME 4503 , a session layer 4505 , a transport layer 4507 , and a connection layer 4509 .
  • the second electronic device 4511 includes an AME 4519 , a session layer 4517 , a transport layer 4515 , and a connection layer 4513 .
  • AME 4503 of first electronic device 4501 and the AME 4513 of second electronic device 4511 perform discovery and authentication.
  • AME 4503 generates and communicates a SLME-PeerDeviceConnect.request message to the SLME of the session layer 4505 upon authenticating a peer electronic device with which it wishes to connect for protocol communications.
  • the SLME-PeerDeviceConnect.request message is used by the AME 4503 to request the SLME of the session layer 4505 to add an authenticated accessory protocol capable device to its list of peer electronic devices.
  • the structure of the SLME-PeerDeviceConnect.request message is as follows:
  • Transaction ID of Table 1 The transaction ID is used for correlating the SLME-PeerDeviceConnect.confirm message with the SLME-PeerDeviceConnect.request message.
  • the transaction ID is generated by the AME. It is an 8 bit rolling counter that is incremented monotonically by one for each new SLME-Peer DeviceConnect.request message.
  • the device ID is used to identify an accessory protocol capable peer electronic device.
  • the device ID is 32 bits long.
  • the device ID is populated by the AME 4503 by picking an entry from a peer electronic device list with which it wants to establish a connection for accessory protocol communications.
  • the device connection type is used to identify the connectivity technology being used to connect the peer electronic device.
  • the device connection type is defined as per Table 2.
  • the device connection QoS is used to identify the QoS provided by the connectivity technology being used to connect the peer electronic device.
  • the device connection QoS is defined as per Table 3.
  • the device connection MaxSDUSize is used to identify the maximum size of the SDU that is accepted by the connectivity technology being used to connect the peer electronic device.
  • the device connection MaxSDUSize is defined as per Table 4.
  • the accessory description details may include identification information pertaining to an accessory protocol capable peer electronic device.
  • the accessory description details include multiple fields as defined in Table 5.
  • Product ID of Device of Table 5 The product ID is used to identify the physical product which represents the accessory protocol capable peer electronic device.
  • the product ID is a string 8 characters long.
  • Manufacturer ID of Device of Table 5 The manufacturer ID is used to identify the manufacturer of an accessory protocol capable peer electronic device.
  • the manufacturer ID is a string 8 characters long.
  • the device friendly name is used to identify the accessory protocol capable peer electronic device using a human-readable name.
  • the device friendly name is a string 8 characters long.
  • the accessory protocol version is used to indicate the protocol version that defines the accessory protocol supported by the peer electronic device.
  • the accessory protocol version is 2 bytes long. The first byte is used to indicate the major version, and the second for the minor version.
  • the accessory software version is used to indicate the software version of the accessory protocol implementation.
  • the accessory software version is 2 bytes long. The first byte is used to indicate the major version, and the second for the minor version. For example, the version “3.4” is encoded as 0x0304.
  • Accessory Service Profile ID of Provided Service of Table 5 The accessory service profile ID which identifies the primary service provided by the peer electronic device. This value should be as defined in the corresponding ASP specification.
  • Accessory Service Profile ID of Consumed Service of Table 5 The accessory service profile ID identifies the primary service of interest to be consumed by the peer electronic device. This value should be as defined in the corresponding ASP specification.
  • the device connectivity-specific address is dependent on the device connection type.
  • the structure of the device connectivity-specific address is defined in Table 6.
  • Device Connectivity-specific Meta-data of Table 5 The device connectivity-specific meta-data is dependent on the device connection type.
  • the SLME of the session layer 4505 adds the information pertaining to the peer electronic device to a connected peer electronic device list maintained by the SLME of the session layer 4505 .
  • the SLME of the session layer 4505 in response to an SLME-PeerDeviceConnect.request message in operation 4523 , the SLME of the session layer 4505 generates and communicates a TLME-ConfigurePeerDeviceInterface.request message to the TLME of the transport layer 4507 to configure the transport layer 4507 for communication with the specified peer electronic device.
  • the TLME-ConfigurePeerDeviceInterface.request is used by the SLME of the session layer 4505 to request the TLME of the transport layer 4507 to match the device ID to the connectivity parameters in order to send packets to the corresponding peer electronic device.
  • the structure of the TLME-ConfigurePeerDeviceInterface.request message is as follows:
  • Transaction ID of Table 6 The transaction ID is used for correlating the TLME-ConfigurePeerDeviceInterface.confirm message with the TLME-ConfigurePeerDeviceInterface.request.
  • the transaction ID is generated by the SLME of the session layer 4505 . It is an 8 bit rolling counter that is incremented monotonically by one for each new TLME-ConfigurePeerDeviceInterface.request.
  • the device ID is used to identify an accessory protocol capable peer electronic device.
  • the device ID is 32 bits long.
  • the device ID is populated by the AME 4503 by picking an entry from a peer electronic device list with which it wants to establish a connection for accessory protocol communications.
  • the device connection type is used to identify the connectivity technology being used to connect the peer electronic device.
  • the device connection type is defined as per Table 2.
  • the device connection QoS is used to identify the QoS provided by the connectivity technology being used to connect the peer electronic device.
  • the device connection QoS is defined as per Table 3.
  • the device connection MaxSDUSize is used to identify the maximum size of the SDU that is accepted by the connectivity technology being used to connect the peer electronic device.
  • the device connection MaxSDUSize is defined as per Table 4.
  • the accessory description details may include identification information pertaining to an accessory protocol capable peer electronic device.
  • the accessory description details include multiple fields as defined in Table 5.
  • the TLME of the transport layer 4507 Upon receiving the TLME-ConfigurePeerDeviceInterface.request message from the SLME of the session layer 4505 , the TLME of the transport layer 4507 adds the information pertaining to the new peer electronic device to the connected peer electronic device list maintained by the TLME of the transport layer 4507 .
  • the TLME of the transport layer 4507 generates and communicates a CLME-ConfigurePeerDeviceInterface.request message to the CLME of the connection layer 4509 .
  • the CLME-ConfigurePeerDeviceInterface.request message is used by the TLME of the transport layer 4507 to request the CLME of the connection layer 4509 to configure the device ID to the connectivity parameters in order to send packets to the corresponding peer electronic device.
  • the structure of the CLME-ConfigurePeerDeviceInterface.request message is as follows:
  • Transaction ID of Table 7 The transaction ID is used for correlating the CLME-ConfigurePeerDeviceInterface.confirm message with the CLME-ConfigurePeerDeviceInterface.request.
  • the transaction ID is generated by the TLME of the transport layer 4507 . It is an 8 bit rolling counter that is incremented monotonically by one for each new CLME-ConfigurePeerDeviceInterface.request.
  • the device ID is used to identify an accessory protocol capable peer electronic device.
  • the device ID is 32 bits long.
  • the device ID is populated by the AME 4503 by picking an entry from a peer electronic device list with which it wants to establish a connection for accessory protocol communications.
  • the device connection type is used to identify the connectivity technology being used to connect the peer electronic device.
  • the device connection type is defined as per Table 2.
  • the device connection QoS is used to identify the QoS provided by the connectivity technology being used to connect the peer electronic device.
  • the device connection QoS is defined as per Table 3.
  • the device connection MaxSDUSize is used to identify the maximum size of the SDU that is accepted by the connectivity technology being used to connect the peer electronic device.
  • the device connection MaxSDUSize is defined as per Table 4.
  • the accessory description details may include identification information pertaining to an accessory protocol capable peer electronic device.
  • the accessory description details include multiple fields as defined in Table 5.
  • the CLME of the connection layer 4509 Upon receiving the CLME-ConfigurePeerDeviceInterface.request message from the TLME of the of the transport layer 4507 , the CLME of the connection layer 4509 adds the information pertaining to the new peer electronic device to the connected peer electronic device list maintained by the CLME of the connection layer 4509 , and sets the MaxCSDUSize to the device connection MaxSDUSize and executes connectivity specific procedures, such as, for example, TCP (single socket), TCP (multi-socket), USB (Device Mode using AOAP), USB Device Mode, USB Host Mode, Bluetooth RFCOMM, BLE, UART, etc.
  • TCP single socket
  • TCP multi-socket
  • USB Device Mode using AOAP
  • USB Device Mode USB Host Mode
  • Bluetooth RFCOMM Bluetooth RFCOMM
  • BLE Bluetooth RFCOMM
  • UART UART
  • the connection layer 4509 upon receiving a CLME-ConfigurePeerDeviceInterface.request message, creates an entry in a TCP connection list it maintains.
  • the TCP connection list may include one entry for each peer electronic device connected via TCP.
  • Each entry in the TCP connection list has the following parameters: Device Identifier, IP Address, Default Port Number, and Socket ID.
  • the socket ID is used for sending and receiving all CSDUs associated with the matching Device Identifier.
  • the entry in the TCP connection list is created by processing the connection parameters passed in the CLME-ConfigurePeerDeviceInterface.request message.
  • the connection layer 4509 processes the connection parameters to obtain a smart device default port as well as a peer electronic device connection preference.
  • connection layer 4509 establishes a TCP connection to the peer electronic device by connecting to the peer electronic device IP address and peer electronic device default port number. If the connection was successfully established, the connection layer 4509 enters the Socket ID of the connection in the TCP connection list, in the row that includes the matching Device Identifier, IP Address and Default Port Number. The connection layer 4509 then generates a CLME-ConfigurePeerDeviceInterface.confirm message with a status of SUCCESS. If the connection could not be established, the CL deletes the row including the matching Device Identifier, IP Address and Default Port Number, and generates a CLME-ConfigurePeerDeviceInterface.confirm message with a status of FAILURE.
  • connection layer 4509 starts a TCP server, if not already running, and starts listening on the smart device default port for incoming TCP connection requests.
  • the connection layer 4509 accepts incoming TCP connections from peer electronic devices that have matching IP address entered in TCP connection list.
  • the connection layer 4509 maintains a timer for each Device Identifier in the client mode. If a timer expires prior to an incoming connection request from the matching Peer Device IP address, then the connection layer 4509 generates a CLME-ConfigureAccessoryInterface.confirm message with a status of TIMEOUT.
  • the connection layer 4509 For the TCP (multi-socket) connectivity procedure, the connection layer 4509 performs the TCP (single socket) connectivity procedure described above and additionally updates an application session list.
  • the application session list includes entries having the following parameters: Device Identifier, Session ID, Socket ID of the TCP connection being used for the Session ID, and Peer port number to which the Socket ID is bound.
  • the application session list is updated at the time of Session Creation and Session Termination.
  • the CLME of the connection layer 4509 upon receiving a CLME-ConfigurePeerDeviceInterface.request message, populates an entry into a table that maps the Device Identifier to the matching USB Peer Device Input Stream ID and USB Peer Device Output Stream ID.
  • the CLME of the connection layer 4509 upon receiving a CLME-ConfigurePeerDeviceInterface.request message, creates an entry in a RFCOMM connection list it maintains.
  • the RFCOMM connection list may include one entry for each peer electronic device connected via RFCOMM.
  • Each entry in the RFCOMM connection list has the following parameters: Device Identifier, MAC Address, Default RFCOMM Service Record, and Socket ID.
  • the socket ID is used for sending and receiving all CSDUs associated with the matching Device Identifier.
  • the entry in the RFCOMM connection list is created by processing the connection parameters passed in the CLME-ConfigurePeerDeviceInterface.request message.
  • the connection layer 4509 processes the connection parameters to obtain a local device default RFCOMM service record as well as a peer electronic device connection preference.
  • the CLME of the connection layer 4509 establishes an RFCOMM connection to the peer electronic device by connecting to the peer Device MAC Address and Peer Device Default RFCOMM Service Record. If the connection was successfully established, the CLME of the connection layer 4509 enters the RFCOMM Socket ID of the connection in the RFCOMM Connection List, in the row that includes the matching Device Identifier, MAC Address and Default RFCOMM Service Record. The CLME of the connection layer 4509 then generates a CLME-ConfigurePeerDeviceInterface.confirm message with a status of SUCCESS.
  • the CLME of the connection layer 4509 deletes the row including the matching Device Identifier, MAC Address and Default RFCOMM Service Record, and generates a CLME-ConfigurePeerDeviceInterface.confirm message with a status of FAILURE.
  • the CLME of the connection layer 4509 creates a listening RFCOMM socket, if not already running, and starts listening on the Local Device Default RFCOMM Channel for incoming RFCOMM connection requests.
  • the CL accepts incoming RFCOMM connections from peers that have matching MAC addresses entered in the RFCOMM connection list.
  • the CLME of the connection layer 4509 maintains a timer for each Device Identifier in the Client mode. If the timer expires prior to an incoming connection request from the matching Peer Device MAC address, then the CLME of the connection layer 4509 generates a CLME-ConfigureAccessoryInterface.confirm message with a status of TIMEOUT.
  • the CLME of the connection layer 4509 upon receiving a CLME-ConfigurePeerDeviceInterface.request message, maintains a map between Device Identifier and the BLE Handles on the BLE Server on the peer electronic device, corresponding to the Client CPDU Characteristic and the Server CPDU Characteristic.
  • connection layer 4509 communicates the CLME-ConfigurePeerDeviceInterface.confirm message to the transport layer 4507 .
  • the CLME-ConfigurePeerDeviceInterface.confirm message is used by the CLME of the connection layer 4509 to notify the TLME of the transport layer 4507 whether or not the connection layer 4509 and underlying lower layer were able to add the connected peer electronic device to their list of peer electronic devices.
  • the structure of the CLME-ConfigurePeerDeviceInterface.confirm message is as follows:
  • Transaction ID of Table 8 The transaction ID is populated by echoing the transaction ID in the original CLME-ConfigurePeerDeviceInterface.request message.
  • the status parameter is used to indicate whether or not the CLME-ConfigurePeerDeviceInterface.confirm resulted in the successful addition of the connected and authenticated peer electronic device to the list of peer electronic devices maintained by the CLME of the connection layer 4509 .
  • the valid values and their meaning are as per Table 9.
  • the TLME of the transport layer 4507 generates and communicates a TLME-ConfigurePeerDeviceInterface.confirm message to the SLME of the session layer 4505 that is based on the based on the received CLME-ConfigurePeerDeviceInterface.confirm message.
  • the TLME-ConfigurePeerDeviceInterface.confirm message is used by the TLME of the transport layer 4507 to notify the SLME of the session layer 4505 whether or not the transport layer 4507 and underlying lower layers were able to add the connected peer electronic device to their connected peer electronic device list.
  • the structure of the TLME-ConfigurePeerDeviceInterface.confirm message is as follows:
  • Transaction ID of Table 10 The transaction ID is populated by echoing the transaction ID in the original TLME-ConfigurePeerDeviceInterface.request message.
  • the status parameter is used to indicate whether or not the TLME-ConfigurePeerDeviceInterface.confirm resulted in the successful addition of the connected and authenticated peer electronic device to the list of peer electronic devices maintained by the TLME of the transport layer 4507 .
  • the valid values and their meaning are as per Table 9.
US14/281,206 2013-05-21 2014-05-19 Electronic device using logical channels for communication Abandoned US20140351446A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US14/281,206 US20140351446A1 (en) 2013-05-21 2014-05-19 Electronic device using logical channels for communication
PCT/KR2014/004546 WO2014189290A2 (en) 2013-05-21 2014-05-21 Electronic device using logical channels for communication
AU2014269271A AU2014269271B2 (en) 2013-05-21 2014-05-21 Electronic device using logical channels for communication
EP14801094.5A EP3000217B1 (en) 2013-05-21 2014-05-21 Electronic device using logical channels for communication
CN201480041345.XA CN105519071A (zh) 2013-05-21 2014-05-21 使用逻辑信道进行通信的电子装置
KR1020157036165A KR20160045635A (ko) 2013-05-21 2014-05-21 통신용 논리 채널을 이용한 전자 장치
US16/230,918 US10693969B2 (en) 2013-05-21 2018-12-21 Electronic device using logical channels for communication

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361825702P 2013-05-21 2013-05-21
US201361870428P 2013-08-27 2013-08-27
US14/281,206 US20140351446A1 (en) 2013-05-21 2014-05-19 Electronic device using logical channels for communication

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/230,918 Continuation US10693969B2 (en) 2013-05-21 2018-12-21 Electronic device using logical channels for communication

Publications (1)

Publication Number Publication Date
US20140351446A1 true US20140351446A1 (en) 2014-11-27

Family

ID=51936165

Family Applications (3)

Application Number Title Priority Date Filing Date
US14/281,355 Abandoned US20140351832A1 (en) 2013-05-21 2014-05-19 Electronic device using framework interface for communication
US14/281,206 Abandoned US20140351446A1 (en) 2013-05-21 2014-05-19 Electronic device using logical channels for communication
US16/230,918 Active US10693969B2 (en) 2013-05-21 2018-12-21 Electronic device using logical channels for communication

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/281,355 Abandoned US20140351832A1 (en) 2013-05-21 2014-05-19 Electronic device using framework interface for communication

Family Applications After (1)

Application Number Title Priority Date Filing Date
US16/230,918 Active US10693969B2 (en) 2013-05-21 2018-12-21 Electronic device using logical channels for communication

Country Status (6)

Country Link
US (3) US20140351832A1 (zh)
EP (1) EP3000217B1 (zh)
KR (1) KR20160045635A (zh)
CN (1) CN105519071A (zh)
AU (1) AU2014269271B2 (zh)
WO (1) WO2014189290A2 (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110082940A1 (en) * 2009-10-02 2011-04-07 Michael Peter Montemurro Methods and apparatus to establish peer-to-peer communications
CN104572564A (zh) * 2015-01-13 2015-04-29 上海动联信息技术股份有限公司 一种实现android移动设备与USB OTG主机通讯的方法
WO2016087703A1 (en) * 2014-12-03 2016-06-09 Nokia Technologies Oy Method and apparatus for routing data to cellular network
WO2016097822A1 (en) * 2014-12-17 2016-06-23 Nokia Technologies Oy Method and apparatus for local data monitoring and actuator control in an internet of things network
WO2016148550A1 (ko) * 2015-03-19 2016-09-22 엘지전자 주식회사 무선 통신 시스템에서 어플리케이션 서비스 플랫폼 세션 형성을 수행하는 방법 및 장치
CN106230828A (zh) * 2016-08-02 2016-12-14 四川秘无痕信息安全技术有限责任公司 一种基于wifi连接方式的数据传输方法
WO2018129515A1 (en) * 2017-01-09 2018-07-12 Alibaba Group Holding Limited Method, system and device for connecting devices
US20180253332A1 (en) * 2015-10-02 2018-09-06 Nokia Solutions And Networks Oy Managing the graceful termination of a virtualized network function instance
CN108781224A (zh) * 2016-02-19 2018-11-09 英特尔公司 物联网设备坯件
US20190007811A1 (en) * 2015-08-18 2019-01-03 Industry-Universty Cooperation Foundation Hanyang University Reconfigurable mobile device using unified radio application interface, and operation method thereof
CN109219027A (zh) * 2017-07-07 2019-01-15 安移通网络公司 蓝牙低能耗设备
US20190036651A1 (en) * 2016-03-03 2019-01-31 Panasonic Intellectual Property Management Co. Ltd. Communication method and communication apparatus for block acknowledgment transmission
US20190149576A1 (en) * 2017-11-16 2019-05-16 Samsung Electronics Co., Ltd. Method and system for authenticating application program interface (api) invokers
US20210367706A1 (en) * 2018-05-21 2021-11-25 Hewlett-Packard Development Company, L.P. Device communication interpretation based on process state
US20220368852A1 (en) * 2015-03-02 2022-11-17 Lg Electronics Inc. Apparatus and method for transceiving broadcast signal
US11595804B1 (en) * 2020-05-27 2023-02-28 Amazon Technologies, Inc. Establishing data channels between user devices and remote systems
US11671904B1 (en) * 2020-05-27 2023-06-06 Amazon Technologies, Inc. Establishing communication links to assist headless devices
US11816344B2 (en) 2020-12-16 2023-11-14 Kioxia Corporation Memory system in which information on a time in which integrity of a stored data piece is confirmed last

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110179303A1 (en) * 2010-01-15 2011-07-21 Microsoft Corporation Persistent application activation and timer notifications
US9599981B2 (en) 2010-02-04 2017-03-21 Echostar Uk Holdings Limited Electronic appliance status notification via a home entertainment system
CN104303388B (zh) * 2013-03-29 2018-01-05 松下知识产权经营株式会社 蓄电池组、电气设备、通信控制方法
US9450708B2 (en) * 2013-04-05 2016-09-20 Texas Instruments Incorporated System and method for avoiding hidden node collisions in a communication network
FR3011412A1 (fr) * 2013-09-27 2015-04-03 Orange Procede et dispositif de communication entre au moins un premier terminal et un deuxieme terminal
KR102169952B1 (ko) * 2013-10-18 2020-10-26 엘지전자 주식회사 웨어러블 디바이스 및 그 제어 방법
US9900177B2 (en) 2013-12-11 2018-02-20 Echostar Technologies International Corporation Maintaining up-to-date home automation models
US9495860B2 (en) 2013-12-11 2016-11-15 Echostar Technologies L.L.C. False alarm identification
US20150163411A1 (en) 2013-12-11 2015-06-11 Echostar Technologies, Llc Home Monitoring and Control
US9258695B2 (en) 2013-12-16 2016-02-09 Nokia Technologies Oy Method, apparatus, and computer program product for service discovery in short-range communication environment
US9769522B2 (en) 2013-12-16 2017-09-19 Echostar Technologies L.L.C. Methods and systems for location specific operations
US9380119B2 (en) 2013-12-16 2016-06-28 Nokia Technologies Oy Method, apparatus, and computer program product for network discovery
US9398437B2 (en) * 2013-12-16 2016-07-19 Nokia Technologies Oy Method, apparatus, and computer program product for service discovery in wireless short-range communication
US9665861B2 (en) * 2014-01-10 2017-05-30 Elo Touch Solutions, Inc. Multi-mode point-of-sale device
US9723393B2 (en) 2014-03-28 2017-08-01 Echostar Technologies L.L.C. Methods to conserve remote batteries
US9569105B2 (en) * 2014-06-18 2017-02-14 Mediatek Inc. Method for managing virtual control interface of an electronic device, and associated apparatus and associated computer program product
MY182770A (en) * 2014-08-08 2021-02-05 Ericsson Telefon Ab L M Wireless device, network node, and methods therein for sending a message comprising one or more populated fields
US9621959B2 (en) 2014-08-27 2017-04-11 Echostar Uk Holdings Limited In-residence track and alert
US9824578B2 (en) 2014-09-03 2017-11-21 Echostar Technologies International Corporation Home automation control using context sensitive menus
US9989507B2 (en) 2014-09-25 2018-06-05 Echostar Technologies International Corporation Detection and prevention of toxic gas
US9853929B2 (en) * 2014-09-30 2017-12-26 Apple Inc. Service compatibility check for messages
US10095500B2 (en) 2014-09-30 2018-10-09 Apple Inc. Revision locking
US9511259B2 (en) 2014-10-30 2016-12-06 Echostar Uk Holdings Limited Fitness overlay and incorporation for home automation system
US9983011B2 (en) 2014-10-30 2018-05-29 Echostar Technologies International Corporation Mapping and facilitating evacuation routes in emergency situations
US10003659B2 (en) * 2014-10-31 2018-06-19 Qualcomm Incorporated Efficient group communications leveraging LTE-D discovery for application layer contextual communication
US9226102B1 (en) * 2014-11-24 2015-12-29 Qualcomm Incorporated Method for re-enabling aggregation after bluetooth session
US9967614B2 (en) * 2014-12-29 2018-05-08 Echostar Technologies International Corporation Alert suspension for home automation system
US9838480B2 (en) * 2015-02-18 2017-12-05 Visa International Service Association Systems and methods implementing a communication protocol for data communication with a vehicle
US9729989B2 (en) 2015-03-27 2017-08-08 Echostar Technologies L.L.C. Home automation sound detection and positioning
US9946857B2 (en) 2015-05-12 2018-04-17 Echostar Technologies International Corporation Restricted access for home automation system
US9948477B2 (en) 2015-05-12 2018-04-17 Echostar Technologies International Corporation Home automation weather detection
US9632746B2 (en) 2015-05-18 2017-04-25 Echostar Technologies L.L.C. Automatic muting
US10453325B2 (en) 2015-06-01 2019-10-22 Apple Inc. Creation of reminders using activity state of an application
US9603123B1 (en) 2015-06-04 2017-03-21 Apple Inc. Sending smart alerts on a device at opportune moments using sensors
US10235863B2 (en) 2015-06-05 2019-03-19 Apple Inc. Smart location-based reminders
US9924342B2 (en) 2015-06-16 2018-03-20 Google Llc Establishing a connection over a low power communication type
US9960980B2 (en) 2015-08-21 2018-05-01 Echostar Technologies International Corporation Location monitor and device cloning
US9996066B2 (en) 2015-11-25 2018-06-12 Echostar Technologies International Corporation System and method for HVAC health monitoring using a television receiver
US10101717B2 (en) 2015-12-15 2018-10-16 Echostar Technologies International Corporation Home automation data storage system and methods
US9798309B2 (en) 2015-12-18 2017-10-24 Echostar Technologies International Corporation Home automation control based on individual profiling using audio sensor data
US10091017B2 (en) 2015-12-30 2018-10-02 Echostar Technologies International Corporation Personalized home automation control based on individualized profiling
US10073428B2 (en) 2015-12-31 2018-09-11 Echostar Technologies International Corporation Methods and systems for control of home automation activity based on user characteristics
US10060644B2 (en) 2015-12-31 2018-08-28 Echostar Technologies International Corporation Methods and systems for control of home automation activity based on user preferences
US9621678B1 (en) * 2016-01-13 2017-04-11 Linkedin Corporation Delivering and displaying content feeds on smartwatch devices
US9628286B1 (en) 2016-02-23 2017-04-18 Echostar Technologies L.L.C. Television receiver and home automation system and methods to associate data with nearby people
US9769650B1 (en) * 2016-03-10 2017-09-19 Boaz SHERMAN System and method for reducing phone radiation
JP6700972B2 (ja) * 2016-05-23 2020-05-27 キヤノン株式会社 通信装置、制御方法、及びプログラム
US9882736B2 (en) 2016-06-09 2018-01-30 Echostar Technologies International Corporation Remote sound generation for a home automation system
US10294600B2 (en) 2016-08-05 2019-05-21 Echostar Technologies International Corporation Remote detection of washer/dryer operation/fault condition
US10049515B2 (en) 2016-08-24 2018-08-14 Echostar Technologies International Corporation Trusted user identification and management for home automation systems
CN106254522B (zh) * 2016-09-07 2019-08-30 努比亚技术有限公司 一种终端服务系统、方法和终端
CN108377575B (zh) * 2016-11-08 2020-07-24 展讯通信(上海)有限公司 多卡移动终端及其业务处理方法
CN106375482B (zh) * 2016-11-08 2024-01-09 华清慧商(北京)科技有限公司 与tcp/ip网络驳接的无线物联接入网传输系统
CN108377479B (zh) 2016-11-08 2021-03-23 展讯通信(上海)有限公司 多卡移动终端及其业务处理方法、装置
CN108377225B (zh) 2016-11-14 2021-04-02 展讯通信(上海)有限公司 一种多通路终端业务处理方法及装置
CN106844275A (zh) * 2016-12-30 2017-06-13 百度在线网络技术(北京)有限公司 数据传输方法及装置
US10270726B2 (en) * 2017-02-24 2019-04-23 Satori Worldwide, Llc Selective distribution of messages in a scalable, real-time messaging system
CN107483542B (zh) * 2017-07-18 2020-09-04 深圳市盛路物联通讯技术有限公司 无线传感网络的异常处理方法及设备
KR102350498B1 (ko) * 2017-07-31 2022-01-14 삼성전자주식회사 외부 장치를 통해 오디오 신호를 재생하기 위한 전자 장치 및 그의 동작 방법
KR102516019B1 (ko) * 2017-09-11 2023-03-30 삼성전자주식회사 외부 전자 장치와 통신하는 전자 장치 및 방법
MX2020003447A (es) * 2017-10-17 2020-07-29 Ericsson Telefon Ab L M Registro de servicios en una red de comunicaciones.
KR102499380B1 (ko) * 2018-01-26 2023-02-13 삼성전자주식회사 무선 통신 시스템에서의 세션 관리 방법, 장치 및 시스템
TWI732710B (zh) * 2018-02-02 2021-07-01 鍾國誠 用於傳送電子資料的電子裝置及方法
CN111431932B (zh) * 2018-02-02 2022-05-24 钟国诚 用于传送电子数据的电子装置和方法
CN110138815B (zh) * 2018-02-02 2020-12-25 华为技术有限公司 会话管理方法、设备及系统
CN108646750B (zh) * 2018-06-08 2021-05-07 杭州电子科技大学 基于uwb非基站便捷式工厂agv跟随方法
US11672035B2 (en) * 2018-06-14 2023-06-06 Lg Electronics Inc. Method and apparatus for performing sidelink communication by UE in NR V2X
US10499446B1 (en) 2018-08-17 2019-12-03 At&T Intellectual Property I, L.P. Instantiating a slice of a 5G or other next generation service network in an underserved area
KR20200028809A (ko) * 2018-09-07 2020-03-17 삼성전자주식회사 Uwb 트랜잭션을 위한 방법 및 전자 장치
CN109285336B (zh) * 2018-11-12 2020-07-14 南京迈瑞生物医疗电子有限公司 医疗设备操控器、系统、方法、计算机设备和存储介质
CN109788035B (zh) * 2018-12-19 2022-01-28 平安科技(深圳)有限公司 基于云监控的数据传输方法、装置及监控服务器
CN110048893B (zh) * 2019-04-22 2021-11-23 上海顺舟智能科技股份有限公司 基于ZigBee的物联网设备快速对接方法及系统
KR102187040B1 (ko) * 2019-09-02 2020-12-04 김한수 복수의 가상 운영체제 구성을 통한 가상 wifi 네트워크 설정 방법 및 이를 수행하는 프로그램
CN114503105A (zh) * 2019-09-25 2022-05-13 联邦科学和工业研究组织 用于浏览器应用的密码服务
US20210334279A1 (en) * 2020-04-26 2021-10-28 Anupam Jaiswal On-demand data ingestion system and method
US11855834B2 (en) * 2020-06-02 2023-12-26 Apple Inc. Traffic sink interface
US20220078875A1 (en) * 2020-09-08 2022-03-10 Asustek Computer Inc. Method and apparatus for timer control for rrc connection resume procedure in a wireless communication system
CN112860225A (zh) * 2021-01-15 2021-05-28 哈尔滨鸿德亦泰数码科技有限责任公司 一种可扩展性优越的智慧灌区e平台及其二次开发结构构建方法
US20220417224A1 (en) * 2021-06-25 2022-12-29 Eleven-X Incorporated Method and apparatus for authenticating encrypted communication
KR20230102696A (ko) * 2021-12-30 2023-07-07 삼성전자주식회사 멀티 서비스를 지원하는 서버, 그것을 갖는 무선 통신 시스템 및 그것의 동작 방법
CN116016296B (zh) * 2022-12-19 2024-03-26 四川九洲电器集团有限责任公司 一种基于json的二进制数据处理方法、系统及设备

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040076181A1 (en) * 2002-10-17 2004-04-22 Broadcom Corporation Supporting multiple logical channels in a physical interface
US20050286516A1 (en) * 2004-06-29 2005-12-29 Microsoft Corporation Session multiplex protocol
US20060149765A1 (en) * 2004-12-30 2006-07-06 Joseph Knoerle Methods, systems, and computer program products for managing system resources
US20080069065A1 (en) * 2006-09-20 2008-03-20 Hong Kong Applied Science and Technology Research Institute Company Limited Method of seamlessly roaming between multiple wireless networks using a single wireless network adaptor
US20080165711A1 (en) * 2007-01-07 2008-07-10 Jeremy Wyld Dynamic network transport selection
US20080298274A1 (en) * 2007-05-24 2008-12-04 Souichi Takashige Method for configuring virtual network and network system
US7489700B2 (en) * 2002-11-20 2009-02-10 Hitachi Communication Technologies, Ltd. Virtual access router
US20110286380A1 (en) * 2010-05-21 2011-11-24 Yee Yi Zhu Wireless workgroup bridge for network viryualization
US20130223337A1 (en) * 2012-02-29 2013-08-29 Pantech Co., Ltd. Mobile device to generate multiple maximum transfer units and data transfer method
US20130322335A1 (en) * 2012-06-05 2013-12-05 VIMware, Inc. Controlling a paravirtualized wireless interface from a guest virtual machine
US20140024410A1 (en) * 2012-07-19 2014-01-23 Research In Motion Limited Mobile device with selective wlan receive gain levels and related methods
US20140029395A1 (en) * 2012-07-27 2014-01-30 Michael Nicholas Bolas Method and System for Recording Audio
US20140293959A1 (en) * 2013-03-26 2014-10-02 Apple Inc. Seamless session mobility on a wireless communication device having multiple radio interfaces

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7145919B2 (en) * 2001-06-01 2006-12-05 Telefonaktienbolaget Lm Ericsson (Publ) Method and apparatus for transporting different classes of data bits in a payload over a radio interface
US7266614B1 (en) * 2002-09-30 2007-09-04 Advanced Micro Devices, Inc. Embedded channel adapter having link layer configured for concurrent retrieval of payload data during packet transmission
US7529870B1 (en) 2004-04-27 2009-05-05 Apple Inc. Communication between an accessory and a media player with multiple lingoes
US7526588B1 (en) 2004-04-27 2009-04-28 Apple Inc. Communication between an accessory and a media player using a protocol with multiple lingoes
CN101027889A (zh) * 2004-08-06 2007-08-29 高通股份有限公司 支持网络协议之间的故障转移的无线网络
US8437364B2 (en) * 2004-08-06 2013-05-07 Qualcomm Incorporated Wireless network supporting failover between network protocols
KR20060100031A (ko) * 2005-03-16 2006-09-20 삼성전자주식회사 다중 무선 접속 방식을 지원하는 이동 단말에서 네트워크인터페이스 선택 장치 및 방법
DE502006001025D1 (de) * 2006-02-23 2008-08-14 Swisscom Mobile Ag Anpassung von virtuellen und physikalischen Netzwerkschnittstellen
US7821985B2 (en) * 2006-03-13 2010-10-26 Microsoft Corporation Network interface routing using computational context
US7870231B2 (en) 2006-07-21 2011-01-11 Qualcomm Incorporated Efficiently assigning precedence values to new and existing QoS filters
CN101102593A (zh) * 2007-07-31 2008-01-09 东南大学 基于无线通讯网络的移动基站定位方法
US20090064202A1 (en) * 2007-09-04 2009-03-05 Apple, Inc. Support layer for enabling same accessory support across multiple platforms
CN101553046B (zh) * 2008-04-01 2011-12-21 英华达(南京)科技有限公司 能实现多信道协议的3g移动通讯设备及其方法
US7961726B2 (en) * 2008-10-07 2011-06-14 Microsoft Corporation Framework for optimizing and simplifying network communication in close proximity networks
US8407721B2 (en) * 2008-12-12 2013-03-26 Microsoft Corporation Communication interface selection on multi-homed devices
US9069908B2 (en) * 2009-03-16 2015-06-30 Apple Inc. Accessory and mobile computing device communication using an application communication protocol
US8468550B2 (en) * 2010-06-18 2013-06-18 At&T Intellectual Property I, L.P. Mobile devices having plurality of virtual interfaces
US8799504B2 (en) * 2010-07-02 2014-08-05 Netgear, Inc. System and method of TCP tunneling
KR101753195B1 (ko) * 2010-07-27 2017-07-19 아주대학교산학협력단 통신 시스템에서 세션 연결 제어 장치 및 방법
CN102375755A (zh) * 2010-08-17 2012-03-14 鸿富锦精密工业(深圳)有限公司 数据模型对象删除识别装置及其使用方法
US11405969B2 (en) * 2010-09-29 2022-08-02 International Business Machines Corporation Enabling interface aggregation of mobile broadband network interfaces
KR20120060593A (ko) * 2010-12-02 2012-06-12 한국전자통신연구원 논리적 인터페이스를 이용하여 세션 연결을 유지하는 이동 단말 및 그 방법
KR20120066161A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 플로우 이동성 지원 방법
MX2014000081A (es) * 2011-07-06 2015-03-05 Veiled Technologies Llc Sistemas y metodos para asegurar comunicaciones de medios y medios moviles con criptografia de clave privada y autentificacion multifactor.
US8918841B2 (en) * 2011-08-31 2014-12-23 At&T Intellectual Property I, L.P. Hardware interface access control for mobile applications
US20140022969A1 (en) * 2012-07-17 2014-01-23 Cubic Corporation Application and method of inter-frame gap reduction in low-power time-synchronized networks
US9686632B2 (en) * 2011-09-16 2017-06-20 Nokia Technologies Oy Method and apparatus for accessing virtual smart cards
US9485177B2 (en) * 2014-05-30 2016-11-01 Apple Inc. Client applications communicating via a user tunnel

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040076181A1 (en) * 2002-10-17 2004-04-22 Broadcom Corporation Supporting multiple logical channels in a physical interface
US7489700B2 (en) * 2002-11-20 2009-02-10 Hitachi Communication Technologies, Ltd. Virtual access router
US20050286516A1 (en) * 2004-06-29 2005-12-29 Microsoft Corporation Session multiplex protocol
US7966405B2 (en) * 2004-06-29 2011-06-21 Microsoft Corporation Session multiplex protocol
US20060149765A1 (en) * 2004-12-30 2006-07-06 Joseph Knoerle Methods, systems, and computer program products for managing system resources
US20080069065A1 (en) * 2006-09-20 2008-03-20 Hong Kong Applied Science and Technology Research Institute Company Limited Method of seamlessly roaming between multiple wireless networks using a single wireless network adaptor
US20080165711A1 (en) * 2007-01-07 2008-07-10 Jeremy Wyld Dynamic network transport selection
US20080298274A1 (en) * 2007-05-24 2008-12-04 Souichi Takashige Method for configuring virtual network and network system
US20110286380A1 (en) * 2010-05-21 2011-11-24 Yee Yi Zhu Wireless workgroup bridge for network viryualization
US20130223337A1 (en) * 2012-02-29 2013-08-29 Pantech Co., Ltd. Mobile device to generate multiple maximum transfer units and data transfer method
US20130322335A1 (en) * 2012-06-05 2013-12-05 VIMware, Inc. Controlling a paravirtualized wireless interface from a guest virtual machine
US20140024410A1 (en) * 2012-07-19 2014-01-23 Research In Motion Limited Mobile device with selective wlan receive gain levels and related methods
US20140029395A1 (en) * 2012-07-27 2014-01-30 Michael Nicholas Bolas Method and System for Recording Audio
US20140293959A1 (en) * 2013-03-26 2014-10-02 Apple Inc. Seamless session mobility on a wireless communication device having multiple radio interfaces

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9949305B2 (en) * 2009-10-02 2018-04-17 Blackberry Limited Methods and apparatus for peer-to-peer communications in a wireless local area network
US10681757B2 (en) 2009-10-02 2020-06-09 Blackberry Limited Method and apparatus for peer-to-peer communications in a wireless local area network including the negotiation and establishment of a peer-to-peer connection between peers based on capability information
US20110082940A1 (en) * 2009-10-02 2011-04-07 Michael Peter Montemurro Methods and apparatus to establish peer-to-peer communications
US10693673B2 (en) 2014-12-03 2020-06-23 Nokia Technologies Oy Method and apparatus for routing data to cellular network
WO2016087703A1 (en) * 2014-12-03 2016-06-09 Nokia Technologies Oy Method and apparatus for routing data to cellular network
WO2016097822A1 (en) * 2014-12-17 2016-06-23 Nokia Technologies Oy Method and apparatus for local data monitoring and actuator control in an internet of things network
US10616739B2 (en) * 2014-12-17 2020-04-07 Nokia Technologies Oy Method and apparatus for local data monitoring and actuator control in an internet of things network
US20170331860A1 (en) * 2014-12-17 2017-11-16 Nokia Technologies Oy Method and apparatus for local data monitoring and actuator control in an internet of things network
CN104572564A (zh) * 2015-01-13 2015-04-29 上海动联信息技术股份有限公司 一种实现android移动设备与USB OTG主机通讯的方法
US11743422B2 (en) * 2015-03-02 2023-08-29 Lg Electronics Inc. Apparatus and method for transceiving broadcast signal
US20220368852A1 (en) * 2015-03-02 2022-11-17 Lg Electronics Inc. Apparatus and method for transceiving broadcast signal
WO2016148550A1 (ko) * 2015-03-19 2016-09-22 엘지전자 주식회사 무선 통신 시스템에서 어플리케이션 서비스 플랫폼 세션 형성을 수행하는 방법 및 장치
US20190007811A1 (en) * 2015-08-18 2019-01-03 Industry-Universty Cooperation Foundation Hanyang University Reconfigurable mobile device using unified radio application interface, and operation method thereof
US20180253332A1 (en) * 2015-10-02 2018-09-06 Nokia Solutions And Networks Oy Managing the graceful termination of a virtualized network function instance
US10846128B2 (en) * 2015-10-02 2020-11-24 Nokia Solutions And Networks Oy Managing the graceful termination of a virtualized network function instance
CN108781224A (zh) * 2016-02-19 2018-11-09 英特尔公司 物联网设备坯件
US20190036651A1 (en) * 2016-03-03 2019-01-31 Panasonic Intellectual Property Management Co. Ltd. Communication method and communication apparatus for block acknowledgment transmission
US11177908B2 (en) * 2016-03-03 2021-11-16 Panasonic intellectual property Management co., Ltd Communication method and communication apparatus for block acknowledgment transmission
CN106230828A (zh) * 2016-08-02 2016-12-14 四川秘无痕信息安全技术有限责任公司 一种基于wifi连接方式的数据传输方法
US11246171B2 (en) 2017-01-09 2022-02-08 Banma Zhixing Network (Hongkong) Co., Limited Method, system and device for connecting devices
CN108289110A (zh) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 设备关联方法、装置、终端设备和操作系统
WO2018129515A1 (en) * 2017-01-09 2018-07-12 Alibaba Group Holding Limited Method, system and device for connecting devices
CN109219027A (zh) * 2017-07-07 2019-01-15 安移通网络公司 蓝牙低能耗设备
CN111373712A (zh) * 2017-11-16 2020-07-03 三星电子株式会社 用于认证应用程序接口(api)调用者的方法和系统
US20190149576A1 (en) * 2017-11-16 2019-05-16 Samsung Electronics Co., Ltd. Method and system for authenticating application program interface (api) invokers
US11303676B2 (en) * 2017-11-16 2022-04-12 Samsung Electronics Co., Ltd. Method and system for authenticating application program interface (API) invokers
US20220217178A1 (en) * 2017-11-16 2022-07-07 Samsung Electronics Co., Ltd. Method and system for authenticating application program interface (api) invokers
US20210367706A1 (en) * 2018-05-21 2021-11-25 Hewlett-Packard Development Company, L.P. Device communication interpretation based on process state
US11595804B1 (en) * 2020-05-27 2023-02-28 Amazon Technologies, Inc. Establishing data channels between user devices and remote systems
US11671904B1 (en) * 2020-05-27 2023-06-06 Amazon Technologies, Inc. Establishing communication links to assist headless devices
US11816344B2 (en) 2020-12-16 2023-11-14 Kioxia Corporation Memory system in which information on a time in which integrity of a stored data piece is confirmed last

Also Published As

Publication number Publication date
EP3000217A4 (en) 2017-02-08
US20140351832A1 (en) 2014-11-27
AU2014269271A1 (en) 2015-11-26
WO2014189290A3 (en) 2015-01-15
EP3000217B1 (en) 2020-08-26
US20190132401A1 (en) 2019-05-02
KR20160045635A (ko) 2016-04-27
WO2014189290A2 (en) 2014-11-27
EP3000217A2 (en) 2016-03-30
US10693969B2 (en) 2020-06-23
AU2014269271B2 (en) 2018-02-08
CN105519071A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
US10693969B2 (en) Electronic device using logical channels for communication
US10904310B2 (en) Method and apparatus for communicating streaming data in bluetooth-based wireless communication system
KR102208438B1 (ko) 근접 서비스 데이터 송신 방법 및 그 전자 장치
KR101984413B1 (ko) 서비스 레이어를 통해 제3자 서비스들에 대한 액세스를 가능하게 하는 시스템들 및 방법들
KR20140128039A (ko) 통신 서비스 수행 방법 및 장치
EP4084486A1 (en) Cross-device content projection method, and electronic device
KR20150051640A (ko) 전자장치에서 메시지의 상태 확인 방법 및 장치
US20150065053A1 (en) Method of controlling short-range wireless communication and apparatus supporting the same
CN105578385B (zh) 电子设备收发数据的方法及使用该方法的电子设备
KR102221021B1 (ko) 전자 장치 및 인터넷 프로토콜 기반의 네트워크에서 패킷을 처리하는 방법
EP4199562A1 (en) Method for transmitting data and electronic device
CN108605373B (zh) 用于提供网络共享服务的方法和电子装置
KR102462427B1 (ko) 메시지 통합 관리 방법 및 이를 구현한 전자 장치
US9948732B2 (en) Method for providing status messaging service in electronic device and the electronic device thereof
WO2018112327A1 (en) Methods of concurrency control for block transfer in coap publish-subscribe architecture
WO2021179990A1 (zh) 一种应用服务器的访问方法及终端
CN110324193A (zh) 一种终端升级管理方法及装置
US10284614B2 (en) Method for downloading contents of electronic device and electronic device thereof
WO2021244456A1 (zh) 反向地址解析方法及电子设备
EP3010169B1 (en) Electronic device and method for processing data in electronic device
US11916970B2 (en) Security information exchange between a client and a server
KR102113550B1 (ko) 전자 장치의 기능 및 리소스 운용 방법
WO2022267739A1 (zh) 一种连接探测方法、客户端与服务器
WO2023051204A1 (zh) 跨设备连接方法、电子设备及存储介质
WO2024088173A1 (zh) 组播通信方法及相关装置

Legal Events

Date Code Title Description
AS Assignment

Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHO, KI-SOO;IYER, ARAVIND;ANJANAPPA, MAHESH;AND OTHERS;SIGNING DATES FROM 20140515 TO 20140516;REEL/FRAME:032935/0594

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION