MVS/ESA Open Edition: O Sistema Operacional mais Aberto do Mercado
Autora: Sonia Naomi Yabiku
Para muitos deve soar estranho, senão fora de moda, ouvir ou ler alguma coisa de mainframe nos dias de hoje. Atualmente o que todos buscam saber, em termos de sistemas operacionais, é sobre UNIX, WINDOWS NT, WINDOWS/95, OS/2 WARP ...
De qualquer modo, resolvi arriscar este assunto porque acredito que muitos não sabem que hoje temos um ambiente UNIX no mainframe, aderente ao POSIX da IEEE e ao XPG4 e XPG4.2 da X/Open, ou seja, um UNIX certificado por organismos internacionais de padronização. O que significa isto, afinal de contas? Este é o objetivo deste artigo.
No decorrer da década de 80, a idéia de Sistemas Abertos foi amadurecendo. Usuários e fornecedores foram constatando que, aderindo a certos padrões de hardware, software e interfaces de comunicação, a compra, conexão e utilização de computadores se tornaria bem mais fácil. A idéia de padronização foi ganhando força, principalmente devido ao padrão "de fato" instaurado pela IBM com seu PC, aliado com o sistema operacional da Microsoft MS-DOS (proprietário), que mostrou o quão bem a idéia poderia funcionar. Com a padronização do PC a competitividade entre fornecedores se acirrou, o que causou queda nos preços e disponibilizou aos usuários centenas de máquinas compatíveis. Com o PC padrão, se não gostarmos do fabricante, temos uma série de outras opções sem termos que nos preocupar com o investimento efetuado em software. E se não gostarmos de um software que compramos, podemos trocá-lo sem ter que mexer no hardware.
Se funcionou tão bem para os PC´s, por que não para qualquer computador. A idéia continua sendo ótima, mas ainda temos um longo e espinhoso caminho a percorrer antes que isso se transforme em realidade. Digo espinhoso porque além da diversidade de opiniões sobre o que significa sistema aberto, de repente estamos sendo bombardeados com tantos padrões e sopinhas de letras (POSIX, XPG3, XPG4, OSI, TCP/IP, SNA, LU6.2, TOKEN-RING, ATM, SVID, AES, MOTIF, XWINDOWS, OPENLOOK, DCE, BSD, DRDA ...) que ficou difícil saber, além de entender, em qual padrão apostar, qual padrão irá prevalecer, visto que a definição de padrões é, muitas vezes, uma questão política de fabricantes, cada um puxando a brasa para a sua sardinha. Enfim, além de se ter a definição de um padrão, é preciso que os fabricantes de hardware e software os adotem para que o usuário possa realmente usufruir as vantagens da padronização.
O Unix, como muitos já sabem, de sistema operacional padrão de engenheiros e programadores, entrou na área comercial e começou a virar sinônimo de sistema aberto. Mas sabemos, também, que a interoperabilidade e a portabilidade de aplicações, pré-requisitos de um sistema aberto, não é tão transparente assim, uma vez que hoje temos Unix de diversos sabores: Xenix, Ultrix, Dynix, Aix, Aux, Berkeley 4.0, System 5 ... Daí os esforços dos organismos de padronização em definir interfaces, ou pontos de conexão entre máquinas ou entre o hardware e o software, padrão, de forma a oferecer aos usuários os benefícios da padronização e ao mesmo tempo permitir aos fabricantes uma liberdade de ação até o ponto da interface.
A IBM, como outros fabricantes, para não ficar de fora da nova onda, implementou no seu sistema operacional de mainframe uma espécie de "servidor" Unix, mas um Unix aderente ao POSIX da IEEE e agora com o certificado XPG4 e XPG4.2 da X/Open, um organismo independente que congrega fabricantes e usuários dos EUA e Europa, e uma variedade de organismos internacionais de padronização como por exemplo a OSF e a UI (Unix International).
Este "ambiente" no MVS foi denominado Open Edition, e o que temos são implementações de API´s, SHELL´s, sockets, utilitários, suporte à terminais ASCII, suporte à linguagem C/C++, de maneira que o programador de aplicações C e o usuário final trabalham no mainframe como se estivessem trabalhando no Unix.
Foram implementadas as especificações das API´s (Application Programming Interface) do POSIX 1003.1, 1003.1a, 1003.1c e 1003.4a, e as especificações das funções Unix do XPG4 e XPG4.2 (API´s, Unix shell interface, sockets), conjuntamente com o HFS (Hierarchical File System - Estrutura de arquivos hierárquica similar a de um winchester de RISC, com diretórios e subdiretórios), que traduzindo para "Unix-quez" significam funções de file system: fgetc(), fgets(), getc(), getc(), getchar(), fputc(), fwrite(), chdir(), chmod(), mkdir(), ...; funções de controle de processos: fork(), wait(), kill(), ...; funções matemáticas: log, rand(), ...; funções de controle de threads: pthread_create(), pthread_cancel(), pthread_join(), pthread_kill(), ...; funções de manipulação de dados: bsearch(), qsort(), ...; subrotinas em C (chamáveis por outras linguagens para executar as funções anteriormente descritas); entre outras.
Foi implementado, também, o básico do DCE (Distributed Computing Environment) que vem a ser o padrão da OSF para ambientes de processamento distribuído, onde o mainframe no papel de servidor, pode atuar como servidor de aplicações, servidor de dados (servidor NFS) e servidor de transações, com uma interface RPC para acessar transações CICS.
Estão previstos para as próximas versões a parte cliente do NFS, quando o mainframe, através de RPC, acessará dados em outros servidores da rede; o suporte à objetos; a implementação do DCE 1.1 completo; o DFS (Distributed File System); o servidor de segurança; e outras melhorias.
Enfim, o que a IBM está buscando, em termos de mainframe, é se posicionar dentro da nova realidade de processamento distribuído, arquitetura cliente/servidor, com plataformas heterogêneas num sistema aberto. Neste ambiente, o mainframe pode atuar tanto como servidor corporativo quanto como cliente buscando dados e aplicações em outros servidores da rede.
O mainframe, apesar de mal falado nessa era de sistemas abertos como sinônimo de sistema proprietário, apresenta-se com nova "cara" na solução proposta com o Open Edition. Pela sua robustez (segurança, gerenciamento, disponibilidade ...) e por sua capacidade de processamento de grandes volumes de dados (performance de I/O), e agora com uma interface familiar aos usuários Unix, coloca-se novamente nesse contexto como uma opção interessante e viável em projetos que necessitem desse tipo de recurso, sem que isso signifique deixar de usufruir o que as outras tecnologias têm de melhor: interfaces GUI, facilidade de uso, custo do hardware mais acessível, etc. Então, se temos necessidade e podemos usufruir o melhor desses diversos mundos tecnológicos, por que não?
Para muitos deve soar estranho, senão fora de moda, ouvir ou ler alguma coisa de mainframe nos dias de hoje. Atualmente o que todos buscam saber, em termos de sistemas operacionais, é sobre UNIX, WINDOWS NT, WINDOWS/95, OS/2 WARP ...
De qualquer modo, resolvi arriscar este assunto porque acredito que muitos não sabem que hoje temos um ambiente UNIX no mainframe, aderente ao POSIX da IEEE e ao XPG4 e XPG4.2 da X/Open, ou seja, um UNIX certificado por organismos internacionais de padronização. O que significa isto, afinal de contas? Este é o objetivo deste artigo.
No decorrer da década de 80, a idéia de Sistemas Abertos foi amadurecendo. Usuários e fornecedores foram constatando que, aderindo a certos padrões de hardware, software e interfaces de comunicação, a compra, conexão e utilização de computadores se tornaria bem mais fácil. A idéia de padronização foi ganhando força, principalmente devido ao padrão "de fato" instaurado pela IBM com seu PC, aliado com o sistema operacional da Microsoft MS-DOS (proprietário), que mostrou o quão bem a idéia poderia funcionar. Com a padronização do PC a competitividade entre fornecedores se acirrou, o que causou queda nos preços e disponibilizou aos usuários centenas de máquinas compatíveis. Com o PC padrão, se não gostarmos do fabricante, temos uma série de outras opções sem termos que nos preocupar com o investimento efetuado em software. E se não gostarmos de um software que compramos, podemos trocá-lo sem ter que mexer no hardware.
Se funcionou tão bem para os PC´s, por que não para qualquer computador. A idéia continua sendo ótima, mas ainda temos um longo e espinhoso caminho a percorrer antes que isso se transforme em realidade. Digo espinhoso porque além da diversidade de opiniões sobre o que significa sistema aberto, de repente estamos sendo bombardeados com tantos padrões e sopinhas de letras (POSIX, XPG3, XPG4, OSI, TCP/IP, SNA, LU6.2, TOKEN-RING, ATM, SVID, AES, MOTIF, XWINDOWS, OPENLOOK, DCE, BSD, DRDA ...) que ficou difícil saber, além de entender, em qual padrão apostar, qual padrão irá prevalecer, visto que a definição de padrões é, muitas vezes, uma questão política de fabricantes, cada um puxando a brasa para a sua sardinha. Enfim, além de se ter a definição de um padrão, é preciso que os fabricantes de hardware e software os adotem para que o usuário possa realmente usufruir as vantagens da padronização.
O Unix, como muitos já sabem, de sistema operacional padrão de engenheiros e programadores, entrou na área comercial e começou a virar sinônimo de sistema aberto. Mas sabemos, também, que a interoperabilidade e a portabilidade de aplicações, pré-requisitos de um sistema aberto, não é tão transparente assim, uma vez que hoje temos Unix de diversos sabores: Xenix, Ultrix, Dynix, Aix, Aux, Berkeley 4.0, System 5 ... Daí os esforços dos organismos de padronização em definir interfaces, ou pontos de conexão entre máquinas ou entre o hardware e o software, padrão, de forma a oferecer aos usuários os benefícios da padronização e ao mesmo tempo permitir aos fabricantes uma liberdade de ação até o ponto da interface.
A IBM, como outros fabricantes, para não ficar de fora da nova onda, implementou no seu sistema operacional de mainframe uma espécie de "servidor" Unix, mas um Unix aderente ao POSIX da IEEE e agora com o certificado XPG4 e XPG4.2 da X/Open, um organismo independente que congrega fabricantes e usuários dos EUA e Europa, e uma variedade de organismos internacionais de padronização como por exemplo a OSF e a UI (Unix International).
Este "ambiente" no MVS foi denominado Open Edition, e o que temos são implementações de API´s, SHELL´s, sockets, utilitários, suporte à terminais ASCII, suporte à linguagem C/C++, de maneira que o programador de aplicações C e o usuário final trabalham no mainframe como se estivessem trabalhando no Unix.
Foram implementadas as especificações das API´s (Application Programming Interface) do POSIX 1003.1, 1003.1a, 1003.1c e 1003.4a, e as especificações das funções Unix do XPG4 e XPG4.2 (API´s, Unix shell interface, sockets), conjuntamente com o HFS (Hierarchical File System - Estrutura de arquivos hierárquica similar a de um winchester de RISC, com diretórios e subdiretórios), que traduzindo para "Unix-quez" significam funções de file system: fgetc(), fgets(), getc(), getc(), getchar(), fputc(), fwrite(), chdir(), chmod(), mkdir(), ...; funções de controle de processos: fork(), wait(), kill(), ...; funções matemáticas: log, rand(), ...; funções de controle de threads: pthread_create(), pthread_cancel(), pthread_join(), pthread_kill(), ...; funções de manipulação de dados: bsearch(), qsort(), ...; subrotinas em C (chamáveis por outras linguagens para executar as funções anteriormente descritas); entre outras.
Foi implementado, também, o básico do DCE (Distributed Computing Environment) que vem a ser o padrão da OSF para ambientes de processamento distribuído, onde o mainframe no papel de servidor, pode atuar como servidor de aplicações, servidor de dados (servidor NFS) e servidor de transações, com uma interface RPC para acessar transações CICS.
Estão previstos para as próximas versões a parte cliente do NFS, quando o mainframe, através de RPC, acessará dados em outros servidores da rede; o suporte à objetos; a implementação do DCE 1.1 completo; o DFS (Distributed File System); o servidor de segurança; e outras melhorias.
Enfim, o que a IBM está buscando, em termos de mainframe, é se posicionar dentro da nova realidade de processamento distribuído, arquitetura cliente/servidor, com plataformas heterogêneas num sistema aberto. Neste ambiente, o mainframe pode atuar tanto como servidor corporativo quanto como cliente buscando dados e aplicações em outros servidores da rede.
O mainframe, apesar de mal falado nessa era de sistemas abertos como sinônimo de sistema proprietário, apresenta-se com nova "cara" na solução proposta com o Open Edition. Pela sua robustez (segurança, gerenciamento, disponibilidade ...) e por sua capacidade de processamento de grandes volumes de dados (performance de I/O), e agora com uma interface familiar aos usuários Unix, coloca-se novamente nesse contexto como uma opção interessante e viável em projetos que necessitem desse tipo de recurso, sem que isso signifique deixar de usufruir o que as outras tecnologias têm de melhor: interfaces GUI, facilidade de uso, custo do hardware mais acessível, etc. Então, se temos necessidade e podemos usufruir o melhor desses diversos mundos tecnológicos, por que não?