Isaac Amaral Castel-Branco
1 Universidade Federal do Rio de Janeiro EXERCITANDO O FUNCIONAMENTO DINÂMICO DA ORGANIZAÇÃO DOS AGENTES ECONÔMICOS NA NUVEM: UMA ANÁLISE COM GRAFOS E SIMULAÇÕES Marcus Vinicius Brandão Soares 2014
3 EXERCITANDO O FUNCIONAMENTO DINÂMICO DA ORGANIZAÇÃO DOS AGENTES ECONÔMICOS NA NUVEM: UMA ANÁLISE COM GRAFOS E SIMULAÇÕES Marcus Vinicius Brandão Soares Tese de Doutorado apresentada ao Programa de Pós-graduação em Engenharia de Sistemas e Computação, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Doutor em Engenharia de Sistemas e Computação. Orientadores: Felipe Maia Galvão França Maria da Graça Derengowski Fonseca Rio de Janeiro Junho de 2014
4 EXERCITANDO O FUNCIONAMENTO DINÂMICO DA ORGANIZAÇÃO DOS AGENTES ECONÔMICOS NA NUVEM: UMA ANÁLISE COM GRAFOS E SIMULAÇÕES Marcus Vinicius Brandão Soares TESE SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE ENGENHARIA (COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE DOUTOR EM CIÊNCIAS EM ENGENHARIA DE SISTEMAS E COMPUTAÇÃO. Examinada por: Prof. Felipe Maia Galvão França, Ph.D. Prof.ª Maria da Graça Derengowski Fonseca, D.Sc. Prof. Adilson Elias Xavier, D.Sc. Prof. Geraldo Bonorino Xexéo, D.Sc. Prof.ª Renata Lèbre La Rovere, Ph.D. Prof. Fabio Protti, D.Sc. Prof. Márcio Wohlers de Almeida, D.Sc. RIO DE JANEIRO, RJ BRASIL JUNHO DE 2014
5 Soares, Marcus Vinicius Brandão Exercitando o funcionamento dinâmico da organização dos agentes econômicos na nuvem: uma análise com Grafos e Simulações/ Marcus Vinicius Brandão Soares. Rio de Janeiro: UFRJ/COPPE, XX, 134 p.: il.; 29,7 cm. Orientadores: Felipe Maia Galvão França Maria da Graça Derengowski Fonseca. Tese (doutorado) UFRJ/ COPPE/ Programa de Engenharia de Sistemas e Computação, Referências Bibliográficas: p Economia Computacional. 2. Modelo de agentes. 3. Simulação. I. França, Felipe Maia Galvão et al. II. Universidade Federal do Rio de Janeiro, COPPE, Engenharia de Sistemas e Computação. III. Título. iii
6 Dedicatórias A meus pais, Isa Carmen e Otomar, e à minha irmã, Noeli, por terem me transmitido o necessário para poder chegar até aqui: amor, formação e educação. À minha amada esposa, Sônia, por estar sempre a meu lado com seu carinho e por nunca ter deixado de acreditar em meu potencial. À minha radiante filha Letícia, pelo carinho, pela paciência e, novamente, pelo heroísmo de conviver com o pai fazendo doutorado, apesar de já estar se preparando para casar. iv
7 Agradecimentos Normalmente, agradecimentos são remetidos a pessoas que, de algum modo, estiveram perto de nós e que nos auxiliaram a confeccionar o trabalho ao longo do tempo. Só que eu percebei, até pela própria natureza deste trabalho e dos instrumentos utilizados para realizá-lo, que existe uma multidão de pessoas e de instituições que me auxiliaram indiretamente na confecção dele, produzindo vídeos em meios como o Youtube, respondendo dúvidas em listas de discussão como a do software NetLogo, que foi usado na simulação dos cenários apresentados neste trabalho, ou disponibilizando outras fontes de esclarecimento de dúvidas. Apesar de seu trabalho não ser diretamente citado na bibliografia, concluí que seria injusto não lhes fazer ao menos uma referência, uma homenagem. Fica aqui o meu muito obrigado a todos aqueles que fazem parte dessa imensa legião que produz e disponibiliza esse material livremente a quem queira usá-lo para se aperfeiçoar. Ao Professor Felipe Maia Galvão França, meu autointitulado (des)orientador, que mostrou a serenidade necessária para me conduzir ao final deste trabalho com a paciência de um monge budista, sempre tendo uma palavra de incentivo para me passar, mesmo que fosse o seu famoso Muita diversão! ao final de nossos encontros. À Professora Maria da Graça Derengowski Fonseca, que aceitou o desafio de co(des)orientar o autor deste projeto interdisciplinar de Computação e Economia, que chegou no seu gabinete literalmente apaixonado por Economia Institucional e que foi aprender realmente um pouco de Economia durante as intermináveis conversas no seu gabinete do Instituto de Economia da UFRJ. E não foram poucas... Aos Professores Ivan da Costa Marques, meu ex-orientador de mestrado e Werther Jacques da Silva Vervloet, meu ex-orientador de graduação, por terem acreditado no meu potencial e assinado minhas cartas de recomendação do doutorado. À professora Inês de Castro Dutra, que mais que uma professora, foi a educadora responsável pelo desvio de rota que me fez chegar aqui. v
8 To professors Oliver Williamson from University of California at Berkeley, Nicholas Economides from New York University and Ole Hanseth, from the University of Oslo, for clarifying my doubts and giving their own material for the writing of this work. Aos Membros da Banca, pela gentileza de aceitarem fazer parte de mais este passo em minha trajetória acadêmica, bem como por suas críticas, sempre construtivas e bem-vindas. Ao Professor Paulo Oswaldo Boaventura Netto, do Programa de Engenharia de Produção da COPPE UFRJ, pelos valiosos direcionamentos em Grafos. Aos colegas do PESC, Daniel Santos Ferreira Alves, meu primeiro instrutor e tutor de NetLogo, essa poderosa ferramenta de simulação, sem a qual este trabalho não teria sido possível, e Rodrigo Rodovalho Braga, aluno do curso de Engenharia Eletrônica e da Computação da UFRJ e também (des)orientado pelo Professor Felipe França, pelo suporte remoto no uso das máquinas do PESC, sem o qual os experimentos aqui apresentados não teriam sido realizados. Aos economistas Erika Celene Sánchez Rodriguez, Manuella Bessada Lion, Roberta de Souza Bruno Chagas, Valber Gregory Barbosa Costa Bezerra Santos, Fernando Soares de Moura, colegas da disciplina de Economia Industrial do Instituto de Economia da UFRJ, que me fizeram crescer muito nos nossos debates, tanto em sala de aula quanto fora dela. Além dessas pessoas, de cunho eminentemente acadêmico, outras me ajudaram a manter a mente e o corpo sãos para que eu pudesse chegar neste ponto. Manter a saúde em dia, em todos os seus aspectos, durante este processo de produção intelectual, é algo imprescindível, e não foram poucos os que me ajudaram a fazê-lo. Cito aqui apenas alguns deles nominalmente, mas creio que os citados representam bem todos os outros. São eles: Dra. Grace Farias Storny, Suely Engelhard, Andrea Bacellar, Isabela D'andrea, Adriana Xavier, Vitório Sassi e Antônio Carlos de Castro Freitas. Aos colegas da SUSEP Superintendência de Seguros Privados autarquia governamental do Ministério da Fazenda, de cujo quadro me orgulho de fazer parte, em especial ao pessoal da CGETI Coordenação de Gestão de Tecnologia da Informação na pessoa do seu Coordenador Léo Maranhão de Mello e da AUDIT Auditoria Interna na pessoa de seu Coordenador José Alves, e de meu Gerente direto, Eduardo Panaro, que me proporcionaram as condições necessárias para o término pacífico e tranquilo deste trabalho, e a William Moreira Lima Neto, que havia se formado Doutor há cerca de um ano na COPPE Produção, e cujas discussões vi
9 foram extremamente produtivas para meus estudos de Estatística. Além deles, a Sérgio Mendes Coelho, Helio Jayme, José Ferreira, Jorginho, Ângela Angelita Conceição, Carlos André Eisler, colegas de trabalho que tanto prezo, e tantos outros que não citei nominalmente; a lista é tão extensa que não cabe aqui. Sintam-se todos, por favor, agradecidos. Novamente à Glenda, Celeste e a todas as integrantes da Casa das Sete Mulheres, que se tornou CODOC Coordenação de Documentação da SUSEP à época em que iniciei o doutorado, e que sempre me forneceram o suporte para ter acesso às obras de que necessitei. À minha prima/irmã Delfina Veeck, à minha tia Noely e à minha outra prima Lane, pelo carinho a aconchego nas horas mais difíceis que, às vezes, acontecem e que devemos enfrentar na vida, até mesmo para nosso crescimento. A Robson Rodrigues Albuquerque, amigo de fé, irmão, camarada, que sempre esteve comigo, incentivando-me nas idas e vindas desta vida, em pelo menos 30 anos de amizade. Ao pessoal das bibliotecas da PUC-Rio, do NCE-UFRJ e da FGV-Rio, que me proveram o acesso necessário ao seu acervo a fim de que eu pudesse conduzir a pesquisa necessária à realização deste trabalho. Aos funcionários administrativos do PESC, em especial Solange, Guty Gutierrez e Roberto Rodrigues, além do pessoal do registro da COPPE, na pessoa de Solange Coelho de Oliveira, pelo apoio que me prestaram, formando uma legião invisível sem a qual este trabalho não seria encaminhado. A Carmem Becker, da empresa C&C Criações e Textos Ltda, por ter editorado e formatado este trabalho, permitindo que eu me dedicasse exclusivamente ao conteúdo do mesmo. A Clébia Chagas da Silva Mello, Marcelo Borges Galante e Solange Moraes Afonso Dias, do Grupo Espírita do Banco Central, bem como aos nossos eternos amigos e mentores invisíveis de outros planos que sempre estão nos orientando e auxiliando na busca do nosso aperfeiçoamento espiritual, intelectual e moral e, particularmente, auxiliando-me a manter a paz interior e a mediunidade em ordem e sob controle. Por fim, a Deus, que me permitiu chegar ao fim de mais uma caminhada e cuja ajuda propiciará o início de outra. vii
10 A perfeição não é alcançada quando não há mais nada a ser concluído. A perfeição é alcançada quando não há mais nada a ser retirado. Antoine de Saint-Exupéry, autor do clássico O Pequeno Príncipe. Se em tudo o mais forem idênticas as várias explicações de um fenômeno, a mais simples é a melhor. Guilherme de Occam, autor do princípio conhecido como Navalha de Occam. Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode começar agora e fazer um novo fim. Chico Xavier / Emmanuel, o maior médium brasileiro e seu mentor. viii
11 Resumo da Tese apresentada à COPPE/UFRJ como parte dos requisitos necessários para a obtenção do grau de Doutor em Ciências (D.Sc.). EXERCITANDO O FUNCIONAMENTO DINÂMICO DA ORGANIZAÇÃO DOS AGENTES ECONÔMICOS NA NUVEM: UMA ANÁLISE COM GRAFOS E SIMULAÇÕES Marcus Vinicius Brandão Soares Junho/2014 Orientadores: Felipe Maia Galvão França Maria da Graça Derengowski Fonseca Programa: Engenharia de Sistemas e Computação A nuvem é uma organização econômica sobre a qual múltiplos mercados de serviços de Tecnologia de Informação se assentam. Exemplos de tais mercados são os de serviços de correio eletrônico, de serviços de desenvolvimento remoto de software e de serviços de administração remota de bancos de dados. Esta organização econômica é um sistema composto por agentes econômicos que realizam transações econômicas de natureza diferenciada, com base nos ativos específicos em que investem. Este trabalho propõe um modelo de agentes com o objetivo de descrever a dinâmica deste sistema usando conceitos de Economia das Instituições e Grafos como representação. O modelo é implementado utilizando uma linguagem específica para simulações de nome Netlogo, e simulações em vários cenários são realizadas. As principais contribuições deste trabalho são as conclusões que a nuvem é um sistema que aparece em uma configuração pré-competitiva, de firmas e de usuários, sem mercados, formada ao longo da realização das transações; e que um dos fatores que favorece esta configuração é o chamado efeito de rede, que faz com que os custos de transação após determinado tempo se tornem baixos e estáveis, independente do número de agentes econômicos envolvidos na organização. ix
12 Abstract of Thesis presented to COPPE/UFRJ as a partial fulfillment of the requirements for the degree of Doctor of Science (D.Sc.) EXERCISING THE DYNAMIC OPERATION OF THE ORGANIZATION OF ECONOMIC AGENTS ON CLOUD: AN ANALYSIS WITH GRAPHS AND SIMULATION Marcus Vinicius Brandão Soares June/2014 Advisors: Felipe Maia Galvão França Maria da Graça Derengowski Fonseca Department: Systems Engineering and Computer Science The cloud is an economic organization over which multiple markets of Information Technology services are based. Examples of such markets are the services of , remote software development and remote database administration services. This economic organization is a system composed of economic agents that perform economic transactions of different nature, based on specific assets in which they invest. This thesis proposes a model of agents with the aim of describing the dynamics of this system using concepts of Economics Institutions and Graphs as representation. The model is implemented using a specific language for simulations named Netlogo and simulations are performed in various scenarios. The main contributions of this work are the findings that the cloud is a system that appears in a pre-competitive setting, of firms and users without markets, formed along the accomplishment of transactions; and that one of the factors favoring this configuration is called the network effect, which makes the transaction costs after a certain time become low and stable, regardless of the number of economic agents involved in the organization. x
13 Sumário Lista de Figuras... xiv Lista de Tabelas... xx Lista de Abreviaturas e Siglas... xxi Capítulo 1 Introdução 1.1. Motivação Objetivos Guia de Leitura da Tese... 4 Capítulo 2 Conceitos de Nuvem 2.1. Conceitos Gerais de Nuvem Nuvem, segundo o NIST Características Essenciais Autosserviço Sob Demanda Compartilhamento de Recursos Acesso Amplo a Redes Elasticidade Rápida Serviços Medidos/Otimizados Modelos/Níveis de Serviços SaaS Software as a Service PaaS Plataform as a Service IaaS Infrastructure as a Service Modelos de Implementação Nuvem Privada Nuvem Comunitária Nuvem Pública Nuvem Híbrida Economia da Nuvem Capítulo 3 Conceitos de Economia Institucional xi
14 3.1. O Conceito de Transação Pressupostos Comportamentais dos Agentes Econômicos Racionalidade Limitada Oportunismo Dimensões da Transação Incerteza Frequência Especificidade de Ativos Sobre Economias de Escala e Redes Sobre Custos de Transação e Valor da Rede Capítulo 4 O Modelo de Nuvem Proposto 4.1. Introdução Conceitos de Grafos Descrição do Marco Analítico Grafo Base Grafo de Conexão Grafo de Transação Superpondo os Grafos Descrição do Modelo Implementação do Modelo Os Agentes Econômicos As Conexões As Transações Realizando Transações Atualizando Estoques Migrando Agentes entre Categorias Restrições do Modelo Capítulo 5 Simulações Usando o Modelo Proposto 5.1. Metodologia Utilizada Introdução Infraestrutura Computacional O Software de Simulação NetLogo Exercitando o Modelo Execução das Simulações xii
15 Condições Iniciais Entrada de Agentes no Sistema Distribuição Equiprovável. ou Uniforme Distribuição Normal Probabilidade Exponencial Negativa Probabilidade Exponencial Positiva Resultados obtidos Gráficos Comparativos Gráficos Completos Sobre o Crescimento do Número de Usuários no Tempo Sobre o Valor da Rede no Tempo Sobre os Custos de Transação do Sistema no Tempo Discussão sobre os Resultados Capítulo 6 Conclusões 6.1. Observações Finais Trabalhos Futuros Referências Bibliográficas Anexo 1 Micromanual de uso do simulador Anexo 2 Algoritmos Anexo 3 Exemplos Representativos dos Gráficos Utilizados xiii
16 Lista de Figuras Capítulo 1 Figura 1.1 Capítulo 2 Uma rede simples local (AnSA Am) e de longa (Bn SB Bm ) distância... 2 Figura 2.1 Os Níveis de Serviço na Nuvem Figura 2.2 Os Quatro Modelos de Implementação Capítulo 3 Figura 3.1 Investimentos em Ativos Específicos e Valores de Rede Figura 3.2 Curva de Custos de Transação Capítulo 4 Figura 4.1 O Marco Analítico Figura 4.2 Exemplo de um grafo Figura 4.3 Exemplo de um Grafo Rotulado Figura 4.4 Exemplo de Grafo Trivial Figura 4.5 Exemplo de Grafo Nulo Figura 4.6 Exemplo de laço ou loop Figura 4.7 Exemplo de Ligação Figura 4.8 Exemplo de Arestas Paralelas Figura 4.9 Os Vértices v 1 e v 5 são Vértices Isolados Figura 4.10 Exemplo de Incidência Figura 4.11 Exemplo de Adjacência de Arestas Figura 4.12 Exemplo de Vértices Adjacentes/Vizinhos Figura 4.13 Exemplo de Conjunto Vizinhança de v: N(G) = {v 1, v 2, v 3, v 4 } Figura 4.14 Exemplos de Cadeias Figura 4.15 Exemplos de Grafos Desconexo com duas Componentes 35 Conexas e Conexo... Figura 4.16 Exemplo de Grafo Simples Figura 4.17 Exemplos de Grafos Completos xiv
17 Figura 4.18 Exemplo de Grafo Direcionado Figura 4.19 Exemplo de Grafo Finito, Simples, Conexo e Não Rotulado Figura 4.20 O Grafo Anterior, devidamente Rotulado Figura 4.21 O Grafo Representativo do Sentido de uma Relação Econômica Bilateral... Figura 4.22 O Grafo Representativo do Sentido de uma Troca / Transação 38 Figura 4.23 Grafo Básico de Conexão entre Agentes Figura 4.24 Grafo Básico de Conexão entre Agentes Figura 4.25 Grafos Superpostos de Conexão e de Transação entre 40 Agentes... Figura 4.26 O Modelo Utilizado no Trabalho Figura 4.27 Transação A -> B Figura 4.28 Categorias de Agentes Econômicos e Respectivos Limiares Capítulo 5 Figura 5.1 Exemplo de Tela do NetLogo em Execução Figura 5.2 Exemplo de Tela do NetLogo para uma entrada inicial de 10 usuários, 5 firmas, ativos específicos humanos = 10, de marca = 10, de capital = 10, distribuição de probabilidade Normal com Média 20 e Desvio Padrão = Figura 5.3 Exemplo de Tela do NetLogo para uma entrada inicial de 10 usuários, 5 firmas, ativos específicos humanos = 10, de marca = 10, de capital = 10, distribuição de probabilidade Normal com Média 20 e Desvio Padrão = 5 logo após o setup... Figura 5.4 Exemplo de Tela do NetLogo para uma entrada inicial de 10 usuários, 5 firmas, ativos específicos humanos = 10, de marca = 10, de capital = 10, distribuição de probabilidade Normal com Média 20 e Desvio Padrão = 5 após ser pressionado o botão make transactions Figura 5.5 Exemplo de Tela Final do NetLogo para uma entrada inicial de 10 usuários, 5 firmas, ativos específicos humanos = 10, de marca = 10, de capital = 10, distribuição de probabilidade Normal com Média 20 e Desvio Padrão = Figura 5.6 Exemplo de Tela do BehaviorSpace Figura 5.7 Exemplo de Curva de Distribuição Equiprovável Discreta Figura 5.8 Exemplo de Curva de Distribuição Normal Figura 5.9 Exemplos de Curvas de Distribuição Exponenciais Negativas.. 63 Figura 5.10 Exemplos de Curvas de Distribuição Exponenciais Positivas Figura Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos xv
18 Figura Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos Figura Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos Figura Usuários/30 Firmas Iniciais; Ativos Específicos Iguais Figura Usuários/30 Firmas Iniciais; Ativos Específicos Lineares Figura Usuários/30 Firmas Iniciais; Ativos Específicos Geométricos 68 Figura Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos.. 69 Figura Usuários/30 Firmas Iniciais; Ativos Específicos Iguais Figura Usuários/30 Firmas Iniciais; Ativos Específicos Lineares Figura Usuários/30 Firmas Iniciais; Ativos Específicos Geométricos 70 Figura Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos Figura Usuários/30 Firmas Iniciais; Ativos Específicos Iguais Figura Usuários/30 Firmas Iniciais; Ativos Específicos Lineares Figura Usuários/30 Firmas Iniciais; Ativos Específicos Geométricos 72 Figura Usuários/30 Firmas Iniciais; Ativos Específicos Geométricos 72 Anexo 1 Figura 1.1 Exemplo de tela de Inicialização do Painel de Simulação Figura 1.2 Figura 1.3 Figura 1.4 Exemplo de Tela Central de Inicialização do Painel de Simulação Exemplo de Tela do Painel de Simulação após a 5ª Batida do Relógio Janela de Exibição da Variação das Categorias de Agentes no Tempo Figura 1.5 Gráfico de Variação das Categorias de Agentes x Ticks Figura 1.6 Gráfico de Valor de Efeito de Rede x Ticks Figura 1.7 Gráfico de Custo de Transação x Ticks Figura 1.8 Configuração do Sistema em t = Figura 1.9 Configuração do Sistema em t = Figura 1.10 Configuração do Sistema em t = Figura 1.11 Configuração do Sistema em t = Figura 1.12 Configuração do Sistema em t = Figura 1.13 Configuração do Sistema em t = Figura 1.14 Configuração do Sistema em t = Figura 1.15 Configuração do Sistema em t = Figura 1.16 Exemplo da Tela de Chamada da Execução em Background xvi
19 Figura 1.17 Exemplo de Tela de Configuração da Execução em Background Anexo 3 Figura 3.1 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.2 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.3 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.4 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.5 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.6 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.7 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.8 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.9 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.10 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.11 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.12 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.13 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.14 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.15 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.16 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.17 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.18 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.19 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.20 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.21 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.22 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.23 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.24 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.25 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.26 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.27 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.28 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.29 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.30 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.31 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.32 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.33 Valores de Ativos Específicos: H = 10, M = 100, K = xvii
20 Figura 3.34 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.35 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.36 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.37 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.38 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.39 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.40 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.41 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.42 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.43 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.44 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.45 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.46 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.47 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.48 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.49 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.50 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.51 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.52 Valores de Ativos Específicos: H = 10, M = 10, K = Figura 3.53 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.54 Valores de Ativos Específicos: H = 10, M = 20, K = Figura 3.55 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.56 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.57 Valores de Ativos Específicos: H = 10, M = 100, K = Figura 3.58 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.59 Valores de Ativos Específicos: H = 30, M = 20, K = Figura 3.60 Valores de Ativos Específicos: H = 30, M = 20, K = xviii
21 Lista de Tabelas Capítulo 4 Tabela 4.1 Matriz Indicativa da Categoria do Agente Tabela 4.2 Possibilidades de Transações Tabela 4.3 Atualização de Estoques Capítulo 5 Tabela 5.1 Usuários x Firmas Tabela 5.2 Valores Máximos de Ativo Específico usados nas Simulações. 59 xix
22 Lista de Abreviaturas e Siglas CPD Centro de Processamento de Dados CPU Central Processing Unit DEBIAN EULA Iniciais de Deborah e Ian desenvolvedores da distribuição DEBIAN/Linux End User License Agreement (Contrato de Licença de Usuário Final) FTP File Transfer Protocol GB GigaByte IaaS Infrastructure as a Service LAN Local Area Network NIST National Institute of Standards and Technology PaaS Platform as a Service SaaS Software as a Service SGBD Sistema Gerenciador de Bando de dados TI Tecnologia da Informação TXT Texto (formato de arquivo que só contém caracteres alfanuméricos) URL Universal Resource Locator (Localizador Universal de Recursos) xx
23 Capítulo 1 Introdução 1.1. Motivação A Tecnologia da Informação (TI) está cada vez mais difundida na sociedade e, a cada dia, novas necessidades computacionais surgem fazendo com que seus recursos tenham que ser utilizados da maneira mais eficiente possível. Para que esta eficiência seja atingida, a interação entre esses recursos também tem que ser feita de forma eficiente, pois de nada adianta usar elementos computacionais isolados com alta capacidade se a interação entre eles não for, ao menos, da mesma magnitude de sua capacidade, da mesma forma que não adianta ter elementos com alta capacidade de computação ociosos. Estes foram alguns dos motivos que levaram ao compartilhamento dos recursos computacionais, inicialmente por meio de redes de computadores que foram interligadas, formando uma base instalada que foi cultivada no decorrer do tempo e que hoje é conhecida pelo nome de Internet (HANSETH, 2010). Este sistema passou por uma fase em que não tinha uma definição mais exata (FOSTER, 2002) até que alguns dispositivos, como protocolos de comunicação, foram sendo globalmente aceitos e utilizados. Nesse instante, a preocupação ainda era a interligação do sistema como um todo. Apesar da desorganização com que a interligação do sistema continuava sendo feita, surgiu o seguinte conceito: uma infraestrutura de hardware e de software que proveja acesso fidedigno consistente difuso e barato à capacidade computacional de alta capacidade. Este conceito, proposto por Foster (2002, tradução nossa), é o conceito de GRID. O autor enumera, ainda, três checkpoints que podem ser feitos para que um sistema seja considerado um GRID, listando-os. Em um processo muito parecido com o do surgimento do conceito de GRID a partir da Internet (interligação desordenada), surge o conceito de cloud computing em tradução livre, computação em nuvem ou, simplesmente, nuvem. O que se pode notar de imediato quando se fala de nuvem é o direcionamento financeiro do conceito. Diferentemente do GRID que, como já escrito, em termos financeiros, ocupava-se 1
24 apenas com o barateamento do acesso à alta capacidade computação, os agentes econômicos que interagem na nuvem estão empenhados em crescer economicamente a partir dela (ou delas). Exemplos de alguns desses agentes econômicos no mundo da vida são a Amazon, a Microsoft, o Google e o Facebook. Neste ponto, a TI deixa de ser vista como uma simples mediadora nas organizações (CIBORRA, 1993; HANSET 2010) e passa a ser encarada como um componente estrutural da governança Objetivos Como a nuvem nada mais é do que um sistema composto de grandes redes de elementos interligados, nada mais natural que estudá-la sob a ótica de redes. Economides (1996, p. 1, tradução nossa) diz que formalmente, as redes são compostas de ligações que conectam nós. A seguir, um exemplo de tal rede. Figura 1.1: Uma rede simples local (AnSA Am) e de longa (Bn SB Bm ) distância. Adaptado de Economides (1996, p. 3). Esta definição leva diretamente às palavras de Bondy e Murty (1976, p. 1, tradução nossa), que observam que muitas situações no mundo real podem ser convenientemente descritas por meio de diagramas que consistem em um conjunto de pontos junto com linhas ligando certos pares destes pontos. Isso que dizer que as redes a que Economides faz menção podem ser convenientemente modeladas por meio dos diagramas que Bondy e Murty citam. Estes diagramas representam grafos (BOAVENTURA; JURKIEWICZ, 2006, p. 11). 2
25 Pelas definições apresentadas, um sistema em questão é governado por relações de natureza bilateral entre os elementos que participam dele. Duas referências teóricas se prestam à realização de tal estudo, a saber: 1. na área econômica, a Economia dos Custos de Transação, cuja unidade básica de estudo é a transação, conceituada e detalhada conforme o descrito por Williamson (1985) no capítulo 3 deste trabalho, e que se refere a uma interação bilateral entre agentes econômicos; 2. na área computacional, as interações podem ser representadas como Grafos, que encontram em autores como Bondy e Murty (1976), Boaventura (2006), Boaventura e Jurkiewicz (2006), Guedes (2001) e Hruschka e Nicolleti (2006) algumas de suas referências, estando alguns de seus conceitos descritos no capítulo 4 deste trabalho. A associação anteriormente descrita entre o conceito (de natureza dupla: econômica e computacional) e a sua forma de representação analítica acaba por facilitar a descrição das interações entre os elementos deste sistema, os agentes. Segundo Holland (1995, p. 6-7), agentes são elementos ativos sem um contexto específico. O autor empresta o termo agentes da Economia e os define com base no seu comportamento, que é determinado por uma coleção de regras simples chamadas estímulo-resposta, isto é, para cada estímulo, uma resposta. Os agentes econômicos do sistema são definidos em razão dos ativos específicos em que puderam investir e pelo resultado do investimento nestes ativos específicos. As regras para investimento em ativos específicos em determinado agente econômico são dinâmicas. À medida que as transações vão ocorrendo no sistema, isto é, as interações entre os agentes vão acontecendo, eles mudam suas regras de investimento em seus ativos específicos e se transformam. Esta dinâmica faz deste um sistema adaptativo complexo (HOLLAND, 1995, p. 10, grifos nossos). A hipótese desta tese é que esse sistema surge por uma diminuição dos custos de transação provocada pelo chamado efeito de rede (onde se manifestam economias de rede), o que torna o investimento em ativos específicos (a esta rede) atraentes. Observe-se que este modelo de sistema não caracteriza uma representação formal de um sistema de mercado, no qual os preços funcionam como parâmetro sintetizando as informações mais relevantes para a tomada de decisão dos seus agentes (consumidores e produtores). Em outras palavras, a construção do modelo apresentado não pretende simular o funcionamento de um sistema de telecomunicação de preços no qual estes últimos são os parâmetros. 3
26 Neste sentido, esta Tese tem por objetivo simular a dinâmica de um sistema, representando as interações (econômicas) entre agentes que dele participam, e obter resultados gerais e específicos por meio dessas simulações. Como resultado geral pode ser citada a disposição final dos agentes em categorias como as definidas no modelo e que serão descritas na Tese, a saber: usuários, empreendedores, firmas e corporações; investimentos totais em ativos específicos no sistema ao final das simulações; valor final da rede formada pelos agentes; e custo de transação do sistema (aumento/redução). Como resultado específico pode ser citada a possibilidade de acompanhamento do estado do sistema, passo a passo, na execução da simulação, pois, da maneira que foi construída, a simulação pode ser parada a qualquer momento, fornecendo os resultados citados no instante da parada. Além disso, por meio das simulações espera-se obter informações sobre padrões de comportamento dos agentes ao longo da execução das simulações e ao final delas Guia de Leitura da Tese Esta tese está organizada da seguinte forma: o Capítulo 2 expõe conceitos gerais de nuvens, mostrando que não existe uma definição científica geral, e descreve o conceito dado pelo National Institute of Standards and Technology NIST (2010). O Capítulo 3 é dedicado a descrever conceitos de Economia Institucional, que cuida do estudo das transações e de seus custos, um dos fundamentos teóricos sob os quais esta Tese foi escrita. O Capítulo 4 apresenta conceitos de Grafos o outro fundamento teórico utilizado neste trabalho necessários ao leitor para acompanhar a construção do marco analítico, exibindo um modelo de nuvem baseado nele e detalhando a sua implementação. O capítulo 5 detalha a metodologia utilizada para executar as simulações, exibe os resultados obtidos com elas e apresenta uma discussão sobre os resultados. O Capítulo 6 apresenta um resumo do que foi feito durante o trabalho de pesquisa, e sugere direções para trabalhos futuros na área. 4
27 Capítulo 2 Conceitos de Nuvem 2.1. Conceitos Gerais de Nuvem Computação em nuvem ou simplesmente nuvem é daquelas expressões que entram no vocabulário de uma determinada área (neste caso a acadêmica), que ninguém consegue dar uma definição precisa, mas que se sabe que abrange outras áreas. Em inglês, o nome disso é buzzword. Por ser uma buzzword, muitos pesquisadores foram chamados a explicar e/ou detalhar o que quer dizer. Geelan (2008) demonstra este fato em sua entrevista a 11 especialistas em Ciência da Computação. Caceres et al. (2009) concluíram, com base na pesquisa de Geelan (2008), que existem três conceitos-chave que guiam o que se pode chamar de nuvem: virtualização, pagamento sob demanda e escalabilidade. A estes três conceitoschave, Breitman e Viterbo (2010) acrescentaram a abstração de localização. Eles também citam HO (2009) ao lembrar que elasticidade não é escalabilidade. Isso será explicado mais adiante. Então, para esses pesquisadores, os quatro conceitos-chave para a existência do que se pode chamar de nuvem são a virtualização, a elasticidade, o pagamento sob demanda e a abstração de localização. Bernestein et al. (2009) apresentam a nuvem como um tipo especial de datacenter, descrito por Veras (2012, p. 77) como um conjunto integrado de componentes de alta tecnologia que permitem fornecer serviços de infraestrutura de TI de valor agregado, tipicamente processamento e armazenamento de dados, em larga escala, para qualquer tipo de organização, e se preocupam com a interoperação do que chamam de federação de nuvens (Intercloud federation, em inglês). Esses autores são dos poucos estudados que se preocupam detalhadamente com interoperabilidade entre nuvens, discorrendo inclusive sobre protocolos e padrões de intercomunicação, além de, indiretamente, tocarem no assunto governança quando falam de custos de busca e de negociação de interoperação. Ian Foster, uma das reconhecidas autoridades mundiais em computação em GRID, sendo sua principal obra, em coautoria com Kesselan, The Grid 2, Second 5
28 Edition: Blueprint for a New Computing Infrastructure (2004), publicou um discurso (2008) comparando GRIDs com nuvens e dando a entender que esta discussão está em aberto. Ele, inclusive, orienta os leitores para uma possível terceira via, que chama de groud grid + cloud. Em tempo: a posição de Foster é quase sempre acadêmica, ou seja, não envolve dinheiro. E o que chama atenção em seu citado livro é a divisão capitular que leva diretamente à primeira ideia que posteriormente vai-se ter em termos de arquitetura de nuvens: IaaS, PaaS e SaaS, termos correspondentes aos níveis de serviços. Aliás, como será visto adiante, esta é a arquitetura base de serviços que o Governo americano vai utilizar na sua conceituação de nuvem. Além desses pesquisadores, empresas de peso econômico em nível mundial, como a IBM, HP, Cisco e Microsoft, além de Comunidades de Software Livre e Governos também se manifestaram sobre o que seria nuvem. O que se observa é que não existe uma conceituação uniforme sobre o que seja nuvem, mas certamente, com o passar do tempo e com o avanço das pesquisas, aconteceu o seguinte: o GRID, anteriormente limitado à comunidade acadêmica, tornou-se atrativo aos grandes agentes econômicos quando estes perceberam que dali poderiam reduzir custos e crescer. Outros autores mais recentes, como Sosinsy (2011), Haukioja e Rhoton (2009), Rhoton (2009) e Tujal (2010), também fazem menção aos contornos conceituais feitos pelo NIST, com especial atenção aos níveis de serviço SaaS, PaaS, IaaS, que serão explicados adiante, às vezes com algumas derivações, como o DaaS (Database as a Service). Em razão de os conceitos do NIST serem propostos como um padrão e abrangerem os conceitos-chaves que foram enunciados anteriormente, eles serão expostos e explicados a partir de agora Nuvem, segundo o NIST O NIST é uma agência reguladora do Departamento de Comércio Norte-Americano. Ele tem como missão descrita em sua própria página na Internet promover a inovação e a competitividade industrial americana pelo avanço da ciência de medição, padrões e tecnologia de forma a aumentar a segurança econômica e melhorar a nossa qualidade de vida 1. Ele emitiu uma publicação referenciada por NIST Special Publication (2010, p. 2, tradução nossa), que descreve contornos conceituais mais rígidos 1 Disponível em: Acesso em: 26 mai (tradução nossa). 6
29 para a nuvem. O primeiro passo foi fornecer uma definição do que é computação em nuvem, conforme transcrita a seguir: A computação em nuvem é um modelo para permitir acesso a redes universal, conveniente, sob demanda a um pool compartilhado de recursos computacionais configuráveis (por exemplo, redes, servidores, armazenamento, aplicações e serviços) que podem ser rapidamente provisionados e liberados com um mínimo de esforço de gerenciamento ou de interação com o provedor de serviços. Este modelo de nuvem é composto de cinco características essenciais, três modelos de serviço e quatro modelos de implantação. A seguir, encontram-se as descrições redigidas pelo NIST com as explicações necessárias para melhor entendimento de cada uma delas Características Essenciais Estão presentes e são prontamente acionadas em qualquer ambiente que se denomine nuvem. São elas o autosserviço sob demanda, o compartilhamento de recursos, o acesso amplo a redes, a elasticidade rápida e os serviços medidos/otimizados. Cada uma destas características será detalhada a seguir Autosserviço Sob Demanda Um consumidor pode unilateralmente prover capacidades de computação, tais como tempo de servidor e armazenamento em rede, automaticamente quando necessário, sem necessidade de interação humana com cada fornecedor de serviço (NIST, 2009, p. 2, tradução nossa). Neste caso, um consumidor pode ser um processo ou um ser humano requisitando um serviço de computação (quando o pedido acontece entre nuvens). Não vai fazer diferença. O objetivo é que a resposta a qualquer requisição aconteça de maneira automática, sem necessidade de interação humana com cada provedor de serviços. A gestão de serviços da nuvem prescinde de intervenção humana. 7
30 Compartilhamento de Recursos Os recursos de computação do provedor são agrupados para atender vários consumidores por meio de um modelo multiproprietário, com diferentes recursos físicos e virtuais alocados e realocados dinamicamente de acordo com a demanda do consumidor. Há um senso de independência de localização em que o consumidor geralmente não tem controle ou conhecimento sobre a localização exata dos recursos disponibilizados, mas que ele é capaz de especificar o local em um nível maior de abstração (por exemplo, país, estado, ou datacenter). Exemplos de recursos incluem o armazenamento, processamento, memória, largura de banda de rede e máquinas virtuais (NIST, 2009, p. 1, tradução nossa). O interessante deste modelo de compartilhamento de recursos é justamente o consumidor não ter (1) um controle mais preciso sobre o recurso que quer utilizar e (2) um nível de informação mais preciso sobre o local em que se encontra o recurso que quer utilizar. Isso tem uma lógica: se tivesse estes níveis de informação, o consumidor poderia localizar recursos menos sobrecarregados no sistema e intervir para obter o controle sobre eles e fazer os seus processos andarem mais rápido Acesso Amplo a Redes Os recursos estão disponíveis através da rede e o acesso é disponibilizado por meio de mecanismos-padrão que promovam o uso por plataformas heterogêneas de clientes menos ou mais robustos (por exemplo, telefones celulares, laptops e PDAs) (NIST, 2009, p. 2, tradução nossa). Neste caso deve-se ter atenção a, pelo menos, três itens diferentes: (1) alcançabilidade de recursos; (2) disponibilidade do recurso; (3) padronização do acesso. No primeiro caso, significa que quaisquer recursos podem ser alcançados via rede. Sendo alcançável, o recurso deve estar disponível. Chegando no recurso, deverá ser enfrentado o problema da padronização do acesso, que pode ser uma tarefa das mais difíceis. Farrel e Shapiro (2004) descrevem que na padronização pode haver três efeitos: guerra, negociação ou liderança. O problema é que, em se falando de nuvem, como os recursos são muitos, estão distribuídos, e o tempo de trade-off entre recursos similares é extremamente pequeno, passa a haver mais um efeito: o da convergência de padrões, contradizendo Farrel e Shapiro (2004) e indo ao encontro do uso de padrões abertos, não 8
31 proprietários. Isso acontece, pois uma das características da nuvem é o pagamento pelo uso. Se o recurso não puder ser alcançado, não poderá ser usado; e se não puder ser usado, não haverá o pagamento correspondente, pois este é feito sob demanda. Ora, se houver convergência de padrões, o custo de busca é reduzido, e por isso a opção por esta convergência Elasticidade Rápida Aqui cabe uma observação: o conceito de elasticidade ora referido não se relaciona com o conceito econômico de elasticidade, que, segundo Pindyck e Rubinfeld (2006, p. 28): Mede quanto uma variável pode ser afetada por outra. Mais especificamente, trata-se de um número que nos informa a variação percentual que ocorrerá em uma variável como reação a um aumento de um ponto percentual em outra variável. Por exemplo, a elasticidade de preço da demanda mede quanto a quantidade demandada pode ser afetada por modificações no preço. Ela nos informa qual a variação percentual de quantidade demandada de uma mercadoria após o aumento de 1% no preço de tal mercadoria. Na nuvem, o conceito de elasticidade refere-se ao modo como os recursos computacionais são provisionados e liberados. Segundo o NIST (2010, p. 01, tradução nossa): Os recursos podem ser rápida e elasticamente provisionados para, em alguns casos, serem automaticamente alocados e liberados. Do ponto de vista do consumidor, os recursos disponíveis para provisionamento parecem ser ilimitados e podem ser adquiridos em qualquer quantidade a qualquer momento. Ou seja pode-se observar que o conceito de elasticidade na nuvem nada tem a ver com aquele empregado na Economia. Breitman e Viterbo (2010) citam Ho (2009) ao lembrar que a elasticidade rápida na nuvem não é escalabilidade. Enquanto a segunda segue um ritmo linear de aumento de hardware, exigindo um planejamento prévio, a primeira simplesmente acontece no ambiente de nuvem como um surto e desaparece, tendo que ser tratado neste ambiente desta maneira. Aliás, pode-se considerar a elasticidade e o acesso a redes amplas como características complementares. 9
32 A elasticidade rápida é outra característica que vai incorrer em processos de negociação e de contratação muito precisos, pois pode envolver mais de uma nuvem, ou mesmo mais de uma jurisdição, sendo que, neste último caso, também envolve o tratamento da transferência de propriedade entre as jurisdições. Desta maneira, a elasticidade pode fazer as partes incorrerem em custos de transações bastante consideráveis, envolvendo advogados, contadores etc Serviços Medidos/Otimizados Nuvens controlam e otimizam o uso dos recursos automaticamente, aproveitando a capacidade de medição em algum nível de abstração apropriado para o tipo de serviço (por exemplo, armazenamento, processamento, largura de banda e contas de usuários ativos). O uso de recursos pode ser monitorado, controlado e reportado oferecendo transparência tanto para o fornecedor quanto para o consumidor do serviço utilizado (NIST, 2009, p. 2, tradução nossa) Modelos/Níveis de Serviços O NIST define três modelos/níveis básicos de serviços para a arquitetura da nuvem que são SaaS, PaaS ou IaaS. Segue, a seguir, uma explicação detalhada de cada um deles e, ao final, uma figura que representa a arquitetura computacional para estes níveis SaaS Software as a Service Capacidade fornecida ao consumidor de utilizar aplicações do provedor rodando sobre a infraestrutura de nuvem. As aplicações são acessíveis a partir de vários dispositivos do cliente por meio de uma interface simples de cliente, como um navegador web (por exemplo, baseado na web). O consumidor não gerencia nem controla a infraestrutura da nuvem subjacente, incluindo rede, servidores, sistemas operacionais, armazenamento, ou mesmo capacidades de aplicativos individuais, com a possível exceção de configurações limitadas de aplicativos específicos do usuário (NIST, 2009, p. 2, tradução e grifo nossos). grifo nossos): A Infraestrutura de nuvem, como definida pela NIST (2010, p. 2, tradução e 10
33 É a coleção de hardware e software que habilita o funcionamento das cinco características essenciais da computação em nuvem. A infraestrutura da nuvem pode ser vista como contendo uma camada física e uma camada de abstração. A camada física consiste nos recursos de hardware necessários para apoiar os serviços na nuvem sendo fornecidos e, tipicamente, inclui servidores, armazenamento e componentes de rede. A camada de abstração consiste no software implantado em toda a camada física, que demonstra as características essenciais da nuvem. Conceitualmente a camada de abstração se assenta sobre a camada física. No SaaS, o consumidor usa o resultado de todo um desenvolvimento de software que já foi realizado. O consumidor de SaaS não necessita ter conhecimentos específicos do ambiente em que trabalha, mesmo porque o que vai poder configurar é, por exemplo, de que lado o mouse vai ficar na mesa de trabalho. Observe-se que não existe restrição à capacidade de instâncias de software que podem estar funcionando em paralelo/concorrentemente PaaS Plataform as a Service Capacidade fornecida ao consumidor de implantar, junto à infraestrutura da nuvem, aplicações adquiridas ou criadas por ele usando linguagens de programação e ferramentas suportadas pelo provedor. O consumidor não gerencia nem controla a infraestrutura de nuvem subjacente, incluindo rede, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre as aplicações entregues/implantadas e, possivelmente, sobre configurações do ambiente de hospedagem das aplicações (NIST, 2009, p. 2, tradução nossa). O PaaS repousa sobre uma infraestrutura de nuvem de maneira que o demandante use ferramentas (linguagens, compiladores etc.) para desenvolver aplicações e implantá-las. O demandante PaaS necessita ter conhecimentos específicos do ambiente em que trabalha, mesmo porque vai ter de programar, configurar e implantar/distribuir software. Observe-se que não existe restrição ao número ou de instâncias de plataformas que podem estar funcionando em paralelo/concorrentemente. Um exemplo típico é o que acontece com a Amazon: pode haver sistemas operacionais diferentes (Windows e GNU/Linux) rodando na mesma nuvem. 11
34 IaaS Infrastructure as a Service Capacidade entregue ao consumidor de fornecimento de processamento, armazenamento, redes e outros recursos de computação fundamentais em que é capaz de implantar/distribuir e executar qualquer software, o que pode incluir sistemas operacionais e aplicações. O consumidor não gerencia nem controla a infraestrutura da nuvem subjacente, mas tem controle sobre os sistemas operacionais, armazenamento, aplicativos entregues e, possivelmente, controle limitado de certos componentes de rede (por exemplo, firewalls do host) (NIST, 2009, p. 2, tradução nossa). No IaaS, o provedor de nuvem cria um grupamento de camadas que contém a localização dos equipamentos, e a forma como estão interligados até a primeira camada de software que o usuário enxerga (um sistema operacional, por exemplo), de maneira que o consumidor use os recursos, sem contudo poder gerenciá-los. É neste nível que ocorre a virtualização.. de cada nível. A Figura 2.1, a seguir, resume os níveis. Após a figura, segue uma explicação SaaS Aplicação CRM Produtividade em Desktop Aplicações Colaborativas Outros... (5) PaaS Plataforma de Desenvolvimento Linguagens de Programação APIs Ambiente de Desenvolvimento (4) Virtualização Provimento de Acesso Virtualização Cobrança (3) IaaS Hardware Memória Computação Armazenamento (2) Infraestrutura Física Localização Física Efetiva Fornecimento de Energia Resfriamento Largura de Banda (1) Figura 2.1: Os níveis de serviço da nuvem. Adaptado de Rhothon, 2009, p. 22. A explicação dos níveis será dada usando uma abordagem de baixo para cima. O nível mais baixo, o IaaS, pode ser subdividido em três outros. O mais básico deles é o que tem o número (1) à direita. Neste nível se encontra o que se chama de Infraestrutura Física, que é composta pela Localização Física Efetiva, isto é, o local 12
35 geográfico onde está instalada a Infraestrutura Física, as Fontes de Energia que alimentam a Infraestrutura Física, as Fontes de Resfriamento e a Capacidade de Comunicação, também conhecida como Largura de Banda. Pode-se notar que o IaaS é o nível no qual se nota com mais evidência a infraestrutura de nuvem, pois ele é constituído da mistura de hardware com software. No nível (2) está o Hardware, que é composto de Memória, Computação e Armazenamento, componentes tópicos de um computador isolado. É importante notar que os computadores isolados do nível (2) se comunicam por meio da Largura de Banda do Nível (1). No nível (3) encontra-se a Virtualização, composta pela capacidade de Provimento de Acesso aos recursos disponíveis na nuvem, a capacidade de Virtualização propriamente dita, que faz com que os níveis (1) e (2) pareçam trabalhar de maneira transparente para os níveis (4) e (5) e a capacidade de Cobrança pelos serviços prestados. O próximo nível, o PaaS, é composto pela Plataforma de Desenvolvimento, que compreende as ferramentas necessárias para que os profissionais desenvolvam aplicações que serão usadas pelos usuários finais. Neste nível encontram-se as Linguagens de Programação, que são usadas para escrever os softwares que serão utilizados na nuvem; as APIs Application Program Interfaces que são os mecanismos de interface entre as aplicações (outro nome dado aos softwares); e os Ambientes de Desenvolvimento, que são conjuntos de ferramentas mais específicos para que o usuário deste nível possa desenvolver as aplicações mais rapidamente. Por exemplo, um ambiente de desenvolvimento Eclipse (<https://www.eclipse.org/>) para a linguagem de programação Java (<https://www.java.com/pt_br/>). O último nível, SaaS, é composto pelas Aplicações que interagem diretamente com o usuário-final. Neste nível encontram-se os softwares de CRM Custom Relationship Management Gestão de Relacionamento com o Cliente; aplicações para produtividade em desktop, como o correio eletrônico, editores de textos, planilhas eletrônicas etc.; aplicações colaborativas, como softwares de teleconferência; e outro quaisquer que se encaixem no nível de SaaS. 13
36 Modelos de Implementação Os quatro modelos de implementação apontados pelo NIST (2010) são os seguintes: nuvem pública, privada, comunitária e híbrida. Encontram-se, a seguir, na Figura 2.2, as definições de cada um deles, com as devidas explicações. A Nuvem Nuvem Pública (externa) Nuvem Híbrida Nuvem Privada (interna) Externa Figura 2.2: Os quatro níveis de implementação. Adaptada de Sosinky, 2011, p Nuvem Privada "A infraestrutura de nuvem é operada exclusivamente para uma organização. Pode ser gerenciada pela organização ou por terceiros e pode existir dentro dos limites físicos da organização ou não (NIST, 2009, p. 3, tradução nossa). Na realidade, esta definição remete ao que costumeiramente já se encontra no mercado, só que com outro nome. É mais uma tentativa de enquadrar o que já existe sob outro nome. Por exemplo, uma estrutura de TI interna a uma organização pode ser considerada um exemplo de nuvem privada. 14
37 Nuvem Comunitária A infraestrutura de nuvem é compartilhada por diversas organizações e suporta uma comunidade específica que tem interesses comuns (por exemplo, a missão, os requisitos de segurança, política e considerações de compliance). Pode ser gerida pelas organizações ou por terceiros e pode existir dentro dos limites físicos das organizações participantes ou não (NIST, 2009, p. 3, tradução nossa) Nuvem Pública A infraestrutura de nuvem é disponibilizada para o público em geral ou para um grande grupo da indústria e é propriedade de uma organização que vende serviços de nuvem (NIST, 2009, p. 3, tradução nossa). Neste caso, o que deve ser ressaltado é que o acesso à nuvem é que em público, mas a nuvem é privada. Ou seja, apesar do nome, a nuvem não pertence ao Estado, como pode sugerir o nome Nuvem Híbrida A infraestrutura de nuvem é uma composição de dois ou mais modelos (privada, comunitária, ou pública) que permanecem entidades separadas, mas são unidas por tecnologias padronizadas ou proprietárias que permitem a portabilidade dos dados e das aplicações (por exemplo, transbordamento de fronteiras entre nuvens visando ao balanceamento de carga) (NIST, 2009, p. 3, tradução nossa). Pode-se observar que, tanto a nuvem pública quanto a nuvem privada, apesar de terem nomes que levem a pensar em situações de propriedade distintas, na realidade são de propriedade de uma só organização, ou seja, são privadas. O acesso a elas é que é público ou privado. No caso da nuvem híbrida, juntam-se nuvens dos outros tipos para chegar a algum objetivo comum. Talvez a mais interessante seja a nuvem comunitária, pois ela é formada por membros (ou mesmo outras nuvens) dispersos para chegar a um objetivo comum. Este tipo de nuvem é muito parecido com o que se convencionou chamar de GRID. Pode-se ver, no desenho acima, que ela não está representada. 15
38 2.3. Economia da Nuvem A nuvem surgiu quando se percebeu que o poder computacional dos GRIDs, que tinha uma natureza eminentemente científica, também poderia ser utilizado de uma outra maneira, isso é, para redução/transferência de custos. Para que isso acontecesse, a esfera econômica começou a ter uma maior importância na construção deste novo modelo de computação. Observando-se os modelos de serviços descritos anteriormente que podem repousar sobre as nuvens, conclui-se que as nuvens não são um mercado, tal como definido por Pindyck e Rubinfeld (2006, p. 07), mas um mecanismo de suporte para vários mercados de serviços de TI, como correio eletrônico (que se encaixa no modelo de serviço SaaS), desenvolvimento em linguagem de programação voltada para World Wide Web (que se encaixa no modelo de serviço PaaS), ou o uso de sistemas operacionais como Windows ou GNU/Linux (que se encaixa no modelo de serviços IaaS). Uma característica que distingue os serviços de TI mais tradicionais de outros serviços é que quando se chega um nível bem básico de detalhamento, o que se observa é que tudo com que se está lidando são bits, ou seja, 0 s e/ou 1 s 2. Nas palavras de Negroponte (1995, p. 10): A movimentação regular, na forma de pedaços de plástico, de música gravada, assim como o lento manuseio humano da maior parte da informação, sob a forma de livros, revistas, jornais e videocassetes, está em vias de se transformar na transferência instantânea e barata de dados eletrônicos movendo-se à velocidade da luz. 2 Exta observação é necessária, pois o campo da TI evolui de maneira muito rápida e o escopo da TI a que este trabalho se refere não abrange, por exemplo, a chamada lógica Fuzzy, que usa mais elementos que 0 s e 1 s. 16
39 Capítulo 3 Conceitos de Economia Institucional Economia é a ciência que estuda a distribuição mais eficiente dos escassos bens/serviços entre os agentes econômicos que são racionais na sua forma mais pura (SIMON, 1996, p. 25, tradução nossa). Para esta distribuição ocorrer, deve haver troca de bens e/ou serviços entre os agentes econômicos. Estas trocas têm, em Economia, o nome específico de transações (WILLIAMSON, 1985; 1996). Note-se que não há relação dessas transações com as transações em bancos de dados (GRAY; REUTER, 1992, p. 06), por exemplo. As transações tratadas neste trabalho são econômicas. A unidade básica de análise deste trabalho é a transação econômica 3. O próximo passo é conceituar esta transação O Conceito de Transação Oliver E. Williamson, no seu livro Economic Institutions of Capitalism (1985, p.1, tradução nossa), apresenta uma definição formal de transação, enunciando que uma transação acontece quando um bem ou serviço é transferido por meio de uma interface tecnologicamente separável. Note-se que esta definição é geral o suficiente para não fazer menção ao locus onde a transação acontece, ou seja, pode ser no mercado ou internamente à firma, sendo apenas fundamental a existência de um contrato entre os agentes, seja tácito, seja explícito, para acontecer. Nesta visão, o contrato, nas suas mais variadas formas, passa a ser a mola mestra de toda a Economia, já que toda e qualquer transação deve ser regulada por algum contrato. Williamson (1985, p. 52; 1996, p. 59) esclarece que uma transação reúne dois pressupostos comportamentais relativos aos agentes econômicos que dela participam, que são a racionalidade limitada e o oportunismo, e que também pode ser decomposta 3 A expressão transação econômica será substituída apenas pela palavra transação, daqui para frente, por simplicidade. 17
40 em três dimensões: frequência, incerteza e especificidade de ativos, porém ele chama a atenção para o fato de, das três dimensões, a terceira, especificidade de ativos, ser a mais crítica. Todas serão explicadas daqui para frente Pressupostos Comportamentais dos Agentes Econômicos Racionalidade Limitada A racionalidade limitada é definida por Simon (1961, p. xxiv, tradução nossa), quando afirma que os agentes econômicos são "intendencionalmente racionais, mas apenas limitadamente." E completa dizendo que: O que uma pessoa não pode fazer ele ou ela não vai fazer, não importa o quão forte o desejo de fazê-lo. Em face da complexidade do mundo real, a empresa de negócios se volta para os procedimentos que acham bons o suficiente para responder a perguntas cujas respostas são inalcançáveis (SIMON, 1996, p 28). Isso significa que o agente econômico não é completamente racional. Uma informação de que ele precisa é sobre quais são os outros agentes econômicos no mercado com quem ele pode negociar. O agente econômico não conhece todos eles Oportunismo O oportunismo é definido por Williamson (1985, p. 47, tradução nossa) como "busca do autointeresse com dolo, o que inclui, mas quase se limita às formas mais óbvias como mentir, roubar e trapacear." O oportunismo é uma característica do agente econômico que faz com que ele tenha que ser o tempo todo incentivado a manter-se procedendo da forma em que a transação foi acordada com a contraparte. Na ausência do incentivo, a tendência é de o agente econômico ir buscar o que melhor lhe convenha em termos de transação. A existência do oportunismo faz com que o agente não seja considerado confiável. 18
41 3.3. Dimensões da Transação Incerteza A incerteza está ligada diretamente à necessidade de adaptação de uma estrutura de governança, fruto de uma resposta a um distúrbio interno ou externo, à estrutura de governança na qual o distúrbio ocorre. Hayek (1945, p. 524, tradução nossa) argumenta que o problema econômico da sociedade é principalmente de adaptação a distúrbios em circunstâncias particulares de tempo e lugar". Koopmans (1957, apud Williamson, 1996, p. 60, tradução nossa) cita dois tipos de incertezas: um provocado por distúrbios situacionais 4 e outro, por falta de comunicação entre consumidores por resultado da primeira. Como nenhum dos dois tipos faz menção à possibilidade de ocorrência de oportunismo por parte dos agentes, Williamson (1996, p. 60) adiciona um terceiro tipo de incerteza, desta vez provocada oportunisticamente por algum agente na expectativa de obter ganhos. Este terceiro tipo de incerteza é chamado de incerteza de conduta 5. Independente do tipo de incerteza que estiver em jogo, ela só vai fazer diferença quando a especificidade de ativos envolvidos na transação se tornar alta o suficiente a ponto de provocar alguma necessidade de adaptação na estrutura de governança que é utilizada pelos agentes Frequência A frequência refere-se à recorrência da realização de uma transação. Referese, também, aos prós e contras com que as estruturas de governança são ligadas à especificidade de ativos. Williamson (1985, p. 60, tradução nossa) explica que "os benefícios de estruturas de governança especializadas são maiores para as operações apoiadas por um investimento considerável em ativos relativos a transações específicas" e que "o custo das estruturas de governança especializadas será mais fácil de recuperar para grandes operações de natureza recorrente". No entanto, um processo chamado transformação fundamental pode acontecer. A transformação fundamental muda uma competição entre vários agentes, para uma relação de fornecimento bilateral. Williamson (1985, p. 61, tradução nossa) explica que uma primeira razão para que isso aconteça é que, no caso de inexistência de especificidade de ativos relativos à transação, o fornecedor de longa data mantém 4 Tradução livre do original state-contingent. 5 Tradução livre do original behavioral uncertainty. 19
42 o fornecimento por manter uma oferta competitiva frente a outros concorrentes qualificados. Uma segunda razão é que, como "não se pode presumir que rivais concorram em paridade de investimentos substanciais em ativos específicos relativos à transação em questão foram realizados (em particular, em ativos específicos de natureza humana ou física). Os ganhadores, em tais circunstâncias, desfrutam de vantagens sobre os não ganhadores, o que quer dizer que a paridade na competição é prejudicada." Nos dois casos, o que se tem é "uma competição que se inicia com grande número de agentes é efetivamente transformada em uma relação de fornecimento bilateral depois (WILLIAMSON, 1985, p. 61, tradução nossa) Especificidade de Ativos Antes de conceituar a especificidade de ativos é prudente apresentar o conceito de sunk cost pois os dois têm uma relação muito forte, como será visto adiante. Sunk costs (custos afundados) são custos associados à natureza irreversível de um investimento. Esta irreversibilidade, segundo Dixit (1982), está associada à tecnologia (investimentos em equipamentos novos), investimentos em P&D 6, investimentos em marcas ou a investimentos que são garantidos por força legal ou regulatória (WILLIAMSON, 1975). Um exemplo empírico clarificará o conceito. Suponhamos que um estudante de Ciência da Computação resolva se dedicar à àrea de simulação econômica. Para isso, vai ter de aprender alguma linguagem de programação específica para simulação. Este tipo de linguagem não é da mesma categoria das linguagens de uso geral, tais como PHP e Java. Um exemplo de linguagem de programação de simulação é a linguagem NetLogo (WILENSKY, 1999), usada nas simulações executadas neste trabalho. Supondo que, daqui a algum tempo, uma nova linguagem de programação para simulação passe a ser mais usada que a NetLogo e esta caia em desuso (como aconteceu com a Ada) o programador terá de investir novos esforços para aprender esta nova linguagem e o aprendizado em NetLogo terá se tornado um custo afundado 7, isto é, um investimento não recuperável pelo programador (PINDYCK, RUBINFELD, 2005, p. 182). Visto o conceito de sunk cost, pode-se agora apresentar o conceito de ativo específico. Williamson (1996, p. 59, tradução nossa) explica que "especificidade de 6 Pesquisa & Desenvolvimento. 7 Os autores chamam estes custos, no livro Microeconomia, em português, de custos irreversíveis, mas preferimos manter a nomenclatura custos afundados pois, durante a pesquisa que resultou neste trabalho, foi esta a nomenclatura usada o tempo todo. 20
43 ativos refere-se ao grau em que o ativo pode ser realocado para usos alternativos e por usuários alternativos sem sacrifício do valor produtivo. Isto tem se relacionar com a noção de sunk cost. Mas ramificações de especificidade de ativos se tornam evidentes apenas no contexto da contratação incompleta e se mativeram desconhecidos antes da era anterior aos custos de transação". Williamson (1996) expõe que existem seis tipos de ativos específicos, quatro dos quais ele próprio explica com mais detalhes: sem pretender ser exaustivo, seis tipos de especificidade de ativos podem ser apresentados: (1) especificidade de localização, como onde as plantas sucessivas estão localizadas em sequência à outra de modo a economizar em despesas de inventário e de transporte; (2) especificidade física, tais como matrizes especializadas que são necessárias para a produção de um componente; (3) especificidade de ativos humanos, que surge de forma learning-bydoing (ARROW, 1962) (4) ativos dedicados, que são investimentos discretos em planta de uso geral e que são feitos a pedido de um determinado cliente. Posteriormente, foram adicionados ativos de especificidade de marca (5) e temporal (6). (p , tradução nossa). Masten, Meehan e Snyder (1991, p. 09, tradução nossa) descrevem a especificidade temporal explicando que: Onde o desempenho sincronizado é fundamental, o atraso torna-se uma estratégia potencialmente eficaz para exigentes concessões de preços. Sabendo que as interrupções em um estágio podem reverberar em todo o resto do projeto, um fornecedor oportunista pode ser tentado a buscar uma fatia maior dos ganhos do comércio, ameaçando suspender a execução, no último minuto. Mesmo que as competências e os ativos necessários para executar a tarefa possam ser bastante comuns, a dificuldade de identificar e organizar para ter um fornecedor alternativo no lugar em curto prazo apresenta a perspectiva de assaltos estratégicos. Por fim, Leiblein (2003, p. 942, tradução nossa) descreve a especificidade de marca: Especificidade de capital de marca refere-se a investimentos em reputação. No exemplo que foi apresentado, a experiência do programador em NetLogo é um ativo específico humano. 21
44 3.4. Sobre Economias de Escala e Redes Pindyck e Rubinfeld (2005, p. 201) ensinam que a empresa apresenta economias de escala quando ela é capaz de duplicar sua produção com menos do que o dobro dos custos. Um exemplo análogo ao que eles apresentam esclarecerá melhor o conceito. Suponha-se que um agente econômico consiga produzir 30 linhas de código por dia ao custo de R$ 10,00 por linha de código. Então, usando os mesmos meios, o agente consegue produzir 60 linhas de código por dia ao custo de R$ 20,00 por dia. Porém, suponha-se novamente que o agente adquira um computador mais rápido a um custo cerca de 10% maior do que o do computador anterior e passe a produzir 60 linhas de código por dia ao custo de R$ 15,00 por dia. Neste caso, estará havendo economia de escala, pois o agente é capaz de duplicar a produção (de 30 linhas/dia passou para 60 linhas/dia) com menos do que o dobro do custo (de R$ 10,00 para R$ 15,00). Segundo Shapiro e Varian (1999) a economia de escala acima descrita é denominada economia de escala do lado da oferta, a qual é limitada pelo tamanho da firma, corroborando as palavras de Coase (1937), que diz que uma firma não pode crescer ilimitadamente. A razão para a limitação de crescimento da firma, que é apontada por ambos, é a dificuldade no gerenciamento. Esses autores indicam que existe uma outra fonte de economias de escala, do lado da demanda. Esta fonte trabalha da seguinte maneira: o fato de um grupo de agentes econômico usar um determinado produto faz com que seja vantajoso para outro agente demandar o mesmo produto ou outros produtos do mesmo fabricante. Uma razão para isso é a compatibilidade entre eles. O exemplo utilizado são os sistemas operacionais da Microsoft: se um grupo de agentes usa o MS-Windows, é mais vantajoso para um outro agente usar o MS-Windows também. O exposto leva diretamente a dois outros conceitos: externalidades e redes. O conceito de externalidade é bem conhecido na Economia (PINDYCK, RUBINFELD, 2005): uma externalidade é o efeito provocado em um agente econômico por consequência da ação de outro agente econômico. Seja o agente econômico A que mora em uma casa vizinha ao agente econômico B. Se o agente econômico A resolver ouvir valsa em alto volume e o agente econômico B apreciar valsa, B vai ser beneficiado pela ação de A sem pagar nada a ele. Porém, se B não apreciar valsa, B vai ser prejudicado sem que seja indenizado por isso. No primeiro caso a externalidade é chamada positiva e, no segundo, negativa. 22
45 O conceito de redes é voltado à compatibilidade das interfaces de relacionamento entre agentes econômicos. Shapiro e Varian (1999) definem uma rede pelos seus padrões de relacionamento e pelo que chamam de patrocinador. O exemplo que dão é o da rede Mac, cuja patrocinadora é a empresa Apple. Os padrões de relacionamento de uma rede devem ser seguidos por todos os agentes que dela participam, sob pena de exclusão da rede, bem como dos que desejam entrar na rede, sob pena de não conseguirem entrar. Juntando os dois conceitos, Shapiro e Varian (1999, p. 216) explicam que a externalidade de rede do lado da demanda acontece cada vez que um novo agente econômico entra em uma rede. À medida que mais agentes vão entrando na rede, o seu valor também aumenta para todos os agentes que nela estão. Este valor pode ser calculado pela Lei de Metcalfe, que, para os autores, é uma regra prática. O valor de uma rede segundo esta lei é, aproximadamente, N * (N 1), onde N é o número de agentes econômicos na rede Sobre Custos de Transação e Valor da Rede Este trabalho se baseia fundamentalmente em custos de transação e nos da economia valor de redes, pois uma nuvem se constrói a partir do relacionamento entre os agentes econômicos que vão entrando na rede, interagindo entre si e dando forma à nuvem segundo os menores custos de transação possíveis. Na medida em que o número de transações aumenta, os agentes econômicos podem realizar investimentos em ativos específicos. Vejamos: Seja IAE ag1 (t) o investimento em ativos específicos do agente econômico ag 1 no instante t. Então, o investimento total em ativos específicos de todos os agentes econômicos no instante t será: ( ) ( ) Sendo TIAE (t) o total de investimentos em ativos específicos em um determinado instante t, TIAE (t-1) o total de investimentos em ativos específicos no instante t-1 e IAE (t) valor dos investimentos em ativos específicos no instante t, temse que: 23
46 ( ) ( ) ( ) Na medida em que mais agentes vão entrando na rede, o valor da rede também aumenta. Calculando este valor pela Lei de Metcalfe, já apresentada, o valor da rede é, aproximadamente, N * (N 1), onde N é o número de agentes econômicos participantes da rede. Sendo N(t) o número de agentes econômicos participantes da rede em um determinado instante de tempo t, o valor total da rede correspondente à nuvem, calculado pela Lei de Metcalfe em um determinado instante t, será: ( ) ( ) ( ( ) ) Dois gráficos serão usados para exemplificar as curvas já citadas. Supondo que, para facilitar a visualização, ( ) cresça em incrementos unitários em t, o que significa dizer que ( ) ( ) na medida em t; e que ( ) também cresça da mesma maneira, ou seja, ( ) ( ) ( ) Nestas condições, um gráfico mostrando curvas que representam como cada uma das expressões acima se comporta quando da variação de (t) encontra-se exemplificado na Figura 3.1, a seguir. Figura 3.1: Investimentos em Ativos Específicos e Valores de Rede. 24
47 Pode-se calcular, a cada passo t da construção da nuvem, os custos de transação de maneira aproximada. Isto pode ser feito a partir da divisão do total de investimentos em ativos específicos realizados pelos agentes que transacionaram na nuvem em um determinado instante t-1 de tempo dividido pelo valor da rede em t. O custo de transação aproximado na nuvem a cada passo será: ( ) ( ) ( ) Como os custos de transação assim calculados levam a um numerador que cresce de maneira linear e a um denominador que cresce de maneira geométrica, o custo de transação total da nuvem vai sempre diminuindo até se tornar assintoticamente próximo de zero. Um gráfico comparativo de tal situação encontra-se, a seguir, na Figura 3.2. Figura 3.2: Curva de Custos de Transação. Nesta última figura aparecem o 0, um valor de pico e uma curva assintótica ao eixo do tempo t. Isso acontece porque na inicialização da simulação, t = 0, ainda não houve transações e, como já explicado anteriormente, a computação dos valores se dá a partir da primeira transação que ocorre no sistema, ou seja, TIAE (0) = 0, o início da plotagem dos pontos é na origem. 25
48 A partir de t > 0, as transações podem começam a acontecer e os ativos específicos podem começar a sofrer incremento. Como a ferramenta computacional utilizada no trabalho sempre plota pontos ligados e o ponto inicial é 0, o que se tem como resposta é a ligação da origem, t = 0, até t = 1 como uma reta a, e a partir daí, a curva propriamente dita. 26
49 Capítulo 4 O Modelo de Nuvem Proposto 4.1. Introdução Neste tópico serão apresentadas algumas definições necessárias ao entendimento do instrumental teórico utilizado neste trabalho relativo a Grafos. As definições apresentadas estão baseadas nos conceitos expostos nos trabalhos de Bondy e Murty (1976), Boaventura (2006), Boaventura e Jurkiewicz (2009), Guedes, (2001) e Hruschka e Nicolleti (2006). Estas definições são necessárias porque o presente trabalho se inicia com um marco teórico, que usa conceitos de Economia Institucional, e ruma para um marco analítico, que usa conceitos de Grafos. O marco analítico, como o próprio nome diz, é o referencial que permite passar para modelagem computacional e, por isso, precisa estar bem definido. A Figura 4.1, a seguir, expõe esta situação. Conceitos de Economia Institucional Marco Analítico Modelagem Computacional Conceitos de Grafos Figura 4.1: O Marco Analítico. 27
50 4.2. Conceitos de Grafos Antes de apresentarmos os conceitos 8 de grafos usados no trabalho, lembramos as palavras escritas por Guedes (2001, p. 08), que chama a atenção para o fato de que a notação utilizada pelos diversos autores da área não é uniforme. Desta maneira, este trabalho realizará uma uniformização local desta notação, bem como apresentará exemplos próprios, diversos dos apresentados pelos autores na sua origem, sem retirar-lhes o mérito ou a formalidade. Também é importante acrescentar as palavras encontradas em Boaventura e Jurkiewicz (2006, p. 11), que dizem que desenhar um grafo, por exemplo, é um abuso de linguagem, pois grafos são estruturas matemáticas abstratas, tanto que há mais de uma maneira de representá-los. A utilização de matrizes, por exemplo, é uma delas, porém, não será tratada neste trabalho. Tendo em mente os cuidados anteriormente citados, apresentamos uma definição informal visual de um grafo: um diagrama constituído por pontos e linhas que ligam estes pontos. Os círculos recebem o nome de vértices e as linhas recebem o nome de arestas. Um exemplo de grafo, como o descrito, encontra-se na Figura 4.2. apresentada a seguir. Figura 4.2: Exemplo de um Grafo. Uma definição mais formal de um grafo que alcança os objetivos deste trabalho é a descrita em Guedes (2001, p. 02): Definição 1. Um grafo G = (V, E) é um par onde V é um conjunto finito de vértices e E é um conjunto finito de arestas, onde uma aresta a Є E é um subconjunto de V com exatamente 2 elementos. 8 As palavras definição e conceito têm o mesmo significado neste trabalho. 28
51 Pode-se notar que não aparece qualquer identificação dos vértices ou das arestas na Figura. Se houver necessidade de identificar os vértices ou as arestas, deve-se dar nomes a eles. A este processo dá-se o nome de rotulação e o que se obtém é um grafo rotulado. Boaventura e Jurkiewicz (2006, p. 17) explicam que em termos teóricos, devemos usar rótulos, porque estamos lidando com conjuntos e um conjunto deve ter seus elementos bem definidos e distintos uns dos outros. Esta definição e esta distinção precisam dos rótulos: sem eles não será possível, em geral, dizer de qual vértice ou de qual aresta 9 estaremos falando. A seguir, na Figura 4.3, encontra-se um exemplo de grafo rotulado. Figura 4.3: Exemplo de um Grafo Rotulado Nesta Figura, os rótulos dos vértices são v 1, v 2, v 3, v 4, e das arestas são a 1, a 2, a 3, a 4. Existe o caso em que o grafo contém um único vértice, sem conter arestas. Este grafo, conforme apresentado na Figura 4.4, é chamado grafo trivial. Nas palavras de Bondy e Murty (1976, p. 03, tradução e grifos nossos): Definição 2. Denominamos um grafo que só tem um vértice, trivial, e todos os outros grafos, não triviais. 9 No original, os autores usam a designação ligação em vez de aresta. Outros autores usam a denominação arco, por exemplo. Como não existe diferença teórica entre ligação, aresta e arco, este trabalho utilizará sempre a designação aresta. 29
52 Figura 4.4: Exemplo de Grafo Trivial. Existe também o caso de o grafo ser nulo, ou seja, o conjunto de arestas ser vazio e o conjunto de vértices não ser, conforme apresentado na Figura 4.5. Formalmente, segundo Hruschka e Nicolleti (2006, p. 29): nulo. Definição 3. Um grafo cujo conjunto de arestas é vazio é chamado grafo Figura 4.5: Exemplo de Grafo Nulo. Se o conjunto de vértices do grafo for vazio, não existe grafo. Isso é consequência direta da Definição 1: o conjunto (V) tem que ser não vazio. Apenas a título de reforço, o grafo trivial, da Definição 2, é justamente o grafo que só tem um vértice e que não tem arestas. Uma aresta cujas extremidades estão ligadas no mesmo vértice é chamada laço, e uma aresta cujas extremidades estão ligadas a vértices diferentes é chamada ligação. Boaventura (2006, p. 8) formaliza a descrição de laço: Definição 4. Uma aresta que envolve apenas um vértice é chamada laço. A Figura 4.6 apresenta um exemplo de laço, também chamado, em livros sobre o assunto, de loop. 30
53 Figura 4.6: Exemplo de laço ou loop. Bondy e Murty (1976, p. 2, tradução nossa) formalizam a descrição de ligação. Definição 2.5. [...] uma aresta com extremidades distintas é uma ligação. A Figura 4.7 demonstra um exemplo de ligação. Figura 4.7: Exemplo de Ligação. Várias arestas podem ter as mesmas extremidades, ou seja, estão ligadas nos mesmos vértices. Estas arestas são chamadas de paralelas. Formalmente, segundo Hruschka e Nicolleti (2006, p. 30): Definição 6. Se duas ou mais arestas de G têm os mesmos vértices extremidades, estas arestas são chamadas arestas paralelas. A Figura 4.8 apresenta um exemplo de arestas paralelas. Figura 4.8: Exemplo de Arestas Paralelas. Pode acontecer uma situação em que, num mesmo grafo, haja vértices que não estão ligados a qualquer aresta e outros que estão ligados a arestas. Os vértices que não estão ligados a quaisquer arestas são chamados de vértices isolados. Formalmente, segundo Hruschka e Nicolleti (2006, p. 30): 31
54 Definição 7. Um vértice de G que não é extremidade de qualquer aresta é chamado isolado. A Figura 4.9 apresenta exemplo de vértices isolados. Figura 4.9: Os Vértices v 1 e v 5 são Vértices Isolados. As próximas definições a serem apresentadas são as de incidência (Figura 4.10), de adjacência (Figura 4.11) e de vizinhança de vértices (Figura 4.12). Intuitivamente, pode-se dizer que incidência é a relação de uma aresta com um vértice ao qual a aresta esteja ligada e vice-versa, ou seja, uma aresta incide num vértice se uma de suas extremidades está ligada no vértice e vice-versa. No caso da relação de adjacência, ela acontece entre dois vértices distintos que são incidentes à mesma aresta. O mesmo acontece com as arestas: duas arestas são adjacentes se são incidentes ao mesmo vértice. Por fim, a noção de vizinhança aplicada a vértices é a de um conjunto de vértices ligado diretamente a um determinado vértice, conforme demonstra a Figura A vizinhança não inclui laços, ou seja, um vértice não é vizinho dele mesmo. Estas definições são necessárias para o entendimento da descrição do modelo matemático usado na simulação que é o objeto deste trabalho. Hruschka e Nicolleti (2006, p. 30 e 31, grifos nossos) formalizam as definições de incidência, de adjacência e de vizinhança. Definição 8. Diz-se que uma aresta a é incidente com o vértice v se v for um vértice-extremidade de a. Neste caso, diz-se também que v é incidente a a. 32
55 Figura 4.10: Exemplo de Incidência Definição 9. Duas arestas incidentes com um mesmo vértice são ditas adjacentes (arestas a 1 e a 2 na Figura 4.11, abaixo, são incidentes no vértice v e, consequentemente, são adjacentes). a 1 a 2 v Figura 4.11: Exemplo de Adjacência de Arestas Definição 10. Dois vértices que estão unidos por uma aresta são chamados adjacentes ou vizinhos. Figura 4.12: Exemplo de Vértices Adjacentes/Vizinhos. Definição 11. O conjunto de todos os vizinhos de um vértice v fixo de G é chamado conjunto-vizinhança de v e é denotado por N(G). v 1 v 4 v v 3 v 2 Figura 4.13: Exemplo de Conjunto Vizinhança de v: N(G) = {v 1, v 2, v 3, v 4 } 33
56 A próxima definição a ser apresentada é a de percurso, itinerário ou cadeia. Esta definição está fortemente ligada à sequência de vértices e de arestas em um grafo e será utilizada mais à frente para caracterizar propriedades do grafo como um todo, conforme apresentado na Figura Boaventura (2006, p. 23) formaliza a definição: Definição 12. Um percurso, ou itinerário ou cadeia é uma família de ligações sucessivamente adjacentes, cada uma tendo uma extremidade adjacente à anterior e a outra subsequente (à exceção da primeira e da última). O percurso será fechado se a última ligação da sucessão for adjacente à primeira e aberto em caso contrário. [...] Na definição geral, despreza-se implicitamente a orientação das ligações, quando se trata de grafos orientados (interessa apenas a adjacência sucessiva). Cadeia Aberta { v 1 a 1 v 2 a 2 v 3 a 3 v 4 } Cadeia Fechada { v 1 a 1 v 2 a 2 v 3 a 3 v 4 a 4 v 1 } Figura 4.14: Exemplos de Cadeias. Definição 13. Um grafo qualquer (orientado ou não) é não conexo, ou desconexo, se nele existir ao menos um par de vértices não unidos por uma cadeia. Um grafo que não é desconexo portanto, um grafo no qual todo par de vértices é unido por ao menos uma cadeia é dito conexo. Como veremos na Figura 4.15, tratase de duas alternativas mutuamente exclusivas: um grafo não conexo pode sempre ser decomposto em ao menos dois subgrafos conexos, que são suas componentes conexas (Boaventura, 2006, p. 32). 34
57 Figura 4.15: Exemplos de Grafos Desconexo com duas Componentes Conexas e Conexo As próximas definições a serem apresentadas são a de grafo simples (Figura 4.16) e de grafo completo (Figura 4.17). As definições usadas serão as descritas por Bondy e Murty (1976, p. 3 e 4, tradução nossa): paralelas. Definição 14. Um grafo é simples se não tem laços e não existem arestas Figura 4.16: Exemplo de Grafo Simples. Definição 15. Um grafo simples no qual cada par de vértices distintos está ligado por uma aresta é chamado de grafo completo. 35
58 Figura 4.17: Exemplos de Grafos Completos. Por fim, é necessário apresentar a noção de grafo direcionado (Figura 4.18). A definição provida por Guedes (2001, p. 2) é a que será utilizada neste trabalho. Definição 16. Um grafo direcionado D = (V, E) é um par onde V é um conjunto finito de vértices e E é um conjunto finito de arestas, onde uma aresta a E é um par ordenado de elementos de V, ou seja, a V x V. Figura 4.18: Exemplo de Grafo Direcionado. Este trabalho tratará apenas de grafos finitos, simples e conexos Descrição do Marco Analítico Grafo Base Agora, o conceito de grafo será usado para representar a possibilidade da existência de uma relação econômica bilateral. Conforme representado na Figura 4.19, possui um número finito, porém desconhecido de vértices e de arestas. Isto está explícito no fato de o desenho conter uma forma oval representando a continução finita 36
59 do grafo. Esta forma oval representa justamente a possibilidade de haver outros vértices e arestas ligados a este vértice. Figura 4.19: Exemplo de Grafo Finito, Simples, Conexo e Não Rotulado. Rotulando o grafo acima, tem-se o grafo G (V, E), tal que V(G) = { v 1, v 2,, v n } e E(G) = { e 1,, e m }, n > 1 e m > 0, finito, simples e conexo. Uma representação deste grafo rotulado encontra-se na Figura Os vértices são os círculos e as ligações são as linhas que conectam os vértices. Figura 4.20: O Grafo Anterior, devidamente Rotulado. 37
60 Grafo de Conexão Tomem-se dois vértices quaisquer do grafo G e a respectiva aresta que os une. Sejam ag 1 e ag 2 rótulos de dois vértices vizinhos. Supondo que ag 1 represente um agente econômico, ag 2, outro agente econômico, e a aresta que os liga represente a possibilidade de relação econômica bilateral entre eles, a representação em grafos desta possibilidade encontra-se na Figura Figura 4.21: O Grafo Representativo de uma Relação Econômica Bilateral. Note-se que, pela definição, se dois vértices do grafo G não estiverem ligados por uma aresta, não existe possibilidade de relação econômica bilateral entre tais agentes. Por conseguinte, se tal possibilidade não existe, nenhuma transação pode acontecer entre tais agentes econômicos. Ou seja, a existência de uma aresta entre dois agentes econômicos é uma condição necessária para a ocorrência de uma transação Grafo de Transação O próximo passo consiste em representar a ocorrência da troca/transação. Isso será feito usando um grafo orientado com a aresta dirigida no sentido da realização da troca/transação. Isto é descrito na Figura Figura 4.22: O Grafo Representativo do Sentido de uma Troca/Transação. Observa-se que os dois tipos de grafos o não direcionado, estático, que representa a possibilidade de transação econômica entre os dois agentes; e o direcionado, dinâmico, que representa a transação entre dois agentes podem ser 38
61 superpostos. O próximo passo vai ser descrever a superposição destes dois tipos de grafos que será utilizada no resto do trabalho Superpondo os Grafos Nos dois grafos, não direcionado e direcionado, os vértices representam os agentes econômicos. No caso do grafo não direcionado, as arestas representam a possibilidade de ocorrência de relações econômicas bilaterais/transações entre os vértices. A partir de agora estas arestas serão chamadas de conexões. Pela definição de G, dois agentes econômicos que não estejam conectados não podem realizar transações. Uma imagem básica que descreve este grafo está na Figura Figura 4.23: Grafo Básico de Conexão entre Agentes. No caso do grafo direcionado, as arestas representam a ocorrência das transações entre os vértices, sendo que o sentido da seta representa o sentido em que a transação ocorre. Uma imagem básica que descreve este grafo está na Figura Figura 4.24: Grafo Básico de Conexão entre Agentes. Por fim, a Figura 4.25, que representa a superposição dos dois grafos e que constitui o marco analítico completo, encontra-se a seguir. 39
62 . Figura 4.25: Grafos Superpostos de Conexão e de Transação entre Agentes Descrição do Modelo Boaventura e Jurkiewicz (2006, p. 5) afirmam que um modelo é uma simplificação da realidade, construída com um objetivo. O marco analítico baseado em uma representação de um grafo daqui para frente chamado apenas de grafo, mostrado anteriormente, é o ponto de partida para o modelo da nuvem que é usado nas simulações realizadas no presente trabalho. Este marco analítico é reproduzido de maneira recorrente, abrangendo todos os agentes, todas as conexões que existam e todas as transações que porventura aconteçam na nuvem. É importante fazer esta distinção, pois o fato de uma conexão existir não implica necessariamente que uma transação tenha que acontecer. As transações acontecem no grafo de forma aleatória e sua criação no modelo é realizada no instante em que a transação acontece de maneira bem-sucedida. Isso será explicado melhor no item Realizando Transações. Neste instante, o importante ter em mente é que o modelo é apoiado em um grafo não direcionado conexo e incompleto que vai aumentando sem deixar de ser conexo e incompleto na medida em que novos usuários vão se incorporando. Além de ser conexo e incompleto, este grafo tem mais uma característica: nenhum dos vértices se conecta com todos os outros vértices do grafo. Como a racionalidade de um agente está ligada ao fato de existir uma conexão entre este agente e os outros, ele nunca pode estar ligado a todos os outros, se não teria racionalidade ilimitada, o que contradiz o pressuposto comportamental que se quer modelar. Sendo assim, além do grafo ser não direcionado, conexo e incompleto, ele também incorpora esta característica. Um exemplo deste grafo encontra-se na Figura
63 (...) (...) ag n-1 ag n+2 Transação n -> n + 1 (...) ag n Conexão n n + 1 ag n+1 ag n+3 (...) Transação n + 1-> n (...) (...) ag n-2 Figura 4.26: O Modelo Utilizado no Trabalho. Outra característica do modelo é a mobilidade dos agentes entre as categorias de agentes. Inicialmente o modelo contém apenas usuários e firmas. Este ponto de partida foi adotado, pois Pyndick e Rubinfeld (2005) e outros autores da área de Microeconomia de que a Economia Institucional faz parte na parte introdutória de seus textos, fazem referência apenas a duas categorias: consumidores e produtores. Tendo este fato em vista, decidiu-se adotar também duas categorias iniciais, que são os usuários, representando os consumidores, e as firmas, representando os produtores. O modelo proposto se destina a mostrar os agentes econômicos que estão na nuvem e suas interações mútuas, bem como a respectiva mobilidade entre as categorias existentes quando seus ativos específicos se modificam. Isso tudo com uma característica que torna o modelo bem dinâmico: o modelo incorpora o conceito de limiar de categoria. O limiar de categoria faz com que não haja uma garantia de que, alcançado determinado investimento em ativos específicos, um agente qualquer possa parar de fazê-lo e manter-se sempre na categoria onde se encontra. A cada rodada completa de tentativas de transações, os limiares dos somatórios dos ativos específicos de cada categoria são atualizados segundo o menor valor pesquisado entre todos os agentes da categoria. Após isso uma nova rodada de transações se inicia e, a cada transação completada com sucesso, pode acontecer uma nova atualização no investimento em ativos específicos e uma nova atualização na classe que foi a origem da transação. Pode acontecer, pois o agente econômico pode ou não, de maneira aleatória, decidir por investir em ativos específicos. O modelo também contempla o investimento em ativos não específicos. Por fim, o modelo foi concebido como uma grande nuvem construída a partir da interconexão de outras nuvens sem que haja uma fronteira bem demarcada entre elas. 41
64 4.5. Implementação do Modelo Os Agentes Econômicos Os agentes econômicos são componentes discretos do modelo que realizam transações (trocas) entre si. Eles foram classificados em categorias discretas, pois os agentes são componentes discretos. As categorias são reflexos diretos dos ativos específicos nos quais cada agente econômico tem capacidade de investir. Estes ativos específicos foram restritos a capital, marca e humanos. Isso aconteceu porque, observando as categorias de ativos específicos propostas por Williamson (1985,1996), concluiu-se que somente os ativos específicos humanos e de marca listados naquelas categorias deveriam estar presentes. O ativo de capital entrou como a melhor maneira de expressar a especificidade dos datacenters, componentes típicos da área de TI. Desta maneira, as categorias de agentes econômicos são expressas na Tabela 4.1, e, logo após, sua explicação. Tabela 4.1: Matriz Indicativa da Categoria do Agente. Agente Ativo Específico (AE) Usuário Empreendedor Firma Corporação Capital Marca Humano 0, Inicialmente, é necessário esclarecer que esta matriz tem uma dupla função. A primeira é a de identificar a categoria do agente econômico por meio da existência ou não de determinado ativo específico no seu rol de investimentos: onde houver 0 é o ativo específico no qual o agente econômico não pode investir. Os agentes econômicos pertencentes à categoria de Usuário ou de Empreendedor só podem investir no ativo específico humano. Já os agentes econômicos pertencentes à 42
65 categoria de Firma podem investir nos ativos específicos humanos e de marca. A Corporação pode investir nos três ativos específicos. A segunda função desta tabela é a de servir como uma matriz de multiplicadores de investimentos em ativos específicos para cada categoria de agente. Na tela inicial do simulador aparecem os campos de valor de investimento máximo em capital, marca (brand) e humano (human), como abaixo. O preenchimento é apenas um exemplo. Campos de Entrada de Dados do Simulador Estes campos vão dar origem a uma matriz-linha de valores máximos de investimentos, exposta a seguir. Matriz-Linha de Valores Máximos de Investimentos [ ] Esta matriz é usada como base para o cálculo da matriz-linha de investimentos, cujos elementos são calculados de maneira aleatória equiprovável, tendo como valores de topo os números constantes dos campos expostos acima. Apenas para exemplificar, uma matriz-linha poderia ser: Matriz-Linha de Investimentos [ ] Ou seja, os valores expressos nesta matriz linha são Capital = 245, Marca = 047, e Humano = 008. Quando um agente econômico realiza um investimento, ele usa a coluna correspondente da tabela de categorias, multiplica pelos elementos da matriz-linha de investimento e soma os resultados. O valor obtido é o investimento total realizado pelo agente econômico naquele instante. Vale lembrar que o agente pode realizar investimentos em ativos não específicos também. O único momento em que o agente 43
66 é obrigado a investir em ativos específicos é na sua criação, para que os seus ativos específicos não iniciem com 0. Um exemplo prático vai esclarecer melhor. Suponhamos que A seja um agente econômico da categoria Firma. Então a matriz de categorias cumpre as duas funções: a primeira é mostrar que A só pode investir em ativos de marca e/ou humanos, pois são os locais da tabela onde o valor aparece diferente de 0; e a segunda é a de servir de matriz de multiplicadores de investimentos para o agente A. Desta maneira, o investimento que A fará será 0 x 245 (Capital) + 1 x 047 (Marca) + 1 x 008 (Humano), o que dá um total de 55. Cada vez que o agente realiza transações bem-sucedidas estes cálculos são realizados para reinvestimento, observando-se que o agente pode escolher entre usar o resultado para investir em ativos específicos ou não. A Memória é uma lista na qual são guardadas as identificações de outros agentes econômicos com os quais o agente já realizou transações bem-sucedidas. Após cada rodada de transações, se houver sucesso na transação com algum outro agente (o modelo não contempla transações consigo mesmo), a identificação deste último fica guardada na memória. A Frequência é uma lista na qual são guardadas as quantidades de transações oriundas de outros agentes econômicos com os quais o agente já realizou transações bem-sucedidas. Após cada rodada de transações, se houver sucesso na transação com algum outro agente, um número simbolizando a frequência é guardado na posição equivalente à deste agente na memória. Como o simulador trabalha com a moda estatística das frequências que o agente guarda, o que aumenta as chances de o agente que está duplicado na memória ser chamado primeiro para negociar. Esta foi a maneira encontrada para simular a Transformação Fundamental citada por Williamson (1985, p. 61 e ss.). Os Ativos não Específicos são outros ativos em que o agente também investe. O Estoque mantém o estoque de dados que o agente detém num determinado instante do tempo. Por dados, neste trabalho, entenda-se estoque de bits, ou seja, 0s ou 1s. Recém-criado informa se o agente foi criado no rodízio atual de funcionamento do modelo ou não. Este atributo é necessário, pois novos agentes usuários são adicionados a cada rodada de ticks do simulador e, desta maneira, novas conexões são criadas a partir destes novos usuários. Estas conexões foram programadas de maneira a nunca possibilitar que os novos agentes se liguem a todos os outros. Todos os agentes que já estão no grafo de conexão no início de uma rodada têm o atributo 44
67 recém-criado igual a falso e os recém-criados, obviamente, verdadeiro. Ao final da fase de conexão todos os agentes estão com o atributo recém-criado igual a falso. Todos estes atributos são inicializados no início de cada simulação. Os algoritmos correspondentes às operações que serão descritas encontramse no Anexo As Conexões São as arestas do grafo não direcionado. O agente econômico sabe ou não da existência de outros agentes econômicos e isso se expressa por meio dessas conexões. Se a conexão entre dois agentes existe, um agente sabe da existência do outro, caso contrário, não sabe. Isto foi feito para simular a racionalidade limitada do agente. O grafo não orientado, por construção, nunca liga um agente qualquer a todos os outros As Transações Ocorrem entre quaisquer agentes ligados por conexões. As transações são representadas pelas arestas do grafo direcionado superposto ao grafo não direcionado e que, com aquele, compõem o marco analítico. Assim como cada agente carrega consigo seus atributos, a transação também tem um atributo. Ele se relaciona com a dimensão frequência e está na aresta do grafo orientado. Este atributo chama-se Número de Transações Bem-Sucedidas e representa o que o nome expressa: o número de transações realizadas com sucesso de um agente econômico para outro. Porém, por razões ligadas ao mecanismo computacional de simulação, esta representação não pode ser atualizada simplesmente incrementando de 1 o número de transação. Faz-se necessário o uso de um fator de magnitude ligado ao agente econômico, cuja explicação vem a seguir. O fator de magnitude corresponde ao número de transações que seriam efetivamente realizadas. Ele é somado ao atributo Número de Transações Bem- Sucedidas e isso foi feito para contornar a ausência de possibilidade de paralelização das transações no ambiente de simulação utilizado. Desta maneira, cada transação no ambiente de simulação corresponde a muitas outras no mundo real, porém guardando fidelidade à categoria dos agentes que estão transacionando, ou seja, a sua capacidade de transacionar. Ele é calculado da seguinte forma: multiplicam-se os valores da coluna constante da matriz de categorias pelos valores constantes da matriz-linha de valores 45
68 máximos de investimento. As duas tabelas são fixas, conhecidas e já foram expostas anteriormente. Um exemplo prático irá tornar tudo mais claro. Seja uma transação que tenha origem em uma firma e matriz-linha de valores máximos de investimentos [ ]. O fator de magnitude, neste caso, será: 0 x x x 10 = 30. Ou seja, esta transação no simulador equivale a 30 transações no mundo real Realizando Transações As transações são realizadas da seguinte forma: os agentes são tomados dois a dois, de maneira aleatória, sendo um a origem, e o outro, o destino da transação. Sejam A o agente-origem e B o agente-destino da transação. A Transação B Figura 4.27: Transação A -> B. Numa primeira tentativa, B observa sua memória. Se ela não estiver vazia, ele verifica qual agente tem a maior moda estatística. Se não houver moda, o agente escolhido é o que tem maior valor em ativos específicos, ou seja, A passa a ser o agente-origem candidato à realização da transação. Numa segunda tentativa, havendo moda, novamente o agente escolhido é o que tem maior valor de ativos específicos. Este procedimento é realizado para que seja simulado o processo da Transformação Fundamental, ou seja, quanto mais um determinado agente econômico A realiza transações com outro agente B, maior a tendência de realizar transações com o mesmo agente e de outros agentes serem preteridos neste processo. O agente A passa a ser o agente-origem candidato. Numa terceira tentativa, a memória do agente B está vazia (o que significa que ele ainda não realizou qualquer transação bem-sucedida). Então ele busca em suas conexões qual agente tem o maior valor em ativos específicos. Supondo que ele encontre este agente e que ele seja A, este passa a ser o agente-origem candidato. Numa quarta e última tentativa, B escolhe um agente qualquer A que esteja conectado nele para tentar realizar a transação e A se torna agente-origem candidato. 46
69 Após este processo de avaliação acontece um segundo processo, que é se os dois agentes escolhidos podem efetuar transações entre si. O critério adotado para esta avaliação está descrito na Tabela 4.2, a seguir. Tabela 4.2: Possibilidades de Transações. Categoria do Agente- Categoria do Agente- Candidato Destino Transação Possível Usuário Empreendedor, Firma ou NÃO Corporação Usuário Usuário SIM Usuário Empreendedor, Empreendedor, Firma ou Firma ou Corporação Corporação SIM Pode-se observar que um usuário só poderá ser origem em uma transação se o destino for outro usuário. Esta restrição foi aplicada por causa dos ativos específicos que o usuário carrega. Na medida em que ele aumenta estes ativos específicos e consegue aumentar seus investimentos em ativos não específicos, ele pode se tornar um empreendedor, firma ou corporação, e aí ser origem de quaisquer outras transações do sistema. Ou seja, para que uma transação seja possível, observam-se as categorias dos usuários. Se não estiverem de acordo com a terceira coluna da tabela acima a transação não será possível Sendo o agente-candidato A escolhido e a transação possível, segundo critério acima descrito, resta saber se ele tem estoques suficientes para realizar uma transação. Para que isso seja feito, uma quantidade aleatória de transferência de estoques é obtida via simulador. Se esta quantidade puder ser transferida de A para B, os estoques de A são atualizados e o fator de magnitude de transações correspondente ao número de transações realizadas é somado ao atributo Número de Transações Bem-Sucedidas. Após todo este processo, se a transação for bem-sucedida, pode haver um investimento em ativos, específicos ou não, por parte do agente. Acontece também uma atualização na categoria do agente A com base nos ativos específicos e, por fim, 47
70 um reinvestimento em estoques proporcional ao valor da atualização dos ativos específicos Atualizando Estoques Para atualizar os estoques Eag calcula-se o incremento Eag. Eag é o resultado da multiplicação do valor correspondente à categoria em que se encontra o agente na Matriz Geral de Operação dos Agentes pelo percentual de incrementos em ativos específicos = IAEag / IAEag, onde IAEag é o total de ativos específicos dos agentes após o incremento. Note-se que IAEag = IAag se a escolha foi investir em ativos específicos. A atualização dos estoques, então, é realizada da seguinte forma: Tabela 4.3: Atualização de Estoques. % IAEag = = IAEag / IAEag x 100 Eag = % IAEag x Eag Eag = Eag + Eag O reinvestimento em estoque é necessário, pois o modelo lida o tempo todo com transferência de bits que estão estocados nos agentes. Ora, se uma determinada transação (transferência de estoques) é realizada com sucesso, ocorre um investimento em ativos, específicos ou não. Se não houvesse reinvestimento em estoques, ocorreria uma situação na qual o agente teria muitos ativos, porém sem utilidade para suas transações, pois não haveria estoques para transacionar. Então, o reinvestimento em estoques nada mais é do que um reflexo do investimento em ativos específicos que, por sua vez, é consequência do sucesso da transação Migrando Agentes entre Categorias Existem inicialmente duas categorias de agentes: usuários e firmas, cada uma delas com limiares mínimos de existência da categoria segundo os ativos específicos dos agentes da categoria Estes ativos são definidos aleatoriamente na criação do agente e segundo sua categoria. Os limiares mínimos, como o próprio nome diz, são os menores valores de ativos específicos de agentes da categoria. A Figura 4.28, a seguir, expõe os limiares. 48
71 C 4º F 3º E 2º U 1º Legenda: C Corporação F Firma E Empreendedor U Usuário Figura 4.28: Categorias de Agentes Econômicos e Respectivos Limiares Ao disparar cada simulação, as transações começam a acontecer. Quando qualquer transação é bem-sucedida, estoques são transferidos de um agente para o outro e o agente calcula de maneira aleatória uniforme os investimentos IAag que vai realizar. A seguir, escolhe em quais ativos vai investir (específicos ou não), incrementa os ativos escolhidos com IAag e atualiza sua categoria. Depois desta operação ele compara o valor de seus ativos específicos com os valores de ativos específicos mínimos, isto é, o limiar da categoria superior. Dependendo do resultado ele pode subir ou ficar onde está. Após cada rodada de transações os limiares de cada categoria são atualizados para o valor mínimo de ativos específicos dentre todos os valores dos agentes que estão na categoria. A existência dos limiares de categoria fornece a base para a organização do sistema em categorias. 49
72 4.6. Restrições do Modelo Como já descrito, um modelo é uma simplificação da realidade. Deve-se então apontar as restrições deste modelo para que fique bem claro até onde ele pode chegar. A primeira restrição do modelo é que as tecnologias utilizadas são acessíveis a todos os agentes. O modelo se foca, então, nos custos dos fluxos de informações. A segunda restrição é trabalhar com apenas três categorias de ativos específicos, que são ativos de capital, humano e de marca. As duas primeiras referemse, respectivamente, às máquinas/datacenters e à programação de softwares. A terceira categoria marca foi colocada no modelo após muitas discussões. Foi percebido, ao longo delas, que as nuvens eram frequentemente lembradas pelos nomes dos seus patrocinadores, o que é natural dado o exposto por Shapiro e Varian (1999). Desta forma, os nomes passaram a ser a marca da respectiva nuvem: nuvem da Microsoft, nuvem da Apple, nuvem da Amazon, nuvem da Google ; e a marca foi incluída como ativo específico, porém o modelo avança no sentido de trabalhar a nuvem como um todo, e não como várias nuvens. Por fim, o modelo só contempla a entrada na nuvem na condição de usuários após a inicialização. Foi permitida a inicialização do modelo com usuários e firmas (até pelo fato de que é assim que a Microeconomia dita tradicional lida com esses agentes). Mas após esta inicialização a entrada de novos agentes no modelo será apenas permitida por meio da criação de novos usuários. A saída de agentes do modelo não ocorre pelo simples fato de, a qualquer momento, um agente poder realizar transações. 50
73 Capítulo 5 Simulações Usando o Modelo Proposto 5.1. Metodologia Utilizada Introdução A metodologia utilizada para a construção das simulações foi, inicialmente, o levantamento da fundamentação teórica da Economia Institucional, pois o direcionamento do trabalho estava focado na palavra serviço vistos os três níveis de serviços oferecidos por uma nuvem e a definição de transação enunciada por Williamson no seu livro de 1985, que envolve, textualmente, a palavra serviço. A possibilidade de uma nuvem ser um mercado de serviços foi aventada em decorrência dos seus objetivos, já expostos no capítulo 1. Observando definições de mercado enunciadas por Pindyck e Rubinfeld (2005, p. 7) e Garcia-Papert (2007, p. 25 e 26) e, com base no que diversos patrocinadores de nuvens (por exemplo, Google, Amazon, Apple e Microsoft) oferecem como serviços, chegou-se ao questionamento de se uma nuvem abrangeria um só mercado ou vários. Chegou-se à conclusão de que não se estava lidando com um cenário um só mercado e nem com o outro vários mercados mas com algo diferente disso tudo. Esta conclusão levou a outro debate no sentido de definir o que seria realmente a nuvem, a sua natureza. Para isso, houve necessidade de aprofundamentos nos estudos concernentes à área de Economia Industrial. Isso foi prontamente executado assistindo-se às aulas da disciplina respectiva no Instituto de Economia da UFRJ e mediante leitura de textos sobre o assunto. Após a execução destes estudos concluiu-se que, ao se lidar com a nuvem, não se estava lidando nem com um mercado e nem com vários, mas com uma estrutura que se desenvolvia antes deles. A nuvem é uma forma de organização précompetitiva, chamada neste trabalho de Nova Organização em Rede, dada a maneira como os agentes econômicos se conectam uns aos outros para interagir. A utilização dos conceitos de Economia Institucional no estudo da nuvem continua válida, porém, com o aprofundamento dos estudos, além da hipótese relativa 51
74 à redução dos custos de transação dada a frequência da ocorrência das transações eletrônicas, o interesse da pesquisa também se modificou no sentido de indagar como o processo de execução das transações na nuvem modifica a posição dos agentes econômicos dentro delas, ou seja, como ocorre a reorganização dos agentes. Em relação à revisão bibliográfica, foram realizados levantamentos junto a periódicos científicos interdisciplinares, como a Computational Economics, e foi constatado que tais periódicos raramente fazem menção a Custos de Transação. Estes periódicos mantêm-se preferencialmente no referencial teórico chamado por Williamson (1985, 1996) de neoclássico ou mainstream. E raramente os periódicos, ainda que interdisciplinares, abordam estes dois temas, Economia Institucional e Ciência da Computação, com alguma frequência. Em relação a Grafos, que é uma das bases do presente trabalho, foi constatado o seu uso de maneira incipiente, como ferramenta em alguns trabalhos da área de Economia. Um deles já é bem conhecido e foi escrito por Jason Potts (2000, p. 61 e ss.), da Universidade de Queensland, Australia. Uma das inúmeras diferenças do trabalho dele para este é a maneira como os utiliza, por exemplo, no que chama de Sistema de Sistemas A utilização dos conceitos de Grafos neste trabalho é bem diferente. Ela ocorreu na construção do marco analítico e na implementação do modelo obtido em computadores para posterior simulação. Um exemplo típico é a programação do pressuposto da racionalidade limitada dos agentes por meio do uso de arestas em um grafo conexo. O processo de execução das transações na nuvem e a observação da modificação do posicionamento dos agentes nela foram realizados utilizando-se a simulação computacional apoiada no software NetLogo, que será exposto a seguir Infraestrutura Computacional A infraestrutura computacional utilizada m todas as simulações foi um computador Samsung Intel Core i7 363QM CPU 2,4GHz, 6GB de memória RAM e 700 Mb de Disco Rígido, trabalhando com sistema operacional Ubuntu/Linux LTS O Software de Simulação NetLogo O NetLogo é um software usado em simulações de sistemas baseados em agentes e apresenta muitas facilidades para a construção de grafos. Ele também apresenta uma interface com o usuário bem simples de lidar, permite um nível de 52
75 interação com o programador bem alto e é rápido o suficiente para permitir a execução de várias simulações de cenários em tempo relativamente curto. A Figura 5.1 apresenta um exemplo de tela do simulador no NetLogo: Figura 5.1: Exemplo de Tela do NetLogo em Execução. A unidade de progresso de atualização de variáveis e de telas utilizada no NetLogo é o clock-tick, ou simplesmente tick. Pode-se aumentar ou diminuir a velocidade da execução da simulação, alterar determinados parâmetros, começar de maneira avançada (no tick de número 10 em vez de no de número 0, por exemplo) e assim vai. Esta ferramenta oferece muitas facilidades que foram utilizadas na implementação do marco analítico descrito no capítulo Exercitando o Modelo O exercício do modelo proposto consta, basicamente, de duas fases: inicialização e execução. Na fase de inicialização são fornecidos os valores de entradas das variáveis sem os quais o modelo não pode trabalhar. Estes valores são o número de usuários iniciais, o número de firmas, os valores máximos dos ativos específicos humanos (H), de marca (M) e de capital (K), a distribuição de probabilidades correspondentes à entrada dos usuários no sistema, os respectivos parâmetros de tal distribuição, por exemplo, média e desvio padrão para uma distribuição normal e, por fim, o número de itrações/batidas de relógio (ticks) que serão simulados. Todos os valores de entrada são inseridos por meio dos campos do lado esquerdo do painel do programa de simulação, circundados em azul na Figura
76 Figura 5.2: Exemplo de Tela do NetLogo para uma entrada inicial de 10 usuários, 5 firmas, ativos específicos humanos = 10, de marca = 10, de capital = 10, distribuição de probabilidade Normal com Média 20 e Desvio Padrão = 5. Após a entrada de tais valores, pressiona-se o botão de setup, que é o botão que capta os valores das variáveis e os traduz para o correspondente desenho na tela do simulador, como pode ser visto na Figura 5.3. O botão de setup está circundado em azul. O desenho que aparece na tela central é a representação do grafo inicial da simulação. Os agentes são os círculos verdes e rosa, e as arestas são as linhas brancas. Os rótulos numéricos que aparecem ligados aos agentes são os valores dos ativos específicos. Este grafo, cujas arestas representam a racionalidade limitada de cada agente, é construído com os dados de entrada de modo a que cada agente nunca se ligue a todos os outros agentes do sistema. Figura 5.3: Exemplo de Tela do NetLogo para uma entrada inicial de 10 usuários, 5 firmas, ativos específicos humanos = 10, de marca = 10, de capital = 10, distribuição de probabilidade Normal com Média 20 e Desvio Padrão = 5 logo após o setup. 54
77 Após a inicialização, segue-se a execução, conforme se verifica na Figura 5.4. Pressiona-se o botão make transactions no simulador e este começa a mostrar, passo a passo, o andamento da simulação na tela do computador, isto é, o andamento das transações (que aparecem em vermelho); o aparecimento dos novos agentes e a movimentação dos agentes nas categorias; a atualização do quadro de distribuição de número de agentes por categoria no tempo e os gráficos correspondentes à execução da simulação. A simulação pode ser parada e iniciada novamente a qualquer instante pressionando-se o botão make transactions, sendo que a parada final obrigatória ocorre no número de ticks que foram inicialmente configurados. O botão make transactions está circundado em azul. Figura 5.4: Exemplo de Tela do NetLogo para uma entrada inicial de 10 usuários, 5 firmas, ativos específicos humanos = 10, de marca = 10, de capital = 10, distribuição de probabilidade Normal com Média 20 e Desvio Padrão = 5 após ser pressionado o botão make transactions. Os outros quadros que aparecem nesta tela do simulador e que foram enumerados anteriormente são os seguintes: abaixo da tela central, o Expositor do Número de Agentes por Categoria no Tempo; na direita, de cima para baixo, o gráfico de Categorias de Agentes x Ticks, de Valor da Rede x Ticks e de Custo de Transação x Ticks. Todos estes quadros são atualizados passo a passo (tick-a-tick), sendo que a simulação para em 100 ticks. Um exemplo de configuração final pode ser encontrado na Figura
78 Figura 5.5: Exemplo de Tela Final do NetLogo para uma entrada inicial de 10 usuários, 5 firmas, ativos específicos humanos = 10, de marca = 10, de capital = 10, distribuição de probabilidade Normal com Média 20 e Desvio Padrão = 5. O processo acima descrito é válido para uma simulação isolada que entrega ao usuário do simulador apenas uma representação visual dos resultados, ou seja, gráficos para uma determinada entrada de dados. Uma explicação mais detalhada sobre os componentes visuais pode ser encontrada no Anexo 1. Quando é necessário executar várias simulações em paralelo para uma mesma entrada de dados e obter resultados em massa objetivando uma análise mais aprofundada dos resultados, como foi o caso do presente estudo, recorre-se a uma ferramenta do NetLogo de nome BehaviorSpace que permite tal procedimento. É o que foi feito neste trabalho. Um exemplo de tela do BehaviorSpace encontra-se a seguir. Segue uma explicação sobre as caixas de texto que aparecem na tela exemplo do BehaviorSpace, na Figura 5.6. A primeira caixa de texto contém o nome do experimento, no caso, experimento 01. A segunda caixa contém o nome das variáveis de inicialização no formato [ <nome-da-variável> <valor> ], uma em cada linha. Na terceira caixa tem-se o número de repetições, que, neste caso, é 10. Na quarta caixa coloca-se o que se quer que o programa grave no arquivo que vai ser lido pelo Excel, sendo uma entrada em cada linha. A seguir, há uma marcação de avaliação das variáveis em cada passo ou não (está marcado, logo, haverá 100 medidas de variáveis, uma para cada passo, para cada uma das 10 simulações, ou seja, serão medidas). 56
79 Figura 5.6: Exemplo de Tela do BehaviorSpace. Por fim, existem (1) à esquerda, a caixa de comandos de inicialização que, neste caso, é o comando setup; (2) à direita, a caixa de comandos de continuidade que, neste caso, é o comando go; (3) a caixa de comandos de finalização que, neste caso, foi deixada vazia; e, por fim, (4) a caixa de limite de tempo que, no caso, contém Foram executadas várias simulações em paralelo para as mesmas entradas usando o BehaviorSpace. Os resultados referentes a estas simulações foram coletados em arquivos Excel e os resultados das simulações foram gravados nesses arquivos e deram origem a vários gráficos. Por fim, várias conclusões foram tiradas com base nos resultados obtidos nos gráficos. 57
80 O detalhamento da execução das simulações, bem como da obtenção dos resultados e da discussão sobre estes resultados são expostos a seguir Execução das Simulações Condições iniciais Quanto às condições iniciais utilizadas para o disparo de cada simulação, um número total fixo de agentes foi distribuído inicialmente sempre entre usuários e firmas. Esta condição de disparo foi utilizada propositadamente porque os livros da área de Economia geralmente dividem os agentes de um sistema econômico em duas grandes categorias, abrangendo os produtores (firmas) e os consumidores (usuários), não descrevendo, no princípio, subcategorias. Ou seja, quis-se respeitar as condições iniciais encontradas naqueles livros, e, a partir destas condições, aplicar à simulação as condições encontradas na Economia Institucional. A firma foi escolhida inicialmente como produtor, pois um dos objetivos da simulação era justamente observar modificações nos agentes à medida que as transações acontecessem com sucesso, partindo do referencial usual dos manuais de Microeconomia. Como já foi descrito anteriormente, a Firma detém ativos específicos humanos e de marca. Uma das hipóteses era se o ambiente de trocas proporcionado pela nuvem seria propício ao surgimento de novos agentes cujos ativos específicos fossem fortemente humanos, os quais são chamados, neste trabalho, de empreendedores. O número total inicial de agentes em todas as simulações foi mantido em 110, remetendo os resultados obtidos a um mínimo de credibilidade. A distribuição do número inicial de agentes em cada categoria para cada simulação está descrita na Tabela 5.1, a seguir. Tabela 5.1: Usuários x Firmas. Usuários Firmas Totais
81 Simulações Foram realizadas 10 rodadas de disparo aleatório para cada uma das linhas da Tabela acima, cada uma com uma possibilidade de utilização dos valores máximos de ativos específicos apresentados nomeados da seguinte maneira: iguais, lineares, geométricas e invertidas. Os valores são apresentados na Tabela 5.2, a seguir. Tabela 5.2: Valores Máximos de Ativo Específico usados nas Simulações. Ativo Específico Humano Marca Capital Iguais Lineares Geométricas Invertidas Cada rodada incluiu 100 passos de relógio (clock-ticks). Ou seja, foram obtidos 4 x 4 x 10 x 100 = valores diferentes para cada. Estes valores foram agrupados de acordo com os números iniciais de agentes de disparo (60/50, 70/40, e assim sucessivamente) e depois, de acordo com a Tabela acima. Ou seja, há um conjunto de dados para o disparo de 60/50 agentes iniciais com ativos específicos máximos iguais, 59
82 outro para o disparo de 60/50 agentes iniciais com ativos específicos máximos lineares, e assim sucessivamente. Foram usadas 100 ticks pelo fato de o programa utilizado nas simulações, o NetLogo, possuir um recurso chamado BehaviorSpace, que já paraleliza a execução do programa, limitado ao número de núcleos que o computador possua. O computador disponibilizado possui oito núcleos, porém diversos testes realizados com valores acima do limite de 100 ticks de relógio mostraram que o tempo para realização das simulações ficava muito extenso, inclusive travando a máquina. Não é surpresa que tal fato aconteça, pois está-se simulando o comportamento de agentes econômicos em uma nuvem usando apenas uma máquina. Tomou-se, então, a decisão de utilizar 100 ticks como limite para todas as simulações Entrada de Agentes no Sistema A simulação foi construída de maneira que, após a primeira rodada de transações, novos agentes entrem no sistema. Esta nova entrada poderia acontecer de vários modos, obedecendo à única restrição do modelo no que diz respeito ao fato de os agentes sempre entrarem no sistema como usuários. Assim, a restrição de escolha do número de usuários recai apenas em uma outra restrição: tem que ser um número inteiro, pois a quantidade de agentes é discreta. Poder-se-ia usar como parâmetro para o número de agentes que entram no sistema apenas um número inteiro (pois os agentes são discretos) aleatório com teto fixo. Deste modo, a cada nova rodada um número aleatório de agentes entra no sistema. Essa é a descrição do uso de uma curva de probabilidade equiprovável de entrada de agentes, ou seja, em que um teto fixo é estabelecido e todos os números têm a mesma probabilidade de entrar. A dúvida que pode aparecer pelo uso de apenas uma curva é o de se obter uma saída induzida pela entrada, já que o que está sendo executado é uma simulação baseada em computador. Para minimizar tal dúvida optou-se por usar quatro curvas de distribuição de probabilidades diferentes para obter os números de agentes que entram no sistema, a saber: a Equiprovável, a Normal, a Exponencial Positiva e a Exponencial Negativa. O uso de quatro curvas diferentes também permite a comparação entre os resultados e a obtenção de conclusões mais sólidas acerca dos experimentos. A seguir, cada uma das curvas será explicada. 60
83 Distribuição Equiprovável ou Uniforme Na distribuição equiprovável todos os eventos têm a mesma probabilidade de ocorrer (COSTA, 1998). Por exemplo: tome-se um dado de seis faces numeradas de 1 a 6. Se este dado for honesto, cada face do dado tem a mesma probabilidade de sair que todas as outras a cada lançamento. A probabilidade de cada face será sempre 1/6, como pode ser visto na Figura 5.7, abaixo. Figura 5.7: Exemplo de Curva de Distribuição Equiprovável Discreta. 10 No caso dos experimentos deste trabalho, foi utilizada uma função do programa que retorna um valor aleatório equiprovável, com um valor de teto T = 20. Este valor foi usado, pois, após muitas tentativas com outros valores, inclusive utilizando artifícios matemáticos (como efetuar multiplicações ao final), foi observado que os experimentos com este teto levavam menor tempo para rodar (cerca de 01 hora e 30 minutos em média para cada 10 experimentos contra um máximo de cerca de 5 minutos dos outros) e que os resultados não eram influenciados por este teto, ou seja, verificou-se que os parâmetros da distribuição afetavam apenas a velocidade da execução, não os resultados do experimento. 10 Disponível em: <http://upload.wikimedia.org/wikipedia/commons/1/1f/uniform_discrete_ pmf_ svg.svg>. Editada pelo autor. 61
84 Distribuição Normal A distribuição normal é uma curva de probabilidades em forma de sino, como pode ser visto na Figura 5.8, a seguir. Os parâmetros são a média µ e o desvio padrão (COSTA, 1998, p.116). Figura 5.8: Exemplo de Curva de Distribuição Normal. 11 No caso dos experimentos deste trabalho, foram utilizados os valores de 20 para a média µ e de 5 para o desvio padrão, e foram tomados valores de saída discretos, pois o número de agentes é discreto. Foram utilizados estes valores, pois, após muitas tentativas com outros valores, inclusive utilizando artifícios matemáticos (como efetuar multiplicações ao final) com a distribuição normal padronizada (µ = 0 e = 1) observou-se que aqueles experimentos levavam menor tempo para rodar (cerca de 1 hora e 30 minutos em média para cada 10 experimentos) e os resultados não eram influenciados por estes parâmetros, ou seja, verificou-se que os parâmetros da distribuição de probabilidades afetavam apenas a velocidade da execução, não os resultados do experimento. 11 Disponível em: <http://www.ufpa.br/dicas/biome/bionor.htm>. 62
85 Probabilidade Exponencial Negativa A distribuição exponencial negativa é uma curva utilizada para descrever o tempo entre eventos em processos de Poisson (COUTINHO; JOHNSON, 2011). O parâmetro chama-se, que é a taxa de chegadas de clientes em um determinado intervalo de tempo t, conforme apresentado na Figura 5.9. Figura 5.9: Exemplos de Curvas de Distribuição Exponenciais Negativas. 12 No caso dos experimentos deste trabalho, foi utilizado o valor de 20 para o parâmetro. Este valor foi utilizado por duas razões: (1) é o mesmo valor de topo da distribuição equiprovável e o mesmo valor da média da distribuição normal; e (2) ao se realizarem testes de tempo de execução com este valor, ele também se mostrou razoavelmente rápido. Este último caso recai no que foi exposto no último parágrafo da distribuição anterior: o que vai interessar é a distribuição, não o parâmetro. 12 Disponível em: <http://upload.wikimedia.org/wikipedia/commons/9/96/uniform_distribution _PDF_SVG.svg>. 63
86 Probabilidade Exponencial Positiva A curva de probabilidade exponencial positiva foi calculada da seguinte forma: exponencial positiva: para cada valor de foi tomado o respectivo valor ( - exponencial negativa ( )). Isso permitiu construir a curva apresentada na Figura 5.10, a seguir. Figura 5.10: Exemplos de Curvas de Distribuição Exponenciais Positivas. 13 Uma curva com o aspecto de uma das curvas acima, com = 20 foi usada nos experimentos. O valor de anterior. é o mesmo pelas razões já dispostas no experimento 5.3. Resultados Obtidos A seguir, serão expostos gráficos representativos dos resultados da simulação, que são o Crescimento dos Usuários x Tempo, o Valor da Rede (Metcalfe) x Tempo e o Custo de Transação (aproximado) x Tempo. Estes gráficos estão agrupados nas curvas de probabilidades anteriormente descritas, para que as respectivas curvas possam ser comparadas. Os valores de inicialização do sistema para estes gráficos são: 80 usuários e 30 firmas e valores de ativos específicos de 13 Disponível em: <http://upload.wikimedia.org/wikipedia/commons/9/96/uniform_distribution_ PDF_SVG svg>. Editada pelo autor. 64
87 Capital (K) = 10, Marca (M) = 20 e Humano (H) = 10, sendo chamados de configuração de ativos específicos invertida. Para cada resultado exposto, o eixo horizontal representa o tempo, isto é, as batidas de relógio (ticks) do simulador, que vão de 0 a 100. Após os gráficos comparativos entre curvas de probabilidades, segue uma série completa de gráficos relacionados a uma só curva e com um só valor de agentes na inicialização: 80 usuários e 30 firmas. A escolhida foi a curva exponencial negativa. Outros gráficos podem ser encontrados no Anexo Gráficos Comparativos Crescimento dos Usuários x Tempo Equiprovável Normal Exponencial Negativa Exponencial Positiva Figura 5.11: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos. Neste gráfico da Figura 5.11 foram desenhadas quatro curvas simultâneas diferentes, cada uma correspondendo ao Crescimento dos Usuários obtido na saída em relação ao uso das curvas de probabilidade na entrada de novos usuários. O objetivo foi observar o comportamento deste crescimento na saída em relação às curvas de entrada para saber se o crescimento guarda alguma relação com as curvas de probabilidade de entrada de novos usuários. Pode-se observar, por meio deste gráfico, que todas as curvas são retas iniciando no mesmo ponto (80 usuários) e que existe uma clara superposição entre as 65
88 curvas de crescimento de usuários, cuja entrada é normal, e a outra curva, cuja entrada é exponencial negativa. Valor da Rede (Metcalfe) x Tempo Equiprovável Normal Exponecial Negativa Exponencial Positiva 0 Figura 5.12: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos. Pode-se observar na Figura 5.12 que todas as curvas de Valor da Rede no Tempo apresentam uma aparência congruente com a de uma parábola. Em que pesem as variações nos valores finais das redes, a aparência das curvas é sempre a mesma, sendo que, novamente, ocorre uma superposição das curvas correspondentes às entradas equiprováveis e exponencial positiva Custo de Transação (aproximado) x Tempo Equiprovável Normal Exponencial Negativa Exponencial Positiva 0 Figura 5.13: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos 66
89 Pode-se observar que, nos gráficos apresentados acima, diferentemente dos outros, não existe superposição de curvas. A aparência de todas as curvas de Custo de Transação do Sistema no Tempo é sempre a mesma, congruente a f(x) = 1/x 2. Como já explicado no capítulo 3, isso acontece porque os ativos específicos crescem de maneira linear enquanto o valor da rede cresce de maneira geométrica. Além disso, a faixa de resultados de desvio padrão observada para estes custos se manteve entre 0,0032 e 0,1106 para todas as amostras observadas. Este gráfico da Figura 5.13 é o único no qual nenhuma curva se encontra superposta Gráficos Completos Abaixo de cada figura estão os valores de inicialização neste caso, 80 usuários e 30 firmas e os valores de configurações de ativos específicos, já detalhados anteriormente igual, linear, geométrica e invertida. Para cada resultado exposto, o eixo horizontal representa o tempo, isto é, as batidas de relógio (ticks) do simulador, que vão de 0 a 100. Quando necessário, segue uma explicação sobre o gráfico imediatamente após ele Sobre o Crescimento do Número de Usuários no Tempo Crescimento dos Usuários x Tempo Usuários Figura 5.14: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Iguais. 67
90 Crescimento dos Usuários x Tempo Usuários Figura 5.15: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Lineares Crescimento dos Usuários x Tempo Usuários Figura 5.16: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Geométricos. 68
91 Crescimento do Usuários x Tempo Usuários Figura 5.17: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos. Pode-se observar que, em todos os gráficos apresentados acima (Figuras 5.14 a 5.17), a curva de Crescimento de Usuários no Tempo apresenta uma aparência congruente com a de uma reta f(x) = ax + b, onde a é o coeficiente angular e b é o coeficiente linear, sendo a > 0 e b = 80. Independente dos valores finais do Número de Usuários, a aparência das curvas é sempre a mesma Sobre o Valor da Rede no Tempo Valor da Rede (Metcalfe) x Tempo Valor da Rede (Metcalfe) Figura 5.18: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Iguais. 69
92 Valor da Rede (Metcalfe) x Tempo Valor da Rede (Metcalfe) Figura 5.19: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Lineares Valor da Rede (Metcalfe) x Tempo Valor da Rede (Metcalfe) Figura 5.20: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Geométricos Valor da Rede (Metcalfe) x Tempo Valor da Rede (Metcalfe) Figura 5.21: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos. 70
93 Pode-se observar que, em todos os gráficos apresentados acima (Figuras 5.18 a 5.21), a curva de Valor da Rede no Tempo apresenta uma aparência congruente com a de uma de parábola f(x) = x 2. Independente dos valores finais das redes, a aparência das curvas é sempre a mesma Sobre os Custos de Transação do Sistema no Tempo 0.03 Custo de Transação (aproximado) x Tempo Custo de Transação (aproximado) Figura 5.22: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Iguais Custo de Transação (aproximado) Custo de Transação (aproximado) Figura 5.23: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Lineares. 71
94 Custo de Transação (aproximado) x Tempo Custo de Transação (aproximado) Figura 5.24: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Geométricos Custo de Transação (aproximado) x Tempo Custo de Transação (aproximado) Figura 5.25: 80 Usuários/30 Firmas Iniciais; Ativos Específicos Invertidos. Pode-se observar que, em todos os gráficos apresentados acima (Figuras 5.22 a 5.25), a aparência da curva de Custo de Transação do Sistema no Tempo é sempre a mesma, congruente a f(x) = 1/x. Como já explicado no capítulo 3, isso acontece porque os ativos específicos crescem de maneira linear enquanto o valor da rede cresce de maneira geométrica. A faixa de resultados de desvio padrão observada nos Custos de Transação se manteve entre 0,0032 e 0,1106 para todas as amostras observadas. 72
95 Discussão sobre os Resultados Nos gráficos comparativos entre as diversas entradas de funções de probabilidades, tendo por saída o Número de Usuários ao Longo do Tempo, o que foi observado é que a modificação da curva de probabilidade na entrada não induz qualquer modificação na curva da saída. Todas são retas, podendo haver modificação apenas nos coeficientes angulares. Ainda assim, duas das saídas se superpuseram para curvas de entradas diferentes, ou seja, têm coeficientes angulares iguais. Fato similar aconteceu nos gráficos comparativos de efeitos de rede. O formato das curvas não se modificou, mantendo-se todas como parábolas. A modificação que pode ser observada foi apenas na abertura das curvas. Isso aconteceu por causa da variação no número de agentes acumulado no sistema para cada curva. E, mesmo assim, para duas das curvas houve superposição, o que mostra que não houve indução na modificação da curva da saída (que continuou sendo uma parábola) ocasionada pela mudança das curvas de entrada. No caso dos gráficos comparativos dos custos de transação, não houve superposição das curvas, e o formato delas é bem semelhante, o que também mostra a não indução do formato destas curvas de saída pelas curvas de entrada de dados. Em todas as simulações realizadas o que se observou foi a redução e consequente estabilização dos custos de transação em níveis próximos de 0, sem que houvesse uma variação significativa, como pode ser visto pelos valores de desvio padrão expostos anteriormente. Tal redução aconteceu ainda que houvesse aumento nos níveis de ativos específicos dos agentes econômicos que participavam do sistema. Como o efeito de rede, que é o denominador da divisão usada para o cálculo aproximado dos custos de transação do sistema, atinge valores muito altos com o crescimento do número de agentes, a primeira conclusão a que se chega é que o efeito de rede é o responsável pela redução dos custos de transação do sistema pela razão já apontada anteriormente: os ativos específicos crescem em uma proporção linear (f(x) x + x ) enquanto o efeito de rede cresce em uma proporção geométrica (f(x) x 2 ). Como o efeito de rede aumenta com o número de agentes, quanto mais agentes econômicos participam do sistema, maior o efeito de rede e menor o custo de transação do sistema, o que justifica a nuvem ser um investimento atraente. Isso valida a hipótese do presente trabalho. Observou-se também que a estrutura do sistema sempre tende a uma estabilização. Isso não significa que a estabilização seja sempre do mesmo modo, por exemplo, sempre com um número fixo de agentes econômicos em uma determinada 73
96 categoria, mas que, a cada vez que a simulação é disparada, após algumas transações os agentes econômicos tendem a ficar nas categorias em que estão havendo muito pouca transição de agentes de uma categoria para outra. Pode-se encontrar justificativa para tal fato no conceito de Transformação Fundamental. Este conceito diz respeito justamente à frequência das transações entre os agentes e à manutenção de determinada transação entre dois agentes ocasionando, no limite, uma dependência bilateral (WILLIAMSON, 1985). No caso da nuvem, para economizar em custos de informação, os agentes passam a transacionar dentro do sistema em uma determinada configuração e esta, por ter os menores custos de informação 14 para cada dois agentes, passa a ser utilizada recorrentemente. Isso significa que, para cada disparo de simulação o sistema encontra a configuração de custos de transação mais baixa possível. Isso também explica a inexistência de uma só estabilização: para cada configuração de saída diferente o sistema caminha para a melhor configuração final em termos de custos de transação. Por fim, observou-se que o fato de se usar diferentes curvas de probabilidades na entrada de novos usuários no sistema não faz diferença no resultado final, que é sempre o mesmo: a redução dos custos de transação a níveis muito baixos. 14 Custos de informação fazem parte dos custos de transação. Ver Williamson (1975, 1985). 74
97 Capítulo 6 Conclusões 6.1. Observações Finais Este trabalho apresentou a nuvem usando um ferramental oriundo tanto da área computacional mormente Grafos quanto da área Econômica mais precisamente conceitos da Economia Institucional, cuja unidade básica de estudo é a transação econômica e que tem nos investimentos dos agentes em ativos específicos sua mola mestra. O objetivo do trabalho foi que a computação em nuvem é uma nova organização em rede, formada por usuários e por firmas, pré-competitiva, sendo que um dos fatores que a faz possível é o chamado efeito de rede. Isso foi mostrado por meio do exercício de simulações em um modelo que foi implementado na linguagem de simulação NetLogo. A implementação do modelo foi submetida a diversos cenários que compreenderam diferentes processos estocásticos de entrada de novos agentes no sistema, a saber, uniforme ou equiprovável, normal, exponencial negativo e exponencial positivo. O que foi observado em todas as simulações e que constitui a principal contribuição deste trabalho é o fato de que, para todas as simulações realizadas, os resultados mostraram uma redução assintótica a 0 dos custos de transação totais do sistema na medida em que mais agentes entravam nele e que isso aconteceu por causa da diferença de crescimento entre os ativos específicos dos agentes do sistema, a saber, H (ativos humanos), M (ativos de marca) e K (ativos de capital), o que dá um somatório nestes ativos, e o chamado efeito de rede, que é uma multiplicação no número de agentes. O efeito de rede que é enunciado pela Lei de Metcalfe, tem o valor aproximado de ( ), onde N é o número de agentes interligados em uma determinada rede. No caso da simulação em questão, como o número de agentes varia no decorrer do tempo t, tem-se que o valor da rede é ( ) ( ( ) ), onde ( ) é o número de agentes em um determinado instante de tempo t em uma simulação. Uma outra contribuição deste trabalho, não menos importante, foi a verificação de que, em todas as simulações realizadas, o sistema sempre tende a alguma 75
98 estabilização. Por estabilização, entenda-se uma distribuição de agentes nas categorias em que o sistema foi concebido, que são (1) usuários; (2) empreendedores; (3) firmas; e (4) corporações. Isso se deu por causa da chamada Transformação Fundamental, que provoca uma realimentação nas relações bilaterais/transações de determinados agentes que participam do sistema e que fazem com que estas relações se tornem dependências bilaterais. Estas dependências bilaterais entre os agentes, que acontecem como resultado do intuito inicial de diminuir o custo de transação entre eles, acabam por provocar a estabilização dos agentes que participam da transação em determinadas categorias ao longo do tempo. Por fim, as últimas contribuições foram em relação ao comportamento dos agentes usuários em relação aos outros agentes do sistema ao longo do tempo. Todas as simulações realizadas mostraram que (1) apesar da modificação dos processos estocásticos de entrada dos usuários no sistema, o somatório deles continuou a ser assintoticamente uma reta, ou seja, o processo de entrada dos usuários no sistema, nos casos observados, não fez diferença no somatório ao longo do tempo; e (2) a variação do número total dos usuários ao longo do tempo é sempre maior e mais rápida que a variação do número total de cada um dos outros agentes do sistema, sendo que, no caso dos primeiros, a representação é sempre assintótica a uma reta com coeficiente angular positivo e, no caso dos últimos, é sempre uma reta paralela ao eixo horizontal indicando estabilização do número de agentes na categoria ou uma reta com coeficiente angular negativo indicando declínio do número de agentes naquela categoria Trabalhos Futuros O presente trabalho tem, como resultado intermediário, o código-fonte de um simulador no qual foi implementado o marco analítico descrito baseado em Grafos e Custos de Transação. Este código fonte trabalha apenas com agentes isolados em categorias e que podem se movimentar entre as categorias. Uma proposta de trabalho futuro é a de estender o escopo do código-fonte para que possa simular fusões, aquisições, integrações verticais e laterais entre os agentes, dependendo das decisões de investimentos em ativos específicos que eles tomarem. Uma outra proposta de trabalho futuro é a de estudar a necessidade de ampliação do código-fonte para que possa trabalhar com agentes em escala mais ampla, tanto com um número maior de agentes quanto com uma máquina de maior possibilidade de paralelismo e, caso afirmativo, modificá-lo para tal fim. 76
99 Referências Bibliográficas AZEVEDO, P. F. Integração vertical e barganha. Tese de Doutorado. Faculdade de Economia, Administração e Contabilidade. USP, ARROW, K. J. The economic implications of learning by doing. Rev. Econ. Studies. 29: , ARROW, K. J. The Organization of economic activity: Issues pertinent to the choice of market versus non-market allocation. In: The analysis and evaluation of public expenditures: The PPB system, Joint Economic Committee of the Congress of the United States, Washington, DC, 1969, pp BERNESTEIN, D., DIAMOND, S., LUDIGSON, E. et al. Blueprint for the intercloud Protocols and formats for cloud computing interoperability. Fourth International Conference on Internet and Web Applications and Services, IEEE Computer Society BOAVENTURA, P. O. Grafos Teoria, modelos, algoritmos. 4. ed. Rio de Janeiro: Edgard Blücher, BOAVENTURA, P. O., JURKIEWICZ, S. Grafos introdução e prática. Rio de Janeiro: Edgard Blücher, 2009 BONDY, J. A., MURTY, U. S. R. Graph theory with applications. North Holland, BREITMAN, K., VITERBO, J., 2010, Computação na Nuvem Uma Visão Geral. In: Anais do III Congresso Internacional de Software Livre e Governo Eletrônico. v. III, Brasília, jul., pp CACERES, R. M., RODERO-MERINO, L. VAQUERO, L. M. et al. A break in the clouds: towards a cloud definition, ACM SIGCOMM Computer Communication Review, v. 39, n. 1, pp , CIBORRA, C. U., Teams, markets and systems business innovation and information technology. Cambridge University Press, COASE, R. H. The Nature of the Firm. Economica. v. 4, pp , COASE, R. H. The problem of social cost". Journal of Law and Economics, pp ,
100 COSTA, S. F. Introdução ilustrada à estatística. 3. ed. Harbra, COUTINHO, M. M., JOHNSON, T. M. S. Avaliação de desempenho de sistemas computacionais. Rio de Janeiro: LTC, DIXIT, A. Recent developments in oligopoly theory. Papers and Proceedings of the Ninety-Fourth Annual Meeting of the American Economic Association. v. 72, n. 2, pp.12-17, ECONOMIDES, N. Economics of networks. In: International journal of Economic Organization, v. 14, n. 2, FARREL, J., SHAPIRO, C., VARIAN, H. R. Economics of information technology an introduction, Cambridge University Press, FOSTER, I, KESSELAN, C. The grid: blueprint for a new computing infrastructure (The Elsevier Series in Grid Computing). Elsevier, 1998, apud FOSTER, I. What is the Grid? A Three Point Checklist, Argonne National Laboratory & University of Chicago, Disponível em: <http://dlib.cs.odu.edu/ WhatIs TheGrid.pdf>. FOSTER, I, KESSELAN, C. The grid 2, Second Edition: Blueprint for a New Computing Infrastructure (The Elsevier Series in Grid Computing), Elsevier, FOSTER, I., 2008, There's grid in them thar clouds. Disponível em: <http://ianfoster.typepad.com/blog/2008/01/theres-grid-in.html. Acesso em: nov FURUBOTN, G. E., RICHTER, R. Institutions and economic theory The contribution of the new institutional economics. The University of Michigan Press, GARCIA-PAPERT. M. F. The social construction of a perfect market: The strawberry auction at Fontaines-En-Sologne, pp In: MACKENZIE, D., MUNIESA, F., SIU, L. Do economists make markets? On the Performativity of Economics, Princeton University Press, Princeton and Oxford, GEELAN, J. Twenty one experts define cloud computing. Virtualization. Electronic Magazine, ago Disponível em: <http://virtualization.sys-con.com /node/612375>. GUEDES, A. L. P. Hipergrafos direcionados. Tese de Doutorado, COPPE. Programa de Engenharia de Sistemas e Computação. UFRJ, GRAY, J., REUTER, A. Transaction processing: concepts and techniques. 1. ed. Morgan Kaufmann Publishers Inc., San Francisco, CA,
101 HANSETH, O. From systems and tools to networks and infrastructures from design to cultivation: towards a design theory of information infrastructures. In: Industrial Informatics Design, Use and Innovation: Perspectives and Services. IGI Global, 2010, pp HAUKIOJA, R. RHOTON, J. Cloud computing architected: solution design handbook, Recursive Press, HAYEK, F. A. The use of knowledge in society, The American Economic Review, v. 35, n. 04, pp , HO, R. Between elasticity and scalability computing. Pragmatic programming techniques. Disponível em: <http://horicky.blogspot.com/2009/07/betweenelasticity-and-scalability.html>, In: BREITMAN, K., VITERBO, J. Computação na nuvem uma visão geral. In: Anais do III Congresso Internacional de Software Livre e Governo Eletrônico. v. III, Brasília, pp , jul HOLLAND, J. H. Hidden order how adaptation builds complexity. Basic Books, KOOPMANS, T. C. Three Essays on the State Economic Science. Nova York, EUA: McGraw-Hill, apud WILLIAMSON, O. E The Economic Institutions of Capitalism. The Free Press, LEIBLEIN, M. J. The choice of organizational governance form and performance: predictions from transaction cost, resource-based, and real options theories. Journal of Management, v. 6, pp , MASTEM, S. E., MEEHAN, J. W., SNYDER, E. A. The costs of organization. Journal of Law, Economics, & Organization, v. 7, n. 1, pp. 1-25, NEGROPONTE, N. A vida digital. São Paulo: Ed. Cia. das Letras, NIST. NIST Definition of Cloud Computing v15. Disponível em: <http://csrc. nist. gov/groups/sns/cloud-computing/>. Acesso em: 26 fev PINDYCK, R.S., RUBINFELD, D.L. Microeconomia. 6. ed. Pearson Education do Brasil Ltda., RHOTON, J. Cloud Computing Explained: Implementation Book for Enterprises. Recursive Press, SHAPIRO, C., VARIAN, H. R. Economia da informação como os princípios econômicos de aplicam à era da internet. 6. ed. Trad. Ricardo Inojosa. Rio de Janeiro: Campus,
102 SIMON, H. A. Administrative behavior. 2. ed., New York: Macmillian, The sciences of the artificial. 3th ed. The MIT Press, SOSINSKY, B. Cloud computing bible, Wiley, TUJAL, L. C. P. Modelo de referência de cloud. In: Anais do III Congresso Internacional de Software Livre e Governo Eletrônico, v. III, Brasília, pp , jul VERAS, M. Cloud computing nova arquitetura da TI. Rio de Janeiro, Brasport, WILENSKY, U. NetLogo. Disponível em: <http://ccl.northwestern.edu/netlogo/>. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL., WILLIAMSON, O. E. Markets and hierarchies: analysis and antitrust implications. New York: Free Press, WILLIAMSON, O. E. The economic institutions of capitalism, The Free Press, WILLIAMSON, O. E. The mechanisms of governance, Oxford University Press,
103 Figura 1.1: Exemplo de Tela de Inicialização do Painel de Simulação. Anexo 1 Micromanual de uso do simulador 81
104 Neste Anexo é exposta a interface do simulador da NON (New Organization in Networks) usado na Tese e o seu uso. O simulador foi escrito na linguagem NetLogo e, por isso, roda tanto em Windows quanto em GNU/Linux. A versão do Windows usada foi a 7 e a versão do GNU/Linux foi a do Ubuntu LTS. Não há diferença de desempenho considerável entre uma e outra. Batidas do Relógio Usuário, na cor rosa com rótulo de Ativo Específico Arestas Iniciais do Sistema Firma, na cor verde com rótulo de Ativo Específico Figura 1.2: Exemplo de Tela Central de Inicialização do Painel de Simulação. 82
105 Corporação, na cor azul com rótulo de Ativo Específico Transação, na cor vermelha Empreendedor, na magenta com rótulo de Ativo Específico Figura 1.3: Exemplo de Tela do Painel de Simulação após a 5ª Batida do Relógio. 83
106 Transação Agentes Origem: Usuário Origem: Empreendedor Origem-> Firma Origem -> Corporação Figura 1.4: Janela de Exibição da Variação das Categorias de Agentes no Tempo. Figura 1.5: Gráfico de Variação das Categorias de Agentes x Ticks. Figura 1.6: Gráfico de Valor de Efeito de Rede x Ticks. 84
107 Figura 1.7: Gráfico de Custo de Transação x Ticks. Figura 1.8: Configuração do Sistema em t =
108 Figura 1.9: Configuração do Sistema em t = 30. Figura 1.10: Configuração do Sistema em t =
109 Figura 1.11: Configuração do Sistema em t = 100. Figura 1.12: Configuração do Sistema em t = 100. Figura 1.13: Configuração do Sistema em t =
110 Figura 1.14: Configuração do Sistema em t = 100. Figura 1.15: Configuração do Sistema em t =
111 Figura 1.16: Exemplo da Tela de Chamada da Execução em Background. Figura 1.17: Exemplo de Tela de Configuração da Execução em Background. 89