Você está na página 1de 7

O QUE SAO SOCKETS? Pontos finais de um link bidirecional de comunicao entre os processos executados e m uma rede de computadores.

Ou seja, duas maquinas, uma server e uma client. O server aguarda conexao e o cl ient solicita a conexao. CARACTERISTICAS DOS SOCKETS - Protocolo TCP - Comunicao Peer-To-Peer (de uma mquina para outra, sem interveno de servidores) - Ligao por portas. UTILIDADE DOS SOCKETS Possibilitar a comunicao e integrao entre processos e sistemas - Maquinas distintas (pode concentrar em um maquina a execuo de um processo e as o utras fazem apenas requisies pra essa maquina.) - Linguagens diversas (atravs do socket, comunicao entre essas maquinas com linguag ens de programao diferentes). EXEMPLOS UTILIZAO DE SOCKETS - Comunicao com banco de dados - Execuo remota de procedimentos - Navegao Internet 1. Socket Client (aplicao) solicita uma conexo ao Socket Server, enviando a solicit ao (mensagem) a uma porta especifica (porta X) 2. Socket Server aceita o pedido de conexo, e estabelece uma nova porta para comu nicao com o cliente (isto libera o Socket Server para receber novos pedidos de con exo) TAREFAS DO SOCKET SERVER - Aguardar por pedidos de conexao - Estabelecer novas conexoes - Gerenciar conexoes - Realizar troca de dados TAREFAS DO SOCKET CLIENT - Estabelecer conexoes - Realizar troca de dados CONSTRUO: SOCKET SERVER 1. Criao do Socket Server Handle 2. Definio de procedimento para estabelecimento de conexoes (Lao que aguarda conexes ) 3. Espera por pedidos de conexao 4. Gerenciamento de conexoes 5. Destruio de Socket Server Handle PASSOS BASICOS CREATE SERVER-SOCKET <var-server handle> <var-server-handle>:SET-CONNECT-PROCEDURE ( "<proc-name>" [, <var-proc-handle>]) <var-server-handle>:ENABLE-CONNECTIONS(<parametros>) WAIT-FOR CONNECT OF <var-server-handle> PROCEDURE "<proc-name>": DEFINE INPUT PARAMETER <var-socket-handle> /* Estabelecimento de novas conexoes */ END PROCEDURE.

PARAMETROS DE ESTABELECIMENTO DE CONEXOES -S: Porta ou nome do servio do Socket Server -qsize: Tamanho da fila de espera de conexes -pf: Arquivo PF contendo os parametros anteriores GERENCIAMENTO DE CONEXOES Evento de espera por conexao: WAIT-FOR CONNECT OF <var-server-handle> Interrupo de novas conexes <var-server-handle>:SENSITIVE = TRUE/FALSE Desabilitar novas conexes <var-server-handle>:DISABLE-CONNECTIONS() CONSTRUO DO SOCKET CLIENT 1. Criao do Socket Client Handle 2. Conexo ao Socket Server 3. Troca de dados entre Socket Client e Server 4. Desconexo do Socket Server 5. Destruio do Socket Client Handle PASSOS BASICOS CREATE SOCKET <var-socket-handle> <var-socket-handle>:READ(...) <var-socket-handle>:WRITE(...) <var-socket-handle>:DISCONNECT() DELETE OBJECT <var-socket-handle> CREATE SOCKET <var-socket-handle> <var-socket-handle>:CONNECT <var-socket-handle>:SET-READ-RESPONSE-PROCEDURE(...) <var-socket-handle>:DISCONNECT() DELETE OBJECT <var-socket-handle> PROCEDURE "<proc-name>": /* Troca de dados entre Socket Client e Server */ END PROCEDURE. PARAMETROS DE CONEXAO DO SERVER -H: Host Name ou IP do Socket Server -S: Porta ou Nome do servio do Socket Server -pf: Arquivo PF contendo os parametros anteriores PARAMETROS DE ESTABELECIMENTO DE CONEXOES -S: Porta ou nome do servio do Socket Server -qsize: Tamanho da fila de espera de conexoes -pf: Arquivo PF contendo os parametros anteriores INICIALIZAO DE VARIAVEIS MEMPTR - Tamanho e ordem dos bytes DEFINE VARIABLE <var-mptr> AS MEMPRTR NO-UNDO. SET-SIZE(<var-mptr>) = <tamanho> SET-BYTE-ORDER(<var-mptr>) = <ordem> HOST-BYTE-ORDER BIG-ENDIAN LITTLE-ENDIAN Deteco de dados

- Modelo procedural ou orientado a evento Leitura de dados - Bytes disponiveis e tipo de leitura PROCEDURAL - Maior controle na troca de dados <var-server-handle>:READ(...) <var-server-handle>:WRITE(...) ORIENTADO A EVENTO - Espera por evento de leitura de dados - Troca de informaes sob demanda <var-server-handle>:SET-READ-RESPONSE-PROCEDURE(...) LEITURA DOS DADOS - Bytes disponiveis e tipo de leitura <var-socket>:GET-BYTES-AVAILABLE() <var-socket>:READ(<var-memptr>, <pos>, <bytes>, <modo-leitura> ) READ-AVAILABLE READ-EXACT-NUM ESCRITA DE DADOS <var-socket>:WRITE(<var-memptr>, <pos>, <bytes> ) GET-SIZE(<var-memptr>) -------------------------------------------------------NAMED EVENTS - Eventos Nomeados (Introduzido a partir da versao 9 do Progress) - Caracteristicas - Exemplo Simples de ser implementada; Named Events, o que : Sao eventos que posso estar dando nome pra ele e posso esta r publicando dentro da minha seo do programa. Sao diferentes dos eventos comuns de clique, de bancos de dados. Sao eventos criados dentro do programa que podem ser nomeados. . Independencia x Flexibilidade - Esses eventos permitem que construa um programa baseado numa componentizao, ou seja, programas independentes para realizar tarefas unicas e por outro lado poss o ter programas que ficam escutando para ver se o meu programa publicou ou nao p ublicou. . Beneficios da ADM2 (notify) em programas 4GL - Analogia com NOTIFY. Publica evento sem implementar outras funcionalidades qu e irao acontecer apos o evento publicado. . Procedures (programas) se inscrevem (SUBSCRIBE) para receber eventos de seu in teresse publicados (PUBLISH) por outros programas.

- Qualquer procedure pode estar gerando eventos em uma seo progress e qualquer pr ocedure pode estar se inscrevendo para ser notificada quando determinado evento ocorreu. O comando PUBLISH o responsvel pela gerao de um evento. Quer dizer, todos os proced imentos (programas) que se inscreveram sero avisados da ocorrnciado evento. PUBLISH event-name [ FROM publisher-handle ] [ ( parameter [ , parameter ] ... ) ] Caracteristica importante: S posso assinar um determinado evento que ocorra dentr o de uma mesma seo progress. O comando SUBSCRIBE utilizado para um procedimento se inscrever para receber avi so de acontecimento de um evento. SUBSCRIBE [ PROCEDURE subscribe-handle ] [ TO ] event-name [ IN publisher-handle | ANYWHERE ] [ RUN-PROCEDURE loval-internal-procedure ] [ NO-ERROR ] Tambem possivel que um procedimento inscreva um objeto para ser avisado quando o utro objeto publique um evento. RUN p-nesub1.p PERSISTENT SET hPub1. RUN p-nesub2.p PERSISTENT SET hSub2. SUBSCRIBE PROCEDURE hSub2 TO "NewCustomer" IN hPub1. Publisher.w - Programa publicador Subscriber.w - Programa assinante -----------------------------------------------------------Dynamic Link Library Cdigo executavel disponibilizado num arquivo que permite que varios programas ten ham acesso a esse mesmo codigo sem que esse codigo esteja dentro de cada um dos programas executaveis. Objetivos Definies Funcionamento Utilizao

Apresentar o conceito de Dynamic-Link Library e seu funcionamento; Demonstrar a utilizao das DLL's no Progress. DLL - O que : . Mdulo que contem dados e funcoes que sao utilizados por outros modulos; - Aplicaes - Dynamic-Link Libraries Beneficios das DLL . Modularizao de aplicaes - Facilidade de manuteno e reuso; . Reduz sobrecarga de memoria - Compartilhamento de cdigo.

Modos de chamada: . Load-time Dynamic Linking . run-time Dynamic Linking - Carga em tempo de execuo - Continuidade de execuo - Mtodos alternativos de carga: carregada DLL no momento em que ela for necessar ia e nao o momento em que o programa inicializa. Parametros DLL . Byte . Short . Unsigned-Short . Long . Float . Double . Character . Memptr Progress . Integer . Integer . Integer . Integer . Decimal . Decimal . Character . Memptr

ActiveX Control uma tecnologia para desenvolvimento de componentes, que fornece uma arquitetura para a construo de sistemas com componentes de diferentes fabricantes. Beneficios com o uso de ActiveX Control: . Ampliao de funcionalidades e recursos; . Reutilizao de componentes. Registro de ActiveX Control: . Registro automatico (DllRegister/DllUnregister); . Utilitario regsvr32.exe. Control-Frame Widget . Relacionamento entre objetos Progress (widgets) e ActiveX Control . Tratamento de eventos especficos Control-Frame COM Object . Ponto de acesso ao ActiveX Control . Manipulao de propriedades e mtodos. Passos Bsicos 1. Instancia do ActiveX Control 2. Configurao das propriedades de Design-Time 3. Definio do procedimento de inicializaes extras (Run-Time) 4. Definio dos procedimentos de tratamento de eventos 5. Utilizao do ActiveX Control ActiveX Automation utilizada para acessar os aplicativos do Office, como word e Excel. O que : Tecnologia que permite exportar atributos e metodos de objetos, permitindo que a plicaes possa controlar e manipular estes objetos. Interao com ActiveX Automation: Aes possiveis: - Criar novo objeto - Pegar outros objetos a partir do objeto criado - Buscar ou setar o valor de propriedadews - Invocar metodos

Instancia de classes - Atributos - Metodos Suportam padrao ComponentObjectModel Funo de fornecer acesso as Automation Servers Automation Controller Aplicaes que interagem com Automation Objects para controlar e manipular Automatio n Servers Passos Basicos 1. Criao do Automation Object 2. Execuo de metodos ou manipulao de atributos 3. Destruio do Automation Object para liberar memoria CREATE "<automation-object-name>" <var-com-handle> <var-com-handle>:<mtodos|atributos> RELEASE OBJECT <var-com-handle> Passos bsicos para tratamento de eventos 1. Criao de Automation Object 2. Habilitar tratamento de eventos 3. Definio dos procedimentos de tratamento de eventos 4. Execuo de metodos ou manipulao de atributos 5. Destruio do Automation Object

Você também pode gostar