Alternativa ao Star CloudPRNT: mantenha as impressoras, retire o servidor

O hardware Star não é o problema. O que a maioria das equipas quer substituir é o endpoint de polling que tem de construir, alojar e manter disponível.

O Star CloudPRNT é um protocolo, não um serviço. As impressoras Star implementam-no, e ele define como uma impressora pede trabalho a um servidor. Essa única distinção explica quase tudo o que surpreende a seu respeito.

Resposta curta: raramente são as impressoras que se querem substituir. A Star fabrica hardware térmico sólido: as gamas TSP e mC-Print estão entre as impressoras de balcão mais implantadas na Europa, e a sua linguagem de comandos dá controlo preciso sobre a paginação do talão. O que as equipas querem deixar de fazer é ser o servidor. Com o CloudPRNT, a impressora consulta um endpoint HTTP que você escreve, aloja e mantém disponível. Uma API push elimina esse endpoint por completo.

Onde está realmente o trabalho

Star CloudPRNT API REST push
Quem inicia A impressora consulta o seu servidor O seu backend chama a API
Endpoint a construir e alojar Sim, por si Nenhum
Piso de latência O intervalo de polling < 1 s
Fila, retentativas, exatamente-uma-vez A seu cargo O serviço
Atrás de redes restritivas Sim, apenas saída Sim, apenas saída
Controlo fino do talão Sim Sim

Ambos os modelos resolvem o problema realmente difícil: nenhuma porta de entrada no router da loja. A diferença é sobre quem recai a engenharia.

O hardware não é o tema

Vale a pena separar as duas perguntas, porque são confundidas constantemente.

Escolher uma impressora é uma questão de hardware: arrastamento do papel, fiabilidade do cortador, conectividade, resistência num balcão em hora de ponta. A Star pontua bem em tudo isso, e é precisamente por isso que existem tantas instalações CloudPRNT. Se já tem impressoras Star, não há boa razão para as retirar.

Escolher como os trabalhos chegam a essa impressora é uma questão de software, e é independente. Uma impressora bem construída atrás de uma arquitetura de polling que tem de operar continua a ser uma arquitetura de polling que tem de operar.

Se comprar hardware novo, encaminhamos para distribuidores especializados em vez de o vendermos: o mercado da impressora é melhor servido por revendedores que trabalham várias gamas e tratam da assistência localmente.

O que custa realmente alojar o endpoint

A especificação não é difícil e uma primeira implementação leva uma tarde. O custo não é a primeira implementação, é tudo o que vem depois.

A disponibilidade passa a ser sua. Cada impressora do parque depende de o seu endpoint estar acessível. Um deploy, um certificado expirado, um limitador mal configurado: cada um para a impressão em todo o lado ao mesmo tempo.

Constrói a fila. Os trabalhos têm de ser guardados, entregues exatamente uma vez, marcados como entregues e repetidos se uma impressora pegar num trabalho e perder energia a meio. É um pequeno problema de sistemas distribuídos, fácil de errar de formas que só surgem sob carga.

O polling fixa a latência. Três segundos de intervalo são segundo e meio em média antes de a cozinha ver o talão. Encurtá-lo multiplica o volume de pedidos.

A carga escala com as impressoras, não com as impressões. Cem impressoras a consultar de poucos em poucos segundos são uma carga permanente, haja ou não algo para imprimir.

Nada disto é uma crítica ao protocolo. O CloudPRNT é um desenho razoável que o coloca deliberadamente ao comando. A única pergunta é se esse comando lhe interessa o suficiente para o operar.

Quando deixar o CloudPRNT como está

Duas situações, ambas legítimas: quando o endpoint já funciona, é estável e alguém o percebe: uma migração também custa; e quando a impressora só deve falar com infraestrutura que controla, por política ou conformidade.

O que um fabricante não pode fazer por si

Cada fabricante implementa o seu próprio protocolo para a sua própria gama: CloudPRNT na Star, Server Direct Print na Epson. Do lado deles é razoável: vendem impressoras, não camadas de integração.

A consequência é estrutural, não um defeito. O protocolo de um fabricante só pode cobrir as suas próprias impressoras, pelo que assim que o parque tem duas marcas mantém duas integrações, dois conjuntos de credenciais e duas famílias de falhas. E nenhum fabricante entrega uma aplicação Shopify ou uma extensão WooCommerce.

É exatamente a camada para que existe uma plataforma de impressão: um endpoint único seja qual for a marca, mais os conectores: Shopify, WooCommerce, PrestaShop, HubRise, Zapier: que ficam entre um pedido e um talão impresso. Quando um fabricante expõe um transporte aberto como MQTT, esse hardware pode ficar sob o mesmo endpoint em vez de se tornar uma segunda integração.

A alternativa push

curl -X POST https://www.expedy.fr/api/v2/printers/{printer_uid}/print \
  -H "Authorization: API_SID:API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"printer_msg": "PEDIDO #1043\n2x Margherita", "origin": "pos"}'

Uma impressora Star com porta USB é comandada assim já hoje através de um adaptador Raspberry Pi, mantendo o hardware já comprado e movendo apenas o lado do servidor.

Migrar sem dia de viragem

Deixe o endpoint CloudPRNT a funcionar e acrescente a chamada push ao lado; mude um local e compare talões durante uma semana; avance local a local com o endpoint como plano de recuo; desmantele-o só quando a última impressora tiver migrado. O plano gratuito cobre os dois primeiros passos. E se a conclusão for «o nosso endpoint funciona bem, ficamos com ele», esse é um resultado perfeitamente legítimo do exercício.

FAQ

O Star CloudPRNT é um serviço ou um protocolo?

Um protocolo implementado pelas impressoras Star. Não há serviço alojado por trás: é você que escreve e aloja o endpoint que a impressora consulta, pelo que assume a sua disponibilidade e a sua fila.

Tenho de substituir as minhas impressoras Star?

Não, e normalmente não deve. A Star fabrica hardware de balcão fiável, e as impressoras são independentes da forma como os trabalhos lhes chegam. Uma impressora Star com porta USB é comandada através de um adaptador Raspberry Pi enquanto o lado do servidor passa para uma API push.

Quanta latência acrescenta o polling?

Em média metade do intervalo. Três segundos de intervalo significam cerca de 1,5 segundos antes de a impressora sequer pedir o trabalho.

Quando convém manter o endpoint CloudPRNT?

Quando já funciona, é estável e alguém o percebe: uma migração também custa. E quando uma política ou a conformidade exigem que a impressora só fale com infraestrutura que controla.

Porquê usar uma plataforma de impressão em vez do protocolo do fabricante?

Porque o protocolo de um fabricante só cobre as suas próprias impressoras, e nenhum fabricante entrega uma aplicação Shopify ou uma extensão WooCommerce. Uma plataforma dá um endpoint único seja qual for a marca, mais os conectores entre um pedido e um talão.