Como ignorar minas de tecnologia da informação

O artigo formula alguns problemas das tecnologias da informação (TI) e considera uma abordagem para sua solução, que pode ser do interesse de desenvolvedores de arquiteturas de sistemas de computadores e linguagens de programação, bem como de negócios na área de TI. Mas todos, com exceção de alguns , dificilmente acreditam que haja problemas, pelo menos no que é descrito neste artigo, especialmente porque o setor está desenvolvendo mais do que isso. Porém, embora alguns problemas não sejam reconhecidos, eles precisam ser resolvidos "de forma assustadora" por um longo tempo e gradualmente. E seria possível economizar mão de obra e dinheiro se você os resolver conscientemente na íntegra e de uma só vez.

Nem a economia nem as comunicações sociais são possíveis sem o uso de TI avançada. Então, vejamos por que as tecnologias atualmente em uso não são mais adequadas e o que deve ser substituído por elas. O autor ficará grato pela discussão construtiva qualificada e espera descobrir informações úteis sobre soluções modernas para os "problemas" levantados.

As idéias que definem a arquitetura dos computadores não mudaram muito desde a época de von Neumann. É baseado em um algoritmo no processo de execução de uma sequência de comandos cujos dados são processados. Portanto, os principais atores são os processos (Controlflow), que são fornecidos (de acordo com prioridades e hierarquia) recursos de computação sob o controle do sistema operacional (SO).

A sequência e a dependência do processamento de todos os dados no agregado são descritas no programa central (principal). E ao criar um novo tipo de dados, é necessário prever no programa líder o lançamento de um algoritmo para sua geração oportuna e organizar os momentos e o método de seu uso ("encontro") com outros programas. Mas, para isso, ainda é necessário coordenar as estruturas de dados que devem ser encontradas pelo desenvolvedor (não sem o interesse comercial deste último). E se os conjuntos de dados previamente processados ​​por processos líderes independentes, de acordo com a lógica do desenvolvimento da integração, começarem a se cruzar, será necessário desenvolver um novo processo líder que integre programas anteriormente independentes.
Tudo isso acontece continuamente à medida que a tecnologia digital progride e se desenvolve. E, portanto, mais e mais forças e meios são necessários apenas para manter os sistemas em condições de trabalho, que estão se tornando mais monopolistas e menos visíveis. Mesmo no nível corporativo, o número de diferentes classes de dados (tabelas ou estruturas que contêm dados) atinge centenas e milhares. É improvável que onde haja especialistas que, no geral, imaginem que, de fato, todos eles estejam armazenados. Ocorre que, com o desenvolvimento de sistemas de processamento em bancos de dados (DB), acumula-se "lixo" de dados em estruturas antigas, que ainda não participam de novos algoritmos de processamento, mas pode ser "captado" ao gerar uma solicitação de dados.

Muitas vezes, é mais fácil adicionar um novo complemento do que os antigos aos novos recursos do aplicativo do que usar tecnologias de programação de objetos existentes, em vez de entender os algoritmos e estruturas de dados existentes. E tantas vezes. É fácil ver que esse é um beco sem saída.

Obviamente, eles procuram e encontram maneiras de sair do impasse. Estes são sistemas de modificação de banco de dados “on the fly”, protocolos de mensagens e backbones de plataforma cruzada (barramentos) para troca de dados, etc. Mas se isso continuar mais, o ganho do próximo desenvolvimento de TI se tornará menor que os custos desse mesmo desenvolvimento. A TI visava um beco sem saída pelos seguintes motivos:

  • -, ;
  • -, , ;
  • -, , ( ), ;
  • , , . , -.

O autor não afirma ter um conhecimento abrangente das modernas plataformas de sistema e linguagens de programação, que começaram especialmente a se desenvolver após a idade da aposentadoria. Minha experiência em programação começou com o desenvolvimento de drivers para amostragem de dados de gravadores de telemetria para teste de aeronaves e motores de foguetes (inclusive para foguetes lunares).

Naqueles dias, todo o software para o complexo IVC (dois mashrooms de quase 200 metros quadrados cada) era esgotado por um programa com fio para a entrada inicial de um cartão perfurado e o lançamento do código nele contido, além de um mínimo de rotinas na forma de um pacote fino de cartões perfurados. O resto quem ele puder. Mas, para dispositivos especiais de gravação de telemetria, não havia software.

Eu tive que programar em códigos de máquina e em endereços absolutos, desenvolvendo ao mesmo tempo vários drivers para vários dispositivos e subprogramas de entrada / saída, começando com a conversão de números decimais em códigos binários e a formatação de volta. Bem, eu me referiria a "não passamos por isso" e até desistiu de uma queda de seis meses em Baikonur, onde um sistema semelhante foi implantado - naquela época, mesmo em viagens de negócios, eles distribuíam casacos de pele de carneiro muito bons. E quando finalmente cheguei lá, não era mais. Programadores do sexo feminino estudaram anteriormente lá, mas como eram de uma confiança especial de outro departamento, não deveriam, principalmente no verão. By the way, eles disseram que ainda havia montagem e tiro luminárias de teto. E assim, quando uma das meninas pressionou a tecla “Initial Input”,ao mesmo tempo, o primeiro tiro da pistola de montagem ressoou. A menina e a cadeira foram levadas a poucos metros do controle remoto.

Sim, e não pude me distrair com o desenvolvimento da arquitetura de todo o complexo de software e os estágios do processamento de telemetria, embora eu não fosse o chefe da época. Então, eu tive que desenvolver pessoalmente um trabalho de montagem e, em seguida, depuradores (para dois tipos diferentes de computadores, um dos quais também era cartão perfurado e a outra fita perfurada) em tempo real com interceptação de interrupções do sistema e detecção de um loop. Quando me formei no Instituto de Física e Tecnologia (MIPT), tive que enfrentar todo esse absurdo binário, deixando outros algoritmos computacionais claros. E eles me levaram a este escritório porque em um escritório de design vizinho (criado após a guerra e metade dos funcionários a princípio eram engenheiros e designers das fábricas alemãs Junkers e Messerschmidt que foram exportadas para a URSS junto com o equipamento,Eu estava modelando sistemas de motores turbojatos no complexo de computadores analógicos MPT-9 (lâmpada, a foto abaixo - sem fotos melhores; os armários são do tamanho de uma pessoa e os pequenos retângulos brancos são escalas de voltímetros por 100 volts) para depurar sistemas de controle de motores .



Digite AVM ou computador digital - qual a diferença? E devo dizer que, para os graduados do departamento de educação física daqueles tempos, quase não há. No meu corpo docente, no entanto, isso não foi de forma alguma ensinado e, como aconteceu, subsequentemente não foi solicitado. Os princípios de operação de computadores analógicos e digitais (semi-somadores, registros de turnos e tudo isso) nos foram ensinados no departamento militar, como as habilidades de calcular os parâmetros de lançamento de mísseis Terra-Terra da classe-alvo para o quinto dígito em uma régua de cálculo comprimento do medidor. Eu acredito que não há nada como isso agora. Mas quando eles decidiram introduzir um curso de programação em nosso curso, quase todos (!) Os estudantes declararam que, como futuros “cientistas puros”, nunca precisariam disso - e boicotaram as palestras. Obviamente, isso não se aplicava aos estudantes do Departamento de Engenharia de Computação - para eles, todos os microssegundos salvos nas rotinas do BESM-6,deu, de acordo com rumores, um prêmio de quase 20 rublos. Isso apesar do fato de a bolsa de estudos em cursos superiores ter sido de 55 rublos. E nós, os grevistas, cancelamos a entrega de trabalhos sobre programação - mas então eu e muitos de meus colegas acabamos de alguma forma programando.

Com o tempo, e para o nosso computador (bem, ainda não era o BESM-6, mas mais simples e muito menos conhecido), apareceu um tradutor com o Algol-60, mas sem bibliotecas de rotinas, de alguma forma não havia necessidade delas. Na linguagem assembly, sim, com um depurador, era fácil programar qualquer coisa. Além disso, chegou-se ao desenvolvimento de sistemas operacionais de fita magnética e disco intercambiáveis ​​(transparentes na lateral do software aplicativo e na interface do operador - é uma maneira possível de evitar discos em pé) com os gerentes, agora eles diziam: arquivos Bat. Por fim, foi desenvolvido um supervisor de tarefa que executava arquivos bat de script para recuperar os dados solicitados pelo operador. Ele até queria desenvolver um sistema operacional completo, que mais tarde se parecia com o Unix, mas em conexão com a transição para o tipo de computador Ryad, isso não se tornou inapropriado.

Para ser sincero, direi que estava envolvido não apenas no software do sistema. Quando se tornou necessário desenvolver um programa rápido de transformação de Fourier para análise espectral, eu tive que fazer isso rápida e rapidamente, principalmente porque não conseguia encontrar uma descrição inteligível do algoritmo FFT. Eu tive que reinventá-lo. Bem, coisas assim.

Observo que todos os algoritmos e sistemas de processamento desenvolvidos não foram publicados em nenhum lugar por causa do sigilo de tudo e de tudo neste departamento e, além disso, não estavam de acordo com o perfil da empresa - apenas um departamento de serviço.

Já antes da "perestroika", fui convidado para chefiar o laboratório de software de sistemas em uma filial de um instituto de pesquisa especializado em Moscou. A tarefa era desenvolver um sistema de computação distribuído em um controlador de controle multiprocessador, incluindo hardware e software. Bem, então este instituto de pesquisa, como muitos outros, deixou de existir. Eu considerei necessário incluir essa “nostalgia” no artigo apenas com o objetivo de mostrar que o autor tem algumas noções sobre sistemas de automação, possivelmente um pouco desatualizadas.

Portanto, se precisamos construir um organismo social vibrante e atraente em evolução e uma economia adequada a ele, então, como o autor acredita, é aconselhável mudar os princípios de organização da tecnologia da informação. Nomeadamente:

  • , , .

Um banco de dados global distribuído deve ser um conglomerado de bancos de dados organizados hierarquicamente, baseados em um único princípio.

Se a humanidade concordar em criar uma linguagem científica internacional na qual a relação "quem (o que), quem (o que) contenha (inclua) pertence a ..., esteja ausente de ..., quando, onde, onde, será, antes, depois, agora, sempre, de ... para, se ... então, por quê, como, por que etc. " Se eles foram representados de forma explícita e inequívoca por construções lingüísticas e / ou símbolos de relações (que podem refletir as relações das estruturas de dados descritas nos metadados), os artigos científicos podem ser carregados diretamente nessa base de conhecimento e com a possibilidade de usar o conteúdo semântico.

A arquitetura e os princípios de um autor de banco de dados desenvolvido. Algumas de suas variantes foram introduzidas e, durante vários anos, foram usadas sem queixas no sistema administrativo da prefeitura com quase um milhão de pessoas.

  • Para cada tipo de dado, seu objetivo (e uma descrição de texto suficientemente detalhada), seu relacionamento com outros dados e o algoritmo para obtê-lo a partir de dados recebidos anteriormente (ou calculados) devem ser indicados. Da mesma forma, a forma de sua apresentação em uma interface de usuário típica deve ser descrita e as ferramentas associadas devem ser indicadas. Essas características e ferramentas, chamadas metadados , também são dados comuns e, portanto, devem estar contidas em um banco de dados. Pelo menos no banco de dados onde eles eram necessários, se não apresentados em um banco de dados de nível superior.

Os metadados servem para indicar a existência potencial e garantir a seleção dos dados existentes de acordo com seu significado semântico. Os metadados locais devem, se possível, ser mapeados para metadados no classificador de um banco de dados de uma hierarquia mais alta. O autor usou alguns análogos de metadados na época, tanto no supervisor de tarefas quanto no sistema de pagamento de pensões e benefícios da cidade, cuja arquitetura de banco de dados foi desenvolvida pelo autor, onde chefiou o departamento de automação no momento em que os algoritmos de pagamento e indexação de pensões estavam mudando pelo governo se não 3 vezes por mês.

Isso não quer dizer que eles não estejam lidando com esse problema. Primeiro, os padrões XML permitem caracterizar dados com tags, embora em arquivos lineares. Existem abordagens mais globais para o problema: google, por exemplo, "OWL ontology description language". E aqui o autor propõe soluções extremamente radicais quando os dados são armazenados no banco de dados sem referência a nenhuma das estruturas originais, e as estruturas exigidas pelos usuários são formadas de acordo com sua descrição nos metadados.

  • Os cálculos de fluxo devem ser realizados usando a tecnologia Dataflow , ou seja, o gerenciamento de dados deve ser realizado. Novos dados devem ser calculados de acordo com o algoritmo especificado para eles, assim que os dados iniciais necessários aparecerem. Os cálculos devem ser realizados descentralmente e em paralelo na rede.

O processamento de dados deve consistir na gravação de novos dados no banco de dados, calculados de acordo com o algoritmo que ele compara usando uma amostra que atenda às condições para especificar dados de origem calculados ou de origem previamente calculados. Novos dados serão recebidos automaticamente assim que a amostra necessária for formada - e assim por diante em toda a rede de bancos de dados distribuídos. A sequência de ações não precisa ser especificada (ou seja, não é necessário escrever o código do programa de controle), pois ao gerenciar de acordo com os dados, as próximas ações são executadas com base na disponibilidade das fontes necessárias.

(Aproximadamente a mesma tecnologia de computação é usada no banco de dados da planilha do Excel, onde os próximos dados nas células são calculados conforme são calculados nas células com os dados de origem. E também não é necessário descrever a sequência de comandos para isso.)

Toda "programação" se resume a descrever novos dados em metadados com seus atributos (incluindo direitos de acesso), relacionamentos, exibir características na interface do usuário (se necessário), especificar condições para os atributos dos dados de origem cujos valores determinam sua ocorrência na amostra e definir algoritmo de processamento. O algoritmo, em mais de 99% das situações, resume-se a indicar o que deve ser feito com os dados de uma série de amostras: somar, calcular a média, encontrar o máximo ou o mínimo, calcular os desvios estatísticos, determinar a função de regressão etc. pela matriz da seleção especificada. No caso geral, são possíveis cálculos (a soma de produtos, etc.) para várias amostras, por exemplo, A N da amostra {N} e B K da amostra{K} , etc., onde k , por exemplo, é por sua vez uma amostra do parâmetro K N da amostra {N} . etc. As fórmulas que se ajustam às células para calcular novos dados no exemplo do Excel podem compor da mesma forma uma descrição do algoritmo em um módulo de software para obter novos dados a partir dos dados de origem na tecnologia Dataflow. E para isso, como no Excel, você normalmente não precisará atrair programadores profissionais. Às vezes e apenas para uma tarefa específica.

Assim, com poucas exceções, todo o escopo de tarefas de informatização pode ser criado por especialistas em indústrias aplicadas sem o envolvimento de programadores profissionais. Os dados com os quais lidam podem ser descritos pelos mesmos especialistas em metadados de forma independente (se não houver analógico) e, em termos de conteúdo, finalidade e imagem, eles podem copiar documentos em papel que lhes são familiares. Um simples construtor de design será suficiente para isso. Qualquer documento (também um relatório ou um artigo científico) não será apenas um arquivo de texto, mas uma combinação de informações do banco de dados, também fornecidas com ferramentas para sua apresentação e trabalho com eles, indicadas nos metadados.

Agora, para fornecer esses recursos, os navegadores estão constantemente expandindo sua funcionalidade, adicionando flash players, opções para um script Java, introduzindo novas tags, serviços da web etc. Os metadados permitiriam organizar, localizar e organizar esses processos.
E você sempre pode organizar o recebimento de um novo documento arbitrário (conjunto de dados) sem editar os algoritmos existentes para o funcionamento de todo o sistema, pois os mesmos dados de um banco de dados distribuído, de fato, podem participar de uma variedade de algoritmos diferentes para obter novos documentos a partir das amostras desejadas. Para a implementação da contabilidade integrada do comércio no gerenciamento de dados e a implementação de um banco de dados distribuído unificado, você nem precisa enviar seus relatórios para qualquer lugar - basta começar a funcionar. Os dados exibidos serão coletados e levados em conta automaticamente.

Os desenvolvedores envolvidos na automação em relação aos processos de negócios podem indicar que todos esses recursos foram implementados há muito tempo nas especificidades dos sistemas BPM. E apenas no exemplo de sistemas BPM, vemos como as idéias de gerenciamento de dados são secretas, ou seja, sem perceber a essência do fenômeno, eles penetram na prática - é claro, enquanto ainda estão sob o controle do programa anfitrião central. Mas, infelizmente, para que o sistema BPM funcione, como o “ELMA” mais legal, a empresa deve ter um programador com um bom domínio da linguagem de programação C-sharp. O autor pôde participar da administração deste sistema.. E sem um programador em tempo integral, você deve ajustar suas estruturas e procedimentos de negócios aos modelos propostos. Mas essa abordagem não é diferente da prática usual de aquisição de aplicativos com todos os problemas de sua adaptação e integração.

As idéias de gerenciamento de dados que eram puramente matematicamente formalizadas na forma de gráficos orientados e dados móveis na forma de "tokens" se mostraram difíceis de implementar na prática. Além disso, exigindo o uso de memória associativa cara e que consome muita energia. Portanto, o autor propõe uma implementação na forma de um modelo de "granulação grossa", em que cada módulo executa completamente o processamento da fonte no banco de dados local. Módulos semelhantes funcionarão em outros bancos de dados locais, combinando os resultados em um banco de dados de nível superior. Quando todas as fontes de dados registradas forem processadas, os novos dados receberão o status de pronto.
Se não houver dados no banco de dados local, a solicitação será enviada ao banco de dados de um nível superior, etc. E já a solicitação será replicada de acordo com os bancos de dados locais subordinados. Os resultados de seu refinamento também serão integrados ao banco de dados de nível superior e enviados ao banco de dados local que iniciou a solicitação ou mais alto na hierarquia se a solicitação vier de cima. Portanto, não é necessário conhecer os endereços de email de todas as fontes e destinatários. Para cada banco de dados local, basta saber apenas o endereço de um banco de dados de hierarquia superior. Esse princípio de organização de transações permite um sistema facilmente escalável e escalável.
O algoritmo de cálculo mais simples e claro pode ser exibido usando fluxogramas. Eles mostram quais dados são inseridos em cada módulo de software e onde a saída calculada é transmitida. O autor desenvolveu a linguagem DFCS para programar a computação paralela em um sistema controlado por fluxos de dados , no qual todas as conexões dos fluxogramas podem ser descritas.

No exemplo do diagrama de blocos abaixo, paralelogramos de cores (grandes e pequenos) indicam dados e, em blocos brancos - módulos de programa com algoritmos de processamento de dados. Linhas pontilhadas indicam ações executadas por dispositivos eletromecânicos.



No diagrama de blocos, é determinado com precisão quais módulos estão conectados com os quais, e nenhuma memória associativa é necessária, mas algumas medidas de sincronização de dados devem ser fornecidas, especialmente se a paralelização da seção "estreita" da ramificação do algoritmo for usada. Os módulos de software (PM) em alguma combinação ideal são carregados em uma unidade de computação (WB). Os dados do PM para o PM são transmitidos através de portas que podem ser representadas virtualmente ou por registros de dispositivos físicos. Ao gerenciar dados, um módulo, dispositivo ou porta, arquivo ou consulta ao banco de dados são funcionalmente iguais e intercambiáveis. As portas físicas são usadas para a troca de dados entre WBs pelos canais de dados e, possivelmente, também entre PMs em um WB.Os dados são armazenados temporariamente apenas em portas (registradores) e, às vezes, possivelmente em alguma fila. E as principais matrizes de dados devem ser armazenadas no banco de dados, que deve ser executado como dispositivos especializados separados , pois a interface de acesso a dados deve ser a mesma - independentemente da estrutura e relacionamento de dados específicos.

Os dados entre os dispositivos são transmitidos através de um barramento de dados, ao longo do qual muitos dispositivos e módulos podem ser colocados. Antes de começar a trocar dados, os dispositivos de troca devem "pegar" o barramento para que ninguém interaja. A captura geralmente ocorre de acordo com o algoritmo para ponderar os endereços dos dispositivos no barramento e leva pelo menos tantos ciclos de clock quanto a profundidade de bits de seus endereços.
Contudoexiste e foi implementada no hardware do instituto de pesquisa mencionado acima a tecnologia de captura de barramento em 1 a 2 ciclos por dispositivos, independentemente do seu número . Dado o progresso da tecnologia, você pode usar dezenas ou centenas de barramentos de dados para troca, escolhendo um gratuito. A arquitetura do complexo de computação é mostrada na figura abaixo. Os complexos podem ser conectados em rede conectando seus barramentos através de adaptadores de transferência de dados.

Não é o sistema operacional (OS) que controla a operação dos módulos, mas o protocolo de movimentação de dados (SDA) junto com o programa de transporte. O programa de controle de tráfego é muito compacto e está localizado em cada unidade de computação.

É o SDA que inicia o módulo se os dados de entrada estiverem na porta. Os dados de saída resultantes são colocados na porta de saída, de onde o programa de transporte (ou driver) os transfere através do barramento de dados para a porta de entrada do próximo módulo conectado ao primeiro, e já existe o seu próprio programa SDA. Se os módulos estiverem na mesma unidade de computação, o programa de transporte não será usado etc. Se o módulo funcionou, mas não há novas entradas, o SDA interrompe a execução deste módulo. O módulo retomará a operação quando esta porta aparecer na porta. No entanto, essas regras aparentemente óbvias da SDA na prática não são capazes de garantir a operação estável do sistema Dataflow. Portanto, as regras de tráfego "certas" são muito mais interessantes e, tenho motivos para pensar, são realizáveis .

Graças às regras de tráfego, um sistema orientado a dados é fundamentalmente descentralizado. O sistema operacional, como um sistema que controla a execução e o compartilhamento de tarefas, filas etc., não é necessário., mesmo para gerenciamento de recursos. Todos esses pedidos são feitos acessando serviços (como módulos de biblioteca) através de suas portas, colocando dados com requisitos neles. Se não houver recursos (ocupado), a resposta terá que esperar, possivelmente com uma saída pela porta de tempo limite. Devido à descentralização completa de todos os dispositivos e funções do complexo de computação, é facilmente escalável, e conjuntos de blocos de tarefas podem ser carregados e duplicados conforme necessário e se houver recursos livres disponíveis. Em princípio, as regras de tráfego podem ser complementadas com um serviço de paralelização para fluxos e carregamento adicional de cópias de blocos na frente dos quais uma fila de dados é criada. Com a distribuição bem-sucedida de módulos entre os recursos de computação autônomos de uma rede de computadores, um pipeline de computação pode ser implementado,quando o resultado (para dados passados) na saída é obtido simultaneamente com o recebimento do próximo lote de (novos) dados de origem.

Então, que medidas devem ser tomadas para implementar a TI avançada?

  1. Desenvolver uma estrutura de banco de dados unificada adequada para armazenar quaisquer dados em sua interconexão, incluindo descrições de metadados.
    Em princípio, isso foi feito, mas não foi publicado em nenhum lugar (embora testado).
  2. Desenvolva um sistema de organização hierárquica de banco de dados e tecnologia de transação (para cima e para baixo) com base em metadados para excluir endereços específicos para fontes de dados e consumidores.
  3. Desenvolver e finalmente implementar em algum lugar uma imitação da tecnologia Dataflow na estrutura das tecnologias da Web existentes nos servidores da Web, usando um modelo de banco de dados de estrutura unificada implementado na tecnologia de banco de dados relacional. No momento, esse seria o investimento mais eficaz.
  4. ().
    , , .
  5. , .
    DFCS . .
  6. .1, .
  7. , .
  8. .
  9. .
    .

É claro que, usando a simulação do Dataflow em tecnologias da Web existentes (consulte a seção 3), um sistema de controle de processo automatizado (APCS) não pode ser construído. Para fazer isso, é necessário implementar o Dataflow "em hardware", que é o que eles estavam fazendo, até a "perestroika", no instituto de pesquisa mencionado acima, com a finalidade de uso em controladores multiprocessadores. Mas você pode facilmente perceber todas as possibilidades para criar sistemas de gerenciamento corporativo, desenvolver redes sociais independentes e gerenciar processos de negócios.

Acredito que, em primeiro lugar, seria necessário cumprir o item 1, especialmente porque a solução existe definitivamente, e depois os itens 2 e 3, que podem ser executados usando tecnologias padrão da Web. Isso já será suficiente para que todos possam criar independentemente um sistema completo de gerenciamento, contabilizando recursos, produtos e clientes de uma empresa distribuída, sem recorrer a programadores profissionais. Quase os mesmos meios podem ser organizados e criados "rede social" dentro do departamento, empresa e, além disso, em qualquer lugar.

Mas isso não significa que os programadores enfrentem desemprego. Pelo contrário, graças a uma interface unificada de troca de dados e a classificadores de metadados, os serviços desenvolvidos por eles ( Software como Serviço ) poderão obter o maior campo de aplicação e os desenvolvedores serão pagos proporcionalmente. Algo semelhante já está sendo feito, é claro, mas por meios especiais, através de transformações intermediárias na apresentação de dados.

Eaqueles que fornecerão serviços de sistema para integração às tecnologias Dataflow poderão obter o máximo benefício do projeto . Isso não é publicidade, principalmente porque não há desenvolvedor nem distribuidores. Mas é óbvio que há muito mais usuários capazes de desenvolver suas tarefas aplicadas em imagens em papel de maneira barata e independente e dentro da estrutura de uma interface compreensível (mais fácil que no Excel) do que aqueles que estão dispostos a pagar por um software profissional caro, que geralmente não cobre todos os aspectos da atividade. Além disso, o mais provável é que os desenvolvedores profissionais de software aplicado também usem o serviço oferecido, pois assim resolverão de uma vez por todas os problemas de integração de dados à medida que os projetos em desenvolvimento se desenvolvem.

Se a simulação do Dataflow nas tecnologias da Web for bem-sucedida, haverá motivos para implementar a tecnologia do Dataflow no hardware. Muito provavelmente, o desenvolvimento técnico deve começar com a cláusula 4 e a cláusula 6, ou seja, produção de bancos de dados na forma de dispositivos universais e, consequentemente, abandonar os sistemas de arquivos. A memória Gigabyte deve ser usada na interface do banco de dados (onde pertence) para colocar matrizes em solicitações de dados. Nos módulos, a memória principal é necessária apenas para comandos (no modo somente leitura) e para dados, serão necessários apenas, digamos, várias centenas (ou milhares) de registradores (portas). Por exemplo, com interrupção quando um estado muda. E aqui, "pedindo" algo como os mais recentes desenvolvimentos da IBM Research, aparentemente "permitindo realizar cálculos em células de memória". Além de um cache para enfileiramento.

A linguagem de programação mencionada na cláusula 5 também pode ser necessária para programar as unidades de computação usadas nos data warehouses (consulte a cláusula 6). O DFCS é caracterizado pelos seguintes recursos. Em cada seção da rede de módulos (e dentro de qualquer módulo), os dados aparecem apenas pertencendo às entradas e saídas, chamadas portas. Ou seja, basta declarar a apresentação de dados nas portas dos módulos. Como a ordem de execução dos módulos é determinada quando os dados estão prontos, não há necessidade de prescrever uma certa sequência de execução dos módulos - você só precisa descrever a alternância entre eles - não importa em que ordem. Ou seja, a linguagem é declarativa. Como tudo se resume a instruções com parâmetros, a análise de qualquer construção sintática não é necessária.O programa no processo de "compilação" pode ser carregado diretamente na memória.

A estrutura modular dos fluxogramas corresponde perfeitamente ao conceito de programação de cima para baixo, e a interação dos módulos apenas através de portas garante que os princípios de encapsulamento sejam respeitados. Além disso, o princípio modular e uma interface natural para dados criam as melhores condições para organizar um desenvolvimento coletivo de programas.

Na parte do software da linguagem DFCS, é suposto usar rótulos e comandos de transição, o que parece contradizer os princípios da programação estrutural. No entanto, com base em minha própria experiência de programação, posso argumentar que um programa com rótulos e instruções de transição é geralmente mais compacto e compreensível do que com cópias duplicadas duplicadas de blocos e um conjunto de "sinalizadores" para excluir comandos de transição. Uma opinião semelhante é compartilhada por alguns profissionais .

Uma breve descrição do idioma pode ser baixada do disco Yandex.

All Articles