1. Trang chủ
  2. » Giáo án - Bài giảng

Phần mềm mã nguồn mở

79 570 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phần Mềm Mã Nguồn Mở
Tác giả Nguyễn Quốc Hùng
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Bài Tiểu Luận
Định dạng
Số trang 79
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mô hình phát triển PMNM tiếp Các đặc điểm của quá trình phát triển PMNM – Trao đổi thông tin: Quá trình trao đổi thông tin giữa các thành viên trong dự án MNM thông thường được thực hiệ

Trang 1

PHẦN MỀM NGUỒN MỞ

VÀ ỨNG DỤNG TRONG THIẾT KẾ WEB

Trình bày: Nguyễn Quốc Hùng

Bộ môn: CNPM

Trang 3

II – Các mô hình tổ chức và kinh doanh PMNM

II.1 So sánh mô hình phát triển dự án PMNM

và PMNK

II.2 Cộng đồng PMNM

II.3 Các mô hình kinh doanh PMNM

Trang 4

II.1 So sánh mô hình phát triển dự án PMNM và PMNK

II.1.1 Quy trình phát triển PM

II.1.2 Quy trình phát triển PMNK

II.1.3 Mô hình phát triển PMNM

Trang 5

II.1.1 Quy trình phát triển PM

Trang 6

II.1.2 Quy trình phát triển PMNK

quy trình nêu trên

các hàm của HĐH đó (API – Application

Trang 7

II.1.2 Quy trình phát triển PMNK (tiếp)

Trang 8

II.1.3 Mô hình phát triển PMNM

của quy trình nói chung

– Dự án được tài trợ toàn phần: Kinh phí được tài trợ toàn

phần bởi các tổ chức Quy trình phát triển giống bất kỳ dự án phần mềm thương mại nào khác (nhưng tính chất lại là

nguồn mở) Ví dụ: BSD, BIND, Sendmail

– Dự án không được tài trợ: Không được hỗ trợ kinh phí, mọi người tham gia dự án với tính chất phi thương mại (Tuy

nhiên vẫn có những điều khoản quy định: Cung cấp mã

Trang 9

II.1.3 Mô hình phát triển PMNM (tiếp)

Trang 10

II.1.3 Mô hình phát triển PMNM (tiếp)

– (3) Thiết kế chi tiết (Design):

 Đây cũng là một bước bị xem nhẹ trong quá trình phát triển PMNM

 Thông thường, thiết kế chi tiết được thực hiện ở giai đoạn thực hiện

Trang 11

II.1.3 Mô hình phát triển PMNM (tiếp)

Trang 12

II.1.3 Mô hình phát triển PMNM (tiếp)

Trang 13

II.1.3 Mô hình phát triển PMNM (tiếp)

 Các đặc điểm của quá trình phát triển PMNM

– Trao đổi thông tin: Quá trình trao đổi thông tin giữa các thành viên trong dự án MNM thông thường được thực hiện trên các dịch vụ Internet (Email lists, Newsgroups của các Website của dự án)

– Khả năng hợp tác lớn và không phụ thuộc vào vị trí địa lý của các thành viên

– Khả năng thực hiện song song: Nếu như mô hình các thành phần

đã được xác định thì có thể tổ chức các nhóm lập trình viên giải quyết các nhiệm vụ độc lập Lập trình viên tham gia theo sở thích nên quá trình thực hiện rất nhanh chóng

– Tránh được hiện tượng Code Focking (phân nhánh) Là hiện

tượng thường gặp phải khi có nhiều phiên bản mã nguồn của

phần mềm – nhất là trong các dự án lớn)

Trang 14

II.1.3 Mô hình phát triển PMNM (tiếp)

 Các ưu điểm của mô hình phát triển PMNM

– Phát triển PMNM cho phép xây dựng các sản phẩm phần mềm chất lượng và miễn phí dựa trên sự hợp tác của đông đảo các lập trình viên (Ví dụ: Linux)

– Thúc đẩy quá trình tham gia của nhiều người vào quá trình xây dựng và phát triển phần mềm Phát triển PMNM là quá trình tự phát triển, nếu dự án PMNM thu hút được sự quan tâm của đông đảo người sử dụng thì nó sẽ phát triển rất nhanh chóng

– PMNM cho phép kiểm soát mã nguồn, kiểm thử và gỡ lỗi với chất lượng cao hơn các PMNK

– PMNM thúc đẩy khả năng tái sử dụng của mã Lập trình viên có khả năng truy cập tới toàn bộ mã nguồn và anh ta có khả năng để lựa chọn sử dụng và kế thừa những gì cần thiết

Trang 15

II.2 Cộng đồng PMNM

 Nếu như PMNK được phát triển bởi một đội

dự án thì PMNM được phát triển bởi cả một cộng đồng

 Cộng đồng PMNM là lực lượng điều khiển

sự tiến hóa của PMNM

 Để tham gia vào cộng đồng hoặc xây dựng phát triển và duy trình cộng đồng, phải nắm được bản chất, cấu trúc, hoạt động của cộng đồng đó

Trang 17

II.2.1 Các thành viên trong cộng đồng

thành viên trong cộng đồng PMNM:

Người dùng thụ động (Passive User): Chỉ đơn thuần sử

dụng các phần mềm như các phần mềm thương mại, quan tâm đế PMNM chủ yếu do chất lượng cao và khả năng tự thay đổi khi cần thiết

Người đọc (Reader): Người dùng chủ động, tích cực,

không chỉ sử dụng mà còn cố gắng tìm hiểu xem hệ thống hoạt động như thế nào bắng cách đọc mã nguồn Đóng vai trò như người xét duyệt (Peer Reviewers) trong tổ chức phát triển phần mềm truyền thống

Người báo lỗi (Bug Reporter): Phát hiện và thông báo lỗi

(không sửa lỗi và có thể không đọc mã nguồn), đóng vai trò của người kiểm thử (testers) trong tổ chức phần mềm truyền

Trang 18

II.2.1 Các thành viên trong cộng đồng (tiếp)

Người sửa lỗi (Bug Fixer): Sửa các lỗi do họ phát hiện hoặc

người khác thông báo Phải đọc, hiểu cặn kẽ phần mã nguồn phát sinh lỗi thì mới có thể chỉnh sửa được

Người phát triển ngoại vi (Peripheral Developer): Đóng góp

thêm các chức năng, tính năng mới cho hệ thống (đóng góp là ko thường xuyên → thời gian tham gia ngắn)

Người phát triển tích cực (Active Developer): Thường xuyên

đóng góp các tính năng mới và giải quyết các lỗi Là lực lượng phát triển chủ yếu của các hệ PMNM

Thành viên cốt cán (Core Member): Chịu trách nhiệm dẫn dắt,

điều phối sự phát triển của dự án PMNM Là những người

“thường trực” của dự án, tham gia với thời gian đủ dài và có

những đóng góp nhất định cho sự tiến hóa và phát triển của hệ thống Trong một số cộng đồng PMNM, những thành viên cốt cán được gọi là những người bảo trì (Maintainers)

Trang 19

II.2.1 Các thành viên trong cộng đồng (tiếp)

1 dự án PMNM Tỷ lệ phân bố có thể khác nhau, tên gọi các loại thành viên trong từng dự án cũng có thể khác nhau

Trang 20

II.2.2 Cấu trúc cộng đồng

II.2.2.1 Đĩa cấu trúc cộng đồng PMNM

II.2.2.2 Phân tích cấu trúc của một số dự án PMNM

– GNU

– Jun

Trang 21

II.2.2.1 Đĩa cấu trúc cộng đồng PMNM

Trang 22

II.2.2.1 Đĩa cấu trúc cộng đồng PMNM (tiếp)

 Cấu trúc đĩa bao từ ngoài vào trong (có thể coi là cấu trúc phân cấp)

 Ở trung tâm của đĩa là trưởng dự án

 Càng gần tâm thì vai trò của thành viên càng có nhiều ảnh

hưởng tới dự án

 Vòng ngoài cùng là người dùng thụ động, ít có ảnh hưởng tới

dự án Tuy nhiên lại có vai trò quyết định tới sự tồn tại và phát triển dự án (nếu đồng đảo người dùng quan tâm sẽ kích thích thành viên cốt cán làm việc hăng say hơn – yếu tố tâm lý và xã hội)

 Vai trò và ảnh hưởng trong cộng đồng không liên quan đến tuổi tác và địa vị của thành viên Càng đóng góp nhiều thì thành viên càng tiến gần vào tâm của cấu trúc hơn (việc thay đổi vai trò là thường xuyên, không cố định như phần mềm thương mại)

Trang 23

II.2.2.1 Đĩa cấu trúc cộng đồng PMNM (tiếp)

 Để duy trì cộng đồng PMNM có được sự phát triển bền vững, phải đảm bảo tính cân đối trong cấu trúc

– Nếu tất cả các thành viên là người dùng thụ động → không tiến hóa

– Nếu tất cả đều là thành viên cốt cán → khó điều hòa mọi cố gắng, phát triển Sự tiến hóa của phần mềm là không bền vững

 Phân bố thành viên trong từng cộng đồng PMNM khác nhau phụ thuộc vào bản chất của hệ

– Nói chung, phần lớn thành viên là người dùng thụ động (trong

cộng đồng Apache, 99% thành viên là người dùng thụ động)

– Tỷ lệ người dùng giảm nhanh từ người đọc đến thành viên cốt

cán Đa số các PMNM chỉ do số ít các thành viên thực sự phát triển

Trang 24

II.2.2.2 Phân tích cấu trúc của một số

dự án PMNM

Trang 25

 Truởng dự án (Project Leader)

đắc lực của các thành viên cốt cán

quyết định đóng góp nào được ghi nhận và đưa vào PMNM đó

 Người phát triển tích cực (Active Developer)

vi và người sửa lỗi thực hiện

vào sản phẩm PMNM

 Người đọc (Reader):

lập trình chuyên nghiệp nên có cộng đồng đông đảo người đọc

Trang 27

– Không có trưởng dự án duy nhất như Linux, do các thành viên cốt cán liên lạc với nhau qua mailing-list để thảo luận và quyết định hướng đi của hệ thống

– Việc đưa vào hệ thống 1 chức năng mới phải do ít nhất 1 thành viên cốt cán đưa ra và được bỏ phiếu bới tất cả các thành viên cốt cán

– Gồm khoảng 30 người, phát triển các chương trình dưới

dạng gói và chỉ được tích hợp vào hệ thống khi được phê chuẩn bởi các thành viên cốt cán

Trang 28

– Có 1 trưởng dự án (Atsuki Aoki), làm việc với các thành viên cốt cán

– Tất cả các phát triển đều thực hiện trong nhóm này

– Rất ít người báo lỗi do phiên bản chỉ được công bố sau khi

đã kiểm thử cẩn thận

– Ít, phần lớn đọc mã nguồn Jun để học hỏi và sử dụng cho hệ thống tương tự viết trên ngôn ngữ khác

Trang 29

II.2.3 Tiến hóa của hệ thống và cộng đồng

II.2.3.1 Tiến hóa của hệ thống

II.2.3.2 Tiến hóa của cộng đồng PMNM

II.2.3.3 Đồng tiến hóa của hệ thống và cộng đồng

Trang 30

II.2.3.1 Tiến hóa của hệ thống

cách phân tích sự tiến hóa của 4 hệ thống đã nêu trên

Trang 31

II.2.3.1 Tiến hóa của hệ thống (tiếp)

 GNU:

– Dự án chất lượng cao, phiên bản thống nhất và “sạch”

– Một gói chương trình trước khi được tích hợp vào phiên bản chính thức phải được kiểm thử và chỉnh sửa kỹ

Mẫu hình tiến hóa của GNU là tập trung theo một luồng trục

chính

 Linux:

– Cho phép nhiều cách cài đặt khác nhau cho cùng 1 chức năng

– Có thể có nhiều nhánh tiến hóa khác nhau từ cùng một chương trình

Mẫu hình tiến hóa của Linux là mẫu hình phân rã (“trăm hoa đua

nở”)

Trang 32

II.2.3.1 Tiến hóa của hệ thống (tiếp)

 PostgreSQL:

– Có thể coi là giải pháp hỗn hợp

– Mỗi khi có yêu cầu mới, người phát triển tích cực tự tạo đội để triển khai đáp ứng yêu cầu đó

– Tuy nhiên những cài đặt trên (được nhiều nhóm phát triển cho

cùng 1 chức năng) chỉ tồn tại trong một khoảng thời gian nhất

định, sau đó sẽ được các thành viên cốt cán xem xét tích hợp vào phiên bản lõi

Mẫu hình tiến hóa của PostgreSQL là mẫu hình hội tụ từ nhiều

nhánh vào một cành chung

 Jun

Có ít người tham gia phát triển, tiến hóa theo mẫu hình tuyến tính

đơn (cây có 1 nhánh) với các phiên bản kế tiếp nhau

– Trước khi công bố ra cộng đồng, các thành viên của Jun đã kiểm

Trang 33

II.2.3.2 Tiến hóa của cộng đồng PMNM

 Sự tiến hóa của cộng đồng PMNM liên quan đến sự thay đổi vai trò của các thành viên

 Không giống dự án phần mềm thương mại, ở dự án PMNM thành viên có thể thay đổi vai trò của mình theo khả năng và sở thích, mối quan tâm và thời gian

 Con đường từ một thành viên mới đến thành viên cốt cán:

đề anh ta quan tâm

đọc)

lỗi)

Trang 34

II.2.3.2 Tiến hóa của cộng đồng PMNM (tiếp)

trình học để nâng cao trình độ của từng thành viên

không phải thành viên nào muốn cũng có thể đi sâu vào bên trong (phụ thuộc năng lực)

ngoài cùng

– Sự có mặt của thành viên có mong muốn đóng góp và tăng ảnh hưởng của mình trong cộng đồng

– Cơ chế xã hội của cộng đồng trong việc khuyến khích và cho phép thành viên thay đổi vai trò của mình một cách dễ dàng

Trang 35

II.2.3.3 Đồng tiến hóa của hệ thống và cộng đồng

 PMNM muốn phát triển bền vững phải có

được cả sự phát triển của hệ thống và cộng đồng của nó

Trang 36

II.3 Các mô hình kinh doanh PMNM

II.3.1 PMNM có thể kinh doanh?

II.3.2 Sơ đồ mô hình kinh doanh PMNM

II.3.3 Các nhà phân phối và bán lẻ PMNM II.3.4 Các dịch vụ liên quan đến PMNM

Trang 37

II.3.1 PMNM có thể kinh doanh?

 Liệu PMNM có thể kinh doanh khi tất cả đều mở? Khi giá phần mềm rất rẻ?

 PM “đóng” còn bị sao chép lậu, vậy “mở” thì kinh doanh được không?

 Phần này sẽ nghiên cứu mô hình kinh doanh của một số doanh nghiệp nguồn mở (chủ yếu doanh thu từ các dịch vụ bổ sung như tư vấn

và hỗ trợ)

Trang 38

II.3.1 PMNM có thể kinh doanh?

Trang 39

II.3.1 PMNM có thể kinh doanh?

Trang 40

II.3.1 PMNM có thể kinh doanh?

Trang 41

II.3.2 Sơ đồ mô hình kinh doanh PMNM

 Phân biệt giữa kinh doanh

dựa sản phẩm (product

related business) và kinh

doanh dựa vào các dịch vụ

(service related business):

Trang 42

II.3.3 Các nhà phân phối và bán lẻ

PMNM

II.3.3.1 Các nhà phân phối Linux gốc

II.3.3.2 Các nhà phân phối PMNM đặc chủng

Trang 43

II.3.3.1 Các nhà phân phối Linux gốc

đến Linux (tư vấn, hỗ trợ, tích hợp và đào tạo)

Trang 44

II.3.3.1 Các nhà phân phối Linux gốc (tiếp)

– Hai mảng thị trường:

 Thị trường đông đảo người dùng của các bộ phần mềm dùng cho doanh nghiệp vừa và nhỏ, cá nhân

một lựa chọn nghiêm túc như với một hệ điều hành máy chủ Các đối thủ cạnh tranh là Windows NT, các hệ thống Unix.

 Thị trường cái giải pháp riêng lẻ (thường cung cấp cho các doanh nghiệp vừa và lớn)

– Thị trường các giải pháp liên quan đến dịch vụ:

 Hầu hết các nhà cung cấp tính tới việc kinh doanh giải pháp như là một dòng doanh thu chủ yếu mang lại lợi nhuận ngày

Trang 45

II.3.3.1 Các nhà phân phối Linux gốc (tiếp)

 Quan tâm đầu tiên của các nhà phân phối trong chuỗi giá trị của phần mềm: Phát triển phần mềm; Tài liệu phần mềm; Đóng gói phần mềm; Marketing và bán; Tư vấn; Triển khai – Tích hợp; Đào tạo; Hỗ trợ; Quản trị ứng dụng

Trang 46

II.3.3.1 Các nhà phân phối Linux gốc (tiếp)

– Không phải đầu tư viết lại hệ điều hành, chỉ phải đầu tư phát triển và tối ưu hóa

– Không thể định giá sản phẩm một cách tự do (vì là PMNM)– Lợi nhuận thấp: PMNM, giá rẻ, phần lớn lợi nhuận là giá trị gia tăng do đóng gói sản phẩm

– Vì lợi nhuận trên 1 đơn vị không cao, các công ty phải mở rộng thị trường trên đông đảo người sử dụng

– Khác biệt bởi thương hiệu: Các sản phẩm gần giống nhau, yếu tố thành công chủ yếu là do khác biệt về thương hiệu Các công ty xây dựng thương hiệu bằng nhiều cách (quảng cáo, hội chợ, cấp chứng chỉ đào tạo Linux )

Trang 47

II.3.3.2 Các nhà phân phối PMNM đặc

chủng

 Dịch vụ và sản phẩm

– Chuyên dụng trên PMNM khác với HĐH

– Các sản phẩm bao gồm các ứng dụng, các công cụ quản trị và phát

triển

– Thông thường chạy trên Linux, một số có thể chạy trên cả Windows

– Một vài ví dụ: Zope – hệ quản trị nội dung, Sendmail – máy chủ thư điện tử

 Thị trường

– Thị phần cao do tập trung vào các sản phẩm chuyên dụng (các sản

phẩm máy chủ Web, các hệ quản trị nội dung)

– Khách hàng thường là các nhà phân phối hoặc các nhà chế tạo thiết bị gốc (OEM – Original Equipment Manufacturer)

– Thị trường PM đặc chủng khó tiếp cận hơn Nên không hướng vào

Trang 48

II.3.3.2 Các nhà phân phối PMNM đặc

chủng (tiếp)

– Trong thị trường PMNK, các PM đặc chủng thường có giá cao Tuy nhiên PMNM loại này gần như không có giới hạn về tiếp cận, do đó thu lợi từ việc bán PM gần như là không thể

– Để tăng nguồn thu, phương pháp là đa dạng hóa các sản phẩm

Trang 49

II.3.3.3 Các nhà bán lẻ của các nhà phân phối PMNM và các sản phẩm bổ sung

 Dịch vụ và sản phẩm

hàng chính của các nhà phân phối hoặc xuất bản

 O’Reilly – nhà xuất bản sách đào tạo và các tài liệu PMNM)

 CNET, ZDNet: Các kênh bán lẻ PMNM

 Thị trường

Người dùng tư nhân, các công ty, nhà quản trị

Trang 50

II.3.3.3 Các nhà bán lẻ của các nhà phân phối PMNM và các sản phẩm bổ sung

 Thuận lợi & khó khăn

thấp, nói chung không thể coi là một mô hình kinh

doanh

 Đối với các PM thương mại, tài liệu thường được các nhà sản xuất thực hiện hoặc phối hợp với 1 nhà xuất bản thực hiện

 Tài liệu PMNM đang ngày càng trở nên thông dụng và còn được sử dụng bên ngoài cộng đồng PMNM (ví dụ:

Sự thành công của O’Reilly trong việc xuất bản các tài

Trang 51

Chương III – Kinh nghiệm áp dụng PMNM trên thế giới và hiện trạng tại Việt nam

III.1 Áp dụng PMNM trên thế giới

III.2 Kinh nghiệm áp dụng PMNM tại Nhật Bản

III.3 Hiện trạng áp dụng PMNM tại Việt Nam

Trang 52

III.1 Áp dụng PMNM trên thế giới

 90% máy chủ tên miền tại Mỹ, 70% máy chủ thư điện tử, 60% máy chủ Web

 Giữa năm 2001, 56% doanh nghiệp toàn cầu sử dụng PMNM

 Hầu hết các trường đại học (đặc biệt tại các nước tiên tiến) sử dụng PMNM

 Hệ thống quản lý thông tin khổng lồ của Yahoo và AOL dùng PMNM Các công ty khác đang hướng vào PMNM Bưu điện Mỹ, NASA, Sony, Corel, Mercedes Benz, Netscape, IBM

 Tại Châu Âu:

– Đức cấm dùng các sản phẩm của Microsoft trong các hệ thống mang tính “nhạy cảm” Quốc hội kêu gọi Chính phủ đảm bảo mọi phần mềm

sử dụng trong khu vực NN dựa trên PMNM (đến 2006).

Trang 53

III.1 Áp dụng PMNM trên thế giới (tiếp)

– Tổng cục Cảnh sát Anh thử nghiệm áp dụng 60.000 máy chủ sang PMNM

 Châu Á

– Chính phủ Hàn quốc sử dụng PMNM cho hơn 120.000 máy tính,

kế hoạch đến 2003 sẽ sử dụng PMNM tin học hóa văn phòng các

– Đài loan dự kiến tiết kiệm 295 triệu USD nhờ sử dụng PMNM.

– Thái lan, Philipine, Malaysia có kế hoạch sử dụng PMNM cho các

cơ quan Nhà nước

Ngày đăng: 03/07/2013, 21:51

HÌNH ẢNH LIÊN QUAN

II.3.2. Sơ đồ mô hình kinh doanh  PMNM - Phần mềm mã nguồn mở
3.2. Sơ đồ mô hình kinh doanh PMNM (Trang 41)

TỪ KHÓA LIÊN QUAN

w