2010-11-11 32 views
9

Tôi đã đọc rằng JCA dành cho tích hợp EIS kế thừa. Thông số này có hướng tới các nhà cung cấp chứ không phải nhà phát triển ứng dụng không? Tôi rất tò mò muốn biết các trường hợp sử dụng mà các nhà phát triển đã viết các bộ điều hợp JCA để giải quyết các vấn đề kỹ thuật hoặc kinh doanh của họ.Trường hợp sử dụng cho JCA

+1

Câu hỏi hay, đây là một số loài động vật quý hiếm được tìm thấy trong vương quốc J2EE/JEE - hãy thử tìm kiếm sách về chủ đề: | –

Trả lời

10

Tôi đã viết các trình kết nối JCA cho tất cả các loại hệ thống đầu cuối (FTP, SFTP, Tệp, hệ thống tài chính).

Điều này chủ yếu trong lĩnh vực ngân hàng đầu tư nơi tôi cần gửi dữ liệu thương mại và/hoặc tĩnh cho các hệ thống khác nhau bên trong và bên ngoài ngân hàng. Mọi thứ từ các dịch vụ web JSON/XML RESTFul đến các cuộc gọi socket đến một máy tính lớn đều có thể tham gia vào một giao dịch kinh doanh.

Vì vậy, JCA có ích thực sự là nó cung cấp một mô hình lập trình thống nhất và có thể được quản lý bởi các máy chủ ứng dụng giúp bạn với transactionality, tổng hợp, vv

Muốn tập tin FTP chứa việc buôn bán rất đắt tiền đến (transactionally được bảo đảm)? JCA là một công nghệ mà bạn có thể sử dụng để giải quyết vấn đề đó.

< trắng trợn cắm > Tôi sẽ thêm rằng tôi hiện đang làm việc trên một dự án mã nguồn mở được gọi là Ikasan trong đó có tự do kết nối JCA </trắng trợn cắm > cũng như một số dự án khác như Mule và hội nhập mùa xuân. Vì vậy, nó thường không phải là nhà phát triển trung bình phải viết riêng của họ.

+0

Bạn có thể giải thích thêm về 1) cách tiếp cận chúng ta phải thực hiện khi viết một bộ chuyển đổi jca bằng cách sử dụng các cuộc gọi socket như một ví dụ 2) lý do để thực hiện cuộc gọi socket từ bên trong bộ điều hợp hơn là thực hiện cuộc gọi socket trực tiếp từ bên trong mã 3) Làm thế nào một cuộc gọi socket có thể được tham gia vào một giao dịch? Không có cách nào để chuyển giao giao dịch cho người nhận cuộc gọi phải không? Bạn có thể giải thích thêm về ngữ nghĩa giao dịch trong kịch bản này không? –

+1

@Pangea - Đây là một chủ đề sâu, nhưng trong ngắn hạn: 1) Nó phụ thuộc vào việc bạn đang viết một kết nối gửi đến hoặc một kết nối gửi đi (bạn sẽ muốn đọc về điều đó). 2) Có bộ điều hợp JCA tốt vì nó tách các khía cạnh kết nối khỏi logic kinh doanh cốt lõi của bạn, bộ điều hợp (thường được đóng gói như RAR) sẽ xử lý việc xử lý socket, kết nối tổng hợp, truyền bá giao dịch và hơn thế nữa (đọc trên JCA trên trang web của Oracle). 3) Xem 1), đôi khi có thể truyền bá giao dịch mà người quản lý giao dịch của bạn bắt đầu hoặc người quản lý giao dịch của họ bắt đầu. –

+1

Tôi đã hết dung lượng nhận xét nhưng vẫn tiếp tục 3). Hãy nghĩ về cách kết nối cơ sở dữ liệu/giao dịch hoạt động - đó là nguyên tắc tương tự. Máy chủ ứng dụng có thể bắt đầu giao dịch truyền đến cơ sở dữ liệu thông qua Trình kết nối cơ sở dữ liệu. Đúng, hầu hết kết nối cơ sở dữ liệu thực sự được viết dưới dạng JCA dưới mui xe :-) –

2

JCA là viết tắt của J2EE Connector Architecture, nó cung cấp phương tiện để kết nối các thành phần chạy trên Máy chủ ứng dụng J2EE với thế giới bên ngoài, nhiều hệ thống không đồng nhất hiện có. Trong J2EE, bạn có thể viết mã lớp trình bày chạy trong vùng chứa web và bean doanh nghiệp trong vùng chứa EJB, nhưng ứng dụng của bạn không ở trong chân không, bạn cần truy cập các hệ thống khác và ứng dụng của bạn cũng cần phải được truy cập bởi hệ thống khác . JCA chỉ cung cấp một API tiêu chuẩn để truy cập các hệ thống bên ngoài hoặc được truy cập bởi các hệ thống bên ngoài.

Nếu bạn là nhà cung cấp hệ thống EIS, đó là Ok, vì bạn muốn hệ thống của bạn được truy cập trong Máy chủ J2EE. Nếu bạn là nhà phát triển ứng dụng, bạn cũng có thể cần JCA, vì bạn có thể cần truy cập hệ thống khác mà không cần bộ điều hợp tài nguyên JCA ngoài hộp trong ứng dụng của bạn, chỉ cần viết bộ điều hợp tài nguyên cho riêng bạn.

2

JCA là tập hợp các giao thức kết nối, chủ đề, giao dịch, bảo mật và vòng đời. Bằng cách tôn trọng các hợp đồng này, bạn có thể giảm hầu hết quản lý kết nối, quản lý luồng, quản lý giao dịch, bảo mật, đóng gói, triển khai, kích hoạt, hủy kích hoạt vv ... vào vùng chứa (máy chủ ứng dụng tuân thủ JCA). Jca cũng cung cấp một cci tùy chọn (giao diện ứng dụng khách chung) cho phép các ứng dụng truy cập vào bộ điều hợp.

Bây giờ có viết trình kết nối tuân thủ jca hay không thực sự phụ thuộc vào các yêu cầu của ứng dụng của bạn.

Mọi người thường viết bộ điều hợp jca để truy cập hệ thống tệp, jms, cơ sở dữ liệu, ldap, email, khung chính, ứng dụng đóng gói và bất kỳ EIS nào khác. Nó thực sự là đặc quyền của nhà phát triển để tìm ra nếu viết một là cần thiết nhưng về cơ bản nó không tầm thường để viết một.

+0

Tôi có một thành phần nói chuyện với một ứng dụng tcp/ip. Nó lấy các đối tượng như đầu vào và dịch chúng thành chuỗi byte cố định, gửi nó đến ứng dụng tcp/ip, nhận được phản hồi và sau đó chuyển đổi resp thành đồ thị obj. Vấn đề tôi hiện tại là bất cứ khi nào thành phần này thay đổi, tôi phải đóng gói lại ứng dụng của mình vì chúng tôi đã gộp thành phần cùng với nó. Việc triển khai thành phần này như một bộ điều hợp JCA có hợp lý không? Bằng cách này tôi chỉ có thể triển khai lại bộ điều hợp và khởi động lại ứng dụng của mình. Không cần đóng gói lại. Điều này có hiệu quả không? Ban đầu tôi nghĩ về OSGi để tôi có thể thực hiện cập nhật tại chỗ. –

+0

Nhưng làm cho thành phần di sản OSGi tuân thủ này là công việc phụ và có vẻ như các hệ thống xây dựng mà chúng ta có không phải là osgi hay là do đó nó hoạt động tốt hơn những gì chúng ta muốn. –

+0

Tôi nghĩ sẽ tốt hơn nếu để bộ chuyển đổi tập trung vào điểm tích hợp, đó là cơ chế bắt tay và đọc/ghi byte từ/đến một ổ cắm tcp/ip và để ứng dụng của bạn thực hiện phần còn lại. Oracle có một adapter jca socket mà bạn có thể muốn kiểm tra @ref. http://docs.oracle.com/cd/E21764_01/integration.1111/e10231/adptr_sock.htm#BABGEIBH –

Các vấn đề liên quan