CHƯƠNG I: TỔNG QUAN 1. Lý do chọn đề tài Với s> pht triển nh7y v!t c)a công nghệ thông tin hiện nay, internet ngày càng giữ vai trò quan tr!ng trong cc l=nh v>c khoa h!c k= thuật và đ?i sống. D= nhiên cc b'n đA đưc nghe n5i v: Internet, n5i một cch đơn gi7n, Internet là một m'ng my t-nh toàn cầu mà bất kì ai cũng c5 thể k+t nối b/ng my t-nh c nhân c)a h!. Với m'ng internet, tin h!c thật s> t'o nên một cuộc cch m'ng trao đ0i thông tin trong m!i l=nh v>c văn ho, xA hội, ch-nh trị, kinh t+, gi7i tr-,… Để đp 1ng cc yêu cầu trên c5 nhi:u gi7i php khc nhau, trong đố dịch v# web (Web Service) là một công nghệ đang đưc pht triển và c5 nhi:u 1ng d#ng hiện nay, c5 thể dp 1ng tốt cc yêu cầu trên.
Dịch v# web d>a trên việc cung cấp cc phương th1c theo chuẩn trong việc truy nhập đối với hệ thông đ5ng g5i và hệ thống k+ thừa. Cc phần m:m đưc vi+t bởi những ngôn ngữ lập trình khc nhau và ch'y trên những n:n t7ng khc nhau c5 thể s3 d#ng dịch v# web để chuyển đ0i dữ liệu thông qua m'ng Internet theo cch giao ti+p tương t> bên trong một my t-nh. Công nghệ xây d>ng dịch v# web không ph7i là cc công nghệ mới, mà là s> k+t hp với cc công nghệ đA c5 như XML, SOAP, WSDL, UDDI,…Với s> pht triển và lớn m'nh c)a Internet, dịch v# web thật s> là một công nghệ đng đưc quan tâm để gi7m chi ph- và độ ph1c t'p trong t-ch hp và pht triển hệ thống. Vì th+, là sinh viên đưc trang bị những ki+n th1c c)a ngành công nghệ thông tin với những ki+n th1c đA ti+p thu và vận d#ng lý thuy+t đ5 vào công việc th>c t+ nên em ch!n đ: tài “Nghiên cứu công nghệ webservice, android và ứng dụng xây dựng app bán thiết bị điện tử” để th>c hiện đ8 n tốt nghiệp c)a mình với m#c đ-ch 1ng d#ng dịch v# webservice xây d>ng app bn thi+t bị điện t3, gi9p m!i ngư?i mua đưc thi+t bị điện t3 1ng ý, cũng như gi9p doanh nghiệp qu7n lý thông tin s7n phẩm và thông tin khch hàng một cch nhanh ch5ng, thuận li.
Mục tiêu của đề tài - Nghiên c1u, nắm vững ki+n th1c liên quan đ+n webservice và android, đ8ng th?i xây d>ng một app bn hàng diện t3 cho doanh nghiệp. - Triển khai và cài đặt chương trình th>c t+. - Đ7m b7o an toàn và b7o mật: Đặc biệt quan tâm đ+n việc b7o vệ thông tin c nhân và tài kho7n c)a ngư?i dùng. Cung cấp cc biện php b7o mật như đăng nhập an toàn và thanh ton b7o mật để ngư?i dùng c7m thấy yên tâm khi s3 d#ng.
Giới hạn và phạm vi của đề tài Trong ph'm vi đ: tài này em sẽ nghiên c1u cc vấn đ:: - Ph'm vi th>c hiện đ8 n d>a trên những ki+n th1c thu đưc từ những môn h!c trong qu trình h!c tập t'i trư?ng và tham kh7o thêm một số tài liệu bên ngoài dể b0 sung thêm ki+n th1c nh/m hoàn thiện đ8 n tốt hơn, đp 1ng đưc m#c tiêu đ8 n. - Nghiên c1u v: công nghệ dịch v# web (Web Service), đi sâu vào 1ng d#ng c)a webservice và android để xây d>ng 1ng d#ng. - Ứng d#ng đưc xây d>ng b/ng ngôn ngữ java, android và cơ sở dữ liệu b/ng MySQL. Kết quả dự kiến đạt được Nghiên c1u webservice, android và 1ng d#ng xây d>ng app bn thi+t bị điện t3 khi hoàn thành d> ki+n đ't đưc k+t qu7 sau: - Xây d>ng tài liệu phân t-ch thi+t k+ xây d>ng App bn thi+t bị điện t3.
- Xây d>ng cấu tr9c cơ sở dữ liệu quan hệ cho bài ton bn thi+t bị điện t3. - Xây d>ng hệ thống webservice tương tc và truy vấn dữ liệu giữa App và Database. - Xây d>ng App Client gi9p ngư?i dùng qu7n lý và mua hàng online qua n:n t7ng android với cc ch1c năng ch-nh sau: + Webservice cho ngư?i qu7n lý: Qu7n lý khch hàng: xem, xo thông tin khch hàng. Qu7n lý s7n phẩm: thêm, s3a, xo s7n phẩm.
Qu7n lý lo'i s7n phẩm: thêm, s3a, xo lo'i s7n phẩm. Qu7n lý đơn hàng: xem, xc nhận, xo đơn hàng đA x3 lý. 9 Thống kê doanh thu: s7n phẩm bn ch'y nhất, khch hàng mua nhi:u nhất, doanh thu theo ngày thng năm. Qu7n lý hàng t8n kho.
+ App cho khch hàng s3 d#ng: Đăng ký, đăng nhập tài kho7n. Tìm ki+m theo tên s7n phẩm. Xem thông tin, hiện tr'ng v: s7n phẩm: tên s7n phẩm, công d#ng, gi ti:n, .v, d8ng th?i thêm vào giỏ hàng cùng số lưng. Thanh ton mua hàng thành công.
- Ho7n thành bo co chi ti+t đ8 n tốt nghiệp. 10 CHƯƠNG II: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG Qua qu trình h!c trên gh+ nhà trư?ng cùng với th?i gian nghiên c1u tài liệu tham kh7o, em đA t5m tắt đưc những ki+n th1c n:n t7ng ch-nh đưc s3 d#ng trong xây d>ng chương trình và thi+t k+ cơ sở dữ liệu và xây d>ng chương trình như sau. Phân tích thiết kế hướng đối tượng Định ngh=a: Phân t-ch thi+t k+ hướng đối tưng là giai đo'n pht triển một mô hình ch-nh xc và s9c t-ch c)a vấn đ:, c5 thành phần là cc đối tưng và khi niệm đ?i th>c, d. hiểu đối với ngư?i s3 d#ng.
Ưu điểm: Một trong những ưu điểm quan tr!ng bậc nhất c)a phương php phân t-ch và thi+t k+ hướng đối tưng là t-nh ti s3 d#ng, c5 thể t'o cc thành phần (đối tưng) một lần và dùng ch9ng nhi:u lần sau đ5. Biểu đồ UML Biểu đ8 UML (Unified Modeling Language) là một ngôn ngữ mô hình g8m cc ký hiệu đ8 ho' mà cc phương php hướng đối tưng s3 d#ng để thi+t k+ cc hẹ thống thông tin một cch nhanh ch5ng. Cch ti+p cận theo mô hình UML gi9p -ch rất nhi:u cho những ngư?i thi+t k+ và th>uc hiện hệ thống thông tin cũng như những ngư?i s3 d#ng n5; t'o nên một ci nhìn bao qut và đầy đ) v: hệ thống thông tin d> đ-nh xây d>ng. Một số d'ng biểu đ8 UML ph0 bi+n như: Biểu đ8 Usecase, Biểu đ8 lớp, Biểu đ8 tr'ng thi, Biểu đ8 tuần t>, Biểu đ8 ho't động.
Biểu đồ Usecase Một biểu đ8 Usecase chỉ ra một số lưng cc tc nhân ngo'i c7nh và mối liên k+t c)a ch9ng đối với Usecase mà hệ thống cung cấp. Một Usecase là một l?i miêu t7 c)a một ch1c năng. Hệ thống: Với vai trò là thành phần c)a biểu đ8 usecase, hệ thống biểu di.n ranh giới giữa bên trong và bên ngoài c)a một ch) thể trong phần m:m ch9ng ta xây d>ng. Một hệ thống ở trong biểu đ8 usecase không nhất thi+t là một hệ phần m:m; n5 c5 thể là một chi+c my hoặc là một hệ thống th>c như một doanh nghiệp, một trư?ng đ'i h!c,.
11 Tác nhân (Actor): là ngư?i dùng c)a hệ thống, một tc nhân c5 thể là một ngư?i dùng th>c hoặc cc hệ thống my t-nh khc c5 vai trò nào đ5 trong ho't động c)a hệ thống. Như vậy, tc nhân th>c hiện cc usecase. Một tc nhân c5 thể th>c hiện nhi:u usecase và ngưc l'i một usecase cũng c5 thể đưc th>c hiện bởi nhi:u tc nhân. Tc nhân k- hiệu: Usecase: Đây là thành phần cơ b7n c)a biểu đ8 usecase.
Cc usecase đưc biểu di.n bở cc hình elip. Tên cc usecase thể hiện một ch1c năng xc định c)a hệ thống. Cc usecase đưc k- hiệu b/ng hình elips: Use Case Mối quan hệ giữa các usecase: Associaton: thư?ng đưc dùng để mô t7 mối quan hệ giữa Actor với Usecase và giữa Usecase với nhau. K- hiệu: Include: là quan hệ giữa cc Usecase với nhau, n5 mô t7 việc một Usecase lớn đưc chia ra thành cc Usecase nhỏ để d.
cài đặt (module ho) hoặc thể hiện s> dùng l'i. K- hiệu: Include: Extend 2. Biểu đồ lớp Một biểu đ8 lớp chỉ ra cấu tr9c t=nh c)a cc lớp trong hệ thống. Cc lớp là địa diện cho cc “đối tưng” đưc x3 lý trong hệ thống.
Một lớp c5 những thành phần sau: Tên lớp Cc thuộc t-nh Cc phương th1c 12 Giữa cc lớp luôn c5 s> liên k+t với nhau. Mối liên hệ ngữ ngh=a hai hay nhi:u lớp chỉ ra s> liên k+t giữa cc thể hiện c)a ch9ng. Mối quan hệ v: mặt cấu tr9c chỉ ra cc đối tưng c)a lớp này c5 k+t nối với cc đối tưng c)a lớp khc. Biểu đồ tuần tự Biểu đ8 tuần t> là biểu đ8 dùng để xc định cc trình t> di.n ra s> ki+n c)a một nh5m đối tưng nào đ5.
N5 miêu t7 chi ti+t cc thông điệp v: mặt th?i gian g3i và nhận cc thông điệp đ5. Biểu đồ hoạt động Biểu đ8 ho't động là biểu đ8 mô t7 cc bước th>c hiện, cc hành động, cc n9t quy+t định và đi:u khiển rẽ nhnh để đi:u khiển lu8ng th>c hiện c)a hệ thống. Đối với những lu8ng th>c thi c5 rất nhi:u ti+n trình ch'y song song thì biểu đ8 ho't động là sư l>a ch!n tối ưu cho việc thể hiện. Biểu đ8 ho't động kh giống với biểu đ8 tr'ng thi ở tập cc k- hiệu nên rất d.
gây nhầm lẫn. Khi vẽ ch9ng ta cần xc định rõ điểm khc nhau giữa hai d'ng biểu đ8 này là biểu đ8 ho't động tập trung mô t7 cc ho't động và k+t qu7 thu đưc từ việc thay đ0i tr'ng thi c)a đối tưng còn biểu đ8 tr'ng thi chỉ mô t7 tập trung tất c7 cc tr'ng thi c)a một đối tưng và những s> kiện dẫn tới s> thay đ0i qua l'i giữa cc tr'ng thi đ5. Công cụ sử dụng Để c5 thể thi+t k+ webservice để qu7n lý thì công c# đơn gi7n và hữu d#ng nhất là ReactJS & MongoDB, xây d>ng app bn thi+t bị điện t3 này thì s3 d#ng ngôn ngữ Java trên n:n t7ng Android, phân t-ch thi+t k+ là Visual Paradigm. ReactJS ReactJS là một thư viện JavaScript chuyên gi9p cc nhà pht triển xây d>ng giao diện ngư?i dùng hay UI.
Trong lập trình 1ng d#ng front-end, lập trình viên thư?ng sẽ ph7i làm việc ch-nh trên hai thành phần sau: UI và x3 lý tương tc ngư?i dùng. Ngoài việc hỗ tr xây d>ng giao diện nhanh, h'n ch+ lỗi trong qu trình code, c7i thiện performance website thì ReactJS còn c5 những t-nh năng khc như sau: Phù hp với đa d'ng thể lo'i website. 13 C5 thể s3 d#ng cho c7 Mobile Appocation. Thân thiện với SEO.
MongoDB MongoDB là một database hướng tài liệu (document), một hệ qu7n trị cơ sở dữ liệu mA ngu8n mở, là một cơ sở dữ liệu thuộc d'ng NoSQL database và đưc hàng triệu ngư?i s3 d#ng.