Mô hình Tích hợp Doanh nghiệp (EIP)là một cuốn sách của Gregor Hohpe và Bobby Woolf mô tả 65 mô hình cho việc sử dụng tích hợp ứng dụng doanh nghiệp và phần mềm trung gian hướng tới tin nhắn dưới dạng ngôn ngữ mô hình. Chúng giúp chúng ta sử dụng các phương pháp tiêu chuẩn để tích hợp các ứng dụng, không cần phải phát minh lại bánh xe mỗi khi bạn gặp vấn đề.
Mục tiêu của các mô hình Tích hợp Doanh nghiệp là tạo ra một ngôn ngữ chung và một tập hợp các hành động quy trình làm việc để kết hợp chúng lại với nhau nhằm tạo ra quy trình kinh doanh trưởng thành và thực tiễn. Nó cung cấp một danh mục gồm sáu mươi lăm mô hình giúp bạn thiết kế các giải pháp nhắn tin hiệu quả cho doanh nghiệp của bạn.
Cuốn sách phân biệt bốn lựa chọn cấp cao cho việc tích hợp:
- Chuyển File
- Cơ sở dữ liệu Chia sẻ
- Gọi Thủ tục Từ xa
- Nhắn tin
Các loại tích hợp sau đây được giới thiệu:
- Cổng Thông tin
- Sao chép Dữ liệu
- Chức năng Kinh doanh Chia sẻ
- Kiến trúc Hướng dịch vụ
- Quy trình Kinh doanh Phân tán
- Tích hợp Doanh nghiệp với Doanh nghiệp
- Tương tác Liên kết Chặt chẽ vs. Tương tác Liên kết Lỏng lẻo
Vẽ Sơ đồ Mô hình Tích hợp Doanh nghiệp bằng Công cụ Trực tuyến Miễn phí
Công cụ miễn phí của Visual Paradigm công cụ Mô hình Tích hợp Doanh nghiệp (công cụ sơ đồ EIP) có một bộ tính năng chỉnh sửa giúp việc vẽ sơ đồ trở nên đơn giản và nhanh chóng hơn như kéo và thả và hướng dẫn căn chỉnh giúp việc chỉnh sửa mượt mà và trực quan. Công cụ sơ đồ EIP cũng đi kèm với một bộ ký hiệu và hình dạng EIP cho phép bạn tạo ra các loại sơ đồ EIP khác nhau.

Bạn có thể dễ dàng phát triển các mô hình của mình và sau đó xuất và chia sẻ chúng qua các định dạng như PNG, JPG, GIF, SVG và PDF.
Học EIP với Các Ví dụ và Mẫu
Bạn có thể bắt đầu với một sơ đồ trống hoặc một mẫu EIP. Dưới đây là một vài mẫu. Nhấn nút Chỉnh sửa để bắt đầu chỉnh sửa ngay lập tức. Nó miễn phí và không cần đăng ký.
Ví dụ về Mô hình Tích hợp Doanh nghiệp: Proxy Thông minh

Chỉnh sửa Ngay lập tức Trực tuyến
Ví dụ về Mô hình Tích hợp Doanh nghiệp: Nhắn tin Tổ hợp MSMQ

Chỉnh sửa Ví dụ trên Trực tuyến
Bạn có muốn áp dụng một số Mô hình Tích hợp Doanh nghiệp khác không?
Kho Chỉnh sửa Trực tuyến EIP từ Visual Paradigm
Khung Thực hiện cho EIPs
Apache Camel hỗ trợ hầu hết các Mô hình Tích hợp Doanh nghiệp từ cuốn sách xuất sắc của Gregor Hohpe và Bobby Woolf. Dựa trên Mô hình Tích hợp Doanh nghiệp (EIP) để giúp bạn giải quyết vấn đề tích hợp của mình bằng cách áp dụng các phương pháp tốt nhất ngay từ đầu. Camel hỗ trợ hầu hết các Mô hình Tích hợp Doanh nghiệp từ cuốn sách xuất sắc của Gregor Hohpe và Bobby Woolf, và các mô hình tích hợp mới hơn từ kiến trúc vi dịch vụ.
Nếu bạn mới làm quen với Camel, bạn có thể muốn thử Bắt đầu trong Hướng dẫn Người dùng trước khi cố gắng triển khai các mô hình này.
HỆ THỐNG NHẮN TIN

Kênh Tin nhắn
Một ứng dụng giao tiếp với ứng dụng khác bằng cách nào thông qua nhắn tin?

Tin nhắn
Hai ứng dụng được kết nối qua một kênh tin nhắn có thể trao đổi một mảnh thông tin như thế nào?

Làm thế nào chúng ta có thể thực hiện xử lý phức tạp trên một thông điệp trong khi vẫn duy trì tính độc lập và linh hoạt?

Làm thế nào bạn có thể tách rời các bước xử lý riêng lẻ để thông điệp có thể được chuyển đến các bộ lọc khác nhau tùy thuộc vào một tập hợp các điều kiện?

Làm thế nào các hệ thống sử dụng các định dạng dữ liệu khác nhau có thể giao tiếp với nhau thông qua việc nhắn tin?

Một ứng dụng kết nối với một kênh nhắn tin để gửi và nhận thông điệp như thế nào?
CÁC KÊNH NHẮN TIN

Làm thế nào người gọi có thể chắc chắn rằng chỉ có một người nhận sẽ nhận tài liệu hoặc thực hiện cuộc gọi?

Làm thế nào người gửi có thể phát sóng một sự kiện đến tất cả các người nhận quan tâm?

Hệ thống nhắn tin sẽ làm gì với một thông điệp mà nó không thể gửi đi?

Làm thế nào người gửi có thể đảm bảo rằng một thông điệp sẽ được giao, ngay cả khi hệ thống nhắn tin gặp sự cố?

Làm thế nào bạn có thể kết nối một ứng dụng với hệ thống nhắn tin để nó có thể gửi và nhận thông điệp?

Làm thế nào nhiều hệ thống nhắn tin có thể được kết nối để các thông điệp có sẵn trên một hệ thống cũng có sẵn trên các hệ thống khác?

Kiến trúc nào cho phép các ứng dụng riêng biệt làm việc cùng nhau, nhưng theo cách tách rời để các ứng dụng có thể dễ dàng được thêm vào hoặc loại bỏ mà không ảnh hưởng đến các ứng dụng khác?

Đồng bộ hóa dữ liệu bằng cách bắt các thay đổi được thực hiện trên một cơ sở dữ liệu và áp dụng những thay đổi đó vào một hệ thống khác.
XÂY DỰNG THÔNG ĐIỆP

Làm thế nào nhắn tin có thể được sử dụng để truyền tải sự kiện từ một ứng dụng này sang ứng dụng khác?

Khi một ứng dụng gửi một thông điệp, làm thế nào nó có thể nhận được phản hồi từ người nhận?

Người trả lời biết gửi phản hồi đến đâu?

Người yêu cầu đã nhận được phản hồi biết yêu cầu nào là yêu cầu mà phản hồi này dành cho?

Làm thế nào người gửi có thể chỉ ra khi nào một thông điệp nên được coi là lỗi thời và do đó không nên được xử lý?
ĐỊNH TUYẾN THÔNG ĐIỆP

Bộ định tuyến dựa trên nội dung
Chúng ta xử lý tình huống như thế nào khi việc triển khai một chức năng logic duy nhất (ví dụ: kiểm tra tồn kho) được phân tán trên nhiều hệ thống vật lý?

Làm thế nào một thành phần có thể tránh nhận các thông điệp không thú vị?

Làm thế nào bạn có thể tránh sự phụ thuộc của bộ định tuyến vào tất cả các điểm đến có thể trong khi vẫn duy trì hiệu quả của nó?

Chúng ta định tuyến một thông điệp đến danh sách các người nhận được chỉ định (tĩnh hoặc động) như thế nào?

Làm thế nào chúng ta có thể xử lý một thông điệp nếu nó chứa nhiều phần tử, mỗi phần tử có thể phải được xử lý theo cách khác nhau?

Chúng ta kết hợp kết quả của các thông điệp riêng lẻ, nhưng có liên quan như thế nào để chúng có thể được xử lý như một thể thống nhất?

Làm thế nào chúng ta có thể đưa một luồng tin nhắn liên quan nhưng không theo thứ tự trở lại đúng thứ tự?

Làm thế nào bạn có thể duy trì luồng tin nhắn tổng thể khi xử lý một tin nhắn bao gồm nhiều phần tử, mỗi phần tử có thể yêu cầu xử lý khác nhau?
Làm thế nào bạn duy trì luồng tin nhắn tổng thể khi một tin nhắn cần được gửi đến nhiều người nhận, mỗi người có thể gửi phản hồi?

Làm thế nào chúng ta định tuyến một tin nhắn liên tiếp qua một loạt các bước xử lý khi thứ tự các bước không được biết tại thời điểm thiết kế và có thể thay đổi cho mỗi tin nhắn?

Làm thế nào chúng ta định tuyến một tin nhắn qua nhiều bước xử lý khi các bước cần thiết có thể không được biết tại thời điểm thiết kế và có thể không theo thứ tự?

Làm thế nào bạn có thể tách biệt đích đến của một tin nhắn khỏi người gửi và duy trì kiểm soát trung tâm đối với luồng tin nhắn?
Làm thế nào tôi có thể điều tiết tin nhắn để đảm bảo rằng một điểm cuối cụ thể không bị quá tải, hoặc chúng tôi không vượt quá SLA đã thỏa thuận với một dịch vụ bên ngoài?
Làm thế nào tôi có thể lấy mẫu một tin nhắn trong số nhiều tin nhắn trong một khoảng thời gian nhất định để tránh việc tuyến đường phía dưới không bị quá tải?
Làm thế nào tôi có thể trì hoãn việc gửi một tin nhắn?
Làm thế nào tôi có thể cân bằng tải giữa một số điểm cuối?
Làm thế nào tôi có thể ngừng gọi một dịch vụ bên ngoài nếu dịch vụ đó bị hỏng?
Làm thế nào tôi có thể gọi một dịch vụ từ xa trong một hệ thống phân tán nơi dịch vụ được tìm kiếm từ một đăng ký dịch vụ nào đó?
Làm thế nào tôi có thể định nghĩa một loạt các hành động liên quan trong một tuyến đường Camel mà nên được hoàn thành thành công (tất cả chúng) hoặc không được thực hiện/bồi thường?
Làm thế nào tôi có thể định tuyến một tin nhắn đến một số điểm cuối cùng một lúc?
Làm thế nào tôi có thể lặp lại việc xử lý một tin nhắn trong một vòng lặp?
CHUYỂN ĐỔI TIN NHẮN

Làm thế nào chúng ta giao tiếp với một hệ thống khác nếu người tạo tin nhắn không có tất cả các mục dữ liệu cần thiết?

Làm thế nào bạn đơn giản hóa việc xử lý một tin nhắn lớn, khi bạn chỉ quan tâm đến một vài mục dữ liệu?

Làm thế nào chúng ta có thể giảm khối lượng dữ liệu của tin nhắn được gửi qua hệ thống mà không hy sinh nội dung thông tin?

Làm thế nào bạn xử lý các tin nhắn có nghĩa tương đương, nhưng đến dưới định dạng khác nhau?
Làm thế nào tôi có thể sắp xếp nội dung của một tin nhắn?
Làm thế nào tôi có thể thực thi một kịch bản mà có thể không thay đổi tin nhắn?
Làm thế nào tôi có thể xác thực một tin nhắn?
CÁC ĐIỂM KẾT NỐI TIN NHẮN
Làm thế nào bạn di chuyển dữ liệu giữa các đối tượng miền và hạ tầng tin nhắn trong khi giữ cho hai bên độc lập với nhau?

Người tiêu dùng dựa trên sự kiện
Làm thế nào một ứng dụng có thể tự động tiêu thụ tin nhắn khi chúng trở nên khả dụng?

Làm thế nào một ứng dụng có thể tiêu thụ một thông điệp khi ứng dụng đã sẵn sàng?

Làm thế nào một khách hàng nhắn tin có thể xử lý nhiều thông điệp đồng thời?

Làm thế nào nhiều người tiêu thụ trên một kênh duy nhất có thể phối hợp xử lý thông điệp của họ?

Làm thế nào một người tiêu thụ thông điệp có thể chọn những thông điệp mà họ muốn nhận?

Làm thế nào một người đăng ký có thể tránh bỏ lỡ thông điệp khi họ không lắng nghe chúng?
Làm thế nào một người nhận thông điệp có thể xử lý các thông điệp trùng lặp?

Làm thế nào một khách hàng có thể kiểm soát các giao dịch của mình với hệ thống nhắn tin?

Làm thế nào bạn đóng gói quyền truy cập vào hệ thống nhắn tin từ phần còn lại của ứng dụng?

Làm thế nào một ứng dụng có thể thiết kế một dịch vụ được gọi thông qua nhiều công nghệ nhắn tin khác nhau và thông qua các kỹ thuật không nhắn tin?
QUẢN LÝ HỆ THỐNG

Làm thế nào chúng ta có thể quản lý hiệu quả một hệ thống nhắn tin được phân phối trên nhiều nền tảng và một khu vực địa lý rộng lớn?

Làm thế nào bạn có thể định tuyến một thông điệp qua các bước trung gian để thực hiện các chức năng xác thực, kiểm tra hoặc gỡ lỗi?

Làm thế nào bạn kiểm tra các thông điệp di chuyển trên một kênh điểm-điểm?
Làm thế nào chúng ta có thể phân tích và gỡ lỗi hiệu quả luồng thông điệp trong một hệ thống lỏng lẻo?
Làm thế nào tôi có thể ghi lại việc xử lý một thông điệp?
Các bước nhóm lại một tập hợp các EIPs thành một đơn vị logic tổng hợp cho các chỉ số và giám sát.
This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, 简体中文 and 繁體中文.