Việc kết nối, đồng bộ hóa dữ liệu giữa nhân viên với người quản lý, tôi chọngiải pháp sử dụng SQL Azure trong bộ dịch vụ điện toán đám mây Windows Azure... Đơn giản nhất,SOA là một cách
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN MÔN HỌC
ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY
ỨNG DỤNG QUẢN LÝ NHÂN VIÊN
MARKETING DI ĐỘNG
GV hướng dẫn: PGS TS Nguyễn Phi Khứ
HV thực hiện: Phan Thị Trinh MSHV: CH1301067
Thành phố Hồ Chí Minh – 2014
Trang 2MỤC LỤC
DANH MỤC SƠ ĐỒ 5
MỞ ĐẦU 6
CHƯƠNG 1 : GIỚI THIỆU CÔNG NGHỆ 9
1 Windows Phone 9
1.1 Giới thiệu Windows Phone 9
1.1.1 Tổng quan 9
1.1.2 Các công cụ lập trình 10
1.2 Hệ thống định vị tọa độ và bản đồ 10
1.2.1 Hệ thống định vị tọa độ 10
1.2.2 Các sử dụng trong ứng dụng 10
1.2.3 Bản đồ Bingmap trong Windows Phone 11
2 Công nghệ Silverlight 11
2.1 Giới thiệu tổng quan về Silverlight 11
2.2 Các đặc tính của Silverlight: 12
3 Giới thiệu Bing map trên nền silverlight 13
3.1 Giới thiệu Bing Map và Credentials 13
3.2 Pushpin 13
4 Windows Communication Foundation (WCF) 14
4.1 Tổng quan về WCF 14
4.2 Kiến trúc và tính năng của WCF 17
4.2.1 Kiến trúc trong WCF 17
4.2.2 Tính năng chính của WCF 17
4.2.3 Kết cấu cơ sở của WCF (The Basic Composition of a WCF Application) 18
5 Điện toán đám mây Windows Azure 19
5.1 Tổng quan về điện toán đám mây và Windows Azure 19
Trang 35.2 Windows Azure 20
5.3 Giới thiệu SQL Azure 21
5.4 Windows Azure AppFabric and Services 23
6 Kết hợp Skype tương tác với người dùng 24
6.1 Tổng quan về Skype 24
6.2 Liên kết với Skype URI và Skype API 25
6.3 Gọi thoại ngầm (Audio call-implicit) 25
6.4 Gọi thoại công khai (Audio call—explicit) 26
6.5 Gọi Video 26
CHƯƠNG 2 PHÂN TÍCH, THIẾT KẾ ỨNG DỤNG QUẢN LÝ NHÂN VIÊN MARKETING DI ĐỘNG 27
1 Khảo sát hiện trạng 27
2 Giới hạn và phạm vi 28
3 Giải pháp 28
2.2.1 Mục tiêu 28
2.2.2 Giải pháp thực hiện 29
2.2.2.1 Sử dụng Silverlight kết hợp bản đồ Bing map 29
2.2.2.2 Sử dụng công nghệ Windows Phone trên nền di động 30
2.2.2.3 Sử dụng công nghệ WCF và điện toán đám mây Windows Azure 31
3 Phân tích thiết kế hệ thống 32
3.1 Các module chức năng 32
3.1.1 Phân hệ người quản lý 32
3.1.2 Phân hệ nhân viên 34
3.2 Mô hình thực thể kết hợp 35
3.2.1 Sơ đồ CDM 35
3.2.2 Danh sách các thực thể 35
3.3 Mô hình vật lý 39
Trang 43.3.1 Sơ đồ PDM 39
3.3.2 Danh sách các bảng 40
CHƯƠNG 3 XÂY DỰNG ỨNG DỤNG QUẢN LÝ NHÂN VIÊN MARKETING DI ĐỘNG 44
1 Website dành cho người quản lý 44
1.1 Lưu đồ sử dụng 44
1.2 Các màn hình chính 45
1.2.1 Màn hình theo dõi tổng quát toàn bộ nhân viên 45
1.2.2 Màn hình xem thông tin hiện tại một nhân viên 46
1.2.3 Màn hình quản lý danh sách công việc 48
1.2.4 Màn hình quản lý danh sách nhân viên 48
1.2.5 Màn hình theo dõi lịch sử đi lại của nhân viên 49
1.2.6 Màn hình báo cáo thời gian làm việc của nhân viên trong tháng 49
2 Ứng dụng dành cho nhân viên 50
2.1 Lưu đồ sử dụng 50
2.2 Các màn hình chính 50
2.2.1 Màn hình đăng ký và kích hoạt nhân viên 50
2.2.2 Màn hình bắt đầu làm việc 51
2.2.3 Màn hình thay đổi thông tin cá nhân 51
2.2.4 Màn hình xem danh sách tin nhắn 52
2.2.5 Màn hình xem tất cả các công việc đang làm 53
2.2.6 Màn hình báo cáo công việc 53
CHƯƠNG 4 TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN 55
1 Tổng kết 55
2 Hướng phát triển 56
TÀI LIỆU THAM KHẢO 57
Trang 5Sơ đồ 1: Sơ đồ Use Case phân hệ Website 33
Sơ đồ 2: USE CASE PHÂN HỆ NHÂN VIÊN 34
Sơ đồ 3: Sơ đồ CDM ứng dụng 35
Sơ đồ 4: Sơ đồ vật lý 39
Sơ đồ 5: Lưu đồ sử dụng phân hệ website 44
Sơ đồ 6: Lưu đồ sử dụng phân hệ Windows Phone 50
Trang 6MỞ ĐẦU
Cùng với sự phát triển của nền kinh tế toàn cầu, các công ty, doanh nghiệpđang dần tăng lên về số lượng cũng như quy mô làm việc Có rất nhiều nhân tố tạonên sự thành công trong hoạt động của một công ty và nhân tố quan trọng nhấtkhông thể không kể đến trong mỗi công ty đó chính là nhân tố con người
Nếu bạn là một nhà quản lý hay một người giữ chức vụ giám sát, chắc hẳnviệc quản lý nhân viên của mình chính là điều mà bạn quan tâm hàng đầu Việcquản lý nhân viên một cách hiệu quả cho phép bạn tận dụng những thế mạnh củanhân viên, hoàn thành mục tiêu đã được đặt ra trong công việc Tuy nhiên, đối vớimột số công ty như là các công ty quảng cáo, marketing do đặc thù công việc, độingũ nhân viên marketing của họ phải di chuyển, việc quản lý nhân viên marketing
sẽ là vấn đề không hề dễ dàng Giả sử bên dưới bạn có hai mươi nhân viênmarketing, mỗi người lại có những nhiệm vụ riêng như đi gặp khách hàng, tiếp thị,bán hàng và bạn không thể di chuyển liên tục để giám sát từng người xem họ cóđang thực hiện đúng công việc được Vậy làm cách nào để bạn không cần dichuyển nhưng vẫn nắm được vị trí, hoạt động của từng nhân viên? Ứng dụng quản
lý nhân viên marketing di động hướng tới giải quyết vấn đề này
Trên thế giới, việc quản lý nhân viên di dộng đã được nhiều công ty pháttriển và triển khai ở nhiều doanh nghiệp Người quản lý có thể giám sát vị trí nhânviên của mình trong thời gian làm việc, thống kê báo cáo về công việc của nhânviên, từ đó đưa ra đánh giá cụ thể ví dụ như phần mềm “Employee Management”
do công ty Romex phát triển, phần mềm “TeleNav Track”…
Ở Việt Nam, việc quản lý nhân viên di động hiện nay chưa được đầu tư chútrọng và phát triển nhiều nhưng đây vẫn là vấn đề bức thiết của các công ty, doanhnghiệp cần được quan tâm Hiện tại nền công nghệ trong nước đang dần dần từngbước tiến gần đến nền công nghệ thế giới, các hệ thống mạng như mạng không dây,3G đang được phủ sóng rộng rãi, tạo điều kiện thuận lợi cho việc phát triển ứngdụng quản lý nhân viên di động
Trang 7Với nhu cầu quản lý nhân viên marketing di động yêu cầu khả năng tươngtác cao, hoạt động ổn định, tôi quyết định xây dựng một hệ thống gồm 2 phân hệ sửdụng
Phân hệ đầu tiên dành cho người quản lý, xây dựng một website cho phép họbiết được nhân viên marketing của mình đang ở đâu và theo dõi trạng thái làm việccủa nhân viên marketing Ngoài ra, ứng dụng cũng cung cấp những phương tiện đểngười quản lí có thể giao tiếp trực tiếp với nhân viên marketing của mình như nhắntin, gọi thoại, gọi video, phân việc Với một hệ thống thông tin trực quan, vàtương tác, yêu cầu trang web phải có một bản đồ để hiển thị đầy đủ và chi tiếtthông tin, và việc ứng dụng một bản đồ trực tuyến miễn phí hỗ trợ mạnh như Bingmap là một giải pháp hoàn chỉnh cho yêu cầu trên Với việc phát triển trên nền tảng.Net quen thuộc cùng khá nhiều tài liệu hướng dẫn liên quan, Bing map hết sức dễdàng sử dụng và có thể đáp ứng được các yêu cầu
Nền tảng website tôi chọn phát triển là Microsoft Silverlight MicrosoftSilverlight là một nền tảng ứng dụng (application framework) để viết và chạy cácứng dụng Internet phong phú với sự nhấn mạnh về đa phương tiện, hình động, và
đồ họa Microsoft Silverlight là một plug-in miễn phí, chạy trên nền tảng NET vàtương thích với nhiều trình duyệt, thiết bị và hệ điều hành, mang lại một cấp độ mới
về tương tác bất cứ nơi nào hoạt động trang web Ngoài ra, việc nhúng và tương tácvới bản đồ Bing map trong Microsoft Silverlight khá mạnh và dễ dàng
Phân hệ thứ hai của hệ thống là dành cho nhân viên marketing hoạt động diđộng Ứng dụng này phải đạt được yêu cầu là đáp ứng nhu cầu di chuyển nhiều củanhân viên marketing, cập nhật thông tin về trạng thái làm việc tự động lên chongười quản lý Tôi chọn sử dụng nền tảng Windows Phone để phát triển phân hệnày Windows Phone là hệ điều hành của Microsoft dành cho điện thoại thôngminh (smart phone) mới được ra mắt vào tháng 11 năm 2010 Với việc chọn sửdụng nền tảng Windows Phone, việc phát triển ứng dụng trở nên dễ dàng và dễ xử
lý hơn với nền tảng quen thuộc Net và việc tích hợp với các phân hệ khác cũng trởnên dễ dàng hơn bao giờ hết
Việc kết nối, đồng bộ hóa dữ liệu giữa nhân viên với người quản lý, tôi chọngiải pháp sử dụng SQL Azure trong bộ dịch vụ điện toán đám mây Windows Azure
Trang 8của Microsoft để lưu trữ dữ liệu Tôi cũng chọn giải pháp sử dụng nền tảng kết nốihướng dịch vụ (Windows Communication Foundation - WCF) của Microsoft đểphát triển các dịch vụ phục vụ cho nhân viên và người quản lý WCF là một công
cụ thường được sử dụng để thực hiện và triển khai một kiến trúc hướng dịch vụ(SOA) Nó được thiết kế sử dụng nguyên tắc kiến trúc hướng dịch vụ để hỗ trợ tínhtoán phân tán cung cấp dịch vụ người sử dụng từ xa Mặt khác, WCF cũng sử dụngnền tảng NET và được tích hợp khá kỹ trong cả Silverlight và Windows Phone nênviệc sử dụng khá dễ dàng và thuận tiện
Với những giải pháp trên, hệ thống “Quản lý nhân viên marketing di động”
hi vọng có thể đáp ứng được yêu cầu của người dùng, tính tương tác và tùy biếncao, giao diện thân thiện và thông tin được hiển thị một cách trực quan và khoa họcnhất Sự thành công của đề tài nghiên cứu này tạo tiền đề để tôi triển khai vào thực
tế, góp phần tạo một nét mới trong qui trình quản lý nhân viên marketing di độngcòn khá mới mẻ ở nước ta
Trang 9CHƯƠNG 1 : GIỚI THIỆU CÔNG NGHỆ
- Windows Phone 7 sử dụng giao diện người dùng Metro Giao diện Metrođược lấy ý tưởng dựa trên các biển báo, tín hiệu, hình tượng, phông chữ,
và bố cục của chúng trong ngành công nghiệp giao thông vận tải Và đâyđược coi là thiết kế mang tính cách mạng cho giao diện của điện thoại diđộng Nguyên lý thiết kế giao diện Metro đơn giản, hiện đại và nhanh, chútrọng về nội dung, thuần túy và sống động, thế giới chuyển động linh hoạt
Hình 1: Giao diện Metro của Microsoft
- Sử dụng phần mềm Zune để đồng bộ các ứng dụng đã cài đặt, hình ảnh ,
âm nhạc, sao lưu và hệ thống điều hành flash
Trang 10- Hiện tại, phiên bản mới nhất của hệ điều hành là Windows Phone 8 vàbảng nâng cấp 8.1
1.1.2 Các công cụ lập trình
- Khi lập trình trên Windows Phone bạn cần cài đặt bộ công cụ VisualStudio có tích hợp Windows Phone SDK, hệ giả lập điện thoại WindowsPhone Emulator, công cụ thiết kế Expression Blend
- Bộ công cụ Expression Blend hỗ trợ mạnh mẽ cho thiết kế giao diện trongWindows Phone, Siverlight, WPF có thể sử dụng song song với VisualStudio để làm việc với cùng một Project
- Windows Phone Emulator hỗ trợ việc chạy và kiểm tra ứng dụng, sử dụngphần cứng sẵn có của máy tính Có thể kết nối Internet nhờ mạng sẵn cótrong máy tính Không thể mô phỏng hoàn toàn như thiết bị thực, các tínhnăng như vị trí, độ rung (acceleromete) được giả lập hoàn toàn
1.2 Hệ thống định vị tọa độ và bản đồ
1.2.1 Hệ thống định vị tọa độ
Windows Phone cung cấp một dịch vụ Location Service chứa thông tin về
vị trí của thiết bị Độ chính xác của vị trí phụ thuộc vào chế độ định vị (GPS, Sóngđiện thoại, Sóng WIFI)
1.2.2 Các sử dụng trong ứng dụng
Lớp GeoCoordinateWatcher cung cấp khả năng truy cập vào hệ thống định vịtrên Windows Phone (System.Device.dll)
PositionChanged Sự kiện khi vị trí thay đổi
StatusChanged Sự kiện khi trạng thái thay đổi
Trang 11 Khi gọi Position của GeoCoordinateWatcher sẽ trả về thông tin vị trí hiện tại gồm Location (vị trí) và Timestamp (Thời gian )
Thông tin location trả về gồm các thuộc tính:
1.2.3 Bản đồ Bingmap trong Windows Phone
Đây là một đối tượng dùng để hiển thị bản đồ trực quan lên
(application framework) để viết và chạy các ứng dụng
Internet phong phú với sự nhấn mạnh về đa phương
tiện, hình động, và đồ họa, với các tính năng và mục
đích tương tự như của Adobe Flash (một chương trình
sáng tạo đa phương tiện) Môi trường thời gian chạy
(hệ thống thực thi) cho Silverlight có sẵn như là một
một bộ phần mềm hỗ trợ (plug-in) cho hầu hết các trình duyệt web Trong khinhững phiên bản đầu của Silverlight tập trung vào dòng phương tiện truyền thông(streaming media), các phiên bản hiện tại hỗ trợ đa phương tiện, đồ họa và hoạthình (animation), và cung cấp cho các nhà phát triển hỗ trợ cho ngôn ngữ giao diệndòng lệnh (CLI - Command Line Interface) và công cụ phát triển
Hình 2: Pushpin trong Windows Phone
Hình 3: Biểu tượng Microsoft Siverlight
Trang 12Trong suốt khoảng năm năm Microsoft đã phát hành năm phiên bản: Phiên bảnđầu tiên được phát hành vào năm 2007, phiên bản mới nhất (Microsoft Silverlight5) được phát hành vào ngày 08 tháng năm 2012 Nó tương thích với nhiều trìnhduyệt web được sử dụng trên Microsoft Windows và hệ điều hành Mac OS X, cũngnhư các thiết bị di động sử dụng nền tảng Windows Mobile và Symbian (Series60).
2.2 Các đặc tính của Silverlight:
- Sự kết hợp giữa WPF và XAML: Silverlight là một gói nhỏ của công nghệWindows Presentation Foundation (WPF - là công nghệ kế tiếp Windows Formdùng để xây dựng các ứng dụng dành cho máy trạm chạy hệ điều hành Windows)
Nó được mở rộng nhiều hơn các thành phần (Element) trong trình duyệt để tạo giaodiện người dùng XAML (Extensible Application Markup Language) cung cấp các
cú pháp đánh đấu đặc trưng trong việc tạo các thành phần (Element)
- Mở rộng cho ngôn ngữ kịch bản: Silverlight cung cấp việc mở rộng cácngôn ngữ kịch bản (JavaScript) ở một số các trình duyệt phổ biến để thực hiện việctrình bày giao diện và thao tác người dùng một cách phong phú hơn
- Sự tích hợp với ứng dụng đã có: Silverlight tích hợp liền mạch với ngôn ngữJavaScript và mã Ajax của ASP.Net để bổ sung các chức năng bạn đã xây dựngđược Bạn có thể tạo các tài nguyên trên nền máy chủ có trong ASP.Net và sử dụngcác khả năng của Ajax trong ASP.Net để tương tác với các tài nguyên trên máy chủ
đó mà không làm gián đoạn người dùng
- Sử dụng mô hình ngôn ngữ lập trình trên nền tảng Net Framework và cáccông cụ kết hợp
- Hỗ trợ mạng: bao gồm các hỗ trợ HTTP qua TCP Bạn có thể kết nối tới cácdịch vụ WCF, SOAP hoặc ASP.Net Ajax và nhận về định dạng cấu trúc HTML,JSON hay dữ liệu RSS
- Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ)
Trang 133 Giới thiệu Bing map trên nền silverlight
3.1 Giới thiệu Bing Map và Credentials
Hình 2: Bing map
- Bing maps là một bản đồ web dịch vụ được cung cấp như một phần của
bộ các công cụ tìm kiếm Bing của Microsoft
- Bing Maps Silverlight Control là sự kết hợp sức mạnh của Silverlight và Bing Maps cung cấp một cách sinh động sự trải nghiệm về bản đồ Với Bing Maps Silverlight Control người lập trình có thể kết hợp vào ứng dụng để cập nhật thông tin vị trí cũng như tìm kiếm địa điểm
- Thuộc thư viện Microsoft.Maps.MapControl
- Chỉ cần thẻ <Map>…</Map> để khai báo bản đồ Bing Maps cho ứng dụng Silverlight thông qua tập tin xaml
- Để truy cập và sử dụng các chức năng của Bing Maps Silverlight Controlcần một
Bing Maps Key hay còn gọi là thư ủy nhiệm (Credentials) Cần mộttài khoản Bing Maps để có thể đăng ký lấy một Bing Maps Key hoàntoàn miễn phí
Sau khi đã có được Bing Maps Key chỉ cần gán cho thuộc tínhCredentialsProvider trong tập tin xaml
Trang 143.2 Pushpin
- Dùng để đánh dấu một vị trí cụ thể trên bản đồ
Hình 3: Pushpin trong bingmap
- Thuộc thư viện Microsoft.Maps.MapControl
- Có thể khai báo bằng cách sử dụng thẻ <Pushpin>…< /Pushpin> hoặc sửdụng đối tượng Pushpin
- Tương tác với Pushpin đơn giản với các sự kiện được cung cấp sẵn như: MouseLeftButtonDown, MouseMove, KeyDown…
4 Windows Communication Foundation (WCF)
4.1 Tổng quan về WCF
Windows Communication Foundation (viết tắt là WCF) là một công nghệ đượctích hợp trong NET, nhằm cung cấp một mô hình lập trình thống nhất hỗ trợ xâydựng một cách nhanh chóng và dễ dàng các ứng dụng theo kiến trúc hướng dịch vụ(service-oriented viết tắt là SOA) mà giữa chúng truyền thông với nhau thông quaservices WCF được Microsoft ra mắt tại Hội nghị các nhà phát triển sản phẩmMicrosoft (Microsoft Product Developers Conference) ở Los Angeles, Californiavào năm 2003
WCF được đề xuất nhằm thực hiện 3 mục tiêu là:
- Hợp nhất các nền công nghệ hiện tại
- Tương tác đa nền tảng
- Phát triển hướng dịch vụ (Service-Oriented Development - SOA)
Việc giao tiếp giữa máy khách và dịch vụ WCF được thực hiện thông qua cácđiểm cuối (Endpoint) Các điểm cuối là các cổng giao tiếp giữa máy khách và dịch
vụ WCF Các điểm cuối hoạt động trên nguyên lý ABC Trong đó ABC là viết tắtcủa “address, binding, contract”
Trang 15- Address: quy định địa chỉ của dịch vụ
- Binding: mô tả cách thức các bản tin (messages) được gửi đi
- Contract: mô tả nội dụng chứa trong bản tin gửi đi
Một lợi ích khác của WCF là nó hoàn toàn dựa trên một nguồn gốc xây dựngnổi tiếng là hướng dịch vụ (SOA) SOA là một mô hình thông dụng trong ngànhphần mềm và mô hình này có thể được hiện thực bằng nhiều cách Đơn giản nhất,SOA là một cách để thiết kế một hệ thống phân tán mà trong đó có nhiều dịch vụ
có thể tự hoạt động độc lập, giao tiếp với nhau bằng cách truyền đi các thông điệpdựa trên các chức năng đã được xác định trước (“well – defined interfaces”)
Khi WCF được thiết kế ra, WCF team đã dựa trên 4 tiêu chí chính của nguyêntắc hướng dịch vụ (SOA design principles) Trong khi các tiêu chí này được tuânthủ tự động trong lúc xây dựng các WCF application, việc hiểu rõ được 4 nguyêntắc cốt yếu của SOA có thể giúp cho WCF tiến xa hơn nữa Phần dưới đây sẽ giớithiệu 1 chút về các tiêu chí sau đây :
- Tiêu chí 1: Ranh giới rõ ràng (Boundaries Are Explicit): Tiêu chí này lặp lại
một sự thật rằng những chức năng của một WCF service được xác định thôngqua các “well – defined interfaces” Cách duy nhất để một application khácgiao tiếp với một WCF service là thông qua các interfaces, và chương trình gọi
là Client này sẽ không hề biết các Service đó được xử lý như thế nào
Như vậy, trong SOA, mọi thứ đều được chính thức hoá Tại máy con sử dụngdịch vụ, nó không cần biết dịch vụ được triển khai hoạt động như thế nào để hoànthành dịch vụ Nó tương tự như cách truyền thông kiểu cũ như DCOM Bất kỳ sựthay đổi nào ở máy chủ cũng có thể dẫn tới sự thay đổi tại máy con Như vậy, máychủ và máy con cùng làm việc trong một phạm vi mà bất kỳ sự thay đổi nào cũngdẫn đến sự thay đổi trên mọi nút của mạng Trong SOA, có một luật là nếu nângcấp, không cần phải thay đổi bất cứ thứ gì ở máy con
Mỗi máy con phục vụ một mục đích nhất định trong một hệ thống sử dụng dịch
vụ của WCF
-Tiêu chí 2: Dịch vụ hoạt động độc lập (Service Are Autonomous): Khi nói rằng
các service là những thực thể tự trị, chúng ta đang nói đến một sự thật rằng mộtWCF service là một chương trình có thể hoạt động độc lập với các vấn đề liên
Trang 16quan đến phiên bản, triển khai và cài đặt Đế giải thích rõ hơn điều này, chúng tahãy quay lại khía cạnh tiêu biểu của interface-based programming Khi mộtinterface được tạo ra, nó không nên bị thay đổi Khi chúng ta muốn mở rộng một
số chức năng nào đó trong WCF service của chúng ta, hãy tạo ra một interfacekhác cho các chức năng mới
- Tiêu chí 3: Sử dụng dịch vụ không cần cài đặt (Services Communicate via
Contract, Not Implementation) : Tiêu chí thứ 3 này là một hệ quả của lập trìnhdựa trên giao diện (interface-based programming), trong đó những xử lý chi tiếtcủa một WCF service không hề có một ảnh hưởng lớn đối với các lệnh gọingoại trú Các máy con giao tiếp với nhưng services duy nhất thông qua cácchức năng (interfaces) được service trình bày Hơn nữa, nếu những chức năngcủa service có sử dụng những kiểu tùy biến, thì các kiểu tùy biền này cần đượckhai báo chi tiết trong “data contract” để đảm bảo rằng mọi máy con có cấu trúccủa kiểu dữ liệu đó
- Tiêu chí 4: Dịch vụ tương thích dựa trên chính sách (Service Compatibility Is
Based on Policy) : Bởi vì các CLR interface cung cấp mạnh mẽ các loạicontracts cho tất cả máy con (và rất có thể được sử dụng đế tạo ra W WSDLliên quan dựa trên kiểu binding), rất quan trọng để thấy rằng một mình cácinterfaces/WSDL không đủ ý nghĩa để diễn tả những gì mà một service có thểlàm được Nói như vậy, SOA cho phép chúng ta định nghĩa các “policies” đế từ
đó bổ sung cho các service (chẳng hạn như yêu cầu về bảo mật để có thể sửdụng được service) Khi sử dụng các policies này, chúng ta có thể tách rời giữaphần mô tả service ( trình bày interfaces) ra khỏi những mô tả về cách chúnghoạt động và cách chúng được gọi
Trang 174.2 Kiến trúc và tính năng của WCF
4.2.1 Kiến trúc trong WCF
Hình 6: Kiến trúc nền tảng WCF
Sơ đồ trên là minh họa cho các thành phần chính của WCF
- Giao ước (Contracts)
- Hoạt động của Service (Service Runtime)
- Messaging (Tin nhắn)
- Activation & Hosting
4.2.2 Tính năng chính của WCF
- Giao dịch (transacsion):
WCF hỗ trợ để tạo ra các giao dịch phân tán cho các ứng dụng dịch
vụ của bạn Tính năng giao dịch trong WCF cho phép một số thành phần
để đồng thời tham gia vào một hoạt động dữ liệu Và một hoạt độngthành công khi tất cả các giao dịch của nó đều thành công
- Lưu trữ (host):
Trang 18WCF cho phép dịch vụ lưu trữ trên các môi trường khác nhau như làIIS (Internet Information Server), WAS (Windows Activation Services),Windows Forms, … hoặc tự lưu trữ bởi 1 ứng dụng quản lý.
- Bảo mật:
WCF cung cấp các cơ chế bảo mật giúp xác thực mọi thứ từ các bảntin được vận chuyển giữa máy khách và máy chủ Bảo đảm các bản tinkhông bị lẫn lộn hay thấy lạc trong quá trình vận chuyển, cũng như đảmbảo tính toàn vẹn và bảo mật của bản tin
4.2.3 Kết cấu cơ sở của WCF (The Basic Composition of a WCF Application)
WCF Service assembly: dll này sẽ chứa những classes và interfaces để mô tảcác chức năng mà service của bạn muốn trình bày ra bên ngoài
WCF Service host: chương trình này được dùng để host WCF serviceassembly
WCF Client: Chương trình này sẽ gọi các chức năng của WCF service trên.Như đã nói, WCF service assembly là một NET class library chứa một số cácWCF contracts và code implementation Assembly "Service host" lại là một NETexcutable application Các bạn sẽ thấy rằng WCF service có thể được host trong bất
kì loại application nào (Windows Forms, Windows service, WPF applications, …).Khi bạn muốn build một kiểu host application của mình, bạn phải sử dụng đến classServiceHost cũng như một số file config liên quan Tuy nhiên, nếu bạn đang sửdụng IIS để làm host cho WCF service, bạn không cần phải build một custom hostlàm gì
Assembly cuối cùng là một chương trình nào đó muốn gọi các service WCF và
nó có thể là bất cứ dạng NET application nào Tương tự như chương trình hostWCF service, client application cũng phải có sử dụng những file config để mô tảcách gọi các service trong WCF service host
Hình dưới mô tả mối quan hệ giữa những assemblies trên với nhau
Trang 19Hình 7: Mối quan hệ client với Server trong WCF
5 Điện toán đám mây Windows Azure
5.1 Tổng quan về điện toán đám mây và Windows Azure
Nền tảng Windows Azure là một nhóm các công nghệ đám mây, mỗi công nghệcung cấp một tập các dịch vụ đặc trưng để phát triển ứng dụng nền tảng WindowsAzure có thể được sử dụng bởi ứng dụng chạy trên đám mây, và cả ứng dụng chạytruyền thống
Hình 8: Nền tảng Windows Azure hỗ trợ ứng dụng, dữ liệu và cơ sở hạ tầng trên đám
mây.
Các thành phần của nền tảng Windows Azure :
Trang 20- Windows Azure : cung cấp môi trường nền tảng Windows để chạy ứng dụng
và lưu trữ dữ liệu trên máy chủ trong trung tâm dữ liệu của Microsoft
- SQL Azure : cung cấp dịch vụ dữ liệu trên đám mây dựa trên SQL Server
- Windows Azure platform AppFabric : cung cấp các dịch vụ đám mây đểkết nối các ứng dụng chạy trên đám mây hoặc on-premise
5.2 Windows Azure
Ở cấp độ cao nhất, Windows Azure được hiểu đơn giản là một nền tảng để chạyứng dụng Windows và lưu trữ dữ liệu trên đám mây
Hình 9: Windows Azure cung cấp dịch vụ tính toán và lưu trữ cho ứng dụng đám mây.
Windows Azure chạy trên nhiều máy tính đặt trong trung tâm dữ liệu củaMicrosoft và truy xuất qua Internet Một Windows Azure fabric liên kết chặc chẽnhiều sức mạnh xử lí này thành một thể thống nhất
Dịch vụ tính toán dựa trên Windows Lập trình viên có thể xây dựng ứng dụng
sử dụng nền tảng NET, native-code,… Các ứng dụng này được viết bằng các ngônngữ thông thường như : C#, Visual Basic, C++, và Java, sử dụng Visual Studiohoặc công cụ phát triển khác Lập trình viên có thể tạo ứng dụng Web, sử dụng
Trang 21công nghệ như ASP.Net, WCF, và PHP, ứng dụng cũng có thể chạy như một xử línền độc lập, hoặc kết hợp cả Web và xử lí nền.
Cả ứng dụng Windows Azure và ứng dụng on-premise có thể truy xuất dịch vụlưu trữ Windows Azure, và cả hai cùng truy xuất bằng REST API Dịch vụ lưu trữcho lưu trữ các đối tượng dữ liệu lớn (blob), cung cấp các hàng đợi để liên lạc giữacác thành phần trong ứng dụng Windows Azure, và cung cấp dạng table với ngônngữ truy vấn đơn giản Đối với các ứng dụng có nhu cầu lưu trữ dữ liệu quan hệtruyền thống, nền tảng Windows Azure cung cấp cơ sở dữ liệu SQL Azure
Tuy nhiên để đạt được những thuận lợi trên đòi hỏi phải quản lí hiệu quả TrongWindows Azure, mỗi ứng dụng có một tập tin cấu hình Bằng cách cấu hình tập tinnày bằng tay hoặc lập trình, người chủ ứng dụng có thể cấu hình nhiều thành phầnnhư thiết lập số thể hiện mà Windows Azure nên chạy Sau đó Windows Azurefabric giám sát ứng dụng để duy trì trạng thái mong muốn
Để cho phép khách hàng tạo, cấu hình và giám sát ứng dụng Windows Azurecung cấp Windows Azure portal Khách hàng cung cấp một Windows Live ID, sau
đó tạo một tài khoản hosting để chạy ứng dụng, và một tài khoản lưu trữ để lưu trữứng dụng
5.3 Giới thiệu SQL Azure
Một trong những cách hấp dẫn nhất của việc sử dụng máy chủ truy xuấtInternet là xử lí dữ liệu Mục tiêu của SQL Azure là đánh địa chỉ vùng này, cungcấp các dịch vụ dựa trên đám mây để lưu trữ và làm việc với thông tin Trong khiMicrosoft nói rằng SQL Azure sẽ bao gồm một loạt các tính năng định hướng dữliệu, đồng bộ hóa dữ liệu, báo cáo, phân tích dữ liệu và những chức năng khác
Trang 22Hình 10: SQL Azure cung cấp các dịch vụ định hướng dữ liệu trong đám mây.
Cơ sở dữ liệu SQL Azure cung cấp một hệ thống quản lí cơ sở dữ liệu dựa trênđám mây (DBMS) Công nghệ này cho phép ứng dụng on-premise và đám mây lưutrữ dữ liệu quan hệ và những kiểu dữ liệu khác trên các máy chủ trong trung tâm dữliệu Microsoft Cũng như các công nghệ đám mây khác, tổ chức chỉ trả cho những
gì họ sử dụng Sử dụng dữ liệu đám mây cho phép chuyển đổi những chi phí vốnnhư : phần cứng, phần mềm hệ thống quản lí lưu trữ, vào chi phí điều hành
Cơ sở dữ liệu SQL Azure được xây dựng trên Microsoft SQL Server Cho qui
mô lớn, công nghệ này cung cấp môi trường SQL Server trong đám mây, bổ sungvới index, view, store procedure, trigger,…và còn nữa Dữ liệu này có thể đượctruy xuất bằng ADO.Net và các giao tiếp truy xuất dữ liệu Windows khác Kháchhàng cũng có thể sử dụng phần mềm on-premise như SQL Server ReportingService để làm việc với dữ liệu dựa trên đám mây
Khi ứng dụng sử dụng Cơ sở dữ liệu SQL Azure thì yêu cầu về quản lí sẽ đượcgiảm đáng kể Thay vì lo lắng về cơ chế, như giám sát việc sử dụng đĩa và theo dõitập tin nhật ký (log file), khách hàng sử dụng Cơ sở dữ liệu SQL Azure có thể tậptrung vào dữ liệu Microsoft sẽ xử lí các chi tiết hoạt động Và giống như các thànhphần khác của nền tảng Windows Azure, để sử dụng Cơ sở dữ liệu SQL Azure chỉ
Trang 23Ứng dụng có thể dựa vào SQL Azure với nhiều cách khác nhau.
Một ứng dụng Windows Azure có thể lưu trữ dữ liệu trong Cơ sở dữ liệu SQLAzure Trong khi bộ lưu trữ Windows Azure không hỗ trợ các bảng dữ liệu quan
hệ, mà nhiều ứng dụng đang tồn tại sử dụng cơ sở dữ liệu quan hệ Vì vậy lập trìnhviên có thể chuyển ứng dụng đang chạy sang ứng dụng Windows Azure với lưu trữ
dữ liệu trong Cơ sở dữ liệu SQL Azure
Xây dựng một ứng dụng Windows Azure lưu trữ dữ liệu trong Cơ sở dữ liệuSQL Azure
Giả sử một nhà sản xuất muốn thông tin sản phẩm có sẵn trên cả mạng lưới đại
lý và khách hàng Đưa dữ liệu này vào Cơ sở dữ liệu SQL Azure để cho nó đượctruy cập bởi các ứng dụng đang chạy tại các đại lý và ứng dụng Web của kháchhàng
5.4 Windows Azure AppFabric and Services
Windows Azure platform AppFabric cung cấp dịch vụ cơ sở hạ tầng dựa trênđám mây
Hình 11: Windows Azure platform AppFabric cung cấp cơ sở hạ tầng dựa trên đám mây được sử dụng bởi ứng dụng đám mây và ứng dụng on-premise.
Trang 24Các thành phần của Windows Azure platform AppFabric :
Service Bus: Mục tiêu của Service Bus là cho phép ứng dụng expose cácendpoint có thể được truy xuất bởi các ứng dụng khác Mỗi exposed endpoint đượcgán một URI Client sử dụng URI này để xác định vị trí và truy xuất dịch vụ.Service Bus cũng xử lí việc chuyển đổi địa chỉ mạng và vượt qua tường lửa màkhông cần mở port mới để expose ứng dụng
Access Control : Dịch vụ này cho phép ứng dụng client chứng thực chính nó vàcung cấp một ứng dụng server với thông tin xác thực Máy chủ sau đó có thể sửdụng thông tin này để quyết định những gì ứng dụng này được phép làm
Các dịch vụ này có thể được sử dụng trong nhiều cách khác nhau như sau :Giả sử một doanh nghiệp muốn cho phần mềm được truy cập bởi các đối tácthương mại đến một trong các ứng dụng của nó Nó có thể expose các chức năngcủa ứng dụng qua dịch vụ Web : SOAP hoặc REST, sau đó đăng ký các endpointcủa họ với Service Bus Các đối tác thương mại có thể sử dụng Service Bus để tìmcác endpoint này và truy xuất các dịch vụ
Một ứng dụng chạy Windows Azure có thể truy xuất dữ liệu lưu trữ trong cơ sở
dữ liệu on-premise Để làm được điều này có thể giải quyết bằng cách tạo mộtservice truy xuất dữ liệu, sau đó expose service này qua Service Bus
Hãy tưởng tượng một doanh nghiệp expose nhiều dịch vụ ứng dụng cho các đốitác kinh doanh của mình Nếu những dịch vụ đó được expose bằng cách sử dụngREST, ứng dụng có thể dựa vào các Access Control để xác thực và cung cấp thôngtin nhận dạng cho mỗi ứng dụng khách hàng Thay vì duy trì thông tin nội bộ vềtừng ứng dụng đối tác thương mại, thông tin này có thể được lưu trữ trong dịch vụAccess Control
6 Kết hợp Skype tương tác với người dùng
6.1 Tổng quan về Skype
Skype là một mạng điện thoại Internet ngang hàng được thành lập bởi NiklasZennström và Janus Friis, cũng là những người thành lập ra ứng dụng chia sẻ tậptin Kazaa và ứng dụng truyền hình ngang hàng Joost Nó cạnh tranh với những giaothức VoIP mở hiện nay như SIP, IAX, và H.323 Skype Group, đã được mua lại với
Trang 25giá 2,6 tỉ đô-la bởi eBay vào tháng 9 năm 2005, có trụ sở đặt tại Luxembourg, vớicác văn phòng đại diện ở London, Tallinn, Praha và San Jose thuộc California.Skype đã phát triển nhanh chóng về cả lượng người dùng và nhà phát triển phầnmềm từ khi ra mắt, cả dịch vụ miễn phí và dịch vụ trả tiền Hệ thống liên lạc Skypenổi bật nhờ các tính năng thuộc nhiều lĩnh vực, bao gồm hội nghị thoại và hình ảnhmiễn phí, khả năng sử dụng công nghệ (phân bố) ngang hàng để vượt qua vấn đề vềtường lửa và NAT (network address translation là quá trình thay đổi thông tin địachỉ IP của gói tin khi đang được truyền qua một thiết bị định tuyến.), sử dụng kỹthuật mã hóa mạnh, trong suốt và khả năng cực mạnh chống lại việc biên dịchngược phần mềm hay giao thức.
Ngày 10 tháng 5 năm 2011, tâp đoàn Microsoft đã mua lại Skype với giá 8,5 tỷđô-la
6.2 Liên kết với Skype URI và Skype API
Liên kết API thể hiện chi tiết những chức năng, tùy chỉnh, cú pháp được hỗ trợcho mỗi Skype URI và dành cho những nhà phát triển quan tâm đến việc tạo ra cácứng dụng cho Windows, Android, các nền tảng iOS và các thiết bị di động, cũngnhư những nhà phát triển quan tâm đến việc tạo ra Skype URI email hoặc chữ kýkhối
Các nhà phát triển quan tâm đến việc tạo ra các trang web cho phép liên kết tớiSkype URI và sử dụng chức năng Skype.ui Chức năng Skype.ui tạo ra và nhúngmột liên kết URI Skype trên trang web của bạn
Những hỗ trợ URI Skype hiện nay gồm:
- Tạo cuộc gọi thoại tới những người dùng Skype khác, gọi điện thoại, có thể gọi hội thoại nhiều người
- Tạo gọi video tới những tài khoản Skype khác
Gửi tin nhắn đến một tài khoản hoặc có thể tạo nhóm trò chuyện
6.3 Gọi thoại ngầm (Audio call-implicit)
Gọi người dùng khác trên Skype, điện thoại hoặc đi động Đây là một phiên bảnngầm của URI Skype Không giống với phiên bản công khai, bạn không được cung
Trang 26cấp đối số như video hoặc hội thoại Vì vậy, mặc định giá trị các đối số là false, vàgiá trị mặc định của các đối số đối tượng là null (không được xác định).
Cú pháp: skype:SkypeID1[;SkypeID2; SkypeID9]
6.4 Gọi thoại công khai (Audio call—explicit)
Gọi người dùng khác trên Skype, điện thoại hoặc đi động Phiên bản URISkype công khai cho phép bạn thêm đối số như là hội nghị
Đối số hội nghị (topic) cho phép người dùng mời người dùng khác tham gia hộinghị Bạn phải thay thế một số ký tự đặc biết như là phím cách khi đặt tên hội nghị
Ví dụ bạn muốn viết: My Conference Topic
bạn phải viết như sau: My%20Conference%20Topic
Cú pháp: skype: SkypeID1[;SkypeID2; SkypeID9]?call[&topic=topicString]6.5 Gọi Video
Gọi người dùng khác trên Skype, và tự động bật nguồn cấp dữ liệu video chocuộc gọi (webcam nếu có)
Cú pháp: skype:SkypeID1[;SkypeID2; SkypeID9]?call&video=true
Trang 27Nếu bạn là một nhà quản lý hay một người giữ chức vụ giám sát, chắc hẳnviệc quản lý nhân viên của mình chính là điều mà bạn quan tâm hàng đầu Việcquản lý nhân viên một cách hiệu quả cho phép bạn tận dụng những thế mạnh củanhân viên, hoàn thành mục tiêu đã được đặt ra trong công việc Tuy nhiên, đối vớimột số công ty như các công ty quảng cáo, marketing do đặc thù công việc, đội ngũnhân viên của họ phải di chuyển, việc quản lý nhân viên sẽ là vấn đề không hề dễdàng Giả sử bên dưới bạn có hai mươi nhân viên, mỗi người lại có những nhiệm
vụ riêng như đi gặp khách hàng, tiếp thị, bán hàng và bạn không thể di chuyểnliên tục để giám sát từng người xem họ có đang thực hiện đúng công việc được.Vậy làm cách nào để bạn không cần di chuyển nhưng vẫn nắm được vị trí, hoạtđộng của từng nhân viên? Đây là vấn đề đang cần được giải quyết
Bên cạnh sự phát triển của nền kinh tế, khoa học công nghệ cũng có nhữngbước tiến đáng kể Các thiết bị di động thông minh đang càng ngày được phát triểnnhiều hơn, mạnh hơn về hệ thống xử lý cũng như được tích hợp nhiều công nghệhiện đại, ví dụ như hệ thống định vị, mạng không dây, , cơ sở hạ tầng về mạngcũng được phát triển Chính nhờ sự tiến bộ này, số lượng người dùng thiết bị diđộng trên thế giới dang dần được tăng lên, sự liên lạc trở nên dễ dàng hơn, và việcquản lý nhân viên di động là điều hoàn toàn có thể
Trên thế giới, việc quản lý nhân viên di dộng đã được phát triển ở nhiềudoanh nghiệp Người quản lý có thể giám sát vị trí nhân viên của mình trong thời
Trang 28gian làm việc, thống kê báo cáo về công việc của nhân viên, từ đó đưa ra đánh giá
cụ thể ví dụ như phần mềm “Employee Management” do công ty Romex phát triển.Đây là một phần mềm cho phép doanh nghiệp giám sát nhân viên ngay trên GPSđiện thoại di động của họ Ưu điểm của phần mềm này là tự động hóa các bảngchấm công của nhân viên và xác nhận giờ làm việc, quản lý việc lái xe, tự động hóakinh doanh Một ví dụ khác là dịch vụ “TeleNav Track” “TeleNav Track” là mộtdịch vụ dựa trên địa điểm được chạy như một ứng dụng trên điện thoại thông minhcủa nhân viên và được quản lý bởi một người quản lý từ một công cụ web dựa trêntrình duyệt Ứng dụng sẽ cho chúng ta biết vị trí hiện tại, vị trí phải đến vào thờiđiểm đó và lịch trình các vị trí tiếp theo
Ở Việt Nam, việc quản lý nhân viên di động hiện nay chưa được đầu tư chútrọng và phát triển nhiều Đây vẫn là vấn đề bức thiết của các công ty, doanhnghiệp cần được quan tâm Hiện tại nền công nghệ trong nước đang dần dần từngbước tiến gần đến nền công nghệ thế giới, các hệ thống mạng như mạng không dây,3G đang được phủ sóng rộng rãi, tạo điều kiện thuận lợi cho việc phát triển ứngdụng quản lý nhân viên di động
3 Giải pháp
2.2.1 Mục tiêu
Nhằm hỗ trợ tối đa cho người quản lý, tôi hi vọng xây dựng được một hệ thốngthân thiện, đáp ứng được nhu cầu quản lý nhân viên marketing của các doanhnghiệp
Qua việc khảo sát hiện trạng ở các hệ thống tương tự trên thế giới và các doanhnghiệp quản lý trong nước, tôi xây dựng một hệ thống như sau: