O ambiente AS/400 oferece um suporte robusto para desenvolvimento orientado a objetos, especialmente por meio do uso de SOM (System Object Model) e DSOM (Distributed System Object Model). Diferentemente das tradicionais linguagens orientadas a objetos como C++, que frequentemente exigem recompilação dos programas clientes sempre que há alteração nas bibliotecas de classes, o SOM foi criado para superar essa limitação, proporcionando um modelo de objetos neutro em relação à linguagem. Objetos definidos no IDL (Interface Definition Language) do SOM podem ser utilizados tanto por linguagens OO quanto não-OO, eliminando a necessidade de recompilação constante e permitindo um acoplamento dinâmico em tempo de execução, preservando a herança e a integridade da arquitetura orientada a objetos.
A principal vantagem do SOM é sua capacidade de vincular objetos dinamicamente, permitindo que uma aplicação interaja com objetos desconhecidos na fase de compilação. Essa flexibilidade é ampliada pelo DSOM, que habilita o uso transparente de objetos distribuídos em rede, possibilitando que métodos sejam executados em objetos localizados em sistemas remotos sem que o usuário final perceba a complexidade por trás dessa comunicação. A tecnologia de DSOM utiliza "function shipping" em vez de "data shipping", significando que as chamadas de função são enviadas ao objeto remoto, que permanece em seu local, evitando a transferência desnecessária de dados.
No AS/400, a implementação do SOM é especialmente sofisticada, integrando suporte direto no sistema operacional para objetos persistentes, através do SOMobjects, recurso disponível a partir da versão V3R6. Essa persistência é sustentada pelo conceito de armazenamento de nível único (single-level store), que elimina a responsabilidade do programador em gerenciar a gravação dos dados em disco, garantindo que os objetos protegidos criados sejam automaticamente armazenados e recuperados, como quaisquer outros objetos do sistema OS/400. Objetos protegidos são tratados como recursos encapsulados, possuindo nome e localização em diretórios IFS, podendo ser compartilhados, salvos e restaurados com comandos nativos do sistema.
O DSOM no AS/400 também depende da infraestrutura TCP/IP para estabelecer as conexões entre objetos locais e remotos, usando repositórios de informações que armazenam metadados sobre a localização e estrutura dos objetos. Isso reforça a transparência e facilita o desenvolvimento distribuído, integrando múltiplos sistemas heterogêneos sob um modelo comum, o que é reforçado pela adoção conjunta da tecnologia por grandes fabricantes como IBM, HP e SunSoft. Dessa forma, aplicações desenvolvidas para SOMobjects no OS/400 podem operar multiplataformas, aumentando a portabilidade e reduzindo o esforço de adaptação.
Além das bibliotecas de classes, SOMobjects disponibiliza frameworks, que são conjuntos de objetos organizados para solucionar problemas específicos de maneira mais dirigida. O framework DSOM, por exemplo, é fundamental para o desenvolvimento de aplicações distribuídas, abstraindo a complexidade da comunicação remota e a criação de proxies que agem como representantes locais dos objetos remotos. Isso permite aos desenvolvedores concentrarem-se na lógica da aplicação sem se preocupar com os detalhes da rede ou sincronização.
A integração do SOM e DSOM com ferramentas como VisualAge e ILE C/C++ no AS/400 cria um ambiente de desenvolvimento poderoso, permitindo reutilização de código, suporte a linguagens não orientadas a objetos, e acesso a diversos protocolos de comunicação, bancos de dados locais e remotos, além de multimídia. Smalltalk, uma linguagem puramente orientada a objetos e base do VisualAge, é também disponibilizada como produto independente, pois muitos desenvolvedores preferem trabalhar diretamente com sua abordagem OO genuína, em vez de usá-la apenas como parte do ambiente VisualAge.
É importante entender que o uso do SOM e DSOM no AS/400 não apenas melhora a modularidade e a reutilização do código, mas representa uma evolução significativa no conceito de interoperabilidade e persistência de objetos em ambientes corporativos complexos. O modelo permite construir aplicações escaláveis, distribuídas e independentes de linguagem, alinhadas às necessidades atuais de sistemas heterogêneos e dinâmicos.
Além disso, a arquitetura SOMobjects no AS/400 enfatiza a segurança e o controle de acesso, integrando-se profundamente com os mecanismos do sistema operacional, como os ponteiros de sistema e componentes de autoridade no SLIC (System Licensed Internal Code). Isso garante que a manipulação dos objetos protegidos respeite rigorosamente as políticas de segurança do ambiente corporativo, evitando acessos não autorizados e preservando a integridade dos dados.
Assim, ao explorar as capacidades do SOM e DSOM no AS/400, o desenvolvedor obtém uma plataforma onde a complexidade da programação orientada a objetos distribuída é significativamente reduzida, com suporte nativo à persistência e segurança, facilitando o desenvolvimento de sistemas corporativos robustos, escaláveis e eficientes.
Como o VLIW e os coprocessadores moldaram o futuro do AS/400
No desenvolvimento do AS/400, a introdução de coprocessadores de alto desempenho, especialmente aqueles capazes de realizar cálculos de ponto flutuante complexos, representou uma virada tecnológica que transcendeu seu uso inicial em computação científica. A busca por aplicações práticas levou ao interesse nas indústrias bancária e de valores mobiliários, áreas que demandavam computação rápida e precisa.
O coprocessador FPS-164, apesar de seu tamanho considerável e das exigências ambientais — como a necessidade de ar refrigerado intenso e instalações especiais —, demonstrou um desempenho extraordinário. Seu funcionamento, marcado por um ruído intenso, contrastava com a baixa temperatura ambiente, refletindo a intensidade do processamento. Embora versões mais compactas e adaptadas para ambientes de escritório tenham sido planejadas, o cancelamento do projeto Fort Knox direcionou todos os esforços para o projeto Silverlake, impedindo a integração direta do FPS-164 no System/38. Contudo, as lições extraídas dessa experiência se revelaram valiosas para a evolução dos sistemas AS/400, especialmente no desenvolvimento de coprocessadores e na implementação da arquitetura VLIW (Very Long Instruction Word).
O FPS foi pioneiro ao operar com instruções longas contendo múltiplas operações em paralelo. A máquina continha dez unidades funcionais, cada uma requerendo sua subinstrução em cada ciclo, permitindo que um loop vetorial completo fosse executado em uma única instrução. Ao invés de depender exclusivamente de compiladores otimizadores, o FPS fornecia bibliotecas em linguagem assembly, facilitando o uso eficiente do sistema. A interação entre o computador hospedeiro e as rotinas de instruções longas revelava semelhanças com o microcódigo de palavra larga do HMC (Horizontal MicroCode) utilizado no System/38, que embora menos extenso, já permitia o disparo simultâneo de múltiplas funções no processador.
Paralelamente, pesquisadores de Yale propuseram máquinas VLIW com instruções extremamente largas — de até 512 bits — que agrupavam sequências prováveis de operações em instruções compactadas, otimizadas por técnicas de trace scheduling. Esta abordagem, inicialmente concebida para gerar microcódigo horizontal, foi comercializada pela Multiflow Computers, empresa que não sobreviveu financeiramente, mas cuja inovação perdurou. O interesse de Rochester pelo VLIW manteve-se vivo, especialmente em relação à integração dessas técnicas ao HMC. Após o anúncio do AS/400, iniciou-se o projeto da próxima geração de processadores, onde o VLIW passou a ocupar papel central.
Dave Luick, líder desse esforço, desempenhou um papel fundamental desde o System/38 Model 7, sendo um entusiasta da adoção de tecnologias de alta performance. A arquitetura C-RISC, em desenvolvimento antes da adoção do PowerPC, já incorporava características híbridas de RISC e HMC com traços de VLIW. Após a decisão pelo PowerPC, a equipe de Rochester dedicou-se ao desenvolvimento de um processador VLIW compatível com PowerPC, em parceria com o IBM Research, combinando avanços de hardware e compiladores — fator crítico para o sucesso do VLIW.
A independência tecnológica do AS/400, que isola o cliente das complexidades da plataforma, criou condições ideais para a introdução do VLIW sem prejudicar a base de usuários. Os estudos indicaram que processadores VLIW poderiam ter ciclos mais curtos devido à estrutura mais simples, possibilitando velocidades duas vezes maiores que os PowerPC padrão e um grau de paralelismo substancialmente maior — passando de 5 ou 6 pipelines para 16 ou mais, em um único chip.
Para exemplificar, um processador CMOS simples rodando a 154 MHz poderia ser superado por um processador VLIW fabricado na mesma tecnologia, operando a 308 MHz. Além disso, simulações demonstraram que o desempenho real do VLIW em cargas comerciais seria cerca de 12 vezes superior ao do processador RISC convencional. A compatibilidade total com PowerPC e a previsão de lançamento já na década de 1990 indicavam a viabilidade comercial dessa arquitetura, até mesmo com parcerias externas como com a HP.
O uso de múltiplos processadores, uma realidade já consolidada no AS/400 com configurações até quatro vias, também estava previsto para evoluir, explorando tanto clusters multicomputadores — compostos por múltiplos nós interligados via LAN ou WAN — quanto o multiprocessamento simétrico (SMP). Embora o multiprocessamento assimétrico (ASMP), envolvendo aceleradores e coprocessadores, fosse deixado para discussão posterior, o cenário apontava para uma convergência entre escalabilidade, paralelismo e inovação tecnológica.
A experiência com o FPS e o desenvolvimento do VLIW exemplificam como o AS/400 incorporou avanços radicais, antecipando tendências que se tornariam padrões da indústria. A capacidade de combinar arquitetura avançada, técnicas sofisticadas de compilação e integração com múltiplos processadores proporcionou ao AS/400 um caminho promissor para enfrentar desafios futuros.
Além disso, é essencial compreender que a adoção do VLIW e a evolução do multiprocessamento não dependem apenas do hardware, mas de um alinhamento estreito entre arquitetura e software. A complexidade na geração de código otimizado para instruções largas e paralelas exige avanços significativos em compiladores, análise de fluxo e gestão de recursos computacionais. O sucesso dessas tecnologias reside na harmonização desses elementos, refletindo uma visão holística do design computacional.
Outro ponto importante é a influência das limitações físicas e ambientais na concepção de sistemas de alta performance. O exemplo do FPS-164 destaca como a engenharia térmica e o ambiente de operação são tão críticos quanto as inovações internas do processador. O equilíbrio entre potência de processamento e requisitos físicos condiciona as possibilidades de implementação prática.
Por fim, o desenvolvimento do AS/400 mostra que a independência tecnológica e a flexibilidade da plataforma permitem a experimentação e a adoção de tecnologias disruptivas com menor risco para os usuários finais. Essa característica é fundamental para a longevidade e evolução contínua de sistemas complexos, possibilitando que inovações radicais sejam introduzidas gradualmente e com impacto controlado.
Como os Objetos do Sistema AS/400 São Nomeados e Gerenciados?
As respostas às solicitações no sistema AS/400 vinham na forma de APIs que extraíam informações sobre objetos e sistemas para um tipo especial de objeto chamado espaço de usuário (user space). Esse espaço permitia que programas lessem dados mais rapidamente do que diretamente de arquivos de banco de dados. Dentro do System/38, precursor do AS/400, havia objetos tanto no sistema operacional quanto no interpretador de instruções de máquina (MI). Essas duas categorias de objetos foram definidas e nomeadas por dois grupos diferentes dentro da organização de desenvolvimento, cada um adotando filosofias distintas de nomenclatura.
Um grupo cuidava dos objetos CPF, que mais tarde foram renomeados para objetos do OS/400 com o lançamento do AS/400. O outro grupo definia o conjunto de instruções do MI e os objetos do sistema MI. Curiosamente, nem sempre havia uma correspondência direta entre os nomes dos objetos do OS/400 e os objetos do sistema MI. Em alguns casos, a relação entre eles era um-para-um — ou seja, um objeto OS/400 correspondia exatamente a um objeto MI —, enquanto em outros era um-para-muitos, onde um objeto OS/400 era composto por vários objetos MI. No entanto, não existia uma relação muitos-para-um ou muitos-para-muitos entre esses objetos.
Mesmo nos casos em que a correspondência era direta, os nomes nem sempre coincidiam. Por exemplo, o OS/400 possui um objeto chamado “biblioteca” (library), enquanto no MI seu equivalente é chamado “contexto” (context). Isso se deve às filosofias contrastantes adotadas pelos dois grupos de desenvolvedores. Um defendia a renomeação completa dos objetos para forçar o entendimento da nova estrutura, evitando que preconceitos e expectativas baseados em nomes familiares prejudicassem a adoção do novo sistema. Assim, “biblioteca” virou “contexto” para não sugerir analogias errôneas com outros sistemas. Glenn Henry, gerente de programação do System/38, foi um defensor dessa abordagem radical.
O outro grupo seguiu um caminho mais conservador e pragmático, inspirando-se na estratégia de Thomas Edison, que usava nomes familiares para facilitar a aceitação do novo sistema, mesmo que os conceitos fossem diferentes na essência. Assim, preferiam dar nomes aos objetos que soassem familiares ao usuário, mesmo que o funcionamento interno fosse distinto. Esse contraste entre filosofias explica as diferenças de nomenclatura entre OS/400 e MI.
No AS/400, existem diversos tipos de objetos tanto no OS/400 quanto no MI, alguns correspondendo diretamente e outros sendo formados por múltiplos objetos MI. Por exemplo, um arquivo de banco de dados OS/400 pode ser composto por vários objetos MI, incluindo “data space” para armazenar dados físicos e definições de campo, “data space index” para a visão lógica dos dados, “cursor” para acessar os registros usando essa visão lógica e espaços que funcionam como buffers de entrada/saída ou descrições do arquivo. Essa decomposição detalhada permite um gerenciamento sofisticado dos dados e operações, distribuindo responsabilidades em objetos específicos.
Para localizar objetos no sistema, a estrutura de bibliotecas é fundamental. Diferente do sistema de diretórios hierárquicos comuns em PCs e Unix, o OS/400 utiliza uma hierarquia de nível único, onde cada biblioteca organiza objetos em grupos. Para encontrar um objeto, é necessário informar o nome da biblioteca, o nome do objeto e o tipo do objeto, já que objetos com nomes idênticos podem coexistir desde que sejam de tipos diferentes. Essa abordagem simplifica a organização e o acesso aos objetos, garantindo unicidade e clareza na manipulação dos recursos do sistema.
Além do que foi explicitado, é importante compreender que o sistema AS/400 foi projetado para garantir consistência e integridade no gerenciamento de objetos, mesmo com essa complexidade de nomenclatura e estrutura. O entendimento do mapeamento entre os objetos OS/400 e MI é fundamental para administradores e desenvolvedores que trabalham diretamente com o sistema, pois possibilita uma visão clara da arquitetura subjacente, facilitando a resolução de problemas e a otimização de recursos. Também é relevante notar que essa abordagem baseada em objetos e espaços de usuário antecipou conceitos modernos de virtualização e abstração de dados, influenciando a evolução dos sistemas operacionais empresariais.
Como a Arquitetura de Memória do AS/400 Impacta o Desempenho de Processos
No contexto da memória e gerenciamento de processos, o AS/400 adota um modelo distinto que impacta diretamente a eficiência na troca de processos. Quando um novo processo é iniciado, os registradores do SLB (Segment Lookaside Buffer) precisam ser recarregados um por um, o que pode aumentar significativamente o número de ciclos de processador necessários para acessar a memória. Esse processo de recarga, até que os registradores do SLB sejam totalmente carregados, resulta em uma degradação de desempenho, pois cada acesso à memória é mais demorado durante essa fase inicial. Para ilustrar, em um cenário de leitura sequencial de banco de dados, seriam necessários pelo menos quatro endereços para traduzir — um para o programa, outro para o índice, um para o cursor e outro para o espaço de dados — o que representa uma sobrecarga inicial considerável.
Entretanto, no AS/400, há uma distinção fundamental. Diferente de outros sistemas que usam uma tabela de segmentos para mapear o endereço virtual à memória física, o AS/400 utiliza um único espaço de memória virtual para todos os processos. Esse modelo permite que o endereço efetivo seja o mesmo que o endereço virtual, eliminando a necessidade de mapeamento, o que evita a utilização da tabela de segmentos. Com isso, não há a degradação de desempenho associada à troca de processos que seria observada em sistemas tradicionais.
Além disso, o AS/400 contorna a necessidade de atualizar os registradores SLB a cada troca de processo, já que os programas no AS/400 não utilizam essa tabela, com exceção de processos de segurança de nível C2. Mesmo com essa exceção, apenas os processos em estado de usuário fazem uso da tabela de segmentos e dos registradores SLB, enquanto os processos do sistema operacional não são afetados por esse mecanismo. Isso contribui para um ganho significativo de desempenho, especialmente em operações que envolvem trocas de processos frequentes.
Em sistemas tradicionais, como o Windows NT, cada processo pode ter sua própria tabela de páginas privada. Isso implica que, quando ocorre uma troca de processo, é necessário substituir toda a tabela de páginas e recarregar os registradores TLB (Translation Lookaside Buffer) um a um, o que também gera degradação de desempenho. No AS/400, como todos os processos compartilham a mesma tabela de páginas, não há necessidade de limpar os registradores TLB a cada troca de processo. Isso significa que o AS/400 pode aproveitar um TLB maior de forma mais eficiente, já que as entradas mais recentes permanecem disponíveis por mais tempo, e a probabilidade de encontrar endereços recentemente utilizados no TLB aumenta com o número de registradores. Isso resulta em um desempenho mais rápido durante as trocas de processo.
Outro fator que contribui para a eficiência do AS/400 é o uso de memória cache. Em sistemas tradicionais, os processadores frequentemente precisam recarregar a cache de memória quando ocorre uma troca de processo, o que também pode afetar o desempenho. No entanto, no AS/400, devido à sua arquitetura de memória de nível único, esse problema é mitigado. A ausência da necessidade de purgar a cache ou os registradores TLB após cada troca de processo significa que o AS/400 pode realizar trocas de processos muito mais rapidamente do que outros sistemas.
Em sistemas tradicionais, a troca de processos é frequentemente um processo dispendioso em termos de tempo e recursos. Isso leva muitos sistemas operacionais a evitar trocas frequentes de processos, já que elas podem representar um alto custo de desempenho. Para mitigar essa sobrecarga, muitos desses sistemas dependem de processadores de alto desempenho. No entanto, o AS/400, devido ao seu modelo de gerenciamento de memória, pode realizar trocas de processos em um ritmo extremamente rápido, com um custo muito baixo em termos de instruções executadas. Estudos realizados pela divisão de pesquisa da IBM revelaram que em um ambiente típico de usuários do AS/400, uma troca de processo ocorre a cada 1.200 instruções, o que é significativamente mais rápido do que em outros sistemas que podem exigir 1.000 instruções ou mais apenas para realizar a troca de processo.
Essa capacidade de realizar trocas de processos de forma tão eficiente confere ao AS/400 uma vantagem significativa em ambientes interativos. Sistemas como o AS/400 foram otimizados para aplicações interativas e baseadas em transações, permitindo que muitos terminais se conectem simultaneamente a um único sistema. Um AS/400 pode facilmente suportar mais de 2.000 usuários simultâneos, um número que muitos de seus concorrentes, como o Unix e o Windows NT, têm dificuldades para alcançar. Essa característica torna o AS/400 uma excelente escolha para ambientes que exigem muitas trocas de processo, já que, apesar de não ter processadores tão rápidos quanto outros sistemas, ele realiza menos instruções para alcançar os mesmos resultados.
No entanto, em ambientes de processamento em lote, onde um único processo executa por um longo período de tempo, o desempenho do AS/400 pode não ser tão impressionante, pois a troca de processos não é um fator importante. No passado, os sistemas AS/400 não eram fortes em desempenho de lote, devido a limitações nos processadores. Embora a performance do processador tenha melhorado, o verdadeiro valor do AS/400 não está na velocidade bruta de processamento, mas na sua capacidade de lidar com muitas transações de forma eficiente.
Finalmente, ao comparar o desempenho de diferentes sistemas, é importante não apenas focar em métricas como MIPS (Milhões de Instruções por Segundo) ou MHz, que medem a velocidade do processador, mas considerar também como a arquitetura de memória e o gerenciamento de processos afetam a eficiência geral do sistema. O AS/400, com sua arquitetura de memória única, consegue realizar mais trabalho por transação, e o custo por transação é geralmente mais baixo, tornando-o uma solução ideal para ambientes que exigem processamento de grandes volumes de transações.
Como a Terapia com Óxido Nítrico Inalado Está Transformando o Tratamento de Recém-Nascidos Prematuros com Falência Respiratória
Como implementar um sistema de pagamento online eficaz para aluguel de bicicletas?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский