Tóm tắt. Bài báo giới thiệu kiến trúc phần mềm hướng dịch vụ Service
Oriented Architecture (SOA), những đặc điểm chính của SOA và đưa ra
một cách thức ứng dụng SOA trong phát triển các phần mềm quản lý nhằm
nâng cao hiệu quả trong tin học hóa công tác quản lý.
9 trang |
Chia sẻ: thanhle95 | Lượt xem: 618 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Ứng dụng kiến trúc SOA trong phát triển phần mềm quản lý, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
JOURNAL OF SCIENCE OF HNUE
FIT., 2011, Vol. 56, pp. 137-145
ỨNG DỤNG KIẾN TRÚC SOA
TRONG PHÁT TRIỂN PHẦN MỀM QUẢN LÝ
Phan Nguyên Hải∗1, Nguyễn Ngọc Phú2 và Phùng Thị Minh Hồng2
1Khoa Công nghệ Thông tin - Học viện Kĩ thuật Quân sự
2Trường Dự bị Đại học Dân tộc Trung ương
(∗)E-mail: phannguyenhai@yahoo.com
Tóm tắt. Bài báo giới thiệu kiến trúc phần mềm hướng dịch vụ Service
Oriented Architecture (SOA), những đặc điểm chính của SOA và đưa ra
một cách thức ứng dụng SOA trong phát triển các phần mềm quản lý nhằm
nâng cao hiệu quả trong tin học hóa công tác quản lý.
1. Mở đầu
Kiến trúc phần mềm có vai trò quan trọng trong quy trình phát triển phần
mềm, tính quan trọng được thể hiện qua việc bước thiết kế kiến trúc là bước đầu
tiên cần giải quyết trong giai đoạn quan trọng nhất trong quy trình phần mềm - giai
đoạn thiết kế. Kiến trúc phần mềm có mối liên hệ chặt chẽ với các yêu cầu phi chức
năng hay các yêu cầu chất lượng của phần mềm, nếu kiến trúc được xác định đúng
phần mềm sẽ có chất lượng tốt [4]. Ngoài mối liên hệ với chất lượng phần mềm,
kiến trúc phần mềm còn cho phép quan sát phần mềm ở mức cao, có thể cho phép
tái sử dụng các thành phần phần mềm giúp tiết kiệm chi phí, hạn chế rủi ro trong
quá trình phát triển và đơn giản hóa những hoạt động diễn ra sau giai đoạn thiết
kế như lập trình, kiểm thử, triển khai, bảo trì và nâng cấp hệ thống [5]. Ngày nay,
trong lĩnh vực công nghệ phần mềm đã có nhiều mô hình, nhiều phong cách kiến
trúc phần mềm được xây dựng, những mô hình, phong cách này đóng vai trò là nền
tảng cho việc xác định kiến trúc các phần mềm cụ thể. Các mô hình kiến trúc phần
mềm phổ biến hiện nay là Client-Server, Distributed Computing, Event-driven, kiến
trúc ba tầng (three-tier), kiến trúc ba lớp (three-layer), kiến trúc hướng dịch vụ,. . .
Trong các mô hình phổ biến đó, mô hình kiến trúc hướng dịch vụ Service Oriented
Architecture (SOA) đang có nhiều triển vọng trong bối cảnh phần mềm ngày càng
phức tạp hiện nay, SOA rất thích hợp cho việc xây dựng các phần mềm ứng dụng
đồ sộ mức độ doanh nghiệp hay mức độ tổ chức [2]. Trong bài báo này, các tác giả
đề xuất và minh họa ứng dụng SOA cho phát triển các phần mềm quản lý nhằm
nâng cao hiệu quả quá trình tin học hóa trường Dự bị đại học Dân tộc Trung ương
nói riêng và các tổ chức nói chung.
137
Phan Nguyên Hải, Nguyễn Ngọc Phú và Phùng Thị Minh Hồng
2. Nội dung nghiên cứu
2.1. Kiến trúc hướng dịch vụ SOA
2.1.1. Khái niệm SOA và nguyên nhân xuất hiện
Về kiến trúc phần mềm hướng dịch vụ SOA, hiện nay đang có nhiều định
nghĩa, nhiều cách hiểu khác nhau, mỗi định nghĩa, mỗi cách hiểu xuất phát từ một
góc độ nhìn nhận hay của một tổ chức cụ thể. Tuy nhiên, có thể kể ra định nghĩa có
tính bao trùm của IBM là tập đoàn hiện nay đang phát triển và ứng dụng SOA một
cách mạnh mẽ [2]: SOA- Service Oriented Architecture là một cấu trúc IT ở mức độ
doanh nghiệp dùng để kết nối các tài nguyên khi nào cần thiết. Những tài nguyên
đó là những dịch vụ mang tính nghiệp vụ có khả năng tham gia và kết hợp trong
một mạng giá trị, doanh nghiệp hoặc một hướng kinh doanh để thỏa mãn được các
nhu cầu kinh doanh. Thành phần cấu trúc chính của các ứng dụng SOA là dịch vụ
chứ không phải là hệ thống con, hệ thống hay các thành phần.
Như vậy, dịch vụ là yếu tố then chốt trong SOA. Có thể hiểu dịch vụ như là
hàm chức năng (mô-đun phần mềm) thực hiện qui trình nghiệp vụ nào đó. Một cách
cơ bản, SOA là tập hợp các dịch vụ kết nối “mềm dẻo” với nhau (nghĩa là một ứng
dụng có thể “nói chuyện” với một ứng dụng khác mà không cần biết các chi tiết kỹ
thuật bên trong), có giao tiếp (dùng để gọi hàm dịch vụ) được định nghĩa rõ ràng
và độc lập với nền tảng hệ thống, và có thể tái sử dụng. SOA là cấp độ cao hơn của
phát triển ứng dụng, chú trọng đến qui trình nghiệp vụ và dùng giao tiếp chuẩn để
giúp che đi sự phức tạp kỹ thuật bên dưới.
Sự phức tạp ngày càng gia tăng của các hệ thống phần mềm mức độ doanh
nghiệp chính là nguyên nhân xuất hiện của kiến trúc SOA. Sự phức tạp thể hiện
qua hai khía cạnh sau:
Thứ nhất, sự xuất hiện của nhiều công nghệ mới tạo nên môi trường không
đồng nhất trong khi nhu cầu chia sẻ, tương tác, trao đổi của các hệ thống không
thể tiến hành trong môi trường như thế. Giải quyết vấn đề này nghĩa là các tổ chức,
doanh nghiệp cần phải thay đổi hệ thống theo một chuẩn thống nhất chung nào đó.
Điều chủ yếu là hệ thống cũ với những công nghệ khác biệt cần được sử dụng lại
chứ không phải là gỡ bỏ thay mới bởi vấn đề chi phí cho thiết lập một hệ thống
quản lý mới tốn kém hơn nhiều so với chuyển đổi cái cũ.
Thứ hai, vấn đề lập trình dư thừa và tái sử dụng. Chẳng hạn, một doanh
nghiệp có nhiều chi nhánh khác nhau, mỗi chi nhánh lại có một hệ thống tách biệt
và xây dựng ở những thời điểm khác nhau và cần kết nối lại với nhau sẽ không tránh
khỏi việc sử dụng dư thừa tài nguyên, dữ liệu không đồng nhất. . .
Những khía cạnh nêu trên đưa đến một khái niệm là “Tích hợp hệ thống”
(Enterprise Architecture Intergration - EAI) – đang được nhiều tổ chức quan tâm
đầu tư giải quyết với chi phí rất cao.
Ngày nay, hầu như mọi tổ chức, doanh nghiệp đều phải đối mặt với vấn đề
138
Ứng dụng kiến trúc SOA trong phát triển phần mềm quản lý
tích hợp vì nhiều lí do như mở rộng thêm chi nhánh, thêm hệ thống bạn hàng mới,
hoặc là cần kết nối các hệ thống có sẵn,. . . Vấn đề kéo theo là chi phí thay đổi
mã nguồn cũ, kiểm thử, bảo trì,. . . Để giải quyết những vấn đề này, những công
nghệ, những kiến trúc phổ biến như OOP (Object Oriented Programming), DCOM
(Distributed Common Object Model), CORBA (Common Object Request Broker
Architecture) chưa đem lại kết quả như mong muốn và SOA đang được xem là “ứng
cử viên sáng giá” có thể đảm nhận trọng trách này và được kỳ vọng tạo nên cuộc
cách mạng trong kỹ nghệ phần mềm, giúp cho công việc phát triển phần mềm trở
nên dễ dàng, nhanh chóng, dễ chỉnh sửa và dễ mở rộng hơn [3].
2.1.2. Các nguyên tắc chính của SOA
Theo các định nghĩa, thành phần chính của hệ thống phần mềm có kiến trúc
SOA là dịch vụ, các dịch vụ theo kiến trúc SOA phải tuân thủ những nguyên tắc
sau [3]:
• Các dịch vụ phải có sự phân định ranh giới rạch ròi.
• Các dịch vụ tự hoạt động như những thực thể độc lập.
• Các dịch vụ chia sẻ lược đồ.
• Các dịch vụ tương thích dựa trên chính sách.
• Các dịch vụ kết nối lỏng lẻo.
• Các dịch vụ có khả năng tái sử dụng.
• Các dịch vụ phải cho phép đối tượng cần sử dụng dịch vụ tìm thấy.
Những nguyên tắc này là cơ sở để giải quyết những phức tạp chính đã nêu
trên của các hệ thống phần mềm mức độ doanh nghiệp, đồng thời cũng đem lại chất
lượng cho các hệ thống phần mềm đó.
2.1.3. Các thành phần của một hệ thống theo kiến trúc SOA
Một hệ thống phần mềm được xây dựng theo kiến trúc SOA bao gồm ba
nhóm thành phần chính: Service Provider, Service Consumer, và Service Registry.
Sự tương tác giữa các thành phần được miêu tả trên Hình 1.
Hình 1. Các thành phần chính của hệ thống theo kiến trúc SOA
Service Provider: Cung cấp dịch vụ phi trạng thái (stateless) phục vụ cho một
nhu cầu nào đó.
139
Phan Nguyên Hải, Nguyễn Ngọc Phú và Phùng Thị Minh Hồng
Serive Consumer: Sử dụng dịch vụ được cung cấp bởi Service Provider.
Service Registry: Nơi lưu trữ thông tin về các dịch vụ của các Service Provider
khác nhau, Service Consumer dựa trên những thông tin này để tìm kiếm và lựa chọn
Service Provider phù hợp.
2.1.4. Các công nghệ hỗ trợ phát triển phần mềm theo kiến trúc SOA
Trong một chương trình theo kiến trúc SOA, có các thành phần như miêu tả
trên Hình 2.
Hình 2. Các thành phần chương trình theo kiến trúc SOA [1]
Những thành phần chương trình này là những viên gạch để tạo nên các thành
phần Service Provider, Service Consumer và Service Registry của một hệ thống phần
mềm theo kiến trúc SOA. Trong phát triển phần mềm theo kiến trúc SOA, quan
trọng nhất là xác định cách thức các thành phần trao đổi thông tin với nhau, làm
thế nào để Consumer biết Provider cung cấp những dịch vụ gì, và sau khi biết được
các dịch vụ đó thì Consumer làm thế nào để yêu cầu chúng và cách Provider trả kết
quả lại cho Consumer như thế nào. Trong sơ đồ Hình 2, các thành phần chương trình
đóng vai trò giúp Provider và Consumer trao đổi thông tin là Contract, Interface,
Service repository, Service bus. Việc xây dựng những quy trình xử lý trong các thành
phần Consumer và Provider (Application frontend, Business logic, Data) có thể coi
như việc xây dựng những quy trình xử lý trong các chương trình thông thường. Hiện
nay, để giúp các thành phần của hệ thống phần mềm theo kiến trúc SOA giao tiếp
và hỗ trợ xây dựng quy trình xử lý trong các dịch vụ có những công nghệ chính sau:
• SOAP (Simple Object Access Protocol) là giao thức trao đổi thông tin có
cấu trúc XML trong các hệ thống phân tán.
• RPC (Remote Procedure Call) là công nghệ giúp các chương trình trên một
máy tính gọi các hàm hoặc thủ tục trên các máy tính khác.
• DCOM (Distributed Component Object Model).
• CORBA (Common Object Request Broker Architecture).
• WSDL (Web Services Description Language) giúp miêu tả các dịch vụ một
Provider cung cấp.
• WCF (Windows Communication Foundation) trong Visual Studio.NET.
140
Ứng dụng kiến trúc SOA trong phát triển phần mềm quản lý
Trong các công nghệ trên, RPC, DCOM, CORBA trao đổi thông tin dưới
dạng nhị phân nên có nhược điểm dễ bị tường lửa ngăn chặn, WCF tương đối mới
và cho phép sử dụng những công nghệ mạnh mẽ của .NET Framework. WCF sử
dụng SOAP để trao đổi thông tin và WSDL để mô tả thông tin về các dịch vụ. Hiện
nay WCF đang phát triển mạnh mẽ, là công nghệ chủ đạo của Microsoft để phát
triển các phần mềm theo kiến trúc SOA.
2.2. Phát triển phần mềm theo kiến trúc SOA
2.2.1. Những bất cập trong phần mềm quản lý và các giải pháp loại trừ
Như đã nói ở trên, kiến trúc SOA rất thích hợp cho những hệ thống phần
mềm mức độ doanh nghiệp, tổ chức. Kiến trúc SOA giúp giải quyết vấn đề dư thừa,
nâng cao khả năng tái sử dụng. Để minh họa cho hiệu quả này, chúng ta sẽ xem xét
việc phát triển phần mềm quản lý điểm học sinh cho trường Dự bị Đại học dân tộc
Trung ương nhằm mục tiêu tin học hóa các hoạt động của nhà trường sẽ gặp phải
những vấn đề nào và việc ứng dụng kiến trúc SOA để giải quyết.
Xét một cách tổng thể, trong tương lai để đạt được mục tiêu tin học hóa nhà
trường sẽ cần phải phát triển một loạt các phần mềm như phần mềm quản lý nhân
sự, phần mềm quản lý học sinh, phần mềm quản lý điểm, phần mềm quản lý học
phí, học bổng, lương, phần mềm quản lý thư viện,... Trong các phần mềm trên, có
thể thấy ngay phần mềm quản lý học sinh, phần mềm quản lý điểm, phần mềm
quản lý học phí, học bổng, phần mềm quản lý thư viện sẽ cần phải có cơ sở dữ liệu
(CSDL) hồ sơ học sinh để hoạt động. Nếu chúng ta xây dựng các phần mềm quản
lý này một cách thông thường, nghĩa là sẽ thiết kế CSDL, sử dụng một hệ quản
trị CSDL để lưu trữ và xây dựng ứng dụng hoạt động độc lập không liên quan đến
các phần mềm khác để làm việc trực tiếp với hệ quản trị CSDL đó theo kiến trúc
Client-Server, thì có thể thấy được những bất cập sau:
• Thứ nhất, thông tin học sinh sẽ bị lưu trữ nhiều lần, nhiều nơi, điều này
gây lãng phí không gian lưu trữ và thời gian, công sức nhập dữ liệu.
• Thứ hai, cùng một thông tin học sinh như họ tên, lớp học,... nhưng khi được
lưu trữ độc lập trong các CSDL của các phần mềm trên, thông tin đó có thể bị thay
đổi riêng rẽ tạo nên sự khác biệt, sai lệch.
Ngoài bất cập trong phần mềm quản lý điểm, trong quá trình tin học hóa nhà
trường có thể gặp bất cập về việc phần mềm quản lý nhân sự, quản lý thư viện,
quản lý lương có các CSDL cùng chứa thông tin nhân sự,...
Những bất cập trên là những bất cập chung phổ biến hiện nay trong quá trình
tin học hóa các hoạt động của các cơ quan đơn vị, doanh nghiệp, tổ chức. Nguyên
nhân chính là do các bộ phận quản lý luôn muốn phát triển phần mềm quản lý chỉ
dùng cho riêng mình, không có sự chia sẻ với các bộ phận quản lý khác. Để loại bỏ
những bất cập trên có thể có những ý tưởng giải pháp như sau:
Giải pháp thứ nhất: Xây dựng một CSDL lớn, tập trung, lưu trữ tất cả các
141
Phan Nguyên Hải, Nguyễn Ngọc Phú và Phùng Thị Minh Hồng
thông tin của nhà trường (cơ quan, đơn vị, doanh nghiệp, tổ chức) và phát triển
một hệ thống gồm nhiều phân hệ quản lý làm việc với CSDL đó. Đây là giải pháp
tổng thể, tuy nhiên có thể thấy ngay là việc xây dựng hoàn toàn không đơn giản,
đòi hỏi các bộ phận quản lý phải phối hợp cùng nhau phát triển, việc lưu trữ CSDL
tập trung có thể gây ra các vấn đề về bảo mật, an toàn dữ liệu vì bộ phận quản lý
này có thể truy cập vào dữ liệu của bộ phận quản lý khác, hơn nữa trên thực tế các
bộ phận quản lý có sự độc lập tương đối, cho nên không nên ghép các phần mềm
quản lý vào một hệ thống lớn.
Giải pháp thứ hai: Lưu trữ CSDL độc lập theo kiểu mỗi thông tin chỉ lưu trữ
một lần và cho phép các phần mềm truy cập trực tiếp được vào CSDL của nhau.
Giải pháp này có nhiều vấn đề như: khó quản trị CSDL; tính bảo mật, an toàn dữ
liệu kém; việc lập trình các ứng dụng sẽ khó khăn hơn vì phải biết các cấu trúc của
CSDL; khi nâng cấp CSDL sẽ phải thay đổi nhiều thứ trong các ứng dụng sử dụng
CSDL đó.
Giải pháp thứ ba: Lưu trữ CSDL độc lập theo kiểu mỗi thông tin chỉ lưu trữ
một lần và trên mỗi CSDL đó xây dựng các dịch vụ quản lý, nghĩa là sẽ ứng dụng
kiến trúc SOA. Các ứng dụng sẽ không được truy cập trực tiếp vào CSDL mà sẽ
phải truy cập qua các dịch vụ. Để đảm bảo an toàn dữ liệu, các dịch vụ sẽ được
phân quyền truy cập. Giải pháp ứng dụng kiến trúc SOA sẽ giải quyết được những
bất cập nêu trên, hơn nữa còn có những ưu điểm như dễ tích hợp thêm các phần
mềm, dễ nâng cấp CSDL cũng như ứng dụng, lập trình làm việc với các dịch vụ tiện
lợi hơn so với truy cập trực tiếp vào CSDL, lập trình viên có thể lựa chọn ngôn ngữ
lập trình mong muốn để xây dựng ứng dụng, dễ kiểm thử,...
2.2.2. Phát triển phần mềm quản lý điểm theo kiến trúc SOA
Để hiện thực hóa giải pháp thứ ba, các tác giả sử dụng công nghệ WCF trong
bộ Visual Studio 2008 cùng với hệ quản trị CSDL Microsoft SQL Server 2005.
Hình 3. Bảng hồ sơ học sinh
Đầu tiên phải thiết kế CSDL sao cho trong hệ thống các CSDL của nhà trường
mỗi thông tin chỉ được lưu trữ một lần.
142
Ứng dụng kiến trúc SOA trong phát triển phần mềm quản lý
CSDL dữ liệu thông tin hay hồ sơ học sinh được xây dựng một cách thông
thường và gồm các bảng chính như sau (hình 3, 4):
Hình 4. Bảng thông tin lớp học
CSDL quản lý điểm gồm các bảng như miêu tả trên các hình 5 và 6.
Hình 5. Bảng thông tin điểm của
học sinh
Hình 6. Bảng thông tin các
môn học
Trên các CSDL này, các dịch vụ quản lý thông thường như thêm, xóa, sửa,
tìm kiếm được xây dựng với sự hỗ trợ của WCF và ngôn ngữ truy vấn LINQ.
Có thể thấy rằng trong hai CSDL trên thông tin cá nhân của học sinh và các
thông tin khác chỉ được lưu trữ một lần. Trong CSDL điểm chỉ lưu trữ mã (Mahs)
của học sinh mà không cần lưu trữ đầy đủ thông tin học sinh, thông tin đầy đủ có
thể nhận được qua Mahs bằng cách sử dụng các dịch vụ tìm kiếm trên CSDL học
sinh. Tùy thuộc vào yêu cầu chức năng của phần mềm, có thể bổ sung thêm các
dịch vụ cần thiết khác. Sau khi đã xây dựng xong các dịch vụ, sử dụng chương trình
mang để chạy dịch vụ nằm thường trú trên URL. Các chương trình mang dịch vụ,
các CSDL hoàn toàn có thể được lưu trữ độc lập trên các máy tính khác nhau. Để
gọi các dịch vụ, cần truy xuất vào URL của dịch vụ, ngoài ra môi trường .NET còn
cung cấp một cơ chế gọi dịch vụ rất tiện lợi. Khi tạo tham chiếu tới URL của dịch
vụ, .NET sẽ tự động sinh ra class đại diện cho dịch vụ đó, các phương thức của class
này chính là các dịch vụ được cung cấp. Hình 7 thể hiện cách .NET hỗ trợ truy cập
tới các dịch vụ.
Thông qua các dịch vụ trên các CSDL, có thể xây dựng phần mềm quản lý
điểm một cách dễ dàng. Sơ đồ hoạt động của phần mềm được thể hiện trên Hình 8,
đây chính là một sơ đồ kiến trúc SOA.
143
Phan Nguyên Hải, Nguyễn Ngọc Phú và Phùng Thị Minh Hồng
Hình 7. Sử dụng dịch vụ WCF trong .NET
Hình 8. Sơ đồ hoạt động của phần mềm quản lý điểm
Hình 9. Giao diện của sổ chính của phần mềm quản lý điểm
Trên Hình 9 thể hiện giao diện cửa sổ chính của phần mềm quản lý điểm. Khi
click chuột vào một hàng trong bảng danh sách học sinh sẽ hiện ra thông tin chi
tiết về học sinh đó, thông tin này nhận được từ dịch vụ quản lý học sinh.
Phần mềm quản lý điểm không được phép có chức năng thêm, sửa, xóa hồ sơ
cá nhân của học sinh, những chức năng này chỉ có trong phần mềm quản lý hồ sơ
học sinh (sử dụng các dịch vụ quản lý CSDL hồ sơ học sinh). Điều này cũng giống
như trên thực tế, bộ phận quản lý điểm không được phép thay đổi thông tin cá
nhân của học sinh, việc thay đổi thông tin cá nhân học sinh là chức năng của bộ
phận quản lý học sinh. Để ngăn phần mềm quản lý điểm sử dụng các dịch vụ thêm,
sửa, xóa trên CSDL học sinh, các dịch vụ được phân quyền sử dụng, khi sử dụng
144
Ứng dụng kiến trúc SOA trong phát triển phần mềm quản lý
các dịch vụ cần phải qua khâu xác thực.
Theo sơ đồ Hình 7, khác biệt so với việc xây dựng phần mềm theo mô hình
hai lớp, ba lớp truyền thống chính là sự có mặt của tầng dịch vụ. Phần mềm quản
lý điểm được xây dựng gồm hai phần tách biệt là phần cung cấp dịch vụ và phần
sử dụng dịch vụ, các phần có thể viết trên các ngôn ngữ lập trình khác nhau, chính
vì vậy các lập trình viên với các ngôn ngữ lập trình thông thạo khác nhau đều có
thể tham gia phát triển. Tính chất nhiều phần tách biệt cũng làm cho phần mềm
dễ kiểm thử, nâng cấp và bảo trì.
Với kiến trúc SOA, tương tự như trên hoàn toàn có thể xây dựng các phần
mềm quản lý thư viện, quản lý học phí, học bổng,... mà không bị trùng lặp dữ liệu,
các dịch vụ được tái sử dụng nhiều lần, các phần mềm dễ tích hợp với nhau, hơn
nữa chức năng của các phần mềm đó sát với chức năng của các bộ phận quản lý
tương ứng trên thực tế. Đây là các kết quả mới mà phần mềm theo kiến trúc SOA
mang lại.
3. Kết luận
Bài báo đã nêu lên những lợi ích mà kiến trúc hướng dịch vụ SOA mang lại
trong phát triển các phần mềm lớn, phức tạp mức độ doanh nghiệp. Trong lĩnh vực
phần mềm quản lý, SOA đem lại nhiều hiệu quả rõ rệt, phần mềm quản lý điểm
được xây dựng với các kết quả mới chính là sự minh họa cho triển vọng của SOA
trong mục tiêu quản lý tin học hóa các hoạt động của nhà trường nói riêng và trong
các tổ chức, cơ quan đơn vị nói chung.
REFERENCES
[1] Dirk Krafzig, Karl Banke, and Dirk Slama, 2005. Enterprise SOA: Service Ori-
ented Architecture Best Practices. Prentice Hall.
[2] Bieberstein et al., 2005. Service-Oriented Architecture (SOA) Compass: Business
Value, Planning, and Enterprise Roadmap (The developerWorks Series) (Hard-
cover). IBM Press books.
[3] Thomas Erl, 2005. Service-Oriented Architecture: Concepts, Technology, and De-
sign. Prentice Hall.
[4] David Garlan and Mary Shaw, 1994. An Introduction to Software Architecture.
School of Computer Science. Carnegie Mellon university.
[5] Len Bass, Paul Clements, Rick Kazman, 2003. Software Architecture in Practice,
Second Edition. Addison-Wesley.
ABSTRACT
Applying SOA in the development of management softwares
Service Oriented Architecture (SOA) and its main characteristics are presented
in this paper. In addition, a way of applying SOA in the development of management
software to improve efficiency of management is also provided.
145