LAMP không được IBM PureSystems hỗ trợ bên ngoài hộp, do đó, nhóm nghiên cứu đã phát triển một kiểu mẫu mới và một tập các trình cắm thêm hỗ trợ cho việc mô hình hóa, triển khai và hoạt
Trang 1Triển khai các ứng dụng mới trên IBM
PureSystems bằng các trình cắm thêm, Phần 1
Giới thiệu về IBM PureSystems — một họ hệ thống đám mây chuyên gia, mức doanh nghiệp, tích hợp có chứa các ứng dụng, các dịch vụ, phần cứng và thậm chí ý kiến về chuyên môn (được chuyển giao dưới dạng các mẫu thực hành tốt nhất) — đưa điện toán đám mây lên những đỉnh cao mới Một cách để chuẩn bị một ứng dụng sử dụng IBM PureSystems là tạo thủ công một trình cắm thêm, một cầu nối giữa gói ứng dụng và hệ thống
Trong loạt bài hai phần này, các tác giả trình bày các lý do thiết kế, các nỗ lực phát triển và các bài học đã thu được từ dự án này Phần 1 mô tả các nỗ lực phát triển để chạy SugarCRM, một ứng dụng của nhà cung cấp phần mềm độc lập, trên IBM PureSystems SugarCRM là một ứng dụng PHP đòi hỏi chồng ứng dụng LAMP (Linux®, Apache, MySQL, PHP) LAMP không được IBM PureSystems hỗ trợ bên ngoài hộp, do đó, nhóm nghiên cứu đã phát triển một kiểu mẫu mới
và một tập các trình cắm thêm hỗ trợ cho việc mô hình hóa, triển khai và hoạt động của ứng dụng trên đỉnh của hình ảnh AIX của IBM và Linux cơ sở Phần 2 tập trung vào các bài học đã thu được từ dự án này
IBM PureSystems quản lý toàn bộ vòng đời của một ứng dụng Chúng tôi đã bắt đầu bằng cách đạt được sự hiểu biết sâu sắc về SugarCRM bằng cách thảo luận với các chuyên gia về chủ đề IBM PureSystems tại IBM, tổ chức hội thảo với các ISV (Nhà cung cấp phần mềm độc lập) và trải nghiệm với ứng dụng Chúng tôi cũng đã phải xem xét các vấn đề cấp phép vì có liên quan đến phần mềm của nhà cung cấp và nguồn mở Các cơ sở dữ liệu được hỗ trợ bao gồm MySQL
và IBM DB2®, đem lại lợi thế hơn cho IBM Việc hiểu toàn bộ bức tranh sẽ cho phép chúng tôi
bố trí kiến trúc của các trình cắm thêm và định nghĩa cách IBM PureSystems hỗ trợ mỗi vòng đời của SugarCRM
Trong khi mô hình hóa ứng dụng, các trình cắm thêm cho phép người dùng kéo và thả một hộp SugarCRM và kết nối với một hộp cơ sở dữ liệu, có thể là MySQL hoặc DB2 MySQL được mô hình hóa như một máy chủ hiện có, trong khi DB2 có thể là một máy chủ mới hoặc máy chủ hiện
có
Khi người sử dụng triển khai mẫu ứng dụng SugarCRM vào đám mây, các kịch bản lệnh của trình cắm thêm tự động hóa việc cài đặt và việc cấu hình tất cả phần mềm trung gian và các ứng dụng Các kịch bản lệnh tương tác với IBM PureSystems để thu được thông tin triển khai và đưa
ra cập nhật trạng thái
Sau khi đã triển khai ứng dụng, các trình cắm thêm cho phép người dùng bắt đầu và dừng dịch
vụ Apache và xem các bản ghi nhật ký từ SugarCRM
Từ dự án này chúng tôi đã thu được kinh nghiệm quý báu từ sự hiểu biết không chỉ về phát triển trình cắm thêm mà còn về quá trình tư duy khi chạy một ứng dụng trong đám mây Trong quá trình phát triển, chúng tôi thảo luận thường xuyên với nhóm phát triển trình cắm thêm IBM PureSystems về hướng dẫn của họ và cung cấp thông tin phản hồi về Bộ dụng cụ Phát triển trình cắm thêm (PDK - Plug-in Development Kit) Một số thông tin phản hồi của chúng tôi đã dẫn đến
Trang 2các mục công việc mới cho nhóm phát triển và các cách thực hành mới tốt nhất Chúng tôi cũng
đã hỏi ý kiến nhóm sản phẩm để bảo đảm thiết kế của chúng tôi phù hợp với định hướng chiến lược của IBM
Xác định thách thức
SugarCRM là một nhà cung cấp phần mềm độc lập (ISV), cung cấp các giải pháp quản lý quan
hệ khách hàng Các thế mạnh của giải pháp SugarCRM gồm một trải nghiệm người dùng trực quan và một nền tảng nguồn mở rất linh hoạt Giải pháp này có sẵn trong bốn phiên bản và có thể được triển khai trên trang web, được công ty lưu trữ trên máy chủ hay trong đám mây SugarCRM là gì
Giải pháp SugarCRM là một ứng dụng PHP thường chạy trên một chồng LAMP (Linux, Apache, MySQL, PHP) Phần mềm hỗ trợ bổ sung được sử dụng để cải thiện hiệu năng, ví dụ như
Alternative PHP Cache (APC - Bộ nhớ đệm PHP thay thế) và triển khai rộng ra là memcache IBM PureSystems không cung cấp sự hỗ trợ chồng LAMP như là một phần thiết lập ban đầu Nhóm các phòng thí nghiệm đám mây đã phát triển sự hỗ trợ cần thiết để chạy sugarCRM trên IBM PureSystems
Định nghĩa kịch bản kinh doanh
Bước đầu tiên là để gắn kết các mục tiêu kinh doanh và các giải pháp kỹ thuật Chúng tôi đã xác định các kịch bản kinh doanh sau để hỗ trợ trải nghiệm từ đầu đến cuối, từ hỗ trợ đến chạy một ứng dụng, cho một khách hàng IBM PureSystems, người muốn chạy ứng dụng SugarCRM
Chạy phần mềm nguồn mở và SugarCRM trong IBM PureSystems
Mô hình hóa và cấu hình các ứng dụng SugarCRM
Triển khai và chạy ứng dụng SugarCRM trong đám mây IBM PureSystems
Quản lý vòng đời của các cá thể đang chạy SugarCRM
Hỗ trợ hai cơ sở dữ liệu như các kho dữ liệu: MySQL và DB2
Về đầu trang
Định nghĩa kiến trúc của trình cắm thêm
Để định nghĩa kiến trúc của trình cắm thêm, hãy xem xét kỹ hơn về các cấu trúc liên kết
SugarCRM điển hình, các lý do thiết kế và các vấn đề cấp phép có thể ảnh hưởng đến sự phát triển công nghệ
SugarCRM là một ứng dụng PHP
ISV đã khuyến cáo ngăn xếp phần mềm cho System x và System p được tóm tắt trong Bảng 1:
Trang 3Bảng 1 Chồng phần mềm được đề nghị cho SugarCRM
System x (Hệ thống x) System p (Hệ thống y)
Red Hat Enterprise Linux 5 AIX 7.1
PHP 5.3 với các phần mở rộng bắt buộc PHP 5.3 với các phần mở rộng bắt buộc
Nhóm phát triển về SugarCRM đã chỉ ra rằng cấu trúc liên kết điển hình là một máy chủ Apache duy nhất được nối đến một máy chủ cơ sở dữ liệu, như trong Hình 1
Hình 1 Cấu trúc liên kết của máy chủ duy nhất
Ít phổ biến hơn là một công nghệ cụm xử lý một lượng người dùng lớn hơn bằng cách mở rộng thêm số lượng các máy chủ Apache, như trong Hình 2
Trang 4Hình 2 Cấu trúc liên kết cụm
Trong trường hợp này, SugarCRM sử dụng memcache làm trình quản lý phiên và nginx làm bộ cân bằng tải Vì ứng dụng viết vào lại thư mục cục bộ nơi Apache lưu trữ các tệp và dữ liệu PHP, nên các máy chủ Apache phải chia sẻ cùng một thư mục cục bộ; điều này được thực hiện bằng cách lưu trữ thư mục này trên một máy chủ NFS Hệ thống tệp chia sẻ cũng giúp nâng cấp lên phiên bản SugarCRM mới vì nó cho phép tất cả các máy chủ được nâng cấp cùng một lúc Các lý do thiết kế
Một khái niệm quan trọng trong IBM PureSystems là cung cấp cho người dùng một cái nhìn về ứng dụng là trung tâm của đám mây, để cho người dùng có thể tập trung vào ứng dụng và bỏ qua
cơ sở hạ tầng bên dưới IBM PureSystems quản lý ba khía cạnh của một ứng dụng: mô hình hóa, triển khai và hoạt động Có thể có một số lượng lớn các kịch bản tham gia vào ba khía cạnh này Dưới đây là các lý do mà chúng tôi đã sử dụng khi thực hiện lựa chọn của mình:
Trong khi IBM PureSystems có thể hỗ trợ một cấu trúc liên kết cụm cho SugarCRM bằng cách sử dụng chính sách mở rộng quy mô, thì chúng tôi hạn chế phạm vi của dự án theo một cấu trúc liên kết máy chủ duy nhất
Mặc dù MySQL thường được sử dụng chung cho cơ sở dữ liệu theo các cách triển khai điển hình, chúng tôi muốn tập trung vào DB2 trong khi cung cấp MySQL Điều này đã
Trang 5được làm bằng cách cho phép người dùng mô hình hóa DB2 hoặc như là một cá thể mới hoặc như là một cá thể hiện có, nhưng MySQL chỉ được hỗ trợ như là một cá thể hiện có
Ngăn xếp phần mềm Apache/PHP là một nền tảng phổ biến cho máy chủ web nguồn mở,
do đó có thể sử dụng lại một bộ sưu tập các trình cắm thêm mới đang hỗ trợ ngăn xếp này theo các cam kết khác Suy nghĩ ban đầu của chúng tôi là mô hình hóa ngăn xếp này như
là một thành phần độc lập và SugarCRM như là một thành phần riêng lẻ được liên kết với
nó để cho phép chúng tôi nhanh chóng bổ sung sự hỗ trợ cho một ứng dụng PHP mới Chúng tôi đã có lo lắng là một mẫu ứng dụng như thế sẽ không phù hợp tốt với cách tiếp cận ứng dụng là trung tâm bởi vì nó trưng ra phần ngăn xếp phần mềm của cơ sở hạ tầng,
vì thế chúng tôi quyết định mô hình hóa ứng dụng SugarCRM và hỗ trợ đầy đủ cho ngăn xếp phần mềm như là một thành phần riêng lẻ
Cấu hình cho SugarCRM tương đối đơn giản và chỉ liên quan đến một tập nhỏ các tham
số Chúng tôi đã chọn một tập con các tham số để trưng ra với thành phần SugarCRM
Tập các tham số đầy đủ để cấu hình cơ sở dữ liệu còn quan trọng hơn: Chúng tôi đã chỉ trưng ra các tham số liên quan đến SugarCRM và thiết lập các tham số còn lại theo giá trị mặc định Tập các tham số là giống hệt nhau đối với DB2 và MySQL, mặc dù chúng thuộc về các thành phần khác nhau
Các vấn đề cấp phép
Thông thường các vấn đề cấp phép không có nhiều ý nghĩa trong thiết kế công nghệ, nhưng do một số tải làm việc của ISV có thể yêu cầu phần mềm không phải của IBM, nên bạn phải quản lý tốt việc cấp phép cho phần mềm và phần mềm trung gian Chúng tôi đã quyết định chọn các cách tiếp cận sau:
Đóng gói phần mềm trong các trình cắm thêm Mã nguồn hoặc các mã nhị phân của
phần mềm được kèm theo trong tệp zip của trình cắm thêm và trở nên có sẵn để sử dụng khi chạy kiểu mẫu và trình cắm thêm trong giao diện quản trị của IBM PureSystems Trong quá trình hỗ trợ cho kiểu mẫu này, người quản trị đám mây xem xét và chấp nhận các thỏa thuận cấp phép phần mềm Cách tiếp cận phần mềm đóng gói này làm cho phần mềm được tích hợp chặt chẽ với các quá trình hỗ trợ và phát triển trình cắm thêm
Để cho người quản trị đám mây cung cấp mã nguồn hoặc các mã nhị phân của phần mềm trong khi hỗ trợ cho trình cắm thêm Các trình cắm thêm sẽ được nhập khẩu vào
IBM PureSystems cùng với gói kiểu mẫu và ở trạng thái "không chạy" (disabled) Người quản trị đám mây thu thập phần mềm cần thiết tiếp sau các thủ tục cấp phép điển hình, rồi
sử dụng tùy chọn cấu hình cho các trình cắm thêm riêng lẻ trong giao diện quản trị của IBM PureSystems Kết quả là, trình cắm thêm đã chạy và các tệp phần mềm vẫn tiếp tục tồn tại trong kho lưu trữ của IBM PureSystems Trong trường hợp này, quá trình thỏa thuận về giấy phép phần mềm được thực hiện bên ngoài môi trường IBM PureSystems
Xây dựng mã nguồn hoặc các mã nhị phân của phần mềm thành hình ảnh hệ điều hành cơ sở. Các thỏa thuận giấy phép cần phải được người quản trị đám mây chấp nhận khi bổ sung máy ảo vào danh mục của IBM PureSystems Vì hình ảnh hệ điều hành cơ sở như nhau được chia sẻ trên nhiều kiểu mẫu và các trình cắm thêm, nên cách tiếp cận này làm việc với phần mềm chung cho toàn bộ miền IBM PureSystems tốt hơn so với phần mềm đặc trưng của trình cắm thêm
Trang 6Ứng dụng SugarCRM phụ thuộc vào một số phần mềm nguồn mở và phần mềm của bên thứ ba,
vì vậy chúng tôi quyết định đóng gói các tệp SugarCRM vào các trình cắm thêm của mình và lấy
mã nguồn hoặc các mã nhị phân của phần mềm, mã nguồn mở của IBM, làm đầu vào của người quản trị đám mây trong lúc hỗ trợ trình cắm thêm
Về đầu trang
Thiết kế và phát triển
Trình tự của các phần nhỏ dưới đây biểu diễn luồng thiết kế và các quá trình thực hiện của chúng tôi khi phát triển các trình cắm thêm SugarCRM
Thiết kế giải pháp
Quyết định thiết kế giải pháp chủ chốt là để xác định các vai trò và các trách nhiệm của các trình cắm thêm Chúng tôi chủ yếu xem xét hai cách tiếp cận:
Thứ nhất là để phát triển một tập các trình cắm thêm tổng quát để hỗ trợ cho Apache, PHP và kết nối cơ sở dữ liệu và áp dụng SugarCRM làm một đầu vào cho các trình cắm thêm Đây là cách linh hoạt hơn để thiết kế và phân phối các khả năng PHP đa năng thực
sự, có thể mở rộng các khả năng đó cho các ứng dụng PHP khác theo cách tương tự
Thứ hai là để thiết kế và thực hiện PHP đặc trưng SugarCRM và các trình cắm thêm cơ
sở dữ liệu để bảo đảm các ứng dụng SugarCRM có đủ chức năng Thiết kế lấy ứng dụng làm trung tâm rất thích hợp với khái niệm ứng dụng ảo và làm cho dễ xác định quyền sở hữu và các trách nhiệm của các trình cắm thêm giữa tất cả các bên liên quan
Dựa vào bản chất động cao trong cấu hình PHP, chúng tôi chọn thiết kế lấy ứng dụng làm trung tâm (có nghĩa là, được thiết kế cho SugarCRM) làm giải pháp hỗ trợ trực tiếp; ý định của chúng tôi là xem xét lại cách tiếp cận có thể sử dụng lại và tổng quát hơn bằng cách thực hiện mã mô
đun Căn cứ vào các hướng dẫn tương tác của trình cắm thêm IBM PureSystems trong Hướng
dẫn phát triển trình cắm thêm (Plug-in Development Guide), ba trình cắm thêm của chúng tôi
được thiết kế với các trách nhiệm riêng
Trình cắm thêm SugarCRM
o Định nghĩa và thu gom đầu vào của người dùng để cài đặt SugarCRM
o Cài đặt các gói hệ điều hành cần thiết
o Cài đặt và cấu hình phần mềm cần thiết gồm cả Apache, PHP và APC
o Sao chép và chuẩn bị gói phần mềm Doanh nghiệp SugarCRM (SugarCRM Enterprise)
o Cung cấp giám sát bản ghi nhật ký SugarCRM
o Hỗ trợ các hoạt động thời gian chạy cơ bản
Trình cắm thêm liên kết DB2
o Định nghĩa và thu gom đầu vào của người dùng cho một cá thể DB2 hiện có
o Hỗ trợ một cá thể DB2 mới trong cùng một mẫu ứng dụng như SugarCRM
Trang 7o Cài đặt và cấu hình phần mềm cần thiết gồm cả ứng dụng khách chủ dữ liệu của IBM và phần mở rộng PHP của IBM DB2
o Cấu hình lại PHP để làm việc với DB2
o Cài đặt và cấu hình SugarCRM Enterprise với DB2 như là cơ sở dữ liệu tầng sau
Trình cắm thêm liên kết MySQL
o Định nghĩa và thu gom đầu vào của người dùng cho một cá thể MySQL hiện có
o Cài đặt và cấu hình phần mềm cần thiết gồm có các gói MySQL phía máy khách
o Cấu hình lại PHP để làm việc với MySQL
o Cài đặt và cấu hình SugarCRM Enterprise với MySQL như là cơ sở dữ liệu tầng sau
Do tính chất nguồn mở của Apache và PHP, một quyết định quan trọng khác đối với chúng tôi là liệu có nên đóng gói các mã nhị phân của phần mềm bên thứ ba hoặc có nên xây dựng phần mềm tiên quyết đang chạy không Chúng tôi đã quyết định xây dựng từ các nguồn do người dùng cung cấp để có khả năng mở rộng và có khả năng linh hoạt hơn
Đóng gói giải pháp
Căn cứ vào các quyết định thiết kế và các lý do cấp phép, giải pháp hỗ trợ cho SugarCRM được đóng gói thành nhiều tệp, được dùng để chạy các kịch bản kinh doanh trong IBM PureSystems
Tệp trình cắm thêm chính là gói kiểu mẫu có chứa định nghĩa kiểu mẫu và 4 trình cắm thêm Tệp này có mã Java™, cấu hình JSON, Python và các kịch bản lệnh vỏ (shell) mà chúng tôi đã phát triển để hỗ trợ mô hình hóa, triển khai và hoạt động của ứng dụng SugarCRM Tên tệp là
sugarcrm-1.0.0.0.tgz
Bảng 2 Các nội dung của gói kiểu mẫu SugarCRM
Tên tệp Thư mục con
sugarcrm-1.0.0.0.tgz Định nghĩa kiểu mẫu SugarCRM cho phiên bản 1.0.0.0 sugarcrm-1.0.0.2.tgz plugins Trình cắm thêm SugarCRM hỗ trợ kết nối Apache, PHP,
APC và Ấn bản SugarCRM Enterprise v6.4.0
sugarcrmdb2-1.0.0.2.tgz plugins
Trình cắm thêm liên kết SugarCRM DB2 hỗ trợ kết nối SugarCRM tới DB2
sugarcrmmysql-1.0.0.2.tgz plugins
Trình cắm thêm liên kết SugarCRM DB2 hỗ trợ kết nối SugarCRM với MySQL
sugarcrm-samples-1.0.0.2.tgz plugins
Trình cắm thêm sample (ví dụ mẫu) của SugarCRM cung cấp các khuôn mẫu và các mẫu ứng dụng ví dụ mẫu Hãy chuyển đến trang web SugarCRM để tải về các tệp các giải pháp đóng gói nói trên
Các tệp khác là các tệp hỗ trợ trình cắm thêm có chứa các sản phẩm và các nguồn của bên thứ ba
có thể tải về miễn phí Những người quản trị đám mây có thể chọn xây dựng các gói riêng của mình hoặc tải về các gói dựng sẵn rồi cấu hình các trình cắm thêm riêng lẻ trong giao diện người
Trang 8dùng IBM PureSystems Vì một trong những nền tảng đầu tiên được hỗ trợ trong IBM
PureSystems là Linux, nên các chi tiết về các tệp hỗ trợ cho Linux được mô tả dưới đây
Bảng 3 Các nội dung của gói hỗ trợ trình cắm thêm SugarCRM (SugarLinux.tgz)
Tên tệp Thư mục con
autoconf-latest.tgz Linux\SOURCES http://www.gnu.org/software/autoconf/
Một công cụ do PHPize yêu cầu để biên dịch các phần mở rộng PHP
httpd-2.2.21.tgz Linux\SOURCES http://httpd.apache.org/download.cgi Gói nguồn Apache
PHP-5.3.8.tgz Linux\SOURCES http://www.PHP.net/ Gói nguồn PHP
APC-3.1.9.tgz Linux\SOURCES http://pecl.PHP.net/package/APC Gói nguồn APC
Bảng 4 Các nội dung của gói hỗ trợ trình cắm thêm liên kết DB2 (DB2LinkLinux.tgz)
Tên tệp
Thư mục con trong TGZ
ibm_data_server_client_linuxx
64_v97.tar.gz
Linux\Produ cts
http://www-01.ibm.com/support/docview.wss?rs=4020&
uid=swg21385217
Phiên bản 9.7 của ứng dụng khách chủ dữ liệu của IBM, được dùng
để xây dựng phần
mở rộng DB2
RCES http://pecl.PHP.net/package/ibm_db2
Nguồn cho phần
mở rộng PHP
"ibm_d
Trang 9b2"
Bảng 5 Các nội dung của gói hỗ trợ trình cắm thêm liên kết MySQL
(MySQLLinkLinux.tgz)
Tên tệp
Thư mục con trong TGZ
mysql-shared-
compat-5.0.92-1.rhel5.x86_64.rpm
Linux\RPM
S
http://dev.mysql.com/downloads/mysql/5.0.html#downl oads
RPM cần thiết cho PHP với tùy chọn MySQ
L
mysql-devel-5.0.77-4.el5_4.2.x86_64.rp
m
Linux\RPM
S
http://dev.mysql.com/downloads/mysql/5.0.html#downl oads
RPM cần thiết cho PHP với tùy chọn MySQ
L
Sử dụng PDK làm một điểm khởi đầu
Có thể cấu trúc một trình cắm thêm như một dự án Eclipse, do đó hãy sử dụng một nền tảng mạnh mẽ và linh hoạt để phát triển Tuy nhiên, tổ chức nội bộ của trình cắm thêm không theo một tập hợp các quy tắc và các quy ước chặt chẽ để có thể xây dựng nó thành các gói đúng định dạng và để các hệ thống con IBM PureSystems xử lý nó Chúng tôi đã thấy rằng một công cụ phát triển là cần thiết trong hai vùng: Bắt đầu và gỡ lỗi Đến cuối bài này, PDK (Bộ dụng cụ phát triển Trình cắm thêm) sẽ có sẵn là một phần của IBM PureSystems dưới dạng một tệp ZIP để bạn có thể tải về từ trang chủ
PDK giúp bạn bắt đầu bằng cách cung cấp một tập ví dụ mẫu có hai trình cắm thêm thành phần
và một trình cắm thêm liên kết Chúng tôi đã sử dụng các trình cắm thêm ví dụ mẫu làm một ví
dụ học tập và cũng làm một điểm khởi đầu để phát triển bằng cách sửa đổi các ví dụ mẫu đó Các quy tắc và quy ước ngầm định có thể gây khó khăn cho việc theo dõi trong quá trình phát triển và các lỗi kết quả thường lộ ra theo cách khó hiểu trong thời gian chạy, gây khó khăn cho việc gỡ lỗi Nếu có các vi phạm về những quy tắc này, nhiều khả năng sẽ phát hiện ra các lỗi như vậy trong quá trình xây dựng
PDK cũng giúp gỡ lỗi thông qua một trình cắm thêm gỡ lỗi (debug) Thành phần này có thể được kéo và thả vào bất kỳ mẫu ứng dụng ảo nào Nó cung cấp hai kỹ thuật gỡ lỗi:
Trang 101 Người dùng có thể triển khai mẫu ứng dụng mà không cần thực sự triển khai các máy ảo vào đám mây, sao cho có thể kiểm tra tạo phẩm cấu trúc liên kết Điều này có thể có ích trong giai đoạn phát triển ban đầu khi mã vẫn chưa chạy được và người dùng có thể tránh được chu kỳ triển khai một máy ảo kéo dài
2 Sau khi đã triển khai mẫu ứng dụng vào đám mây, các tệp được sử dụng trong quá trình kích hoạt được duy trì trong máy ảo để cho người dùng có thể đăng nhập và gỡ lỗi Điều này rất có ích trong giai đoạn phát triển cuối cùng để gỡ lỗi các kịch bản lệnh vỏ và Python
Sử dụng kiểu mẫu
Một kiểu mẫu là một bộ sưu tập các trình cắm thêm xác định một giải pháp và cấu trúc liên kết
cụ thể Trong một môi trường phát triển, một kiểu mẫu xuất hiện như một dự án Nhà phát triển
có thể xác định tên, phiên bản, mô tả và các thỏa thuận cấp phép trong tệp patterntype.json và sử dụng kịch bản lệnh xây dựng do PDK cung cấp để tạo ra các tệp gói kiểu mẫu
Chúng tôi đóng gói 3 trình cắm thêm chức năng và một trình cắm thêm samples (các ví dụ mẫu) trong tệp kiểu mẫu SugarCRM Một quản trị viên đám mây chỉ cần nhập khẩu kiểu mẫu đó, chạy
nó và sử dụng các tệp TGZ được mô tả trong phần Đóng gói giải pháp để kích hoạt các trình cắm thêm chức năng này Chạy trình cắm thêm samples khi chạy kiểu mẫu vì nó không đòi hỏi cấu hình
Phát triển mô hình ứng dụng
Các thành phần, các liên kết, các chính sách và các tham số đầu vào của người dùng có kết hợp với một trình cắm thêm được mô hình hóa trong tệp appmodel/metadata.json Căn cứ vào các quyết định mô hình hóa được mô tả trong phần Các lý do thiết kế, chúng tôi đã xây dựng trình cắm thêm SugarCRM là các trình cắm thêm cơ sở dữ liệu và các trình cắm thêm chỉ có thành phần để hỗ trợ cả hai các thành phần lẫn các liên kết
Thuộc tính id (mã định danh) của thành phần hoặc liên kết phải là duy nhất và được dùng làm tên thành phần trong quá trình chuyển đổi
Thuộc tính type (kiểu) xác định thành phần, liên kết hoặc chính sách
Cũng có thể quy định khía cạnh đồ họa của thành phần, chẳng hạn như image (hình ảnh)
và thumbnail (hình ảnh thu nhỏ)
Cách tiếp cận khai báo cho phép trình xây dựng ứng dụng IBM PureSystems tương tác với tất cả các trình cắm thêm, thu gom đầu vào của người dùng và lưu giữ lâu bền mô hình ứng dụng như một tài liệu JSON trong kho lưu trữ
Đoạn mã JSON cho thấy cách chúng tôi đã định nghĩa một thành phần và một liên kết trong cùng một tệp metadata.json
{
"id":"xDB2",
"type":"component",
"thumbnail" : "appmodel/images/thumbnail/existing_DB2_thumb.png",