You are on page 1of 20

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────

TIỂU LUẬN HỆ PHÂN TÁN
ĐỀ 15
P2P-BASED SOFTWARE ENGINEERING MANAGEMENT
QUẢN LÝ KỸ NGHỆ PHẦN MỀM DỰA TRÊN P2P

Giáo viên hướng dẫn : TS Hà Quốc Trung
Học viên thực hiện

: Nhóm 4
1. Phạm Xuân Hào
2. Lê Đình An
3. Trần Đắc Long
4. Trần Nguyên Bản
5. Nguyễn Văn Hiệp

Lớp

HÀ NỘI 12-2011

: 11BCNTT

Tiểu luận Hệ phân tán

Quản lý kỹ nghệ phần mềm dựa trên P2P

Mục lục
Tóm tắt...................................................................................................................... 3
I. Giới thiệu...............................................................................................................3
II. Tóm lược cách tiếp cận.........................................................................................4
III. Các lớp của mô hình quản lý dựa trên P2P..........................................................5
III.1. Lớp nền tảng cơ bản.........................................................................................6
III.2. Lớp dịch vụ.......................................................................................................6
III.3. Lớp ứng dụng...................................................................................................6
IV. Những công nghệ chủ chốt..................................................................................7
IV.1. Công nghệ quản lý dựa trên nhóm các Peer......................................................7
IV.2. Công nghệ P2P trong việc quản lý mã nguồn...................................................9
IV.3. Trực quan hóa phần mềm................................................................................10
V. Kiểm tra hiệu năng..............................................................................................12
VI. Kết luận và hướng phát triển trong tương lai.....................................................12
VII. Mở rộng...........................................................................................................13
VII.1. Trực quan hóa phần mềm (Software visualization).......................................13
VII.2. Giới thiệu nền tảng JXTA (juxtapose)...........................................................13
VIII. Tài liệu tham khảo..........................................................................................18

Giáo viên hướng dẫn: TS Hà Quốc Trung

Học viên thực hiện: Nhóm 4 - Lớp11BCNTT

2/20

Khả năng của phương thức P2P trong việc xử lí những công việc phân tán diện rộng. Phương pháp được đề xuất ở đây tận dụng được toàn bộ ưu điểm của các tài nguyên tính toán. làm thỏa mãn những yêu cầu trong sự phát triển của mạng. Những hệ thống quản lý kĩ nghệ phần mềm hiện này đều có một máy chủ để hoàn thành những nhiệm vụ thiết yếu trên. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 .Lớp11BCNTT 3/20 . nhưng sự ghép nhóm của nhiều máy khách có thể cung cấp một năng lực tính toán lớn đáng kể. I. Mặc dù vẫn có một máy chủ trong mạng. Và trong nhiều trường hợp thậm chí còn có thể vượt qua cả các máy chủ hiệu năng cao. Bằng việc tìm hiểu những đặc tính của P2P. Ngoài ra. khả năng tính toán của mỗi máy khách tăng lên rất nhanh. Bài báo này đề xuất quản lý kĩ nghệ phần mềm bằng một phương thức dựa trên cấu trúc P2P.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P Tóm tắt Với sự phát triển nhanh chóng của các công nghệ mạng. Mặc dù. khả năng tính toán của mỗi máy khách nhỏ hơn nhiều các máy chủ hiệu năng cao. và trực quan phần mềm (software visualization). và có thể tăng hiệu năng của hệ thống. hệ thống của chúng tôi tạo lập những “Peer Group” (nhóm peer). Tuy nhiên. dựa trên mô hình Client/Server. Những phương thức quản lý kĩ nghệ phần mềm truyền thống. Vòng đời phát triển phần mềm thực tế là một quá trình hoàn thiện tất cả các loại tài liệu liên quan tới phần mềm. Theo cách này. quản lý phần mềm ngày càng trở nên phức tạp. Phương thức này cung cấp cho chúng tôi một hướng tiếp cận để giải quyết vấn đề quản lý quá trình phát triển phần mềm. quy mô của các mạng máy tính ngày càng lớn hơn. tất cả những kĩ thuật này đều phụ thuộc vào một máy chủ. Giới thiệu Ngày nay. việc phát triển phần mềm diện rất rộng gặp phải những khó khăn đáng kể trong việc quản lý một số lượng lớn các tệp tin. Phương thức P2P là một phương thức tính toán được phát triển từ những năm đầu của thập kỉ 1990 và gần đây được sử dụng vô cùng rộng rãi. đã không đủ khả năng đáp ứng cho việc phát triển phần mềm trên phạm vi rộng lớn. Với sự phát triển của công nghệ phần cứng. Nền tảng của chúng tôi khắc phục điểm yếu “thắt cổ chai” tồn tại trong kiến trúc Client/Server cũ. Những công cụ dùng trong quản lý mã nguồn có thể kể đến như Win CVS. như là đơn vị cơ bản để xây dựng nên những dịch vụ bao gồm: quản lý mã nguồn. nhưng máy chủ này chỉ cung cấp chức năng đánh chỉ mục (gọi là máy chủ mục lục) và không lưu trữ tài liệu. Tài liệu và mã nguồn được lưu dưới dạng các tệp tin. khách/chủ cho đến mô hình khách/chủ nhiều lớp và mô hình trình duyệt/máy chủ. Tuy nhiên. những gánh nặng của máy chủ sẽ được chia sẻ với sức mạnh của toàn hệ thống. phân công công việc. Cách thức tính toán đã thực sự phát triển từ những mô hình truyền thống máy đầu/cuối. bài báo này cũng gồm một số kết quả về việc cải thiện hiệu năng đo được trong hệ thống thử nghiệm của chúng tôi.

để cho những người phát triển có thể nhìn toàn cục được quá trình phát triển phần mềm và hiểu về tiến trình theo thời gian thực. Tệp tin thực sự sẽ không cần gửi tới máy chủ. Dĩ nhiên. Hơn nữa. chúng tôi sẽ sử dụng một phần của công nghệ trực quan hóa. những yêu cầu thay đổi thường xuyên. có một số phương pháp có thể giải quyết vấn đề về tính nhất quán này. Họ không có nhiều thời gian để sửa lại những mẫu hệ thống có liên quan. Điều này có thể tạo ra sự mâu thuẫn giữa những tài liệu. Thêm vào đó. bảng biểu đã được tạo ra và những mã nguồn ở thời điểm hiện tại. Mỗi điểm (Peer) thuộc một nhóm cung cấp dịch vụ. Với sự mở rộng dần dần của phần mềm trên diện rộng. II. việc tạo ra mỗi phiên bản mới của tài liệu sẽ tạo ra một phiên bản trong Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . và thực hiện những dịch vụ tùy thuộc vào tải của máy và khả năng phản hồi của nó tới mạng. Điều này rất bất tiện cho những người phát triển cũng như đe dọa sự an toàn của hệ thống. Ví dụ với một tài liệu xác định. theo các tham chiếu [9]-[14] trong hệ thống của chúng tôi. hay những bảng biểu đã được tạo ra bởi các công cụ đã được dùng trước đó. Trong cách tiếp cận của chúng tôi. mỗi peer sẽ chỉ chạy những dịch vụ thuộc về nhóm của nó. và do đó toàn bộ dự án sẽ ở tình trạng rủi ro cao khi máy chủ quá tải. trong bài báo này chúng tôi đề xuất kĩ thuật dựa trên P2P để quản lý toàn bộ kĩ nghệ phần mềm. Điều này đạt ra yêu cầu rằng môi trường phát triển phần mềm và các công cụ quản lý phải dễ dàng sử dụng với phần lớn những người phát triển. … Tất cả đều sử dụng và tuân theo những phương thức quản lý cố điển kể trên. Trong nhiều trường hợp. những công cụ này sẽ không còn phù hợp cho việc phát triển những phần mềm phức tạp. Do đó. nhà phát triển tốn nhiều thời gian và công sức trong việc lập trình.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P VSS(Visual SourceSafe).Lớp11BCNTT 4/20 . Trong cùng thời gian đó. Tóm lược cách tiếp cận Trong tiến trình phát triển phần mềm. Vì những lý do trên. do đó rất khó cho người dùng đưa ra toàn bộ các yêu cầu ngay từ đầu. Chúng tôi cũng giới thiệu trong bài báo này các khái niệm về “vai trò”(role) và “tài liệu được chú ý” (interested document) để giúp mỗi peer cung cấp cho những peer khác các dịch vụ liên quan tới tài liệu nội bộ của mình. Từ việc quản lý mã nguồn một cách tổng thể. việc tạo ra mỗi phiên bản mới sẽ chỉ là gửi một bản miêu tả tóm tắt tới máy chủ mục lục. một máy chủ nào đó gặp sự cố thì sẽ gây ảnh hưởng tới toàn bộ tiến trình phát triển của dự án. và có thể tạo ra những mất mát không thể định giá được. Tuy nhiên sẽ là không thể yêu cầu tất cả mọi người trong dự án phải đạt tiêu chuẩn phát triển phần mềm cao. Từ đó gây nhiều điểm rắc rối trong bảo trì hệ thống. kiến trúc hệ thống dựa trên Client/Server có thể sẽ tạo lên máy chủ phải chịu tải lớn. vì những lí do bảo mật những người phát triển có thể nằm sau những tường lửa khác nhau và do đó có thể phải sử dụng các phương thức VPN để kết nối với máy chủ trung tâm. Ví dụ. chúng tôi đề xuất một giải pháp mới để quản lý toàn bộ những tiến trình trong phát triển phần mềm sử dụng kĩ thuật P2P.

Với hiệu năng cao của toàn bộ hệ thống.Lớp11BCNTT 5/20 . nhưng nó phải có một số thông tin tóm tắt về tài liệu. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . Một nhiệm vụ khác là để thực hiện việc điều khiển tài liệu để đánh chỉ mục các chức năng. việc trực quan hóa 3D toàn bộ hệ thống là hoàn toàn có thể. Công việc chính của máy chủ mục lục gồm hai nhiệm vụ sau. Các lớp của mô hình quản lý dựa trên P2P Hệ thống được dựa trên nền tảng JXTA (được nêu giới thiệu trong phần Mở rộng). Các peer được phân tán cân bằng trong toàn mạng. lớp dịch vụ (Service layer) và lớp ứng dụng (Application layer). Toàn bộ hệ thống chỉ cần một “máy chủ mục lục” (Catalog server). Các peer được định vị trong cùng một nhóm sẽ cung cấp cùng các dịch vụ ra bên ngoài. và được triển khai với ngôn ngữ Microsoft C#. có thể gọi là Super Peer (siêu peer). Kiến trúc hình học của toàn bộ hệ thống sẽ được chỉ ra trong hình 1 phía dưới. Máy chủ mục lục không cần phải lưu trữ vật lý các tài liệu. giữ toàn bộ năng lực tính toán của máy chủ đó.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P dịch vụ dữ liệu cục bộ của nhóm peer. Nó không chỉ làm cho việc quản lý phát triển trở lên thuận lợi hơn mà còn cho phép mỗi peer sử dụng được toàn bộ sức mạnh tính toán của mình. Toàn bộ hệ thống có thể chia làm 3 lớp: lớp nền tảng cơ bản (Basic platform layer). một bản sao chép các thông tin của nhóm sẽ được gửi về máy chủ. Hệ thống quản lý kĩ nghệ phần mềm được giới thiệu ở đây sẽ làm rất nhiều công việc trong tiến trình quản lý công nghệ phần mềm. và chúng sẽ thuộc về những nhóm logic khác nhau bởi vì chúng thuộc những nhóm mạng khác nhau. Mỗi nhóm sẽ chịu trách nhiệm quản lý những hệ thống con của nó và toàn bộ hệ thống sẽ được quản lý bởi máy chủ mục lục. mà không cần gửi tài liệu đến máy chủ. Hình 1 Mô hình chung của Quản lý phần mềm dựa P2P III. Một là đóng vai trò một nơi lưu trữ thông tin về nhóm như là cấu hình của nhóm và các dịch vụ. Khi một nhóm được cài đặt.

Sau khi đã vượt qua bước kiểm tra sự hợp lệ. . chỉnh sửa chúng và chuyển chúng cho những dịch vụ cụ thể trong lớp nền tảng cơ bản. Tuy nhiên. Lớp nền tảng cơ bản Mô hình Client/Server truyền thống có một ưu điểm hiển nhiên đó là dữ liệu tập trung nên dễ quản lý. Khi hệ thống P2P khởi động.Lớp11BCNTT 6/20 .III. Lớp dịch vụ Giao tiếp trong hệ thống được dựa trên các bản tin và các tin quảng bá.2. và giải quyết giao thức bằng cách dùng giao thức JXTA. thì do các tài nguyên tương đối phân tán nên độ khó trong việc quản lý chúng sẽ tăng lên.1. Máy chủ mục lục sẽ duy trì bảng trạng thái cho tất cả các peer. nó sẽ gửi một bản tin tới máy chủ mục lục để thay đổi trạng thái của bản thân nó. quản lý peer nào đang chạy. Điều này cần đến một giao thức mà sẽ làm cho một sự kiện xảy ra với peer này sẽ được biết đến cả bởi những peer còn lại. Lớp dịch vụ có nhiệm vụ chính là phân tích hàng loạt các câu lệnh đến từ lớp ứng dụng bằng cách tách các bản tin và các tin quảng bá từ dạng XML. Vào thời điểm mà peer rời khỏi mạng.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P Hình 2 Các lớp của mô hình quản lý dựa trên P2P . hệ thống của chúng tôi sẽ không cung cấp khả năng đăng kí các peer online (trực tuyến). khi sử dụng kĩ thuật P2P trong hệ thống quản lý phần mềm của chúng tôi. Để dễ kiểm soát. Những người quản lý dự án sẽ đăng kí một peer với một ID (định danh) và nhóm. Lớp dịch vụ này thực hiện đầy đủ việc giải quyết các tin quảng bá. mọi peer trong mạng sẽ được tìm kiếm nhóm mà nó thuộc vào đó bằng một giá trị duy nhất “Peer ID”. peer sẽ nằm trong mạng P2P. Nó giống như là một cầu nối nằm giữa lớp ứng dụng và lớp nền tảng cơ bản. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 .III. Bất cứ thời điểm nào thì một peer cũng có thể gia nhập vào mạng hoặc rời khỏi mạng.

các thành viên hợp lệ sẽ nhận được mã của dịch vụ nhóm và dữ liệu. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . trong hệ thống của chúng tôi. Khác với trong JXTA nơi mà nhóm peer là bảo vệ ảo (virtual guard). một bản tin quảng bá trực tuyến sẽ được tung ra trong mạng. đồng thời dịch vụ và dữ liệu của nhóm trở lên thích hợp hơn. IV. quản lý các vai trò (khái niệm được định nghĩa trong hệ thống quản lý kĩ nghệ phần mềm của chúng tôi). Sau đó. Thường thì.Lớp11BCNTT 7/20 . v. Do đó. Điều này làm cho nhóm trở lên cụ thể hơn.. bằng cách sử dụng các dịch vụ lớp dịch vụ được lớp dịch vụ cung cấp. kiểu bảo vệ ảo này được ấn định với một nhóm dự án thực. các thành viên trong cùng một nhóm thường có quan tâm tương tự nhau và có mối quan hệ gần gũi.v… Mục đích của chúng tôi là giao tiếp và quản lý.III. Những công nghệ chủ chốt . Khi một peer đăng kí trong mạng. dịch vụ nhóm sẽ là những thực thể cụ thể mà tất cả các thành viên trong nhóm có thể tới ‘thăm’ được. dịch vụ nhóm sẽ được coi như là một điểm điều khiển đơn với hành vi không đổi. nhiều ứng dụng khác của lớp này có thể thực hiện bởi một dịch vụ web. Trong môi trường phát triển phần mềm. tức 1 nhóm ảo. tức mọi peer trong nhóm đều cung cấp các dịch vụ của nhóm. Trong các nhóm dịch vụ và dữ liệu. Cuối cùng.IV. Mỗi Peer sẽ cung cấp việc kiểm tra hợp lệ. và các thành viên trong mỗi nhóm cộng tác để hoàn thành từng phần của các chức năng. phục vụ đăng nhập vào mạng.3. lớp ứng dụng có thể thực hiện những chức năng sau đây: điều khiển phiên bản trong quản lý mã của kĩ nghệ phần mềm. Công nghệ quản lý dựa trên nhóm các Peer Trong một đội phát triển phần mềm trên diện rộng có nhiều nhóm phát triển khác nhau. hiển thị phần mềm trong tiến trình phát triển. Lớp ứng dụng Dựa trên mạng P2P. các nhóm peer được tạo ra cho nhóm con của dự án.1. các dịch vụ và tài liệu hay dữ liệu mà được họ sử dụng thường rất giống nhau.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P .

không kể đến vị trí mà peer đăng nhập vào. Các peer trong nhóm đã được ghép tuyệt đối với nhau. Bởi vì các dịch vụ trên mỗi peer cung cấp trong mỗi nhóm giống nhau là đồng nhất.Lớp11BCNTT 8/20 . Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . cung cấp những dịch vụ đồng nhất và quản lý các dữ liệu giống nhau. nó sẽ gửi một bản tin quảng bá để tìm kiếm cho nhóm của nó. và tạo thành một nhóm logic. Khi một peer mới tham gia vào trong mạng.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P Hình 3 Hình ảnh các Peer và dịch vụ của nhóm Những điều trên được trình bày trên hình 3. Các peer trong cùng một nhóm sẽ gửi các phản hồi sau khi nhận được yêu cầu. Peer thuộc về cùng nhóm có cùng một chỉ số nhóm (ID) duy nhất. nên các dịch vụ mà mỗi peer trong nhóm cung cấp sẽ giống nhau. Peer mới sẽ chọn ra peer có phản hồi nhanh nhất để đăng nhập.

khi “lease” lớn hơn 25 ms. Khi một yêu cầu được gửi tới lần đầu.2. nếu “lease’ không được thiết lập đúng thì hệ thống có thể rơi vào tình trạng hiệu năng thấp bởi vì nó làm tăng tải của máy chủ mục lục. Với khoảng thời gian “lease” được tăng lên thì tải của máy chủ mục lục sẽ giảm xuống. . Bởi vì những thông tin về các dịch vụ cơ bản và các thông tin đăng kí của mỗi nhóm được gửi lên phía trên máy chủ mục lục. nội dung của nó sẽ nhanh chóng được phản hồi. Do đó.IV. tải của máy chủ sẽ hầu như không thay đổi. nếu peer ban đầu đợi đến khi có phản hồi. Một “lease” là một thuộc tính của nhóm và tất cả các peer trong nhóm này sẽ có cùng “lease”. Công nghệ P2P trong việc quản lý mã nguồn Quản lý mã nguồn là một phần quan trọng trong kĩ nghệ phần mềm. Mỗi khi thời gian giảm đi tới zero. và yêu cầu sẽ được gửi lại.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P Hình 4 Một bài kiểm tra hiệu năng Vì giới hạn của băng thông mạng. hiệu năng hệ thống sẽ bị giảm xuống. thì đồng hồ sẽ bắt đầu đếm ngược. máy chủ mục lục sẽ sẵn sàng cung cấp thông tin nhóm.Lớp11BCNTT 9/20 . yêu cầu sẽ được chuyển trực tiếp tới phía máy chủ mục lục. Kĩ thuật “lease” được sử dụng để khắc phục tình trạng này. Tuy nhiên. Một bài kiểm tra hiệu năng thể hiện trong hình 4 phía trên. Tuy nhiên. và sự phức tạp của cấu trúc P2P. Vì vậy miễn là yêu cầu được gửi lại một lần nữa. Khi đó. thì yêu cầu sẽ thất bại. yêu cầu xác định của peer sẽ được phản hồi trong một khoảng thời gian nào đó. Những hình thức cổ điển cần rất nhiều máy khách (client) để kết nối tới máy chủ nhằm thu được những phiên bản cụ thể của tài liệu hay nhằm để tạo ra những tài liệu mới liên tiếp Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . có khả năng sẽ mất hoặc bị chậm trễ phản hồi. Mỗi khi một peer gửi đi một yêu cầu. Tuy nhiên vào thời điểm này. Đôi khi có trường hợp không có peer nào trong cùng nhóm trực tuyến. Nó sẽ xác định một khoảng thời gian.

Khi một peer kiểm tra một tài liệu nào đó. Chúng ta đã tìm ra những phương pháp quản lý dựa trên kiến trúc phân tán mà có thể làm giảm tải của máy chủ. tùy theo độ ưu tiên của các vai trò và hoàn cảnh thực tế lúc đó peer sẽ chọn một peer khác để gửi đi một bản sao chép. và để giảm thiểu sự khó khăn trong việc quản lý hệ thống P2P. thư mục. Sau đó. nó sẽ gửi một yêu cầu tới phía máy chủ mục lục. chiều dài. số phiên bản. Tuy nhiên. Điều này cũng tiềm ẩn vấn đề về sự ổn định. trong cấu trúc P2P có vài điểm khác biệt. những máy chủ thường là máy có hiệu năng cao. và chỉ có nó mới thuộc mọi nhóm khác nhau. Một peer có thể giữ một vài vai trò tới một tài liệu được chú ý. tài liệu này sẽ là “tài liệu đáng chú ý” của peer. và nhiều tham số khác. tên tài liệu. những hình thức này không còn phù hợp. những người quản lý sao lưu dự phòng nội dung các tài liệu một cách định kì. Điều này sẽ dẫn tới dù trong tình huống xấu nhất thì mỗi nhóm cũng phải có một peer hoạt động. Tuy nhiên. ngày chỉnh sửa. để đản bảo hệ thống an toàn và ổn định. các khái niệm về “tài liệu được chú ý” (interested document) và “vai trò” (role) đã được áp dụng trọng quản lý mã nguồn. Nếu không có peer khác trong cùng một nhóm đang trực tuyến thì bản sao chép này sẽ được gửi đến máy chủ mục lục. Khi một tài liệu mới hay một phiên bản mới được tung ra bởi một peer. Các nội dung trong mạng phụ thuộc vào ranh giới của mạng. Việc quản lý tài liệu được thực hiện bằng các vai trò. Xuất phát từ sự giống nhau giữa các tài liệu trong cùng một nhóm. Định nghĩa 1: Tài liệu được chú ý Nếu một peer là tác giả của một tài liệu hoặc tác nhân mà tác giả ủy quyền tới. Nó sẽ xác định địa chỉ IP của peer. Trong cấu trúc truyền thống. và do đó có thể thay thế cho bất cứ nhóm nào. Ví dụ. một sai sót ở một peer nào đó hoặc do nó tạm thời rời khỏi mạng có thể tạo ra một tìm kiếm không hợp lệ. và theo cách như thế một vai trò có thể được sở hữu bởi nhiều peer. Sau đó máy chủ mục lục sẽ gửi lại một bản tóm tắt và danh sách những peer mà chứa tài liệu đó. Một vài các peer có thể đóng vai cùng một vài trò cho một tài liệu đế hoàn chỉnh những chức năng mà vai trò đó nắm giữ. Định nghĩa 2:Vai trò Nếu một tài liệu là một “tài liệu đáng chú ý” của một peer nào đó. Vì mục đích an toàn. Bởi vì máy chủ mục lục cũng hoạt động giống như là một peer. Sau khi nhận được thông tin trên. một bản tóm tắt sẽ được gửi tới máy chủ mục lục. sau đó tùy theo những mức độ quyền hợp pháp khác nhau mà peer đó có.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P nhau. lý do chỉnh sửa. Đề giải quyết những vấn đề này. Khi bản sao chép được gửi tới máy chủ mục lục thì cấu trúc P2P đã trở thành cấu trúc Client/Server truyền thống. với sự mở rộng về quy mô của phần mềm. một vài vai trò sẽ được ấn định cho peer. P2P có thể áp dụng ở đây. Những peer cùng vai trò của cùng một tài liệu có quyền cao nhất để làm việc với nhau. peer sẽ cố gắng nhận Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 .Lớp11BCNTT 10/20 .

Điều này có thể làm tăng đáng kể hiệu năng của hệ thống và tạo ra khả năng có thể trực quan hóa phần mềm trên diện rộng.Lớp11BCNTT 11/20 . Khi phần mềm được tiến hành trực quan hóa. một thời điểm sẽ được ghi lại. số đánh phiên bản thêm vào sẽ được gửi tới máy chủ mục lục khi mà một phiên bản nào đó được tăng thêm.3.IV. Với sự mở rộng theo quy mô của việc phát triển phần mềm. Với một tài liệu. số lượng peer mà giữ tài liệu sẽ lớn lên.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P những tệp tin từ các peer trong danh sách nhận được. tốc độ để thu được một tài liệu khi yêu cầu nó sẽ tăng lên. Hình 5 Mối quan hệ giữa tệp tin và các vai trò . Trực quan hóa phần mềm Dựa trên cấu trúc P2P. các công việc được phân chia dựa trên các vai trò và thông tin về thời gian sẽ được dùng đến cho việc đồng bộ. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . đặc biệt là với sự nổi lên của công nghệ lưới (grid). để mỗi peer có thể cùng làm việc. Như vậy. Chúng ta có tận dụng một ưu điểm của khả năng tính toán của mỗi peer trong việc thực hiện việc trực quan hóa hệ thống. một vài peer sẽ được ghép với nhau để hoàn thành một công việc chung. Trong hoàn cảnh tương tự. Nó thiếu hụt đi những sáng kiến và cả những tri thức. Với sự phát triển của công nghệ. Một thế hệ mới của phương pháp phát triển phần mềm. khi nó được kiểm tra. thế hệ thứ ba của phương pháp phát triển phần mềm sẽ dần dần không thể đáp ứng được những yêu cầu của mạng. được gọi là công nghệ dựa tác tử sẽ trở lên ngày càng phổ biến hơn. Sẽ có ít nhất hai peer mà sở hữu hoàn toàn tài liệu đó trong mạng. sự giao tiếp giữa các peer nhiều hơn việc truyền tải các tài liệu và điều khiển phiên bản. do đó.

b. tạo và ‘vẽ’ ra các nhiệm vụ cũng như tung ra các tin quảng bá. nó sẽ chỉ thể hiện hình ảnh với những tài liệu được chú ý của nó. Sau khi peer yêu cầu nhận được tin phản hồi. Nếu nó cần xem hình ảnh của tài liệu khác. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . Nếu nó có đủ CPU và bộ nhớ để cùng hoàn thành nhiệm vụ. <TaskHelpQuery> <FileID>Interested document ID</FileID> <RoleID></RoleID> </TaskHelpQuery> Một định dạng yêu cầu quảng bá được hình dung như bên trên. Peer phản hồi sẽ trả lại trường IsIntersted cùng với định danh vai trò của nó. ngược lại sẽ là false (sai).Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P Tài liệu tham khảo [14] giới thiệu một hệ thống trực quan hóa dựa trên đồ thị. Hệ thống của chúng tôi sẽ ứng dụng kĩ thuật tác tử để biểu diễn và trực quan hóa phần mềm. khi đó thông tin sẽ được chuyển đi như là một tài liệu. Nếu tài liệu là một “tài liệu được chú ý” với peer phản hồi nhưng hai peer không có cùng vai trò thì peer yêu cầu sẽ gửi đi một tin nhắn yêu cầu và vị trí của dữ liệu. nó sẽ thực hiện một trong những công việc sau: a. Tin phản hồi có định dạng được miêu tả như sau: <TaskHelpResponse> <IsInterested>true/false</ IsInterested> <RoleID></RoleID> </ TaskHelpResponse> Nếu tài liệu mà mã định danh (FileID) của nó cũng là tài liệu được chú ý của peer phản hồi. Nếu không.Lớp11BCNTT 12/20 . thì trường IsIntersted sẽ là true (đúng). và hai peer có cùng vai trò. Mỗi peer sẽ chỉ cần chịu trách nhiệm cho những tài liệu được chú ý của nó. peer yêu cầu sẽ gửi một tin yêu cầu trợ giúp mà trong đó đã xác định vị trí của mã và dữ liệu tương ứng. mà nó sẽ tách những thông tin từ các CVS và hiển thị chúng bằng các hình ảnh tạm thời. nó sẽ không làm gì cả. Nếu tài liệu là “tài liệu được chú ý” với peer phản hồi. Khi những peer khác nhận ra được tin quảng bá. Tin quảng bá sẽ rất sơ lược. nó chỉ cần kết nối với peer chịu trách nhiệm đó và thu được thông tin. nó sẽ khởi động một tác vụ để kiểm tra và đánh giá hiệu năng của bản thân. Những thông tin này có thể dùng để chỉ ra sự phát triển của một phần mềm. thì nó sẽ gửi lại một tin phản hồi. Nó chứa định danh của tài liệu được chú ý và định danh của vai trò của peer đưa ra yêu cầu. Tác tử trên mỗi peer phải chịu trách nhiệm trong việc phân tích những dữ liệu ra của những peer nội bộ.

Vì các peer trong cùng một nhóm peer thực hiện cùng một công đoạn nào đó trong việc phát triển phầm mền nên chi phí của sự hỗ Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . nó sẽ thực thi đoạn mã và trả kết quả về cho peer yêu cầu.Lớp11BCNTT 13/20 . Chúng tôi đã kiểm tra thời gian phản hồi cho một tác vụ riêng lẻ. Toàn bộ dự án có khoảng 250 thành viên và mỗi nhóm có ít nhất 10 thành viên. Tuy nhiên. Sau khi peer phản hồi nhận được tác vụ. VI. Kiểm tra hiệu năng Chúng tôi đã phát triển hệ thống quản lý phần mềm đề xuất trong tài liệu này trên nền tảng Microsoft . Nếu tài liệu không phải là “tài liệu được chú ý” với peer phản hồi. khi nó được áp dụng để quản lý kĩ nghệ phần mềm. Cấu trúc P2P giảm tải cho máy chủ.NET và áp dụng chúng trong tiến trình quản lý thực sự. và cả hai tài liệu không có cùng vai trò. Nghĩa là. sự phức tạp hiển nhiên sẽ giảm đi. Số lượng thành viên thường xuyên hoạt động trong nhóm là 50.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P c. Càng có nhiều máy khách thì sự khác biệt về hiệu năng giữa hai mô hình càng rõ ràng. Điều này có thể tạo ra sự phân mảnh vể hiệu năng. Hình 6 Đồ thị kiểm tra hiệu năng Dữ liệu trong kiến trúc Client/Server được thu thập bằng cách phân chia các peer thành “mỗi nhóm một peer”. nếu số lượng máy khách tăng lên thì thời gian phản hồi trong kiến trúc Client/Server sẽ nhanh chóng tăng lên. Kết luận và hướng phát triển trong tương lai Có nhiều nhân tố chưa chắc chắn trong hệ thống kĩ nghệ phần mềm dựa trên P2P. Cần phải tốn nhiều thời gian và tài nguyên trong việc thực hiện những thao tác cơ bản của hệ thống. peer yêu cầu sẽ cần gửi ra ngoài cả mã và dữ liệu. Tuy nhiên. Hình 6 là kết quả. và các peer đã chịu đủ gánh nặng sẽ có thể còn chịu nặng hơn. những tin nhắn về sự hợp tác giữa các peer cần phân phát thường xuyên trong mạng. toàn bộ các nhóm này được kết nối thông qua mạng Internet. Bởi vì tính đa dạng trong các vị trí địa lí. V.

Mở rộng .Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P trợ các lệnh trong mạng P2P là rất giới hạn..Lớp11BCNTT 14/20 . b. với các mối liên hệ phức tạp. giúp nhà phát triển chỉ cần tập trung vào logic và quy trình nghiệp vụ. phát hiện khiếm khuyết trong quá trình phát triển và bảo trì phần mềm. Các công nghệ 3D và trí tuệ nhân tạo có thể áp dụng trong trực quan hóa phần mềm. Khối lượng dữ liệu trong 1 hệ phân tán như P2P hay Grid là khá lớn. đồng thời quản lý các peer. ý nghĩa của dữ liệu sẽ được biểu thị rõ ràng.. nhằm đem lại hỗ trợ đáng kể hơn nữa cho quản lý kỹ nghệ phần mềm. Thêm nữa.VII. Trong tương lai. Các loại trực quan hóa phần mềm  2 loại o Cục bộ:  Trực quan hóa mã nguồn. lịch sử hoặc hành vi của phần mềm. có thể sử dụng để phân công và điều khiển các tác vụ một cách tự động. Trực quan hóa phần mềm (software visualization) cung cấp hình ảnh tĩnh hoặc động (2D. các biểu đồ trong công nghệ phần mềm. như biểu đồ GANT. và nó sẽ thể hiện được những ưu điểm của hệ thống P2P. VII.) o Hệ thống: Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 .3D) về thông tin của phần mềm dựa trên cấu trúc.1. kích thước. kỹ thuật tác tử và UML với kỹ thuật trực quan hóa phần mềm. Sử dụng kỹ thuật trực quan hóa phần mềm. chúng tôi có ý tưởng kết hợp P2P. đánh dấu các quan hệ tiềm ẩn lỗi và thông báo cho người phát triển (Visual Studio 2010 . ví dụ chỉ ra các class có độ kết dính cao. Trực quan hóa phần mềm (Software visualization) a. Thông tin được dùng để trực quan hóa phần mềm:  Dữ liệu đo lường được từ các hành động của phần mềm  Dữ liệu từ kỹ thuật dịch ngược (reverse engineering) Mục đích của trực quan hóa phần mềm là nhằm hỗ trợ người dùng hiểu:  Hệ thống phần mềm  Giải thuật  Phân tích các bất thường trong hệ thống.  Biểu diễn mối quan hệ giữa các class trong hệ thống.

. Khi số lượng client tăng đến một mức độ nào đó thì nhu cầu về tải và băng thông tăng lên.2.Lớp11BCNTT 15/20 . cũng như vấn đề server đột nhiên chết giữa chừng làm ngưng việc cung cấp dịch vụ mà mô hình client/server thường gặp. Theo cơ chế này thì P2P đã giải quyết được vấn đề quá tải. Telnet. nhược điểm này có thể khắc phục khi số lượng thành viên trên mạng P2P đủ lớn. Theo mô hình này. lúc đó sẽ có nhiều điểm cung cấp dịch vụ cho toàn mạng hơn. dẫn đến việc máy chủ không có khả năng cung cấp dịch vụ cho các máy client thêm vào. Giới thiệu nền tảng JXTA (juxtapose) .. Các vấn đề của mạng ngang hàng P2P Hầu hết dịch vụ Internet cung cấp ngày nay đều dựa trên mô hình client/server. khi Internet phát triển với tốc độ chóng mặt như ngày nay thì mô hình client/server phát sinh một nhược điểm quan trọng. và không phải lúc nào các máy này cũng liên kết với mạng.). nên có thể dẫn tới sự biến mất của một dịch vụ trong khoảng thời gian nhất định.Ưu điểm:  P2P dựa trên các cơ chế nhất định để tìm kiếm các máy tính khác đang có trên mạng.. do đó sẽ tránh cho client những tính toán nặng nề. có phân bố lưu lượng thông tin hợp lý để tránh tằc nghẽn trên mạng.1. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . Để giải quyết vấn đề trên và còn nhiều vấn đề khác của mô hình client/server. email .Nhược điểm:  Nhược điểm của P2P là vì tài nguyên của mạng nằm trên các máy tính cá nhân. Mô hình client/server có rất nhiều điểm ưu việt bao gồm ưu điểm nổi bật là mọi xử lý sẽ nằm trên server. FTP.  P2P còn nhiều ưu điểm khác như tận dụng được tài nguyên của tất cả các máy trong mạng. Nguyên nhân là trong mạng P2P.  Tuy nhiên.2.VII. P2P cho phép các máy tính này vừa đóng vai trò là máy chủ vừa là máy khách để cung cấp xác định và cung cấp các dịch vụ có sẵn trên mạng P2P. .VII. một máy khách (client) sẽ kết nối với một máy chủ thông qua một giao thức nhất định (WWW. Tuy nhiên. . công nghệ mạng ngang hàng P2P (peer to peer technology) được tin tưởng sẽ là lời giải cho các vấn đề trên.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P  Biểu diễn cấu trúc cả hệ thống  Áp dụng khai phá dữ liệu trực quan (visual data mining) hoặc kỹ thuật phân tích trực quan (visual analytics techniques) để phát hiện các vấn đề trong hệ thống. dịch vụ được cung cấp bởi nhiều điểm chứ không phải là một.

Lớp11BCNTT 16/20 . o Phân loại dựa trên công việc mà 1 peer đảm nhiệm:  Simple peer: là 1 peer bình thường trong mạng P2P.  Rendezvous (điểm hẹn) peer: rendezvous peer cũng là một peer.Một số khái niệm của mạng ngang hàng  Peer: o Một Peer là một nút trong mạng P2P. một máy trợ giúp cá nhân (PDA) hay là một điện thoại di động. cho phép các thông tin này vượt qua tường lửa hoăc các thiết bị NAT (Network Address Translation).  Messages: chứa đựng thông tin được truyền qua pipe từ 1 endpoint này tới 1 endpoint khác Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 .  Network Transport o Là cách thức mà các peer có thể truyền tải dữ liệu cho nhau. o Tuy nhiên. định nghĩa trên chưa thật sự bao quát được khái niệm peer.  Router peer : là peer cung cấp các cơ chế để chuyển thông tin giao tiếp giữa các peer.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P . Tuy nhiên. tuy nhiên nó luôn nằm ngoài các mạng riêng. trong thực tế thường các peer này nằm trong một mạng riêng biệt khác. o Định nghĩa peer : "Peer là một phần trong mạng P2P có khả năng thể hiện một chức năng hữu ích và truyền đạt kết quả của công việc đó cho các phần khác của mạng một cách trực tiếp hoặc gián tiếp". Nó đảm nhiệm chuyển tiếp các thông điệp tìm kiếm peer (discovery requests) tới các simple peer. vì một thiết bị liên kết với mạng P2P có thể có nhiều peer chạy trên nó. mà các peers ở ngoài Group không thể tiếp cận được. Các khái niệm về network transport bao gồm:  Endpoints : là điểm nguồn hoặc điểm cuối của thông tin được truyền tải.  Peer Group o Là một nhóm các peers có cùng một mục đích hay dịch vụ. nó có chức năng như là một người dùng cuối (end-user). bao gồm chứng nhận 1 peer là thành phần của 1 group. Simpler peer sẽ cung cấp dịch vụ cho các peer và cũng nhận được các dịch vụ theo chiều ngược lại. có thể là một máy vi tính. Nó bao gồm việc gửi và nhận dữ liệu  Pipes: là một kênh thông tin ảo được lập ra để kết nối 2 hoặc nhiều hơn các peers với nhau. nên các peer khác sẽ khó có khả năng giao tiếp trực tiếp với simple peer. Các peers trong 1 Group sẽ chia sẻ thông tin cho các peers khác trong group. o Hai đặc điểm của Peer Group là chia sẻ các ứng dụng và tính bảo mật. hoặc là nằm sau tường lửa.

Tổng quan kiến trúc JXTA. Bao gồm việc xây dựng các khối có sẵn.Endpoint Routing Protocol Đó là 6 giao thức cơ bản của JXTA.2. Với phiên bản JXTA hiện tại. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . gồm 3 tầng:  Platform layer (JXTA Core) : gói gọn yếu tố thiết yếu nhất phổ biến cho mạng P2P.Peer Resolver Protocol . JXTA là dự án xây dựng một tập hợp các giao thức cơ bản cần thiết trong một mạng P2P. nó bao gồm các giao thức cơ bản sau : .2. hình thành các peers và peer groups. Giới thiệu dự án JXTA (juxtapose) Mặc dù đã có rất nhiều hệ thống dịch vụ và ứng dụng hỗ trợ xây dựng các ứng dụng P2P. Một yếu tố đặc biệt của dự án JXTA là các giao thức trên không phụ thuộc vào bất cứ ngôn ngữ lập trình nào.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P  Service o Dịch vụ ở đây được hiểu theo nghĩa là các chức năng mà một peer có thể thực hiện 1 công việc có ích cho một peer khác.Rendervouz Protocol .Pipe Binding Protocol .Peer Information Protocol . nhưng vì nhiều lí do bao gồm tính không tương thích giữa các mạng P2P.VII. tiện lợi. với hi vọng nó sẽ là chuẩn công nghệ cho P2P. nó sẽ gửi các advertisement đi để cho các peers khác biết rằng nó có trên mạng.Lớp11BCNTT 17/20 . và kết hợp tính năng bảo mật. . giống như thông tin quảng cáo. Sun Mircosystem đã xây dựng dự án JXTA. Mục tiêu của JXTA là cung cấp một nền tảng (platform) mà qua đó các nhà phát triển ứng dụng có thể dễ dàng phát triển các ứng dụng P2P một cách nhanh chóng.  Advertisement o Advertisement cho biết 1 peer là có ở trên mạng hay không. gồm 2 loại : peer service và peer group service.Peer Discovery Protocol . nó được định nghĩa dựa trên XML. nên mỗi mạng chỉ giải quyết một phần khả năng thực tế của công nghệ P2P. Khi một peer đăng nhập vào mạng. để có thể áp dụng các kỹ thuật chính dành cho mạng P2P: tìm kiếm. Advertisement chứa đựng thông tin về chính peer đó. vận chuyển truyền thông (bao gồm vượt qua firewall và NAT).

…. Áp dụng trong kiến trúc hệ thống quản lý kỹ nghệ phần mềm dựa trên P2P: Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . chia sẻ file. chia sẻ tài liệu và tài nguyên. Ví dụ về các service bao gồm searching và indexing. đồng thời áp dụng cho các tính năng nâng cao trong môi trường P2P.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P  Service Layer: bao gồm các dịch vụ mạng cần thiết cho sự hoạt động của mạng P2P. hệ thống lưu trữ. P2P email system.Lớp11BCNTT 18/20 . diectory. …  Application layer: bao gồm các ứng dụng được tích hợp sẵn như P2P instant message.

ACM Symposium on Software Visualization.napster. “3D Representations for Software Visualization”. “Graph Visualization for the Analysis of the Structure and Dynamics of Extreme-Scale Supercomputers”.. Zhejiang University. Rhodes B. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . Wei W. [3] . [11] Cheng Z. ACM Symposium on Software Visualization..jxta.. [9] Jorma S. http://www..asp. CA..peer-to- [2] Napster Homepage. http://www.com ..openp2p. http://www.org/2002/ws/. http://www. http://www. Yin Zhang. San Diego.cn/. [13] Qin W. San Diego.com/net/netmyservices.: Evolve. 2003. [8] UML Software Engineering Organization. Thormas P. 2003.html. China. and Xiuzi Ye College of Computer Science /State Key Lab of CAD&CG. http://www. Kenneth L.microsoft. Marja K. Bruno D. [1] Peer-to-Peer peerwg.org . [5] OpenP2P Homepage. http://onjava. CA.w3.S.com.org/index. Karel D. [7] O'Reilly Network. CA. ACM Symposium on Software Visualization.. Sanyuan Zhang. P.NET My Services homepage (formerly code-named Hailstorm).Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P VIII. [6] Web Service workshop. [12] Niklas E. 2003. http://www.C..microsoft.uml. Jonathan I. ACM Symposium on Software Visualization. “Program Animation Based on the Roles of Variables”. Working Group Homepage. 310027... Louis F. 2003.. CA.R. Philippas T. Hangzhou. “An Open Extensible Software Visualization Framework”.org.Lớp11BCNTT 19/20 . http://www. CA. Tài liệu tham khảo Bài viết gốc : P2P-Based Software Engineering Management. 2003. [10] Andrian M.com/net/hailstorm. San Diego. “Growing Squares: Animated Visualization of Causal Relations”.asp. ACM Symposium on Software Visualization..M.com/. [4] Jxta Homepage.. San Diego. Tác giả : Lina Zhao1.. San Diego.

Degree Paper. “An Infrastructure for Attribute Addressable P2P Network: Barnet”. Zhao T..W. Yin C. 6. [16] WANG Q... Jasvir N.Y.neesgrid.. CA. San Diego.W. Chinese journal of computers. Stephen K. [15] America Earthquake Grid. [17] Shi W. ACM Symposium on Software Visualization. 2004. 2003. vol 3.Tiểu luận Hệ phân tán Quản lý kỹ nghệ phần mềm dựa trên P2P [14] Christian C..org/.. 2003. Dai Y.M. “A System for Graph-Based Visualization of the Evolution of Software”. Li X. 2002.Lớp11BCNTT 20/20 . “Researching and Implementing of Intelligent Professional Search for Virtual Enterprise”. “Digital City Service Management Mode and Platform Design based on P2PSMS”... vol 14. http://www... Tian J. Giáo viên hướng dẫn: TS Hà Quốc Trung Học viên thực hiện: Nhóm 4 . [18] Tian L. Journal of Software.