Uma arquitetura de computação distribuída baseada na plataforma Java. Carlos Rodrigo Souza Santos

Tamanho: px
Começar a partir da página:

Download "Uma arquitetura de computação distribuída baseada na plataforma Java. Carlos Rodrigo Souza Santos"

Transcrição

1 Universidade Federal do Maranhão Departamento de Engenharia em Eletricidade Coordenação de Pós-graduação em Engenharia Elétrica Mestrado em Ciência da Computação Uma arquitetura de computação distribuída baseada na plataforma Java Carlos Rodrigo Souza Santos São Luis 2003

2 Índice ÍNDICE 2 ÍNDICE DE TABELAS 4 ÍNDICE DE FIGURAS 5 1 INTRODUÇÃO 6 2 OBJETIVOS DO JINI 7 3 VISÃO GERAL DA ARQUITETURA CONCEITOS CHAVE SERVIÇOS SERVIÇO DE LOCALIZAÇÃO JAVA REMOTE METHOD INVOCATION (RMI) SEGURANÇA ALUGUEL (LEASING) TRANSAÇÕES EVENTOS VISÃO GERAL DOS COMPONENTES INFRAESTRUTURA MODELO DE PROGRAMAÇÃO SERVIÇOS ARQUITETURA DE SERVIÇOS PROTOCOLOS DE DESCOBERTA E REGISTRO IMPLEMENTAÇÃO DE SERVIÇOS 19 4 EXEMPLO REGISTRANDO O SERVIÇO DE IMPRESSÃO DESCOBRINDO UM SERVIÇO DE LOCALIZAÇÃO REGISTRANDO-SE AO SERVIÇO DE LOCALIZAÇÃO CONFIGURAÇÃO OPCIONAL PERMANECENDO ATIVO IMPRIMINDO DESCOBRINDO O SERVIÇO DE LOCALIZAÇÃO PROCURANDO POR SERVIÇOS DE IMPRESSÃO CONFIGURADO A IMPRESSORA REQUISITANDO A IMPRESSÃO DA IMAGEM REGISTRANDO-SE PARA UMA NOTIFICAÇÃO 22 2

3 4.2.6 RECEBENDO A NOTIFICAÇÃO 23 5 CONCLUSÃO 24 6 REFERÊNCIAS BIBLIOGRÁFICAS 25 3

4 Índice de Tabelas Tabela 1 Segmentação da arquitetura JINI[1] 13 4

5 Índice de Figuras Figura 1 Descoberta[1] 16 Figura 2 Registro[1] 17 Figura 3 Localização[1] 17 Figura 4 O cliente utiliza o serviço[1] 18 5

6 1 Introdução A tecnologia Jini exemplifica uma nova abordagem para sistemas de computação, tornando a rede o meio central de conexão. Ao substituir a noção de periféricos e aplicações pelo de serviços disponíveis em uma rede e clientes que os utilizam, o sistema Jini quebra a visão convencional de o que é um computador. Enquanto inclui novas classes de dispositivos em uma arquitetura unificada [3]. A tecnologia Jini, na verdade uma especificação desenvolvida pela Sun Microsystems, vem para disponibilizar uma nova arquitetura, ou até talvez um novo paradigma de desenvolvimento de aplicativos, onde o ponto central não é mais o conceito de unidade de processamento e periféricos, mas sim uma coleção de dispositivos capazes de disponibilizar uma gama de serviços a todos os clientes capazes de contata-lo, além de fornecer meios para a descoberta e utilização destas funcionalidades sem a necessidade do prévio conhecimento da implementação de tais serviços. A tecnologia Jini assume uma rede em constante alteração, tanto em termos dos componentes que constituem esta rede como do modo como eles interagem entre si. Dessa forma expande o conceito de plug and play da relação computador/periféricos para um ambiente mais diverso onde existe uma rede interligando diversos dispositivos com um certo poder de processamento. Assim, instalar um novo dispositivo em uma rede onde a tecnologia Jini está funcionando pode ser simplesmente realizado conectando-se o dispositivo na rede. A partir de conectado o dispositivo se apresenta para os outros componentes da rede e todos conectados poderão fazer uso de seus recursos. Com isto, as redes se transformam de entidades relativamente estáticas para uma federação flexível de serviços que podem ser alterados em qualquer momento sem causar impacto no trabalho de todos os outros membros da comunidade. 6

7 2 Objetivos do Jini Um sistema JINI é um sistema distribuído baseado na idéia de grupos federativos de usuários e dos recursos requeridos por esses usuários. Com este fim, a arquitetura Jini é projetada para permitir que um serviço existente em uma rede esteja disponível para qualquer um que possa alcança-lo, e que possa fazelo de forma robusta e protegida. O objetivo geral da arquitetura é fornecer um ambiente de rede flexível, facilmente administrável na qual os recursos podem ser localizados por clientes humanos e computacionais. Estes recursos podem ser implementados tanto como dispositivos de hardware, programas de software ou como uma combinação dos dois. Assim, o foco do sistema é tornar a rede uma entidade mais dinâmica que reflete melhor a natureza de um grupo de trabalho possibilitando a adição e remoção de serviços de forma mais flexível. Dessa forma, os objetivos específicos da arquitetura são[2]: Tornar a rede plug-and-play: Deve-se ser capaz de inserir um serviço em uma rede e torna-lo visível e disponível para todos que desejam utiliza-lo. Conecta-lo na rede deve ser tudo ou quase tudo que é preciso para distribuí-lo; Eliminar a distinção entre hardware e software: O usuário não precisa saber que parte do serviço é software e que parte é hardware desde que o serviço faça o que o usuário precisa. Assim, um serviço disponibilizado na rede deve se comportar da mesma forma e obedecer às mesmas regras quer seja ele implementado em hardware, em software ou em uma combinação dos dois; Habilitar um trabalho em rede espontâneo: Quando os serviços são conectados a rede e disponibilizados, eles poderão ser descobertos e utilizados por clientes e por outros serviços. Quando clientes e serviços trabalham em uma rede flexível eles devem poder se organizar da melhor forma de acordo com o conjunto de serviços atualmente disponíveis no ambiente; Promover uma arquitetura baseada em serviços: Com um mecanismo simples para a distribuição de serviços em uma rede, mais produtos podem ser designados como serviços ao invés de aplicativos isolados. Dentro de quase todas as aplicações existem módulos que podem ser facilmente transformados em serviços. Assim, quanto mais fácil for disponibilizar o serviço na rede, maior a quantidade de serviços será encontrado nela; Simplicidade: Se tornar um serviço Jini bem comportado é relativamente simples e a maioria do que é necessário se fazer pode ser automatizado por outras ferramentas, deixando para o desenvolvedor poucos pedaços de trabalho a serem realizados. 7

8 Igualmente importante é que um sistema grande construído sobre princípios simples se tornará mais robusto que um grande e complicado sistema. Enfim, o sistema Jini cria uma federação de computadores e dispositivos computacionais no que aparenta ser para o usuário um único sistema. Entretanto para que isto seja possível, é necessário que exista uma rede de velocidade razoável interconectando estes dispositivos. Além disto dependendo do dispositivo a rede deverá ter uma velocidade maior para atender as necessidades do usuário. Além disto, o dispositivo deverá ter alguma memória e poder de processamento. Os dispositivos sem estes requisitos precisarão se conectar a um sistema Jini, entretanto precisarão ser controlados por outro tipo de hardware ou software que intermediará o acesso deste ao sistema Jini. A infraestrutura da tecnologia Jini é centralizada na plataforma Java e grande parte da sua simplicidade advém do fato da especificação assumir que os componentes serão implementados em Java. Além disto, a habilidade de fazer o download e a execução de código dinamicamente é central para diversas características do Jini. Entretanto a dependência é em relação ao ambiente de execução do Java e não à linguagem propriamente dita. Assim, qualquer linguagem de programação que possa ser compilada em bytecodes compatíveis com a Java Virtual Machine (JVM) pode ser suportada por um sistema Jini. 8

9 3 Visão Geral da Arquitetura O sistema Jini é composto pelas seguintes partes[1]: Um conjunto de componentes que fornece uma infraestrutura para serviços federativos em um sistema distribuído; Um modelo de programação que suporta e encoraja a produção de serviços distribuídos confiáveis; Serviços que podem se tornar partes de um sistema Jini federativo e que oferecem funcionalidades a quaisquer outros membros da federação. Apesar de estas partes serem separadas e distintas, elas estão interrelacionadas, o que pode dificultar a distinção na prática. Dessa forma, os componentes que compõem a infraestrutura da tecnologia Jini utilizam o modelo de programação do Jini e os serviços que residem na infraestrutura também utilizam o modelo. Por fim o modelo de programação é bem suportado pelos componentes da infraestrutura. 3.1 Conceitos chave O propósito chave da arquitetura Jini é agrupar dispositivos e componentes de software em um único sistema distribuído dinâmico. A federação resultante permite a simplicidade de acesso, facilidade de administração e suporte para compartilhamento que é fornecido em um grande sistema monolítico enquanto mantém a flexibilidade, resposta uniforme e controle possível em um computador pessoal ou estação de trabalho. A arquitetura de um sistema Jini é voltada para o grupo de trabalho. Assim, os membros da federação devem concordar em questões básicas como confiança, administração, identificação e políticas. É possível, ainda, criar-se federações de sistemas Jini propriamente ditos para organizações maiores Serviços O conceito mais importante na arquitetura Jini é o de serviço. Um serviço é uma entidade que pode ser utilizada por uma pessoa, um programa ou por outro serviço. Ele pode ser uma computação, armazenamento, um canal de comunicação com outro usuário, um filtro de software, um dispositivo de hardware ou outro usuário. 9

10 Os membros de um sistema Jini entram em uma federação para compartilhar o acesso aos serviços. Assim, um sistema Jini não deve ser visto como um conjunto de clientes e servidores, mas sim como um conjunto de serviço que podem ser utilizados em conjunto para a realização de uma determinada tarefa. Os serviços podem utilizar outros serviços e um cliente de um serviço pode ser ele próprio o serviço de outros. A natureza dinâmica de um sistema Jini permite que sistemas sejam adicionados ou removidos da federação em qualquer momento de acordo com a demanda, necessidade ou a alteração dos requisitos do grupo de trabalho utilizando o sistema. Os sistemas Jini fornecem mecanismos de construir, localizar, comunicação e utilização dos serviços em um ambiente distribuído. Por fim, os serviços em um sistema Jini se comunicam utilizando um protocolo de serviço, que nada mais é do que um conjunto de interfaces escritas na linguagem Java. O conjunto de tais protocolos é aberto e a base do sistema Jini especifica um pequeno número destes protocolos que definem a interações críticas entre os serviços Serviço de localização Os serviços são localizados por um serviço de localização. Este serviço é o mecanismo central de inicialização para o sistema e provê o maior ponto de contado entre o sistema e seus usuários. Em termos práticos este serviço faz o mapeamento entre as interfaces, indicando as funcionalidades que o serviço fornece, e o conjunto de objetos que implementam os serviços. Adicionalmente, entradas descritivas associadas com um serviço permitem uma seleção mais detalhada dos serviços baseados em termos entendíveis para as pessoas. Os objetos presentes em um serviço de localização podem incluir outros serviços de localização fornecendo uma busca hierárquica. Além disto, um serviço de localização pode conter objetos que encapsulam outros serviços de nomeação e diretório, fornecendo meios de construir pontes entre um serviço de localização Jini e outras formas de serviços de localização. Da mesma forma referências a um serviço de localização Jini pode ser inserida nestes outros serviços de nomeação e diretório fornecendo meios para clientes destes serviços acessarem um sistema Jini. Um serviço é adicionado a um serviço de localização Jini através de dois protocolos chamados descoberta (Discovery) e registro (Join). Primeiro ele localiza um serviço de localização apropriado (utilizando o protocolo de descoberta) e em seguida se registra no serviço de localização (utilizando o protocolo de registro). 10

11 3.1.3 Java Remote Method Invocation (RMI) A comunicação entre os serviços é realizada utilizando-se o Java Remote Method Invocation (RMI). Assim, a infraestrutura para suportar a comunicação entre os serviços não é ela própria um serviço que é descoberto e utilizado, mas sim uma parte da infraestrutura da tecnologia Jini. O RMI fornece meios de localizar, ativar e eliminar grupos de objetos. Fundamentalmente, RMI é uma extensão da linguagem Java ao mecanismo tradicional de chamada remota de procedimento (RPC), que permite tanto a transferência de dados entre objetos, mas também que os próprios objetos, incluindo código, sejam transportados através da rede. A maior parte da simplicidade da tecnologia Jini é baseada nesta habilidade de mover código através da rede na forma encapsulada de um objeto Segurança O projeto do modelo de segurança para a tecnologia Jini é construído sobre os conceitos interligados de principal e listas de controle de acesso (ACL). Os serviços Jini são acessados em nome de alguma entidade o principal que geralmente é relacionado a um usuário particular do sistema. Além disto os próprios serviços podem requisitar acesso a outros utilizando a identidade do objeto que implementa o serviço. Por fim a permissão de acesso a um serviço depende dos conteúdos de uma lista de controle de acesso que é associada ao objeto Aluguel (leasing) O acesso a vários serviços em um sistema Jini é baseado em alugueis. Um aluguel é a permissão de utilizar um determinado serviço por um certo período de tempo. Cada aluguel é negociado entre o usuário e o fornecedor do serviço como uma parte do protocolo: um serviço é requisitado por algum período e o acesso é garantido por algum tempo geralmente levando-se em consideração o tempo solicitado. Já se o aluguel não for renovado antes de ser liberado, se o serviço não for mais necessário, o cliente ou a rede falham ou a renovação do aluguem não seja permitida, então ambos o cliente e o fornecedor do serviço concluem que o recurso pode ser liberado. Assim, os alugueis podem ser tanto exclusivos quanto compartilhados. Os exclusivos garantem que somente um cliente utilizará o serviço pelo período alugado, já os compartilhados permitem que múltiplos usuários utilizem o recurso. 11

12 3.1.6 Transações Um conjunto de operações, seja em um único serviço ou abrangendo múltiplos serviços, pode ser agrupado em uma transação. As interfaces de transação do sistema Jini fornecem um protocolo de serviço necessário para coordenar uma confirmação de duas fases. Como estas transações são implementadas e ainda a semântica da noção de transação são deixadas para a os serviços utilizando estas interfaces Eventos A arquitetura Jini suporta eventos distribuídos. Um objeto pode permitir que outros objetos registrem interesse em eventos dele e receber uma notificação quando tal evento ocorrer. Isto possibilita o desenvolvimento de programas baseados em eventos distribuídos com uma variedade de garantias de confiabilidade e escalabilidade. 3.2 Visão Geral dos Componentes Os componentes de um sistema Jini podem ser divididos em três categorias: Infraestrutura, Modelo de programação e serviços. A infraestrutura é um conjunto de componentes que possibilita a construção de um sistema Jini federativo, enquanto os serviços são as entidades membros da federação. Já o modelo de programação é um conjunto de interfaces que habilita o desenvolvimento de serviços confiáveis, incluindo aqueles que fazem parte da infraestrutura e aqueles que se unirão à federação. Essas três categorias, apesar de separadas estão tão intrinsecamente interligadas que a distinção entre elas se torna um tanto confusa. Apesar disto é possível desenvolver um sistema que possui algumas das funcionalidades da tecnologia Jini com variantes ou sem as três categorias. No entanto, um sistema Jini tira toda a sua capacidade do fato de que é um sistema construído com uma infraestrutura e um modelo de programação específicos e descritos baseados na noção de serviço. Dessa forma um sistema Jini pode ser visto como uma extensão de rede da infraestrutura, modelo de programação e serviços que tornou a tecnologia Java bem sucedida no caso de uma única estação. Abaixo seguem estas categorias e seus respectivos componentes no ambiente Java tradicional e no ambiente Jini. 12

13 Java Básico Java + Jini Infraestrutura Modelo de Serviços programação Java VM Java APIs JNDI RMI JavaBeans Enterprise Beans Segurança Java... JTS... Descoberta / Registro Aluguel Impressão Segurança Distribuída Transações Gerenciados de Transações Localização Eventos Serviço JavaSpaces... Tabela 1 Segmentação da arquitetura JINI[1] Infraestrutura A infraestrutura da tecnologia Jini define o núcleo mínimo da arquitetura. Ela inclui o seguinte[1]: Um sistema de segurança distribuído, integrado ao RMI, que estende a segurança da plataforma Java para a computação distribuída; Os protocolos de descoberta e registro que possibilitam aos serviços (tanto de software quanto de hardware) a localização, tornar-se membros e a disponibilização de funcionalidades a outros membros da federação; O serviço de localização, que funciona como um repositório de serviços. Entradas no repositório são objetos escritos na linguagem de programação Java que podem ser copiados para o cliente como parte do processo de descoberta e agir como proxies locais para o serviço que publicou aquele objeto. Os protocolos de descoberta e registro especificam o modo que um serviço de qualquer tipo torna-se membro de um sistema Jini, já o RMI define a linguagem base na qual os serviços Jini se comunicam. Já o sistema de segurança distribuído e sua implementação definem como as entidades são identificadas e como elas adquirem os direitos para realizar ações em seu próprio nome e no nome de outros. Por fim o serviço de localização reflete os membros atuais da federação e age como um repositório central para disponibilizar e localização de serviços pelos membros da federação. 13

14 3.2.2 Modelo de programação A infraestrutura tanto habilita o modelo de programação quanto o utiliza. As entradas no serviço de localização são alugadas, permitindo que o serviço de localização reflita o conjunto atual de serviços disponíveis. Quando serviços entram ou abandonam a federação eventos são disparados e os objetos que registraram interesse em tais eventos são notificados. Por fim o modelo de programação se baseia na habilidade de transferência de código, o que é suportado pela infraestrutura base. Tanto a infraestrutura quanto os serviços que a utilizam são entidades computacionais que existem no ambiente físico do sistema Jini. No entanto os serviços também constituem uma serie de interfaces que definem os protocolos de comunicação que podem ser utilizados pelos serviços e pela infraestrutura para se comunicarem entre si. Entre as interfaces que fazem parte do modelo de programação Jini, estão as seguintes[1]: A interface de aluguel que define um meio de alocar e liberar recursos utilizando um modelo renovável e baseado em duração; As interfaces de eventos e notificações as quais são extensões do modelo de eventos utilizados pelos componentes JavaBeans para um sistema distribuído habilitando a comunicação baseada em eventos entre serviços Jini; As interfaces transacionais, que possibilitam as entidades colaborar de forma que todas as alterações realizadas no grupo ocorram atomicamente ou que nenhuma delas ocorra. A interface de aluguel adiciona o tempo à noção de manter a referência a um objeto, possibilitando a elas serem recuperadas com segurança no caso de uma falha na rede. Já as interfaces de eventos e notificações estendem os modelos de eventos tradicionais adaptando-os para um ambiente distribuído, possibilitando que eventos sejam manipulados por objetos de terceiros enquanto mantém uma série de garantias de entrega e linha de tempo. O modelo também reconhece que a entrega de uma notificação pode ser atrasada. Ainda, as interfaces transacionais introduzem um protocolo leve e orientado a objeto possibilitando às aplicações utilizando a tecnologia Jini a sincronizar alterações de estado. O protocolo de transações da arquitetura Jini difere da maioria das interfaces transacionais pelo fato de não assumir a existência de um sistema de processamento de transações. Dessa forma o protocolo transacional da tecnologia Jini possui uma visão orientada a objeto mais tradicional, deixado a implementação das semânticas transacionais desejadas 14

15 para o desenvolvedor dos objetos envolvidos na transação. O objetivo do protocolo é definir as interações que tais objetos tem que coordenar de forma a agrupar tais operações. Assim as interfaces que definem o modelo de programação da tecnologia Jini são utilizadas pelos componentes da infraestrutura onde mais apropriado e pelos serviços Jini iniciais. Um exemplo é o serviço de localização. Ele utiliza o aluguel para permitir que os serviços registrados continuem disponíveis e os eventos para auxiliar os administradores a descobrir problemas e dispositivos que precisam de configuração. Por fim a implementação de um serviço não precisa utilizar o modelo de programação, mas este modelo é necessário para estabelecer a interação deste serviço com a infraestrutura. A ligação entre o modelo de programação aos serviços e à infraestrutura é o que torna tal federação um sistema Jini e não somente uma coleção de serviços e protocolos. Assim, a combinação de infraestrutura, modelo de programação e serviços, todos projetados para trabalharem em conjunto e construídos utilizando uns aos outros, simplifica o sistema como um todo e o unifica de maneira que o torna mais simples de entender Serviços A infraestrutura e o modelo de programação Jini foram desenvolvidos para possibilitar a disponibilização e a localização de serviços na federação. Estes serviços fazem uso da infraestrutura para descobrir uns aos outros, fazer chamadas entre si e anunciar sua presença para os outros membros da federação. Eles apresentam-se como objetos escritos na linguagem Java, talvez feitos de outros objetos. Cada serviço possui uma interface que define as operações que podem ser requisitadas deles. Algumas dessas interfaces são projetadas para serem utilizadas por outros programas enquanto outras são próprias para serem executadas no cliente de forma aos serviços poderem se comunicar com o usuário. O tipo do serviço determina as interfaces e o conjunto de métodos utilizado para acessar o serviço. Além disto um serviço pode ser implementado utilizando outros serviços. 15

16 3.3 Arquitetura de Serviços Os serviços formam a base interativa de um sistema Jini, ambos no nível de programação e interface com o usuário. Os detalhes da arquitetura dos serviços são mais bem entendidos quando os protocolos de descoberta e registro são apresentados Protocolos de descoberta e Registro O coração de um sistema Jini é o trio de protocolos chamados descoberta, registro e localização. Um par destes protocolos, descoberta e registro, ocorre quando um dispositivo é conectado à rede. A descoberta é utilizada quando um dispositivo está procurando por um serviço de localização. O registro ocorre quando o serviço de localização é descoberto e o serviço deseja ingressar nele. Já a localização ocorre quando um determinado cliente necessita localizar e invocar um serviço descrito por sua interface e possivelmente outros atributos. A Figura 1 abaixo mostra o processo de descoberta. Um provedor de serviços procura por um serviço de localização Serviço de Localização Cliente Provedor de Serviços Objeto do Serviço Atributos do serviço Figura 1 Descoberta[1] O processo de descoberta e registro do Jini é utilizado para adicionar um serviço ao sistema. O provedor do serviço é o originador da chamada, um dispositivo ou software, por exemplo. Primeiro o serviço procura um serviço de localização enviando um multicast de requisição na rede local para qualquer serviço de localização se identificar. Então um objeto do serviço é carregado dentro do serviço de localização(figura 2). Este objeto contém a interface desenvolvida em Java para o serviço, incluindo métodos que usuários e aplicações irão invocar para executar o serviço junto a outros atributos descritivos. 16

17 Um provedor de serviços registra um objeto de serviço (proxy) e seus atributos em um serviço de localização Serviço de Localização Objeto do Serviço Atributos do serviço Cliente Provedor de Serviços Objeto do Serviço Atributos do serviço Figura 2 Registro[1] Os serviços devem ser capazes de localizar um serviço de localização, entretanto eles podem delegar esta tarefa para um terceiro. Assim o serviço está neste momento pronto para localizado e utilizado, como mostrado no diagrama abaixo(figura 3). Um cliente solicita um serviço por um tipo da linguagem java e, talvez, outros atributos. Um cópia do objeto de serviço é movido para o clinte e utilizado pelo cliente para se comunicar com o serviço. Cliente Objeto do Serviço Serviço de Localização Objeto do Serviço Atributos do serviço Provedor de Serviços Objeto do Serviço Atributos do serviço Figura 3 Localização[1] Um cliente localiza um determinado serviço por seu tipo, isto é por sua interface escrita na linguagem de programação Java, além de atributos descritivos que são utilizados em uma interface com o usuário do serviço de localização. O objeto de serviço é carregado no cliente. Dessa forma o estágio final é a invocação do serviço como mostrado abaixo(figura 4). 17

18 O cliente interage diretamente com o provedor de serviços através do objeto de serviço (proxy). Serviço de Localização Objeto do Serviço Atributos do serviço Cliente Objeto do Serviço Provedor de Serviços Objeto do Serviço Atributos do serviço Figura 4 O cliente utiliza o serviço[1] Os métodos do objeto de serviço podem implementar um protocolo privado entre ele mesmo e o provedor do serviço. Implementações diferentes da mesma interface de serviço podem utilizar protocolos de interação completamente diferentes. A habilidade de mover objetos e código (serialização) do provedor de serviço ao serviço de localização e a partir daí para o cliente dá ao provedor uma grande liberdade de padrões de comunicação entre o serviço e seus clientes. Este movimento de código também garante que o objeto de serviço possuído pelo cliente e o serviço para o qual ele funciona como proxy estão sempre sincronizados por que o objeto de serviço é fornecido pelo próprio serviço. O cliente conhece somente que ele está lidando com a implementação de uma interface escrita em Java, então o código pode fazer o que quer que seja necessário para fornecer o serviço. Devido a este código vir a partir do próprio serviço ele possui a vantagem de ter acesso a detalhes de implementação do serviço que só ele conhece. Dessa maneira, o cliente interage com o serviço através de uma série de interfaces escritos em Java. Estas interfaces definem um conjunto de métodos que podem ser utilizados para interagir com o serviço. As interfaces programáticas são identificadas através do mecanismo de tipagem da linguagem Java e os serviços podem ser localizados em um serviço de localização procurando por aqueles que suportam uma determinada interface. Localizando um serviço desta maneira garante que o cliente procurando por determinado serviço saberá como utilizá-lo, por que o uso é especificado pelo conjunto de métodos definidos pelo tipo. As interfaces programáticas podem ser implementadas como referencias RMI ao objeto remoto que implementa este serviço, como uma computação local que fornece toda a implementação do serviço e como uma combinação dos dois métodos. Tais combinações, chamadas proxies inteligentes, 18

19 implementam algumas das funções localmente e o restante através de chamadas remotas a implementação do serviço. Uma interface com o usuário também pode ser armazenada no serviço de localização como um atributo de um serviço registrado. Ela é na verdade uma implementação que permite a interação direta do usuário com o serviço. Neste caso a interface com o usuário é uma forma especializada de serviço que possibilita um programa, como um browser, sair do caminho e permitir ao usuário interagir diretamente com o serviço. Por fim em situações onde um serviço de localização não pôde ser descoberto, um cliente pode utilizar uma técnica chamada localização ponto-aponto. Nestas situações o cliente pode enviar o mesmo pacote de identificação utilizado pelo serviço de localização para requisitar que os provedores de serviço se registrem. Dessa forma os fornecedores tentarão se registrar com o cliente como se este fosse um serviço de localização. O cliente pode então selecionar os serviços que ele necessita a partir das requisições de registro que ele receber e ignorar ou rejeitar o restante Implementação de serviços Os objetos que implementam um serviço podem ser projetados para executar em um único espaço de endereçamento com outros objetos auxiliares especialmente onde há requisitos de segurança ou localização. Tas objetos criam o chamado grupo de objetos. Um grupo de objetos é garantido estar localizado em um único espaço de endereçamento ou uma única máquina virtual quando os objetos estão executando. Os objetos que não estão em um grupo de objetos estão isolados uns dos outros, tipicamente sendo executados em máquinas virtuais ou espaços de endereçamento diferentes. Além disto, um serviço pode se implementado diretamente ou não por um hardware especializado e tais serviços podem ser contatados através do código associado à interface destes. Assim, do ponto de vista do cliente não há distinção entre serviços que são implementados por objetos em máquinas diferentes, serviços que são copiados para o espaço de endereçamento local e serviços implementados em hardware. Todos estes serviços vão aparecer disponíveis na rede como objetos escritos na linguagem Java e somente quando não afetar o correto funcionamento do serviço, um tipo de implementação pode ser facilmente substituído por outro sem conhecimento do usuário. 19

20 4 Exemplo Este exemplo mostra como um serviço de impressão Jini, pode ser utilizado por uma câmera digital para imprimir um imagem colorida de alta definição. Ele começará com a impressora de integrando ao sistema Jini, continuando com ela sendo configurada e terminando com a imagem sendo impressa. 4.1 Registrando o serviço de impressão Uma impressora que foi recentemente conectada a um sistema Jini ou que acabou de ser ligada e já estava conectada ao sistema precisa descobrir o serviço de localização apropriado e se registrar com ele. Esta é a fase de descoberta e registro Descobrindo um serviço de localização As operações básicas para descoberta do serviço de localização são implementadas em uma classe de software da infraestrutura da tecnologia Jini. Uma instância desta classe age como mediadora entre os dispositivos e serviços em uma ponta e o serviço de localização em outra. Neste exemplo a impressora primeiro se registra a uma instância local desta classe. Esta instância então envia um multicast de requisição na rede local para que qualquer serviço de localização se identifique. A instância então espera por respostas e, se existir alguma, repassa à impressora um vetor de objetos que são os proxies para o serviço de localização descoberto Registrando-se ao serviço de localização Para registrar-se com o serviço de localização a impressora deve primeiro criar um objeto de serviço do tipo correto para dispositivos de impressão. Este objeto fornece os métodos que usuários e aplicações invocarão para imprimir documentos. Também é necessário um vetor de instâncias da classe LookupEntry para especificar-se os atributos que descrevem a impressora, tais como a capacidade de imprimir em colorido ou preto e branco, que formatos de documentos podem ser impressos, tamanhos de papéis aceitos e resolução de impressão. A impressora então chama o método register do objeto do serviço de localização que ele recebeu durante a fase de descoberta, passando para ele o objeto de serviço da impressora e o vetor de atributos. O serviço de impressão está neste momento registrado com serviço de localização. 20

21 4.1.3 Configuração opcional Neste ponto o serviço de impressão está pronto para ser utilizado, no entanto o administrador do sistema pode desejar incluir informações extras sobre a impressora na forma de atributos adicionais, tais como o nome local do serviço, informações sobre a sua localização física e uma lista de quem pode acessar o serviço. O administrador do sistema pode também querer se registrar com o serviço de impressão para receber notificações para quaisquer erros que forem gerados, tal como se a impressora está sem papel. Uma forma com a qual o administrador pode realizar esta tarefa poderia ser a utilização de uma ferramenta especial que permita que ele passe informações adicionais ao serviço. De fato este programa pode ter recebido uma notificação do serviço de localização que um novo serviço foi adicionado e estão ter alertado o administrador Permanecendo ativo Quando a impressora se registra com o serviço de localização ela recebe um aluguel. Periodicamente, ela precisará renovar este aluguel com o serviço de localização. Se a impressora falhar em renová-lo então o aluguel expirará, o serviço de localização removerá a referência a ela e o serviço de impressão não mais funcionará. 4.2 Imprimindo Alguns serviços fornecem uma interface com o usuário para interação com eles, outras dependem de um aplicativo para mediar tal interação. Este exemplo assume que uma pessoa possui uma câmera digital na qual foi tirada uma fotografia e que ele deseja que seja impressa em uma impressora de alta resolução. A primeira coisa que a câmera precisa fazer após ser conectada a rede é localizar um serviço de impressão Jini. Uma vez que o serviço de impressão seja localizado e selecionado, a câmera pode invocar métodos para imprimir a imagem Descobrindo o serviço de Localização Antes que a câmera possa utilizar um serviço de impressão Jini, ela deve primeiro descobrir um serviço de localização, tal qual o serviço de impressão precisou fazer para registrar-se. A câmera então se registra a uma instância local da classe de infraestrutura da tecnologia Jini LookupDiscovery a qual notificará a câmera de todos os serviços de localização descobertos. 21

22 4.2.2 Procurando por serviços de impressão Localizar um serviço apropriado requer a passagem de um modelo que é utilizado para combinar e filtrar o conjunto de serviços existentes. O modelo especifica tanto o tipo do serviço requerido, o que é o primeiro filtro para possíveis serviços, e um conjunto de atributos que são utilizados para reduzir o número de serviços correspondentes se existem vários deles do tipo correto. Neste exemplo a câmera fornece um modelo especificando o tipo impressora e um vetor de objetos de atributo. O tipo de cada objeto determina o tipo do atributo e seus campos determinam os valores a serem comparados. Para cada atributo, os campos que devem ser comparados, tais como impressão a cores são preenchidos e os que não importam são deixados nulos. O serviço de impressão recebe este modelo e retorna um vetor de todos os serviços de impressão que correspondentes. Se ainda forem retornados vários serviços, a câmera terá que posteriormente filtrálos, neste caso talvez especificando a impressão em alta resolução, e apresentar ao usuário uma lista com os possíveis dispositivos de impressão a serem escolhidos. O resultado final é um único objeto de serviço para o dispositivo de impressão. Neste ponto, onde o serviço de impressão foi selecionado e a câmera e a impressora podem se comunicar diretamente, o serviço de localização não está mais envolvido Configurado a impressora Antes de imprimir a imagem, o usuário pode desejar configurar a impressora. Isto é feito diretamente pela câmera invocando o método configure do objeto de serviço. Este método pode mostrar uma caixa de diálogo no display da câmera na qual o usuário pode especificar as configurações da impressora. Quando a imagem é impressa, o objeto de serviço envia estas configurações para o serviço de impressão Requisitando a impressão da imagem Para imprimir a imagem, a câmera chama o método print do objeto de serviço passando para ele a imagem como argumento. O objeto de serviço então realiza qualquer préprocessamento necessário e envia a imagem para o serviço de impressão para que ela seja impressa Registrando-se para uma notificação Se o usuário desejar ser notificado quando a impressora acabar a impressão, a câmera precisa se registrar com o serviço de impressão utilizando o objeto de serviço. A câmera pode também desejar se registrar para receber quaisquer erros que ocorram. 22

23 4.2.6 Recebendo a notificação Quando a impressora acabar a impressão da imagem ou encontrar algum erro, ela sinalizará um evento para a câmera. Quando a câmera receber o evento ela poderá notificar o usuário que a imagem foi impressa ou que ocorreu algum erro. 23

24 5 Conclusão A arquitetura Jini fornece uma plataforma que é robusta em várias dimensões[2]: É robusta em face de falhas de rede. O conjunto de serviços automaticamente se adapta ao estado atual da rede e à topologia dos serviços; É robusta em face das alterações na composição dos serviços. Na medida e que a interface é especificada, os detalhes da implementação dos serviços podem ser alterados sem danos para os clientes; É robusta em face de serviços antigos. É relativamente fácil incorporar dispositivos e servidores antigos ao invés de torna-los um impedimento ao progresso; É robusta na face da competição. Os mínimos padrões necessários para a cooperação são definidos na arquitetura, a definição do que constitui um serviço e como se pode localiza-lo, e permite que a variação exista quando necessário. Uma industria pode padronizar definições comuns e companhias individuais podem adicionar características específicas em interfaces proprietárias para clientes que querem utiliza-las, sem inutilizar clientes genéricos que desejam somente utilizar a funcionalidade padrão; É robusta em face da escala. Os serviços Jini podem ser muito grandes ou pequenos e podem trabalhar com dispositivos pequenos através de uma máquina virtual auxiliar. Apesar de todos esses benefícios a tecnologia Jini não é um mecanismo plug-and-play completo pronto para ser utilizado. Ela é um conjunto de primitivas a ser utilizado por desenvolvedores para criar aplicações reais. O seu poder vem de sua relativa simplicidade e que a torna uma boa base para a próxima geração de aplicativos inteligentes. No entanto baseado na linguagem Java e na sua capacidade de execução nas mais diversas plataformas, a tecnologia Jini tem a possibilidade de desenvolvimento de uma nova gama de serviços que podem a se adaptar de forma bastante eficiente à nova realidade de computação móvel, onde é cada vez mais necessário a disponibilização de serviços de forma fácil e automática, com a mínima intervenção do usuário. 24

25 6 Referências bibliográficas [1] The Jini Architecture Team, Veja também, Arnold, K., O Sullivan, B., Scheifler, R.W., Waldo, J. e Wollrath, A. The Jini Especification, Addision-Wesley, in press. Dezembro de [2] Arnold, Ken. The Jini tm Architecture: Dynamic Services in a Flexible Network. [3] Waldo, Jim. The Jini Architecture for Network Centric Computing. Comunications of the ACM, Vol. 42, Nº 7. Julho de [4] Shah, Rawn. The skinni on Jini. Disponível na www em Agosto, [5] The Jini Product Home Page, disponível na www em Sun Microsystems. 25

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I Prof. MSc. Hugo Souza Como já vimos, os sistemas distribuídos são apresentados considerando um planejamento bem mais complexo relacionado aos

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Redes de Computadores. Prof. Dr. Rogério Galante Negri Redes de Computadores Prof. Dr. Rogério Galante Negri Rede É uma combinação de hardware e software Envia dados de um local para outro Hardware: transporta sinais Software: instruções que regem os serviços

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Soluções de Gerenciamento de Clientes e de Impressão Universal

Soluções de Gerenciamento de Clientes e de Impressão Universal Soluções de Gerenciamento de Clientes e de Impressão Universal Guia do Usuário Copyright 2007 Hewlett-Packard Development Company, L.P. Windows é uma marca registrada nos Estados Unidos da Microsoft Corporation.

Leia mais

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA Através dos elementos que fazem parte do projeto do sistema é que podemos determinar quais as partes do sistema que serão atribuídas às quais tipos

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Padrões Arquiteturais. Sistemas Distribuídos: Broker Padrões Arquiteturais Sistemas Distribuídos: Broker Sistemas Distribuídos Tendências: Sistemas Comp. com múltiplas CPUs Redes locais com centenas de hospedeiros Benefícios Economia Desempenho e escalabilidade

Leia mais

BACKBONE e LANS VIRTUAIS. Bruna Luyse Soares Joel Jacy Inácio

BACKBONE e LANS VIRTUAIS. Bruna Luyse Soares Joel Jacy Inácio BACKBONE e LANS VIRTUAIS Bruna Luyse Soares Joel Jacy Inácio Redes Backbone Um backbone permite que diversas LANs possam se conectar. Em uma backbone de rede, não há estações diretamente conectadas ao

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET 1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

MODELO CLIENTE SERVIDOR

MODELO CLIENTE SERVIDOR SISTEMAS DISTRIBUÍDOS Modelo Cliente Servidor Modelo que estrutura um S.O. como um grupo de processos cooperantes, chamados servidores, que oferecem serviços a processos usuários, denominados clientes;

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

Leia mais

Software de gerenciamento de impressoras MarkVision

Software de gerenciamento de impressoras MarkVision Software de gerenciamento de impressoras MarkVision O MarkVision para Windows 95/98/2000, Windows NT 4.0 e Macintosh é fornecido com a sua impressora no CD Drivers, MarkVision e Utilitários. 1 A interface

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Arquitetura Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Sistemas monolíticos Sistemas em camadas Sistemas micro-núcleo Modelo Cliente-Servidor Máquinas

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO 1 ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO 2 INTRODUÇÃO A cada dia que passa, cresce a pressão pela liberação para uso de novas tecnologias disponibilizadas pela área de TI, sob o argumento

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 4. INTERLIGAÇÃO DO SISTEMA... 5 5. ALGUNS RECURSOS... 6 6. SERVIDOR BAM...

INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 4. INTERLIGAÇÃO DO SISTEMA... 5 5. ALGUNS RECURSOS... 6 6. SERVIDOR BAM... 1 de 30 INDICE 1. INTRODUÇÃO... 3 2. CONFIGURAÇÃO MÍNIMA... 4 3. INSTALAÇÃO... 4 3.1. ONDE SE DEVE INSTALAR O SERVIDOR BAM?... 4 3.2. ONDE SE DEVE INSTALAR O PROGRAMADOR REMOTO BAM?... 4 3.3. COMO FAZER

Leia mais

Roteamento e Comutação

Roteamento e Comutação Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede

Leia mais

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

Leia mais

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL Documento: Tutorial Autor: Iuri Sonego Cardoso Data: 27/05/2005 E-mail: iuri@scripthome.cjb.net Home Page: http://www.scripthome.cjb.net ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Leia mais

Lista de Erros Discador Dial-Up

Lista de Erros Discador Dial-Up Lista de Erros Discador Dial-Up Erro Código Descrição Ok 1 Usuário autenticado com sucesso e conexão encerrada pelo usuário OK 11 Usuário autenticado com sucesso e discador terminado pelo usuário OK 21

Leia mais

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA Muitas organizações terceirizam o transporte das chamadas em seus call-centers, dependendo inteiramente

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

Leia mais

Versão 1.0 09/10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

Versão 1.0 09/10. Xerox ColorQube 9301/9302/9303 Serviços de Internet Versão 1.0 09/10 Xerox 2010 Xerox Corporation. Todos os direitos reservados. Direitos reservados de não publicação sob as leis de direitos autorais dos Estados Unidos. O conteúdo desta publicação não pode

Leia mais

Soluções de Gestão de Clientes e Impressão Universal

Soluções de Gestão de Clientes e Impressão Universal Soluções de Gestão de Clientes e Impressão Universal Manual do utilizador Copyright 2007 Hewlett-Packard Development Company, L.P. Windows é uma marca registada da Microsoft Corporation nos E.U.A. As informações

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Categorias de Padrões

Categorias de Padrões Categorias de Padrões Padrão Arquitetural ou Estilo Arquitetural Padrão de Design (Design Patterns) Idiomas Categorias de Padrões ESTILOS ARQUITETURAIS PADRÕES DE DESIGN IDIOMAS Padrões de Design Os subsistemas

Leia mais

Unidade 1. Conceitos Básicos

Unidade 1. Conceitos Básicos Unidade 1 Conceitos Básicos 11 U1 - Conceitos Básicos Comunicação Protocolo Definição de rede Rede Internet 12 Comunicação de dados Comunicação de dados comunicação de informação em estado binário entre

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furbbr Resumo. Este artigo apresenta a especificação

Leia mais

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração. O software de tarifação é uma solução destinada a rateio de custos de insumos em sistemas prediais, tais como shopping centers. O manual do sistema é dividido em dois volumes: 1) MANUAL DO INTEGRADOR Este

Leia mais

FIREWALL. Prof. Fabio de Jesus Souza. fabiojsouza@gmail.com. Professor Fabio Souza

FIREWALL. Prof. Fabio de Jesus Souza. fabiojsouza@gmail.com. Professor Fabio Souza FIREWALL Prof. Fabio de Jesus Souza fabiojsouza@gmail.com Professor Fabio Souza O que são Firewalls? Os firewalls são sistemas de segurança que podem ser baseados em: um único elemento de hardware; um

Leia mais

Introdução ao Active Directory AD

Introdução ao Active Directory AD Introdução ao Active Directory AD Curso Técnico em Redes de Computadores SENAC - DF Professor Airton Ribeiro O Active Directory, ou simplesmente AD como é usualmente conhecido, é um serviço de diretórios

Leia mais

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9 Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva

Leia mais

Servidor, Proxy e Firewall. Professor Victor Sotero

Servidor, Proxy e Firewall. Professor Victor Sotero Servidor, Proxy e Firewall Professor Victor Sotero 1 Servidor: Conceito Um servidor é um sistema de computação centralizada que fornece serviços a uma rede de computadores; Os computadores que acessam

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc. http://about.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc. http://about. PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução Cliente-Servidor Cliente Servidor Tipos de conexão

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais