1 RoboComm: Rule-Baseo d Scheduling for Communication Systems CSCI Research Project and Seminar Team #7 Instructor: Dr. Kwok-Bun Yue Mentor: Mr. Dilhar De Silva
2 Content Team Members Project Overview Software Architecture JBoss Rules Use Case Implementation Conclusion
3 Team member NameResponsibility Thanh DoanTeam Lead Dung NguyenJBoss rules Tuan LeGUI Hung TranGUI & Database
4 Project Overview Presented by Hung Tran Build on top of previous team work Rewrite UI using Zimbra open source Ajax framework
5 Apply JBoss Rules to improve how communication systems schedule meetings with participants Project Overview Presented by Hung Tran
6 Technologies JBoss Rules AJAX Web services
7 Technologies Java MySQL LDAP Tomcat
8 Software Architecture Presented by Hung Tran
9 Server Architecture Presented by Hung Tran
10 ZCS Migration Wizard for Exchange.exe file. Use the Migration Wizard.exe file to migrate Microsoft® Exchange server accounts to the Zimbra server. Accounts from Microsoft Exchange 2000, 2003, and 5.5 can be migrated. Presented by Hung Tran
11 Postfix serves as the Zimbra Mail Transfer Agent (MTA) for sending and receiving across the Internet. All Zimbra messages (internal and external) flow through Postfix. Postfix uses SMTP/LMTP protocol. Presented by Hung Tran
12 The Zimbra message (or blob) store is built on the underlying Unix/Linux file system. The mapping is one file per message—Zimbra actually write the RFC822 MIME message representation directly to a file. Presented by Hung Tran
13 The Zimbra includes an embedded relational database, MySQL, for managing mailbox meta-data Presented by Hung Tran
14 Lucene is a high-performance, full-text search engine from Apache. The search process required to construct an index. So, Lucene works by generating a full “segment” index. Presented by Hung Tran
15 The Zimbra journal is like a database transaction log in guaranteeing that no data is lost in the event of a failure and that the system can restart quickly. Presented by Hung Tran
16 JBoss Rules Presented by Dung Nguyen If A,not(B),not(C) then do(A1) elseIf A,B,not(C) then do(A1,B1) elseIf A,B,C then do(A1,B1,C1) Rule A: When A then do(A1) Rule B: When B then do(B1) Rule C: When C then do(C1)
17 JBoss Rules Structure of JBoss Rules Engine
18 JBoss Rules Rule: check if the Appointment is celebrated. Class ParticipantList { int percetageOfParticipant; long appointementID; …… } Class Appointment { long appointmentID; int successPercentage; void setSuccess(boolean success); ……… } WorkingMemory.Assert(m_ParticipantList); WorkingMemory.Assert(m_AppointmentList); Assert Object to Rule Engine
19 JBoss Rules rule when ParticipantList(percent: PercetageOfParticipant,apptID1: AppointementID) appt:Appointment(apptID: AppointmentID,successNo: SuccessPercentage) eval(apptID1==apptID) eval(percent>=successNo) then appt.setSuccess(true); appt.CreateAppointment(); end Rule: check if the Appointment is celebrated.
20 JBoss Rules WorkingMemory.assertObject(m_ParticipantList); WorkingMemory.assertObject(m_AppointmentList); Assert Object to Rule Engine WorkingMemory.fireAllRules(); Activate Rules Engine Import org.drools.*;
21 Implementation – Create meeting request Presented by Tuan Le Convener click on “Save” button to create a conference call
22 Login page
23 Calendar page
24 Appointment details
25 Sequence Diagram Services getContext_Session dispatchServices createAppointment getInfoRequestgetContactRequest Client – Ajax GUI JBoss Rules Database – File System Server
26 Participant respond to the meeting request by accept it or decline it Implementation– Respond the meeting request Presented by Thanh Doan
27 User 2 – Respond to meeting request
28 User 2 – Response message (automatically)
29 User 2 – respond message
30 User 1 – Get response message
31 User 4 – decline meeting
32 User 4 – Accept meeting
33 Sequence Diagram Services getContext_Session dispatchServices sendResponse ResponseEventResponseHandle Client – Ajax GUI JBoss Rules Database – File System Server
34 Conclusion RoboComm has been built with many features: Create / manage a meeting Response a meeting request Contact list
35 Conclusion (cont) Individual calendar Apply JBoss rules into RoboComm What will be done so far: Implement more rules into RoboComm
36 Reference 1. JBoss Rules: 2. Zimbra: 3. Documentation:
37 Thanks for listening QA