attachment
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
Hi Mike,
<div><br>
</div>
<div>Thanks for clarifying these - I wasn't sure how granular you wanted these to be, or whether you wanted actual IPP to be listed in the diagrams. Since these are intended for the Model section, I think it would make sense for the diagrams to specify IPP
(new or existing) wherever possible. A few comments below.<br>
<div>
<div><br>
<blockquote type="cite">
<div>On Sep 16, 2024, at 9:55 AM, Michael Sweet <msweet@msweet.org> wrote:</div>
<br class="Apple-interchange-newline">
<div>CAUTION: External Email<br>
<br>
<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;">
<span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(127, 127, 127, 1.0);"><b>From:
</b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;">Michael Sweet <msweet@msweet.org><br>
</span></div>
<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;">
<span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(127, 127, 127, 1.0);"><b>Subject:
</b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;"><b>Re: [IPP] Updated IPP Firmware Update Extensions figure slides posted (plain text version)</b><br>
</span></div>
<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;">
<span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(127, 127, 127, 1.0);"><b>Date:
</b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;">September 16, 2024 at 9:55:51 AM MDT<br>
</span></div>
<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;">
<span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(127, 127, 127, 1.0);"><b>To:
</b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;">PWG IPP Workgroup <ipp@pwg.org><br>
</span></div>
<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;">
<span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(127, 127, 127, 1.0);"><b>Cc:
</b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;">"Kennedy, Smith (Wireless & IPP Standards)" <smith.kennedy@hp.com><br>
</span></div>
<br>
<br>
<div>Smith,<br>
<br>
OK, making use of the "PlantUML web server" (<a href="http://www.plantuml.com/plantuml/uml">http://www.plantuml.com/plantuml/uml</a>) which allows you to fiddle with these diagrams in real time,</div>
</div>
</blockquote>
<div><br>
</div>
<div>I didn't know they added that on the web. 😊 I always do it locally in VS Code with a preview or running PlantUML in a separate window.</div>
<br>
<blockquote type="cite">
<div>
<div>I have some updates:<br>
<br>
1. Client Managed Firmware Update<br>
<br>
(I normalized the communication with the repository, added the client requests from IPP System Service, added a Printer self-update step, added double-ended arrows for the query/notify step, and grouped things like you did for the other scenarios)<br>
<br>
@startuml<br>
<br>
title Firmware Update Scenario 1: Client Managed Firmware Update<br>
autonumber<br>
skinparam sequenceMessageAlign direction<br>
<br>
participant Client<br>
participant Printer<br>
participant Repository<br>
<br>
group Client checks for firmware update<br>
</div>
</div>
</blockquote>
<div><br>
</div>
Can replace this with:</div>
<div><br>
</div>
<div>
<div>group Client checks for firmware update \n(Out of band of IPP)</div>
<div><br>
</div>
<blockquote type="cite">
<div>
<div><br>
Client -> Repository: Firmware update available?<br>
Repository -> Client: Update availability<br>
Client -> Repository: Download firmware update<br>
Repository -> Client: Firmware update file<br>
<br>
end group<br>
<br>
group Client sends firmware update to printer<br>
<br>
Client -> Printer: Create-Resource<br>
Client -> Printer: Send-Resource w/firmware update file<br>
Client -> Printer: Install-Resource<br>
Printer -> Printer: Install firmware update<br>
<br>
end group<br>
<br>
|||<br>
<br>
group Client monitors Printer firmware status<br>
<br>
Client <-> Printer: Query/notify firmware update status<br>
</div>
</div>
</blockquote>
<div><br>
</div>
If this is IPP then can we provide the actual IPP? The query would be "Get-System-Attributes", right?</div>
<div><br>
<blockquote type="cite">
<div>
<div><br>
end group<br>
<br>
@enduml<br>
<br>
<br>
2. Autonomous Printer Firmware Update<br>
<br>
(I separated the "self-update" into download from repo and install to self, and added a client query/notify grouping)<br>
</div>
</div>
</blockquote>
<div><br>
</div>
That's fine - same comment as for #1 for the query / notify firmware update status.</div>
<div><br>
<blockquote type="cite">
<div>
<div><br>
@startuml<br>
<br>
title Firmware Update Scenario 2: Autonomous Printer Firmware Update<br>
autonumber<br>
skinparam sequenceMessageAlign direction<br>
<br>
participant Client<br>
participant Printer<br>
participant Repository<br>
<br>
group Printer autonomously installs firmware updates<br>
<br>
Printer -> Repository: Firmware update available?<br>
Repository -> Printer: Update availability<br>
Printer -> Repository: Download firmware update<br>
Repository -> Printer: Firmware update file<br>
Printer -> Printer: Install firmware update<br>
<br>
end group<br>
<br>
|||<br>
<br>
group Client monitors Printer firmware status<br>
<br>
Client <-> Printer: Query/notify firmware update status<br>
<br>
end group<br>
<br>
@enduml<br>
<br>
<br>
3. Client Triggered Firmware Update<br>
<br>
(Tried to normalize things with the prior diagrams, dropped reboot because that isn't always necessary)<br>
<br>
@startuml<br>
<br>
title Firmware Update Scenario 3: Triggered Firmware Update<br>
autonumber<br>
skinparam sequenceMessageAlign direction<br>
<br>
participant Client<br>
participant Printer<br>
participant Repository<br>
<br>
group Client asks Printer to check for firmware update<br>
<br>
Client -> Printer: Check for Firmware Update<br>
Printer -> Repository: Update available?<br>
Repository -> Printer: Update availability<br>
Printer -> Client: Update availablility<br>
<br>
end group<br>
<br>
|||<br>
<br>
group Client ask Printer to install firmware update<br>
<br>
Client -> Printer: Update Firmware<br>
Printer -> Repository: Firmware update available?<br>
Repository -> Printer: Update availability<br>
Printer -> Repository: Download firmware update<br>
Repository -> Printer: Firmware update file<br>
Printer -> Client: Firmware update status<br>
Printer -> Printer: Install firmware update<br>
<br>
end group<br>
<br>
|||<br>
<br>
group Client monitors Printer firmware status<br>
<br>
Client <-> Printer: Query/notify firmware update status<br>
<br>
end group<br>
@enduml<br>
<br>
<br>
> On Sep 13, 2024, at 9:53 AM, Kennedy, Smith (Wireless & IPP Standards) via ipp <ipp@pwg.org> wrote:<br>
> <br>
> Greetings,<br>
> <br>
> (Sending again in plain text)<br>
> <br>
> We agreed that I should post the slides we were using to model the scenarios and think about them and decide. Here's the slides:<br>
> <br>
> https://ftp.pwg.org/pub/pwg/ipp/slides/IPP-Firmware-Update-Extensions-Registration-Options-20240912.pptx
<br>
> <br>
> <br>
> Here's PlantUML for Scenario #1:<br>
> <br>
> @startuml<br>
> <br>
> title Firmware Update Scenario 1: Client Managed Firmware Update<br>
> autonumber<br>
> skinparam sequenceMessageAlign direction<br>
> <br>
> participant Client<br>
> participant Printer<br>
> participant Repository<br>
> <br>
> Client -> Repository: Firmware update available?<br>
> Client <- Repository: Download firmware update<br>
> |||<br>
> Client -> Printer: Send firmware update to Printer<br>
> Client -> Printer: Monitor firmware update progress<br>
> <br>
> @enduml<br>
> <br>
> <br>
> Here's PlantUML for Scenario #2:<br>
> <br>
> @startuml<br>
> <br>
> title Firmware Update Scenario 2: Autonomous Printer Firmware Self-Update<br>
> autonumber<br>
> skinparam sequenceMessageAlign direction<br>
> <br>
> participant Client<br>
> participant Printer<br>
> participant Repository<br>
> <br>
> Printer -> Repository: Firmware update available?<br>
> Printer <- Repository: Firmware Self-update<br>
> <br>
> @enduml<br>
> <br>
> <br>
> Here's a longer PlantUML for Scenario #3, incorporating both Check-For-Firmware-Update and Update-Printer-Firmware but no scheduling:<br>
> <br>
> @startuml<br>
> <br>
> title Firmware Update Scenario 3: Triggered Self-Update<br>
> autonumber<br>
> skinparam sequenceMessageAlign direction<br>
> <br>
> participant Client<br>
> participant Printer<br>
> participant Repository<br>
> <br>
> group Client triggers Printer to check for firmware update<br>
> Client -> Printer: Check for Firmware Update<br>
> Printer -> Repository: Firmware update available?<br>
> Printer <- Repository: Firmware update is available<br>
> Client <- Printer: Firmware update is available<br>
> end group<br>
> <br>
> <br>
> group Client triggers Printer to self-update<br>
> Client -> Printer: Update Firmware<br>
> Printer -> Repository: Firmware Self-update<br>
> Repository -> Printer: Firmware update<br>
> Client --> Printer: Monitor firmware update progress<br>
> Printer -> Printer: Update firmware<br>
> Client --> Printer: Monitor firmware update progress<br>
> Printer -> Printer: Reboot<br>
> Client --> Printer: Monitor firmware update progress<br>
> Printer -> Printer: Update complete<br>
> end group<br>
> @enduml<br>
> <br>
> Feel free to post updates to the slides or tweaks to the PlantUML UML sequences.<br>
> <br>
> Smith<br>
> <br>
> /**<br>
> Smith Kennedy<br>
> HP Inc.<br>
> */ <br>
> <br>
> _______________________________________________<br>
> ipp mailing list<br>
> ipp@pwg.org<br>
> https://www.pwg.org/mailman/listinfo/ipp<br>
> <br>
<br>
________________________<br>
Michael Sweet<br>
<br>
</div>
<br>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</body>
</html>