X-CGP-ClamAV-Result: CLEAN X-VirusScanner: Niversoft's CGPClamav Helper v1.22.2a (ClamAV engine v0.102.2) X-Junk-Score: 0 [] X-KAS-Score: 0 [] Return-Path: Received: from fortimail.cybercat.ca ([216.13.210.77] verified) by post.selbstdenker.com (CommuniGate Pro SMTP 6.3.7) with ESMTPS id 27681637 for webobjects-dev@wocommunity.org; Thu, 14 Apr 2022 15:14:59 +0200 Received-SPF: none receiver=post.selbstdenker.com; client-ip=216.13.210.77; envelope-from=samuel@samkar.com Received: from smtpclient.apple (modemcable213.203-171.107.mc.videotron.ca [107.171.203.213]) (user=samuel%samkar.com mech=PLAIN bits=0) by fortimail.cybercat.ca with ESMTP id 23EDEbTA006021-23EDEbTB006021 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Thu, 14 Apr 2022 09:14:37 -0400 From: Samuel Pelletier Content-Type: multipart/alternative; boundary="Apple-Mail=_78572D6C-E590-40C5-87F2-67B9A2495D96" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.80.82.1.1\)) Subject: Re: [WO-DEV] Need conceptual help Date: Thu, 14 Apr 2022 09:14:36 -0400 References: To: WebObjects & WOnder Development In-Reply-To: Message-Id: <939CD871-C135-4E4B-9AF4-1E49F40CEA78@samkar.com> X-Mailer: Apple Mail (2.3696.80.82.1.1) X-FEAS-AUTH-USER: samuel%samkar.com --Apple-Mail=_78572D6C-E590-40C5-87F2-67B9A2495D96 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hi Markus, I see at least 2 options that works for a web app in a controlled = environment like this: 1 - Assign a persistent cookie to the device in a special page that = identify the device in your system. 2- If you use DHCP assigned IP, your iPad have "static" its that can be = used to identify them. Both informations are available in the WORequest. About the pooling comment, I do not see a real problem there for few = devices that need to pool slowly. I do not see a requirement for faster = than 20-30 seconds since either the device is given to the person (and a = manual referee can be done there) or the person need to walk to the = device. You can implement that kind of pooling with AjaxPing very = easily. Implementing WebSocket is way more complex and kind of overkill = for something like this. BTW, is there anyone with a WebSocket integration sample ? I searched to = implement the server part and did not found useful sample or = implementation to integrate inside a Java app, The most complete and = interesting information are all using an external server for this and = the developper need to find a way to identify the client and build some = custom protocol for the messaging. Anyway WebSocket is cool for single page app but for standard full page = refresh app, the socket is closed on every page load unless I missed = something. Regards, Samuel > Le 10 avr. 2022 =C3=A0 14:48, Markus Ruggiero (rucotec) = a =C3=A9crit : >=20 > Thanks, this might help eventually.=20 >=20 > However I did not want to create a native iPad app, just wanted to = make sure that the browser was known to the WO server application. But = maybe in the end a native app will be the solution - just not yet. >=20 > ---markus--- >=20 >> On 10 Apr 2022, at 18:20, J=C3=A9r=C3=A9my DE ROYER = > = wrote: >>=20 >> Bonsoir Markus, >>=20 >> Each app on an iPad has a unique ID set when the app is installed. >>=20 >> In Swift code, I use the code below : >> - UIDevice.current.identifierForVendor!.uuidString >>=20 >> Using that, I can authorize the acces to an app for specific iPads. >>=20 >> I hope it will help you, >>=20 >> J=C3=A9r=C3=A9my >>=20 >>> Le 10 avr. 2022 =C3=A0 16:05, Markus Ruggiero (rucotec) = > a = =C3=A9crit : >>>=20 >>> Dear WO-ers, I need your expertise. >>>=20 >>> I want to have a defined set of tablets (iPad) tied into my = application. The tablets act as a satellite device in the context of a = customer checking into a clinic. The person comes up to the registration = desk and is checked in. The receptionist sees that there is some = registration data missing and hands the patient a tablet with the = running application (or directs the customer to "use the green screen = over there=E2=80=9D). The receptionist should now be able to remotely = open the registration screen on that green iPad, the customer filling in = the data and then pressing Save.=20 >>>=20 >>> My train of thoughts goes like this: >>>=20 >>> As a one-time operation an admin opens the application from that = green iPad, goes to a registration screen, and creates a =E2=80=9CSatellit= e" entry in the database. This entry gets a UUID (or something similar) = and that UUID should be put into the green iPads Web Storage. This is a = one-time registration of the device (actually the browser on that = device, not the device itself). >>> When the workday starts the receptionist logs into the application = on the green iPad and goes to a dedicated screen. This screen then polls = every couple of seconds whether there is some task available on the = server. There may be a number of different tasks that the receptionist = can create. The receptionist assigns such a task to the green iPad (or = the red one or...) as an entry in the database and the polling iPad then = displays the task screen. This kind of pushes a task to a browser. When = the task is done the iPad goes back to polling. The server also knows = that the green iPad is busy or not. >>>=20 >>> I need to identify the polling iPad and I want to pre-register the = iPad as a security measure. >>>=20 >>> How would you tackle such a requirement? >>> Thanks >>> ---markus--- >>>=20 >>>=20 >>=20 >=20 >=20 >=20 >=20 --Apple-Mail=_78572D6C-E590-40C5-87F2-67B9A2495D96 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Hi = Markus,

I see at = least 2 options that works for a web app in a controlled environment = like this:

1 - = Assign a persistent cookie to the device in a special page that identify = the device in your system.

2- If you use DHCP assigned IP, your iPad have "static" its = that can be used to identify them.

Both informations are available in the = WORequest.

About= the pooling comment, I do not see a real problem there for few devices = that need to pool slowly. I do not see a requirement for faster than = 20-30 seconds since either the device is given to the person (and a = manual referee can be done there) or the person need to walk to the = device. You can implement that kind of pooling with AjaxPing very = easily. Implementing WebSocket is way more complex and kind of overkill = for something like this.

BTW, is there anyone with a WebSocket integration = sample ? I searched to implement the server part and did not found = useful sample or implementation to integrate inside a Java app, The most = complete and interesting information are all using an external server = for this and the developper need to find a way to identify the client = and build some custom protocol for the messaging.

Anyway WebSocket is cool for single page app but = for standard full page refresh app, the socket is closed on every page = load unless I missed something.

Regards,

Samuel



Le 10 avr. 2022 =C3=A0 14:48, Markus Ruggiero = (rucotec) <markus.ruggiero@rucotec.ch> a =C3=A9crit :

Thanks, this might = help eventually. 

However I did not want to create a native iPad app, just = wanted to make sure that the browser was known to the WO server = application. But maybe in the end a native app will be the solution - = just not yet.

---markus---

On 10 = Apr 2022, at 18:20, J=C3=A9r=C3=A9my DE ROYER <jeremy.deroyer@ingencys.net> wrote:

Bonsoir Markus,

Each app on an iPad has a unique ID set when the app is = installed.

In Swift code, I use the code below :
UIDevice.current.identifierForVendor!.uuidString

Using that, I can authorize the acces to an app for = specific iPads.

I hope it will help you,

J=C3=A9r=C3=A9my

Le 10 avr. 2022 =C3=A0 16:05, Markus Ruggiero (rucotec) = <markus.ruggiero@rucotec.ch> a =C3=A9crit :

Dear WO-ers, I need your expertise.

I want to have a defined set of tablets (iPad) tied into my application. = The tablets act as a satellite device in the context of a customer = checking into a clinic. The person comes up to the registration desk and = is checked in. The receptionist sees that there is some registration data missing and hands the patient a tablet with = the running application (or directs the customer to "use the green = screen over there=E2=80=9D). The receptionist should now be able to = remotely open the registration screen on that green iPad, the customer filling in the data and then pressing Save.

My train of thoughts goes like this:

As a one-time operation an admin opens the application from that green = iPad, goes to a registration screen, and creates a =E2=80=9CSatellite" = entry in the database. This entry gets a UUID (or something similar) and = that UUID should be put into the green iPads Web Storage. This is a one-time registration of the device (actually the browser on = that device, not the device itself).
When the workday starts the receptionist logs into the application on = the green iPad and goes to a dedicated screen. This screen then polls = every couple of seconds whether there is some task available on the = server. There may be a number of different tasks that the receptionist can create. The receptionist assigns such a task = to the green iPad (or the red one or...) as an entry in the database and = the polling iPad then displays the task screen. This kind of pushes a = task to a browser. When the task is done the iPad goes back to polling. The server also knows that the green iPad is = busy or not.

I need to identify the polling iPad and I want to pre-register the iPad = as a security measure.

How would you tackle such a requirement?
Thanks
---markus---








= --Apple-Mail=_78572D6C-E590-40C5-87F2-67B9A2495D96--