O papel do Creator ID na arquitetura Palm OS

Gostou deste artigo? Compartilhe!

CategoriasPalm OS, Arquitetura
ComentáriosComentários (2)

Introdução

Todas as aplicações Palm OS possuem um identificador único, de quatro bytes, chamado Creator ID. O Creator ID é utilizado pelo Palm OS, para identificar as aplicações e também seus bancos de dados associados (.pdb). Dessa forma, todos os arquivos de bancos de dados que pertencem à uma determinada aplicação, devem possuir o mesmo Creator ID dessa aplicação.

Embora isso não seja obrigatório, é uma boa prática definir o mesmo Creator ID da aplicação para as bases de dados utilizadas, pois além de tornar o sistema de arquivos mais organizado, facilita o processo de desinstalação e cópia das aplicações. Por exemplo, se você apagar uma aplicação "Cadastro de Clientes", que possua Creator ID "CACL", o Palm OS tentará localizar todos os arquivos de bancos de dados que possuam o mesmo Creator ID (CACL), que serão deletados automaticamente com a aplicação. Deixar de utilizar este recurso, implica na necessidade de desenvolver um desinstalador para remover os arquivos utilizados, ou pior: Deixa arquivos "perdidos" no PDA de seu usuário.

Memória ocupada por uma aplicação

O Launcher padrão do Palm OS possui um painel de informações sobre todas as aplicações instaladas no sistema. Este painel é acessado facilmente através do menu "App / Info...", como mostra a figura abaixo.

Palm OS Info Panel

Através do Creator ID, o painel de informações do Palm OS é capaz de identificar todos os arquivos relacionados a cada aplicação (Todos os PDBs e PRCs que possuem o mesmo Creator ID) e calcular exatamente quanto espaço em memória cada aplicação ocupa. Por isso, se seus bancos de dados utilizam Creator ID diferente da sua aplicação, cuidado! Você pode estar visualizando informações incorretas neste painel.

O Creator ID e o Type

Além de possuirem o identificador Creator ID, todas as aplicações Palm OS (.prc), assim como os bancos de dados (.pdb) possuem outro identificador, também de quatro bytes, chamado Type, utilizado para classificar melhor o tipo do banco de dados. Este identificador serve para ajudar as aplicações e o sistema operacional a distinguirem os diferentes bancos de dados que possuem o mesmo Creator ID, e acaba por formar uma chave composta que identifica cada arquivo no Palm OS.

Por padrão, as aplicações Palm OS (.prc) possuem o type 'appl', enquanto os bancos de dados possuem qualquer valor de quatro bytes no type, desde que não sejam todos com letra minúscula, já que estes estão reservados para os programas fabricados pela Palm/Access. Uma boa prática adotada por muitos desenvolvedores (e também por algumas ferramentas de desenvolvimento) é definir 'DATA', com todas as letras em maiúsculo, no type nos bancos de dados das aplicações.

Em nosso exemplo do Cadastro de Clientes, poderia ficar assim:

  • Aplicação
    • Creator ID: CACL
    • Type: appl
  • Tabela de Clientes
    • Creator ID: CACL
    • Type: DATA

Existem também as Shared Libraries (Bibliotecas Compartilhadas), que são bibliotecas de código que podem ser compartilhadas por diversas aplicações. Estas bibliotecas (que assim como as aplicações, são arquivos .prc) recebem por padrão o type 'libr'.

Os valores 'appl' e 'libr' possuem um significado especial para o Palm OS, e por isso devem sempre ser utilizados. É através do type que o Launcher do Palm OS consegue identificar as aplicações. Dessa forma, todas as aplicações (.prc) devem sempre possuir o type 'appl' e todas as bibliotecas compartilhadas (Shared Libraries) devem possuir o type 'libr'.

Regras para Creator IDs e Types

Ambos são case-sensitive, e são compostos por quatro caracteres ASCII que podem ir do 32 até o 126 (decimal), e normalmente são utilizados os caracteres de 'a' até 'z', de 'A' até 'Z' e os número de '0' até '9'. Em outras palavras, existe diferença entre letras maiúsculas e minúsculas, ou seja, o Creator ID 'CACL' é diferente do Creator ID 'cACL'.

Como explicado acima, Types e Creator IDs inteiramente com letras minúsculas estão reservados para os programas da Palm/Access, e não devem ser utilizados. O Creator ID e o Type de suas aplicações devem conter pelo menos uma letra maiúscula ou número ou caracter especial (Por exemplo: !"#$%'()*+,-./[]), para não correr o risco de estar em conflito com outras aplicações desenvolvidas pela Palm/Access.

Além de adotar a medida acima, para evitar que sua aplicação possa entrar em conflito com aplicações desenvolvidas por terceiros, deve-se registrar o Creator ID no site da Palm/Access, explicado com detalhes abaixo.

Registrando seu Creator ID no site da Palm/Access

Como explicado acima, todas as aplicações (.prc) Palm OS possuem as seguintes características:

  • Creator ID de quatro digitos;
  • Type com o valor 'appl', para ser identificado como um arquivo executável.

Assim, o Creator ID de sua aplicação deve ser único e nenhuma outra aplicação deve possuir o mesmo Creator ID que a sua. Se isso ocorrer, e você instalar dois aplicativos com o mesmo Creator ID, somente aquele que for instalado por último será o utilizado. Aplicações com o mesmo Creator ID não podem co-existir no mesmo dispositivo, e o mais recente sempre sobrescreve o anterior, não importando o nome que o arquivo possuia antes de ser enviado para o dispositivo. Dentro do Palm OS, o identificador é o Creator ID.

Para permitir que empresas/desenvolvedores possam ter um Creator ID único no mundo para cada aplicação, e assim evitar conflitos, a Palm/Access criou uma base de dados central, onde podemos registrar o Creator ID de cada uma de nossas aplicações, e dessa forma eles ficam reservados apenas para nossa utilização.

Essa medida não impede efetivamente que existam aplicações com Creator IDs idênticos, mas como é de interesse da toda empresa/desenvolvedor ter seu ID único, todos consultam a base de dados de Creator IDs antes de atribuir IDs para suas aplicações. Afinal ninguém quer ter sua aplicação substituída por causa disso.

Registrar Creator ID na base de dados da Palm/Access

Assim, antes de atribuir um Creator ID para suas aplicações, verifique na base de dados da Palm/Access se o mesmo já está reservado, e quando tiver a certeza de que o ID está livre, registre-o, e só então distribua suas aplicações. Caso ainda não faça parte do programa Access Developer Network, será necessário cadastrar-se no site e em seguida acessar o item Manage My Applications.

Descobrindo o Creator ID de outras aplicações

Se desejarmos modificar o banco de dados de outra aplicação, por exemplo, ou ainda executar uma outra aplicação a partir da nossa, precisamos conhecer o Creator ID e o Type do arquivo que desejamos manipular.

Existem diversas formas de conhecer o Creator ID e o Type dos arquivos do Palm OS, e uma das formas mais simples é utilizar um explorador/gerenciador de arquivos, como por exemplo, o FileZ da nosleep software.

FileZ

O FileZ é um software freeware, e está disponível em nossa seção de Downloads.

Sobre o Autor

Caio ProieteCaio Proiete é Arquiteto de Soluções, especialista em desenvolvimento de softwares para PDAs e telefones celulares, principalmente nas plataformas Palm OS, Windows Mobile e Symbian OS.

Atualmente suas principais ferramentas/tecnologias de trabalho incluem CodeWarrior C++, Handheld Basic, eMbedded Visual C++, .NET Compact Framework, C# .NET, e Carbide.c++.

Possui extensa experiência em arquitetura e desenvolvimento de sistemas baseados em web e smart-clients, gerenciamento de projetos e treinamento, e atua também como instrutor oficial Microsoft em centros de treinamentos (CLPS), e é detentor das seguintes certificações:

  • MCT - Microsoft Certified Trainer;
  • MCSD - Microsoft Certified Solution Developer;
  • MCDBA - Microsoft Certified Database Administrator;
  • MCAD .NET - Microsoft Certified Application Developer;
  • MCSD .NET - Microsoft Certified Solution Developer for .NET;
  • MCTS - Microsoft Certified Technology Specialist for Windows Mobile.

Veja o todos os artigos publicados por Caio Proiete no PDAExpert.

Artigos Relacionados

2 Comentários »

Comentários via RSS TrackBack URI

  1. Artigos > Palm OS > Handheld Basic > HB++: Executar aplicação após Reset - PDAExpert - Saber Projetar | Saber Desenvolver em 27/04/2007 15:38

    […] Palm OS possui em suas configurações de preferência uma propriedade onde está definido o Creator ID da aplicação que será executada após cada reset. Como citado acima, na maioria dos PDAs está […]

  2. Dr. José Carlos Penteado em 16/05/2007 14:11

    Pessoas com seu conhecimento podem fazer muito para melhorar a comunidade! Parabéns!

Envie seu comentário

ATENÇÃO: A área de comentários deve ser utilizada apenas para dúvidas sobre este artigo. Para dúvidas não relacionadas a este artigo, utilize o Fórum PDAExpert.net.

Nome

E-mail

URL

Comentário

XHTML: São permitidas as seguintes tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

campos obrigatórios