A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto.

Apresentações semelhantes


Apresentação em tema: "Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto."— Transcrição da apresentação:

1 Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Data Communication Group

2 Gateways USSD disponíveis Simuladores GSM, SMPP e USSD Simulação com Gateway LeibICT Desenvolvendo uma aplicação Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

3 3

4 4 GatewayPlataformaDistribuição Protocolos Suportados CriptografiaAPI MCTELSoftwareLivre SMPP, MAP, HTTP, XML NASim MobicentsSoftwareLivre SMPP, MAP, HTTP, XML RSA/AESNA MahindraHardwarePago SMPP, MAP, HTTP NASim TelestaxHardware/SoftwarePagoNA PlanetSoftwarePago SMPP, MAP, HTTP, XML RSA/AESSim LeibICTHardware/SoftwarePago/Livre SMPP, MAP HTTP, XML RSA/AESSim SyniverseSoftwarePagoNA Sim

5 Exemplo de Infraestrutura Real Unstructured Supplementary Service Data (USSD) Porto Alegre, setembro de

6 Funcionalidades: Suporte a UMTS/GSM Alto desempenho (+500 transações/segundo) Suporta Interface Sigtran (100Mbit/1Gbit) Até 64 aplicações USSD ( short codes ) O&M Web Interface SNMP v1 and v2 Traps Até 4 níveis de redundância Suporta Linux e Solaris Criptografia com AES- 256bit/RSA-4096bit APIs para comunicação sobre HTTP, XML/TCP/IP Linguagens Java and C++ 6 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

7 Gateways USSD disponíveis Simuladores GSM, SMPP e USSD Simulação com Gateway LeibICT Desenvolvendo uma aplicação 7 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

8 Na operadora Utilizando a infraestrutura da operadora Depende de acordos firmados entre a prestadora de serviço e a operadora Desenvolvimento da aplicação depende dos recursos disponibilizados pela operadora Problemas: Dificuldades impostas pelas operadoras Gasta recursos Pode comprometer o funcionamento da rede 8 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

9 Na operadora Na prestadora de serviço Usando simuladores 9 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

10 Na prestadora de serviços Prestadora adquire equipamentos para o desenvolvimento Não depende da operadora Desenvolvimento é totalmente controlado pela prestadora Problemas: Infraestrutura para testes é cara Prestadora de serviço pode não ter recursos Infraestrutura pode não ser reaproveitada 10 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

11 Prós: Menores custos Desenvolvimento independente de infraestrutura Aplicação não fica refém da operadora Contras: Desenvolvimento pode ficar demasiadamente simplificado, ignorando aspectos importantes Ambiente simulado não apresenta particularidades de redes reais (atrasos, perdas, etc.) 11 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

12 GSM Simula determinados componentes da rede e/ou a comunicação entre eles Protocolos da rede Simula a comunicação utilizando determinado protocolo da rede GSM Tráfego de informações Simula tráfego de transmissão e recepção de dados em um canal GSM Utilizado para análise de tráfego (sobrecarga, perdas, estatística, etc. 12 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

13 USSD Simula a operação do Gateway USSD Protocolos de comunicação com a rede GSM e servidor de aplicações simplificados Utilização de Sockets 13 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

14 Software pago Simula a interface de comunicação via rádio A-bis Entre BTS e BSC Possibilita realização de testes entre estes elementos Rastreamento de erros Testes de regressão Testes de conformidade Testes de sobrecarga Geração de chamadas Geração de grandes volumes de tráfego GSM 14 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

15 15 MS BSS NSS MAPS Abis Simulator Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

16 16 BTSM3GPP TS V8.6.0 MM3GPP TS V CC3GPP TS V RR3GPP TS V SMS3GPP TS V7.5.0 & 3GPP TS V7.1.0 GSM version Release 1998 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013 MM – Mobility Management CC – Customer Care – Atendimento ao cliente RR – Radio Resource management SMS – Short Message Service

17 17 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

18 Software pago Simula a interface de comunicação A Entre BSC e MSC/VLR Implementa os protocolos BSSMAP e DTAP Possibilita realização de testes entre MSC e BSC Rastreamento de erros Testes de regressão Testes de conformidade Testes de sobrecarga Geração de chamadas Geração de grandes volumes de tráfego GSM 18 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

19 19 MS BSS NSS MAPS A Simulator Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

20 20 Protocolos suportadoPadrão/Especificação Utilizada SCCPQ.713, CCITT (ITU-T) Blue Book MTP3ITU-T Q.704 BSSMAP / DTAP3GPP TS V8.9.0 MM3GPP TS V CC3GPP TS V RR 3GPP TS V SMS 3GPP TS V7.5.0 & 3GPP TS V7.1.0 GSM version Release 1998 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013 SCCP - Signalling Connection Control Part MTP – Message Transfer Part BSSMAP – Base Station Subsistem Mobile Application Part DTAP - Direct Transfer Application Part MM – Mobility Management CC – Customer Care – Atendimento ao Cliente RR – Radio Resource management SMS – Short Message Service

21 21 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

22 Conjunto de funções para Matlab e Simulink Gratuito Simula o tráfego em um canal sem fio GSM Aplica fading sobre o canal e calcula o Bit Error Rate (BER) na recepção Útil para analisar a comunicação entre rádios na rede GSM 22 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

23 Gratuito Emula a comunicação entre SMSC através do protocolo SMPP Validação de aplicações fica mais rápida Aferição de estatísticas de tráfego Versões para sistemas Windows e Unix Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

24 24 Interface de Usuário (estatísticas) Interface de Geração de tráfego (testes) Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

25 Gateways USSD disponíveis Simuladores GSM, SMPP e USSD Simulação com Gateway LeibICT Desenvolvendo uma aplicação 25 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

26 LeibICT USSD S-GW Simulator Gratuito Além de simular o Gateway, abstrai os demais elementos da rede Rede GSM Servidor de Aplicações Aplicações desenvolvidas através do USSD Developer Kit Totalmente compatíveis com o S-Gateway USSD da empresa 26 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

27 Integração total com a API de desenvolvimento para o S-Gateway USSD C++ Java Facilita o desenvolvimento de aplicações USSD Aplicação pode ser testada no próprio computador 27 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

28 28 Desenvolvimento de Aplicação Simulador USSD S-Gateway XML/TCP/IP Telefone Célula BTC/BSC MSC HLR MAP – LSL HSL Sigtran Desenvolvimento de Aplicação XML/TCP/IP LeibICT USSD S-Gateway Desenvolvimento de Aplicação XML/TCP/IP Rede Real Rede Simulada entre duas máquinas Rede simulada localmente Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

29 USSD Developer Kit (Inclui) Documentação USSD Java JNI API User Guide USSD C++ API User Guide USSD XML/TCP/IP Protocol User Guide Exemplos USSD C++ Application Sample code USSD Java Application Sample code Simuladores USSD Gateway Simulator, capable of multiple sessions in parallel Phone Skined USSD GW Simulator, useful for presentations Bibliotecas Windows (WIN32) libraries Linux 32bit libraries Linux 64bit libraries 29 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

30 30 Configuração do Gateway Clientes USSD (telefones) Testes de escalabilidade Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

31 Phone Skined USSD GW Simulator Útil para apresentações Configuração via Windows Registry Não apresenta as opções da interface avançada Unstructured Supplementary Service Data (USSD) Porto Alegre, setembro de

32 API para desenvolvimento de aplicações JAVA Controla a conexão TCP/IP, incluindo reconexão Implementa criptografia RSA Cria e realiza parsing de XML Controla detalhes do protocolo USSD/MAP Formada por um grupo de bibliotecas desenvolvidas em C++ carregadas na Máquina Virtual Java Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

33 Permite que programadores acessem serviços providos pelo USSD S-Gateway utilizando uma interface baseada em funções e callbacks Java Mecanismo de comunicação utilizado entre a API e o S-Gateway é transparente para o desenvolvedor Gerenciamento de sockets é realizado pela biblioteca USSDJNI Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

34 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de Callbacks : Funções chamadas pelo Gateway Devem ser implementadas e tratadas na aplicação Instanciadas antes de realizar a conexão entre uma aplicação e o S-Gateway

35 FunçãoDescriçãoParâmetros initialize Inicializa a biblioteca JNI- ussd_requestShortCode Informa ao Gateway quais são os ShortCodes aceitos pela aplicação Short code connect Realiza a conexão entre aplicação e Gateway utilizando o endereço e a porta desejados Endereço IP Porta Criptografia utilizada Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de Conectando uma aplicação ao S-Gateway É necessário executar algumas funções antes de estabelecer a conexão Após a conexão ocorre a chamada de uma callback cb_connected ( )

36 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de USSDJNIAplicação USSDUSSD S-Gateway Initialize () connect () ussd_requestShortCode () rsa_sec () rsa_sec_conf () bind () bind_conf () cb_connected ()

37 Callback DescriçãoParâmetros cb_ussd_service Inicializada a comunicação de um usuário com a aplicação dialogID shortCode phoneNumber cb_ussd_response Resposta de um usuário recebida pela aplicação dialogID String (resposta) cb_ussd_end Usuário encerrou seu diálogo com a aplicação DialogID cb_ussd_ping Gateway testa se aplicação ainda está ativa – Aplicação deve responder com um pong() - cb_connected Conexão entre Gateway e aplicação foi estabelecida- cb_disconnected Conexão entre Gateway e aplicação foi encerrada- Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de Mensagens recebidas pela aplicação ( Callbacks ): Reações da aplicação às chamadas Callbacks podem ser implementadas utilizando as funções da API

38 FunçãoDescriçãoParâmetros ussd_request Envia mensagem para um usuário através do Gateway dialogID prompt (mensagem) ussd_end Envia mensagem para um usuário finalizando o diálogo dialogID info (mensagem) pong Responde a chamada ping do Gateway. Caso não responda, a aplicação pode ser desconectado do Gateway - ussd_begin Envia uma mensagem para usuário iniciando um diálogo dialogID hlrGT (HLR Global Title ) phoneNumber Text ussd_notify Envia uma mensagem para um usuário sem iniciar um diálogo (apenas informativo) dialogID hlrGT (HLR Global Title ) phoneNumber text Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de Funções executadas pela aplicação:

39 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de USSD S-GatewayAplicação USSDUsuário Mobile ussd_request process_ussd_request ussd_end cb_ussd_service process_ussd_request ussd_response cb_ussd_response

40 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de USSD S-GatewayAplicação USSDMobile User ussd_begin ussd_request ussd_response ussd_end cb_ussd_response process_ussd_request

41 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de O simulador não suporta operações Push A API C++ não inclui chamadas begin ou notify (somente em Java) As chamadas request shortcode não são interpretadas pelo simulador O simulador não suporta várias aplicações conectadas simultaneamente A API Java não aceita os parâmetros para ativar criptografia A API C++ aceita criptografia de 512, 1024 e 2048 bits apenas

42 Gateways USSD disponíveis Simuladores GSM, SMPP e USSD Simulação com Gateway LeibICT Desenvolvendo uma aplicação Unstructured Supplementary Service Data (USSD) Porto Alegre, setembro de

43 Criando um Projeto C++ no Visual Studio 2010 File New Project Visual C++ Win32 Console Application 43 Detalhes do projeto no Visual Studio Project Properties Configuration Properties General Character Set: Use Multi-Byte Character Set Detalhes do projeto no Visual Studio Project Properties Configuration Properties General Character Set: Use Multi-Byte Character Set

44 Copiar os seguintes arquivos para dentro da pasta do projeto (mesma pasta onde estão os códigos- fonte): ussd.cpp (implementação do objeto base CUSSD) ussd.h ( headers com as definições do objeto base) ussd.dll (biblioteca que implementa o protocolo XML de comunicação com o gateway ) Arquivos disponíveis dentro da pasta do simulador LeibICT-UDK-v1.1f\samples\c++\ussdtest Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

45 No item Source Files do projeto no Visual Studio clicar com o botão direito: Add Existing Item Adicionar o arquivo ussd.cpp ao projeto No item Header Files do projeto no Visual Studio clicar com o botão direito: Add Existing Item Adicionar o arquivo ussd.h ao projeto Adicionar o header ao arquivo principal do projeto #include "ussd.h" Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

46 Callbacks – Todas as callbacks precisam ser configuradas mesmo que algumas não sejam necessárias para a aplicação //CB when application is connected to gateway void connected(){} //CB when application gets disconnected from gateway void disconnected(){} //CB to handle pings from gateway void ping(){} //CB to sinalize when the user starts a call void ussdService(int dialogId, char* shortCode, char* phoneNumber){} //CB to handle user responses void ussdResponse(int dialogId, char* str){} //CB to sinalize when the user ends the call void ussdEnd(int dialogId){} Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

47 Callbacks – Depois as callbacks devem ser associadas a uma estrutura do tipo USSDCallbacks (no início do programa principal) //CB struct USSDCallbacks callbacks; callbacks.connected = connected; callbacks.disconnected = disconnected; callbacks.ping = ping; callbacks.ussdService = ussdService; callbacks.ussdResponse = ussdResponse; callbacks.ussdEnd = ussdEnd; Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

48 Inicializando a API – Uma instância de CUSSD deve ser criada globalmente para ser usada por todas as funções e callbacks //Create global reference to API CUSSD* ussd; //CUSSD Instance ussd = new CUSSD(); //Initializes API ussd->initialize(&callbacks); Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

49 Conectando ao Gateway – A API conecta ao gateway, com ou sem uso de criptografia, através de TPC/IP //Connects to gateway with no cryptography ussd->connectgw("localhost", 5454, 0, 0); //Or connects to gateway with 512 bit key ussd->connectgw("localhost", 5454, 1, 1); //Or connects with 1024 reception and 2048 transmission keys ussd->connectgw("localhost", 5454, 2, 3); Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

50 Criando projeto Java no Netbeans File New Project Java Java Application Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

51 Copiar os seguintes arquivos para dentro da pasta do projeto (mesma pasta onde estão os códigos-fonte): src\com\leibict\ussd\USSD.java (implementação do objeto base CUSSD) Arquivo disponível dentro da pasta do simulador LeibICT-UDK-v1.1f\samples\java\USSDTestMT Copiar a DLL da pasta lib do simulador dentro da pasta do Windows: Descompactar de ussdjni.b1012.win32.zip ou ussdjni.b1012.win64.zip Copiar ussdjni.dll para c:\windows\system32 A estrutura mínima de uma aplicação Java é bastante similar a do C++ Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

52 Desenvolver uma aplicação para que o cliente de um banco consiga realizar algumas operações básicas em sua conta As principais funcionalidades são: Autenticação: Número da conta e senha Menu de Opções: Consulta Saldo Pagar Conta (Informando valor) Realizar Transferência (Informando conta e valor) Sair Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

53 Unstructured Supplementary Service Data (USSD) Porto Alegre, setembro de 2013 IDLE AUTH ID AUTH PWD BALANCEPAYMENT TRANSF ID TRANSF MAIN Service: *123# Request: What is your UID? What is your UID? Response: 222 Request: Now your passwd Not found Response: 999 (invalid) End: Not found Now your password Response: 000 (invalid) End: Wrong Password Wrong Password Reponse: 444 Request: Main Menu Menu: 1. Balance 2. Payment 3. Transfer 4. Exit Response: 1 Request: Balance Menu Balance: $10 Menu: 1.Go back 2.Exit Reponse: 2 End: bye! Bye! Reponse: 1 Request: Main Menu Inform Amount: Reponse: 2 Request: Inform amount Paid/No balance Menu: 1. Balance 2. Payment 3. Transfer 4. Exit Reponse: 10 Request: Paid/No balance & Main Menu Destination account: Reponse: 3 Request: Destination account Amount: Reponse: 333 Request: Amount Reponse: 999 Request: Not Found & Main Menu Not found: Menu: 1. Balance 2. Payment 3. Transfer 4. Exit Reponse: 10 Request: Transfered/No balance & Main Menu Transfered/No Balance Menu: 1. Balance 2. Payment 3. Transfer 4. Exit Reponse: 4 End: bye! Bye!

54 Desenvolver um serviço USSD para calcular o enésimo número primo Por exemplo, o usuário digita o código *100*12# O serviço retorna ussd_end com mensagem 37 Caso o usuário digite apenas *100# o serviço pergunta qual número primo ele deseja descobrir Objetivo do exercício Fazer um exercício com parsing do string do serviço USSD Usar a parte de teste de desempenho do simulador para verificar a carga da aplicação Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de

55 Obrigado! Perguntas? Cristiano Bonato Both Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013


Carregar ppt "Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto."

Apresentações semelhantes


Anúncios Google