1. A method for updating a client at a client device with events occurring in a collaboration platform, comprising:
querying a queue stored in a distributed database and specifying a location in the queue from which to read,
wherein, the queue that is queried is specific to client type of the client and is also specific to a user,
wherein, the queue includes entries representing each of a sequence of events which occurred in the collaboration platform that is relevant to the user;
reading the queue starting from the location in the queue such that previously occurring events that have been updated at the client need not be accessed prior to reading the portions of the queue with those events which have yet to be updated at the client,
wherein, multiple clients associated with the client device or different client devices of the user read from the same queue, and each of the multiple clients individually track a location in the queue from which to read to reflect updates relevant to the client device on which the client resides.
2. The method of claim 1, further comprising, updating the client device based on the events that occurred in the collaboration platform upon reading the queue.
3. The method of claim 1, further comprising, storing another location in the queue from which to begin a subsequent read.
4. The method of claim 1, wherein, each entry is associated with an action type identifier of a given event.
5. The method of claim 1, wherein, each entry is associated with a revision identifier; wherein, the client uses the revision identifier for conflict resolution at the client device.
6. The method of claim 1, wherein, the collaboration platform includes a cloud-based service and storage platform.
7. A system for updating a client at a client device with events occurring in a collaboration platform, the system comprising:
one or more processors;
a memory unit having instructions stored thereon which, when executed by the one or more processors, cause the system to:
query a queue stored in a distributed database and specifying a location in the queue from which to read,
wherein, the queue that is queried is specific to client type of the client and is also specific to a user,
wherein, the queue includes entries representing each of a sequence of events which occurred in the collaboration platform that is relevant to the user;
read the queue starting from the location in the queue such that previously occurring events that have been updated at the client need not be accessed prior to reading the portions of the queue with those events which have yet to be updated at the client,
wherein, multiple clients associated with the client device or different client devices of the user read from the same queue, and each of the multiple clients individually track a location in the queue from which to read to reflect updates relevant to the client device on which the client resides.
8. The system of claim 7, wherein the instructions, when executed by the one or more processors, further cause the system to update the client device based on the events that occurred in the collaboration platform upon reading the queue.
9. The system of claim 8, wherein the instructions, when executed by the one or more processors, further cause the system to store another location in the queue from which to begin a subsequent read.
10. The system of claim 7, wherein, each entry is associated with an action type identifier of a given event.
11. The system of claim 7, wherein, each entry is associated with a revision identifier; wherein, the client uses the revision identifier for conflict resolution at the client device.
12. The system of claim 7, wherein, the collaboration platform comprises a cloud-based service and storage platform.
13. A method for managing updates at clients used by a user to access a cloud-based collaboration service such that the clients are updated with actions performed by collaborators, comprising:
based on an action type of an action performed by a collaborator of the user in the cloud-based collaboration service,
storing a representation of the action to queues of clients associated with the user in a distributed database cluster,
wherein, each of the queues is uniquely associated with a client category of the clients associated with the user;
wherein, the clients of the user are selected based on the client category and the action type of the action, to receive a notification as a result of the action or to perform a synchronization with changes that occurred as a result of the action,
receiving a query for a queue stored in the distributed database cluster, the query specifying a location in the queue from which to read,
wherein, the queue that is queried is specific to client type of the client and a user,
wherein, the queue includes entries representing each of a sequence of events which occurred in the collaboration platform that is relevant to the user;
providing data starting from the location in the queue such that previously occurring events that have been updated at the client need not be accessed prior to reading the portions of the queue with those events which have yet to be updated at the client,
wherein, multiple clients associated with the client device or different client devices of the user read from the same queue, and each of the multiple clients individually track a location in the queue from which to read to reflect updates relevant to the client device on which the client resides.
14. The method of claim 13, wherein, the client includes an instance of a web browser having loaded thereon a web-based client to access the cloud-based collaboration service.
15. The method of claim 13, wherein, the client includes an instance of a desktop synchronization client to synchronize content with the cloud-based collaboration service.
16. The method of claim 13, further comprising, receiving a request to write to the queues of the clients associated with the user, the writing including writing subsequently occurring actions in a time ordered fashion.
17. The method of claim 13, further comprising, storing, in the distributed database cluster, additional representations of actions to additional queues of other clients associated with other users of the cloud-based collaboration service.
18. The method of claim 13, further comprising, effectuating a data change associated with the action.
19. A non-transitory computer readable storage medium having instructions stored thereon which, when executed by one or more processors, causes a system to:
query a queue stored in a distributed database and specifying a location in the queue from which to read,
wherein, the queue that is queried is specific to client type of the client and is also specific to a user,
wherein, the queue includes entries representing each of a sequence of events which occurred in the collaboration platform that is relevant to the user;
read the queue starting from the location in the queue such that previously occurring events that have been updated at the client need not be accessed prior to reading the portions of the queue with those events which have yet to be updated at the client,
wherein, multiple clients associated with the client device or different client devices of the user read from the same queue, and each of the multiple clients individually track a location in the queue from which to read to reflect updates relevant to the client device on which the client resides.
20. The computer readable medium of claim 19, wherein the instructions, when executed by the one or more processors further cause the system to update the client device based on the events that occurred in the collaboration platform upon reading the queue.
21. The computer readable medium of claim 19, wherein the instructions, when executed by the one or more processors further cause the system to store another location in the queue from which to begin a subsequent read.
22. The computer readable medium of claim 19, wherein, each entry is associated with an action type identifier of a given event.
23. The computer readable medium of claim 19, wherein, each entry is associated with a revision identifier; wherein, the client uses the revision identifier for conflict resolution at the client device.
24. The computer readable medium of claim 19, wherein, the collaboration platform includes a cloud-based service and storage platform.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. An integrated photonic circuit comprising waveguides (12-19) and other photonic components, characterised in that the photonic circuit has a first part (1) and a second part (2), in that the first part and the second part are connected to a mirror in the form of a half 2\xd72 multimode interferometer (MMI) (32), which comprises solely one half MMI (31) in a longitudinal direction, in that the said half MMI (32) has two ports (33, 34) and is arranged to reflect half of the light that is incident on one of the ports to one port and transmit half of the incident light to the second port, and in that the free surface (35) of the said half MMI (32) has been treated with a highly reflective material.
2. An integrated photonic circuit according to claim 1, characterised in that it comprises a laser (1) and a Mach-Zender interferometer (2), in that the laser comprises at least one reflector (3), a phase section (4) and an amplifier section (5), which sections are arranged subsequent to each other on a support (6) with the first, light-emitting, end of the laser (1) pointing in a first direction, in that a Mach-Zender interferometer (2) is arranged on the said support material (6) next to the said laser (1) with the first, light-emitting, end of the interferometer (2) pointing in a second direction, in that the said second direction is opposite to the said first direction, and in that the said half MMI (32) is located between the first, light-emitting, end of the laser (1) and the second, light-receiving, end of the interferometer (2).
3. An integrated photonic circuit according to claim 2, characterised in that the said Mach-Zender interferometer (2) is arranged to divide incident light into two waveguides (23, 24) and arranged to adjust the phase angle of the light in one waveguide (23, 24) such that the light in the two waveguides is added to the output of the Mach-Zender interferometer (2) or such that the light in the two waveguides cancel each other.
4. An integrated photonic circuit according to claim 2, characterised in that the said laser (1) is a tune-able laser.
5. An integrated photonic circuit according to claim 2, characterised in that the said laser (1) comprises two Bragg reflectors (20, 21) that are connected through what is known as a \u201csplitter\u201d (22) to the phase section (4), which is connected to the amplifier section (5).
6. An integrated photonic circuit according to claim 2, characterised in that an amplifier in the form of what is known as a \u201csemiconductor optical amplifier\u201d (SOA) (25) is located between the said half MMI (32) and the Mach-Zender interferometer (2).
7. An integrated photonic circuit according to claim 2, characterised in that an MMI (36) is located after the said Mach-Zender interferometer (2), the output of which has been treated with an anti-reflective material.
8. An integrated photonic circuit according to claim 3, characterised in that the said laser (1) is a tune-able laser.
9. An integrated photonic circuit according to claim 3, characterised in that the said laser (1) comprises two Bragg reflectors (20, 21) that are connected through what is known as a \u201csplitter\u201d (22) to the phase section (4), which is connected to the amplifier section (5).
10. An integrated photonic circuit according to claim 4, characterised in that the said laser (1) comprises two Bragg reflectors (20, 21) that are connected through what is known as a \u201csplitter\u201d (22) to the phase section (4), which is connected to the amplifier section (5).
11. An integrated photonic circuit according to claim 3, characterised in that an amplifier in the form of what is known as a \u201csemiconductor optical amplifier\u201d (SOA) (25) is located between the said half MMI (32) and the Mach-Zender interferometer (2).
12. An integrated photonic circuit according to claim 4, characterised in that an amplifier in the form of what is known as a \u201csemiconductor optical amplifier\u201d (SOA) (25) is located between the said half MMI (32) and the Mach-Zender interferometer (2).
13. An integrated photonic circuit according to claim 5, characterised in that an amplifier in the form of what is known as a \u201csemiconductor optical amplifier\u201d (SOA) (25) is located between the said half MMI (32) and the Mach-Zender interferometer (2).
14. An integrated photonic circuit according to claim 3, characterised in that an MMI (36) is located after the said Mach-Zender interferometer (2), the output of which has been treated with an anti-reflective material.
15. An integrated photonic circuit according to claim 4, characterised in that an MMI (36) is located after the said Mach-Zender interferometer (2), the output of which has been treated with an anti-reflective material.
16. An integrated photonic circuit according to claim 5, characterised in that an MMI (36) is located after the said Mach-Zender interferometer (2), the output of which has been treated with an anti-reflective material.
17. An integrated photonic circuit according to claim 6, characterised in that an MMI (36) is located after the said Mach-Zender interferometer (2), the output of which has been treated with an anti-reflective material.