xây dựng một hệ thống quản lý chấm công nhân viên trên nền web - Pdf 13

Hệ thống Chấm công doanh nghiệp C2H4 Group
Mục lục
Bài tập lớn Client – Server
Trang 1
Hệ thống Chấm công doanh nghiệp C2H4 Group
1. Giới thiệu đề tài
Ngày nay, việc tin học hóa đang diễn ra mạnh mẽ trong các doanh nghiệp, xí nghiệp
ở tất cả các quy mô tại Việt Nam. Các phần mềm quản lý doanh thu, quản lý nhân viên,
quản lý xuất nhập… trong các công ty đã và đang được các nhà quản lý quan tâm bởi lợi
ích nó đem lại. Việc ứng dụng các HTTT vào thực tế giúp giảm chi phí cho việc quản
lý trong công ty.
Một trong những công việc được tin học hóa đó là hệ thống quản lý chấm công
nhân viên trong các công ty. Chấm công hiện nay là một tác vụ thật sự cần thiết và diễn ra
hàng ngày trong các doanh nghiệp. Qua việc quản lý tốt giờ giấc làm việc của nhân viên,
doanh nghiệp có thể tăng thêm được hiệu quả hoạt động kinh doanh. Riêng với nhà quản
lý, họ còn có thể dựa vào đó để lên kế hoạch nhân sự, phân bổ công việc…
Như đã trình bày ở trên, hệ thống chấm công trong doanh nghiệp với mục đích
chính là giúp cho doanh nghiệp kiểm soát được hoạt động, lịch làm việc, công tác của các
nhân viên để từ đó quản lý tiền lương, nhân viên, lịch hoạt động của nhân viên để đảm bảo
tính kỹ luật cũng như ổn định của sản xuất.
Bằng việc khảo sát thực tế qua các doanh nghiệp cùng với việc tham khảo qua một
số phần mềm chấm công hiện có trên thị trường ATA do Hà Nội CTA phát triển, TAS do
Digitech phát triển và thương mại hóa, nhóm có rút ra một số nhược điểm của các phần
mềm chấm công hiện nay như sau:
- Phần lớn các phần mềm chấm công hiện nay phát triển dựa trên nền tảng
desktop application, phụ thuộc nhiều vào môi trường hệ điều hành, khó khăn
trong việc cập nhật, triển khai.
- Việc này cũng khó khăn cho nhà quản lý trong việc kiểm soát tiến độ khi không
ở trong công ty.
- Việc thiết kế dựa vào chủ yếu mô hình hướng cấu trúc nên khả năng phân tầng
không rõ ràng, khó khăn khi mở rộng hệ thống hơn so với mô hình hướng đối

3. Xác lập (thể chế hóa): Quy trình này được xác lập/ xác nhận như một quy trình
doanh nghiệp tiêu chuẩn.
4. Kiểm soát (định lượng): Tiến hành kiểm soát và đo lường quy trình sản xuất phần
mềm
Bài tập lớn Client – Server
Trang 3
Hệ thống Chấm công doanh nghiệp C2H4 Group
5. Tối ưu (cải tiến quy trình): Kiểm soát quy trình bao gồm việc cân nhắc kỹ để cải
tiến/ tối ưu hóa quy trình.
2.2. Ứng dụng CMMI
CMMI bao gồm hàng loạt các quy trình trong phát triển phần mềm từ khi bắt đầu
dự án đến khi kết thúc, kèm theo là các tài liệu đi kèm, quản lý cấu hình,… Do quy mô
của dự án nhỏ và thời gian không cho phép nên dự án sẽ chỉ tập trung vào cách tổ chức
thư mục và quản lý source trong quá trình phát triển.
Cấu trúc thư mục của dự án:
Mô hình cấu trúc thư mục của dự án (mức System)
Cấp 1 Cấp 2,3,4.. Giải thích
01_Contracts Lưu trữ các văn bản hợp đồng
của dự án
02_Baselines 01_BAL 01_BAL_<Tên viết tắt của
dự án>_YYYYMMDD
Lưu trữ các dữ liệu (các thành
phần cấu hình tại version xác
định) tại các mốc đặt Baseline
của dự án – sử dụng cho việc
xây dựng lại hệ thống sau này
(nếu cần) và các phiên bản
bàn giao (Release) cho khách
hàng (hoặc các bên liên quan)
Các thành phần cấu hình tại

đặc tả usecase
02_Analysis &
Design
Analysis Các tài liệu phân tích thiết kế
của phần mềm: Tài liệu Kiến
trúc phần mềm, tài liệu thiết
kế dữ liệu, Tài liệu thiết kế
lớp, tài liệu thiết kế màn hình
Design
Database
03_Sources Khu vực lưu trữ mã nguồn
của phần mềm
04_Implementation Build Các chương trình thực thi của
phần mềm
SubSystem
05_Testing Unit Test Các tài liệu Kiểm thử của dự
án qua các giai đoạn Kiểm
thử: Thiết kế Kiểm thử và các
kết quả kiểm thử: Các trường
hợp Kiểm thử, Báo cáo kết
quả Kiểm thử
Integration Test
System Test
Acceptance Test
06_System
Deployment
Documents Các tài liệu triển khai dự án:
Thủ tục triển khai, Hướng dẫn
sử dụng, Hướng dẫn cài đặt
Manuals

dụng cho dự án
(Mục này là tùy chọn)
09_Configuration & Change
Management
Khu vực quản lý cấu hình và
kiểm soát thay đổi của dự án:
Danh sách các thành phần cấu
hình
Yêu cầu thay đổi
05_Backup BAK_<Tên viết tắt của dự
án>_YYYYMMDD
Khu vực lưu trữ các dữ liệu
sao lưu của dự án
06_Reused Nếu có
Bài tập lớn Client – Server
Trang 6
Hệ thống Chấm công doanh nghiệp C2H4 Group
07_References Chứa tài liệu, biểu mẫu tham khảo phục vụ việc thực hiện dự án, Các
tài liệu hướng dẫn đặc biệt của dự án (Project Specific Guidelines)…
Người quản lý cấu hình có thể tạo thêm các thư mục khác tại đây nếu
cần
Bên cạnh việc tổ chức thư mục, dự án có sử dụng Subversion (SVN) và Google Code
để quản lý source code.
Bài tập lớn Client – Server
Trang 7
Hệ thống Chấm công doanh nghiệp C2H4 Group
3. Giới thiệu nghiệp vụ
Qua việc phân tích nghiệp vụ tại công ty cổ phần Archi, hệ thống chia làm các phân
hệ chính sau :
3.1. Phân hệ quản lý nhân sự :

- Ngày bắt đầu hiệu lực (từ ngày)
- Giờ đến, giờ về
- Giờ vào ra riêng cho ngày thứ 7, chủ nhật (nếu không định nghĩa thì sẽ áp
dụng giờ vào ra giống như ngày thường)
- Nghỉ giữa ca (giờ ra, giờ vào)
- Quy định thời gian cho phép đi muộn, về sớm, được hiểu là số phút xê dịch
cho phép nhân viên đi muộn, và số phút cho phép nhân viên về sớm.
- Quy định mốc bắt đầu tính làm thêm giờ được định nghĩa trong Ngưỡng tính
làm thêm trước ca và sau ca. Đây được hiểu là nếu vượt qua số phút này thì mới
được tính làm thêm.
3.2.3 Quản lý thông tin đăng ký làm thêm giờ của nhân viên :
Hệ thống cho phép nhân viên đăng ký làm thêm giờ các ngày trong tuần.Để quản lý
công làm thêm giờ được hiệu quả , cũng tránh được trường hợp nhân viên ở lại làm
việc riêng đến quá giờ mới quẹt thẻ ra về thì không được hưởng lương làm thêm giờ
3.2.4 Quản lý lý do vắng mặt :
* Dưới góc độ nhà quản lý : Hệ thống giúp công ty lập ra các quy định về lý
do vắng mặt hợp lệ,lý do nào là không hợp lệ.
* Dưới góc độ nhân viên : Hệ thống giúp nhân viên đăng ký lý do vắng mặt.
Cập nhật thông tin đăng ký .
Bài tập lớn Client – Server
Trang 9
Hệ thống Chấm công doanh nghiệp C2H4 Group
3.2.5 Quản lý lý do xin ra ngoài giữa giờ :
Tương tự như quản lý lý do vắng mặt,
* Dưới góc độ nhà quản lý : Hệ thống giúp công ty lập ra các quy định về lý do ra
ngoài hợp lệ,lý do nào là không hợp lệ,
* Dưới góc độ nhân viên : Hệ thống giúp nhân viên đăng ký lý do ra ngoài. Cập
nhật thông tin đăng ký ra ngoài trong giờ làm.
3.2.6 Quản lý giờ vào ra của nhân viên :
 Hệ thống cho phép cập nhật thông tin vào ra của nhân viên tự động ,dữ liệu

trừ những tiêu điểm của nó là những đặc tính mới trong phiên bản chuẩn của J2EE, đây
chưa phải là 1 sản phẩm hoàn chỉnh.
• Compatibility Test Suite - một công cụ để kiểm tra xem một application server có tương
thích với chuẩn J2EE hay không. Thiếu cái này thì mỗi nhà cung cấp có thể hiểu và từ đó
phát triển chuẩn J2EE theo những hướng khác nhau mà như thế thì làm giảm đi thế mạnh
của J2EE platform là “write once, run anywhere”.
Bài tập lớn Client – Server
Trang 11
Hệ thống Chấm công doanh nghiệp C2H4 Group
• Application Programming Model (APM) Blueprint – một mô hình ứng dụng tham khảo,
được cung cấp để minh hoạ cách phát triển ứng dụng dùng J2EE
4.2. Phát triển chương trình dùng J2EE
J2EE Framework cho phép phát triển những ứng dụng distributed bằng cách cung cấp 1 tập
các dịch vụ cơ bản như quản lý transaction, kiểm tra security, quản lý trạng thái, quản lý tài
nguyên. Các application serve đều cung cấp những dịch vụ cơ bản này của J2EE
Framework.
4.3. J2EE API
Những công nghệ được sự dùng trong J2EE bao gồm:
• Java 2 Standard Edition (J2SE) - trước kia còn gọi là JDK
• Java Database Connectivity (JDBC) - Một API chuẩn dùng để kết nối Java Platform với
cơ sở dữ liệu.
• RMI-JRMP – Remote Method Invocation (RMI) , một chuẩn dùng để gọi hàm từ xa dựa
trên Java Remote Message Protocol (JRMP)
• Java Interface Definition Language (Java IDL) - một dịch vụ kết hợp Common Object
Request Broker Architecture (Corba) vào trong Java Platform để cung cấp tính
interoperability thông qua chuẩn IDL .
• Remote Method Invocation – Internet Inter- ORB Protocol (RMI-IIOP) - Một giao thức
cho phép lập trình viên RMI kết hợp những lợi ích của RMI API và giao thức CORBA
IIOP để giao tiếp với CORBA-compliant client được phát triển bởi bất cứ ngôn ngữ nào
tuân theo CORBA.

container đòi hỏi những API sau: J2SE, JMS, JNDI, RIM-IIOP và JDBC. Container này
được cung cấp bởi nhà cung cấp application server
• Applet – Applet component là java applet chạy bên trong Applet container, chính là web
browser có hỗ trợ công nghệ Java. Applet phải hỗ trợ J2SE API.
• Servlet và JSP – đây là Web-based component chạy ở bên trong Web container, được hỗ
trợ bởi Web Server. Web container là một môi trường run-time cho servlet và jsp. Web
Container phải hỗ trợ những API sau: J2SE, JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP và
JDBC. Serlet và JSP cung cấp một cơ chế cho việc chuẩn bị, xử lý, định dạng nội dung
động
• Enterprise JavaBean (EJB) – EJB component là business component chạy bên trong EJB
container. EJB component là phần nhân, cốt lõi của ứng dụng J2EE. EJB container cung
cấp các dịch vự quản lý transaction, bảo mật, quản lý trạng thái, quay vòng tài nguyên
(resource pooling). EJB container phải hỗ trợ những API sau: J2SE, JMS, JNDI, JTA,
JavaMail, JAF, RIM-IIOP và JDBC.
4.5. Sự dụng EJB
EJB chứa những business logic của ứng dụng, cho nên có thể nói rằng EJB chính là phần
lõi của phần lớn các ứng dụng distributed cho enterprise. Một enterprise bean có những đặc
điểm sau:
• Chứa các business logic để thao tác với dữ liệu.
• Được tạo ra và được quản lý bởi một container.
• Xử lý các truy cập của client
• Chứa metadata, như là thuộc tính của transaction và security, riêng biệt với các bean.
• Cung cấp dịch vụ quản lý transation, quản lý trạng thái, quay vòng tài nguyên và bảo mật.
Nếu bạn thiết kế 1 ứng dụng không cần có hỗ trợ transaction hoặc bảo mật, lúc đó nên trở
lại câu hỏi có nên dùng đến EJB hay không.
Mỗi EJB bắt buộc phải có những interface và class sau:
Bài tập lớn Client – Server
Trang 13
Hệ thống Chấm công doanh nghiệp C2H4 Group
• Home Interface - home interface extend javax.ejb.EJBHome. Nó đóng vai trò như một

bean là session và entity). Mục đích của MesssageDrivenBean là phục vụ cho nhu cầu về
các asynchronous service của các component. Bởi vì session và entity bean chỉ phục vụ các
dịch vụ loại synchronous. Do đó cách sử dụng MessageDrivenBean có phần giống với
Bài tập lớn Client – Server
Trang 14
Hệ thống Chấm công doanh nghiệp C2H4 Group
session stateless bean, chỉ khác ở cách gọi bean, với MDB thì client phải gửi message đến
MDB đó để thực hiện các hàm trong MDB.
4.5.4 Sự dụng Container-Managed Persistence
Có 2 cách để 1 entity bean persist object: container-managed persistence (CMP) và bean-
managed persistence (BMP). Trong CMP, container điều khiển việc cài đặt cần thiết cho
các tác vụ chèn, đọc, ghi, cập nhật object trong một data source. Còn trong BMP, thì LTV
phải tự cài đặt các code cho các tác vụ trên. CMP lý tưởng cho việc phát triển ứng dụng vì
nó không đòi hỏi LTV phải thay đổi code mỗi khi data model thay đổi. Tuy nhiên để có
được tính linh hoạt, CMP không cho phép sinh ra những câu lệnh SQL hiệu quả.
Hiện nay các công cụ phục vụ việc mapping object với cơ sở dữ liệu vẫn còn đang trogn
quá trình phát triển và chưa đủ chin muồi. Trong khi chờ đợi CMP phát triển hoàn thiện thì
BMP cộng với pattern DAO có lẽ là 1 giải pháp khá tốt.
4.5.5 Sự dụng Data Access Object
Khi bạn quyết định dùng BMP, có nghĩa là bạn sẽ phải tự coding các câu lệnh SQL trong
entity bean của bạn. Để giảm sự nối kết của entity bean với các câu lệnh SQL cần thiết cho
các việc đọc, ghi, xoá , cập nhật object, bạn có thể tạo ra một DAO pattern đóng gói các
câu lệnh SQL đó. Bằng cách này bạn đã làm giảm sự phụ thuộc của bạn vào code và sư
thay đổi của data model. Nói cách khác nếu có sự thay đổi thì BMP entity bean của bạn
vẫn có thể giữ nguyên và bạn chỉ phải sửa lại phần DAO thôi.
DAO chứa code phục vụ việc đọc , ghi, cập nhật xoá object trên 1 data source. Nó cho
phép 1 entity bean có thể định nghĩa như 1 BMP, nhưng sau này khi các công cụ hỗ trợ cho
CMP trở nên hoàn thiện hơn thi entity bean này có thể chuyển sang thành CMP, và DAO sẽ
được thay thế bởi sự hỗ trợ CMP của container.
Nếu bạn muốn tìm hiểu thêm về DAO pattern , bạn có thể xem ở địa chỉ sau:

nó là các trang jsp, servlet, các server pages hoặc các tài nguyên khác trên server.
Bài tập lớn Client – Server
Trang 17
Hệ thống Chấm công doanh nghiệp C2H4 Group
d. Ưu điểm:
Filter cho phép người lập trình có thể cấy các đoạn code để xử lý các luồng yêu cầu và
phản hồi hoặc loại bỏ chúng một cách một cách dễ dàng. Chính khả năng này đã giúp filter
hoàn toàn trong suốt với các tầng xử lý phía sau.
e. Các ứng dụng thực tế của Filter:
- Xác thực người dùng, ngăn chặn truy cập trái phép
- Thống kê người sử dụng khi truy cập hệ thống
- Nén dữ liệu trả về cho client
- Xác định vùng địa lý của người truy cập, thông qua đó có thể trả về được
nội dung phù hợp nhất.
- Chuyển đổi nội dung: cho phép chuyển đổi nội dung trả về ứng với từng
client. Ví dụ: sử dụng XSLT để chuyển đổi XML thành HTML đối với
người dùng sử dụng browser trên PC, WML đối với người dùng sử dụng
browser trên di động.
f. Ứng dụng trong bài tập lớn:
Trong bài tập lớn, Filter được dùng để thực hiện chức năng phân quyền người
dùng.
g. Cài đặt Filter:
Bản chất của filter là một Class đặc biệt được thừa kế từ interface javax.servlet.Filter. Do
đó cần phải implement các phương thức:
- public void init(FilterConfig config)
- public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
Trong đó phương thức:
- init: dùng để đọc các cấu hình của filter được quy định bởi người lập trình trong file
web.xml.
- doFilter: dùng để cài đặt nội dung nội dung của bộ lọc. Trong trường hợp xác thực

public class UserFilter implements Filter {
//private FilterConfig filterConfig;
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException{
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;
// Authentication
HttpSession session = request.getSession();
if(session==null){
response.sendRedirect("/auth/expired.jsf");
return;
}
String contextPath = request.getContextPath();
if(contextPath.length() > 0 && contextPath.endsWith("/"))
contextPath = contextPath.substring(0,
contextPath.length()-1);
Bài tập lớn Client – Server
Trang 19
Hệ thống Chấm công doanh nghiệp C2H4 Group
String relativeURI =
request.getRequestURI().substring(contextPath.endsWith("/")?
contextPath.length()-1:contextPath.length());
UserProfileBean user =
(UserProfileBean)session.getAttribute("userprofilebean");
if(user==null||!user.getLogined()&&!
UserProfileBean.defaultPage.equals(relativeURI)){
response.sendRedirect("/auth/login.jsf?returnURL=" ());
return;

<filter-name>UserFilter</filter-name>
<url-pattern>/report/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/salary/*</url-pattern>
Bài tập lớn Client – Server
Trang 20
Hệ thống Chấm công doanh nghiệp C2H4 Group
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/system/*</url-pattern>
</filter-mapping>
Bài tập lớn Client – Server
Trang 21
Hệ thống Chấm công doanh nghiệp C2H4 Group
5.2. Java Server Faces (JSF)
5.2.1. Sự phát triển của các web application framework
Trải qua 3 giai đoạn chính:
- Không theo mô hình MVC (model, view, controller)
- MVC model 1 (Page-centric)
- MVC model 2 (Servlet-centric)
a/ Không theo mô hình MVC
Thời kì mới ra đời của các ứng dụng web, lúc đó chỉ tồn tại các ứng dụng
web tương tác trực tiếp với người sử dụng bằng các trang web tĩnh, không có sự xử lý và
ngôn ngữ phía máy chủ. Điều này đã gây cản trở rất lớn cho người lập trình cũng như
người sử dụng trong việc tiếp cận với các ứng dụng trên nền web.
b/ MVC model 1
Trong MVC model 1, các trang JSP đóng vai trò Hiển thị (View) và Điều khiển

giản để lấy dữ liệu có sẵn, không có logic phức tạp, vì thế hoàn toàn có thể được tạo ra
bằng những người thiết kế Web.
Các yêu cầu của người dùng được gửi từ trình duyệt Web tới servlet. Servlet sẽ khởi
tạo Java Bean (nếu cần thiết), ra lệnh thu thập, cập nhật thông tin. Khi Java Bean hoàn
Bài tập lớn Client – Server
Trang 23
Hệ thống Chấm công doanh nghiệp C2H4 Group
thành công việc, servlet sẽ chọn trang JSP thích hợp để hiện thông tin trong Java Bean cho
người dùng.
5.2.2. JavaServer Faces là gì?
Công nghệ Java Server Faces là một UI framework cho việc xây dựng các ứng dụng web
chạy trên Java server và thay thế UI phía sau cho client. Các ứng dụng được viết bằng JSF
tuân theo mô hình MVC model 2, hỗ trợ tốt cho người phát triển web. Các thành phần
chính của công nghệ JSF bao gồm:
• Một API và các bổ sung tham khảo cho: thay thế các thành phần UI và quản lý trạng
thái của chúng; xử lý các sự kiện, kiểm tra phía server và chuyển đổi dữ liệu; định
nghĩa navigation của trang; hỗ trợ quốc tế hóa và accessibility; và cung cấp khả
năng mở rộng cho tất các đặc điểm này.
• Một thư viện thẻ tùy biến JavaServer Pages (JSP) cho việc định nghĩa các thành
phần UI trong một trang JSP
Mô hình lập trình được định nghĩa tốt này và thư viện thẻ thành phần UI tạo kỹ thuật dễ
dàng tải việc xây dựng và sửa chữa các ứng dụng web với các UI ở phía server. Với sự tổ
chức nhỏ đó, bạn có thể:
• Điều khiển việc tạo ra các sự kiện phía client từ việc viế mã ứng dụng phía server
• Ánh xạ các thành phần UI tren một trang cho dữ liệu phía server
• Khởi dựng một UI với các thành phần có thể tái sử dụng và có khả năng mở rộng
• Lưu trữ và phục hồi trạng thái UI ngay sau các request
5.2.3. Phần mềm yêu cầu
Để xây dựng, deploy và chạy các ứng dụng JSF bạn cần một môi trường deploy chẳng
hạn Java Web Software Development Pack và Java 2 Platform, Standard Edition (J2SE)

• Các event listener
• Các trang, chẳng hạn như JSP
• Các lớp helper phía server, chẳng hạn như các bean truy cập dữ liệu
Thêm vào những thành phần ở trên, một ứng dụng JSF cũng có:
• Một thư viện thẻ tùy biến thực thi các thành phần UI trên một trang
• Một thư viện thẻ tùy biến thay thế các xử lý sự kiện, kiểm tra và những hành động
khác
• Những thành phần UI thay thế trạng thái các đối tượng trên server
• Các kiểm tra, xử lý sự kiện, và xử lý navigation
Mỗi ứng dụng JSF phải bao gồm một thư viên thẻ tùy biến nhằm định nghĩa các thẻ thay
thế các thành phần UI và một thư viện thẻ tùy biến nhằm thay thế các hành động cốt lõi
khác, chẳng hạn như các kiểm tra và các xử lý sự kiện. Cả hai loại thư viện thẻ này được
cung cấp bởi việc bổ sung JSF.
Thư viện thẻ tùy biến xóa bỏ những gì cần thiết cho các thành phần UI trong HTML hoặc
ngôn ngữ đánh dấu khác, kết quả là những thành phần tái sử dụng hoàn toàn. Và thư viện
core tạo nên sự dễ dàng để đăng ký các sự kiện, kiểm tra và những hành động khác. Thư
viện thẻ tùy biến có thể là thư viện thẻ HTML cơ bản chứa cùng với công nghệ JSF tham
khảo bổ sung, hoặc bạn có thể định nghĩa thư viện thẻ của riêng mình nhằm tạo ra các
thành phần tùy biến hoặc xuất ra kiểu khác HTML.
Cuối cùng, công nghệ JSF cho phép bạn chuyển đổi và kiểm tra dữ liệu trên những thành
phần riêng biệt và thông báo bất kỳ lỗi gì trước khi dữ liệu phía server được cập nhật.
5.2.5.Vai trò của Framework
Bài tập lớn Client – Server
Trang 25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status