TexGen:
a case study
By OSS Watch, Published:
17 June 2009, Reviewed: 11 June 2012
Bài được đưa lên
Internet ngày: 11/06/2012
Lời
người dịch: Trường hợp cuối cùng trong số 7 trường
hợp điển hình trong loạt bài về tính bền vững của
một dự án phần mềm tự do nguồn mở, là dự án
TexGen. Nó là sự kết hợp khéo léo giữa giới hàn lâm
và giới công nghiệp sao cho những đặc tính của các
giới đó được phát huy, được nhân rộng và tạo ra
nhiều sản phẩm hơn nữa cho nhiều lĩnh vực từ một dự
án phần mềm tự do nguồn mở ban đầu. Là một tham
chiếu rất tốt cho việc nghiên cứu gắn với sản xuất
ở môi trường đại học.
TexGen
là một chương trình được viết và được duy trì như
một phần của công việc của Nhóm Polyme Tổng hợp
(Polymer
Composites Group) tại Đại học Nottingham. Mấu chốt cho
vài trong số các dự án được nhóm cấp vốn, nó đã
được mở nguồn vào cuối năm 2006 như một phần của
một chiến lược để làm cho nó sẵn sàng cho các cộng
đồng nghiên vứu hàn lâm và công nghiệp rộng lớn hơn.
Thông qua vai trò của nó trong các dự án được cấp vốn
đó, TexGen đóng một phần quan trọng trong việc mang việc
cấp vốn tới nhóm. Hơn nữa, nhóm tin tưởng rằng quyết
định làm cho TexGen sẵn sàng một cách tự do đã lôi
cuốn được cả một số bao cấp mà nếu không có thể
đã không xảy ra, cũng như là một yếu tố trong sự làm
mới lại 'Nền tảng Grant' EPSRC chống trụ cho nhóm.
Giới thiệu TexGen
TexGen tạo ra các mô
hình thực tế của sợi dệt, bao gồm cả các thuộc tính
của chúng. Ứng dụng đầu tiên của nó là trong thiết
kế và sản xuất các vật liệu tổng hợp được tăng
cường các sợi phíp. Một vật liệu tổng hợp là một
vật liệu được làm bằng sự kết hợp của 2 vật liệu
đang tồn tại; trong một vật liệu tổng hợp được
tăng cường sợi phíp, các sợi phíp cứng và mạnh hình
thành nên một phần của chất tổng hợp, tăng cường
cho phần khác. Trong sản xuất, điều phổ biến đối với
việc tăng cường vật liệu sẽ được cung cấp ở dạng
sợi dệt, len từ 'sợi' làm từ các sợi phíp. TexGen tạo
ra các mô hình máy tính của các sợi dệt như vậy, kết
hợp cấu trúc của sự đan kết, sao cho để mô phỏng
hành vi của vật liệu.
Lịch sử
Sự phát triển của
TexGen đã bắt đầu trong Nhóm Polyme Tổng hợp tại Đại
học Nottingham vào năm 1998, khi các thuật toán ban đầu đã
được thừa nhận và phiên bản đầu tiên của phần mềm
đã được viết. Vào năm 2002, nó đã đạt tới phiên
bản 2 sau khi được viết lại.
Đã luôn là vấn đề
rằng TexGen được phát hành một cách tự do cho các đối
tác nghiên cứu của nhóm. Nó cũng từng được cung cấp
theo yêu cầu cho bất kỳ ai mà nhóm xem là một đối tác
nghiên cứu tiềm năng, dù chỉ khoảng 10-20 yêu cầu như
vậy đã nhận được. Dù nó không sẵn sàng một cách
công khai để tải về, và nó từng là mục tiêu của
nhóm rằng fnos sẽ được làm cho sẵn sàng theo cách này.
Tuy nhiên, phiên bản 2 đã có vài điểm yếu mà từng là
một trở ngại cho các kế hoạch để phát hành phần mềm
một cách rộng rãi hơn nữa, và cũng đã gây ra những
khó khăn cho bản thân nhóm, cho các nỗ lực phát triển
nội bộ.
Đầu tiên, nó đã
không bao giờ được lên kế hoạch sao cho nhiều lập
trình viên có thể làm việc với kho mã, nên đã không có
đủ tài liệu về mã và không có thiết kế rõ ràng.
Điều này đã gây ra các vấn đề, khi nó ngụ ý rằng
các yêu cầu tính năng, thậm chí từ bên trong nhóm, đã
khó để thích nghi.
Nếu một phiên bản
rộng lớn hơn lôi cuốn được các yêu cầu bổ sung từ
các đối tác bên ngoài, thì nó có thể cần thiết để
đảm bảo cho các bên đó có thể bản thân họ bổ sung
các tính năng hơn là mong đợi lập trình viên duy nhất
của dự án làm như thế. Tài liệu không đủ, và mã là
khó hiểu, có thể không lôi cuốn được những người
đóng góp tiềm năng từ bên ngoài vì khó nắm bắt được
kho mã.
Hơn nữa, mã từng
phụ thuộc vào các thành phần của Microsoft Windows nghĩa
là nó có thể không chạy được trên các hệ điều hành
khác, như bó máy hiệu năng cao của phòng. Cuối cùng, nó
cũng đã phụ thuộc vào một thành phần của bên thứ 3
mà giấy phép của nó cấm phân phối lại với TexGen.
Điều này có thể là một rào cản đáng kể cho sự phân
phối và hấp thu rộng rãi hơn của TexGen, khi những người
sử dụng có thể đã phải có thiện chí giành được
thành phần cần thiết này. Vì thế, phiên bản 3, đã có
cấu trúc và tài liệu tốt hơn, với một thiết kế rõ
ràng đi trước sự triển khai, và không phụ thuộc vào
một hệ điều hành hay thành phần sở hữu độc quyền
đặc biệt nào.
Mở nguồn
Đó từng là ý định
của nhóm làm cho TexGen sẵn sàng một cách tự do: nếu
mọi người có thể tải về TexGen và sử dụng nó tự
do, thì sự sử dụng tình cờ như vậy có thể dẫn tới
sự cộng tác. Tuy nhiên, nó từng là gợi ý của các sinh
viên phát triển phiên bản 3 mà TexGen được làm thành
nguồn mở. Những người giám sát dự án đồng ý, vì
các lý do được nêu bên dưới. Nhóm chọn phát hành
TexGen theo giấy phép GPLv2.
Lý do đầu tiên cho
việc phát hành như nguồn mở là phần mềm không mới
trong bản thân nó, và, trong khi một số thuật toán của
nó là mới, thì chúng đã từng được xuất bản. Điều
này có nghĩa rằng nhóm có thể từng không bỏ đi bất
kỳ nghiên cứu quan trọng nào trong mã nguồn được mở
mà chưa được làm cho sẵn sàng một cách công khai. Ngược
lại, ở những nơi mà các kỹ thuật được thể hiện
trong phần mềm có thể chưa được phát hành trong bản
thân chúng, nhưng nhóm vẫn còn muốn phổ biến theo một
số cách, thì bản thân mã có thể là một cách để phổ
biến công việc như vậy.
Lý do khác là những
người sử dụng có thể giành được lòng tin trong chương
trình nếu họ có khả năng, bằng việc nghiên cứu mã,
xem cách mà những vấn đề nhất định được giải
quyết. Ví dụ, bất kỳ sự không chắc chắn nào về bất
kỳ khía cạnh nào của sự vận hành phần mềm có thể
cuối cùng được giải quyết bằng việc xem xét mã nguồn
của nó. Hơn nữa, mọi người có thể giành được sự
hiểu biết rõ hơn về TexGen bằng việc nghiên cứu mã
nguồn của nó, và điều này có thể dẫn họ tới việc
có khả nâng sử dụng nó theo các cách thức mềm dẻo
hơn và thông minh hơn. Hơn nữa, với mã sẵn sàng và
quyền tiến hành những sửa đổi, các bên thứ 3 cũng có
thể kết hợp các mở rộng của riêng họ vào chương
trình.
Cuối cùng, vấn đề
các quyền sở hữu trí tuệ (IPR) được đơn giản hóa
bằng việc phát hành phần mềm như là nguồn mở. Vì tư
liệu bị ảnh hưởng đã được phát hành như nguồn mở,
nên các đối tác sử dụng phần mềm không còn cần phải
cân nhắc liệu có bất kỳ hạn chế nào cần phải được
đặt ra trong sử dụng TexGen của họ dù giữ lại sở
hữu trí tuệ của đại học.
Một con đường có
thể lựa chọn từng là lấy tiền cho các giấy phép phần
mềm như một sản phẩm. Tuy nhiên, nhóm đã từ chối
điều này. Đầu tiên, các khách hàng thương mại có thể
mong đợi sự hỗ trợ, mà nhóm đã không muốn đưa ra.
Lý do đáng kể nữa là, nếu phần mềm phải được mua,
thì sử dụng ngẫu nhiên mà có thể đã dẫn tới những
cộng tác đâm hoa kết trái có thể sẽ không xảy ra. Bổ
sung thêm, nó có thể có nghĩa là tất cả sự phát triển
có thể phải được làm trong nội bộ, việc gia tăng
tiếp tục cong việc cho nhóm. Và, trong khi điều này có
thể được làm tốt hơn, ví dụ, bằng việc bước vào
một mối quan hệ đối tác, bản chất tự nhiên của một
mối quan hệ đối tác thương mại có thể cấm những sự
cộng tác với những người khác, các công ty cạnh tranh.
Cuối cùng, TexGen có lẽ chỉ mạnh mẽ được để bán
như một phần của một hệ thống lớn hơn, chứ không
phải của một mình nó.
Viết các script cho
TexGen
Một tính năng đáng
chú ý của phiên bản 3 của TexGen là nó có thể được
kiểm soát thông qua các script được viết trong ngôn ngữ
Python, hoặc được sử dunngj như một thành phần của
các chương trình Python. Dù bằng cách nào, thì điều này
cũng cho phép người ta phát triển các chương trình mà
bản thân chúng không phải là một phần của TexGen, nhưng
có thể sử dụng các tiện ích được cung cấp như những
giao diện lập trình ứng dụng (API) của nó. Bằng việc
sử dụng này, người ta có thể, có hiệu lực, mở rộng
TexGen với chức năng bổ sung mà không phải sửa đổi
bản thân TexGen, hoặc tự động hóa sự tuần tự của
các hoạt động có thể nếu khác đi sẽ phải được
làm bằng tay thông qua giao diện người sử dụng của
TexGen.
Từ quan điểm kỹ
thuật, việc có khả năng tùy biến hoặc mở rộng chức
năng của TexGen từ một chương trình của một người,
tách bạch là điều mong muốn vì có khả năng sẽ dễ
dàng hơn cho việc sửa đổi mã của TexGen. Ai đó đang sử
dụng TexGen theo cách này đơn giản cần hiểu các chức
năng của nó đối với những đầu vào nào được mong
đợi, và đầu ra nào được cung cấp; đó là, từng chức
năng mà TexGen đưa ra có thể được đối xử như một
'hộp đen', trong đó người ta không cần biết nó làm
việc như thế nào, miễn là người ta sử dụng nó theo
API được làm thành tài liệu. Việc sửa đổi mã của
TexGen, mặt khác, có thể đòi hỏi một lập trình viên
để hiểu, ở mức độ nào đó, toàn bộ kiến trúc của
TexGen, và các chi tiết hoạt động nội bộ của nó.
Hơn nữa, các script
bên ngoài cho phép những người sử dụng mở rộng TexGen
trong khi vẫn giữ các sửa đổi đó tách bạch khỏi kho
mã chính. Điều này có thể là mong muốn, ví dụ, để
làm trễ sự xuất bản mã cho tới khi nghiên cứu được
xuất bản hoặc để giúp trong việc quản lý sở hữu
trí tuệ của một viện trường hoặc công ty. Đáng lưu
ý rằng trong một dự án nguồn mở lành mạnh, tất cả
những sửa đổi được quyên cúng trở ngược lại cho
dự án gốc, nơi mà chúng sẽ được chấp nhận hoặc từ
bỏ dựa vào các mục tiêu chiến lược của dự án. Tuy
nhiên, trong một số môi trường, điều này có thể là
không mong muốn, như là trường hợp với các đầu ra của
nghiên cứu. Vì các nhà nghiên cứu có khả năng mở rộng
ứng dụng thông qua một API được xuất bản, các lập
trình viên của TexGen có thể thay đổi TexGen một cách
nội bộ theo bất kỳ cách gì mà họ muốn mà không có
việc phá vỡ tính tương thích với các script của người
sử dụng, miễn là họ không thay đổi giao diện (API)
được định nghĩa mà các script bên ngoài phụ thuộc
vào. Đối với các lập trình viên của các script bên
ngoài, điều này có nghĩa là giao diện của họ đối với
chức năng của TexGen có khả năng vẫn ổn định qua các
phiên bản khác nhau của chương trình. Những sửa đổi
được thực hiện trực tiếp tới mã nguồn của TexGen,
ngược lại, có thể dễ dàng xung đột với những thay
đổi trong các phiên bản mới của TexGen, và trong bất kỳ
trường hợp nào của phải được áp dụng lại cho mã
của từng phiên bản mới. Một khi nghiên cứu được
xuất bản, những sửa đổi mã đó có thể được xuất
bản, cho phép TexGen giữ là phù hợp cho lĩnh vực đó.
Điều hành và xây
dựng cộng đồng
TexGen là một phần
của vài dự án rộng hơn, đang tiếp tục trong một phòng
của đại học, và sự phát triển của TexGen được các
thành viên của các dự án đó thực hiện; những đóng
góp mở rộng ban đầu đã tới từ alumni. Như vậy, không
có mô hình điều hành chính thống. Các nỗ lực tích cực
trong xây dựng cộng đồng là ở dạng xuất bản công
khai TexGen tại các hội nghị hàn lâm, các hội thảo của
giới công nghiệp, … ; một 'cụm' các bản tải về
thường theo sau những sự kiện như vậy.
Trong khi công việc về
TexGen vẫn còn được thực hiện chủ yếu từ các thành
viên của nhóm, thì hạ tầng của dự án từng được
thiết lập theo một cách thức như vậy như để làm cho
nó dễ dàng để tham gia với những người đóng góp bên
ngoài, họ sẽ nổi lên. Các tính năng là chìa khóa cho
thực tiễn của phát triển mở - một hệ thống kiểm
soát phiên bản, một trình theo dõi các vấn đề công
khai và các diễn đàn công khai - tồn tại và được các
lập trình viên hiện hành sử dụng lại, thậm chí cả
khi thiếu đầu vào đáng kể từ bên ngoài. Điều này
đưa ra một cách dễ hiểu phổ biến cho những người
ngoài để tham gia với một dự án nguồn mở. Tuy nhiên,
để có một mô hình điều hành rõ ràng, việc đưa ra
các qui tắc theo đó cộng đồng vận hành, có thể là
mong muốn: nó làm rõ tình trạng của các thành viên của
dự án, và được lôi cuốn trong trường hợp có tranh
cãi. Việc có khả năng hiểu trước các điều kiện theo
đó một dự án vận hành cho phép những người đóng góp
lập kế hoạch cho sự tham gia của họ.
Kết quả đầu ra
TexGen đã thấy những
người sử dụng trong cả giới hàn lâm và công nghiệp,
với hơn 3.00 bản tải về được đăng ký cho tới tháng
05/2009. Đáng chú ý, các bao cấp nghiên cứu và các mối
quan hệ đối tác đáng giá đã tới từ các công ty chỉ
có thể trở nên hiểu được rằng Nottingham đã sở hữu
sự tinh thông mà mối quan hệ đỡ đầu này có thể đã
không xảy ra khi TexGen đã không được sẵn sàng một
cách công khai và là tự do, khi các công ty đó có thể ít
có khả năng hơn để bắt đầu sử dụng phần mềm đó.
Bây giờ, TexGen được
sử dụng trong 8 trong nhóm tổng số khoảng 20 dự án được
cấp vốn. Trong 4 trong các trường hợp đó, các đối tác
công nghiệp đã khởi tạo dự án từng là những người
sử dụng đang tồn tại của TexGen, đã tải nó về kể
từ phát hành nguồn mở của nó. Nhóm này tin tưởng rằng
2 trong số các đối tác đã tiếp cận Đại học
Nottingham như là kết quả của việc tải về và sử dụng
TexGen của họ. Giá trị của các 2 tài trợ đó là £176k
and £318k. Những phần thưởng đó, được tập trung vào
hiệu năng của các sợi dệt về kỹ thuật và đồ thêu
trang trí, đại diện cho những đường hướng mới cho
nhóm, hoàn toàn với các đối tác mới từ các khu vực
kinh doanh mới.
Quan trọng nhất đối
với Đại học, sự cung cấp các phần mềm như là nguồn
mở từng là yếu tố chính trong việc đảm bảo sự làm
lại mới Nền tảng Grant có uy tín của EPSRC để chống
trụ cho nghiên cứu cơ bản trong tương lai có liên quan
tới sợi dệt và sợi tổng hợp kỹ thuật. Phần thưởng
này, trị giá £836k trong vòng 4 năm, hỗ trợ cho nhóm như
là một tổng thể, không chỉ các hoạt động của nó có
liên quan tới TexGen. Làm cho TexGen sẵn sàng tự do như
nguồn mở đã giúp cho nhóm bày ra được một con đường
rõ ràng cho sự phổ biến vầ khai thác công việc của
nó, như được cơ quan cấp vốn mong đợi: Giáo sư Long,
Trưởng khoa về Nghiên cứu tại Kho Kỹ thuật tại Đại
học Nottingham nói: 'Tại cuộc phỏng ván của chúng tôi
[cho sự làm mới lại trợ cấp], các thành viên của nhóm
(các nhà nghiên cứu lâu năm và các đại diện giới công
nghiệp) đã cực kỳ có ấn tượng với tiếp cận của
chúng tôi [đối với việc phổ biến TexGen], và đặc
biệt kho người sử dụng rất rộng rãi và dảy các ứng
dụng mà điều này đã tạo ra'.
Kết luận
Tiếp cận của nhóm
Nottingham về phổ biến và khai thác TexGen là một tiếp
cận theo đó bản thân phần mềm không được đối xử
như là tài sản ban đầu sẽ được khai thác. Thay vào
đó, trọng tâm của nhóm vẫn là nghiên cứu rộng hơn
của nó. Vai trò của TexGen được mở nguồn vì thế là
như một phương tiện xúc tác cho nghiên cứu tiếp tục
trong lĩnh vực đó, cả trong và ngoài Nottingham, và như
một phương tiện cho việc nhân giống một phần công
việc của nhóm và quảng cáo cho sự tinh thông của họ.
Điều này đã có lợi không chỉ cho những người trong
giới hàn lâm và công nghiệp mà đã giành được mọt
công cụ mới để sử dụng trong công việc của họ, mà
còn mang lại những lợi ích ngược trở lại cho bản
thân Nottingham; Trước hết, cơ quan mà thưởng cho việc
chống trụ cho Nền tảng Grant đã nhận thức được điều
này như một tiếp cận thành công cho sự phổ biến, một
yếu tố chủ chốt trong sự làm mới lại trợ cấp. Thứ
2, nó đã lôi cuốn được 2 trợ cấp bổ sung cho dự án
từ các đối tác từng được truyền cảm hứng để
tiếp cận Nottingham nhờ sử dụng TexGen của họ. Cuối
cùng, nó đã cho phép công việc của nhóm lan truyền vượt
ra khỏi lĩnh vực thông thường của nó và được sử
dụng trong các lĩnh vực khác. 2 trợ cấp bổ sung cho dự
án mà phần mềm đã lôi cuốn được đã minh họa cho
cách
mà các dự án nguồn mở có thể được khai thác thành
công và bền vững (bản
dịch tiếng Việt), với 2 đối tác đó đưa ra tính
ứng dụng được sự tinh thông của Nottingham cho lĩnh vực
của riêng họ nhờ sử dụng TexGen của họ.
TexGen
is a program written and maintained as part of the work of the
Polymer
Composites Group at Nottingham University. Key to several of the
group’s grant-funded projects, it was open sourced in late 2006 as
part of a strategy to make it available to the wider industrial and
academic research communities. Through its role in these funded
projects, TexGen plays an important part in bringing research funding
to the group. Furthermore, the group believes that the decision to
make TexGen freely available has both attracted some grants which
otherwise might not have been forthcoming, as well as being a factor
in the renewal of the group’s underpinning EPSRC ‘Platform
Grant’1.
TexGen
generates realistic models of textiles, including their properties.
Its primary application is in the design and manufacture of
fibre-reinforced composites. A composite material is one that is made
by combining two existing materials; in a fibre-reinforced composite,
stiff, strong fibres form one part of the composite, reinforcing the
other. In manufacturing, it is common for this reinforcing material
to be supplied in textile form, woven from ‘yarns’ made from the
fibres. TexGen creates computer models of such textiles,
incorporating the structure of the weave, so as to simulate the
behaviour of the material.
Development
of TexGen began in the Polymer Composites Group at Nottingham
University in 1998, when the initial algorithms were conceived and
the first version of the software was written. In 2002, it reached
version two after being re-written.
It
had always been the case that TexGen was released freely to the
group’s research partners. It was also supplied on demand to anyone
the group considered a potential research partner, though only around
10 or 20 such requests were received. It was not, though, publicly
available for download, and it was a goal of the group that it should
be made available in this way. However, version two had several
weaknesses that were an obstacle to these plans to release the
software more widely, and which also caused difficulties for the
group’s own, internal development efforts.
First,
it had never been planned that multiple developers would work on the
code base, so there was insufficient documentation of the code and no
clear design. This was already causing problems, as it meant that the
project was being maintained by a single developer, a PhD student.
Having only one developer meant that feature requests, even from
within the group, were difficult to accommodate. If a wider release
attracted additional requests from external parties, it would be
necessary to ensure those parties could add the features themselves
rather than expecting the single project developer to do so.
Insufficient documentation, and code that is difficult to understand,
can be off-putting to potential external contributors because it is
difficult to get to grips with the code base.
Furthermore,
the code was dependent on components of Microsoft Windows, meaning it
could not run on other operating systems, such as the department’s
high-performance cluster. Finally, it also depended on a third-party
component whose licence prohibited redistribution with TexGen. This
would have been a significant barrier to TexGen’s wider
distribution and uptake, as users would have had to be willing to
obtain this necessary component. Version three, therefore, was to be
better structured and documented, with a clear design preceding
implementation, and not dependent on one particular operating system
or proprietary component.
It
was the intention of the group to make TexGen freely available: if
people could download TexGen and use it for free, such casual use
might lead to collaboration. However, it was the suggestion of the
students developing version three that TexGen be made open source as
well. The supervisors of the project agreed, for the reasons set out
below. The group chose to release TexGen under the GNU General Public
License v2.
The
first reason for releasing as open source was that the software is
not novel in itself, and, while some of its algorithms are novel,
these had already been published. This meant that the group would not
have been giving away any important research in the open sourced code
that was not already publicly available. Conversely, where there are
techniques embodied in the software that would not be publishable in
themselves, but that the group still want to disseminate in some way,
the code itself can be a way of disseminating such work.
Another
reason was that users might gain confidence in the program if they
were able, by studying the code, to see how certain problems are
solved. For example, any uncertainty regarding any aspect of the
operation of the software could ultimately be resolved by examining
its source code. Further, people could gain a more thorough
understanding of TexGen by studying its source code, and this might
lead to them being able to use it in more flexible and intelligent
ways. Furthermore, with the code available and the right to make
modifications, third parties could also incorporate extensions of
their own into the program.
Finally,
intellectual property rights (IPR) issues are simplified by releasing
the software as open source. Because the affected material has
already been released as open source, partners using the software
would no longer need to consider whether any limitation need be
placed on their use of TexGen so as to preserve the university’s
intellectual property.
An
alternative route might have been to charge for software licences as
a product. The group, however, rejected this. First, commercial
customers would expect support, which the group did not want to
provide. Another significant reason was that, if the software had to
be bought, casual use that might have led to fruitful collaborations
would not occur. In addition, it would mean that all development
would have to be done in-house, further increasing the work for the
group. And, while this could be ameliorated by, for example, entering
into a partnership, the nature of a commercial partnership might
inhibit collaborations with other, competing companies. Finally,
TexGen would probably only have been viable to sell as part of a
larger system, not on its own.
A
notable feature of version three of TexGen is that it can be
controlled via scripts written in the Python computer language, or be
used as a component by Python programs. Either way, this allows one
to develop programs that are not themselves part of TexGen, but that
can use facilities provided by it. The specification of the exact
functionality that TexGen offers to external programs is known as its
Application Programming Interface (API). Using this, one can, in
effect, extend TexGen with additional functionality without having to
modify TexGen itself, or automate sequences of operations that would
otherwise have to be done manually through TexGen’s user interface.
From
a technical point of view, being able to customise or extend TexGen’s
functionality from one’s own, separate program is desirable because
that is likely to be easier than modifying TexGen’s code. Someone
using TexGen in this way simply needs to understand its functions in
terms of what inputs are expected, and what outputs are provided;
that is, each function that TexGen offers may be treated as a ‘black
box’, in that one need not know how it works, so long as one uses
it according to the documented API. Modifying TexGen’s code, on the
other hand, would require a programmer to understand, to some extent,
TexGen’s overall architecture, and details of its internal
operation.
Furthermore,
external scripts allow users to extend TexGen while still keeping the
modifications separate from the main code base. This may be
desirable, for example, in order to delay code publication until
research has been published or to help in managing an institution’s
or company’s intellectual property. It should be noted that in a
healthy open source project all modifications are donated back to the
core project, where they will be accepted or rejected based on the
strategic goals of the project. However, in some environments this
may not be desirable, as is the case with research outputs. Since
researchers are able to extend the application via a published API,
TexGen developers can change TexGen internally in any way they want
without breaking compatibility with users’ scripts, so long as they
do not change the defined interface (API) that external scripts
depend on. For the developers of the external scripts, this means
that their interface to TexGen’s functionality is likely to stay
stable over different versions of the program. Modifications made
directly to TexGen’s source code, by contrast, could easily
conflict with changes in new versions of TexGen, and in any case must
be re-applied to the code of each new version. Once the research has
been published, these code modifications can be published, allowing
TexGen to remain relevant to the domain.
TexGen
is part of several continuing, wider projects within a university
department, and development of TexGen is done by members of those
projects; external contributions have come primarily from alumni. As
such, there is no formal governance model. Active efforts at
community building take the form of publicising TexGen at academic
conferences, industrial seminars, and so on; a clear ‘spike’ in
downloads often follows such events.
While
the work on TexGen is still done mainly by members of the group, the
project’s infrastructure was set up in such a way as to make it
easy to engage with external contributors, should they emerge.
Features key to the practice of open development - a version control
system, a public issue tracker and public forums - exist and are used
by the current developers, even in the absence of significant
external input. This provides an easy and commonly understood way for
outsiders to engage with an open source project. However, to have a
clear governance model, setting out the rules by which the community
operates, would be desirable: it clarifies the status of the members
of the project, and be appealed to in case of dispute. Being able to
understand in advance the conditions under which a project operates
allows contributors to plan their involvement.
TexGen
has found users in both academia and industry, with over 3000
downloads registered by May 2009. Notably, valuable research grants
and partnerships have come from companies that may only have become
aware that Nottingham possessed the expertise they sought thanks to
their experience of TexGen. The TexGen development team is convinced
that this sponsorship would not have occurred had TexGen not been
freely and publicly available, as those companies would have been
less likely to have begun using the software.
At
present, TexGen is used in eight of the group’s total of roughly 20
funded projects. In four of those cases, the industrial partners that
initiated the project were existing users of TexGen, having
downloaded it since its open source release. The group believes that
two of these partners approached Nottingham University as a result of
their downloading and using TexGen. The value of these two grants is
£176k and £318k. These awards, focused on performance of technical
textiles and apparel, represent new directions for the group, with
entirely new partners from new business sectors.
Most
importantly to the University, provision of the software as open
source was a key factor in securing renewal of a prestigious EPSRC
Platform Grant to underpin future fundamental research related to
technical textiles and composites. This award, worth £836k over four
years, supports the group as a whole, not just its activities
concerning TexGen. Making TexGen freely available as open source
helped the group to demonstrate a clear route for dissemination and
exploitation of its work, as required by the funding body: Prof.
Long, Associate Dean for Research at the Faculty of Engineering at
Nottingham University, states: ‘At our panel interview [for renewal
of the grant], the panel members (senior academics and industry
representatives) were extremely impressed by our approach [to
disseminating TexGen], and in particular the very wide user base and
range of applications that this had generated.’
The
Nottingham group’s approach to the dissemination and exploitation
of TexGen is one in which the software itself is not treated as the
primary asset to be exploited. Rather, the focus of the group remains
its wider research. The role of the open sourced TexGen has been,
therefore, as a vehicle for enabling further research in the field,
both within and outside Nottingham, and as a vehicle for propagating
part of the group’s work and advertising their expertise. This has
benefited not only those people in academia and industry who have
thereby gained a new tool to use in their work, but has also brought
benefits back to Nottingham itself. First, the body that awards their
underpinning Platform Grant recognised this as a successful approach
to dissemination, a key factor in renewal of the grant. Second, it
attracted two additional project grants from partners who were
inspired to approach Nottingham thanks to their use of TexGen.
Lastly, it allowed the group’s work to spread beyond its normal
field and be used in different areas. The two additional project
grants the software attracted both illustrated how
open source projects can successfully be exploited and sustained,
with these two partners realising the applicability of Nottingham’s
expertise to their own area thanks to their use of TexGen.
Dịch: Lê Trung Nghĩa
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.