10/2/09

Tìm hiểu thêm về SOA phần 2

SOA là gì?
1. SOA là một kiểu kiến trúc mà khuyến khích việc tạo các service nghiệp vụ nối kết lỏng lẻo.Các service lỏng lẻo có thể tương tác và không phụ thuộc vào kĩ thuật và có thể thay đổi nghiệp vụ.Một giải pháp SOA bao gồm một tập các service nghiệp vụ cái mà thực hiện một business process.Mỗi service cung cấp một miêu tả serive để hỗ trợ cho những process có thể cấu hình lại một cách uyển chuyển và tự động.
2. SOA là một kiểu kiến trúc có khả năng mở rộng, mở, bao gồm các service có khả năng tương tác, khả năng khám phá, tự trị, có thể phục vụ cho nhiều khách hàng khác nhau, có khả năng sử dụng lại. =>SOA là:Một kiển kiến trúc dễ dàng mở rộng và tích hợp.Kiến trúc này bao gồm các service được nối kết lỏng lẻo, dễ dàng sử dụng lại, có thể tương tác và không phụ thuộc vào kỹ thuật hiện thực.
3. Ưu và nhược điểm của SOA:
Ưu điểm:Hệ thống uyển chuyển và lâu dài.Dễ dàng và nhanh chóng tạo ra các bussiness process từ các service đã có.Khả năng tương tác của các service.
Nhược điểm:Hệ thống phức tạp.Khó miêu tả dữ liệu không cấu trúc trong header của message
Khi nào sử dụng SOA ?Khi thiết kế hệ thống một câu hỏi lớn được đặt ra là : việc cân nhắc giữa khả năng sử dụng lại và hiệu quả của hệ thống. Nếu hệ thống cần việc chạy nhanh cho một ứng dụng đặc biệt thì RMI, CORBA, DCOM là sự lựa chọn. Nhưng hệ thống khó có thể thay đổi hoặc sử dụng lại. Nếu hệ thống dự định thay đổi thường xuyên mà không quan tâm đến tốc độ thì SOA là phương cách tiếp cận tốt nhất. Nó dễ dàng sử dụng lại trong tương lai và cho phép các ứng dụng tương tự được thiết kế một cách nhanh chóng.
4. SOA và Webservice SOA là một kiến trúc hướng đến service. Khi mà chúng ta phân tích workflow thì chúng ta phân tích ra các service.Do đó, các service này có thể đựơc tạo rồi hoặc chưa được tạo ra. Khi có service rồi thì chúng ta xem service này trong hệ thống chúng ta tạo ra rồi chưa. Nếu có rồi thì không cần tạo ra cái mới, nếu chưa thì tạo ra cái mới. Vậy thì chúng ta tìm kiếm các service này bằng cách nào. Chúng ta tìm chúng thông qua UDDI service (Univercal Description,Discovery and Intergration )UDDI service là một nơi dung để chứa và quảng cáo các service. Khi các service được tạo ra và nếu chúng ta muốn cho khai thác thì chúng ta đăng kí service của chúng ta với UDDI service. Khi một ai cần service nào thì có thể đến UDDI service để tìm kiếm nếu tìm kiếm được service phù hợp thì sử dụng lại, còn không có thì phải xây dựng lại cái mới.Như vậy thì chúng ta đã có được các service. Vậy thì chúng tương tác với nhau bằng cách nào. Câu trả lời là thông qua Web service. Tại sao chúng ta lại chọn Web service mà không chọn DCOM, CORBA, …Theo Thái, mục đích của SOA là sử dụng lại và tích hợp ứng dụng một cách nhanh chóng, Sử dụng lại thì chúng ta có thể khám phá thông qua UDDI Service, còn tích hợp nhanh thì các chuẩn trước đây rất khó thực hiện, nhưng hiện nay tương tác giữa các service thông qua Web service thì công việc tích hợp một cách nhanh chóng và dễ dàng thông qua ngôn ngữ BPEL. Nếu chúng ta sử dụng bộ design của BPEL thì chúng ta cảm giác dễ như là sử dụng các công cụ thiết kế Web.Như vậy, SOA là một kiến trúc hướng đến service và các service này tương tác thông qua Web service.Web Service:Các bạn khác trình bày khá nhiều về vấn đề này do đó mình chỉ trình bày ngắn gọn phần này. Một vài thuật ngữ sử dụng trong khi tạo Web serviceWSDL (Web Service Description Language): là ngôn ngữ đặc tả Web service. Ngôn ngữ này dựa trên XML. Khi tương tác với service bạn chỉ cần tham chiếu được đến file wsdl của service đó.SOAP (Simple Object Acess Protocol): là giao thức truy xuất đối tượng đơn giản.Tạo Web service:Có 2 cách tạo:1. Top down2. Bottom up1. Top down: là bạn tạo service từ file wsdl mà bạn đã đặc tả interface cho web service mà mình mong muốn2. Bottom up: là bạn có sẵn class Java hoặc EJB bạn tạo ra web service

SOA (Hiện thực) Chu trình phát triển của SOA:develop-->integrate-->orchestrate-->deploy-->manage-->secure-->access1.
1.Develop
Giai đoạn này ta tập trung phát triển các service và tạo web serviceMô hình:webservice<=>myserviceweb service: để bên ngoài tương tác với service chúng tamyservice: hiện thực service bằng Java class hoặc EJBTrong quá trình hiện thực myservice thì có thể service của chúng ta cần giao tiếp với cơ sở dữ liệu. Bình thường thì chúng ta có thể tự mở CSDL và query sau đó đóng gói dữ liệu vào trong class Java. Điều này dễ dàng thực hiện trong các ứng dụng nhỏ. Vì người làm database và ứng dụng rất gần với nhau, đôi khi chỉ là một. Nhưng với những vấn đề lớn, thì hầu như là người phát ứng dụng không biết hoặc biết rất ít về database. Do đó, chúng ta nên mapping giữa CSDL và đối tượng Java, khi bạn mapping xong thì bạn chỉ cần read hoặc write 1 đối tượng thì hệ thống runtime sẻ lo công việc query CSDL.
2. Integrate
Bạn có thể tích hợp component hoặc tích hợp rule.Rule: nhằm để tách giữa ứng dụng và nghiệp vụ, do đó bạn có thể thay đổi nghiệp vụ 1 cách đễ dàng mà không cần phải code lại chương trình
3. Orchestrate
Đây là giai đoạn tích hợp các service. Khi bạn có qui trình nghiệp vụ thì bạn đưa ra được business workflow. Từ business workflow bạn phân tích ra các service. Bạn sẻ hiện thực hoặc sử dụng lại các service. Khi có đầy đủ các service thì chúng ta phải tích hợp lại. Công việc tích hợp này chúng ta dùng ngôn ngữ BPEL để tích hợp các service. Bạn có thể sử dụng BPEL của IBM hoặc của Oracle. Với bộ design của BPEL chúng ta có thể tích hợp các service 1 cách nhanh chóng và dễ dàng.Business process được tích hợp xong cũng được xem là một service và nó tương tác với bên ngoài thông qua web service. Và nó có thể được tích hợp bởi các business process khác.
4. Deploy
Khi các service đã được tạo xong. Bạn test nó cẩn thận và đạt rồi thì chúng ta tiến hành đóng gói các service và sau đó deploy nó lên server đích.
5. Manage và Secure
Đối với các hệ thống phát triển theo mô hình SOA thì hệ thống ngày càng phức tạp dần, và càng ngày có nhiều service hơn do đó thì yêu cầu quản lí và bảo mật các Web service được đặt ra. Hiện nay bạn có thể sử dụng Oracle Web service Manager cho công việc bảo mật này. Với bộ này chúng ta có thể đưa ra những chiến lược cho việc tổ chức và bảo mật một cách dễ dàng.
6. Access
Chúng ta bắt đầu truy xuất vào trong hệ thống.

Không có nhận xét nào:

Đăng nhận xét