Khóa luận Hiện thực chương trình Chat Client Chat Server

pdf 52 trang yendo 4761
Bạn đang xem 20 trang mẫu của tài liệu "Khóa luận Hiện thực chương trình Chat Client Chat Server", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfkhoa_luan_hien_thuc_chuong_trinh_chat_client_chat_server.pdf

Nội dung text: Khóa luận Hiện thực chương trình Chat Client Chat Server

  1. NTTULIB TRƯỜNG CAO ĐẲNG NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN THÀNH TRUNG - 306305151 NGUYỄN THANH TÙNG - 306305101 HIỆN THỰC CHƯƠNG TRÌNH CHAT CLIENT CHAT SERVER KHÓA LUẬN TỐT NGHIỆP GIÁO VIÊN HƯỚNG DẪN ThS. NGUYỄN DUY THÁI NTTULIB KHÓA 2006 - 2008 Trang 2
  2. NTTULIB LỜI CẢM ƠN Qua thời gian làm đồ án, em xin cảm ơn khoa Công Nghệ Thông Tin, thầy Nguyễn Duy Thái và các giáo viên phụ trách các bộ môn đã định hướng, hướng dẫn, giúp đỡ, hỗ trợ cho chúng em rất nhiều trong viêc xây dựng cấu thành nên đồ án tốt nghiệp, cùng với sự giúp đỡ nhiệt tình của quý công ty: Cty Phầm mềm Việt địa chỉ phòng 8, dãy nhà 2, Khu công viên phần mềm Quang Trung, Tp.HCM.đã hỗ trợ, giúp đỡ trong quá trình chúng em thực tập, định hướng cho chúng em trong quá xây dựng đồ án tốt nghiệp. Trong quá trình làm đồ án chúng em có tham khảo thêm một số sách ở các nhà sách như: Nhà sách Nguyễn Văn Cừ, nhà sách Minh Khai, nhà sách Nhân Văn, em xin cảm ơn những tác giả đã viết nên những cuốn sách rất bổ ích đối với chúng em, bên cạnh đó em xin cảm ơn những anh, chị, em trên các diễn đàn trên Internet, cộng đồng Java Việt Nam và cộng đồng mã nguồn mở. Giúp chúng em có thêm những thông tin bổ ích hơn để đảm bảo hơn tính toàn vẹn cho đồ án, bớt đi những sai xót trong quá trình làm đồ án. Chúng em xin hứa sẽ cố gắng hết sức mình để đồ án ít sai xót nhất, hoàn thành hiệu quả cao nhất, và sẽ cố gắng làm cho đồ án của chúng em được hồi đồng chấm điểm, khoa Công Nghệ Thông Tin và thầy Nguyễn Duy Thái cùng các thầy cô khác trong hội đồng phản biện đánh giá một cách cao nhất, và có tính ứng dụng cao. Không phụ lòng của khoa, quý thầy cô, quý công ty đã tích cực hỗ trợ cho chúng em trong viêc chuẩn bị, thực hiện và hoàn thành đồ án. Chúng em xin cảm ơn những lời nhận xét quý báu và những lời góp ý chân tình của hồi đồng phản biện, giáo viên hướng dẫn. Trong một bài báo cáo không tránh khỏi những thiếu xót,NTTULIBchúng em xin ghi nhận những lời góp ý cho bài báo cáo của chúng em, vì những lời góp ý thật đáng giá là hành trang, là bước đệm cho con đường tương lai của chúng em sau này. SV: Nguyễn Thành Trung – Nguyễn Thanh Tùng Trang 3
  3. NTTULIB NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN NTTULIB TP.HCMNgày Tháng Năm 2008 Giáo viên hướng dẫn Ký tên và ghi rõ họ tên Trang 4
  4. NTTULIB NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN NTTULIB TP.HCM, Ngày Tháng Năm 2008 Giáo viên phản biện Ký tên và ghi rõ họ tên Trang 5
  5. NTTULIB Cao Đẳng: Nguyễn Tất Thành Khoa Công Nghệ Thông Tin  Đề Cương Chi Tiết  Tên Đề Tài: Hiện thực chương trình “Chat Client và Chat Sever” Giáo viên hướng dẫn: Nguyễn Duy Thái Thời gian thực hiện: Từ ngày 09/04/08 đến khoảng cuối tháng 06/08 Sinh viên thực hiện: Nguyễn Thành Trung MSSV 306305151 Nguyễn Thanh Tùng MSSV 306305101 Loại đề tài: Viết chương trình ứng dụng Kề hoạch thực hiện - Mô tả: Sử dụng ngôn ngữ lập trình Java để xây dựng chat client và chat server (dựa trên opensource) - Yêu cầu: Việt hóa toàn bộ hai chương trình: là chat client (ta dùng chương trình dã có sẵn Spark) và hỗ trợ chat sever (ta dùng chương trình có sẵn Openfire) và cho kết nối với chương trình chat cua Yahoo (Yahoo Messenger). - Phương pháp thực hiện: Thực hiện theo kế hoạch của giáo viên hướng dẫn đưa ra, kết hợp với sự tự học của mổi thành viên và sự hợp tác chặt chẻ trong nhóm, kết hợp ý từng thành viên để NTTULIBthành một ý chung nhất. - Kết quả đạt được: Sau khi hoàn thành ta có thể có được một chương trình chat Client & chat Sever hoàn toàn ViệtNam thân thiện với người dùng, là một cầu nối thông tin trong một doanh nghuệp, bằng cách gửi những thông tin cho nhau một cách nhanh chóng. Và có thể gửi thông tin ra ngoài. Điều quan trọng là có thể thương mại hóa. Kế hoạch thự hiện chi tiết Trang 6
  6. NTTULIB - Tuần thứ nhất: tìm hiểu môi trường - Tuần thứ hai và thứ ba: config các thư viện để project không còn báo lổi “chưa config thư viện” - Tuần thứ tư, năm, sáu: Việt hóa chương trình - Tuần thứ bảy: chạy Demo để xem quá trình Việt hóa như thế nào để có hướng điều chỉnh thích hợp - Tuần thứ tám: chỉnh sửa lại giao diện. - Tuần thứ chín,mười: hoàn chỉnh chương trình. - Tuần thứ mười một: config source openfire, cài đặt database firebird với script của openfire, implement source openfire. - Tuần thứ mười hai: create database trên firebird, config source openfire. - Tuần mười ba, mười bốn: tiếp tục code openfire. - Tuần thứ mười lăm: code openfire, change database interface, review spark code. - Tuần thứ mười sáu: hiện thực openfire, chỉnh spark. - Tuần thứ mười bảy: hoàn thành báo cáo. */ Sự phân công công việc của từng thành viên không cố định mà linh hoạt theo từng tuần hay từng thời điểm khác nhau, tạo sự tò mò trong quá trình làm đề tài. Xác nhận cùa GVHD Tp.HCM Ngày 20/04/2008 Sinh Viên Thực Hiện NTTULIB SV1 SV2 Trang 7
  7. NTTULIB Mục Lục Giới thiệu  Tựa đề . 4  Lời nhận xét của giáo viên hướng dẫn . 5  Lời nhận xét của giáo viên phản biện 6  Lời cảm ơn 7  Mục lục . 8  Tóm tắt khóa luận . 9  Nguồn mở - Cuộc cách mạng của công nghiệp phần mềm 10 Nội dung Chương 1: Openfire 1.1 Openfile là gì? 16 1.2 Đặc điểm 16 1.2.1 Tổng quan XMPP . 17 1.2.2 Giải thích 17 1.2.3 Mở rộng . 17 1.3 những ưu điểm 18 1.4 Một tồn đọng . 19 1.5 Database của Openfire 20 1.6 Một số hình ảnh 29 Chương 2: Spark NTTULIB 2.1 Spark là gì? . 39 2. 2 Những đặc điểm của Spark . 39 2.3 Những tồn đọng của Spark 40 2.4 Một số hình ảnh kiến trúc của Spark 40 2.5 Hình ảnh Spark sau khi Việt hóa 45 */ Những hạn chế và hướng phát triển của đề tài . 53 Trang 8
  8. NTTULIB TÓM TẮT KHÓA LUẬN Thế giới các chương trình nhắn tin nhanh, Instant Messenger (IM), rất phong phú và không ngừng phát triển với các chương trình phổ dụng có hàng triệu người sử dụng như AIM (của AOL), MSN Messenger (của Microsoft), ICQ, Yahoo!Messenger nhưng điều đáng tiếc là các chương trình này dường như đã bỏ qua việc bản địa hóa cho mọi người có thể tiếp cận một cách thuận tiện .Vì vậy, sự ra đời của những phần mềm nguồn mở (Open Source Software) giúp ta có thể làm được, ở đây chúng ta sẽ hiện thực (bản địa hóa) chương trình chat client chat server, trong đó ta dùng Openfire để làm server là chương trình được phát triển bởi cty phần mềm nổi tiếng của Mỹ là Jive- software open source và về phía client chúng ta sẽ sử dụng một chương trình cũng opensource là Spark, Spark là cross-platform IM (Instant Messenger) khách hàng được sử dụng tốt nhất trong doanh nghiệp và trong tổ chức của mình. Spark nổi bật với sự hỗ trợ có sẵn cho group chat, sự hợp nhất kỹ thuật điện thoại và sự an toàn chắc chắn có sẵn. Kết hợp với Openfire Server, Spark là giải pháp dễ dàng nhất và tốt nhất để sử dụng an toàn những mạng IM công cộng. Nhờ sử dụng giao thức XMPP mà Openfire có những tính năng rất vượt trội: có thể kết nối tới nhiều cơ sở dữ liệu khác nhau, có thể là server cho từ 500 client trở lên, có thể hổ trợ chat ra rất nhiều mạng như MSN Messenger (của Microsoft), ICQ, Yahoo!Messenger bằng chính tài khoản của mạng Openfire hay của mạng khác. Bên cạnh đó Openfire cònNTTULIBcó những tồn đọng như chưa hỗ trợ hệ cơ sở dữ liệu FireBird, chưa hổ trợ Vietnamese, cộng đồng nguồn mở chưa biết đến nhiều . Trang 9
  9. NTTULIB Nguồn mở - Cuộc cách mạng của công nghiệp phần mềm Đến nay, khái niệm phần mềm nguồn mở đã không còn xa lạ với nhiều người và được ứng dụng ngày càng rộng rãi trong các chính phủ, các tổ chức và doanh nghiệp. Được đánh giá là một phương tiện hữu hiệu để san sẻ sự thịnh vượng của thế giới công nghiệp hoá sang các nước đang phát triển, sự ra đời của phần mềm nguồn mở thực sự là một cuộc cách mạng của công nghiệp phần mềm. 1/ Phần mềm nguồn mở đã ra đời như thế nào? Hơn 2 thập kỉ trước, khi máy tính lần đầu tiên vươn tới mã nguồn của các trường đại học và được truyền đi miễn phí, các nhà lập trình cho rằng, sẽ được trả tiền cho việc lập ra chương trình chứ không phải bản thân các chương trình đó. Sự việc thay đổi khi máy tính tiến đến thế giới thương mại và các công ty bắt đầu phát triển, cấp phép cho phần mềm dựa trên nền tảng thương mại, hạn chế sự truy cập mã nguồn. Vào năm 1984, Richard Stallman, một trong các nhân viên phòng thí nghiệm MIT đặt câu hỏi về hành động của các công ty thương mại phần mềm và bắt đầu cuộc vận động cho phần mềm miễn phí. Richard Stallman, nói: "Tôi có thể làm được gì? Tôi không có đảng phái chính trị nào hậu thuẫn đằng sau. Tôi không thể kì vọng chính phủ hay các tổ chức sẽ thay đổi chính sách của họ nhưng tôi biết cách viết phần mềm. Vì vậy tôi sẽ phát triển 1 hệ điều hành khác với sự giúp đỡ của bất kì ai muốn tham gia. Chúng tôi sẽ tôn trọng quyền tự do của bạn". Bước phát triển tiếp theoNTTULIBlà vào năm 1991. Một nhà lập trình Phần Lan 25 tuổi, Linus Torvalds đã phát triển nhân, thành phần cốt yếu của hệ điều hành Linux. Nó có thể hoạt động trên điện thoại di động cũng như những máy tính phức tạp. Và phát minh của Torvalds có thể download miễn phí. Theo The Linux Counter- 1 trang web chuyên về nguồn mở, ước tính 29 triệu máy tính đang dùng Linux song vẫn chưa có nhiều người hiểu một cách thấu đáo những Trang 10
  10. NTTULIB yếu tố thật sự tạo nên phần mềm nguồn mở và sự bùng nổ của khái niệm này. Vào năm 1998, The Open Source Initiative - một tổ chức xúc tiến phần mềm nguồn mở miễn phí được thành lập bởi 2 nhà lập trình Eric Raymond và Bruce Perens. Hai ông cho rằng, từ miễn phí nên thay bằng mở để tránh sự nhầm lẫn. Vì vậy, bằng cách đặt lại tên từ miễn phí thành phần mểm mở, Bruce Perens và đồng nghiệp của ông hi vọng rằng những hình mẫu doanh nghiệp mới sẽ được mở rộng: "Nguồn mở mang những phần mềm miễn phí đến cho các doanh nghiệp và khi chúng ta nói miễn phí, nó không hẳn mang nghĩa là miễn phí, nó nghiêng về nghĩa tự do", Bruce Pere nói. Ra đời không lâu, phần mềm nguồn mở đã trở thành một hiện tượng toàn cầu, đi từ vị trí tương đối mờ nhạt lên thành một trào lưu thời thượng trong một thời gian ngắn. Và người ta bắt đầu đặt câu hỏi: Có phải một cuộc cách mạng công nghệ đang diễn ra? Có phải ngày cuối của những công ty phần mềm có bản quyền đã đến? 2/ Phần mềm nguồn mở - Cuộc cách mạng của công nghiệp phần mềm? Hiện tại, hơn 90% toàn bộ máy tính và laptop trên thế giới chạy trên phần mềm độc quyền như của Apple hay Microsoft. Và dù muốn hay không, sự có mặt của phần mềm nguồn mở đã thực sự làm náo động thế giới phần mềm thương mại và độc quyền. Trước mối đe doạ này, các công ty lớn đã phải để ý đến những phần mềm nguồn mở và lên kế hoạch NTTULIBsống chung với nó. Vào tháng 2 năm 2005, công ty máy tính lớn IBM giới thiệu kế hoạch đầu tư 100 triệu đô la để ủng hộ phần mềm nguồn mở: "Sự quyết tâm của chúng tôi được tăng lên thông qua việc tham gia vào 150 dự án về phần mềm nguồn mở. Tại trung tâm công nghệ Linux, chúng tôi có hơn 700 nhà lập trình và kĩ sư làm việc cho các dự án này như 1 phần của cộng đồng nguồn mở. Nhưng tôi nghĩ lý do chính của sự Trang 11
  11. NTTULIB quyết tâm này là khách hàng đã yêu cầu nó và nhìn thấy giá trí trong nó", Adam Jollans đại diện của IBM nói. Còn chiến lược của HP là: Để khách hàng lựa chọn, nếu khách hàng muốn dùng phần mềm bản quyền, chúng tôi rất vui lòng làm theo; nếu họ chọn phần mềm mở, chúng tôi cũng sẽ cung cấp. Không chỉ Công ty phần cứng máy tính Fortune 500 và nhà phát triển phần mềm Sun Microsystems đều đang sử dụng nguồn mở. Mà thậm chí, ngay cả người khổng lồ Microsoft cũng tin vào khả năng bắt tay với cộng đồng nguồn mở. Jonathan Murray, một đại diện của Microsoft, nói: "Cộng đồng nguồn mở đã một lần nữa khuyến khích sự đổi mới phần mềm và nói cách thẳng thắn, chúng tôi cảm thấy rất vui”. Rõ ràng, sự ra đời của phần mềm nguồn mở thực sự là một cuộc cách mạng trong ngành công nghiệp phần mềm và chắc chắn, những người truyền bá cho phần mềm nguồn mở miễn phí sẽ vẫn tiếp tục cuộc hành trình của họ. Nhưng liệu những điều này có đồng nghĩa với việc phần mềm nguồn mở sẽ là cầu nối khoảng cách số? 3/ Các điều khoản phân phối của phần mềm mã nguồn mở 3.1 Tự do tái phân phối Bản quyền sẽ không giới hạn bất cứ ai khỏi việc bán hay đem cho phần mềm đó như là một thành phần củaNTTULIBbản phần mềm tổng hợp mà có chứa các chương trình từ nhiều nguồn khác nhau. Bản quyền sẽ không đòi hỏi việc phải giữ nguyên trạng phần mềm hay các phí tổn khác cho những thương vụ như vậy. 3.2 Mã nguồn Chương trình phải đi kèm mã nguồn, và phải cho phép phân phối cả mã nguồn cũng như dạng đã được biên dịch. Ở những nơi mà một số dạng sản phẩm không được Trang 12
  12. NTTULIB phân phối cùng mã nguồn thì phải có các cách thức được phổ biến rộng rãi nhằm lấy được mã nguồn với chi phí không cao hơn chi phí tái sản xuất hợp lý–khuyến khích cho phép tải về một cách miễn phí qua Internet. Vì mục đích của mã nguồn mở là tạo điều kiện để việc phát triển được thuận lợi nên cộng đồng này cũng yêu cầu sự sửa đổi mã nguồn cũng phải được tạo điều kiện thực hiện. Do đó, mã nguồn phải để dạng được ưa chuộng mà theo đó một lập trình viên sẽ có thể tham gia sửa đổi chương trình được. Việc biến đổi mã nguồn thành một dạng mã gây rối một cách có chủ tâm là không được phép. 3.3 Các chương trình phát sinh Bản quyền phải cho phép sửa đổi và các chương trình phát sinh từ đó, và phải cho phép chúng được phân phối dưới cùng các điều khoản như giấy phép của phần mềm gốc. 3.4 Tính toàn vẹn của mã nguồn cung cấp bởi Tác giả Bản quyền có thể hạn chế không cho phép mã nguồn được phân phối ở dạng đã được sửa đổi chỉ nếu như bản quyền cho phép phân phối “các file vá” cùng mã nguồn nhằm mục đích sửa đổi chương trình ở thời gian tạo sản phẩm. Bản quyền phải cho phép một cách tường minh việc phân phối phần mềm được tạo ra từ mã nguồn được sửa đổi. Bản quyền có thể yêu cầu các sản phẩm phát sinh phải mang một cái tên hay một số hiệNTTULIBu phiên bản khác so với phần mềm gốc. Theo đó, bản quyền mã nguồn mở phải đảm bảo rằng mã nguồn sẽ tồn tại ở dạng dễ dàng lấy được, nhưng có thể yêu cầu rằng nó sẽ được phân phối với cơ sở mã nguồn nguyên gốc ban đầu kèm với các bản vá. Theo cách này, những thay đổi “không chính thức” có thể xuất hiện ở hình thức sẵn sàng để tiếp cận nhưng được phân biệt một cách dễ dàng với mã nguồn cơ sở. Trang 13
  13. NTTULIB 3.5 Không có sự phân biệt đối xử giữa các cá nhân hay nhóm người Bản quyền phải không được phân biệt đối xử với bất cứ cá nhân hay nhóm người nào. Một số quốc gia, trong đó có Hoa Kì, ban hành điều luật hạn chế xuất khẩu một số loại phần mềm nhất định. Một giấy phép tuân thủ định nghĩa Mã Nguồn Mở có thể cảnh báo cho người sử dụng giấy phép về những hạn chế có thể được áp dụng và nhắc nhở họ là họ có nghĩa vụ tuân thủ luật pháp; tuy nhiên, bản quyền đó không được tự đặt ra các giới hạn như vậy. 3.6 Không phân biệt đối xử với bất cứ một lĩnh vực công việc nào Bản quyền phải không được cản trở bất cứ ai khỏi việc sử dụng chương trình trong một lĩnh vực công việc cụ thể. Ví dụ, nó không được cản trở không cho chương trình đó được dùng trong một doanh nghiệp, hay không được dùng cho việc nghiên cứu gien. 3.7 Việc phân phối bản quyền Các quyền lợi đi kèm với chương trình phải áp dụng cho tất cả những ai mà chương trình đó được tái phân phối đến đồng thời không cần phải thực thi một thứ giấy phép phụ thêm nào do các bên đó quy định. 3.8 Giấy phép phảNTTULIBi không được dành riêng cho một sản phẩm Các quyền lợi đi cùng chương trình đó phải không được phụ thuộc vào việc chương trình phải là một bộ phận một bản phân phối phần mềm cụ thể khác. Nếu chương trình được tách ra từ bản phân phối đó và được sử dụng hay phân phối dưới các điều khoản của giấy phép kèm theo chương trình thì tất cả các bên mà chương trình được phân phối đến cũng nên có được các quyền lợi ngang bằng như những quyền lợi được đưa ra theo bản phân phối phần mềm gốc. Trang 14
  14. NTTULIB 3.9 Bản quyền phải không được cản trở các phần mềm khác Bản quyền phải không được áp đặt các giới hạn lên các phần mềm khác mà được phân phối kèm với phần mềm có bản quyền đó. Ví dụ, bản quyền không được chỉ dẫn nhất quyết rằng tất cả các phần mềm khác được phân phối trên cùng một phương tiện thì phải là phần mềm mã nguồn mở. Đúng là GPL tuân thủ theo yêu cầu này. Phần mềm liên kết với các thư viện phân phối dưới GPL chỉ kế thừa GPL nếu nó tạo nên một sản phẩm đơn nhất, chứ không phải là bất cứ phần mềm nào mà chúng chỉ được phân phối đi kèm theo. 3.10 Giấy phép phải trung dung về mặt công nghệ Không cho phép tồn tại điều khoản nào của bản quyền khẳng định sự liên quan đến bất cứ một công nghệ riêng biệt hay một kiểu giao diện nào. Với những thông tin vừa nêu trên, chúng ta có thể thấy phần mềm mã nguồn mở là cơ hội cho việc nghiên cứu phát triển phần mềm sử dụng sức mạnh của trí tuệ cộng đồng. Nói cách khác, phần mềm mã nguồn mở là cơ hội tốt cho phát triển công nghệ thông tin, đảm bảo việc khai thác tốt, kể cả môi trường khác nhau và là cơ hội khai thác tối đa, tận dụng trí tuệ của thế giới, và mang lại các lợi ích cho cộng đồng. NTTULIB Trang 15
  15. NTTULIB Chương 1. Openfire 1.1 Openfile là gì? Openfire là một server dùng để hiện thực chat client server. Openfire (Trước đây là Wildfire) là một real time collaboration (RTC) server dual-licensed dưới nguồn mở GPL. Sử dụng giao thức mở rộng được chấp nhận duy nhất cho instant messaging (IM), XMPP (also called Jabber). Openfire cực kỳ dễ dàng đối với việc cài đặt và quản trị, trừ phi có những đề xuất rock-solid bảo mật và hiện thực nó. 1.2 Đặc điểm Openfire là chương trình được dùng làm server trong việc hiện thực hóa công việc chat client server rất mạnh hiện nay, và là sự lựa chọn hàng đầu trong việc hiện thực chat client server, bởi những tính năng vượt trội của nó như Server to Server Jivesoftwave là hang phần mềm nổi tiếng đã phát triển Openfire, cho biết Openfire có thể hỗ trợ trên 500 client để hiện thực việc trao đổi thông tin qua lại. Về mặt bản quyền(License) Openfire là Open Source GPL or Commercial, về phần Platforms thì Openfire hổ trợ hầu hết các Platforms như Windows, Linux, Unix, Mac OS X, về ngôn ngữ Openfire được phát triển trên nề ngôn ngữ Java vesion JDK 1.1.6 (Abigail)NTTULIB24 tháng 4, 1998 của hãng Sun Microsystems Inc. Java HotSpot(TM) Server VM. Hiện tại Openfire đang hổ trợ HSQL Database Engine 1.8.0. 1.2.1 Một vài đặc điểm về XMPP. XMPP(The Extensible Messaging and Presence Protocol) là một chuẩn mở rộng sử dụng XML cho việc vận chuyển message, trình bày nội dung, dịch vụ yêu cầu và đáp ứng (resquest -response services). Theo định dạng đươc phát triển bởi cộng Trang 16
  16. NTTULIB đồng Jabber từ năm 1999. 1.2.1.1Tổng quan XMPP: Mặc dù XMPP không thể kết hợp với các kiến trúc mạng đặc trưng, riêng biệt, nhưng cho đến giờ XMPP thừơng được dùng hiện thực một mô hình kiến trúc client-server trong đó 1 client sử dụng XMPP để truy xuất vào server thông qua một nghi thức TCP, và các server cũng giao tiếp với nhau thông qua 1 kết nối TCP. Mô hình tổng quan về kiến trúc(“-” thể hiện việc giao tiếp thông qua XMPP và “=” là giao tiếp bằng các phương thức khác) C1 S1 S2 C3 | C2 + G1===FN1===FC1 Giải thích: C1, C2, C3 là những XMPP clients S1, S2 là những XMPP servers G1 là một gateway() làm nhiệm vụ truyển đổi giữa giao thức XMPP và các giao thức khác. FN1 là một mạng messagingNTTULIBkhác không phải XMPP. FC1 là một client của mạng messaging không phải XMPP. XMPP là một protocol giúp chúng ta build 1 service chat mà có thể mềm dẻo chat được với bất kì server này làm việc trên cùng chuẩn (S1 nối với S2) ,ngoài ra co cho phép chat ra các mạng khác không sử dụng XMPP thông qua gateway G1 và đến các mạng chát khác. 1.2.1.2 Mở rộng Trang 17
  17. NTTULIB XMPP (also known as Jabber) là tiêu chuẩn mở hàng đầu (cho) sự có mặt và real- time messaging. Từ 2004 nó được xem là một tiêu chuẩn của IETF (cùng tổ chức với tiêu chuẩn hóa email và những giao thức mạng toàn cầu “World Wide Web protocols”). Một sự thiết lập của những giao thức mở rộng tới giao thức được bảo trì bởi Nền tảng Jabber Software Foundation. Ngày nay, XMPP được sử dụng bởi những công ty hàng đầu, hàng triệu trong số những người sử dụng worldwide và là sự lựa chọn tốt nhất cho real-time collaboration (RTC). Những tiêu chuẩn mở (Open standards) thì được nhận xét, đánh giá để đạt được sự thống nhất hoàn toàn trong tổ chức, khi phần mềm “hợp tác thời gian thực”( real time collaboration) làm việc không ghép nối với nhau. Cái này sẽ điều khiển môi trường trung gian tiếp đến như một công cụ hợp nhất và cung cấp lợi ích tuyệt vời nhất tới những người dùng cuối cùng. Hàng trăm sản phẩm phần mềm được mà sử dụng tương tác với XMPP, tỏ ra rất sát với thực tế. Ignite Realtime xúc tiến sự thông qua XMPP tốt nhất của sự thực thi giao thức, phát triển của những giao thức mở rộng mới, và trách nhiệm của người đi đầu là Jabber Software Foundation và thông qua Jive Software. 1.3 Những ưu điểm Openfire hiện tại với vesion mới nhất là Openfire 3.5.2, là vesion tương đối hoàn thiện phát huy những ưu điểm, và khắc phục những nhược điểm còn thiếu xót của những vesion trước.Openfire hổ trợ rất nhiều ngôn ngữ tự nhiên như Czech, Deutsh, English, Nederlands, FranceNTTULIB, Polski, Chinese, Openfire còn hổ trợ nhiều Database như MySQL, HSQL Engine, Oracle, Mycrosoft SQL Server, Postgre SQL IBM DB2, Bên cạnh đó Openfire còn hỗ trợ rất nhiều Plugins như, Asterisk-IM Openfire Plugin, Broadcast, Client Control, Content Filter, Email Listener, Fastpath Webchat, IM Gateway, MotD (Message of the Day), Packet Filter, SIP Phone Plugin, User Import Export, Trang 18
  18. NTTULIB 1.4 Những tồn đọng Tuy rằng Openfire có hỗ trợ nhiều Database khác nhau, nhưng chưa hỗ trợ Database Firebird, mà Database Firebird là một nguồn mở (Free), trong khi đó các Database không phải là nguồn mở( No Free), mà Openfire là một nguồn mở. Vì thế sự kết hợp giữa Openfire và Firebird là một lẻ tất nhiên, trong đề tài này chúng ta sẽ cố gắng kết hợp hai nguồn mở này lại để cho tất cả chỉ là miễn phí. NTTULIB Trang 19
  19. NTTULIB 1.5 Database của openfire 1.5.1 Mô tả bảng User PRIMARY KEY Field Name Field Type Length Not Null X User name Varchar 64 X Plain Password Varchar 32 Encrypted Password Vachar 255 Name Varchar 100 Email Varchar CreationDate Char 15 X ModificationDate Char 15 X 1.5.2 Mô tả bảng UserProp PRIMARY KEY Field Name Field Type Length Not Null X User name Varchar 64 X X Name Varchar 100 X PropValue Text X 1.5.3 Mô tả bảng UserFlag NTTULIB PRIMARY KEY Field Name Field Type Length Not Null X User name Varchar 64 X X Name Varchar 100 X StartTime Char 15 EndTime Char 15 Trang 20
  20. NTTULIB 1.5.4 Mô tả bảng Group PRIMARY KEY Field Name Field Type Length Not Null X GroupName Vachar 50 X Description Vachar 255 1.5.5 Mô tả bảng GroupProp PRIMARY KEY Field Name Field Type Length Not Null X GroupName Vachar 50 X X Name Vachar 100 X PropValue Text X 1.5.6 Mô tả bảng UserGroup PRIMARY KEY Field Name Field Type Length Not Null X GroupName Vachar 50 X X Name Vachar 100 X X Administrator TINYINT X NTTULIB Trang 21
  21. NTTULIB 1.5.7 Mô tả bảng Offline PRIMARY KEY Field Name Field Type Length Not Null X username Vachar 64 X X messageID BIGINT X creationDate char 15 X messageSize Integer X stanza Text X 1.5.8 Mô tả bảng Private PRIMARY KEY Field Name Field Type Length Not Null X username Vachar 64 X X name Vachar 100 X X namespace Vachar 200 X privateData Text 100 X 1.5.9 Mô tả bảng Presence NTTULIB PRIMARY KEY Field Name Field Type Length Not Null X username Vachar 64 X offlinePresence Text 100 offlineDate Char 15 X Trang 22
  22. NTTULIB 1.5.10 Mô tả bảng Roster PRIMARY KEY Field Name Field Type Length Not Null X rosterID Bigint X username Varchar 64 X jid Varchar 1024 X sub Tinyint X ask Tinyint X recv Tinyint X nick Varchar 255 X 1.5.11 Mô tả bảng RosterGroups PRIMARY KEY Field Name Field Type Length Not Null X rosterID Bigint 64 X X rank Tinyint X groupName Varchar 1024 X 1.5.12 Mô tả bảng Vcard PRIMARY KEY Field Name Field Type Length Not Null X usernaNTTULIBme Varchar 64 X vcard Mediumtext X 1.5.13 Mô tả bảng ID PRIMARY KEY Field Name Field Type Length Not Null X idType Integer X id Bigint X Trang 23
  23. NTTULIB 1.5.14 Mô tả bảng Version PRIMARY KEY Field Name Field Type Length Not Null X name Varchar 50 X version Integer X 1.5.15 Mô tả bảng ExtComponentConf PRIMARY KEY Field Name Field Type Length Not Null X subdomain Varchar 255 X secret Varchar 255 permission Varchar 10 X 1.5.16 Mô tả bảng RemoteServerConf PRIMARY KEY Field Name Field Type Length Not Null X xmppDomain Varchar 255 X remotePort Integer permission Varchar 10 X 1.5.17 Mô tả bảng PrivacyNTTULIBList PRIMARY KEY Field Name Field Type Length Not Null X username Varchar 64 X X name Varchar 100 X isDefault Tinyint X list Text 50 X Trang 24
  24. NTTULIB 1.5.18 Mô tả bảng mucRoom PRIMARY Field Name Field Type Length Not Null Null KEY roomID Bigint X creationDate Char 15 X modificationDate Char 15 X X name Varchar 50 X naturalName Varchar 255 X description Varchar 255 lockedDate Char 15 X emptyDate Char 15 X canChangeSubject Tinyint X maxUsers Integer X publicRoom Tinyint X moderated Tinyint X membersOnly Tinyint X canInvite Tinyint X roomPassword Vachar 50 X canDiscoverJID Tinyint X logEnabled Tinyint X subjectNTTULIBVachar 100 X rolesToBroadcas Tinyint X useReservedNick Tinyint X canChangeNick Tinyint X canRegister Tinyint X Trang 25
  25. NTTULIB 1.5.19 Mô tả bảng mucRoomProp PRIMARY KEY Field Name Field Type Length Not Null X roomID Bigint X X name Varchar 100 X propValue Text 5 X 1.5.20 Mô tả bảng mucAffiliation PRIMARY KEY Field Name Field Type Length Not Null X roomID Bigint X X jid Text 70 X affiliation Tinyint X 1.5.21 Mô tả bảng mucMember PRIMARY Field Field Type Length Not Null Null KEY Name X roomID Bigint X X jid Text 70 X nickname Varchar 255 X firstNamNTTULIBe Varchar 100 X lastName Varchar 100 X url Varchar 100 X email Varchar 100 X faqentry Varchar 100 X Trang 26
  26. NTTULIB 1.5.22 Mô tả bảng pubsubNode PRIMARY Field Name Field Type Length Not Null KEY Null serviceID Varchar 100 X nodeID Varchar 100 X leaf Tinyint 15 X X creationDate Char 15 X modificationDate Char 15 X parent Varchar 100 X deliverPayloads Tinyint 15 X maxPayloadSize Integer 15 X persistItems Tinyint X maxItems Tinyint X notifyConfigChanges Tinyint X notifyDelete Tinyint X notifyRetract Tinyint X presenceBased Tinyint X sendItemSubscribe Tinyint X publisherModel Vachar 15 X subscriptionEnabled Tinyint X configSubscriptiNTTULIBon Tinyint X accessModel Vachar 10 X payloadType Vachar 100 X bodyXSLT Vachar 100 X dataformXSLT Vachar 100 X creator Vachar 255 X description Vachar 255 X Trang 27
  27. NTTULIB language Vachar 255 X name Vachar 50 X replyPolicy Vachar 15 X associationPolicy Vachar 15 X maxLeafNodes Integer X 1.5.22 Mô tả bảng ucConversationLog PRIMARY Field Field Type Length Not Null Null KEY Name roomID Bigint X sender Text 100 X nickname Varchar 255 X logTime Char 15 X subject Varchar 255 X body Text 25 X NTTULIB Trang 28
  28. NTTULIB 1.6 Một số hình ảnh Trang cài đặt của Openfire; chọn ngôn ngữ. NTTULIB Trang 29
  29. NTTULIB Trang cài đặt cho Openfire; thiết lập cho máy chủ. NTTULIB Trang 30
  30. NTTULIB Trang cài đặt cho openfire; thiết lập cơ sỡ dữ liệu. NTTULIB Trang 31
  31. NTTULIB Trang cài đặt cho Openfire; thiết lập tập tin quan trọng trong thiết lập cơ sỡ dữ liệu. NTTULIB Trang 32
  32. NTTULIB Trang cài đặt cho Openfire; tạo tài khoản cho người quản trị. NTTULIB Trang 33
  33. NTTULIB Trang cài đặt cho Openfire; và cài đặt đã hoàn thành. NTTULIB Trang 34
  34. NTTULIB Tiếp theo là dăng nhập vào tài khoản quản trị. NTTULIB Trang 35
  35. NTTULIB Sau khi đăng nhập là trang thuộc tính máy chủ:gồm những thông tin Thời gian làm việc của máy chủ Phiên bản: Openfire 3.5.0 Danh mục máy chủ: C:\Program Files\Openfire Tên máy chủ: trung Phần cứng Phiên bản Java:NTTULIB1.6.0_03 Sun Microsystems Inc. Java HotSpot(TM) Server VM. Trang 36
  36. NTTULIB Thiết lập các cổng cho máy chủ; có rất nhiều cổng được sữ dụng như 5222, 5223, 7777; 7070 Cổng tiêu chuẩn cho máy khách kết nối đến máy chủ. Kết nối có thể hoặc không thể mã hóa, cổng được dùng co máy khách kết nối tới máy chủ sử dụng phương thức SSL cũ. NTTULIB Trang 37
  37. NTTULIB Có thể chỉnh sửa thuộc tính cho máy chủ; chúng ta có thể chỉnh sửa các thông số về thuộc tính của máy chủ như: Tên máy chủ Cổng Máy chủ này-đến-máy chủ kia Cổng thành phần Cổng máy khác Cấp phép cho SSL Cổng máy khách SSL NTTULIB Bảng quản lý điều khiển cổng Quản lý điều khiển cổng bảo đảm Trang 38
  38. NTTULIB Chương 2 Spark 2.1 Spark là gì? Spark là một chương trình dùng làm client trong quá trình hiện thực chát client server. Spark cũng là một mã nguồn mở. 2.2 Những đặc điểm Spark là một client rất linh hoạt, làm rất tốt vai trò client của mình, là sự lựa chọn hàng đầu hiện nay trong việc hiện thực chat client server. Spark hỗ trợ rất nhiều ngôn ngữ tự nhiên khoảng 13 ngôn ngữ. Chat, nhắn tin nhanh và chat tập thể (tạo các chat-room). Xin giới thiệu những đặc tính nổi bật nhất của chương trình. + Đăng ký vào mạng cực kỳ đơn giản. + Dễ dàng sử dụng cho người mới dùng, nhưng cũng dễ dàng tùy biến với hơn 60 lựa chọn theo nhu cầu riêng của từng người. + Gần 100 dấu hiệu vui có thể hổ trợ bằng tiếng Việt giúp cho bạn biểu hiện mọi cảm xúc của mình khi trò chuyện. + Chức năng "Ẩn Dấu" (Stealth) giúp bạn chỉ "tàng hình" với từng đối tượng lựa chọn. + Biểu thị tình trạng kết nối , tự động nhận biết và thể hiện siêu liên kết trong thông điệp kết nối. NTTULIB + Được phát triển trên giao thức nhắn tin mã nguồn mở, mạnh mẽ và uyển chuyển nhất hiện nay: XMPP/Jabber™. Trang 39
  39. NTTULIB 2.3 Tồn đọng Tuy Spark hỗ trợ rất nhiều ngôn ngữ tự nhiên nhưng chưa có hỗ trợ Vietnamese, vì thế đây cũng là một thiếu xót của spark, vì cộng đồng chat của Việt Nam rất lớn, trong đề tài này chúng ta sẽ việt hóa Spark để hỗ trợ tiếng Việt. 2.4 Một số hình ảnh kiến trúc cùa Spark NTTULIB Trang 40
  40. NTTULIB NTTULIB Trang 41
  41. NTTULIB NTTULIB Trang 42
  42. NTTULIB NTTULIB Trang 43
  43. NTTULIB NTTULIB Trang 44
  44. NTTULIB 2.5 Hình ảnh Spark sau khi Việt hóa Giao diện đăng nhập của Spark NTTULIB Trang 45
  45. NTTULIB Đang kiểm tra việc đăng nhập có hợp lệ không. NTTULIB Trang 46
  46. NTTULIB NTTULIB Giao diện chính sau khi đã đanng nhập thành công. Trang 47
  47. NTTULIB NTTULIB Giao diện thêm danh sách các địa chỉ cần liên lạc. Trang 48
  48. NTTULIB Có thể tùy chọn các trạng NTTULIBthái khi đã đăng nhập. Trang 49
  49. NTTULIB Có thể gửi cùng một thôngNTTULIBbáo đến cho rất nhiều nhóm trong danh sách địa chỉ Trang 50
  50. NTTULIB Có thể soạn thảo và lưu trữ những ghi chú lại NTTULIB Trang 51
  51. NTTULIB NTTULIB Có thể gửi những lời bình luận đến tất cả mọi người trong danh sách địa chỉ Trang 52
  52. NTTULIB Những hạn chế và hướng phát triển của đề tài. +/ Hạn chế: chưa hiện thực được viêc chat ckient – server trên một qui mô lớn( mạng của một công ty lớn chẳng hạn) để xác định xem khả năng hỗ trợ client của openfire như thế nào. Chưa kết nối Openfire với nhiều database khác nhau, viêc Việt hóa chưa triệt để vì gặp phãi như đoạn hack code không thể tìm ra được +/ Hướng phát triển: Trong một công ty, doanh nghiệp hay một tổ chức có thể tích hợp vào Spark và Openfire chức năng nhắc nhở khi có sự kiện gì đó(khi có một kế hoạch mới vừa dưa ra từ cấp quản lý, nhắc nhở khi đến thời điểm diễn ra cuộc hợp, hoặc lập lịch của cá nhân khi xảy ra sự kiện như đám cưới, sinh nhật, lể kỉ niệm chẵn hạn ) Có thể tích chat hay gửi thông điệp hợp từ Spark và openfire đến SMS, và ngược lại có thể nhắn tin từ SMS đến Spark Hết NTTULIB Trang 53