By Guruh Purnama<br />WINpulsa.com<br />ProposedStandard ProtocolHost-Host<br />
Background<br />
Who we are<br />Winpulsa<br />Not Developer – Not Selling Software to customer<br />Distributor<br />Service Company<br />...
What we needs<br />Protocol:<br />Plug & Play<br />Secure<br />Reliable<br />Performance <br />Trustable <br />
What is Standard ?<br />Acceptable<br />Adoptable<br />Scalable<br />Agreeable<br />Trustable<br />
What to be standardized ?<br />Process<br />Method<br />Format<br />Field & Parameter<br />Status<br />Security<br />
Requirement<br />Multi Transports<br />HTTP/S<br />YM – Yahoo Messenger Protocol<br />XMPP/Jabber/G-Talk<br />JMS/AMQP<br ...
Transaction/Order Process<br />
Process<br />Request - Response <br />Synchronous / Active Client<br />Report – <br />Asynchronous / Passive Client <br />...
Process – Synchronous<br />Client<br />Server<br />Request<br />Phase 1<br />Report<br />Process<br />Phase 2<br />Inquiry...
Process – Sync/Asynchronous<br />Client<br />Server<br />Request<br />Phase 1<br />Response<br />Process<br />Phase 2<br /...
Process – Phase 1<br />Phase 1 (Internal)<br />Authentication – User id, password, PIN<br />Admin:	has enough Balance, etc...
Process – Phase 2<br />Phase 2 (External)<br />On Progress<br />Failed Transaction<br />Success Transaction<br />
Process – Phase 2 - External <br />On Progress<br />Client<br />Server<br />Success<br />Failed<br />
Process – Phase3 - Report<br />Phase 3 <br />Report result from the Transaction process <br />Phase 3 – client must confir...
Process – Phase 3 - Report<br />On Progress<br />Server<br />Client<br />Success<br />Failed<br />
Process – Phase 4 - Inquiry<br />Inquiry just like Report but more on Client side that active<br />Can be used for checkin...
Process – Phase 4 - Inquiry<br />On Progress<br />Client<br />Server<br />Success<br />Failed<br />
Method<br />
Method<br />Message Passing<br />Asynchronous<br />YM,JMS<br />One - Many Node<br />More Flexible<br />Can be Transformed,...
Format<br />
Format<br />Binary/Bitmap based – More Machine language<br />ISO 8583 - Financial transaction card originated messages<br ...
Parameters<br />
Request<br />Reference ID – Integer<br />Transaction Time – Integer<br />User ID – String<br />MD5 Password – String<br />...
Response<br />Request ID – Integer<br />Reference ID – Integer<br />Response Time – Numeric <br />14 Digits - YYYYMMDDhhii...
Report<br />Report ID - Integer<br />Request ID - Integer<br />Reference ID – Integer<br />Report Time - Numeric <br />Tra...
Confirm<br />Confirm ID – Integer<br />Report ID – Integer<br />Confirm Time – Numeric <br />Status – Integer<br />Message...
Inquiry<br />Reference ID – Integer<br />Inquiry Time – Integer<br />User ID – String<br />MD5 Password – String<br />MD5/...
Result<br />Result ID - Integer<br />Request ID - Integer<br />Reference ID - Integer<br />Transaction Time – Numeric <br ...
Additional Processes<br />
Additional Process<br />Accounting Info<br />Product Info<br />Other importance business process<br />
Process – Accounting Info<br />For checking status client’s accounting information<br />Result Fields:<br />Transaction Ti...
Process – Product Info<br />For automated product price & quota checking<br />Result Fields:<br />Transaction Time – DateT...
Status<br />
Status Type<br />Status – Must Be Clear and Detail – Cannot be General<br />Success<br />Cannot be retried<br />Method<br ...
Status - Categorical Digit<br />8 Digit Status Code in Unsigned Integer<br />MEDIUMINT for MYSQL Field Type<br />1 Digit –...
Status<br />User/Pass Failed: 1-1-1-2-001 => 11112001<br />Out of Stock: 3-2-1-2-101 => 13212101<br />Success Transaction:...
Security<br />
Security<br />Data is Valuable ==== Money !<br />Message Must be Secure<br />Only 2 Machine can be read/write<br />Data mu...
Encrypted Data Flow<br />Key A<br />A<br />B<br />Encrypt<br />Decrypt<br />Encrypt<br />Encrypt<br />Key B<br />
Key & Encrypted Function<br />Key generated by trusted organization/forum<br />Encryption Function: SHA-1<br />Maintain ke...
What Next<br />
What next ?<br />This is just beginning … <br />Version 1.0<br />Continue improvement<br />There will be Version 2.0, 3.0 ...
Upcoming SlideShare
Loading in...5
×

Standard Protocol for Host-Host by Guruh Purnama - Winpulsa.com

375

Published on

Presentation of Proposed Standard Protocol for Host-Host by Guruh Purnama - Winpulsa.com.

For Electronic Voucher Industry in Indonesia

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
375
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Standard Protocol for Host-Host by Guruh Purnama - Winpulsa.com"

  1. 1. By Guruh Purnama<br />WINpulsa.com<br />ProposedStandard ProtocolHost-Host<br />
  2. 2. Background<br />
  3. 3. Who we are<br />Winpulsa<br />Not Developer – Not Selling Software to customer<br />Distributor<br />Service Company<br />We are User, Partnering with Developer<br />Winpulsa:<br />IT Company: Content Provider, Application Service Provider<br />Partnering: Operator Cellular, Banking<br />All System developed by In-house developer<br />
  4. 4. What we needs<br />Protocol:<br />Plug & Play<br />Secure<br />Reliable<br />Performance <br />Trustable <br />
  5. 5. What is Standard ?<br />Acceptable<br />Adoptable<br />Scalable<br />Agreeable<br />Trustable<br />
  6. 6. What to be standardized ?<br />Process<br />Method<br />Format<br />Field & Parameter<br />Status<br />Security<br />
  7. 7. Requirement<br />Multi Transports<br />HTTP/S<br />YM – Yahoo Messenger Protocol<br />XMPP/Jabber/G-Talk<br />JMS/AMQP<br />Any Language <br />PHP<br />.NET<br />Java<br />Python<br />Ruby<br />Delphi / Pascal<br />
  8. 8. Transaction/Order Process<br />
  9. 9. Process<br />Request - Response <br />Synchronous / Active Client<br />Report – <br />Asynchronous / Passive Client <br />Inquiry – Result <br />Synchronous / Active Client <br />HTTP - Dynamic IP<br />
  10. 10. Process – Synchronous<br />Client<br />Server<br />Request<br />Phase 1<br />Report<br />Process<br />Phase 2<br />Inquiry<br />Phase 3<br />Result<br />
  11. 11. Process – Sync/Asynchronous<br />Client<br />Server<br />Request<br />Phase 1<br />Response<br />Process<br />Phase 2<br />Report<br />Phase 3<br />Confirm<br />Inquiry<br />Phase 4<br />Result<br />
  12. 12. Process – Phase 1<br />Phase 1 (Internal)<br />Authentication – User id, password, PIN<br />Admin: has enough Balance, etc<br />Validation: Product Code, etc <br />
  13. 13. Process – Phase 2<br />Phase 2 (External)<br />On Progress<br />Failed Transaction<br />Success Transaction<br />
  14. 14. Process – Phase 2 - External <br />On Progress<br />Client<br />Server<br />Success<br />Failed<br />
  15. 15. Process – Phase3 - Report<br />Phase 3 <br />Report result from the Transaction process <br />Phase 3 – client must confirm<br />Authentication By Client<br />On Progress<br />Failed<br />Success<br />
  16. 16. Process – Phase 3 - Report<br />On Progress<br />Server<br />Client<br />Success<br />Failed<br />
  17. 17. Process – Phase 4 - Inquiry<br />Inquiry just like Report but more on Client side that active<br />Can be used for checking & validating last transaction<br />Inquiry Process<br />Authentication By Server<br />On Progress<br />Failed<br />Success<br />
  18. 18. Process – Phase 4 - Inquiry<br />On Progress<br />Client<br />Server<br />Success<br />Failed<br />
  19. 19. Method<br />
  20. 20. Method<br />Message Passing<br />Asynchronous<br />YM,JMS<br />One - Many Node<br />More Flexible<br />Can be Transformed, Filtered & Controlled etc<br />RPC – Remote Procedure Call<br />Synchronous<br />XMLRPC,SOAP<br />One – One Node<br />Rigid<br />
  21. 21. Format<br />
  22. 22. Format<br />Binary/Bitmap based – More Machine language<br />ISO 8583 - Financial transaction card originated messages<br />Binary XML<br />Faster <br />Text based – More Human readable<br />JSON,XML,YAML<br />Slower but easy to maintain<br />
  23. 23. Parameters<br />
  24. 24. Request<br />Reference ID – Integer<br />Transaction Time – Integer<br />User ID – String<br />MD5 Password – String<br />MD5/SH1 Generated – MD5(Time + Password)<br />Product ID – String<br />MSISDN – String<br />
  25. 25. Response<br />Request ID – Integer<br />Reference ID – Integer<br />Response Time – Numeric <br />14 Digits - YYYYMMDDhhiiss<br />Status – Integer<br />
  26. 26. Report<br />Report ID - Integer<br />Request ID - Integer<br />Reference ID – Integer<br />Report Time - Numeric <br />Transaction Time – Numeric <br />User ID – String<br />MD5 Password - String<br />Status – Integer<br />Serial Number - Integer<br />Message - String<br />
  27. 27. Confirm<br />Confirm ID – Integer<br />Report ID – Integer<br />Confirm Time – Numeric <br />Status – Integer<br />Message - String<br />
  28. 28. Inquiry<br />Reference ID – Integer<br />Inquiry Time – Integer<br />User ID – String<br />MD5 Password – String<br />MD5/SH1 Generated – MD5(Time + Password)<br />
  29. 29. Result<br />Result ID - Integer<br />Request ID - Integer<br />Reference ID - Integer<br />Transaction Time – Numeric <br />Status – Integer<br />Serial Number - Integer<br />Message - String<br />Optional:<br />Price - Float<br />
  30. 30. Additional Processes<br />
  31. 31. Additional Process<br />Accounting Info<br />Product Info<br />Other importance business process<br />
  32. 32. Process – Accounting Info<br />For checking status client’s accounting information<br />Result Fields:<br />Transaction Time – DateTime Numeric<br />Last Deposit – Datetime Numeric<br />Amount Last Deposit - Float<br />Last Transaction – Datetime numeric<br />Amount last Transaction - Float<br />Current Balance - Float<br />Status - Integer<br />Message - String<br />
  33. 33. Process – Product Info<br />For automated product price & quota checking<br />Result Fields:<br />Transaction Time – DateTime Numeric<br />Product Code - String<br />Price – Float<br />Quota - Integer<br />Status - Integer<br />Message - String<br />
  34. 34. Status<br />
  35. 35. Status Type<br />Status – Must Be Clear and Detail – Cannot be General<br />Success<br />Cannot be retried<br />Method<br />Automatic<br />Manual<br />Failed<br />Caused By Client: Invalid: password, MSISDN etc <br />Caused By Server: Out of Stock, Internal Error<br />Retry able<br />Don’t-Retry able<br />Method<br />Automatic<br />Manual<br />
  36. 36. Status - Categorical Digit<br />8 Digit Status Code in Unsigned Integer<br />MEDIUMINT for MYSQL Field Type<br />1 Digit – Process Code = 1 Transaction<br />1 Digit – Phase = 1,3,5,6<br />1 Digit – By Client=1, By Server=2 <br />1 Digit – Retry=1, Don’t Retry=2 <br />1 Digit – State = On Progress=1, Failed=2, Success=3<br />3 Digit – Detail <br />
  37. 37. Status<br />User/Pass Failed: 1-1-1-2-001 => 11112001<br />Out of Stock: 3-2-1-2-101 => 13212101<br />Success Transaction: 3-2-1-3-500 => 13213500<br />Inquiry Failed – Internal Error: 6-2-1-2-201 => 16212201 <br />
  38. 38. Security<br />
  39. 39. Security<br />Data is Valuable ==== Money !<br />Message Must be Secure<br />Only 2 Machine can be read/write<br />Data must be Encrypted !!<br />Encrypted with Exchanged Trusted Key <br />
  40. 40. Encrypted Data Flow<br />Key A<br />A<br />B<br />Encrypt<br />Decrypt<br />Encrypt<br />Encrypt<br />Key B<br />
  41. 41. Key & Encrypted Function<br />Key generated by trusted organization/forum<br />Encryption Function: SHA-1<br />Maintain key for period of time (1 Month)<br />
  42. 42. What Next<br />
  43. 43. What next ?<br />This is just beginning … <br />Version 1.0<br />Continue improvement<br />There will be Version 2.0, 3.0 etc<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×