Instituto Superior de Engenharia do Porto. Departamento de Engenharia Informática. .Net Remoting

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

Download "Instituto Superior de Engenharia do Porto. Departamento de Engenharia Informática. .Net Remoting"

Transcrição

1 Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática Projecto Licenciatura em Engenharia Informática Ramo de Computadores e Sistemas Julho 2002 Elaborado por: António Amaral Orientador: Eng.º Alexandre Bragança

2

3 Índice Geral Índice Geral Lista de Figuras Lista de Abreviaturas iii vi vii 1 - Introdução Projecto Objectivo Estrutura do Relatório Envolventes Contexto X Internet XML Apresentação estruturada dos dados Separação de apresentação e dados Xml vs. HTML Xml Web Services SOAP WSDL e UDDI Net Uma pequena revolução CLR Biblioteca de Classes e Aplicações Aplicações convencionais (de cliente) Aplicações cliente/servidor 17 iii

4 1.4 Domínios e Contextos (Domains and Contexts) Processos.NET Application Domains (AppDomains) Application Contexts (Contextos) Introdução Arquitectura Cliente Transparent Proxy Real Proxy Client-Side Sinks Canais Server-Side Sinks Objecto remoto Objectos activados pelo Servidor Objectos Singleton Objectos SingleCall Exemplo: Classificações de Exames O Objecto remoto O Cliente Objectos activados pelo Cliente O exemplo Classificações de Exame Objecto e Servidor O Cliente Tempo de Vida - Objectos activados pelo Cliente Através da Aplicação remota Através do objecto remoto Controlo do Tempo de Vida do Objecto Suporte ao controlo do Tempo de Vida - O Lease Sponsor Ficheiros de configuração 46 iv

5 4.5.1 Objectos activados pelo Servidor Objectos activados pelo Cliente Objectos.NET Remoting no IIS Cenários Utilização de Objectos Qualquer Cliente.NET - Usando SOAP-HTTP NET.NET - Usando SOAP-HTTP NET.NET - Usando TCP NET Componente COM.NET , Xml Web Services e a X Internet Conclusões Bibliografia v

6 Lista de Figuras Figura 2.1 Exemplo de um pedido RPC através de SOAP Figura 3.1 Relação Entre Processos, AppDomain s e Contextos Figura Os elementos principais da arquitectura do.net Remoting Figura 4.2 Exemplo de Utilização de um Objecto Singleton Figura 4.3 Exemplo de Utilização de Objectos SingleCall Figura 4.4 Esquema de Funcionamento Classificações Server Activated Object - (Singleton) Figura 4.5 Esquema de Funcionamento Classificações Client Activated Object vi

7 Lista de Abreviaturas CAO Client Activated Object CLR Common Language Runtime COM Component Object Model CTS Common Type System DCOM Distributed Component Object Model IIS Internet Information Server MFC Microsoft Foundation Classes SAO Server Activated Object SOAP Simple Object Access Protocol UDDI Universal Discovery Description and Integration WSDL Web Services Description Language WWW World Wide Web XML Extensible Markup Language XWS Xml Web Service vii

8 1 - Introdução 1.1 Projecto Este trabalho foi realizado no âmbito da cadeira Projecto, do 5º ano do curso de Licenciatura em Engenharia Informática Computadores e Sistemas, do Instituto Superior de Engenharia do Porto no segundo semestre do ano lectivo de 2001/ Objectivo O objectivo da realização deste projecto é o estudo da plataforma.net na sua vertente de Remoting. Como resultado final, pretende-se obter, para além de um documento de análise ao e tecnologias a ele inerentes, um guia para a sua utilização. Fazer um estudo sobre, obrigou á análise de alguns assuntos envolventes; entre eles posso destacar o conceito de X Internet, e dos Web Services, para além de todos os conceitos de Sistemas Distribuídos, Xml, SOAP, e da generalidade do próprio.net. São estes os assuntos que vão ser abordados inicialmente e posteriormente em paralelo ao estudo do. 1.3 Estrutura do Relatório Este relatório está essencialmente dividido em 4 partes, que deram origem a igual número de capítulos. 1

9 Para além dos pontos iniciais e do primeiro capítulo, que englobam índices, objectivos, e outras introduções, temos o capítulo 2 onde se fala um pouca das tecnologias inerentes ao tema principal (, Web Services e X Internet), como é o caso do Xml, do SOAP, WSDL e UDDI. Para além disso é introduzido neste capítulo o conceito de X Internet e de Web Services. De seguida temos no capítulo 3 uma breve contextualização sobre o.net na generalidade, sendo que este capítulo não pretende clarificar qualquer vertente em concreto do próprio.net. Neste capítulo começam a surgir, no entanto, alguns conceitos que são importantes para a boa compreensão do Remoting: Domínios e Contextos aplicacionais. No capítulo 4 é abordado o : arquitectura, objectos activados pelo servidor, objectos activados pelo cliente, ficheiros de configuração e objectos remotos no IIS são por esta ordem os sub-temas abordados. Neste capítulo é introduzido um exemplo (classificações de exame obtidas a partir de um objecto remoto), que é utilizado por todo o relatório como forma de auxilio á explicação das tecnologias nele utilizadas. No capítulo 5 é feita uma abordagem no sentido prático de utilização quer do Remoting quer dos Xml Web Services, e a sua integração no conceito de X Internet. Após estes quatro capítulos temos uma breve conclusão e bibliografia. 2

10 2 - Envolventes 2.1 Contexto Podendo-se, neste momento, considerar o aparecimento e amadurecimento da Internet um sucesso, deve-se também pensar um pouco no futuro, e na inevitável aproximação de novas exigências. É por isso previsível que o inevitável ciclo de vida do produto também se venha a aplicar á Internet tal como ela foi utilizada inicialmente. Sendo assim urge o aparecimento de novas formas de globalização na área da informação. Sendo já bastante comum a empresa que se formou ontem ter a famosa página na WWW onde coloca algo sobre si e sobre os seus produtos e serviços, ou até, o nosso vizinho ter uma página pessoal onde escreve sobre o seu maior ídolo ou até sobre si... cabendo a cada um dos utilizadores tirar partido da muita e variada informação (em qualidade e quantidade), parece começar a ser necessário dar outra utilidade á rede de comunicação e distribuição de informação. A palavra chave pode mesmo ser a distribuição; distribuição não só de texto mas também de serviços, de execução de tarefas comuns e especificas. Tornar a Internet executável pode, e começa, a ser o próximo passo. 2.2 X Internet É neste contexto que surge o conceito de X Internet. A X Internet é uma rede na qual os utilizadores participam mais activamente no processo de comunicação. Na X Internet os computadores em vez de se limitarem a fazer download de ficheiros, fazem download de programas de lhe dizem o que fazer... enquanto que na actual World Wide Web os browsers se limitam a carregar milhares de páginas com texto contendo a mais 3

11 Envolventes variada informação, na X Internet são carregados apenas os ficheiros necessários para se alcançar um determinado objectivo, que pode variar consoante o destino que se lhe pretender dar. Desde a distribuição de informação até ao arranque de sistemas, o conceito de X Internet pretende revolucionar a Internet a que estamos habituados. Como qualquer outra revolução, esta terá o seu tempo de intervenção, e vai obrigar a grandes mudanças, quer no modo de pensar o mundo da distribuição de informação, quer na forma de o fazer. A forma ideal de minimizar os efeitos de qualquer revolução é estar preparado para ela. Da mesma forma que um ser humano se prepara para a guerra tendo a coragem de acreditar que ela vai acontecer, os intervenientes no actual processo de distribuição e processamento de informação, desde empresas a particulares devem também estar preparados, porque quem se atrasar corre sérios riscos de perder o comboio rumo ao futuro mundo da informação. Existem já algumas implementações deste conceito com algum sucesso, no entanto ainda existem algumas barreiras a ultrapassar: Por questões de segurança criam-se apenas pequenas X Internet s ou seja X Intranet s. Ainda não estão definidos standards. Questão económicas inerentes a mudanças no mundo das tecnologias. Mais á frente neste relatório vamos ver de que forma é que o e os Xml Web Services se podem enquadrar neste conceito. De seguida vamos ver algumas tecnologias base associadas a esta forma de implementar a computação distribuída. 2.3 XML Extensible Markup Language (XML) é um formato de documento que descreve os dados de forma estruturada. Isso torna os resultados de busca mais rápidos e 4

12 Envolventes significativos através dos múltiplos níveis. Além disso, o XML permitirá uma geração nova de aplicações Web-based da visão e da manipulação de dados. Em XML pode-se definir um número ilimitado de nós; um elemento em XML pode declarar os dados a ele associados para ser qualquer coisa: um preço de artigo, um imposto de vendas, o título de um livro, a quantidade de qualquer coisa, ou qualquer outro tipo de dados desejado. Sendo o XML adoptado numa organização, haverá uma capacidade correspondente de procurar e manipular dados independentemente das aplicações em que se encontra; estes podem ser apresentados num browser em variados formatos, ou encaminhados para uma qualquer outra aplicação Apresentação estruturada dos dados XML é um subconjunto do SGML que está optimizado para entrega e utilização sobre a World Wide Web; é definido pela (W3C), assegurando-se que os dados estruturados sejam uniformes e independentes das aplicações ou dos autores. XML, que fornece um padrão de dados que permite codificar o conteúdo, a semântica, e o formato ( schema ) para uma larga variedade de casos; As aplicações podem ser construídas mais rapidamente, são mais fáceis de gerir, e podem facilmente fornecer múltiplas vistas dos dados estruturados Separação de apresentação e dados Xml vs. HTML As capacidades do XML permitem separar a apresentação e o conteúdo. O HTML especifica como apresentar os dados num browser; por sua vez o XML define o conteúdo. Por exemplo, no HTML usa-se uma Tag para dizer ao browser para apresentar dados em bold (realce), ou em itálico; em XML usa-se somente um nó para descrever dados. 5

13 Envolventes Juntamente com XML, usam-se stylesheets, XSL, etc., para apresentar os dados num browser; assim sendo separam-se os dados da apresentação, permitindo indicar e processar os dados como se desejar aplicando visões diferentes e aplicações adequadas. Esta separação dos dados da apresentação permite a integração sem restrições de dados de diversas fontes. A informação do cliente, as ordens de compra, os resultados de pesquisas, os pagamentos, os registos médicos, os catálogos, e outra informação pode ser convertida em XML, permitindo que esses dados sejam trocados e manipulados. Os documentos XML são fáceis de criar; quem estiver familiarizado com o HTML, pode rapidamente criar um; neste exemplo, o XML é usado para descrever uma determinada biblioteca: <biblioteca> <seccao id_seccao= 1 tipo = dramas > <livro id_livro= 11 > <titulo>os Maias</titulo> <autor>eça de Queiroz</autor> <data_edicao> </data_edicao> </livro> <livro id_livro= 12 > <titulo>os Lusíadas</titulo> <autor>luis Vaz de Camões</autor> <data_edicao> </data_edicao> </livro> </seccao> </biblioteca> 2.4 Xml Web Services 6

14 Envolventes É neste contexto, que surge o conceito de Web Service. Tal como as palavras indicam, uma forma de disponibilizar serviços que podem ser acedido de diversas formas inclusive através da WWW (Web). O Xml é um formato que, devido á sua simplicidade possibilita a estandardização de uma forma bastante compreensível e humana, devido á estrutura hierárquica que possui, ser de fácil percepção. È baseado nestes contextos, que surge o conceito de Xml Web Service, uma vez que possibilita a tal forma standard de distribuir informação. Xml Web Services, estão a começar a ser usados como uma forma de integração de aplicações. Sendo o Xml um standard, permite que várias aplicações possam ser construídas das mais variadas formas, desde que no momento de serem disponibilizadas o façam de forma standard. Os Xml Web Services permitem assim que várias fontes de processamento trabalhem em conjunto independentemente de como e onde o façam. Existem actualmente diversas definições de XML Web Service, porque neste momento são várias as entidades que os estão a utilizar e disponibilizar, no entanto todas elas têm algo em comum: Expõem funcionalidades bastante úteis aos utilizadores e consumidores da WWW através de protocolos standard, na maior parte dos casos esse protocolo é o SOAP. Disponibilizam uma forma de descrever os seus interfaces que permitem aos seus utilizadores construir um cliente para os utilizar. Essa descrição é feita normalmente em XML num documento WSDL. São registados, para que possam ser facilmente encontrados, através de UDDI (Universal Discovery Description and Integration). Estas três tecnologias irão ser abordadas de seguida. 7

15 Envolventes De uma forma resumida pode-se então dizer que a utilização de Xml Web Services têm bastantes vantagens em comparação com outras formas de computação distribuída, como por exemplo o DCOM ou o CORBA, uma vez que não necessitam de profissionais dedicados e preocupados com o facto de terem de abrir mil e uma portas para comunicações binarias; isto porque, na comunicação é possível a utilização de HTTP, um protocolo fiável e de acesso normal para qualquer utilizador de leitura de texto na Internet. Para além disso a utilização de Xml reduz as despesas na formação, investigação e definição de protocolos uma vez que a sua utilização é bastante intuitiva, para além de ser um standard. Estando num universo carente de fontes e formas de informação, é importante também que qualquer nova forma que se queira implementar seja também de fácil inserção, permitindo de preferência a reutilização de aplicações já existentes. Supondo por exemplo uma companhia que disponibiliza aos seus clientes a informação A através de um protocolo qualquer, que tem que ser conhecido por ambos, essas aplicações podem migrar para Web Services facilmente independentemente da forma como funcionam e da plataforma onde funcionam. Imagina-se agora que se trata do seu dentista que disponibiliza através de um serviço deste tipo a sua agenda aos seus colegas de consultório... porque não entrar o cliente na jogada e através dessa mesma aplicação agora disponibilizada por um Xml Web Service poder marcar consultas. Afinal, um Web Service disponibiliza texto, através do qual se pode fazer tudo... o que se quiser disponibilizar para ser feito. 2.5 SOAP Como já foi dito SOAP é o protocolo de comunicação standard utilizado pelos Xml Web Services. É inevitável a sua comparação com outros protocolos de comunicação para aplicações distribuídas, como é o caso do DCOM, CORBA, RMI, etc. Existem alguns pormenores no SOAP, como por exemplo a activação dos objectos 8

16 Envolventes invocados, que apesar de serem implementados, não fazem parte da especificação SOAP. A especificação preocupa-se apenas com a definição do formato Xml que devem ter as mensagens. Sendo o SOAP um protocolo de comunicação baseado num documento Xml, estão nesse Xml todos os dados necessário para fazer um pedido (Remote Procedure Call), como por exemplo o nome do método, os seus parâmetros, etc. O cliente SOAP faz um pedido através do envio de uma mensagem XML com esse formato e recebe do servidor a resposta também num documento Xml, tal como ilustra a figura 2.1. FIGURA 2.1 EXEMPLO DE UM PEDIDO RPC ATRAVÉS DE SOAP. Uma outra parte da especificação, define como deve ser uma mensagem HTTP que contém uma mensagem/pedido SOAP. Essa definição apesar de ser opcional é importante porque o HTTP é suportado por quase todos os Sistemas Operativos e como tal é o único protocolo standard para SOAP. Por este facto, surge por vezes a confusão que o SOAP é obrigatoriamente utilizado sobre HTTP, o que não é verdade. Algumas implementações suportam MQ Series, SMTP, etc. Apesar disso o HTTP é realmente o mais utilizado, porque quase todas as redes e sistemas informáticos implementados hoje em dia suportam HTTP, ao contrário dos outros protocolos, nomeadamente dos já descritos atrás. 9

17 Envolventes No entanto nem tudo são vantagens; por vezes existe alguma confusão relativamente a uma distinção que deve ser tida em conta: a especificação SOAP e as implementações da especificação SOAP. A maior parte dos utilizadores de SOAP não têm o trabalho de escrever as mensagens SOAP. Fazem esse trabalho através da utilização de toolkits que a partir de objectos ou programas gerados a partir de diferentes linguagens, geram a mensagem SOAP onde descrevem como devem ser chamados esses objectos ou programas. Por exemplo o Microsoft SOAP Toolkit gera mensagens SOAP a partir de funções disponibilizadas pelo COM e o Apache Toolkit faz o mesmo a partir de funções Java. Obviamente alguns tipos de dados entre estas duas linguagens são diferentes, por isso algumas RPC que poderiam ser feitas com um toolkit não o podem ser com o outro. Esta, não é no entanto uma limitação do SOAP, mas da implementação que está a ser usada. O SOAP é no entanto uma excelente forma de ligar plataformas diferentes. Apesar dos esforços que têm sido feitos para encontrar uma forma de fazer essa ligação até hoje têm normalmente sido em vão. O CORBA por exemplo demorou muito tempo a ser implementado e muito poucas releases foram lançadas. O SOAP tem a vantagem de ser bastante simples, de rápida implementação e de não obrigar um administrador de rede a ter que abrir mais umas portas para comunicação devido ás exigências de alguns protocolos. Basta que tenham suporte para HTTP o que hoje em dia é regra quase geral. Apesar de todas estas vantagens o SOAP não consegue fazer tudo o que o CORBA consegue fazer... mas é mesmo essa característica que faz com que seja um protocolo muito mais acessível. Esta combinação de HTTP com SOAP faz com que os Xml Web Services sejam de fácil implementação e utilização. 2.6 WSDL e UDDI 10

18 Envolventes WSDL (Web Services Description Language) é o tal documento Xml que foi falado atrás quando se descrevia o SOAP. O WSDL está para o SOAP assim como o IDL está para o COM ou CORBA. Um ficheiro WSDL é normalmente gerado por toolkits apesar de ser um documento de texto facilmente editável. É através da criação de um ficheiro WSDL que se evitam confusões na chamada de um método por SOAP porque é lá que se definem as características dessa chamada. Por exemplo distinguir 2378 que num parâmetro poderia ser um inteiro mas é neste método uma string. A notação usada neste documento é regulada por um Xml Schema tornando-se assim universal e fazendo com que dois Web Services possam ser chamados em locais diferentes usando o mesmo formato de mensagem. O Microsoft Visual Studio.Net tem já embutido, neste aspecto todo o trabalho de geração de código necessário para que uma invocação seja possível. Há no entanto uma aspecto importante a ter em conta: apesar de vários toolkits disponibilizarem a criação automática de um WSDL, não existe nenhuma ferramenta que o faça de raiz, ou seja se alguém fizer uma aplicação e quiser disponibilizá-la por SOAP ou usa um toolkit que gere o WSDL ou então é um conhecedor do seu formato e elaborao manualmente. Tendo uma definição de um Xml Web Service disponibilizada a partir de um documento WSDL, faltava saber onde publicá-la, ou seja, tal como quando se cria uma empresa é necessário fazer saber que ela existe. UDDI - Universal Discovery Description and Integration é a forma de disponibilizar um XWS, surgindo assim como as páginas amarelas dos Web Services. Mais informação sobre a UDDI em: 11

19 Envolventes 12

20 3 -.Net 3.1 Uma pequena revolução A plataforma.net, que foi construída á volta do conceito dos XML Web Services, é a primeira a suportar de raiz XML Web Services na integração de negócio e software. A arquitectura.net vem simplificar o desenvolvimento no ambiente distribuído que a Internet proporciona respondendo aos seguintes objectivos: Fornecer um ambiente de programação coerente e orientado por objectos, com o código armazenado e executado a nível local, ou a nível local mas distribuído pela Internet ou então a nível remoto. Fornecer um ambiente de execução de código que minimiza a implementação de software e conflitos entre versões. Fornecer um ambiente de execução de código que garante a execução segura do código criado por uma entidade não conhecida ou semi conhecida. Fornecer um ambiente de execução de código que elimina os problemas de desempenho de ambiente scripted ou interpretado. A arquitectura.net possui dois componentes principais: o Common Language Runtime (CLR), e a biblioteca de classes da arquitectura.net Framework. O CLR é a base da arquitectura.net. É o componente que gere o código no decurso da sua execução, fornecendo serviços essenciais como por exemplo a gestão de memória, threads, e Remoting, para além da implementação de segurança estrita de tipos e outras formas de 13

21 .Net certificação de código. A biblioteca de classes é uma colecção abrangente de tipos reutilizáveis que se pode utilizar para desenvolver aplicações que variam desde as convencionais da linha de comando ou de interface gráfica (GUI) até ás baseadas nas mais recentes apostas da computação distribuída, como são os Web Services e a implementação Microsoft incorporada no.net -. Esta arquitectura pode ser disponibilizada por componentes não geridos que carregam o CLR nos seus processos e iniciam a execução de código gerido com funcionalidades geridas e não geridas. O Internet Explorer é um exemplo duma aplicação não gerida que disponibiliza o Runtime (em forma de uma extensão do tipo MIME). É possível incorporar componentes geridos ou controlos Windows Forms em documentos HTML. 3.2 CLR O Common Language Runtime é o componente responsável pela execução de threads, gestão de memória, execução do código, verificação de segurança do código, compilação e outros serviços de sistema. Relativamente á segurança os componentes geridos recebem diversos níveis de confiança, consoante uma série de factores entre os quais a sua origem (por exemplo, a Internet, a Intranet da empresa ou um computador local). O Runtime implementa o acesso á segurança do código. Por exemplo os utilizadores podem ter a confiança de um executável incorporado numa página Web consegue executar uma animação no ecrã sem aceder aos sues dados pessoais, de sistema ou da rede interna. O Runtime implementa também a robustez do código através duma infra-estrutura escrita de verificação de tipos e código, designada por Common Type System (CTS). O CTS assegura que todo o código gerido se descreva a si próprio. Os vários compiladores da Microsoft geram código compatível com o CTS. O Runtime aumenta também a produtividade de programação, uma vez que o programador pode desenvolver na sua linguagem preferida, tirando ao mesmo tempo partido integral do 14

22 .Net Runtime, da biblioteca de classes e de componentes escritos em outras linguagens. Apesar de ter sido desenvolvido a pensar nesta nova forma de trabalhar, o Runtime também suporta o software actual, permitindo que no desenvolvimento se continuem a utilizar COM e DLL s necessárias. O Runtime foi desenvolvido para aumentar o desempenho. Embora o CLR forneça muitos serviços de Runtime habituais, o código gerido nunca é interpretado. Uma funcionalidade designada por compilação just-in-time (JIT) permite que todo o código gerido seja executado na linguagem de máquina nativa do respectivo sistema. Por fim o Runtime pode ser alojado em aplicações do lado servidor como por exemplo o Microsoft SQL Server ou o Internet Information Services (IIS). 3.3 Biblioteca de Classes e Aplicações A biblioteca de classes da arquitectura.net Framework é uma colecção de tipos reutilizáveis que se integram com o CLR. A biblioteca de classes é OO e proporciona tipos que podem ser utilizados no desenvolvimento para fornecer funcionalidade ao código gerido. Tal como seria de esperar de uma biblioteca de classes orientada por objectos, os tipos da arquitectura.net permite realizar uma variedade de tarefas de programação comuns, incluindo tarefas como a gestão de strings, recolha de dados, conexão a bases de dados e acesso a ficheiros. A biblioteca de classes inclui tipos que suportam uma variedade de cenários de desenvolvimento especializados, como por exemplo, para desenvolver os seguintes tipos de aplicações e serviços: Aplicações de consola. Aplicações scripted ou alojadas. Aplicações Windows com interface gráfica (Windows Forms). Aplicações ASP.NET 15

23 .Net XML Web Services Serviços para Windows As classes Windows Forms são um conjunto de tipos reutilizáveis que simplificam o desenvolvimento de interfaces gráficas para Windows. Vamos agora ver alguns desenvolvimentos que o.net tem em relação ao seu antecessor o Microsoft Visual Studio 6. Para tal vamos fazer uma divisão típica do mundo aplicacional: Aplicações convencionais (de cliente) Aplicações Cliente/Servidor Aplicações convencionais (de cliente) Entre as aplicações convencionais ou de cliente, contam-se aplicações como por exemplo processadores de texto e folhas de calculo, bem como aplicações de negócio especializadas como por exemplo ferramentas para relatórios. Nos ambientes de desenvolvimento que antecederam o.net, tais aplicações eram criadas em C/C++, em conjunto com as Microsoft Foundation Classes (MFC) ou com um ambiente RAD (Rapid Application Development) como o VB. A arquitectura.net incorpora aspectos destes produtos num ambiente de desenvolvimento único que simplifica drasticamente o desenvolvimento de aplicações convencionais. As classes Windows Forms contidas na arquitectura.net destinam-se ao desenvolvimento de interfaces gráficas, permitindo a criação fácil de elementos de écran com a flexibilidade necessária para corresponder a constantes mudanças nas necessidades das empresas. 16

24 .Net Por exemplo, a arquitectura.net fornece propriedades simples para ajustar atributos visuais associados a formulários. Em alguns casos, o sistema operativo subjacente não suporta a alteração directa destes atributos, e nestes casos o.net recria os formulários automaticamente. Ao contrário dos controlos ActiveX, os controlos Windows Forms têm acesso semi confiado ao computador do utilizador. Isto significa que o código binário ou executado de forma nativa consegue aceder a alguns recursos do sistema do utilizador mas não consegue comprometer nem aceder a outros recursos Aplicações cliente/servidor Resumindo alguns melhoramentos que o.net traz, pode-se falar do ASP.NET e dos Web Forms, que trazem bastante melhoramentos em relação á tecnologia ASP. Por exemplo pode desenvolver páginas de Web Forms em qualquer linguagem que suporte a arquitectura.net Framework. Existem no entanto bastantes pormenores que não são objectivo deste trabalho e por isso não vão ser abordados. Há no entanto a realçar no.net, relativamente ao desenvolvimento sob o paradigma cliente/servidor, seja qual for a arquitectura aplicacional envolvida (sistema paralelo, tempo real, distribuído, etc.), os já falados Xml Web Services. São componentes que não têm interface gráfica e não foram desenvolvidos para browsers. Consistem em pedaços de software reutilizáveis que se destinam á utilização por outras aplicações, quer sejam convencionais (o típico.exe), quer sejam outros Xml Web Services ou até qualquer outro tipo de serviços. A arquitectura.net fornece uma colecção de classes (que irão ser faladas mais em pormenor nos próximos dois capítulos) e ferramentas que ajudam no desenvolvimento e utilização de XML Web Services. Para além disso, e sendo um dos objectivos deste projecto, o suporte de comunicações do.net: o.net Remoting. 17

25 .Net 3.4 Domínios e Contextos (Domains and Contexts) A computação distribuída, é sem qualquer dúvida uma peça fundamental na arquitectura aplicacional actual. Isto acontece porque da distribuição leva a que objectivos como a escalabilidade, performance de disponibilidade sejam mais facilmente alcançados. Para tal todos os modelos baseados em componentes já implementados têm vindo a contribuir com bastante sucesso; COM (via DCOM), CORBA, Java RMI, entre outros são disso exemplo. Um dos princípios do.net assenta nessa mesma ideia, principalmente com o Remoting, que permite que se ultrapassem barreiras como são os processos, máquinas e até redes diferentes. Como tal importa que se explique um pouco da filosofia técnica de funcionamento do.net, porque algumas das características do.net são fundamentais e sem elas é muito difícil o entendimento do Remoting; senão vejamos: Processos.NET Um processo.net é composto por um ou mais domínios de aplicação (Application Domains) que por sua vez são também compostos por um ou mais contextos (Application Contexts) Application Domains (AppDomains) Um AppDomain é para o.net o que um processo é para um sistema operativo, providenciando segurança, isolamento, etc. Um AppDomain pode ser visto como mini processo dentro de um processo do Sistema Operativo. Todos os objectos.net são criados dentro de um AppDomain. Um AppDomain pode conter não só objectos 18

26 .Net individuais, mas também aplicações inteiras. Assim sendo em vez de termos uma aplicação por processo, temos n aplicações por AppDomain. Este facto favorece, sem dúvida a performance, e a racionalização de recursos, porque teoricamente um AppDomain é mais fácil de criar do que um processo. O acesso a um AppDomain é encapsulado na classe com o mesmo nome que disponibiliza as seguintes operações: Criar um novo. Terminar. Carregar assemblies e tipos. Enumerar as assemblies e threads. Definir assemblies dinâmicos. O exemplo seguinte mostra, em C#, como usar a respectiva classe. Primeiro diz qual o nome da AppDomain e de seguida mostra informação acerca de cada assembly lá contida: using System; using System.Reflection; using System.Runtime.Remoting; namespace Exemplo1 class Class1 static void Main(string[] args) AppDomain domain = AppDomain.CurrentDomain; Console.WriteLine(domain.FriendlyName); Assembly[] loadedassemblies = domain.getassemblies(); Console.WriteLine("Assemblies: "); foreach(assembly a in loadedassemblies) Console.WriteLine(a.FullName); 19

27 .Net Um objecto contido numa AppDomain não está directamente acessível a outras AppDomains... senão vejamos a seguinte assembly: using System; namespace Exemplo2A class Class1 static void Main(string[] args) Console.WriteLine("Executei!!"); Agora criamos uma nova AppDomain e carregamos a assembly Exemplo2A.exe e tentamos aceder á classe Exemplo2A.Class1: using System; using System.Reflection; using System.Runtime.Remoting; namespace Exemplo2B class Class1 static void Main(string[] args) AppDomain domain = AppDomain.CurrentDomain; AppDomain newdomain = AppDomain.CreateDomain("NewDomain"); newdomain.executeassembly("exemplo2a.exe", null,args); ObjectHandle o = newdomain.createinstance("exemplo2a", "Exemplo2A.Class1"); o.unwrap(); Quando se tenta correr o Exemplo2B.exe, recebemos a excepção I can t let you access the Exemplo2A.Class1 instance because it s not in the same AppDomain as your object.. Para isso ser possível a Exemplo2A.Class1 teria que ser acedida de forma 20

28 .Net remota por valor ou por referência... para o conseguir por valor teríamos que a tornar serializável como se mostra de seguida: using System; namespace Exemplo2A [Serializable] class Class1 static void Main(string[] args) Console.WriteLine("Executei!!"); Acerca de serialização, pode-se dizer que consiste em fazer uma cópia exacta do objecto original na AppDomain que tentar usar o objecto. Mais informação acerca de serialização em: Por referência, temos que fazer a classe derivar de System.MarshalByRefObject: using System; namespace Exemplo2A class Class1 : System.MarshalByRefObject static void Main(string[] args) Console.WriteLine("Executei!!"); Neste exemplo já não existe o atributo [Serializable]. Quando um objecto é passado por referência não existe cópia... em vez disso a AppDomain que o pretender 21

29 .Net usar recebe um proxy para o objecto. Como consequência qualquer alteração que se efectue ao objecto é reflectida no original. É, no entanto, de referir que os utilizadores do.net não vão ter que criar AppDomains, porque esse pormenor é gerido pelo CLR, apesar de o poder fazer, caso pretenda Application Contexts (Contextos) Como já foi dito, cada AppDomain contém um ou mais contextos. Quando um AppDomain é criado e associado um contexto. Se forem necessários novos contexto são criados pelo Runtime. Cada contexto faz parte de um e um só AppDomain e pode conter n objectos; cada objecto está contido num só contexto, sendo que todos os objectos contidos no mesmo contexto têm requisitos de execução semelhantes. Já foi falado que os objectos contidos num AppDomain não podem ser acedidos por outros AppDomain s e mesmo se pode passar de contexto para contexto... um objecto num contexto pode ser de dois tipos: context-agile ou context-bound. Os primeiros não estão disponíveis para todos os contextos dentro da AppDomain. Os segundos são o oposto: para serem acedidos de outros contextos têm de o ser via proxy. Para serem context_bound têm que derivar da classe System.ContextBoundObject que por sua vez deriva da System.MarshalByRefObject e como tal herda todas as suas características já faladas. Qualquer objecto que derive directamente da classe System.MarshalByRefObject é context-agile. Para além disso os objectos que não derivem de nenhuma destas classes podem ser acedidos de qualquer contexto dentro da AppDomain mas nunca de outras AppDomain s. FIGURA 3.1 RELAÇÃO ENTRE PROCESSOS, APPDOMAIN S E CONTEXTOS 22

30 4-4.1 Introdução O.NET Remoting, como componente de comunicações do.net, tem por objectivo disponibilizar formas de comunicação entre objectos fisicamente colocados em locais diferentes ou não. Estamos a falar de comunicar entre aplicações no mesmo sistema, ou entre aplicações colocadas em sistemas diferentes. Para tal o.net Remoting disponibiliza um conjunto de serviços, que inclui a forma de activação dos objectos e consequente suporte durante a sua existência (instanciação), inclui também os canais de comunicação usados para o transporte de mensagens de e para as aplicações remotas. Para além disso existe a inerente codificação e descodificação das mensagens a trocar, que pode ser binária se pretendermos uma maior flexibilidade e fiabilidade, ou XML se pretendemos uma maior interoperabilidade. A codificação XML usa SOAP para o transporte que por sua vez é normalmente, mas não obrigatoriamente transportado sobre HTTP. O Remoting foi pensado tendo em conta a segurança, e como tal é possível ao Canal obter informação acerca da mensagem e do pacote codificado antes deste ser transportado. 4.2 Arquitectura São bastante diferentes os adjectivos que podem ser usados para descrever a arquitectura do.net Remoting: desde fácil utilização, flexível, até complexo... apesar de serem contraditórios todos estes adjectivos são aplicáveis. Vamos começar por ver a 23

31 extensibilidade da arquitectura, no que diz respeito a objectos passados por referência. Objectos serializados e passados por valor não se aplicam nesta arquitectura Cliente O cliente pode ser definido como o objecto ou aplicação que pretende o uso de serviços de um objecto remoto. Dependendo da forma como estiver configurado, pode ou não saber se o objecto que está a utilizar é remoto Transparent Proxy Quando um cliente usa um objecto remoto, não possui uma referência directa para esse objecto; em vez disso o cliente faz invocações num proxy que está contido no seu AppDomain. Esse proxy é chamado Transparent Proxy, e tem exactamente a mesma definição do objecto real. Este proxy é criado a partir da meta data (informação sobre a informação) do objecto remoto. O Transparent Proxy é uma classe interna que não pode ser extendida ou substituída Real Proxy Para além do cliente do objecto remoto e do Tansparent Proxy, falta ainda fazer referência ao Real Proxy, que como o nome indica é também um proxy, que se situa entre o Transparent Proxy e o objecto remoto. O Real Proxy expõe um método que é invocado pelo Transparent Proxy tantas vezes quantas as invocações feitas pelo cliente ao mesmo método do Transparent Proxy. Contrariamente ao Transparent Proxy, o Real Proxy pode ser extendido ou totalmente substituído, que ao ser feito serve para a criação de novas 24

32 funcionalidades, não disponibilizadas por um Real Proxy normal, como por exemplo balanceamento de carga (load balancing), operações de segurança e de diagnóstico Client-Side Sinks O Real Proxy passa a mensagem para um conjunto de client-side sinks (processos internos do lado do cliente) que são responsáveis por verificar características especificas do contexto corrente. FIGURA OS ELEMENTOS PRINCIPAIS DA ARQUITECTURA DO.NET REMOTING. 25

33 4.2.5 Canais Os canais são usados para fazer o transporte de mensagens de e para os objectos remotos. Essas mensagens representam as invocações dos métodos remotos via proxy s e o respectivo retorno ou excepções. Existem dois tipos de canais: TCP e HTTP. Os objectos remotos têm que registar pelo menos um desses canais no.net Remoting Framework. Se um objecto registar múltiplos canais, o cliente pode escolher o canal a utilizar para fazer uma comunicação. O.NET Remoting Framework suporta a personalização dos canais existentes e a criação de novos. Cada canal tem associado um objecto responsável pela formatação (serialização) da informação, quer das chamadas dos métodos quer dos respectivos retornos. Por exemplo por defeito o canal HTTP tem por defeito associado o SOAP como objecto responsável por essas tarefas, que serão feitas de acordo com a especificação SOAP. Já o TCP tem associado por defeito um formatador binário. Para além de ser possível a criação de novos canais é também possível configurar os canais para utilizarem outros objectos de formatação de mensagens. Por exemplo o TCP pode ser configurado para utilizar o SOAP, e o HTTP para utilizar um formatador binário. Poder-se-ia por exemplo criar um objecto de formatação XML-RPC para utilizar em vez do SOAP... Uma questão interessante é qual o canal utilizado pelo.net Remoting para comunicar entre contextos dentro do mesmo AppDomain. Não é o TCP nem o HTTP; é um canal especial baseado numa instância da classe CrossContextChannel que está optimizado para o remoting dentro do mesmo processo. Neste caso não é preciso nenhum objecto de formatação Server-Side Sinks As mensagens que são encaminhadas por um canal são do outro lado recebidas por um conjunto de server-side sinks que são o paralelo aos client-side sinks. O último deles encaminha a mensagem para o objecto remoto. 26

34 4.2.7 Objecto remoto Um objecto remoto é um objecto que extende a classe System.MarshalByRefObject ou a classe System.ContextBoundObject. Esse objecto é também responsável por algumas tarefas como registar-se com pelo menos um canal; no entanto os ficheiros de configuração de servidor podem-se encarregar de todos estes pormenores. Um objecto no.net Remoting pode ser classificado como Server-Activated Object (objecto activado no servidor) ou Client-Activated Object (objecto activado no cliente). 4.3 Objectos activados pelo Servidor Quando activado no servidor, um objecto terá todo o seu ciclo de vida (instanciação) gerido pelo servidor que ostenta o objecto. Esse ciclo de vida é completamente independente do ciclo de vida do cliente. Tudo isto resulta de um modelo onde os objectos não são criados no momento em que o cliente faz o pedido de criação. Em vez disso o cliente recebe uma referência para o Transparent Proxy. O objecto remoto só é criado quando o cliente faz a invocação do primeiro método do objecto remoto. Com esta técnica é poupada uma viagem pela rede de duas mensagens (a de invocação da criação e a respectiva resposta), o que pode ser importante se estivermos a falar de redes bastante lentas ou sujeitas a muito tráfego. Teremos no entanto no momento da primeira invocação de um método um tempo de resposta sensivelmente mais lento dependendo no entanto do tempo se inicialização do objecto. Existem dois tipos de objecto activados no servidor: Singleton e SingleCall. 27

35 4.3.1 Objectos Singleton Um objecto Singleton é um objecto que terá apenas uma instância, e disponibiliza um ponto de acesso global. Este facto não é no entanto muito fácil de garantir principalmente num ambiente distribuído. Por exemplo, criar um objecto Singleton com DCOM. O DCOM não define nem disponibiliza um forma bem definida de procurar objectos já existentes num sistema distribuído. Um cliente DCOM chama o CoCreateInstance (ou um método que o encapsule) para criar e obter um apontador para uma nova instância do objecto. Para que objecto obtido seja sempre o mesmo, é necessário fazer algo mais. Por exemplo, o objecto pode enviar uma mensagem em broadcast/multicast á procura de outras instâncias da sua classe. Se o objecto (emissor) recebe uma resposta positiva dentro de um determinado tempo pré definido então ao cliente é passada a referência do objecto existente. O problema é que o DCOM só tem uma forma de controlar o tempo de vida de um objecto, que é através dos seus clientes. Ou seja, um cliente que instancie um objecto DCOM tem que manter a sua instância enquanto que se desejar ter um singleton, obrigando a que exista sempre um cliente pré definido a instanciar o objecto... e isto nem sempre funciona como se pretende. Felizmente o.net resolve este problema, criando um verdadeiro Server- Activated Singleton. Quando o cliente faz o primeiro pedido via proxy, a um objecto definido como singleton, uma nova instância será criada apenas se não existir nenhuma no servidor. Uma vez que um singleton poderá ser usado simultaneamente por n clientes, tem que ser existe a necessidade de suportarem execução multithread. O runtime do.net, garante que apenas uma instância de um objecto (quando este é singleton) existe num determinado ponto. Como já foi dito, a cada objecto remoto, é sempre associado um ou mais canais, sendo que é por esses canais que os objecto serão invocados. Sendo assim, um singleton existe sempre num determinado canal; isto é o mesmo que rescrever a frase acima - O Runtime do.net, garante que apenas uma instância de um objecto (quando este é singleton) existe num determinado canal. Mesmo 28

36 os singletons têm um tempo de vida associado. Isto porque não existe interesse num objecto consumir recursos por tempo indeterminado e constante, se por exemplo este não é utilizado durante um largo espaço de tempo. Existe apenas a necessidade de garantir que o ponto de acesso ao objecto é o mesmo apesar do objecto poder ser substituído várias vezes. Isto faz com que seja garantido que num determinado momento o objecto usado seja sempre o mesmo, mas o mesmo objecto não durará eternamente. FIGURA 4.2 EXEMPLO DE UTILIZAÇÃO DE UM OBJECTO SINGLETON Objectos SingleCall FIGURA 4.3 EXEMPLO DE UTILIZAÇÃO DE OBJECTOS SINGLECALL 29

37 Os SingleCall são exactamente o oposto aos objectos falados até agora: por cada pedido de cliente é criado um novo objecto como tal não existe do lado do objecto nenhuma persistência de estado. Isto pode-se tornar bastante dispendioso a nível de gasto de recursos do sistema, principalmente se a instanciação dos referidos objectos for também bastante dispendiosa Exemplo: Classificações de Exames Vamos agora ver um exemplo de um objecto remoto que vai ajudar as instituições de ensino a disponibilizar as classificações de exame dos alunos. Este objecto remoto obtém as classificações de exames dos alunos do Servidor Web da Instituição em causa. Para tal passamos ao objecto uma string com os números dos alunos a retornar classificações separados por espaços, e recebemos a mesma string mas com os números seguidos do sinal = e da respectiva classificação. Por exemplo a seguinte string: obteria como resposta: = = = O Objecto remoto Como já foi falado, para ser remoto e ser passado por referência o objecto tem que derivar da classe System.MarshalByRefObject ou indirectamente de uma outra que por sua vez já derive dela (P.e.: System.ContextBoundObject): namespace Classificacoes public class Server : MarshalByRefObject 30

38 public Server() Console.WriteLine("Construtor!"); ~Server() Console.WriteLine("Servidor foi Garbage Collected!"); public string GetClassificacoes(string Indices) // implementação Indices = Indices.Trim(); string url = " //.NET Regular expressions MatchCollection indicescoll = Regex.Matches(Indices,@"\s\S"); bool first=true; int lastindex = 0; string ind; foreach(match indice in indicescoll) ind = Indices.Substring(lastIndex, indice.index-lastindex).trim(); lastindex = indice.index; if(first) url += ind; first=false; else url += ("+" + ind); if(lastindex!= Indices.Length) urlstring += ("+" + Indices.Substring(lastIndex, Indices.Length-lastIndex).Trim()); //************* //CONTINUA 1 //************* Foram utilizadas expressões regulares disponibilizadas pelo.net, mais propriamente pelo C# para tratar a string com os números a obter valores. Estas expressões são bastante úteis no tratamento de strings. 31

39 Vamos agora criar um pedido HTTP e enviá-lo: //************* //CONTINUAÇÃO 1 //************* HttpWebRequest Pedido = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse Resposta = (HttpWebResponse)Pedido.GetResponse(); Stream resp = Resposta.GetResponseStream(); byte[] bytes = new byte[1024]; int len = 0; StringBuilder strresp = new StringBuilder(); while(true) len = resp.read(bytes,0,1024); if(len == 0) break; for(int i=0; i<len; i++) strresp.append((char)bytes[i]); Resposta.Close(); //************* //CONTINUA 2 //************* Neste momento temos na variável strresp a resposta obtida. Vamos tratá-la e devolvê-la: //************* //CONTINUAÇÃO 2 //************* string notas = strresp.tostring(); indicescoll = Regex.Matches(notas,"\n"); lastindex = 0; string val = ""; string Retorno = ""; foreach(match indice in indicescoll) string s = notas.substring(lastindex, indice.index-lastindex).trim(); lastindex = inice.index; 32

40 val = s.substring(1,s.indexof("\"",1)-1); int x = s.indexof(",")+1; int y = s.indexof(",\"",x); cla = s.substring(x,y-x); Retorno += (val + "=" + cla + " "); return Retorno; Mais uma vez foram utilizadas expressões regulares para tratar as strings, neste caso a obtida do Servidor Web da Instituição de Ensino em causa. Repare-se neste inicio de exemplificação, que a única coisa necessária para tornar esta classe remota foi derivá-la da classe System.MarshalByRefObject directa ou indirectamente. Apesar de termos já um objecto remoto ainda não é possível ser usado por eventuais clientes porque ainda não foi registado na.net Remoting Framework. Para tal o nosso objecto pode ser encapsulado em várias formas: um Service do Windows, uma console application, ou até uma aplicação gráfica (GUI). Neste exemplo, e para ser o mais simples possível vamos criar uma console application. O servidor que vai ser criado vai ser responsável por fazer o registo. Esse registo pode também ser feito através de ficheiros de configuração como vai ser visto mais á frente; por enquanto vai ser feito programaticamente. Para começar, temos que atribuir á nossa aplicação servidora pelo menos um canal em que ela possa ser comunicada. Isso é feito através da utilização do método RegisterChannel disponível na classe ChannelServices: ChannelServices.RegisterChannel( new HttpChannel(8888) ); De seguida, é necessário fazer o registo do objecto atribuindo-lhe um tipo de activação. Neste caso vamos ter um Server Activated Object, e como tal usamos o método RegisterWellKnownServiceType disponível na classe RemotingConfigfuration: 33

41 RemotingConfiguration.RegisterWellKnownServiceType(typeof(Classificacoes.Server),"Classificacoes", WellKnownObjectMode.Singleton ); Como se pode ver, o registo necessita de três parâmetros: o tipo do objecto remoto, o seu URI e o modo de activação que poderia ser WellKnownObjectMode.SingleCall no caso de ser um objecto activado no cliente (CAO Client Activated Object ). WellKnownObjectMode é uma enumeração definida no System.Runtime.Remoting namespace. Para terminar temos de garantir que que a aplicação servidora fica disponível pelo tempo necessário para ser possível o acesso ao objecto remoto: Console.WriteLine("ENTER para terminar"); String keystate = Console.ReadLine(); O código completo, já com os namespaces necessários: using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Http; using System.Runtime.Remoting.Channels.Tcp; using Classificacoes; namespace IniciarClassificacoes class Host static void Main(string[] args) ChannelServices.RegisterChannel(new HttpChannel(8888)); RemotingConfiguration.RegisterWellKnownServiceType(typeof(Classificacoes.Server),"Classi ficacoes, WellKnownObjectMode.Singleton ); Console.WriteLine("Classificações disponíveis!"); Console.WriteLine("ENTER para terminar"); String keystate = Console.ReadLine(); 34

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais Número: Nome: Página 1 de 5 LEIC/LERC 2012/13, Repescagem do 1º Teste de Sistemas Distribuídos, 25 de Junho de 2013 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML. Web services Um web service é qualquer software que está disponível através da Internet através de uma interface XML. XML é utilizado para codificar toda a comunicação de/para um web service. Web services

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

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

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1 .NET Remoting Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1 Autoria Autores 1a versão Fabio Augusto Dal Castel colaboração revisão Eduardo F. Seganfredo Rodrigo Gatto C. Geyer Programação

Leia mais

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Disciplina de Projecto de Sistemas Industriais Ano Lectivo de 2005/2006

Leia mais

Departamento de Informática

Departamento de Informática Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos exame de recurso, 9 de Fevereiro de 2012 1º Semestre, 2011/2012 NOTAS: Leia com atenção cada questão antes de responder.

Leia mais

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

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução aos modelos de comunicação Programação de Sistemas Modelos de comunicação :1/19 Introdução (1) Os sistemas operativos implementam mecanismos que asseguram independência

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução aos modelos de comunicação Programação de Sistemas Modelos de comunicação :1/19 Introdução (1) Os sistemas operativos implementam mecanismos que asseguram independência

Leia mais

Construção Páginas de Internet

Construção Páginas de Internet Construção Páginas de Internet Definir um Site no Frontpage Objectivos da sessão: No final da sessão os formandos deverão ser capazes de: Saber o que são os metadados do Frontpage; Distinguir entre Sites

Leia mais

Introdução ao C# . Visão geral do.net Framework

Introdução ao C# . Visão geral do.net Framework Introdução ao C# Microsoft.NET (comumente conhecido por.net Framework - em inglês: dotnet) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS 24 DEMONSTRAÇÕES FINANCEIRAS COMBINADAS Os mercados de capitais na Europa e no mundo exigem informações financeiras significativas, confiáveis, relevantes e comparáveis sobre os emitentes de valores mobiliários.

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

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

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada Número: Nome: Pági 1 de 6 LEIC/LETI 2013/14, Repescagem do 1º Teste de Sistemas Distribuídos, 1/7/14 Responda no enunciado, apes no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo I

Leia mais

Desenvolvimento Cliente-Servidor 1

Desenvolvimento Cliente-Servidor 1 Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados

Leia mais

Gestão dos Níveis de Serviço

Gestão dos Níveis de Serviço A Gestão dos Níveis de Serviço (SLM) Os sistemas e tecnologias de informação e comunicação têm nas empresas um papel cada vez mais importante evoluindo, hoje em dia, para níveis mais elevados de funcionamento

Leia mais

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem 1 JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem orientada a objectos. Tal como em ASP e PHP, os ficheiros

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,

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

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento

Leia mais

Guia de Estudo Folha de Cálculo Microsoft Excel

Guia de Estudo Folha de Cálculo Microsoft Excel Tecnologias da Informação e Comunicação Guia de Estudo Folha de Cálculo Microsoft Excel Estrutura geral de uma folha de cálculo: colunas, linhas, células, endereços Uma folha de cálculo electrónica ( electronic

Leia mais

Serviços Web: Arquitetura

Serviços Web: Arquitetura Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

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

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

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho

Leia mais

1.2.4. Organizar a estrutura do site

1.2.4. Organizar a estrutura do site 1.2.4. Organizar a estrutura do site 1 Organizar a estrutura do site A organização da estrutura do site passa pela definição das ligações entre as páginas que o compõem Esta organização deve ser intuitiva

Leia mais

Escola Superior de Tecnologia de Setúbal. Projecto Final

Escola Superior de Tecnologia de Setúbal. Projecto Final Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Projecto Final Computação na Internet Ano Lectivo 2002/2003 Portal de Jogos Executado por:

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Fundament n os s da platafo f rm r a. NE N T André Menegassi Fundamentos da plataforma.net André Menegassi O que é o.net Framework?.NET é uma plataforma de software para desenvolvimento de aplicações que conecta informações, sistemas, pessoas e dispositivos através

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004 Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004 1 Contextualização e arquitetura de funcionamento de um Web Service Os Web Services [PRV+01, Cer02]

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

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1) GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1) MICROSOFT OUTLOOK 2003 - OBJECTIVOS OBJECTIVOS: Enumerar as principais funcionalidades do Outlook; Demonstrar a utilização das ferramentas do correio electrónico;

Leia mais

Acronis Servidor de Licença. Manual do Utilizador

Acronis Servidor de Licença. Manual do Utilizador Acronis Servidor de Licença Manual do Utilizador ÍNDICE 1. INTRODUÇÃO... 3 1.1 Descrição geral... 3 1.2 Política de licenças... 3 2. SISTEMAS OPERATIVOS SUPORTADOS... 4 3. INSTALAR O SERVIDOR DE LICENÇA

Leia mais

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Universidade de Trás-os-Montes e Alto Douro Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Agenda A UTAD Virtualização Uma definição Introdução e abrangência

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

DOCBASE. 1. Conceitos gerais. 2. Estrutura da pasta de associações. 3. A área de documentos reservados. 4. Associação de Imagens

DOCBASE. 1. Conceitos gerais. 2. Estrutura da pasta de associações. 3. A área de documentos reservados. 4. Associação de Imagens Documentação, Informática e Desenvolvimento 1 DOCBASE ASSOCIAÇÔES MULTIMÉDIA 1. Conceitos gerais 2. Estrutura da pasta de associações 3. A área de documentos reservados 4. Associação de Imagens 5. Procedimentos

Leia mais

Departamento de Informática

Departamento de Informática Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos 1ª chamada, 9 de Janeiro de 2009 1º Semestre, 2009/2010 NOTAS: Leia com atenção cada questão antes de responder.

Leia mais

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc. Endereços IP Endereços IP IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.) precisam ter endereços. Graças

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelos e arquitecturas 14/15 Sistemas Distribuídos 1 Modelos arquitecturais 14/15 Sistemas Distribuídos 2 Camadas de Software: o Middleware Aplicações Middleware Sistema Operativo

Leia mais

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1. Número: Nome: Página 1 de 6 LEIC/LETI, 2014/15, Repescagem do 1º Teste de Sistemas Distribuídos 30 de Junho de 2015 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração:

Leia mais

A interface do Microsoft Visual Studio 2005

A interface do Microsoft Visual Studio 2005 Tarefa Orientada 1 A interface do Microsoft Visual Studio 2005 Objectivos: Introdução à framework.net Iniciar o Visual Studio 2005. Criar um novo projecto de Windows Forms em Visual Basic Introdução à

Leia mais

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente: Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau

Leia mais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

DESENVOLVIMENTO DE SOFTWARE AULA 1

DESENVOLVIMENTO DE SOFTWARE AULA 1 DESENVOLVIMENTO DE SOFTWARE AULA 1 CAMPUS SANTO ANDRÉ CELSO CANDIDO SEMESTRE 2014 1 Características da Plataforma.NET A plataforma.net Framework 4.0 (.NET 4.0) é uma plataforma de softwares que fornece

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

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

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

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

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web: Web Browser como o processo cliente Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: 1 Cliente Web browser HTTP porto 80 Servidor web... JDBC RMI XML... Base de Dados Aplicação em

Leia mais

Rede de Computadores

Rede de Computadores Escola de Ciências e Tecnologia UFRN Rede de Computadores Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso

Leia mais

Explorar os comandos no friso Cada friso tem grupos e cada grupo tem um conjunto de comandos relacionados.

Explorar os comandos no friso Cada friso tem grupos e cada grupo tem um conjunto de comandos relacionados. Guia de Introdução O Microsoft Project 2013 tem um aspeto diferente das versões anteriores, pelo que criámos este guia para o ajudar a minimizar a curva de aprendizagem. Barra de Ferramentas de Acesso

Leia mais

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Sistemas Operativos 2003/2004 Trabalho Prático #2 -- Programação em C com ponteiros -- Objectivos Familiarização

Leia mais

A SÈTIMA. O nosso principal objectivo

A SÈTIMA. O nosso principal objectivo 03 A SÈTIMA A SÉTIMA produz soluções de software maioritariamente com recurso à WEB, de modo a dar suporte ao crescimento tecnológico que é já a maior realidade do século XXI. Esta aposta deve-se ao facto

Leia mais

ISEP. Instituto Superior de Engenharia do Porto. Análise de Sistemas Informáticos

ISEP. Instituto Superior de Engenharia do Porto. Análise de Sistemas Informáticos ISEP Instituto Superior de Engenharia do Porto Análise de Sistemas Informáticos Armazenamento de Dados em Rede A Revolução do Armazenamento Partilhado A crise económica e a crescente necessidade de armazenamento

Leia mais

Manual do GesFiliais

Manual do GesFiliais Manual do GesFiliais Introdução... 3 Arquitectura e Interligação dos elementos do sistema... 4 Configuração do GesPOS Back-Office... 7 Utilização do GesFiliais... 12 Outros modos de utilização do GesFiliais...

Leia mais

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados: Protocolo TCP/IP Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados: Número IP Máscara de sub-rede O Número IP é um número no seguinte formato: x.y.z.w Não podem existir

Leia mais

Impressão do Manual do Utilizador

Impressão do Manual do Utilizador bibliopac Interface WWW Versão 2003 Guia de instalação rápida Junho 2003 ATENÇÃO! Impressão do Manual do Utilizador No CD de instalação está disponível o ficheiro Interface WWW Manual.PDF. Este manual,

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

Leia mais

Kassius Vargas Prestes

Kassius Vargas Prestes Kassius Vargas Prestes Agenda 1. Introdução Web Services 2. XML, SOAP 3. Apache Tomcat 4. Axis 5. Instalação Tomcat e Axis 6. Criação de um Web Service 7. Criação de um cliente Baixar http://www.inf.ufrgs.br/~kvprestes/webservices/

Leia mais

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Existem inúmeras ferramentas (software) baseadas em RdP que permitem desenvolver modelar e analisar sistema de RdP. Algumas

Leia mais

Prof. Esp. Adriano Carvalho

Prof. Esp. Adriano Carvalho Prof. Esp. Adriano Carvalho O que é um Programa? Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais

Leia mais

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos

Leia mais

Manual de Instalação. Gestão Comercial Golfinho. Gestão Comercial Golfinho - Manual de Instalação

Manual de Instalação. Gestão Comercial Golfinho. Gestão Comercial Golfinho - Manual de Instalação Manual de Instalação Gestão Comercial Golfinho 1 Caro Utilizador, É com muito gosto que lhe damos as boas vindas agradecendo a sua preferência pelos nossos produtos. Este manual tenta auxilia-lo na instalação

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

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

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

Transição de POC para SNC

Transição de POC para SNC Transição de POC para SNC A Grelha de Transição surge no âmbito da entrada em vigor, no ano de 2010, do Sistema de Normalização Contabilística (SNC). O SNC vem promover a melhoria na contabilidade nacional,

Leia mais

1. Apresentação. 1.1. Objetivos

1. Apresentação. 1.1. Objetivos 1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em

Leia mais

Guia rápido de uso de Web Services do NFS-e Easy

Guia rápido de uso de Web Services do NFS-e Easy Guia rápido de uso de Web Services do NFS-e Easy NFS-e Easy V.3.0.5 Produto: Guia rápido de uso de Web Services do NFS-e Easy V3.0.5 Release date: Mai, 2013 1 Sumário 1. Introdução... 3 2. Requisitos e

Leia mais