Chúng tôi xin đề xuất một kiến trúc dựa trên thành phần cho các hệ thống dựa đề xuất mô hình ở trên. Với từng thành phần, thông qua giao diện của chúng, ta có thể đặt chúng với nhau bằng cách kết nối để tạo thành một thành phần lớn hơn với nhiều dịch vụ hơn và quá trình tiếp tục như vậy cho đến khi nó trở nên khép kín (tức là giao diện yêu cầu của nó là trống) và các dịch vụ nó cung cấp là đáp ứng yêu cầu người dùng (usecases). Hệ thống của chúng tôi được xây dựng theo phương pháp này có hai phần:
phần bị động (passive part) là một thành phần đóng tạo thành từ một tập hợp các thành phần, và phần chủ động(active part) là một tập hợp các chuỗi hành động được kích hoạt bởi các sự kiện bên ngoài và sử dụng các dịch vụ từ phần bị động để đáp ứng các yêu cầu từ các tác nhân bên ngoài của hệ thống [29].
Hình 2. Mô hình kiến trúc cho hệ thống dựa trên thành phần
Từ kiến trúc này, chúng tôi đề xuất một phương pháp phát triển cho các hệ thống dựa trên thành phần như sau. Giả sử chúng ta muốn phát triển một hệ thống nhúng thời gian thực. Các bước thực hiện sẽ như sau:
•Phát triển thành phần chủ động dựa trên các các yêu cầu của hệ thống bao gồm các luồng và giao diện với môi trường. Thành phần chủ động sẽ có một tập hợp các phương thức cần thiết sau quá trình phân tích và phát triển.
•Phát triển các thành phần bị động mới hoặc tìm kiếm các thành phần bị động có sẵn phù hợp có thể cung cấp dịch vụ cho các thành phần chủ động. Sự phát triển của một thành phần bắt đầu với hợp đồng là một tập rỗng các phương thức yêu cầu, và sẽ được liên tục cập nhật khi một dịch vụ được thực hiện.
•Kết hợp các thành phần bị động cùng nhau để gia tăng dịch vụ cung cấp, chúng ta thực hiện cho đến khi có được một thành phần bị động "đủ lớn" mà đáp ứng được tất cả các phương thức yêu cầu của thành phần chủ động.
•Từ các lời gọi tới các dịch vụ của thành phần bị động "đủ lớn", và từ việc thiết kế các quá trình trong thành phần chủ động, chúng ta có thể phân tích khả năng lập lịch cho việc truy nhập song song vào tài nguyên cho hệ thống mong muốn.