Network device architecture for unified communication service
Abstract
Problem to be solved.To provide a system and a method for implementing a service-oriented architecture supporting complex event processing and business activity monitoring. An enterprise service bus (ESB) generates a first list of one or more devices and selects a second device in the first list from users associated with the first device. To generate a second list of functions related to the selection from the user, and request the first device to perform one of the functions in the second list. The first communication protocol of the request received from the first device is converted into the second communication protocol used by the second device to generate the converted request, and the first of the requests. The message format of 1 is converted into the second message format, and the converted request is transmitted to the second device. [Selection diagram] Fig. 1A

Term
Projected expiry 27 November 2033.
- Priority
- Filed
- Published
- Today
- Projected expiry
20 claims: 4 independent, 16 dependent
- 1コンピュータが実行する方法であって、 1又は複数のコンピューティング装置を用いて、第1の装置の位置と、ネットワーク内で前記第1の装置の位置から一定距離範囲内にある1又は複数の装置の第1のリストとを識別するステップと、 前記1又は複数のコンピューティング装置を用いて、前記第1の装置に関連するユーザから前記第1のリストの中の第2の装置の選択を受信するステップと、 前記1又は複数のコンピューティング装置を用いて、前記ユーザにより選択された第2の装置に関連する機能を有する第2のリストを生成するステップと、 前記1又は複数のコンピューティング装置を用いて、前記第1の装置から、前記第2のリストの中の前記機能のうちの1つを実行する第1の要求を受信するステップと、 前記1又は複数のコンピューティング装置を用いて、前記第1の装置から受信した前記第1の要求の第1の通信プロトコルを前記第2の装置により用いられる第2の通信プロトコルに変換するステップであって、変換された要求を生成する、ステップと、 前記1又は複数のコンピューティング装置を用いて、前記第1の要求の第1のメッセージフォーマットを前記第2の装置により用いられる第2のメッセージフォーマットに変換するステップと、 前記1又は複数のコンピューティング装置を用いて、前記の変換された第1の要求を前記第2の装置へ送信するステップと、 を有する方法。
- 2前記第1の装置から、主題に関連する1又は複数種類のメディアについての第2の要求を受信するステップと、 グローバルインデックスと一致する前記第2の要求に基づき、前記要求が向けられている1又は複数のリソースサーバを決定するステップであって、前記1又は複数のリソースサーバは1又は複数種類の第2の装置と関連する、ステップと、 前記第2の要求の第1の通信プロトコルと、前記1又は複数のリソースサーバの1又は複数種類の第2の通信プロトコルとを決定するステップと、 前記第2の要求の第1のメッセージフォーマットと、前記1又は複数のリソースサーバの1又は複数種類の第2のメッセージフォーマットとを決定するステップと、 前記第1の通信プロトコルからの前記第2の要求を前記1又は複数のリソースサーバの前記1又は複数種類の第2の通信プロトコルの各々に変換するステップと、 前記第1のメッセージフォーマットからの前記第2の要求を前記1又は複数のリソースサーバの前記1又は複数種類の第2のメッセージフォーマットの各々に変換するステップと、 前記1又は複数のリソースサーバから、前記の変換された第2の要求と一致する前記1又は複数種類のメディアを読み出すステップと、 前記第1の装置へ、前記の変換された第2の要求と一致する前記1又は複数種類のメディアを送信するステップと、 を更に有する請求項1に記載の方法。
- 3前記第1の装置にIP(internet protocol)アドレスと名称を割り当て及び前記IPアドレスをリストに追加することにより、使用のために前記第1の装置を登録するステップと、 前記第2の装置に装置識別子と名称を割り当て及び前記装置識別子をリストに追加することにより、前記ネットワーク内での使用のために前記第2の装置を登録するステップと、 を更に有する請求項1に記載の方法。
- 4前記変換された第1の要求及び前記変換された第2の要求に関連する装置使用エントリを記録するステップであって、前記装置使用エントリは、要求種類、前記第1の装置のIPアドレス、前記第1の装置に関連するユーザのユーザ識別子、前記第2の装置のユニークな装置識別子、並びに前記変換された第1の要求及び前記変換された第2の要求に含まれるメディアの種類を有する、ステップと、 を更に有する請求項2に記載の方法。
- 5前記第2の装置により実行される少なくとも1つのトランザクションに関連する装置使用エントリを読み出すステップと、 前記少なくとも1つのトランザクションに関連する請求情報を決定するステップと、 各トランザクションに関連する前記請求情報に基づき請求書を生成するステップと、 を更に有する請求項2に記載の方法。
- 61又は複数の装置の前記第1のリストから選択された前記第2の装置のうちのどれが一定時間空いているかを決定するステップと、 1又は複数の装置の前記第1のリストから選択された前記第2の装置のうちのどれが空いているかを示す、前記第1の装置に対する通知を生成するステップと、 を更に有する請求項1に記載の方法。
- 7前記1又は複数のリソースサーバに格納された前記1又は複数種類のメディアを決定するステップと、 メタデータの濃度に基づき、前記1又は複数種類のメディアに関連するメタデータを決定するステップと、 前記1又は複数のリソースサーバ内でローカルデータベースインデックスを生成するステップであって、前記ローカルデータベースインデックスは、前記メタデータと、前記メタデータに関連する前記1又は複数種類のメディアが格納されている位置を指すポインタリファレンスとを保持する、ステップと、 を更に有する請求項2に記載の方法。
- 81又は複数種類のメディアを有する要求を受信するステップと、 前記メディア内のテキストを識別するステップと、 前記テキストに基づきグローバルデータベースインデックスを編集するステップであって、前記グローバルデータベースインデックスは、前記要求に関連する前記メディアが格納されている位置を指すポインタリファレンスを有する、ステップと、 を更に有する請求項7に記載の方法。
- 9前記1又は複数のリソースサーバに関連する前記1又は複数種類の第2の装置のAPI(Application Programming Interface)に関する1又は複数種類の更新を決定するステップと、 前記1又は複数種類の第2の装置の前記APIの前記1又は複数種類の更新が実行される前に、前記1又は複数種類の第2の装置に対する要求を受信するために前記第1の装置に公開される標準インタフェースが更新されるべきであると示す通知を送信するステップと、 を更に有する請求項2に記載の方法。
- 101又は複数のプロセッサと、 メモリに格納され前記1又は複数のプロセッサにより実行可能であるエンタープライズサービスバスであって、前記エンタープライズサービスバスは、1又は複数の装置の第1のリストを生成し、第1の装置に関連するユーザから、前記第1のリストの中の第2の装置の選択を受信し、前記ユーザから、前記の選択された第2の装置に関連する機能を有する第2のリストを生成し、前記第1の装置から、前記第2のリストの中の前記機能のうちの1つを実行する第1の要求を受信し、前記第1の装置から受信した前記第1の要求の第1の通信プロトコルを前記第2の装置により用いられる第2の通信プロトコルに変換して変換された要求を生成し、前記第1の要求の第1のメッセージフォーマットを前記第2の装置により用いられる第2のメッセージフォーマットに変換し、前記変換された第1の要求を前記第2の装置へ送信するよう構成される、エンタープライズサービスバスと、前記1又は複数のプロセッサにより実行可能なアプリケーションサービスであって、前記アプリケーションサービスは、ネットワーク内の前記第1の装置の位置を識別し、前記エンタープライズサービスバスに前記第1の装置の前記位置から一定距離範囲内にある1又は複数の装置の前記第1のリストを提供するよう構成される、アプリケーションサービスと、 を有するシステム。
- 11前記エンタープライズサービスバスは、前記ネットワーク内の前記第1の装置から1又は複数種類のメディアについての第2の要求を受信し、前記第2の要求を前記アプリケーションサービスへ送信し、前記第2の要求が向けられている1又は複数のリソースサーバの決定を受信し、前記第2の要求の第1の通信プロトコルと、前記1又は複数のリソースサーバの1又は複数種類の第2の通信プロトコルとを決定し、前記第2の要求の第1のメッセージフォーマットと、前記1又は複数のリソースサーバの1又は複数種類の第2のメッセージフォーマットとを決定し、前記第1の通信プロトコルからの前記第2の要求を前記1又は複数のリソースサーバの前記1又は複数種類の第2の通信プロトコルの各々に変換し、前記第1のメッセージフォーマットからの前記第2の要求を前記1又は複数のリソースサーバの前記1又は複数種類の第2のメッセージフォーマットの各々に変換し、前記1又は複数のリソースサーバから、前記の変換された第2の要求と一致する前記1又は複数種類のメディアを読み出し、前記第1の装置へ、前記1又は複数種類のメディアを送信するよう更に構成され、 前記アプリケーションサービスは、前記エンタープライズサービスバスから前記第2の要求を受信し、グローバルインデックスに一致する前記第2の要求に基づき前記第2の要求が向けられている前記1又は複数のリソースサーバを決定し、前記1又は複数のリソースサーバの決定を前記エンタープライズサービスバスへ送信し、前記1又は複数のリソースサーバは1又は複数種類の第2の装置に関連する、よう更に構成される、 請求項10に記載のシステム。
- 12前記アプリケーションサービスは、前記変換された第1の要求及び前記変換された第2の要求に関連する装置使用エントリを記録するよう更に構成され、前記装置使用エントリは、要求種類、前記第1の装置のIPアドレス、前記第1の装置に関連するユーザのユーザ識別子、前記第2の装置のユニークな装置識別子、並びに前記変換された第1の要求及び前記変換された第2の要求に含まれるメディアの種類を有する、請求項11に記載のシステム。
- 13前記アプリケーションサービスは、前記第2の装置により実行される少なくとも1つのトランザクションに関連する装置使用エントリを読み出し、前記少なくとも1つのトランザクションに関連する請求情報を決定し、各トランザクションに関連する前記請求情報に基づき請求書を生成するよう更に構成される、請求項11に記載のシステム。
- 14前記エンタープライズサービスバスは、前記1又は複数のリソースサーバに格納された前記1又は複数種類のメディアを決定し、メタデータの濃度に基づき、前記1又は複数種類のメディアに関連するメタデータを決定し、前記1又は複数のリソースサーバ内でローカルデータベースインデックスを生成するよう更に構成され、前記ローカルデータベースインデックスは、前記メタデータと、前記メタデータに関連する前記1又は複数種類のメディアが格納されている位置を指すポインタリファレンスとを保持する、請求項11に記載のシステム。
- 15前記エンタープライズサービスバスは、1又は複数種類のメディアを有する要求を受信し、前記メディア内のテキストを識別し、前記テキストに基づきグローバルデータベースインデックスを編集するよう更に構成され、前記グローバルデータベースインデックスは、関連する前記1又は複数種類のメディアが格納されている位置を指すポインタリファレンスを有する、請求項14に記載のシステム。
- 16前記アプリケーションサービスは、前記1又は複数のリソースサーバに関連する前記1又は複数種類の第1の装置のAPI(Application Programming Interface)に関する1又は複数種類の更新を決定し、前記1又は複数種類の第2の装置の前記APIの前記1又は複数種類の更新が実行される前に、前記1又は複数種類の第2の装置に対する要求を受信するために前記第1の装置に公開される標準インタフェースが更新されるべきであると示す通知を送信するよう更に構成される、請求項11に記載のシステム。
- 17コンピュータ可読プログラムを有するコンピュータにより使用可能な媒体を有するコンピュータプログラムであって、前記コンピュータ可読プログラムは、コンピュータで実行されると、該コンピュータに、 第1の装置の位置と、ネットワーク内で前記第1の装置の位置から一定距離範囲内にある1又は複数の装置の第1のリストとを識別し、 前記第1の装置に関連するユーザから前記第1のリストの中の第2の装置の選択を受信し、 前記ユーザにより選択された第2の装置に関連する機能を有する第2のリストを生成し、 前記第1の装置から、前記第2のリストの中の前記機能のうちの1つを実行する第1の要求を受信し、 前記第1の装置から受信した前記第1の要求の第1の通信プロトコルを前記第2の装置により用いられる第2の通信プロトコルに変換し、変換された要求を生成し、 前記第1の要求の第1のメッセージフォーマットを前記第2の装置により用いられる第2のメッセージフォーマットに変換し、 前記の変換された第1の要求を前記第2の装置へ送信させる、コンピュータプログラム。
- 18前記コンピュータに、更に、 前記第1の装置から、主題に関連する1又は複数種類のメディアについての第2の要求を受信し、 グローバルインデックスと一致する前記第2の要求に基づき、前記要求が向けられている1又は複数のリソースサーバを決定し、前記1又は複数のリソースサーバは1又は複数種類の第2の装置と関連し、 前記第2の要求の第1の通信プロトコルと、前記1又は複数のリソースサーバの1又は複数種類の第2の通信プロトコルとを決定し、 前記第2の要求の第1のメッセージフォーマットと、前記1又は複数のリソースサーバの1又は複数種類の第2のメッセージフォーマットとを決定し、 前記第1の通信プロトコルからの前記第2の要求を前記1又は複数のリソースサーバの前記1又は複数種類の第2の通信プロトコルの各々に変換し、 前記第1のメッセージフォーマットからの前記第2の要求を前記1又は複数のリソースサーバの前記1又は複数種類の第2のメッセージフォーマットの各々に変換し、 前記1又は複数のリソースサーバから、前記の変換された第2の要求と一致する前記1又は複数種類のメディアを読み出し、 前記第1の装置へ、前記の変換された第2の要求と一致する前記1又は複数種類のメディアを送信させる、請求項17に記載のコンピュータプログラム。
- 19前記コンピュータに、さらに、 前記変換された第1の要求及び前記変換された第2の要求に関連する装置使用エントリを記録させ、前記装置使用エントリは、要求種類、前記第1の装置のIPアドレス、前記第1の装置に関連するユーザのユーザ識別子、前記第2の装置のユニークな装置識別子、並びに前記変換された第1の要求及び前記変換された第2の要求に含まれるメディアの種類を有する、請求項18に記載のコンピュータプログラム。
- 20前記コンピュータに、さらに、 前記1又は複数のリソースサーバに格納された前記1又は複数種類のメディアを決定し、 メタデータの濃度に基づき、前記1又は複数種類のメディアに関連するメタデータを決定し、 前記1又は複数のリソースサーバ内でローカルデータベースインデックスを生成させ、前記ローカルデータベースインデックスは、前記メタデータと、前記メタデータに関連する前記1又は複数種類のメディアが格納されている位置を指すポインタリファレンスとを保持する、請求項18に記載のコンピュータプログラム。
Independent claims20
168 paragraphs, as filed
The present specification relates to systems and methods for implementing service-oriented architectures that support complex event handling and business activity monitoring. In particular, the specification of the present application relates to an application programming interface or a unified server that communicates with a device and a cloud of the device.
Consumers have a variety of consumer electronics options. However, problems arise because consumers use equipment from different vendors. The equipment of each vendor operates in a particular way, making it difficult for consumers to interact with and coordinate those equipment. As a result, discrepancies delay device coordination.
For example, when a company holds a meeting in a meeting room, employees use mobile devices, the meeting room has a projector that projects slides, and other users use their laptop to remotely connect to the meeting. .. Remote users can view the slides in real time using video conferencing software. However, the software often fails, the conference access code is not sent to all participants, and so on. In addition, this setting requires users to come to the conference room before the event and download the presentation to their laptop. This wastes time and delays the meeting when the device experiences technical difficulties.
One solution is to develop an application that connects to the API (application programming interface) of each device. Since each vendor's device has a different API than other competitors, it is difficult for an application developer to coordinate all possible APIs and develop an application efficiently.
Furthermore, since the cloud is connected to a particular device, only device-centric data can be registered in the cloud. As a result, all user-machine interactions are split in individual clouds. As a result, the content value of each cloud is low because the system does not have a holistic view of the data and usage patterns that the user can generate with a collection of dissimilar devices.
Also, updating the backend of a device is not possible because each device has a different backend or server that connects when installed and managed by consumers or for public use when provided privately. Have difficulty. Since each device has a different backend, the user must update the backend of each device separately. Moreover, since the data for each device resides in a separate system, it causes fragmentation of the device data and eliminates the opportunity to correlate the device data.
One solution is to buy a host of goods, all manufactured by the same company. For example, a consumer, the iPhone due to the need of mobile, the Macintosh is in the laptop, the Apple Airport to manage the WiFi devices, and watch the TV can buy the AppleTV in order. However, these products are more expensive than other devices and are not suitable for business.
<p> The present disclosure overcomes the shortcomings of prior art by means of a system that translates requirements between dissimilar devices.</p>
<p> In one embodiment, the system is an enterprise service bus and NAaaS (network appliance as a). service) Has an application service. The enterprise service bus identifies one or more types of devices in the network to the NAaaS application service, and assigns an IP address and a name to each device to provide the one or more types of devices for use in the network. Register and add the IP address to the IP address list. The enterprise service bus generates a first list of one or more devices for the first device, and from the user associated with the first device, the second device in the first list. A request to receive a selection, generate a second list of functions related to the selection from the user, and perform one of the functions in the second list from the first device. To generate the converted request by converting the first communication protocol of the request received from the first device into the second communication protocol used by the second device. The first message format is converted to the second message format, and the converted request is transmitted to the second device. In another embodiment, the NAaaS application service identifies the location of a first device in the network and the first of one or more devices within a certain distance of the location of the first device on the enterprise service bus. Provide a list of.</p><p> In another embodiment, the enterprise service bus directs the NAaaS application service to determine one or more resource servers to which the request received from the first device is directed, based on the request matching the global index. .. The enterprise service bus translates the first communication protocol of the request into one or more types of second communication protocols used by the one or more resource servers, and converts the first message format of the request into the one. Alternatively, it is used by multiple resource servers and converted to ur1 or multiple types of second message formats to generate a converted request, and the first message format of the request is changed to one or more types of second message formats. It translates and sends the translated request to the NAaaS application service, which reads out one or more types of media that match the translated request from the one or more resource servers.</p><p> Other embodiments include corresponding methods, systems, devices and computer programs for the aforementioned and other novel embodiments.</p><p> Advantageously, the system presents a unified API that simplifies and speeds up the development and maintenance of client applications and enables a more consistent user experience, and is related to middleware servers and middleware server applications that record everything in one place. Provide services. In this way, information is correlated across all devices from different vendors to provide higher value services. In addition, the system generates single sign-on to access all devices in the network. The features and benefits described herein are not exhaustive and many additional features and benefits will be apparent with reference to the drawings and description. Furthermore, it should be noted that the terms used herein are basically selected for readability and descriptive purposes and do not limit the scope of the matters disclosed herein.</p>
The present invention has been described by way of example and is not limited to the accompanying drawings. In the figure, similar reference numerals are used to represent similar elements.<figref num="1A">It is a high-level block diagram which shows one Embodiment of the system which implements the service-oriented architecture which supports unified communication.</figref><figref num="1B">It is a high-level block diagram which shows another embodiment of the system which implements the service-oriented architecture which supports unified communication.</figref><figref num="2A">It is a block diagram which shows one Embodiment of an enterprise service bus.</figref><figref num="2B">It is a block diagram which shows one Embodiment of NAaaS (Network Appliance as a Service) application service.</figref><figref num="3">It is a graphic representation of an embodiment of a user interface that displays a web page that provides a service overview to the user.</figref><figref num="4">It is a graphic representation of an embodiment of a user interface that selects a media type for viewing on a co-computing device.</figref><figref num="5">It is a graphic representation of an embodiment of a user interface that selects a position to transmit media for display.</figref><figref num="6">It is a graphic representation of an embodiment of a user interface that displays a list of devices at the position of a user device or within a set distance thereof.</figref><figref num="7">It is a graphic representation of an embodiment of a user interface that displays a list of commands to be transmitted from a user device 102 to a co-computing device selected.</figref><figref num="8">A graphic representation of an embodiment of a user interface that displays a list of choices for selecting a source for displaying a document in a co-computing device.</figref><figref num="9">It is a graphic representation of an embodiment of a user interface that displays a media list.</figref><figref num="10">A graphic representation of another embodiment of a user interface that displays a media list.</figref><figref num="11">A graphic representation of an embodiment of a user interface that generates events in an electronic calendar for the user.</figref><figref num="12">A graphic representation of an embodiment of a user interface that selects media to upload for one or more devices reserved for a calendar event.</figref><figref num="13">A graphic representation of an embodiment of a user interface that provides an overview of events generated within a calendar.</figref><figref num="14">A graphic representation of an embodiment of a user interface for specifying configuration settings for a co-computing device and for turning configuration settings on or off.</figref><figref num="15">It is a flow chart of one Embodiment of the method of managing communication between one or a plurality of types of devices.</figref><figref num="16A">It is a flow chart of one Embodiment of the method of controlling the interoperability between dissimilar devices.</figref><figref num="16B">It is a flow chart of another embodiment of the method of controlling the interoperability between dissimilar devices.</figref><figref num="17">FIG. 5 is a flow chart of an embodiment of a method of generating an invoice based on billing information determined for each transaction executed by the device.</figref><figref num="18">It is a flow chart of one Embodiment of the method of compiling the global database index of one or a plurality of resource servers.</figref><figref num="19">It is a flow chart of one Embodiment of the method of converting the request of one or a plurality of resource servers.</figref><figref num="20">FIG. 5 is a flow chart of an embodiment of a method of controlling one or more devices reserved for a calendar event.</figref><figref num="21">It is a flow chart of another embodiment of the method of controlling one or more devices reserved for a calendar event.</figref><figref num="22">FIG. 5 is a flow diagram of an embodiment of a method of generating one or more notifications for a calendar event.</figref>
The systems and methods for implementing a service-oriented architecture that supports complex event handling and business activity monitoring are described below. In the following description, many details will be described in order to provide a complete understanding of the embodiments of the present invention for purposes of explanation. However, those skilled in the art will appreciate that embodiments can be implemented regardless of such specific details. In another example, the structure and device are shown in block diagrams so as not to obscure the invention. For example, the present invention will be described in one embodiment below with reference to user devices such as smartphones and certain software and hardware. However, the following description applies to any type of computing device capable of receiving data and commands, as well as any peripheral device that provides services.
In the specification of the present application, expressions such as "one embodiment" or "a certain embodiment" mean that a specific function, structure or feature described in connection with the embodiment is included in at least one embodiment. To do. The appearance of the expression "in one embodiment" in the various statements in the specification does not necessarily refer to the same embodiment.
Some of the following detailed descriptions are provided in terms of algorithms and symbolic representations of operation for data bits in computer memory. Descriptions and representations of these algorithms are means used by those skilled in the art of data processing techniques to most efficiently convey business content to other skilled in the art. The algorithm is considered here and generally as a self-consistent step sequence that produces the desired result. A step is a step that requires a physical manipulation of a physical quantity. Usually, but not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transferred, combined, compared and otherwise manipulated. We have found it convenient to represent these signals as bits, values, elements, symbols, letters, words, numbers, etc., because they are basically commonly used.
However, all of these and similar terms are only expedient labels that are associated with appropriate physical quantities and apply to these quantities. Unless otherwise noted, as is clear from the following discussions, through the following explanations, discussions using terms such as "processing", "calculation" or "calculation" or "decision" or "display" are computer systems. Or represents the operation and processing of a similar electronic computing device. A computer system or similar electronic computing device manipulates data represented as a physical (electronic) quantity in a computer system's register and memory, such as a computer system's memory or register or information storage, transmission or display device. Convert to other data that is also represented as a physical quantity inside.
The present invention also relates to a device that performs the operations of the specification. The device may be specifically configured for a required purpose, or may have a general purpose computer that is selectively started or reconfigured by a computer program stored in the computer. Such computer programs include any type of disk, including floppy disks, optical disks, CD-ROMs and magnetic disks, ROM (read-only memory), RAM (random access memory), EPROM, EEPROM, magnetic or optical cards, etc. To computer readable storage media, each coupled to a computer system bus, but not limited to, such as flash memory, including USB keys with non-volatile memory, or any type of medium suitable for storing electronic instructions. It may be stored.
Some embodiments may take the form of complete hardware embodiments, complete software embodiments, or embodiments that include both hardware and software elements. Suitable embodiments may be implemented in software including, but not limited to, firmware, resident software, microcode, and the like.
In addition, some embodiments are computer program products that are available or accessible from computer-readable or computer-readable media that provide program code for use by or in connection with a computer or any instruction execution system. Can take the form of. For the purposes of the present invention, computer-enabled or computer-readable media have, stores, and communicates programs for use by or in connection with instruction execution systems, devices or devices. , Any device capable of transmitting or transferring.
A data processing system suitable for storing and / or executing program code has at least one processor that is directly or indirectly coupled to a memory element through the system bus. Memory elements include local memory used during the actual execution of program code, mass storage, and at least specific program code to reduce the number of times the code must be read from mass storage during execution. May include cache memory that provides temporary storage for. Input / output or I / O devices, including but not limited to keyboards, displays, pointing devices, etc., may be coupled to the system directly or through intervening I / O controls.
Network adapters may also be coupled to a system to couple the data processing system to another data processing system or to a remote printer or storage device through an intervening private or public network. Modems, cable modems and Ethernet® cards are just a few examples of the types of network adapters currently available.
Finally, the algorithms and displays presented herein are essentially not relevant to any particular computer or other device. Various general purpose systems may be used with the program as taught herein, and it may be convenient to further configure specific devices to perform the required method steps. The required structure of the various these systems is clear from the description below. Moreover, the specification of the present application is not described with reference to any particular programming language. It should be understood that various programming languages may be used to carry out the teachings of the various embodiments described herein.
<System Overview> Figure 1A shows a high-level block diagram of System 100 implementing a service-oriented architecture that supports complex event handling and business activity monitoring. The illustrated embodiment of the system 100 includes a user device 102a102n, a co-computing device 103a-103n, a network 104, a web server 120, a NAaaS (Network Appliance As A Service) middleware server 101, and a NAaaS application server 123. In FIG. 1A and the following figures, the character after the reference code, for example "102a", is a reference to an element having a particular reference code. In the text, a reference code without a trailing character, such as "102", is a general reference to any or all examples of the element with that reference code.
The network 104 may be conventional wired or wireless and may have any number of configurations such as star, token ring or other configurations known to those of skill in the art. In addition, the network 104 may have a LAN (local area network), a WAN (wide area network) (eg, the Internet), and / or any other interconnected data path through which multiple services can communicate. .. In yet another embodiment, the network 104 may be a peer-to-peer network. The network 104 may be coupled to or include a portion of a communication network that transmits data in a variety of different communication protocols. In yet another embodiment, the network 104 is a Bluetooth® communication network or SMS (short messaging service), MMS (multimedia messaging service), HTTP (hypertext transfer). It may have a cellular communication network that transmits and receives data via protocol), direct data connection, WAP, e-mail, etc. Only one network 104 is coupled to multiple user devices 102a-102n, multiple co-computing devices 103a-103n, web server 120, NAaaS server 123 and NAaaS middleware server 101, but in practice any number. Network 104 can connect to these entities.
The user device 102a-102n is a device associated with a specific user. For example, a company supplies its employees with mobile devices or laptops. Each of the user devices 102a-102n is coupled to the network 104 via signal lines 112a-112n, respectively. The user device 102 is any computing device having memory, a processor and communication capabilities. For example, the user device 102 can be a tablet computer, a personal digital assistant, a smartphone, a future phone, or the like. The user device 102 can communicate with the network 104 either wirelessly or through a wired connection. User device 102 has one or more user applications (not shown) that generate messages to be processed by the enterprise service bus 107.
The user device 102 is adapted to send and receive data to and from the NAaaS middleware server 101. For example, the user device 102 sends a command to the NAaaS middleware server 101 to project an image of a presentation program document on at least one of a plurality of co-computing devices 103a-103n. The user device 102 has a display for viewing information provided by the enterprise service bus 107. For example, the user device 102 receives graphical data from the NAaaS middleware server 101 that lists a plurality of co-computing devices 103a-103n for display on the user device 102.
The user device 102 determines its position so that the user device 102 can interact with another user device 102 or the co-computing device 103 via the NAaaS middleware server 101. The user device 102 determines its own position information by using a GPS (global positioning system) circuit included in the device itself to determine its own position. To determine the location of the user device 102 indoors, the user device 102 uses radio frequency, ultrasonic signals or invisible light communication. For example, the user device 102 determines its position through a wireless access point based on measurements of received signal strength. The user device 102 accesses a database having a set of a MAC (media access control) address and a location on the Internet. To determine the location, the user device 102 reads the location corresponding to the access point MAC address from the database.
In another embodiment, the user device 102 performs a device discovery process that functions over the network 104 using a particular protocol such as SNMP, ICMP, Bonjour, and the like. For example, the user device 102 asks the NAaaS middleware server 101 to discover the device. The NAaaS middleware server 101 discovers a device using SNMP or ICMP protocol, and reports the discovered device to the user device 102 together with their IP (internet protocol) address and MAC (media access control) address.
Co-computing devices 103a-103n are devices associated with a particular location and / or a particular function. The co-computing device 103a-103n can be assigned to a conference room or to a conference. For example, a projector and an interactive whiteboard can be assigned to a selected conference room among a plurality of conference rooms in a building. Each of the co-computing devices 103a-103n is coupled to the network 104 via signal lines 113a-113n, respectively. The co-computing device 103 is any computing device having a memory and a processor. For example, the co-computing device 103 is a projector, a monitor, a television, an interactive whiteboard, a webcam, a microphone, a loudspeaker, a CD / DVD player, an electronic paper device, an electronic reader, a desktop computer, a tablet, a smartphone, or the like. obtain.
The co-computing device 103 is adapted to send and receive data to and from the NAaaS middleware server 101. For example, a projector in a conference room can receive a presentation program document from the NAaaS middleware server 101. In another example, a video conferencing device in the first location with a webcam, microphone and monitor captures a real-time audio-video synchronous communication data stream and delivers it through the enterprise service bus 107 in the NAaaS middleware server 101. Can be sent to another video conferencing device at the location of.
The NAaaS middleware server 101 is an arbitrary computing device having a memory and a processor, and is connected to the network 104 via the signal line 116. The NAaaS middleware server 101 has an enterprise service bus 107. The enterprise service bus is described in detail below with reference to Figure 2A.
Enterprise service bus 107 has software and routines that provide a standard interface with one or more networks of heterogeneous devices and their corresponding resource servers that are arranged to communicate independently of each other. In one embodiment, the enterprise service bus 107 provides launch assistance, routing (eg, content-based routing, static / dynamic routing, policy-based routing, rule-based routing), process choreography, service orchestration, and complexity. Perform one or more services, including event handling, security and management (eg monitoring, logging). The enterprise service bus 107 calls a method contained in the code in the NAaaS application service 106 that implements the service. For example, the enterprise service bus 107 authenticates users, registers device usage entries, stores media, analyzes media, indexes keywords related to user skills, and uses user queries with NAaaS application services. Instruct the database to search for user profiles with matching skills.
User devices 102a-102n or co-computing devices 103a-103n communicate with each other and send service requests through the enterprise service bus 107 using a particular messaging format over a particular communication protocol. The message format defines the structure and format of the message. For example, the message format includes SOAP (Simple Object Access Protocol), XML (eXtensible Markup Language), and the like. Communication protocols define a set of rules that govern syntax, semantics, and communication synchronization. For example, the communication protocols are FTP (File Transfer Protocol), HTTP (Hypertext Transfer Protocol), MQ (Message Queue), and HOP (Internet Inter-Orb). Protocol) etc. The enterprise service bus 107 and the NAaaS application service 106 are shown as being on separate servers, but in one embodiment they are on the same server.
The NAaaS application server 123 is an arbitrary computing device having a memory and a processor, and is connected to the network 104 via the signal line 124. The NAaaS application server 123 has the NAaaS application service 106, which is a set of implementation services extracted as an application and assembled by the enterprise service bus 107 in order to provide a higher level of service. The NAaaS application service 106 is described in detail below with reference to FIG. 2B.
The web server 120 is an arbitrary computing device having a memory and a processor, and is connected to the network 104 via the signal line 122. The web server 120 has a user interface engine 121. Although the web server 120 is shown as a separate server in FIG. 1A, in some embodiments the user interface engine 121 may be stored in the user equipment 102 or function as a stand-alone application.
The user interface engine 121 is software and routines that generate graphical data to display the user interface. In one embodiment, the user interface engine 121 is a set of instructions that can be executed by a processor to provide the functionality described below that produces graphical data that displays the user interface. In another embodiment, the user interface engine 121 is stored in memory and is accessible and executable by the processor.
The user interface engine 121 receives a request to generate graphical data for displaying information in order to control the co-computing device 103. For example, the user interface engine 121 generates graphical data for displaying a web page listing co-computing devices 103 or features associated with each co-computing device 103 available at a particular location. The user inputs the information, and the user interface engine 121 sends the information to the enterprise service bus 107 to determine the action to be performed. For example, if the user equipment 102 sends an instruction to the projector to project an image contained in the request, the user interface engine 121 sends the request to the enterprise service bus 107. The enterprise service bus 107 sends the request to the projector and commands the NAaaS application service 106 to perform other actions in response to the request. Figure 3-14 has an exemplary user interface.
In another embodiment, the user interface engine 121 receives a request to generate graphical data for displaying the search user interface. For example, the user interface engine 121 produces graphical data for displaying a web page with a text box for entering a query for one or more words. The user enters a query, the user interface engine 121 sends the query to the enterprise service bus 107, and the enterprise service bus 107 sends the request to the NAaaS application service 106. The search user interface may have an input for entering a search query by the requester. The search query may include textual information, visual information or auditory information.
The NAaaS application service 106 reads matching search results from one or more resource servers and sends the search results to the enterprise service bus 107. The enterprise service bus 107 transmits the search result to the user device 102. In one embodiment, the user interface engine 121 transmits one or more profiles and one or more media types to the requester via the enterprise service bus 107. An example of a search user interface is described in detail below with reference to Figure 9-10.
Figure 1B shows another high-level block diagram of System 110 implementing a service-oriented architecture that supports complex event handling and business activity monitoring. Illustrated embodiments of system 110 include user equipment 102a-102n as the first layer, enterprise service bus 107 as the second layer, and NAaaS application services 106, co-computing equipment 103a-103n as the third layer, and their corresponding counterparts. It has a resource server 105a-105n. Each of the resource servers 105a-105n stores a copy of the media type and is associated with the corresponding co-computing device 103a-103n whenever co-computing device 103a-103n executes a transaction in response to a request. Index the media types you have. For example, a projector resource server stores projected presentation program documents, a video conferencing resource server stores video conferencing video recordings, and an interactive whiteboard server stores interactive whiteboard images.
The enterprise service bus 107 layer processes the requests coming from the user equipment 102a-102n layer and sends those requests to the NAaaS application service 106 for processing, as well as the co-computing equipment 103a-103n and their corresponding resource servers. Relay to 105a-105n. In one embodiment, the enterprise service bus 107 layer has one or more ports that provide an interface to user applications on user equipment 102a-102n that connects to the enterprise service layer 107 to send messages and receive responses. In another embodiment, the enterprise service bus 107 layer has one or more ports to communicate with the NAaaS application service 106 layer and the layer having the co-computing device 103a-103n and their corresponding resource servers 105a-105n. Has. In one embodiment, the port on the enterprise service bus 107 may be of a particular port type that only processes messages and communications of a particular message format and communication protocol of the user application. In another embodiment, the port on the enterprise service bus 107 may be of a general purpose port type that includes a general purpose interface with the enterprise service bus 107 and can handle any combination of message formats and communication protocols.
<Enterprise Service Bus> See Figure 2A for a more detailed example of Enterprise Service Bus 107. FIG. 2A is a block diagram of a server 101 having a processor 240, a memory 245, a communication unit 250, and an enterprise service bus 107.
The processor 240, memory 245, communication unit 250 and enterprise service bus 107 are communicably coupled to bus 220. Bus 220 includes one or more buses including ISA (industry standard architecture) bus, PCI (peripheral component interconnect) bus, USB (universal serial bus) or other conventionally known buses that provide similar functions. May be represented.
The processor 240 includes a logical operation unit, a microprocessor, a general-purpose control unit, or a specific other processor array that performs calculations and provides electronic display signals to a display device. Processor 240 is coupled to bus 220 to communicate with other components of server 101 via signal line 231. The processor 240 may have a variety of computing architectures, including a complex instruction set computer (CISC) architecture, a RISC (reduced instruction set computer) architecture, or an architecture that implements a combination of instruction sets. .. Although Figure 2A shows only a single processor, it may include multiple processors. Processing power may be limited to image display support, image capture and transmission. The processing power may be sufficient to perform more complex tasks, including various types of feature extraction and sampling. It will be apparent to those skilled in the art that other processors, operating systems, sensors, displays and physical configurations are possible.
Memory 245 stores instructions and / or data that can be executed by processor 240. Memory 245 is coupled to bus 220 to communicate with other components of NAaaS middleware server 101 via signal line 233. The instructions and / or data may have code that performs any and / or all of the techniques described herein. The memory 245 may be a DRAM (dynamic random access memory) element, a SRAM (static random access memory) element, a flash memory, or a specific other memory element conventionally known. In one embodiment, the memory 245 is a non-volatile memory, or similar permanent storage device, and a medium hard disk drive, floppy disk drive, CD-ROM device, DVD-ROM device, DVD-RAM device, DVD-RW device, flash. It also includes media such as memory devices or certain other mass storage devices that store information more permanently than previously known.
The communication unit 250 is hardware that receives and transmits data from the network 104 and other processing systems by connecting to the processor 240. The communication unit 250 receives data such as an image, video or document from a plurality of user devices 102a-102n. The communication unit 250 receives a request for media related to a specific subject from the web server 120. Communication unit 250 also receives requests for one or more media types from web server 120. The communication unit 250 transmits information to a plurality of co-computing devices 103a-103n. For example, the communication unit 250 transmits graphical data for displaying an image, document or video. The communication unit 250 is coupled to bus 220 to communicate with other components of the NAaaS middleware server 101 via signal line 235.
In one embodiment, the communication unit 250 has a port for direct physical connection to a user device 102, a co-computing device 103, a resource server 105, a NAaaS application server 123, a web server 120 or another communication channel. For example, the communication unit 250 has an RJ14 or similar port for wired communication with the ESB107. In another embodiment, the communication unit 250 uses one or more wireless communication methods such as IEEE802.11, IEEE802.16, Bluetooth® or another suitable wireless communication method to use the user device 102 or It has a wireless communicator for exchanging data with any other communication channel.
In yet another embodiment, the communication unit 250 is an SMS (short messaging service), MMS (multimedia messaging service), HTTP (hypertext transfer protocol), direct data connection, WAP, email or other suitable type of electronic communication. It has a cellular communication transceiver that transmits and receives data via a cellular network such as. In yet another embodiment, the communication unit 250 has a wired port and a wireless communicator. The communication unit 250, as understood by those skilled in the art, to the network to distribute files and / or media objects using standard network protocols such as TCP / IP, FTP, HTTP, HTTPS and SMTP. Other conventional connections are also provided.
The data storage 255 is a non-temporary memory for storing data for the function of the NAaaS middleware server 101. Data storage 255 is coupled to bus 220 to communicate with other components of server 101 via signal line 237.
In one embodiment, the data storage 255 stores a library of communication protocols and message formats for protocol conversion. The communication protocol and message format stored in the data storage 255 are, for example, SOAP (Simple Object Access Protocol), XML (eXtensible Markup Language), JSON (Java (registered trademark) Message Service), FTP (File Transfer Protocol), HTTP ( Hypertext Transfer Protocol), MQ (Message Queue), HOP (Internet Inter-Orb Protocol), REST (Representational State Transfer), JSON (JavaScript (registered trademark) Object Notation), DCOM (Distributed Component Object) Model) etc. are included. In some embodiments, the protocol adaptation engine 205 accesses the protocol and message format and translates the request into a protocol and message format compatible with the receiver.
The enterprise service bus 107 includes a workflow engine 201, a device management engine 203, a protocol adaptation engine 205, a message conversion engine 207, and a message extension engine 2093. These components of the enterprise service bus 107 are communicatively coupled to each other via the bus 220.
Workflow engine 201 is software and routines that perform basic enterprise service bus functions and handle communications between components of NAaaS middleware server 101 and other components of system 100. In one embodiment, the workflow engine 201 receives a request, routes the request, performs several steps, and NAaaS application service 106 and co-computing device 103 and their corresponding resource servers 105a-105n. A set of instructions that can be executed by the processor 240 to interact with and provide the functionality described below that meets that requirement. In either embodiment, the workflow engine 201 is adapted to coordinate and communicate with the processor 240, the communication unit 250 and other components of the NAaaS middleware server 101 via the signal line 222.
The workflow engine 201 receives the request, processes the request, and communicates with the NAaaS application service 106 and the co-computing device 103 and their corresponding resource servers 105a-105n to complete the request. For example, the workflow engine 201 receives a request from the user device 102 to project an image onto one of the co-computing devices 103. The workflow engine 201 interacts with the user management service 210, which is part of the NAaaS application service 106, to command the device usage analysis service 212, the user identifier of the user associated with the user device 102, the date and time of the request, and the user device. Instructed to record the IP address of 102, copy the image sent by the user to the repository by interacting with the media repository service 206, perform optical character recognition of the image, and interact with the media analysis service 208. By indexing keywords into the image, the user associated with the user device 102 is authenticated and transmitted to the co-computing device 103 to project the image.
The workflow engine 201 receives the information via the communication unit 250 and sends the information to the appropriate component of the enterprise service bus 107 or the component of the system 100. In one embodiment, the workflow engine 201 receives a request to send media to the co-computing device 103. The workflow engine 201 can receive one or more types of media. The workflow engine 201 routes or transmits media to the co-computing device 103. For example, the workflow engine 201 receives an image from a user device 102 (eg, a smartphone) for display by a co-computing device 103 (eg, a projector or monitor).
In another embodiment, the workflow engine 201 receives a request from the web server 120 for a media list of a particular area or subject. The workflow engine 201 sends the request to the NAaaS application service 106 to perform a search for data storage 268 based on the search terms contained in the request. When the NAaaS application service 106 returns a matching result, the workflow engine 201 sends the result to the requester in the user apparatus 102 that submitted the request to the web server 120. In one embodiment, in response to determining the context of the request, the workflow engine 201 determines one or more resource servers 105 to which the request is directed, based on the request matching the global index. Workflow engine 201 accesses the global index stored in data storage 268.
The requester may provide search queries for one or more media types related to the subject. For example, the requester may request to discover media related to Linux®. The search query may have text. For example, the requester gives the word "Linux" to the text input box of the search user interface generated by the user interface engine 121 of the web server 120. The search query may have visual information. For example, the requester may give an image or video of Tux, a Linux mascot. The search query may have voice information. For example, the requester may provide audio audio of the voice saying the word "Linux". The workflow engine 201 sends a search query to the NAaaS application service 106 for processing.
In another embodiment, the workflow engine 201 receives the request, sends the request to the protocol adaptation engine 205, and orders the protocol adaptation engine 205 to send the request to the search engine 221. Here, the search engine 221 is one of the NAaaS application services 106. In one embodiment, the workflow engine 201 is an API (Application Programming) associated with a first device of a first communication protocol for conversion. Receive a request from Interface). In one embodiment, the request is buffered in the message queue of the enterprise service bus 107, and the workflow engine 201 periodically polls the message queue to process the request in the queue. Workflow engine 201 determines the context of the request. For example, HTTP requires, for example, "category" on the first line. "SEARCH" gives the workflow engine 201 the context that the request is a search for one or more resource servers. The second line is, for example, "service". Video gives workflow engine 201 the context that the request is for one or more resource servers associated with storing video recordings. The third line is, for example, "type". The "video device X" further provides the workflow engine 201 with the context that one or more resource servers are associated with the "video device X" type. The fourth line is, for example, "arguments". {Userid: U_0613902, URL: 10.154.25.9, date: 11/21 / 2012, filename: iOS} further limits the context for workflow engine 201. In situations where the protocol needs to be translated to communicate with the resource server 105, the workflow engine orders the protocol adaptation engine 205 to translate the request appropriately.
The device management engine 203 is a code and routine that determines the location of one or more devices, the functions associated with one or more devices, and the state of one or more devices. In one embodiment, the device management engine 203 is a set of instructions that can be executed by a processor to provide the functions described below that determine the position, function, and state associated with one or more types of devices. In another embodiment, the device management engine 203 is stored in memory 245 and is accessible and executable by processor 240. In either embodiment, the device management engine 203 is adapted to coordinate and communicate with the processor 240, the communication unit 250, the control unit 202 and other components of the NAaaS middleware server 101 via signal line 223.
In one embodiment, the device management engine 203 communicates with the NAaaS application service 106 to locate one or more types of devices. For example, the device management engine 203 receives a query from the user device 102, finds the position of the user device 102, and finds the position of the co-computing device 103. The device management engine 203 interacts with a location service that is part of the NAaaS application service 106 to match the location of the user appliance 102 with a known location. In another embodiment, the device management engine 203 transmits the location of the co-computing device 103 to the user device 102.
In one embodiment, the device management engine 203 performs a device discovery process that functions over the network 104 using specific protocols such as SNMP, ICMP, Bonjour, and so on. For example, the device management engine 203 uses SNMP or ICMP protocol to discover a device together with an IP (internet protocol) address, a MAC (media access control) address, and the like of the device. In another embodiment, the device management engine 203 determines the position information of the device by using a GPS (global positioning system) circuit included in the device itself. In another embodiment, when the device uses radio frequency, ultrasonic signals or invisible light communication, the device management engine 203 determines the device position indoors. For example, the device determines its position through a wireless access point based on measurements of received signal strength. The device management engine 203 uses MAC (media access). control) Access a database that has a set of addresses and locations on the Internet. To determine the location, the device management engine 203 reads the location corresponding to the access point MAC address from the database.
In one embodiment, the device management engine 203 receives the location of the user device 102 from the location service 299, and the device management engine 203 is located at a specific location in the device inventory service 265 that is part of the NAaaS application service 106. Request to provide a list of. The device management engine 203 then requires the device management service 212, which is part of the NAaaS application service 106, to filter the list of devices based on the availability of the device.
In one embodiment, the request from user device 102 specifies a location associated with co-computing device 103. For example, a user is planning to give a presentation to people in the first conference room in Tokyo, Japan from the second conference room in California, USA, so the equipment in the first conference room I want to know about. In another embodiment, the user wants to generate a calendar event at a location and know the list of devices available at that location. In one embodiment, the location service 299 matches the location associated with the request with the location known from the data storage 268 of the NAaaS application service 106. The location identifier is transmitted by the location service 299 to the device management engine 203. In another embodiment, in response to device management engine 203 using the location identifier of user device 102 to query device inventory service 265, device inventory service 265 provides a list of all devices in network 104. Provided to management engine 203. In yet another embodiment, the device management engine 203 queries the device management service 212 to limit the list of available devices to a particular area, and the device management service 212 returns information to the device management engine 203. For example, the location of the available projectors from the list of co-computing devices 103 can be identified as being in the first conference room in a building in Tokyo, Japan.
In one embodiment, the device management engine 203 determines a list of functions associated with each of the plurality of devices. For example, the feature list can be powered on, powered off, projected, zoomed, enhanced, auto-focused, printed, bidirectional video recording and transmission, bidirectional audio recording and transmission, language translation, text to audio conversion, audio to audio. Includes conversion to text, etc.
In one embodiment, the device management engine 203 determines the current state of one or more devices. For example, the state of a projector in a conference room can be determined to be in use, out of order, free, powered off, and so on. In another embodiment, the device management engine 203 determines that one or more devices reserved by the user are free for a period of time. In one embodiment, the device management engine 203 interacts with the device management service 212, which is part of the NAaaS application service 106, to update the device state.
In one embodiment, the device management engine 203 receives an access control list of calendar events from the work flow engine 201 to determine one or more user devices 102 associated with people participating in the calendar event. The device management engine 203 determines one or more user devices 102 by querying the device inventory service 265 using an access control list. For example, the device management engine 203 uses the user identifier in the access control list to query the device inventory service 265 for a list of devices associated with the user participating in the calendar event. The device inventory service 265 provides the device management engine 203 with a list of device identifiers for one or more user devices 102 associated with the user participating in the calendar event.
In one embodiment, the device management engine 203 determines the position of one or more user devices 102 and, as a result, the position of the user carrying the user device 102 before the start of the calendar event. For example, the device management engine 203 determines the position of the user device 5 minutes before the start of the calendar event. In another embodiment, the device management engine 203 locates one or more users within a threshold distance range from the venue of the calendar event. For example, the first user may be in a nearby building near the venue and the second user may be in road traffic five miles away from the venue where the calendar event is scheduled. The device management engine 203 interacts with the device inventory service 265 and the location service 299 in the NAaaS application service 106 to store the determined location information.
In one embodiment, when it is determined that all users in the access control list are present at the venue, the device management engine 203 interacts with the notification service 269 to suggest that a calendar event be initiated. To generate. In another embodiment, if it is determined that at least one user in the access control list does not exist at the venue, the device management engine 203 interacts with the notification service 269 to generate a notification that delays the start of the event. To do.
The protocol adaptation engine 205 is software and routines that adapt and transform protocols. In one embodiment, the protocol adaptation engine 205 is a set of instructions that can be executed by a processor to provide the functions described below for adapting and transforming a protocol. In either embodiment, the protocol adaptation engine 205 is adapted to coordinate and communicate with the processor 240, the communication unit 250 and other components of the NAaaS middleware server 101 via signal line 224.
In one embodiment, the protocol adaptation engine 205 receives a request from the workflow engine 201 in the first communication protocol and performs adaptation and conversion to adapt the communication protocol to the requesting receiver. For example, the protocol adaptation engine 205 receives an HTTP request from the user device 102 and "turns off" the projector. The projector communicates using TCP. Protocol adaptation engine 205 adapts HTTP requests to be forwarded to TCP endpoints and translates "turns off" HTTP requests into the corresponding TCP commands.
In one embodiment, the protocol adaptation engine 205 identifies one or more types of second communication protocols associated with one or more resource servers. For example, in the protocol adaptation engine 205, the first resource server 105a related to the projector device uses TCP (Transmission Control Protocol) as the communication protocol, and the second resource server 105b related to the interactive whiteboard uses SNMP as the communication protocol. (Simple Network Management Protocol) is used, etc. are identified. In another embodiment, the protocol adaptation engine 205 stores one or more protocols in data storage 255 for each of one or more resource servers 105a-105n.
In one embodiment, the protocol adaptation engine 205 makes one or more second types of requests from the first communication protocol associated with one or more co-computing devices 103a-103n and resource servers 105a-105n, respectively. Convert to each of the communication protocols. For example, the protocol adaptation engine 205 translates the request from the HTTP protocol into a TCP protocol that can be understood by the first resource server 105a associated with the projector device, and translates the HTTP protocol into a second resource associated with the interactive whiteboard. Convert to an SNMP protocol that server 105b can understand, and so on. In yet another embodiment, the workflow engine 201 receives the request to be passed to the protocol adaptation engine 205, and the protocol adaptation engine 205 sends the translated request to the message queue in the enterprise service bus 107. From the message queue, the translated requests are routed to the appropriate resource servers 105 and their APIs.
The message conversion engine 207 is software and routines that convert message formats. In one embodiment, the message conversion engine 207 is a set of instructions that can be executed by processor 240 to provide the functions described below for converting message formats. In either embodiment, the message conversion engine 207 is adapted to coordinate and communicate with the processor 240, the communication unit 250 and other components of the NAaaS middleware server 101 via the signal line 225.
In one embodiment, the message conversion engine 207 converts the message format in the request from the user device 102 to the co-computing device 103. For example, the message conversion engine 207 converts an XML (eXtensible Markup Language) payload into JSON (JavaScript Object Notation).
Continuing with the above example, the request has a JSON message to be passed to the message translation engine 207 and the message extension engine 209.<maths num="1"><img file="JP2014106979A_D0001.tif" /></maths>
Here, "naaas protocol" is the web API version of the platform, "PJS" is the projector device, "SOLEIL" is the type of projector, "url" is the device IP address of the projector, and "ricohuserid_opt" is. The ID of the user who operates the device. In one embodiment, the message conversion engine 207 converts the JSON message to XML.
In another embodiment, the message translation engine 207 translates the message format to query the resource server 105. For example, the message conversion engine 207 identifies a request having a JSON (JavaScript Object Notation) message standard and converts JSON to XML (eXtensible Markup Language) for the first resource server 105a. When a resource is associated with a resource server that uses a different message format, the message translation engine 207 translates the message into multiple formats.
The message extension engine 209 is software and routines that extend the message. In one embodiment, the message extension engine 209 is a set of instructions that can be executed by the processor 240 to provide the functionality described below that extends the message. In either embodiment, the message expansion engine 209 is adapted to coordinate and communicate with the processor 240, the communication unit 250 and other components of the NAaaS middleware server 101 via signal line 226.
The message expansion engine 209 can extend the message by adding information that did not originally exist in the request in order to interact with the co-computing device 103. For example, continuing with the above example, if the user wants to project an image on a projector that requires additional credentials, the message extension engine 209 uses the user identifier in the request to add something like a password from data storage 255. Receive credentials and add to the message. When the message is ready, the message extension engine 209 sends the message to the workflow engine 201 in the enterprise service bus 107. The workflow engine 201 sends a message to the co-computing device 103 or the NAaaS application service 106 in order to read the media, the user profile, etc. from the resource server 105.
<NAaaS Application Service 106> FIG. 2B shows an embodiment of NAaaS Application Server 123 having NAaaS Application Service 106, Processor 262, Memory 264, Communication Unit 266, and Data Storage 268. Since some components of NAaaS Application Server 123 have the same functionality and format as described above with reference to FIG. 2A, similar reference codes and terms are used to indicate similar functionality. For example, the communication bus 220, the processor 240, the memory 225 and the communication unit 250 are similar to those described above with reference to FIG. 2A, so they are not duplicated.
In one embodiment, the data storage 260 stores device usage entries, media indexes, media and user profiles. The device usage entry describes a transaction executed by the co-computing device 103 and a user identifier associated with the transaction. In some embodiments, the device use entry has multiple user identifiers. For example, a device usage entry has a user identifier of a first user sending a request from a user device 102 to project an image from a presenter, eg, a co-computing device 103, and a user identifier of the author of the media. Device usage entries include the type of request (eg, projection, power on, power off, etc.), the type of device involved in the exchange of requests and services (eg, smartphone, projector, etc.), the IP address of the device, and the device. Indicators of resource consumption (eg, time, power, etc.), type of function of the device used (eg, automatic focusing, expansion, imaging, etc.), type of media exchanged (eg, presentation program document, etc.) Has text documents, table calculation documents, video recordings, audio recordings, images, etc.).
The data storage 260 stores the media index. In one embodiment, the media index has a record for each media, including metadata for each media. For example, the metadata may have pointer data for accessing the original media from the cloud (eg, the entire presentation instead of just an image of a slide in the presentation), the author of the media, and so on. In one embodiment, the metadata also has results from the media analysis service 217, such as a text version of the image. In one embodiment, the data storage 260 also stores a copy of the media included in the request. For example, the data storage 260 receives a copy of the media from the media repository service 214.
The data storage 260 stores the user profile. In one embodiment, the user profile has a record for each user. Each user's record is a user's graphic representation (eg, a user's photo), name, title, user-related keywords, user-related media (eg, user-created media or user-published media). , User-related presentations, etc. In one embodiment, the keywords associated with the user have a list of keywords. The NAaaS application server 106 is an individual API (application programming) assembled by the enterprise service bus 107 to provide a higher level of service. A collection of low-level services that have an interface). For example, a "projection" command sent by user equipment 102 to enterprise service bus 107 calls a module in NAaaS application service 106. The module authenticates the user device, identifies the text in the media, and stores the document in data storage 260. Services do not communicate with each other. Instead, the service receives instructions from the enterprise service bus 107, completes the requested task, stores the data in data storage 260 where appropriate, and returns the information to the enterprise service bus 107.
The NAaaS application server 106 is a collection of low-level services having individual APIs (application programming interfaces) assembled by the enterprise service bus 107 to provide higher-level services. For example, a "projection" command sent by user equipment 102 to enterprise service bus 107 calls a module in NAaaS application service 106. The module authenticates the user device 102, identifies the text in the media, generates a database index, and stores the document in data storage 268 along with the database index. Services do not communicate with each other. Instead, the service receives instructions from the enterprise service bus 107, completes the requested task, stores the data in data storage 268 where appropriate, and returns the information to the enterprise service bus 107.
In one embodiment, the services are user management service 211, device inventory service 265, location service 299, device management service 212, device usage analysis service 213, media repository service 215, media analysis service 217, indexing service 287, calendar module. It has 286, billing service 267, search engine 221, server maintenance service 227, and notification service 269. Those skilled in the art will appreciate that the enterprise service bus 107 may have additional services to complete the request.
User management service 211 is software and routines that register users on network 104 and perform user authentication. In one embodiment, the user management service 211 is a set of instructions that can be executed by processor 262 to provide the functionality described below for registering users. In another embodiment, the user management engine 211 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the user management service 211 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via signal line 271.
The user management service 211 receives the user information and generates a user profile. For example, user management service 211 receives name, position, job code, email address, phone number, username, password, user's retinal scan, user's fingerprint swipe, and so on. The user management service 211 generates a user login certificate (credential) based on the registration information, and stores the login certificate in the data storage 268 for the user. User management service 211 associates a unique identifier with a user. This can be a user's first and last name, a user's email address, a series of numbers, an employee number, and so on. Unique identifiers are used to track user activity in the system.
In one embodiment, the login certificate is generated as a single sign-on that uses the same login certificate to provide access control to multiple independent devices and services with one property. For example, a user logs in with a user certificate and gains access to all registration services without being prompted to log in for each of all registration services. In another example, the user logs in to different types of devices, such as projectors, interactive whiteboards, etc., with the same user certificate. In one embodiment, User Management Service 211 stores a user's login certificate as an organized recordset with a hierarchical structure within a Lightweight Directory Access Protocol (LDAP) server (not shown) associated with the business. User management service 211 also manages user preferences received during registration or at other times. For example, a user can upload an image to associate with a login certificate.
In one embodiment, the user device 102 and / or the co-computing device 103 uses login information that is different from the login information used to authenticate the user in the system 100, and the user management service 211 uses the user or management. Receive login information from a person and add that information to the user profile. For example, a user's laptop has a 4-digit code that must be entered before the user can access the contents of the laptop. User management service 211 adds information to the user profile.
User management service 211 performs authentication. For example, the user enters a login certificate in the user interface of the user device 102. The user device 102 sends the login certificate to the enterprise service bus 107. Enterprise service bus 107 requires user management service 211 to authenticate the user based on the login certificate. The user management service 211 identifies the user associated with the user device 102, compares the login certificate with the user profile, and returns a confirmation that the login certificate is correct or a notification that a login error has occurred to the enterprise service bus 107. .. The confirmation includes user identification information associated with the user.
In one embodiment, if the login request for authentication does not have the correct username and password, the login request is rejected. In another embodiment, the user management service 211 is used in account recovery when a user forgets his or her username and / or password. In some examples, user management service 211 detects potential fraudulent authentication by analyzing ancillary information contained in the login request. For example, if the username associated with a login request is the username of a user who is no longer employed by the company or is suspected to be a robot, User Management Service 211 identifies the login request as a potential fraud. User management service 211 detects potential fraudulent authentication by comparing ancillary information with the user's past authentication information. For example, if the login request for authentication originates from a country or device (eg, an unregistered device) that the user has never previously attempted to send a login request to, then the user management service 211 has a latent login request. Identify as fraudulent. In one embodiment, potential fraudulent authentication attempts have unsuccessful authentication attempts.
The device inventory service 265 is a code and routine that registers the device with the network 104. In one embodiment, the device inventory service 265 is an instruction set that can be executed by the processor 262 to provide the function described below for registering the device. In another embodiment, the device inventory service 265 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the device inventory service 265 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via signal line 293.
The device inventory service 265 receives a request from the workflow engine 201 to add, remove, and update devices in network 104. The device inventory service 265 receives a request to register one or more types of user devices 102a-102n and one or more types of co-computing devices 103a-103n. In one embodiment, the device inventory service 265 registers the device type and device IP address (or MAC address) in network 104 to generate a device-specific device identifier. For example, a projector with model number 1042 is registered and assigned a device identifier such as "prj1042u1". In one embodiment, the device inventory service 265 receives a request to register one or more types of user devices 102a-102n under a particular user name stored in data storage 268. For example, a user can register a personal device such as a tablet PC, smartphone or the like and associate the device with a form of identification such as an employee identifier, a user identifier or the like. In one embodiment, the device inventory service 265 maps the location to the device by importing the location identifier provided by the location service 299. In another embodiment, the device inventory service 265 receives a request to register one or more types of co-computing devices 103a-103n for use at a particular location or within a particular spatial range. For example, a projector can be registered for use on the ground floor of a building, and an interactive whiteboard can be registered for use in a conference room. The first floor of the building and the conference room each have a location identifier associated with them. The device inventory service 265 stores device registration information (for example, IP address, device identifier, etc.) in the data storage 268.
In another embodiment, the device inventory service 265 identifies a device associated with a location using a location identifier generated by the location service 299 described in detail below. The location identifier is received from the device management engine 203 in the enterprise service bus 107 for storage in data storage 268. For example, a projector can be registered in a conference room in a building in Tokyo, Japan, which has a location identifier. Users can access the projector from San Francisco, California, using a login certificate that indicates that the user is a registered user. In yet another embodiment, the device inventory service 265 receives a request to update the information associated with the registered device. For example, the user can change the name of the projector, the location of the interactive whiteboard, the firmware version of the video conferencing device, and so on.
Location services 299 are codes and routines that provide and store location information for one or more types of devices. In one embodiment, location service 299 is a set of instructions that can be executed by processor 262 to provide a feature described below that stores device location information. In another embodiment, location service 299 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, location service 299 is adapted to coordinate and communicate with processor 262 and communication unit 266 via signal line 298.
In one embodiment, the device management engine 203 of the enterprise service bus 107 interacts with the location service 299 to store location information, including names, geographic coordinates, and so on. In another embodiment, the location service 299 receives a request to register the location before the device is registered or assigned to the location. For example, a user may register a new branch location in Singapore before another user from Menlo Park, California can send media to a device registered in Singapore location.
Device management service 212 is a code and routine that reserves devices in network 104 and grants access to external devices. In one embodiment, the device management service 212 is an instruction set that can be executed by the processor 262 to provide a function described below that reserves the device. In another embodiment, the device management service 212 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the device management service 212 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via the signal line 272.
In one embodiment, the device management service 212 receives a request from the device management engine 203 to reserve one or more types of co-computing devices 103a-103n shared by a group of people, eg, employees of a company. .. For example, an employee who is a user can temporarily reserve a projector, interactive whiteboard, etc. under his username or user identifier for use at a calendar event (eg, for a business meeting). In another example, the employee, who is the user, can supply the device identifier along with the user identifier to reserve the device. The device management engine 203 requests the users of the group to access one or more types of co-computing devices 103a-103n registered in advance using the user's login certificate generated by the user management service 211. to approve. For example, a user accesses a co-computing device 103a-103n, such as a projector, a webcam, an interactive whiteboard, etc., using one and the same username and password.
In one embodiment, the device management service 212 grants access to one or more types of co-computing devices 103a-103n reserved for a calendar event. For example, the device management service 212 grants access to the projector in the "conference room 4C" reserved for the 10AM calendar event "Staff Meeting". In another embodiment, the device management service 212 receives confirmation from the organizer of the calendar event, which is the user, via the device management engine 203, and co-computes at the start time (or end time) indicated by the calendar event. Turn on (or turn off) and connect (or disconnect) devices 103a-103n.
The device usage analysis service 213 is software and routines that record device usage entries related to requests within network 104. In one embodiment, the device usage analysis service 213 is an instruction set that can be executed by processor 262 to provide a later function of recording device usage entries. In another embodiment, the device usage analysis service 213 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the device usage analysis service 213 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via signal line 273.
The device usage analysis service 213 receives the user identifier associated with the request and the external request and records the metadata associated with the request as a device usage entry. If the user associated with the request is different from the media author, the device use entry has the user identifiers of both the presenter and the media author. For example, a doctor gives a lecture on a medical patient to a trainee at a hospital by using a slide transmitted from the doctor's user device 102 (eg laptop) to a co-computing device 103 (eg projector). Whenever the doctor wants the projector to display the slide, the doctor sends a request from the laptop to the projector to display the image of the slide. Enterprise service bus 107 sends the request to user management service 211. The user management service 211 identifies the user associated with the user apparatus 102. The enterprise service bus 107 receives the authentication confirmation and user identity from the user management service 211, and sends the request and user identifier to the device usage analysis service 213. Device usage analysis service 213 records device usage entries. In one embodiment, the device usage entry is the user identifier of the user associated with the user device 102, the author of the media (if different), the set of actions performed by the co-computing device 103, the unique device of the co-computing device 103. It has an identifier and a unique identifier (or metadata associated with the media) that references the media stored in the data storage 268.
The media repository service 215 is a code and routine that stores the media associated with the request in the data storage 268. In one embodiment, the media repository service 215 is a set of instructions that can be executed by processor 262 to provide the functionality described below for storing media. In another embodiment, the Media Repository Service 215 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the media repository service 215 is adapted to cooperate and communicate with the processor 262 and the communication unit 266 via the signal line 275.
In some embodiments, the co-computing device 103 lacks a back-end server that stores the media. In another embodiment, the data storage 268 has a copy of the media, eg, an image from a PowerPoint presentation, in the request. In these examples, the media repository service 215 receives a request with media from the enterprise service bus 107. The media repository service 215 generates a unique identifier associated with the media and stores the media in the data storage 268. In one embodiment, the media repository service 215 receives one or more types of media from the workflow engine 201, associates them with the device identifier of the co-computing device 103, and stores the media and the associated device identifier in the data storage 268. In another embodiment, the media repository service 215 receives the device identifier along with the user identifier of one or more types of media.
Media analysis service 217 is a code and routine that analyzes media. In one embodiment, the media analysis service 217 is a set of instructions that can be executed by processor 262 to provide the functions described below for analyzing media. In another embodiment, the media analysis service 217 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the media analysis service 217 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via signal line 277.
The media analysis service 217 receives the media associated with the request from the enterprise service bus 107. For example, media analysis service 217 receives an image captured from a slide. Media analysis service 217 applies optical character recognition to the image to identify the text associated with the image. Media analysis service 217 stores text in data storage 260. In one embodiment, the media analysis service 217 converts content from an image, including handwritten, typed or printed text, into machine-coded text.
In one embodiment, the media analysis service 217 receives video and / or audio data. The media analysis service 217 may identify the user associated with the video and / or audio data received from the video conferencing device. For example, the video may include a doctor giving a presentation in front of an interactive whiteboard in the example above. The media analysis service 217 may identify the doctor based on performing face recognition on video data or voice recognition on audio data. In another embodiment, the media may be provided by an audience member attending the event. Media analysis service 217 determines the event. For example, media analysis service 217 determines the presentation. Media analysis service 217 determines the audience members of the event. In some embodiments, the media analysis service 217 determines the attendance of the audience members based on the location of the user device 102. Media analysis service 217 determines which audience members attended the event. In one embodiment, the media analysis service 217 determines which audience members attended the event based on performing facial recognition on video data or voice recognition on audio data.
In one embodiment, the media analysis service 217 receives video data or presentation of the event from the enterprise service bus 107. For example, a video contains a person in front of an interactive whiteboard to present information. Media analysis service 217 may perform optical character recognition for one or more video frames. For example, the media analysis service 217 performs optical character recognition on the information presented on the interactive whiteboard. In another embodiment, the media analysis service 217 receives audio data. Media analysis service 217 may identify text from audio data by using voice-text technology.
Indexing service 287 is software and routines that generate one or more database indexes for multiple resource servers 105a-105n. In one embodiment, indexing service 287 is a set of instructions that can be executed by processor 262 to provide the ability described below to generate a database index. In another embodiment, the indexing service 287 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, indexing service 287 is adapted to coordinate and communicate with processor 262 and communication unit 266 via signal line 245.
In one embodiment, the indexing service 287 determines one or more types of media stored on one or more resource servers 105. One or more resource servers 105 relate to one or more types of co-computing devices 103. For example, the resource server 105 associated with the co-computing device 103 (eg, a projector) stores slides transmitted from the user device 102 (eg, a laptop) to the co-computing device 103. Indexing service 287 identifiers metadata related to one or more types of media and generates a database index in database storage 268. The database index holds a reference pointer to the location where the metadata and one or more types of media related to the metadata are stored. In one embodiment, indexing service 287 stores a database index in data storage 268.
Indexing service 287 generates a database index based on the cardinality of the metadata. Concentration represents the specificity of the metadata. The lower the concentration, the more duplication present in the metadata. In one embodiment, the indexing service 287 identifies a high concentration of metadata (eg, user identifier, username, employee identifier, email address, title, specific keywords, etc.) to generate the index. To do. For example, indexing service 287 identifies a user identifier associated with the user who sent the slide to the projector and generates a database index that holds the user identifier and a pointer to the location where the slide associated with that user identifier is stored. To do. In another embodiment, the indexing service 287 identifies standard density metadata (eg, device name, device type, device identifier, IP address, media type, location, event date, etc.). For example, the indexing service 287 identifies a device identifier associated with a projector that projects a slide and generates a database index that holds a device identifier and a pointer to a location where the slide associated with the device identifier is stored. In yet another embodiment, indexing service 287 identifies low concentrations of metadata (eg, current employees, former employees, associate employees, senior employees, etc.). For example, indexing service 287 identifies that a slide was projected by an employee who is a quasi-employee and holds a database index that points to a skill level and where slides associated with that skill level are stored. To generate.
In one embodiment, the workflow engine 201 receives the text identified from the media analysis service 217 that analyzed the media for the workflow engine 201. For example, media analysis service 217 extracts text from video and / or audio data transmitted by workflow engine 201. Workflow engine 201 sends text to indexing service 287. The indexing service 287 identifies the keywords in the media, indexes the data associated with the keywords in the media, and generates a global index with the keywords and pointers to the media in the resource server 105. In one embodiment, indexing service 287 associates a keyword with a user profile. In one embodiment, indexing service 287 determines one or more media portions. Indexing service 287 determines the title, table of contents, summary, key information portion, etc. of one or more slides in the slide show. The indexing service 287 determines a portion of one or more slides based on the position of the text, the format of the text, the position of the slides in the slide show, and the like. For example, the title of a slide or slide show may appear in bold at the top of the first slide in the slide show. The title may have text that has a larger size than the slide or other characters on the slide. In another example, the slide located at the beginning of the slide show may have an overview of the slide show. In another example, indexing service 287 determines the key information portion based on the identification of text with one or more black circle dots.
Indexing service 287 determines keyword weights. In one embodiment, indexing service 287 determines weights on a partial basis. For example, indexing service 287 determines a higher weight for keywords from the slideshow title than other parts of the slideshow (eg text). In another embodiment, the indexing service 287 determines the weights based on the count associated with the keyword. For example, indexing service 287 identifies the number of times each keyword appears in the media.
In one embodiment, the indexing service 287 determines the relevant content. For example, indexing service 287 determines synonyms for keywords. In one embodiment, the indexing service 287 performs a search within the thesaurus. In another example, indexing service 287 determines relevant content based on the knowledge graph.
Indexing service 287 indexes keywords and synonyms in the database indexes of multiple resource servers 105a-105n. In one embodiment, the indexing service 287 indexes keywords and synonyms by excluding irrelevant words. Unrelated words may have common words (eg, "a", "the"). In another embodiment, the indexing service 287 selects the most keywords in the index. The indexing service 287 may select the largest number of keywords based on the weight of each keyword. In one embodiment, the index service 287 stores the index of keywords and synonyms in the data storage 268. For example, indexing service 287 stores database indexes in one or more tables in the database in data storage 268. In one embodiment, the keyword index has data that describes the association between the keyword and the media. For example, the index may be media-related keyword and pointer data (eg, URL (uniform)). Contains records with resource locator) or document / file identifier). The pointer data may have data for locating the media in the resource server 105 (or database storage 268 if the co-computing device 103 is not associated with the resource server 105 that stores the media). .. In one embodiment, the keyword may be associated with multiple media.
In one embodiment, indexing service 287 generates and maintains a global database index. A global database index is a master index with database indexes generated separately for one or more resource servers 105. Indexing service 287 determines one or more types of updates that occur within one or more resource servers 105, reads the database index of one or more resource servers, and edits the global index. The global index holds a database index for one or more resource servers 105 and, as a result, a pointer reference that points to the location of one or more source materials associated with the database index. The global index also holds media keywords associated with one or more resource servers 105. Therefore, search engine 221 can query the global index of keywords and receive pointer references to read media from one or more resource servers 105.
One or more source materials relate to one or more types of updates that occur within one or more resource servers 105. One or more types of updates include storing, deleting, or moving at least one of presentation program documents, text documents, spreadsheets, video recordings, audio recordings, images, and the like. For example, the global database index is based on the first database index based on the user identifier from the first resource server 105a related to the projector device and the device identifier from the second resource server 105b related to the video conferencing device. It has 2 database indexes, etc. In another embodiment, indexing service 287 generates a global database index with a pointer reference pointing to the database index in one or more resource servers 105a-105n. In one embodiment, indexing service 287 stores a global database index in data storage 268.
Indexing service 287 updates the author or presenter's user profile based on one or more keywords. The author or presenter's user profile may have a list of keywords related to the content of the media associated with the author or presenter. The indexing service 287 updates the user profile by adding one or more keywords to the keyword list of the user profile associated with the unique user identifier. In one embodiment, the author's user profile has metadata that describes the media associated with the author or presenter. Metadata includes a list of keywords, presentation information (eg, date, location and device information), media information (eg, URL (uniform resource locator) or document / file identifier of the created media) and the like. If the author gives the same presentation information at multiple events, in one embodiment the presentation information has multiple dates and locations associated with the presentation.
Calendar module 286 is code and routines that generate one or more events in the calendar for the user. In one embodiment, calendar module 286 is a set of instructions that can be executed by processor 262 to provide the calendar with the ability to generate events, described below. In another embodiment, the calendar module 286 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the calendar module 286 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via signal line 282.
In one embodiment, the calendar module 286 receives a request from the user via the workflow engine 201 to create one or more events in one or more calendars associated with the user. One or more calendars (eg, personal calendars, bill payment calendars, etc.) and event data related to those calendars (eg, title, start time, end time, start date, end date, number of attendees, etc.) , Stored in data storage 268. For example, the calendar module 286 receives a request from the user to generate an event "Staff Meeting" in the time frame between "10AM" and "11AM" of "Tuesday". In one embodiment, the calendar module 286 receives a list of attendees to be associated with the event from the user via the workflow engine 201. The user generates an attendee list by inviting attendees to the event using the name, user identifier, employee identifier, and the like. For example, the team leader is the event "Staff You can invite members of the technical department to attend the "Meeting". In one embodiment, the calendar module 286 generates an access control list for the calendar event based on the attendee list and stores the access control list in the data storage 268. In another embodiment, the calendar module 286 sends an access control list to the workflow engine 201 in the enterprise service bus 107. The workflow engine 201 sends the access control list to the device management engine 203, which determines the devices associated with the people in the access control list. In one embodiment, the calendar module 286 receives the selection of the position where the event takes place from the user and sends the selection of the position to the workflow engine 201. The workflow engine 201 sends a position selection to the device management engine 203 that determines the co-computing device available at the selected position. For example, the user can select the first available conference room "conference room 301" on the 3rd floor of the building.
Billing service 267 is a code and routine that generates bills for users. In one embodiment, the billing service 267 is a set of instructions that can be executed by processor 262 to provide the functionality described below that generates and stores billing information. In another embodiment, the billing service 267 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, billing service 267 is adapted to coordinate and communicate with processor 262 and communication unit 266 via signal line 291.
The device usage data is stored in the data storage 268 by the device usage analysis engine 213. The workflow engine 201 receives data related to device usage from the device usage analysis engine 213 and provides the data to the billing service 267. In one embodiment, billing service 267 determines billing information related to device use of a single device. For example, Billing Service 267 determines that billing information using an MRI (Magnetic Resonance Imaging) device to image a patient's spine is $ 2000. The billing service 267 then generates an invoice based on the billing information related to the use of the device, sends the invoice to the workflow engine 201, or stores the invoice in the data storage 268. In another embodiment, the billing service 267 determines billing information associated with the user device 102 accessing the plurality of co-computing devices 103. For example, the billing service 267 generates a bill for one month in November for the user device 102 that accesses the printer, projector, conference service, and the like.
Search engine 221 is software and routines that identify media associated with a search query for one or more words. In one embodiment, the search engine 221 is a set of instructions that can be executed by processor 262 to provide the functionality described below that identifies the media associated with the search query. In another embodiment, the search engine 221 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the search engine 221 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via signal line 249.
Search engine 221 receives one or more search queries from workflow engine 201 for one or more resource servers 105a-105n. In one embodiment, the search query occurs on the search server 120. The search engine 221 identifies from the database index one or more keywords that match one or more words in the search query, determines the one or more resource servers to which the request is directed, and one or more. Send the resource server decision to workflow engine 201. For example, search engine 221 accesses a global database index to identify one or more keywords that match one or more words in a search query, and one or more resource servers are projectors, interactive whiteboards. And so on. In one embodiment, search engine 221 identifies a keyword by searching for an exact match with a word in the search query. In another embodiment, the search engine 221 identifies a keyword by searching for a keyword similar to the word in the search query. For example, if the requester gives the word "open source operating system", search engine 221 may identify "Linux" as a keyword from the database index.
In one embodiment, search engine 221 receives a search query from workflow engine 201. In one embodiment, the search engine 221 identifies one or more types of media associated with the keyword and the user profile of the author or presenter of the media. In another embodiment, the database index has data that describes the association between the keyword and the media. For example, when a search query word such as "Linux" is received, the search engine 221 identifies the user identifier, device identifier, event date, etc. as a database index, and uses the database index to search for the search query. About the word "Linux" One or more of presentation program documents, texts, documents, table calculation documents, video files, audio files, images, etc. are read from one or more resource servers 105a-105n, and the read information is used as an enterprise service. Send to bus 107.
In one embodiment, search engine 221 identifies the number of times a keyword appears in the read media. For example, search engine 221 determines the number of times a keyword appears in an image of one or more slides or on an interactive whiteboard. In another example, search engine 221 determines the number of times the author says a keyword in audio (audio is voice-text converted by media analysis service 217). The search engine 221 ranks the media read from one or more resource servers 105a-105n based on the number of times the keyword appears in the media.
Server maintenance service 227 is software and routines that manage one or more resource servers. In one embodiment, the server maintenance service 227 is an instruction set that can be executed by processor 262 to provide the functions described below that manage one or more resource servers. In another embodiment, the server maintenance service 227 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the server maintenance service 227 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via the signal line 251.
In one embodiment, the server maintenance service 227 receives a request from the workflow engine 201 to generate a server license for one or more resource servers 105a-105n. For example, the license is an operating system license for the operating system installed on resource server 105. In another example, the server license is per physical resource server (or per virtual instance of the resource server), per socket in the resource server 105 (or per CPU), and per total number of cores in the resource server 105. In another embodiment, the server maintenance service 227 allows one or more types of equipment to connect to one or more resource servers 105 and use software distributed by the manufacturer of one or more types of equipment. Receive a request to generate a connection license. The connection license is a license for each device connected to the resource server 105 (for example, 45 projector devices in which one resource server connects to one projector device includes 45 connection licenses), to the resource server 105. Per simultaneous connection (eg, 25 unique sessions connecting to resource server 105 for 45 projectors start at the same time at any time), and per user account (eg, device used to connect to resource server 105). It is one of a group that has one username and password for a unique connection, regardless of the type of.
In one embodiment, the server maintenance service 227 is one or more of one or more devices by accessing the hardware compatibility list (HCL) associated with one or more resource servers 105. Determine compatibility with resource server 105. A hardware compatibility list (HCL) is a database of compatibility between hardware models and their particular operating system, eg, resource server 105, and is stored in data storage 268.
In one embodiment, the server maintenance service 227 determines one or more updates to the API (Application Programming Interface) associated with one or more types of co-computing device 103 associated with one or more resource servers 105. One or more updates include software updates and firmware updates. APIs (Application Programming) related to one or more types of co-computing devices 103 Interface) is exposed to user equipment 102a-102n by the enterprise service bus 107. The server maintenance service 227 sends a notification to the enterprise service bus 107 to update the engine inside the enterprise service bus 107 in response to one or more update decisions. Therefore, the protocol adaptation engine 205, the message translation engine 207, and the message extension engine 209 are ready to handle any updates that occur in the API of the co-computing device 103. This avoids the situation where the user has to manually install the update on resource server 105.
Notification service 269 is code and routines that generate notifications within network 104. In one embodiment, the notification service 269 is a set of instructions that can be executed by processor 262 to provide the functionality described below that generates and issues notifications. In another embodiment, the notification service 269 is stored in memory 264 and is accessible and executable by processor 262. In either embodiment, the notification service 269 is adapted to coordinate and communicate with the processor 262 and the communication unit 266 via signal line 292.
In one embodiment, the notification service 269 receives an invoice from the workflow engine 201 or reads the invoice from the data storage 268 and generates a notification indicating that the invoice is ready. The notification is sent to the workflow engine 201. The workflow engine 201 sends the notification to the user device 102 or the user's email account using the user device 102. In another embodiment, the notification service 269 generates a notification indicating when one or more types of devices are to be replaced based on device use. For example, the notification service 269 determines that the projector is nearing its end of life based on the number of hours the projector has been used, generates a notification, and sends it to a serviceman.
The notification service 269 receives the event information related to the access control list and the calendar event from the workflow engine 201. In one embodiment, the notification service 269 generates a notification to ask the user who generated the calendar event whether to start the calendar event at the start time. For example, the notification service 269 generates a notification 5 minutes before the scheduled start time, and if the user agrees to start the event, the projector device is warmed up. In one embodiment, workflow engine 201 receives a request from calendar module 286 to warn the user about the start of an event. The workflow engine 201 instructs the notification service 269 to generate a notification requesting the user to start the calendar event when all the users in the access control list are attending the calendar event. In another embodiment, the workflow engine 201 directs the notification service 269 to generate a notification requesting other participants to delay the start of the event when at least one user is absent from the venue. For example, if a user heading for a staff meeting is traveling five miles away from the venue, a notification will be generated to delay the staff meeting.
In one embodiment, the notification service 269 determines the termination of the calendar event when the workflow engine 201 receives a request from the calendar module 286 to ask if the user wants to terminate the event. The workflow engine 201 instructs the notification service 269 to generate a notification asking the participating user list if the participating user wants to end the event. In response to receiving confirmations from at least one user in the list, workflow engine 201 sends confirmations to the device management service 212 to power off all devices at the venue. In another embodiment, the notification service 269 receives a list of free devices from the workflow engine 201 for a period of time, and the workflow engine 201 shows a list of free devices and has the option of turning off the devices in the list. Instruct notification service 269 to generate the notification to provide. For example, an employee leaving the parking lot after attending a group meeting in a building may be notified by notification service 269 that a projector, interactive whiteboard, webcam, etc. in the meeting room are available. The user can send a request to turn off all devices in response to receiving a notification from the notification service 269. The workflow engine 201 sends a power-off request from the user to the device management service 212.
<Example of User Interface> FIG. 3 is a graphic representation of an embodiment of the user interface 300 that displays a web page that provides a service overview to the user, generated by the user interface engine 121. The user interface 300 has a number of services, such as a "My devices" column 302, a "My calendar" column 304, a "Federated search" column 306, and an "Expert search" column 308. The "My devices" column 302 displays a list 310 of the user's device, device name (or device position), and device status in tabular form. The listed devices include one or more user devices 102 of the user, such as a tablet PC, one or more co-computing devices 103 reserved by the user, such as a projector. The "My calendar" column 304 displays the user's small calendar 312. The small calendar 312 displays event entry 314, a thumbnail representation of the co-computing device reserved for the event. "Federated The search field 306 displays a search box 318 for the user to enter a search term for the media. The search result displays one or more types of media (stored by the media repository service 315) that match the search terms from one or more resource servers 105a-105n or from database storage 268. The "Expert search" field 308 displays a similar search box for the user to enter a search term for a particular subject and to find users with varying degrees of skill with respect to the particular subject. The search results display a list of related media presented by users who match one or more keywords in the search term and users who include one or more keywords.
FIG. 4 is a graphic representation of an embodiment of a user interface 400 that selects a media type for viewing in a co-computing device such as a projector device. The user interface 400 displays message 401 in the inbox of the user's smartphone. Message 401 includes attachment 403. When the user selects an attachment 403, an overlay 407 appears, suggesting a list of options 405 on how to open the attachment 403, including preview, open, open or cancel with the NAaaS remote control. When the Open with NAaaS remote control option 409 is selected, the user is directed to another user interface for selecting where the attachment 403 should be displayed. Another user interface is described in more detail with reference to FIG.
FIG. 5 is a graphic representation of an embodiment of user interface 500 that selects where to transmit media for display. FIG. 5 is the next screen that the user sees after selecting the Open in ... option from the list of options in Figure 4. Alternatively, FIG. 5 relates to a different step, eg, a situation in which the user wants to investigate the device associated with a particular location. The user interface 500 has a search box 517 for inputting a search position . User interface 500 has a list 515 of locations that the user can select to send media for display. Each item in Listing 515 is the location name 513 and the location address 519. Selecting button 511 in "Conference room 4C" directs the user to another user interface for displaying the device list. Another user interface is described in more detail with reference to FIG.
FIG. 6 is a graphic representation of an embodiment of a user interface 600 that displays a list of devices at the location of a user device such as a smartphone or within a set distance thereof. User interface 600 displays a list 603 of devices detected at position 601 named "Conf.room 4C". List 603 of devices has one or more co-computing devices 103. Each item in Listing 603 has a device name 605, a brief description of the device 607, and a thumbnail representation of the device 609. Selecting the "Projector 1" button 611 directs the user to another user interface for sending commands to the selected device "Projector 1". Another user interface will be described in more detail with reference to FIG.
FIG. 7 is a graphic representation of an embodiment of a user interface 700 that displays a command list to be transmitted from a user device 102 such as a smartphone to a co-computing device (eg, a projector) selected. FIG. 7 is the next screen displayed after selecting a position from Listing 415 in FIG. However, when the user goes from FIG. 4 to FIG. 5, FIG. 7 is not displayed because the user has already selected the source material (Attachment 303) to be displayed by the co-computing device 103 in FIG. The user interface 700 displays the thumbnail representation 709 of the selected device "Projector 1". In one embodiment, user interface 700 displays a list of commands 701 that are accomplished in response to the user clicking button 611 of "Projector 1" in FIG. The user can turn on the device "Projector 1" by clicking the "Turn On" tab 703 and the device "Projector 1" by clicking the "Turn Off" tab 705. You can turn off "1" and project items onto the device "Projector 1" by clicking on the "Project" tab 707. Clicking on the Project tab 707 directs the user to another user interface for selecting the source of the action. Another user interface is described in more detail with reference to FIG.
FIG. 8 is a graphic representation of an embodiment of a user interface 800 that selects the source of operation of a co-computing device (eg, a projector) selected from a user device 102 such as a smartphone. The user interface 800 has an overlay 801 above the display of the user apparatus 102. Overlay 801 displays a list 803 of sources of operation for the selected device "Projector 1". The user can project from the web to the device "Projector 1" by clicking the "Web" tab 805. The user can project from the memory associated with the user device 102 onto the device "Projector 1" by clicking the "Camera Roll" tab 807. The user can project from the camera associated with the user device 102 onto the device "Projector 1" by clicking the "Camera" tab 809.
FIG. 9 is a graphic representation of an embodiment of user interface 900 that displays a list of media that matches a query, such as a document. The user interface 900 has a search box 902 for the user to enter one or more search terms, such as "ios". The user can select the type of media to be read from one or more resource servers by clicking the adjacency selection box 904. The choice box 904 provides a drop-down list that the user can select. For example, the user can select "document" option 906 and click search. User interface 900 displays Table 908, which provides a list of documents that match the search term "ios". Each row 910 of Table 908 has a thumbnail representation of the document 912, eg, a presentation program document that the user can click to open. Other information provided in each row of Table 908 includes the presenter's name, date (eg, presentation date), position (eg, presentation position) and device (eg, projector) associated with the document.
FIG. 10 is a graphic representation of another embodiment of user interface 1000 that displays a list of document-like media that matches a query in user device 102 such as a smartphone. The user interface 1000 displays a search box 1002 for the user to enter one or more search terms, such as "ios". User interface 1000 displays a list 1004 of documents that match the search term "ios" in one or more resource servers. Each entry in Listing 1004 has a thumbnail representation of the document 1006, eg, a presentation program document that the user can select and open. Other information provided in each entry in Listing 1004 includes the name, date (eg, presentation date), position (eg, presentation position) and device (eg, projector) of the presenter associated with the document.
FIG. 11 is a graphic representation of an embodiment of user interface 1100 that generates events in an electronic calendar for the user. The user interface 1100 displays the interactive calendar 1102 in time display mode. Other embodiments are possible and the interactive calendar 1002 is displayed in other display modes, such as day, week, assignment, and so on. When the user selects the time frame 1104 of the interactive calendar 1102, a window 1106 is displayed for entering event information. For example, the user enters the subject of the event by typing "Staff Meeting" in field 1108 as the subject. Other information entered includes the attendees of the event, the location of the event, the start date, the end date, the start time, the end time, and the like. Window 1106 also displays a list of devices 1110 available at position 1114 named "Conference Room 4C" selected by the user for the event "Staff Meeting". The user clicks on the radio button 1112 next to the listed device and the event "Staff" Reserve the device to be used in the "Meeting" and click the button 1116 labeled "Next". Clicking button 1116 directs the user to another user interface for selecting media to upload to the reserved device. Another user interface will be described in more detail with reference to FIG.
FIG. 12 is a graphic representation of an embodiment of user interface 1200 that selects media to upload for one or more devices reserved for an event. User interface 1200 displays window 1202 as a pop-up for selecting and uploading media. Window 1202 is displayed in response to the user clicking button 1116 in Figure 11. In window 1202, the user can click the "Choose file" button 1104 to browse the list of documents (from the Internet or user device 102), and then click the "Upload" button 1206. The files uploaded to the device are shown in Listing 1208. The user then clicks the "Create event" button 1210 to create the event. Clicking button 1210 directs the user to another user interface that displays a summary of the event they created and allows the user to change it if necessary. Another user interface will be described in more detail with reference to FIG.
FIG. 13 is a graphic representation of an embodiment of user interface 1300 that provides an overview of the events generated within the calendar and modifies it if necessary. The user interface 1300 displays a window 1302 listing event information, including the subject of the event, a list of attendees, the location of the event, a number of devices reserved for the event, and a list of documents uploaded to the devices. .. In window 1302, the user can add more attendees to the event "Staff Meeting" by clicking the "Add more" button 1304 if necessary. The user can reposition the event "Staff Meeting" by clicking the "Choose a different location" drop-down menu 1306. The user can select the device 1308 to control and click the "Turn On Devices" button 1310.
FIG. 14 is a graphic representation of an embodiment of the user interface 1400 for designating configuration settings (name, IP address, etc.) of the co-computing device 103 and for turning configuration settings on and off. User interface 1400 displays window 1402 as a pop-up for specifying instructions for the reserved device. Window 1402 is displayed in response to the user clicking button 1310 in FIG. In window 1402, the user clicks the "Turn On" link 404 and then clicks the "Update Device" button 1406 to update the reserved device with this instruction, without waiting for the scheduled time. And all other devices) can be selected to be turned on. In another embodiment, the calendar module 286 determines when the device should be turned on in anticipation of a designated meeting time.
<Methods> Various embodiments of the method of the present invention will be described with reference to FIGS. 14-22. FIG. 15 is a flow diagram 1500 of an embodiment of a method of managing communication between one or a plurality of types of devices using the enterprise service bus 107 and the NAaaS application service 106. The enterprise service bus 107 includes a workflow engine 201, a device management engine 203, a protocol adaptation engine 205, a message conversion engine 207, and a message extension engine 2093. NAaaS application service 106 includes user management service 211, device management service 212, device inventory service 265, location service 299, device usage analysis service 213, media repository service 215, media analysis service 217, index service 267, calendar module 286, billing. It has service 267, search engine 221, server maintenance service 227, and notification service 269.
The workflow engine 201 instructs the device management service 203 to identify one or more types of devices in the network (1502). The device management engine 203 instructs device inventory service 265 to register one or more types of devices for use in a network 404 by assigning IP addresses and names (eg, device identifiers) to each device (1504). For example, a user can register a personal device such as a tablet PC, smartphone, etc., and device inventory service 265 associates the device with the user's username or another unique identifier. In another example, the user registers a co-computing device 103, such as a projector, interactive whiteboard, etc., for use in a particular location or within a particular spatial range, such as a conference room or building floor. it can. Device inventory service 265 adds an IP address to the IP address list (1506). For example, device inventory service 265 stores a list of authorized IP addresses in data storage 268.
In some embodiments, the workflow engine 201 directs the user management service 211 to authenticate each user based on an authentication certificate (1508). For example, the authentication certificate can be the login certificate of the registered user. Protocol adaptation engine 205, message translation engine 207, and message extension engine 209 manage requirements between one or more types of devices in the network (1510). For example, the message conversion engine 207 converts the first message in JSON format to JMS format. The protocol adaptation engine 205 translates the HTTP protocol from the smartphone into the TCP protocol for the projector. The message extension engine 209 adds information (eg, additional authentication information, etc.) to the message of the target application to be received. Workflow engine 201 directs device usage analysis service 213 to record device usage entries for requests that occur between one or more types of devices in network 194 (1512).
FIG. 16A is a flow diagram 1600 of an embodiment of a method of controlling interconnection between dissimilar devices by transforming requirements. The enterprise service bus 107 includes a workflow engine 201, a device management engine 203, a protocol adaptation engine 205, a message conversion engine 207, and a message extension engine 2093. NAaaS application service 106 has user management service 211, device inventory service 265, device management service 212, media repository service 215, media analysis service 217, billing engine 267, notification service 269, location service 299, and device usage analysis service 213. ..
The device management engine 203 identifies the location of the first device in the network (1602) and produces a first list of one or more devices within a certain distance range of the position of the first device (1604). ). For example, the user device 102 notifies the device management engine 203 of its position. Device management engine 203 interacts with device inventory service 265 and location service 299, which are part of NAaaS application service 106, to a threshold distance from the location of user device 102, such as projectors, interactive whiteboards, and webcams. Generates a list of co-computing devices 103 located within range. In another embodiment, the user device 102 specifies a conference room in which the user wants to control the device, and the device management engine 203 instructs the device inventory service 265 to generate a list of devices in the conference room. To do. In another embodiment, the constant distance is the reachable distance of the network 104. In Figure 6, the device management engine 203 gives the user a conference room 4C (conference room). 4C) This is an example of providing a list of devices available within 313. The device management engine 203 provides a list to the user device 102.
The device management engine 203 receives the selection of the second device in the first list from the user associated with the first device (1606). The device management engine 203 produces a second list of functions related to the second device in the first list (1608). FIG. 7 is an example in which the user selects a projector from the first list and the second list has functions related to the projector.
Workflow engine 201 receives a request from the first device to perform one of the functions in the second list (1610). For example, the feature list can be powered on, powered off, projected, zoomed, enhanced, auto-focused, printed, two-way video recording and sending, two-way audio recording and sending, language translation, text-to-speech conversion, audio-to-speech. Includes conversion to text, etc. The protocol adaptation engine 205 translates the first communication protocol requested by the first device into the second communication protocol used by the second device (1612). The message conversion engine 207 converts the first message format to the second message format 514 (1614). Workflow engine 201 sends the converted request to the second device (1616).
The workflow engine 201 directs the device usage analysis service 213 to record the device usage entries associated with the translated request and the transaction performed by the second device (1618). For example, the device usage analysis service 213 is the type of request sent (eg, projection, power on, power off, search, etc.), the IP of the user device 102 that generated the request (eg, smartphone, laptop, etc.). The address, the user identifier of the user associated with the user device, the IP address of the co-computing device 103 (eg projector, laptop, conferencing device, etc.) that received the request, the type of function used (eg autofocus, (Expansion, imaging, etc.), types of media exchanged between one or more devices (eg, presentation program documents, text documents, computing documents, video recordings, audio recordings, images, etc.), etc. are recorded.
FIG. 16B is a flow diagram 1650 of another embodiment of a method of controlling interconnection between dissimilar devices by transforming requirements. The enterprise service bus 107 has a workflow engine 201 and a device management engine 203. The NAaaS application service 106 includes a user management service 211, a device inventory service 265, a location service 299, and a device management service 212.
Workflow engine 201 receives a media selection from the first user (1652). For example, the user chooses to attach an email. The device management engine 203 produces a first list of media-related features (1654). For example, the user projects an email. The workflow engine 201 sends the first list to the user. Workflow engine 201 receives the function selected by the first user (1656). The device management engine 203 instructs location service 299 to determine the user's location. The device management engine 203 then instructs location service 299 to generate a second list of locations where the selected function can be performed (1658). For example, the location service 299 generates a list of locations within the threshold distance range from the user, or provides additional input for the location where the user wants to select the device. Workflow engine 201 sends a second list to the user. In some embodiments, instead of a list of locations where the selected function can be performed, the second list has a device that resides at a particular location where the selected function can be performed. For example, the device management engine 203 interacts with the device inventory service 265 and the location service 299 to generate a list of co-computing devices 103 present at the location.
Workflow engine 201 receives a position selected from the second list (1660). The device management engine 203 instructs device inventory service 265 and device management service 212 to generate a third list of devices in selected locations where the selected function can be performed (1662). For example, the third list has available devices. Workflow engine 201 sends a third list to the user. Workflow engine 201 receives the device selected from the third list (1664). Workflow engine 201 sends a request to perform a function to the selected device (1666). For example, the workflow engine 201 sends a request to project an email attachment to a projector in a conference room.
FIG. 17 is a flow diagram 1700 of an embodiment of a method of generating invoices based on invoice information determined for each transaction executed by the device. The workflow engine 201 instructs the device usage analysis service 213 to read from the data storage 268 the device usage entries associated with the transactions performed by each device in the network (1702). For example, device usage analysis service 213 reads device usage entries for all transactions requested by user device 102 within the last month. The workflow engine 201 transmits the read data to the billing service 267. Billing Service 267 calculates the billing information associated with each transaction (1704) and generates an invoice based on the billing information associated with each transaction (1706). For example, Billing Service 267 provides MRI (Magnetic Resonance) to image a patient's spine. Imaging) Determines that the billing information for using the device is $ 2000. Notification service 269 sends a notification that the invoice is ready (1708). The workflow engine 201 receives the notification and sends the notification to the device or to the user's email account associated with the device.
FIG. 18 is a flow diagram 1800 of an embodiment of a method of editing a global database index for one or more resource servers using the enterprise service bus 107 and the NAaaS application service 106. The enterprise service bus 107 has a workflow engine 201. NAaaS application service 106 has media analysis service 217 and indexing service 287. Workflow engine 201 receives a request with media (1802). For example, the user device 102 sends a request to the workflow engine 201 to hold a video conference with people using the video conferencing device. Workflow engine 201 sends media to co-computing device 103 (1804). The co-computing device stores the media on the resource server 105. For example, the workflow engine 201 sends the video conferencing data to the video conferencing device and the video conferencing data to the media analysis service 217 for analysis.
Media analysis service 217 identifies text in media, for example by using voice-text conversion (1806). Workflow engine 201 generates an individual database index on indexing service 287 for each resource server 105 that associates keywords with the media based on the identified text in the media (1808). Workflow engine 201 directs indexing service 287 to edit the global database index from individual database indexes (1810). The global database index has keywords and a pointer reference to the location where the media is stored on the resource server 105. For example, video conferencing is stored on a resource server associated with the video conferencing device.
FIG. 19 is a flow diagram 1900 of an embodiment of a method of transforming a request for one or more resource servers using the enterprise service bus 107 and the NAaaS application service 106. The enterprise service bus 107 has a workflow engine 201 and a protocol adaptation engine 205. NAaaS service 106 has a search engine 221.
The workflow engine 201 receives the query from the first device for one or more types of media associated with the query (1902). Workflow engine 201 sends a request to search engine 221, which identifies keywords in the global database index that match the query (1904). The workflow engine 201 receives the keyword from the search engine 221 and determines one or more resource servers 105 to store the media associated with the keyword (1906). Workflow engine 201 generates media requests for one or more resource servers 105 (1908). If there is a difference between the communication protocol of the request and the communication protocol used by the resource server 105, the workflow engine 201 sends the request to the protocol adaptation engine 205. The protocol adaptation engine 205 determines the first communication protocol of the request and one or more types of second communication protocols of one or more resource servers (1910). The protocol adaptation engine 205 translates the request from the first communication protocol into each of one or more types of second communication protocols (1912). If there is a difference between the message format of the request and the message format of the resource server, the message translation engine 207 will use the first message format of the request and the second of one or more types of one or more resource servers. Determine the message format of (1914). The message conversion engine 207 converts a request from the first message format into each of one or more types of second message formats (1916). Workflow engine 201 reads one or more results that match the translated request from one or more resource servers 105 (1918) and sends one or more results to the first device (1920).
FIG. 20 is a flow diagram 2000 of an embodiment of a method of controlling one or more devices reserved for a calendar event using the enterprise service bus 107 and the NAaaS application service 106. The enterprise service bus 107 has a workflow engine 201 and a device management engine 203. The NAaaS application service 106 has a calendar module 286, a device inventory service 265, a device management service 212, and a notification service 269.
The calendar module 286 receives from the organizer via the workflow engine 201 a request to generate an event for the attendee list in the calendar application service and a selection of event locations (2002). The workflow engine 201 sends the selected location to the device management engine 203 in the enterprise service bus 107. The equipment management engine 203 instructs the equipment inventory service 265 to determine the equipment set provided for use at that location (2004). For example, a user specifies that an event will take place in a conference room in Menlo Park, California, but a user joins from a conference room in Tokyo, Japan. Further details regarding the selection of the position are as described above with reference to FIGS. 16A and 16B. The workflow engine 201 receives the selection of at least some of the devices in the device set, the start and end times of the event, and the name of the event. The device management engine 203 determines the position of the organizer's device within the threshold start time of the event (2008). Workflow Engine 201 sends an inquiry asking the organizer if the event should start at the start time (2010). For example, the workflow engine 201 sends an inquiry asking the organizer if the event should start at the scheduled time, five minutes before the event is scheduled. The inquiry is generated by the notification service 269 and received by the workflow engine 201. Workflow engine 201 receives confirmation from the organizer in calendar module 286 that the event should start at the same time (2012). The device management engine 203 instructs the device set to turn on for use at the start time. For example, the device management engine 203 instructs the device set 5 minutes before the start time of the event.
FIG. 21 is a flow diagram of another embodiment of a method of controlling one or more devices reserved for a calendar event using the enterprise service bus 107 and the NAaaS application service 106. The enterprise service bus 107 has a workflow engine 201. The NAaaS application service 106 has a calendar module 286, a device inventory service 265, a device management service 212, and a notification service 269.
The workflow engine 201 directs the calendar module 286 to receive a request to generate an event for the attendee list and a selection of event locations in the calendar application (2012).
For example, the location is conference room 201B in Building A. The organizer also sets the start and end times of the event. Workflow engine 201 directs device inventory service 265 to determine the set of devices provided for use at that location (2104). Workflow engine 201 receives a request to reserve one or more devices in the set of devices provided for use in an event (2106). The workflow engine 201 receives an instruction as to whether the user associated with the device needs to attend or optionally attends (2108). The workflow engine 201 instructs the media repository service 215 to receive one or more types of media associated with each of the one or more devices for display (2110). Workflow engine 201 directs one or more devices to turn on at the beginning of an event (2112). At the end of the event, for example 5 minutes before the event is due to end, the workflow engine 201 directs the notification service 269 to generate a notification asking if the event should end. Optionally, the workflow engine 201 receives a notification, asks at least one of the attendees list if the event should end (2114), and receives a confirmation from one of the attendees list. In response, the workflow engine 201 instructs one or more devices that were turned on to turn off (2116).
FIG. 22 is a flow diagram of an embodiment of a method of generating one or more notifications for a calendar event using the enterprise service bus 107 and the NAaaS application service 106. The enterprise service bus 107 has a workflow engine 201 and a device management engine 203. The NAaaS application service 106 has a notification service 269. The device management engine 203 locates one or more devices associated with the attendee list prior to starting the event at the venue (2202). The device management engine 203 checks to see if at least one of one or more devices is absent at the venue (2204). If at least one of the one or more devices is absent at the venue, the device management engine 203 determines whether at least one of the one or more devices is within a threshold distance from the venue. Examine (2208). The threshold may be a preset default value or may be set by the event organizer or the like.
If at least one of one or more devices is not absent at the venue, device management engine 203 directs notification service 269 to propose to initiate an event (2206). In some embodiments, the device management engine 203 checks the identity of the user associated with the device that is absent. If the user's attendance is not critical to the event, device management engine 203 directs notification service 269 to suggest initiating the event (2206). For example, as mentioned in FIG. 21, the user who generated the event designates some attendees as mandatory attendees and other attendees as voluntary attendees. If the user is one of the voluntary attendees, the event can be initiated.
If at least one of one or more devices is within a threshold distance from the venue, device management engine 203 directs notification service 269 to propose to initiate an event (2206). If at least one of one or more devices is not within the threshold distance from the venue, device management engine 203 directs notification service 269 to generate a notification that delays the start of the event (2210).
The above description of the embodiment is for the purpose of explanation and establishment. The above description is not intended to be exhaustive or to limit the specification of the present application to a particular form of disclosure. Many modifications and modifications are possible in light of the above teachings. The scope of the embodiments is not limited to this detailed description, but is defined by the claims of the present application. As will be appreciated by those skilled in the art, various examples can be practiced in other particular forms without departing from the spirit or fundamental features of the invention. Similarly, specific names and divisions of modules, routines, features, attributes, methods and other aspects are neither mandatory nor important, and the specification and the mechanisms that implement the features have different names, divisions and / or formats. You may have. Moreover, as will be apparent to those skilled in the art, the modules, routines, features, attributes and methods herein can be implemented in software, firmware, or any combination thereof. Also, when a component that is, for example, a module of the present specification is implemented as software, the component is a stand-alone program, a part of a large-scale program, a plurality of separate programs, a static or dynamic link library, and a kernel loadable. It can be implemented as a module, device driver, and / or in any other way currently known or known to those skilled in computer programming. Moreover, the specification of the present application is not limited to implementation in a specific programming language or a specific operating system or environment. Therefore, the present disclosure is not limited, but is intended to illustrate the scope of the present specification.
101 NAaaS middleware server 104 network 105 cloud 106 NAaaS application service 107 enterprise service bus (ESB) 120 web server 121 user interface engine 123 NAaaS application server 201 workflow engine 203 device management engine 205 protocol adaptation engine 207 message conversion engine 209 message extension engine 211 User Management Service 212 Equipment Management Service 213 Equipment Usage Analysis Service 215 Media Repository Service 217 Media Analysis Service 221 Search Engine 227 Server Maintenance Service 240 Processor 245 Memory 250 Communication Unit 255 Data Storage 262 Processor 264 Memory 265 Equipment Inventory Service 266 Communication Unit 267 Billing Service 268 Data storage 269 Notification service 286 Calendar Module 287 Indexing Service 299 Location Service
27 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27
Every citation, both ways
| Document | Relation | Office | Category | Cited during | Relevant claims |
|---|---|---|---|---|---|
| CN112291042A | Cited by | China | – | Search report | – |
| CN102348029A | Cites | China | – | Search report | – |
| CN102348029A | Cites | China | – | Search report | – |
| JP2005512415A | Cites | Japan | A | Search report | – |
| JP2005512415A | Cites | Japan | A | Search report | – |
| JP2005512415A | Cites | Japan | A | Search report | – |
| JP2006309642A | Cites | Japan | Y | Search report | 1,3,6,10,17 |
| JP2006309642A | Cites | Japan | Y | Search report | 1,3,6,10,17 |
| JP2010176226A | Cites | Japan | Y | Search report | 6 |
| JP2010176226A | Cites | Japan | Y | Search report | 6 |
| US2012019858A1 | Cites | United States of America | – | Search report | – |
| US2012019858A1 | Cites | United States of America | – | Search report | – |
| JP2012029164A | Cites | Japan | Y | Search report | 1,3,6,10,17 |
| JP2012029164A | Cites | Japan | Y | Search report | 1,3,6,10,17 |
18 members in 3 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 13689752 | United States of America | – | |
| 201213689752 | United States of America | A |
Members18
| Document | Office | Kind | |
|---|---|---|---|
| US2014149592A1 | United States of America | A1 | |
| US2014149771A1 | United States of America | A1 | |
| EP2739012A1 | European Patent Office (EPO) | A1 | |
| JP2014106979AThis record | Japan | A | |
| EP2860944A2 | European Patent Office (EPO) | A2 | |
| EP2860945A2 | European Patent Office (EPO) | A2 | |
| EP2860945A3 | European Patent Office (EPO) | A3 | |
| US2015149478A1 | United States of America | A1 | |
| EP2860944A3 | European Patent Office (EPO) | A3 | |
| US2015172237A1 | United States of America | A1 | |
| US9363214B2 | United States of America | B2 | |
| US9444774B2 | United States of America | B2 | |
| EP2739012B1 | European Patent Office (EPO) | B1 | |
| EP2860945B1 | European Patent Office (EPO) | B1 | |
| JP6291811B2 | Japan | B2 | |
| US9954802B2 | United States of America | B2 | |
| EP2860944B1 | European Patent Office (EPO) | B1 | |
| US10348661B2 | United States of America | B2 |
9 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Written notification of patent or utility model registrationJAPANESE INTERMEDIATE CODE: R151R151 | R151 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 2014106979
- Application
- 244940
Titles2
- Japanese
- 統一通信サービスのためのネットワーク機器アーキテクチャ
- English
- Network equipment architecture for unified communication services
Classification
- CPC, 8
- H04L67/025
- H04L51/066
- G06F16/41
- G06F16/43
- H04L67/51
- H04L67/52
- G06F16/48
- G06F1/329
- IPC, 2
- G06F13 00
- H04M3 56