| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/10/2008 08:08:45
|
tap_pedroso
JavaBaby
Membro desde: 11/06/2008 12:38:26
Mensagens: 90
Offline
|
Bom Dia colegas,
aqui na empresa nós realizamos transações de sistema de credito atraves de socket...temos um socket server que abre o uma porta 3000 e 3001 (por exemplo) os clients de outra empresa enviado um pacote de Strings seguindo a ISO 8583 para o nosso server, nos quebramos a String, formamos os campos e realizamos a consulta....respondemos a solicitacao e se chegou tudo ok para o client o mesmo nos responde uma terceira perna dizendo q está tudo ok ou solicitando novamente caso chegou faltando dados...agora a questao é....com web service, eu consigo ter a seguranca dessas tres pernas e também a mesma velocidade de resposta nas transacoes/autorizacoes?
obrigado colegas.abraços.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/10/2008 19:25:08
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline
|
tap_pedroso wrote:Bom Dia colegas,
aqui na empresa nós realizamos transações de sistema de credito atraves de socket...temos um socket server que abre o uma porta 3000 e 3001 (por exemplo) os clients de outra empresa enviado um pacote de Strings seguindo a ISO 8583 para o nosso server, nos quebramos a String, formamos os campos e realizamos a consulta....respondemos a solicitacao e se chegou tudo ok para o client o mesmo nos responde uma terceira perna dizendo q está tudo ok ou solicitando novamente caso chegou faltando dados...agora a questao é....com web service, eu consigo ter a seguranca dessas tres pernas e também a mesma velocidade de resposta nas transacoes/autorizacoes?
obrigado colegas.abraços.
Tome cuidado com alguns aspectos desta migração:
1. ISO-8583 trabalha com modelo assíncrono. WebServices _podem_ ser assíncronos, mas normalmente que consome espera um modelo síncrono. Se este for o caso, talvez seja necessário usar um servidor HTTP que suporte o uso de NIO, como o do Apache MINA.
2. Vc. pode implementar a 3a perna como um método adicional do WebService. Lembre-se no entanto, de especificar que o consumidor deve tambem implementar um WebService que vc. irá chamar no caso de não receber a chamada do método que corresponde à 3a perna. (0600, se não me engano)
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 13:33:01
|
tap_pedroso
JavaBaby
Membro desde: 11/06/2008 12:38:26
Mensagens: 90
Offline
|
E o que vc me diz em relacao a performance? com a ISO o trafego de bytes pode ser ate 80% menor que o WebService...pelo menos de acordo com a nossa necessidade chegamos a esse percentual...isso tem algum impacto, seria um motivo para dizer que com a ISO posso transacionar mais rápido que o WebService?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 14:29:01
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline
|
tap_pedroso wrote:E o que vc me diz em relacao a performance? com a ISO o trafego de bytes pode ser ate 80% menor que o WebService...pelo menos de acordo com a nossa necessidade chegamos a esse percentual...isso tem algum impacto, seria um motivo para dizer que com a ISO posso transacionar mais rápido que o WebService?
Sim, vc. tem razão neste aspecto. O WebService é bem "perdulário" em termos de utilização de banda, mas isto pode ser mitigado via compressão de dados. De toda forma, em ambientes ISO o gargalo costuma ser o processamento das transações em si, e não a transmissão de dados.
Pelas experiências que tive, o fator que acaba permitindo uma maior performance no caso ISO via Socket é o modelo inerentemente assíncrono, contra as implementações tipicas de WebService, que são síncronas.
This message was edited 2 times. Last update was at 17/10/2008 14:30:09
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 14:45:49
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5809
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Meu pitaco...
Philipe, o ISO 8583 não trabalha preferencialmente do modo assíncrono. O protocolo não tem nenhum restrição quanto a isto. Em todas as aplicações que trabalhei com ISO na área bancária e na área de cartões de crédito, foram usadas transações síncronas.
Pedroso, nunca vi ninguém usar web services para isto. Nem sei qual seria a vantagem. Em termos de velocidade de resposta só terá vantagens se o servidor que usa atualmente for muito ruim. O que usa no servidor? Mina? Grizzly? Threads na raça?
[]s
Luca
This message was edited 1 time. Last update was at 17/10/2008 14:47:52
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 14:59:34
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline
|
Luca wrote:Olá
Meu pitaco...
Philipe, o ISO 8583 não trabalha preferencialmente do modo assíncrono. O protocolo não tem nenhum restrição quanto a isto. Em todas as aplicações que trabalhei com ISO na área bancária e na área de cartões de crédito, foram usadas transações síncronas.
[]s
Luca
Vc. está se referindo ao back-end? Aí ok, em algum momento existe alguem (uma transação CICS, uma stored procedure, ou algo assim) que acaba operando de forma síncrona.
No entando, pelo que entendi da pergunta, trata-se de uma espécie de um roteador de mensagens. Neste caso os que já implementei e/ou trabalhei funcionavam de forma assíncrona.
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 15:11:31
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5809
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
psevestre wrote:Vc. está se referindo ao back-end? Aí ok, em algum momento existe alguem (uma transação CICS, uma stored procedure, ou algo assim) que acaba operando de forma síncrona.
No entando, pelo que entendi da pergunta, trata-se de uma espécie de um roteador de mensagens. Neste caso os que já implementei e/ou trabalhei funcionavam de forma assíncrona.
Trabalhei com aplicações Java que conversavam com switchers ou com outras aplicações Java. Sempre síncronas, ou seja, cada thread ficava esperando a resposta.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 15:42:32
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
tap_pedroso wrote:Bom Dia colegas,
aqui na empresa nós realizamos transações de sistema de credito atraves de socket...temos um socket server que abre o uma porta 3000 e 3001 (por exemplo) os clients de outra empresa enviado um pacote de Strings seguindo a ISO 8583 para o nosso server, nos quebramos a String, formamos os campos e realizamos a consulta....respondemos a solicitacao e se chegou tudo ok para o client o mesmo nos responde uma terceira perna dizendo q está tudo ok ou solicitando novamente caso chegou faltando dados...agora a questao é....com web service, eu consigo ter a seguranca dessas tres pernas e também a mesma velocidade de resposta nas transacoes/autorizacoes?
Um serviço é como uma interface. foque nos métodos e dados o WS fará a comunicação.
O WS é XML e pode ser prolixo e portanto consumir mais bytes, mas isso se usar SOAP.
No seu caso REST poderia ser bem mais prático. Vc pode utilizar o formato que quiser e não apenas XML.
Bacisamente um metodo = POST que é enviado com dados. O servidor processa e retorna. Como é tudo String vc pode incluir um algorithmo zip do texto. Isso reduzirá o trafego ( embora são sei se o overhead de (des)compressão compensa. Depende do tamanho da mensagem> Normalmente quando maior, mais compensa).
Ou seja, crie seu ppr protocolo com HTTP. Isso simplifica o uso de sokects.
Se precisa encriptar tb pode. Vc determina o protocolo como quiser.
WS não são sobre rapidez e diminuição de consumo de banda ou dados. São sobre integração. Facilidade de um programa comunicar com o seu do dia-para-a-noite. São sobre padronização, não velocidade. Mas é claro que vc pode otimizar todos os componentes do processo para ganhar essa velocidade.
Na real, sockets é coisa do século passado, mas se o seu sistema funciona bem com eles continue.
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/10/2008 07:31:32
|
tap_pedroso
JavaBaby
Membro desde: 11/06/2008 12:38:26
Mensagens: 90
Offline
|
Respondendo o colega Luca, vou utilizar Threads mesmo na unha rs....a aplicação é exatamente para cartão de crédito (como disse que ja trabalhou)...pretendo criar uma aplicação que recebe o pacote de dados e redireciona para uma classe de thread processar e responder a informação e assim tentar não criar filas de espera na porta do autorizador.
obrigado a todos os colegas pelos esclarecimentos.
|
|
|
 |
|
|