Cài đặt demo ứng dụng thanh toán hóa đơn nhà hàng

Một phần của tài liệu Mobile agent và ứng dụng trong thanh toán điện tử (Trang 61)

3.3.2.1. Tạo Agent server

Phía bên người mua (web server) ta cài một Agent Server Tahiti và một CSDL MySQL. Agent server này có tên atp://Customer:400, ta gọi nó là HostCustomer

Cơ sở dữ liệu gồm có các bảng sau: Table: users

Table: product

Table: transaction

Table: receipt

Phía bên người bán ta cài một Agent Server Tahiti. Agent server này có tên atp://Merchant:500, ta gọi nó là HostMerchant

Hình 3.9: Máy chủ aglet phía chủ nhà hàng

Phía bên TTP (Trusted Third Party) ta cài một Agent Server Tahiti. Agent server này có tên atp://TTP:600, ta gọi nó là HostTTP

Hình 3.10: Máy chủ aglet phía TTP 3.3.2.2. Mô hình xử lý của các aglet

Tại host Customer, ta tạo một Agent customerMaster để nhận dữ liệu do người dùng đưa vào

Input: hàng mua (MaSp, TenSP, soluong, dongia) privateKey

customer digital signature

Thông tin hóa đơn mua hàng được “ký” bằng khóa bí mật của người mua, tạo ra chữ ký số của người mua (customer digital signature), đồng thời nó dùng khóa công khai của TTP để mã hóa thông tin thanh toán (số tiền, số thẻ tín dụng)

customerMaster tạo ra agent customerSlave mang theo thông tin thanh toán đã được mã hóa, hóa đơn mua hàng và chữ ký số của người mua di chuyển tới

hostMerchant. Tại hostMerchant, agent customerSlave trao những thông tin đó cho merchantMaster. MerchantMaster dùng khóa bí mật của người bán để ký lên hóa đơn tạo ra chữ ký số của người bán và gửi tất cả chúng đến TTP

Aglet TTP chứng thực thông tin hóa đơn bằng khóa công khai của người mua và người bán, nó giải mã thông tin thanh toán của người mua bằng khóa bí mật của TPP. Nếu tất cả các thông tin được chứng thực, TTP xuất biên lai cho merchantSlave

MerchantSlave mang biên lai đã được TTP chứng thực trở về hostMerchant và trao cho customerSlave

customerSlave mang biên lai trở về hostCustomer

3.3.2.3. Mô hình xử lý dòng dữ liệu

a. Yêu cầu thanh toán:

1. Tạo aglet customerSlave

2. Di chuyển aglet customerSlave đến host Merchant để gửi yêu cầu thanh toán

protectedvoid MoveToMerchant(Message msg) { try{

AgletProxy p = aglet.getProxy();

p.sendOnewayMessage(new Message("GoToMerchant",

"atp://Merchant:500"));

Object[] arg=new Object[]{order_infor, signed_customer,

aglet=getAgletContext.createAglet(codebase, "Yeu cau thanh

toan", arg);

(adsbygoogle = window.adsbygoogle || []).push({});

try {

aglet.dispatch(new URL("atp://Merchant:500"));

}

catch(Exeption e){

System.out.println("Khong the chuyen Aglet qua host

Merchant");

} }

catch(Exeption e){

System.out.println("Khong the tao Aglet"); }

}

3. Nếu nhận được thông báo (message) “BIEN_LAI”  Nhận biên lai

 Lưu thông tin biên lai vào CSDL và thông báo tới người dùng public bool handleMessage(Message msg){

if (msg.sameKind("BIEN_LAI")){

MySQLConnect connect = new MySQLConnect("Customer",

"root", "123456", "agletpayment");

String noi_dung=(String)msg.getArg("noi_dung");

connect.excuteQuery("INSERT INTO RECEIPT (NOI_DUNG,

NGAY_TAO) VALUES('"+ noi_dung +"',

CURRENT_TIMESTAMP)");

} }

b. Chủ hàng nhận yêu cầu thanh toán

1. Tạo aglet merchantSlave

2. Nhận thông tin từ customerSlave

protectedvoid GetAgletConsumer(Message msg){

int i=1; while (e.hasMoreElements()){ AgletProxy proxy=(AgletProxy)e.nextElements(); if (proxy.getAgletClassName()== "Consumer"){ customer_id=proxy.getAgletID(); return; } } }

3. Di chuyển aglet merchantSlave đến host TTP để gửi yêu cầu xác thực

protectedvoid MoveToTTP(Message msg) {

try

{

Object[] arg=new Object[]{order_infor, signed_customer, (adsbygoogle = window.adsbygoogle || []).push({});

signed_merchant, payment_data, id_this_merchan};

aglet=getAgletContext.createAglet(codebase, "Yeu cau xac

thuc",arg);

try{

aglet.dispatch(new URL("atp://TTP:500"));

}

catch(Exeption e){

System.out.println("Khong the chuyen Aglet qua host

TTP");

} }

catch(Exeption e){

System.out.println("Khong the tao Aglet"); }

}

4. Nếu nhận được thông báo (message) “BIEN_LAI”  Nhận biên lai

 Chuyển lại biên lai cho customerSlave (vẫn đang chờ tại host Merchant)

public bool TranferToConsumer(Message msg){

AgletProxy proxy_customer =

/*Lay proxy cuc bo cua agent customerSlave */ String noi_dung=(String)msg.getArg(“noi_dung");

Message msg1=new Message("BIEN_LAI"); msg1.setArg(noi_dung);

proxy_customer.sendMessage(msg1); dispose(); //Tu huy

}

c. TTP xác thực hóa đơn và xuất biên lai

1. Chứng thực chữ kỹ số của chủ hàng 2. Chứng thực chữ ký số của người mua

3. Giải mã thông tin thanh toán của người mua 4. Tạo biên lai và gửi cho merchantSlave

public bool handleMessage(Message msg) { if (msg.sameKind("GoToTTP")) GetAgletMerchant(msg); else return false; return true; }

protected void GetAgletMerchant(Message msg){ Enumration e = getAgletContext().getAgletProxies(); int i=1; while (e.hasMoreElements()){ AgletProxy proxy=(AgletProxy)e.nextElements(); if (proxy.getAgletClassName()== "Merchant"){ merchant_id=proxy.getAgletID(); return; } } }

Public void run(){

AgletProxy proxy_merchant =

getAgletContext.getAgletProxy (merchant_id); /*

Lay proxy cuc bo cua agent merchantSlave */ (adsbygoogle = window.adsbygoogle || []).push({});

proxy_merchant.sendMessage(new Message("BIEN_LAI")); }

3.3.2.4. Giao diện chương trình

a. Màn hình đăng nhập

Hình 3.11: Màn hình đăng nhập

Người dùng phải đăng ký với nhà cung cấp dịch vụ bằng cách cung cấp các thông tin cá nhân và thông tin thẻ tín dụng

b. Màn hình thanh toán

Hình 3.12: Màn hình thanh toán

Sau khi ngươi mua click vào nút “Thanh toán”, một yêu cầu thanh toán sẽ được tạo ra và được gửi tới máy chủ của người bán, đích đến cuối cùng là máy chủ của nhà cung cấp dịch vụ. Nhà cung cấp sẽ xác thực chữ ký số được ký trên phiếu yêu cầu và gửi lại thông tin phản hồi. Việc thanh toán sẽ do nhà cung cấp làm việc với ngân hàng của người mua và người bán để xử lý hóa đơn thẻ tín dụng. Cuối tháng người mua sẽ nhận được hóa đơn thẻ tín dụng để thanh toán cho người bán.

3.3.3. Kết luận

Trong chương này em đã giới thiệu về thương mại điện tử và thanh toán điện tử, các vấn đề đặt ra cho thanh toán điện tử, cũng như các mô hình thanh toán trực tuyến.

Em cũng giới thiệu về những ứng dụng của mobile agent trong thương mại điện tử như : agent mua hàng, bán hàng , đấu giá.

là: The Secure Agent Fabrication, Evolution & Roaming (SAFER) và hệ thống thanh toán hóa đơn nhà hàng (Mobile Agent-Based Restaurant Order Payment System).

Cuối cùng là giới thiệu về chương trình thử nghiệm em xây dựng để minh họa hệ thống thanh toán hóa đơn nhà hàng, chương trình được xây dựng bằng công cụ aglet 2.0.2 của IBM và ngôn ngữ lập trình java.

Kết luận và hướng phát triển A. Kết quả đạt được

Luận văn nghiên cứu mô hình mobile agent theo hướng ứng dụng vào thanh toán điện tử trong thương mại điện tử. Phần lý thuyết giới thiệu và so sánh các hệ thống Mobile Agent hiện nay như Aglets, Mole, Voyager, Zeus. Luận văn cũng trình bày về vấn đề an toàn an ninh cho agent, đưa ra các giải pháp chống lại sự tấn công của các agent tới agent hay tới agent platform và ngược lại.

Do luận văn sử dụng Aglet để cài đặt chương trình thử nghiệm nên phần lý thuyết của aglet đã được trình bày chi tiết hơn, cụ thể là giới thiệu về các khái niệm cần thiết như proxy, context, message, id của một aglet, cũng như các phương thức dispatch, retract, sendMessage,... để có thể viết một chương trình ứng dụng trên hệ thống mobile agent

Ngoài ra phần lý thuyết cũng đã giới thiệu kiến trúc bên trong của hệ thống aglet, agletAPI và giao thức truyền thông của aglet – giao thức ATP. Đây là giao thức cần thiết cho aglet hoạt động và di chuyển từ host này sang host khác.

Phần lý thuyết về thương mại điện tử và thanh toán điện tử, luận văn đã giới thiệu về các mô hình thanh toán trực tuyến cũng như các khả năng ứng dụng của mobile agent trong thương mại điẹnt tử. Bên cạnh đó luận văn cũng giới thiệu hai mô hình ứng dụng của mobile agent trong lĩnh vực thanh toán điện tử, đó là SAFER và hệ thống thanh toán hóa đơn nhà hàng.

Phần kết quả thực nghiệm, luận văn đã xây dựng phần cài đặt cho hệ thống thanh toán hóa đơn nhà hàng. Qua ứng dụng cài đặt này, luận văn đã nêu được một số ưu điểm của mô hình mobile agent:

 Khả năng gửi chương trình qua host khác để thực thi tiếp nhiệm vụ  Các agent có thể trao đổi với nhau bằng cách truyền thông báo.  Tìm kiếm thông tin trên nhiều host

 Gửi nhiều agent tớ (slave) đi các host khác thực hiện song song các công việc

B. Hướng phát triển

Trên cơ sở lý thuyết đã tìm hiểu, hướng phát triển tiếp của đề tài này là tập trung vào vấn đề đảm bảo an toàn cho các agent khi di chuyển trên mạng, cũng như trang bị thêm cho agent nhiều kiến thức hơn nữa, để nó “thông minh” hơn, có thể định tuyến lại quá trình di chuyển dựa vào sự tương tác với các agent khác đang cùng hoạt động.

truyền thông báo trao đổi thông tin tới các đối tượng liên quan. Hướng phát triển tiếp cũng sẽ bổ xung thêm các hàm mã hóa, hàm kiểm tra để xác thực chữ ký số của người mua, người bán. Khi người dùng nhận được biên lai, hiện giờ hệ thống mới chỉ đưa ra một thông báo, hướng phát triển tiếp theo sẽ là in ra cả hóa đơn và biên lai cho người dùng.

TÀI LIỆU THAM KHẢO Tiếng Việt

1. Đoàn Văn Ban, Quách Xuân Trưởng, Công nghệ đa tác tử di động và ứng dụng để thương lượng trong thương mại điện tử, Viện Công nghệ thông tin – Viện KH&CN Việt Nam.

2. Trần Hạnh Nhi, Lê Đình Duy, Nguyễn Đông Hà, Thái Trí Hùng, Văn Trọng Nam, Huỳnh Tấn Năng, Nguyễn Huy Thẩm, Nguyễn Thái Huy, Phan Đình Thế Huân, Hồ Thị Mỹ Huyền, Lê Văn Triều (2004), Tổng quan về Mobile Agent, Đại học Khoa học Tự nhiên, Đại học Quốc gia TP.HCM.

3. Nguyễn Cửu Long (2006), Giáo trình thương mại điện tử, Sở Giáo dục và Đào tạo, Hà Nội

Tiếng Anh

4. DANNY B.LANGE, MITSURU OSHIMA (1998), Programming and Deploying Java Mobile Agents with Aglets, Addison Wesley Longman. 5. MasterCard. (1997). SET Secure Electronic Transaction specification (Book 1: (adsbygoogle = window.adsbygoogle || []).push({});

Business Description). Purchase, NY: MasterCard Inc.

6. MEHDI KHOSROW-POUR (2006), Encyclopedia of E-Commerce, E- Government, and Mobile Commerce, Idea Group Reference,USA.

7. http://aglets.sourceforge.net/

8. Cambridge University Press (1996), Software Agents: An Overview, Ipswich, U.K

9. Rahul Jha, Mobile agents for e-commerce, KR School of Information Technology Indian Institute of Technology, Bombay, India

10.Sheng-Uei Guan, Sin Lip Tan and Feng Hua, A Modularized Electronic Payment System for Agent-based E-commerce, Department of Electrical & Computer Engineering National University of Singapore 10 Kent Ridge Crescent, Singapore

11.Lange D (1997), Java Aglet Application Programming Interface. IBM Tokyo Research Laboratory.

12.F. Hohl (1998), Model of Attacks of Malicious Hosts Against Mobile: Protecting Mobile Agents From Malicious Hosts, University of Stuttgart.

Một phần của tài liệu Mobile agent và ứng dụng trong thanh toán điện tử (Trang 61)