Tuy nhiên dữ liệu hiện thị không hiện thị trên web nên tầng View sẽ trả về dữ liệu theo định dạng JSON object để thuận tiện cho việc trao đổi dữ liệu và kiến trúc RESTful Service. Đối với mơ hình web MVC có rất nhiều framework hỗ trợ. Trong khn khổ đồ án sử dụng Springweb MVC vì nó hỗ trợ mạnh kiến trúc Restful và JSON object. Ngoài ra ở tầng Model, đồ án sử dụng Hibernate Frame work để công việc kết nối với database dễ dàng hơn. Cơ sở dữ liệu được xây dựng bằng Oracle 10g .
Khi ứng dụng gửi request đến server theo các yêu cầu của kiến trúc RESTful Service như post, get, put, delete, Tomcat nghe ngóng và chuyển yêu cầu này Front controller của Spring Framework. Tiếp tục, request được uỷ thác cho Controler. Việc chuyển cơng việc thao tác dữ liệu liên quan nếu có sẽ được thực hiện bởi Model được tạo bởi Controler. Tại đây, ta có Hibernate hỗ trợ. Hibernate có các bean và các bean này ánh xạ với database. Các bean được tạo ra và được khởi tạo dữ liệu và dữ liệu sẽ truyền vào bean, bean sẽ lăn ra lăn vào database để thực hiện cơng việc thao tác dữ liệu của mình. Việc ánh xạ sẽ được qua các file cấu hình mà Hibernate yêu cầu. Hibernate kết nối với database Oracle 10g với thư viện của mình. Kết quả trả về sẽ được Controler đẩy cho Front controller và nó sẽ thực hiện tạo các đối tượng dữ liệu trả về cho các request theo mẫu View Template mà ở đây là các đối tượng JSON object.
6.2. Biểu đồ lớp
Kiến trúc web MVC được xây dựng theo framework Spring MVC 3.0. Các lớp listener các yêu cầu từ client được framework hỗ trợ. Việc xây dựng controller là kế thừa các lớp trong thư viện. Các lớp chính có thể nhóm thành 3 nhóm:
mapping. dữ liệu sẽ truyền cho các Bean và thực hiện thao tác với database. Các bean này cũng được xuất hiện trong các file cấu hình của Hibernate.
Hình 6.2 biểu đồ lớp server
6.3. Thiết kế Cơ sở dữ liệu 6.3.1. Mơ hình thực thể liên kết
Cơ sở dữ liệu xoay quanh người dùng. Người dùng là myCharacter – nhân vật chính. Người dùng có những trải nghiệm về điểm, có lược sử hành động của mình tại đâu đó, các địa điểm này sẽ được coi là địa điểm mà người dùng quan tâm, lược sử hay trải nghiệm sẽ được chia sẻ với những ai. Người dùng kết bạn với ai, có inbox và outbox chứa các tin nhắn . Và khi họ viết comment về hành động hay lược sử , trải nghiệm của người khác. Notification là thơng báo cho người dùng họ có gì tương tác với họ chẳng hạn : bạn bè vừa comment hay có tin nhắn, hay nhận được lời mời kết bạn …
Hình 6.3.1 sơ đồ thực thể liên kết
6.3.2. Thiết kế bảng cơ sở dữ liệu
Database gồm 10 bảng với bảng mycharacter làm trung tâm liên kết với các bảng khác. Riêng bảng policy liên kết ngầm định với bảng experience , history và mycharacter. Policy type ở các bảng này có 4 kiểu: all- tất cả mọi người được phép xem, friend – chỉ có bạn bè mới được xem – no one , không ai được xem cả và some- 1 vài người chỉ định trong policy mới được xem. Đây là cách liên kết ngầm định với các bảng còn lại của policy.
Comment cũng có 2 loại 1 loại là comment lên status và loại còn lại là lên experience. Quyết định thuộc loại nào do trường type và targetid là id của comment hoặc exprience.
Bảng notification có trường đặc biệt là type và targetid cũng chỉ ra đối tượng tương tác thông báo cho người dùng như là comment hay lời mới kết bạn…
Hình 6.3.3.a bảng policy
Hình 6.3.3.b bảng place
Hình 6.3.3.c bảng notification
Hình 6.3.3.d bảng comment
Hình 6.3.3.e bảng mycharacter
Hình 6.3.3.g bảng image
Hình 6.3.3.h bảng history
Hình 6.3.3.i bảng friend
Hình 6.3.3.j bảng experience
6.4. Biểu đồ Usecase