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

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

Data Communication Group

Apresentações semelhantes


Apresentação em tema: "Data Communication Group"— Transcrição da apresentação:

1 Data Communication Group http://networks.inf.ufrgs.br/dcg/
Unstructured Supplementary Service Data (USSD) Aula 6: Bibliotecas e Simuladores Porto Alegre, outubro de 2013 Data Communication Group

2 Agenda 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 2013

3 USSD Gateways disponíveis no mercado
mcTEL PURO SOFTWARE Mahindra usa hardware Synverse usa ambos Mobicents opensource free toda em sw Telestax versão paga do mibicents (tem SW w oferece HW) LeibICT SW e HW Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

4 Protocolos Suportados
Comparação Gateway Plataforma Distribuição Protocolos Suportados Criptografia API MCTEL Software Livre SMPP, MAP, HTTP, XML NA Sim Mobicents RSA/AES Mahindra Hardware Pago SMPP, MAP, HTTP Telestax Hardware/Software Planet LeibICT Pago/Livre SMPP, MAP HTTP, XML Syniverse Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

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

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

7 Agenda 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 2013

8 Implementação de Aplicações
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

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

10 Implementação de Aplicações
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

11 Simuladores 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.) Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

12 Tipos de Simulação 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. Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

13 Tipos de Simulação 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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

14 MAPS™ GSM Abis Interface Emulator
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

15 MAPS™ GSM Abis Interface Emulator
MS BSS NSS MAPS Abis Simulator MS = Mobile Station BSS = Base Station Subsystem BTS =  Base Transceiver Station BSC = Base Station Controller MSC = Mobile Services Switching Center VLR = Visitior Location Register EIR = Equipment Identitty Register AuC = Autentication Center HLR = Home Location Register SMSC = Short Message Service Center Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013 15

16 MAPS™ GSM Abis Interface Emulator
BTSM 3GPP TS V8.6.0 MM 3GPP TS V7.17.0 CC RR 3GPP TS V8.13.0 SMS 3GPP TS V7.5.0 &  3GPP TS V7.1.0 GSM version Release 1998 MM – Mobility Management CC – Customer Care – Atendimento ao cliente RR – Radio Resource management SMS – Short Message Service Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

17 MAPS™ GSM Abis Interface Emulator
Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

18 MAPS™ GSM A Interface Emulator
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

19 MAPS™ GSM A Interface Emulator
MS BSS NSS MAPS A Simulator MS = Mobile Station BSS = Base Station Subsystem BTS =  Base Transceiver Station BSC = Base Station Controller MSC = Mobile Services Switching Center VLR = Visitior Location Register EIR = Equipment Identitty Register AuC = Autentication Center HLR = Home Location Register SMSC = Short Message Service Center Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013 19

20 MAPS™ GSM A Interface Emulator
Protocolos suportado Padrão/Especificação Utilizada SCCP Q.713, CCITT (ITU-T) Blue Book MTP3 ITU-T Q.704 BSSMAP / DTAP 3GPP TS V8.9.0 MM 3GPP TS V7.17.0 CC RR 3GPP TS V8.13.0 SMS 3GPP TS V7.5.0 &  3GPP TS V7.1.0 GSM version Release 1998 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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

21 MAPS™ GSM A Interface Emulator
Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

22 GSM Traffic Channel Simulator
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

23 Selenium Software SMPPsim
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 2013

24 Selenium Software SMPPsim
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 Agenda 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 2013

26 Simulador de Gateway USSD
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

27 LeibICT USSD S-GW Simulator
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

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

29 Gateway LeibICT USSD Developer Kit (Inclui) Documentação Exemplos
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

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

31 Interface Simplificada
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 2013

32 LeibICT: USSDJNI JavaAPI
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 2013

33 LeibICT: USSDJNI JavaAPI
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 2013

34 LeibICT: USSDJNI JavaAPI
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 Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

35 LeibICT: USSDJNI JavaAPI
Conectando uma aplicação ao S-Gateway É necessário executar algumas funções antes de estabelecer a conexão Função Descrição Parâ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 Após a conexão ocorre a chamada de uma callback cb_connected( ) Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

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

37 LeibICT: USSDJNI JavaAPI
Mensagens recebidas pela aplicação (Callbacks): Reações da aplicação às chamadas Callbacks podem ser implementadas utilizando as funções da API Callback Descrição Parâ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 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 2013

38 LeibICT: USSDJNI JavaAPI
Funções executadas pela aplicação: Função Descrição Parâ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 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 hlrGT (HLR Global Title) phoneNumber Text ussd_notify Envia uma mensagem para um usuário sem iniciar um diálogo (apenas informativo) text Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

39 USSD Iniciado pelo Usuário
Usuário Mobile USSD S-Gateway Aplicação USSD process_ussd_request cb_ussd_service ussd_request ussd_request ussd_response cb_ussd_response ussd_end process_ussd_request Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

40 USSD Iniciado pela Aplicação
Mobile User USSD S-Gateway Aplicação USSD ussd_begin ussd_request ussd_response cb_ussd_response ussd_end process_ussd_request Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

41 Bugs Conhecidos 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 bits apenas Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

42 Agenda 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 2013

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

44 Desenvolvendo uma Aplicação C++
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 2013

45 Desenvolvendo uma Aplicação C++
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: 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 2013

46 Estrutura mínima de um programa USSD
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 2013

47 Estrutura mínima de um programa USSD
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 2013

48 Estrutura mínima de um programa USSD
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 2013

49 Estrutura mínima de um programa USSD
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 2013

50 Desenvolvendo uma Aplicação Java
Criando projeto Java no Netbeans File → New Project → Java → Java Application Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013

51 Desenvolvendo uma Aplicação Java
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 2013

52 Exercício 1: Aplicação Bancária
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 2013

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

54 Exercício 2: Teste de Desempenho
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 2013

55 Cristiano Bonato Both cbboth@inf.ufrgs.br
Obrigado! Perguntas? Cristiano Bonato Both Unstructured Supplementary Service Data (USSD) Porto Alegre, outubro de 2013


Carregar ppt "Data Communication Group"

Apresentações semelhantes


Anúncios Google