Danh mục

Viết mã thú vị với các API FileNet P8 của IBM, Phần 3

Số trang: 25      Loại file: pdf      Dung lượng: 228.11 KB      Lượt xem: 10      Lượt tải: 0    
Jamona

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Viết mã thú vị với các API FileNet P8 của IBM, Phần 3: Lấy một số Triển khai thực hiện một bộ phân phối số thứ tự trong FileNet P8 Bill Carpenter, Kiến trúc sư phần mềm ECM, IBM Tóm tắt: Vâng, bạn cũng có thể có một hiệu bánh ở góc phố dựa vào ECM với một hàng đợi khách hàng có trật tự! Để mua bánh cần lấy một số thứ tự. Bài viết này bàn về các kỹ thuật triển khai thực hiện để nhận các số thứ tự tin cậy duy nhất từ một kho lưu...
Nội dung trích xuất từ tài liệu:
Viết mã thú vị với các API FileNet P8 của IBM, Phần 3 Viết mã thú vị với các API FileNet P8 của IBM, Phần 3: Lấy một sốTriển khai thực hiện một bộ phân phối số thứ tự trong FileNet P8Bill Carpenter, Kiến trúc sư phần mềm ECM, IBMTóm tắt: Vâng, bạn cũng có thể có một hiệu bánh ở góc phố dựa vào ECM vớimột hàng đợi khách hàng có trật tự! Để mua bánh cần lấy một số thứ tự. Bài viếtnày bàn về các kỹ thuật triển khai thực hiện để nhận các số thứ tự tin cậy duy nhấttừ một kho lưu trữ IBM® FileNet® P8. Một số trong các cách tiếp cận hiển nhi ênđã ẩn giấu các mối nguy hiểm, nhưng có một cách tiếp cận đúng và có ích là đơngiản và hiệu năng. Cùng với cách giải quyết vấn đề chung này, chúng ta sẽ thấymột số vấn đề về phát triển P8 có quy mô lớn hơn nhiều.Mở đầuThói quen ở nhiều nơi có các cửa hàng nhỏ là nắm được các khách hàng đã xếphàng bằng cách gán cho họ các số thứ tự sát với thứ tự mà họ tới cửa hàng. Các sốthứ tự này thường được in trên các mảnh giấy nhỏ và được phân phối từ một bộphân phối cơ khí vật lý duy nhất. Nếu có nhiều khách hàng đến đồng thời, mốiquan hệ này dễ dàng bị phá vỡ bởi phép xã giao và phép lịch sự thông thường.TỪ CHỐI BẢO HÀNHMã đi kèm là mã ví dụ do Tập đoàn IBM tạo ra. Mã ví dụ này không phải là mộtphần của bất kỳ tiêu chuẩn hay sản phẩm nào của IBM và được cung cấp cho bạnchỉ với mục đích giúp bạn trong việc phát triển các ứng dụng của mình. Mã nàyđược quy định như nó vốn có, không bảo hành bất kỳ loại nào. IBM không chịutrách nhiệm về mọi thiệt hại phát sinh do việc bạn sử dụng mã ví dụ này, ngay cảkhi bạn đã được biết về khả năng thiệt hại như vậy.Các vấn đề tương tự thường phát sinh trong các hệ thống phần mềm. Một hệ thốngthường cần gán các số cho các việc nào đó với đảm bảo rằng các số đó là duy nhấtvà theo một số mô hình. Có một số giải pháp chung cho vấn đề này, nhưng các hệthống phân phối làm phức tạp các vấn đề. Hầu như không chắc rằng bạn sẽ sửdụng một hệ thống ECM để gán các số cho các khách hàng tại một hiệu bánh ởgóc phố. (Nhưng nếu bạn đã quan tâm về điều đó, tôi có thể nối bạn với một ngườibán hàng có thiện ý!) Tuy nhiên, bạn có thể cần gán các số theo trường hợp hoặccác số mã định danh (ID) khách hàng hoặc các số bộ phận hoặc một cái gì đó đơngiản hơn. Các nhà cung cấp cơ sở dữ liệu triển khai thực hiện các kiểu cột số thứtự chỉ dùng cho loại vấn đề này. Tuy nhiên, P8 không cung cấp truy cập trực tiếpvào các kiểu số thứ tự cơ sở dữ liệu, vì vậy bạn phải sử dụng các cơ chế khác.Trong bài này, chúng ta sẽ việc xem xét cách giải quyết vấn đề này trong một môitrường P8. Hãy tóm tắt các yêu cầu: 1. Chúng ta cần gán các số được bảo đảm tuyệt đối là duy nhất. Hoàn toàn không chấp nhận gán hai lần với cùng một số. 2. Chúng ta muốn các số đi theo một vài mô hình. Chúng ta không muốn có những cách quãng trong việc gán số. Mô hình có thể có nhiều thứ, nhưng với các mục đích của mình chúng ta sẽ chỉ sử dụng mô hình tăng dần đơn giản. Số tiếp theo mà chúng ta nhận được sẽ là một số lớn hơn số đứng trước. 3. Chúng ta muốn tất cả điều này hoạt động tin cậy và có hiệu năng tốt trong một môi trường P8 có nhiều luồng, nhiều bộ xử lý, nhiều máy chủ, nhiều tầng và nhiều người dùng. 4. Trong khi chúng ta đang ở đó, chúng ta cần khoảng một chục bánh nướng nhỏ màu đỏ trông rất ngon có lớp phủ kem pho mát!Trước khi mô tả việc triển khai thực hiện ưa thích của mình, đầu tiên chúng ta sẽxem xét một vài kỹ thuật hoặc không làm việc hoặc không làm việc rất tốt. Ngaycả khi bạn chưa bao giờ có nhu cầu triển khai thực hiện trường hợp sử dụng cụ thểnày, hầu hết các điểm được minh họa trong bài này có thể áp dụng cho nhiều lĩnhvực lập trình P8.Đồng bộ Java hay .NETNếu bạn là người mới đến với công việc phát triển doanh nghiệp hay phát triểnphân phối nói chung, bạn có thể nghĩ ngay đến việc sử dụng một đối t ượng đơn lẻcó một số kiểu truy cập đồng bộ hóa đến phần cập nhật bộ đếm. Trong Java, đó sẽlà một phương thức synchronized (đã đồng bộ) hoặc khối mã. Trong C#, sẽ là mộtphương thức đánh dấu là đã đồng bộ hoặc một khối mã được bảo vệ bằng mộtlock(). Các vùng mã có truy cập đồng bộ đôi khi được gọi là các phần tới hạn. Liệtkê 1 cho thấy một trong nhiều cách để thực hiện điều này.Liệt kê 1. Khối mã đồng bộ/*** *** DONT DO IT THIS WAY ****/public class Dispenser{ /** static access only, so private constructor */ private Dispenser() {} private static int counter = 0; public static final synchronized int getNextValue() { return ++counter; }}Việc sử dụng mã đồng bộ là tốt cho các vấn đề cụ thể, nhưng với trường hợp sửdụng của chúng ta các nhược điểm là khá rõ. Vì giá trị của bộ đếm chỉ tồn tại trongbộ nhớ của chương trình đang chạy, nên các giá trị này sẽ bắt đầu lại khi chươngtrình được khởi động lại. Bạn có thể thay đổi lớp Dispenser (Bộ phân phối) để lưucác giá trị đã cập nh ...

Tài liệu được xem nhiều: