Khi hai hệ thống phải trao đổi dữ liệu mà không có người ở giữa, cần viết một tích hợp. Việc đó xuất hiện trên website, trong chương trình Windows và trong tiện ích Office — nhưng ở đâu cũng là cùng một công việc và mang cùng một rủi ro: một nửa mã phụ thuộc vào hệ thống của người khác, thứ bạn không kiểm soát và có thể thay đổi mà không báo trước. Vì vậy đây là dịch vụ riêng, có phân tích riêng và giá riêng.
Một nửa công việc không nằm trong tay bạn
Mã do tôi viết thì tôi sửa được trong một giờ. Dịch vụ ở phía bên kia có quy tắc riêng, hạn mức riêng và sự cố riêng, và ở đó thì phải chờ. Mọi thứ tiếp theo trên trang này đều được viết vì câu đó.
Xuyên suốt mọi việc khác tôi làm
Cùng một tích hợp được đưa vào website, vào chương trình Windows hoặc vào tiện ích Office. Chỉ có màn hình xung quanh là khác, còn khối lượng công việc thì như nhau.
Nhìn thấy được đã gửi gì
Mỗi tích hợp đều có nhật ký: đã gửi gì, nhận về gì và vào lúc nào. Không có nó thì mọi tranh cãi đều thiếu bằng chứng; có nó thì trong một phút đã thấy lỗi thuộc về bên nào.
Tôi làm gì
Kết nối với dịch vụ bên ngoài
Phần mềm của bạn gọi phần mềm của người khác: thanh toán thẻ, dịch vụ kế toán, đơn vị vận chuyển, bảng giá của nhà cung cấp, SMS hoặc email. Tôi viết lệnh gọi, xử lý phản hồi, cách hành xử khi không có phản hồi, và nhật ký để kiểm tra về sau.
Đồng bộ hai chiều
Hai hệ thống giữ cùng một dữ liệu và cả hai đều sửa nó — website và ERP, cửa hàng và kho, CRM và kế toán. Phần khó nhất nằm ở câu hỏi thay đổi của bên nào mới hơn và phải làm gì khi cả hai cùng sửa một bản ghi.
Sửa tích hợp đã ngừng chạy
Nó chạy nhiều năm, rồi phía bên kia ngừng phiên bản cũ, đổi cách đăng nhập hoặc áp hạn mức số lệnh gọi. Tôi đi vào mã có sẵn, tìm ra điều gì đã thay đổi và đưa kết nối trở lại, bất kể ai là người đã viết.
API của riêng bạn
Khi phần mềm của người khác cần lấy dữ liệu từ bạn — đối tác, ứng dụng, website hay hệ thống của khách hàng — tôi xây API cho bạn: khóa truy cập, phân quyền, hạn mức lệnh gọi và tài liệu để lập trình viên bên kia làm việc mà không phải gọi điện.
Thanh toán và hóa đơn điện tử
Thanh toán thẻ, hoàn tiền và gói thuê bao, cũng như gửi lên hệ thống hóa đơn điện tử. Đây là trường hợp đặc biệt vì lỗi làm mất tiền chứ không chỉ mất thời gian, nên phải có cơ chế thử lại mà không thu tiền hai lần cho cùng một khoản.
Chuyển và nhập dữ liệu
Chuyển một lần từ hệ thống cũ sang hệ thống mới, hoặc nhập định kỳ bảng giá và tồn kho từ nhà cung cấp. Khi công việc chủ yếu nằm trong chính cơ sở dữ liệu — lược đồ, chỉ mục, làm sạch — thì đó là công việc với cơ sở dữ liệu.
Vì sao đây là việc riêng, không phải một phần của việc xây dựng
Khi tôi làm màn hình, cơ sở dữ liệu hay báo cáo, tôi biết mọi thành phần và sửa được tất cả. Với tích hợp thì không như vậy, nên việc ước tính, kiểm thử và tính phí đều khác. Sáu điều sau xuất hiện trong hầu hết mọi dự án loại này:
- Tài liệu không khớp thực tế. Trường dữ liệu mà theo hướng dẫn luôn tồn tại đôi khi lại trống, còn ví dụ trong tài liệu thì trả về lỗi. Phần đầu của công việc là xác định dịch vụ thực sự hành xử thế nào.
- Đăng nhập và khóa. Mật khẩu, token hết hạn, cửa sổ OAuth cần người bấm, chứng chỉ có thời hạn. Mỗi cách gia hạn một kiểu và cách nào cũng có thể làm đứt kết nối lúc ba giờ sáng.
- Hạn mức số lệnh gọi. Các dịch vụ đếm lệnh gọi và hoặc tính tiền hoặc từ chối. Vì thế cần hàng đợi và ghi nhớ những gì đã lấy, thay vì mỗi lần tải lại toàn bộ.
- Phía bên kia thay đổi không báo trước. Một phiên bản bị ngừng, một trường bị đổi tên, điều kiện siết lại. Tích hợp được viết sao cho điều đó lộ ra ngay và ở một chỗ, chứ không phải ba tháng sau qua khiếu nại của khách.
- Lỗi lúc có lúc không. Dịch vụ sập hai phút. Công việc không được dừng mà cũng không được chạy hai lần — vì vậy cần thử lại và quy tắc một đơn hàng không thể gửi đi hai lần.
- Môi trường thử không phải môi trường thật. Dịch vụ thử nghiệm thường chấp nhận thứ mà bản thật từ chối. Một phần công việc chỉ có thể khép lại trên dữ liệu và tài khoản thật của bạn.
Tích hợp trí tuệ nhân tạo là một trường hợp đặc biệt của cùng câu chuyện: đó cũng là kết nối tới dịch vụ bên ngoài, chỉ khác ở chỗ câu trả lời cho cùng một câu hỏi không nhất thiết giống nhau hai lần, nên nó có trang riêng và phân tích riêng.
Công việc diễn ra thế nào
- Bạn cho biết cần nối hai hệ thống nào và điều gì nên xảy ra — ví dụ „khi khách thanh toán trên website, hóa đơn phải vào phần mềm kế toán".
- Phân tích API của bên kia. Tôi đọc tài liệu, gọi thử bằng tài khoản của bạn và xác định điều gì là khả thi. Đây là phần duy nhất không thể bỏ qua, vì thiếu nó thì không biết giá cũng không biết công việc có lời giải hay không.
- Báo giá cho phạm vi đã thỏa thuận. Sau phân tích, bạn nhận giá cố định và danh sách các tình huống được bao gồm, kể cả việc phải làm gì khi phía bên kia không trả lời.
- Làm trên tài khoản thử nghiệm ở những nơi dịch vụ bên ngoài có hỗ trợ, rồi kiểm tra trên dữ liệu của bạn trước khi đưa vào chạy thật.
- Bàn giao. Bạn nhận mã nguồn, khóa đứng tên bạn, nhật ký lệnh gọi và hướng dẫn ngắn về việc phải làm khi phía bên kia đổi quy tắc.
Giá
Cùng cách sắp xếp như các dịch vụ khác: phân tích trước, sau đó là hạng mục công việc có giá khởi điểm rõ ràng, còn chỉnh sửa nhỏ thì tính theo giờ.
Bước đầu tiên
Phân tích được trả tiền và đặt trước, và sẽ được trừ vào giá công việc nếu chúng ta tiếp tục. Nếu hóa ra dịch vụ bên ngoài không cho phép điều bạn cần, bạn biết điều đó sau khi phân tích chứ không phải sau khi đã trả tiền phát triển.
Hạng mục công việc
Chỉnh sửa nhỏ trên tích hợp đang chạy không cần đi qua hạng mục riêng: với chúng có hình thức tính theo giờ. Bảng giá đầy đủ nằm ở trang giá.
Tôi cam kết những gì
Giá không bao gồm những gì
Cần chuẩn bị gì trước khi bắt đầu
Quyền sở hữu và lối ra
- Tài khoản và khóa đứng tên bạn. Bạn là người mở quyền truy cập tới dịch vụ bên ngoài, nên kết nối vẫn chạy kể cả khi chúng ta không còn liên lạc.
- Mã nguồn là của bạn, kèm mô tả mọi lệnh gọi được sử dụng.
- Nhật ký ở lại với bạn. Bản ghi những gì đã gửi và nhận được lưu trên máy chủ của bạn, không phải chỗ tôi.
- Không có bên trung gian. Phần mềm của bạn gọi thẳng dịch vụ bên ngoài; tôi không chen vào một máy chủ của mình để dữ liệu của bạn phải đi qua.
Câu hỏi thường gặp
Hai hệ thống nào cần nói chuyện với nhau?
Hãy viết ra đó là những hệ thống nào và điều gì nên xảy ra. Nếu kết nối khả thi, tôi sẽ nói cách làm và chi phí khoảng bao nhiêu; nếu không khả thi, tôi cũng sẽ nói trước khi bạn trả bất cứ khoản nào.
Gửi yêu cầuTôi thường trả lời trong ngày.

Để Lại Bình Luận