Trong công nghệ máy tính, plugin (hay còn gọi là add-in, addin, add-on, addon, hoặc extension), trình cắm, hoặc phần mở rộng, là một phần mềm bổ sung nhằm cung cấp các tính năng cụ thể cho một phần mềm ứng dụng chính. Nếu phần mềm hỗ trợ, plug-in cho phép mở rộng chức năng của ứng dụng. Ví dụ, plug-in thường được dùng trong trình duyệt web để phát video, quét virus, và hiển thị các loại tệp tin mới. Hai ví dụ nổi bật là Adobe Flash Player và QuickTime. Plugin không hoạt động nếu phần mềm chính không chạy.
Mục đích và các ví dụ
Các phần mềm ứng dụng hỗ trợ plug-in vì nhiều lý do. Một số lý do chính bao gồm:
- Cho phép các nhà phát triển bên ngoài tạo ra các tính năng mở rộng cho phần mềm.
- Hỗ trợ dễ dàng việc thêm các tính năng mới.
- Giảm kích thước của ứng dụng.
- Phân tách mã nguồn để giải quyết vấn đề giấy phép phần mềm không tương thích.
Một số ví dụ cụ thể và lý do sử dụng plug-in:
- Phần mềm email sử dụng plug-in để mã hóa và giải mã (ví dụ: Pretty Good Privacy)
- Phần mềm đồ họa sử dụng plug-in để hỗ trợ các định dạng tệp và quá trình tái hiện hình ảnh (ví dụ: Adobe Photoshop)
- Các ứng dụng đa phương tiện sử dụng plug-in để hỗ trợ các định dạng tệp và tích hợp chúng vào bộ lọc (ví dụ: foobar2000, GStreamer, Quintessential, VST, Winamp, XMMS)
- Microsoft Office sử dụng plug-in (hay add-ins) để mở rộng chức năng bằng cách thêm lệnh và tính năng đặc biệt.
- Phần mềm phân tích mạng sử dụng plug-in để giải mã các gói định dạng (ví dụ: OmniPeek)
- Các ứng dụng cảm biến điều khiển từ xa sử dụng plug-in để xử lý dữ liệu từ các cảm biến khác nhau (ví dụ: Opticks)
- Smaart, ứng dụng phân tích phổ âm thanh, chấp nhận plug-in cho bộ xử lý tín hiệu số bên thứ ba
- Môi trường phát triển tích hợp sử dụng plug-in để hỗ trợ các ngôn ngữ lập trình khác nhau (ví dụ: Eclipse, jEdit, MonoDevelop)
- Venue, hệ thống giao diện điều khiển kỹ thuật số của Digidesign thuộc sở hữu của Avid Technology, hỗ trợ plug-in bên thứ ba
- Trình duyệt sử dụng plug-in (thường triển khai theo chuẩn NPAPI) để phát video và hỗ trợ các định dạng (ví dụ: Flash, QuickTime, Microsoft Silverlight, 3DMLW)
Cơ chế hoạt động
Như hình minh họa, ứng dụng chính (host application) cung cấp dịch vụ cho các plug-in, bao gồm một phương thức để đăng ký và giao thức trao đổi dữ liệu. Các plug-in phụ thuộc vào dịch vụ của ứng dụng chính và không thể hoạt động độc lập. Ngược lại, ứng dụng chính có thể hoạt động độc lập, cho phép người dùng thêm và cập nhật plug-in mà không cần thay đổi ứng dụng chính.
Giao diện lập trình ứng dụng (API) mã nguồn mở cung cấp một giao diện tiêu chuẩn để các bên thứ ba có thể phát triển các plug-in tương tác với ứng dụng chính. Một API vững chắc giúp các plug-in của bên thứ ba hoạt động ổn định dù có thay đổi phiên bản của ứng dụng gốc, kéo dài tuổi thọ của các ứng dụng đã lỗi thời. Các API plug-in cho Adobe Photoshop và After Effects đã trở thành chuẩn mực, buộc các ứng dụng đối thủ như Corel Paint Shop Pro phải tuân theo.
So sánh với các tiện ích mở rộng
Tiện ích mở rộng khác biệt so với plug-in. Plug-in thường có chức năng hạn chế. Ví dụ, khi phát triển Mozilla Firefox, mục tiêu là tạo ra một ứng dụng cơ bản nhỏ gọn và loại bỏ các yếu tố không cần thiết.