Wednesday, September 17, 2014

BPMN - UML

Đánh giá các ngôn ngữ mô hình hóa quy trình nghiệp vụ và đề xuất việc sử dụng ngôn ngữ BPMN trong ngân hàng

Hiện nay, có rất nhiều ngôn ngữ mô hình hoá được nghiên cứu và sử dụng trong thực tế. Mỗi ngôn ngữ mô hình hoá có đặc điểm, vai trò và mục đích sử dụng khác nhau. Trong bài báo này chúng tôi nghiên cứu các ngôn ngữ mô hình hoá quy trình nghiệp vụ dựa trên các tiêu chí về mặt kiến tạo và hiểu các mô hình cùng mức độ ứng dụng như tính rõ ràng của ký hiệu, tính phân biệt, khả năng hiểu ký hiệu, biểu diễn trực quan, tính phức tạp đồ họa và mức độ phù hợp để mô hình hoá quy trình nghiệp vụ ngân hàng. Chúng tôi nghiên cứu sự khác nhau giữa các ngôn ngữ mô hình hoá tiêu biểu: EPCs, Petri Net, UML và BPMN với các tiêu chí trên. Kết quả đánh giá cho thấy, ngôn ngữ BPMN là phù hợp hơn cả với việc mô hình hoá các quy trình nghiệp vụ trong lĩnh vực ngân hàng.
ThS. Phan Thanh Đức, Chủ nhiệm khoa Hệ thống thông tin quản lý, Học viện Ngân hàng
ThS. Lê Quý Tài, Giảng viên, Học viện Ngân hàng

Giới thiệu

Mô hình hoá quy trình nghiệp vụ có vai trò quan trọng trong việc tài liệu hoá và tổ chức các quy trình trong một hệ thống thông tin. Để thực hiện mô hình hoá các quy trình nghiệp vụ thì ngôn ngữ mô hình hoá là một thành phần thiết yếu. Ngôn ngữ mô hình hoá là ngôn ngữ được sử dụng để thể hiện thông tin hoặc một hệ thống trong một cấu trúc được xác định bởi một tập các quy tắc (xem phần Tài nguyên), các quy tắc này được sử dụng để giải thích ý nghĩa của các thành phần trong cấu trúc. Ngôn ngữ mô hình hoá có thể là ở dạng văn bản hoặc đồ họa. Có thể kể đến các ngôn ngữ như Petri Net, EPCs, UML, EEML hay gần đây là ngôn ngữ YAWL hay BPMN. Để thực hiện mô hình hoá quy trình nghiệp vụ cho một doanh nghiệp cụ thể thì lựa chọn ngôn ngữ mô hình hoá là một vấn đề hết sức quan trọng. Việc lựa chọn ngôn ngữ mô hình hoá nào hoàn toàn phụ thuộc vào bài toán cụ thể hay những khả năng của ngôn ngữ đó, từ việc hỗ trợ biểu diễn các trạng thái, các công việc, đồng bộ hoá v.v... đến việc sinh ra mã thực thi BPEL hay mức độ hỗ trợ cho các hệ quản trị quy trình nghiệp vụ như thế nào?
Điểm quan trọng trong việc nghiên cứu, sử dụng ngôn ngữ mô hình hoá chính là nghiên cứu quá trình nhận thức (xem phần Tài nguyên số 5), cụ thể là quá trình con người xử lý thông tin, tạo ra tri thức và giải quyết vấn đề. Bởi lẽ ngôn ngữ mô hình hoá sử dụng rất nhiều đến các ký tự đồ họa - nhân tố ảnh hưởng lớn đến khả năng nhận thức thông qua hình ảnh của con người. Đồng thời, các khái niệm được các biểu tượng đó diễn tả cũng có tác động không nhỏ đến cả khả năng nhớ ngắn hạn và dài hạn của con người. Mặt khác, khả năng mô hình hoá quy trình nghiệp vụ của mỗi ngôn ngữ còn phụ thuộc vào tập các ký tự và các khái niệm mà nó có thể biểu diễn. Đây chính là những điểm quan trọng cần xem xét khi đánh giá một ngôn ngữ mô hình hoá quy trình nghiệp vụ.
Có nhiều khung đánh giá các ngôn ngữ mô hình hoá quy trình nghiệp vụ. Anna Gunhild Nysetvold và John Krogstie (xem phần Tài nguyên số 2) đã phát triển một khung đánh giá chất lượng các ngôn ngữ mô hình hoá với 6 nhóm lĩnh vực với 32 tiêu chí đánh giá. Tác giả đã tiến hành chấm điểm các ngôn ngữ UML, BPMN, EEML. Kết quả cho thấy, về tổng thể BPMN có điểm số cao nhất. Jan Mendling và Jan Recker (xem phần Tài nguyên số 4) thì lại đánh giá các ngôn ngữ mô hình hoá với độ hữu dụng ngữ nghĩa của nhãn (label) và các biểu tượng (icon) có trong mô hình. K. Figl , J. Mendling , M. Strembeck (xem phần Tài nguyên số 5) thì lại đánh giá hiệu quả của các ngôn ngữ dựa trên việc hiểu mô hình bằng các ký hiệu trực quan. Bài viết này cũng dựa trên phương pháp và khung đánh giá của K. Figl và cộng sự (xem phần Tài nguyên số 5), bên cạnh đó, chúng tôi phát triển thêm tiêu chí đánh giá về độ phù hợp của ngôn ngữ mô hình hoá với việc mô hình hoá các quy trình nghiệp vụ trong lĩnh vực ngân hàng. Đóng góp chính của bài báo là việc nghiên cứu khung đánh giá và bình luận về ưu nhược điểm của các ngôn ngữ EPCs, UML, Petri Net, BPMN và đưa ra khuyến nghị về vấn đề nên sử dụng ngôn ngữ nào để mô hình hoá các quy trình nghiệp vụ ngân hàng.

Khung đánh giá các ngôn ngữ mô hình hoá quy trình nghiệp vụ

Các hình thức biểu diễn thông tin có ảnh hưởng lớn đến việc hiệu quả của vấn đề hiểu biết thông tin đó, tìm kiếm hay giải quyết vấn đề (xem phần Tài nguyên số 5). Do đó, một trong những mục tiêu thiết kế hình ảnh trực quan là làm cho người xem chú ý đến các thành phần quan trọng. Theo Moody và Hillersberg (xem phần Tài nguyên số 3) có 5 nguyên tắc về hiệu quả hiểu mô hình của các ký hiệu trực quan là: Tính rõ ràng của các ký hiệu, tính phân biệt của các ký hiệu, khả năng hiểu ký hiệu, biểu diễn trực quan và tính phức tạp đồ họa. Bên cạnh các tiêu chí này, chúng tôi cũng xem xét các ngôn ngữ cùng với độ phù hợp khi sử dụng khi mô hình hoá các quy trình nghiệp vụ trong lĩnh vực tài chính-ngân hàng.
Tính rõ ràng của các ký hiệu: Nguyên tắc này chỉ ra tầm quan trọng về sự phù hợp giữa các biểu tượng đồ họa được sử dụng trong mô hình và các khái niệm ngữ nghĩa mà chúng biểu diễn. Sẽ là bất bình thường nếu như có tình trạng nhiều biểu tượng cùng đại diện cho một khái niệm (dư thừa) hay một biểu tượng đại diện cho nhiều khái niệm (quá tải) hoặc có biểu tượng đồ họa mà lại không có khái niệm ngữ nghĩa tương ứng (thiếu hụt). Nên tránh tình trạng dư thừa hay thiếu hụt bởi sẽ gây nhập nhằng và khó hiểu không cần thiết cho người sử dụng. Do vậy, các ràng buộc của các ký tự đồ họa sẽ là mục tiêu số một của các ngôn ngữ mô hình hoá trực quan, bởi lẽ ký tự đồ họa sẽ làm nổi bật những mặt riêng có của thông tin trong mối quan hệ với các khía cạnh khác.
Tính phân biệt của các ký hiệu: Giúp người dùng nhận biết các ký hiệu và phân biệt sự khác nhau giữa các ký hiệu của ngôn ngữ. Đặc tính này chịu sự ảnh hưởng lớn bởi số lượng các ký hiệu khác nhau được sử dụng và “độ phân biệt” giữa các ký hiệu đó (khoảng cách trực quan - visual distance). Do vậy, nếu một ký hiệu thực sự khác biệt với các ký hiệu khác thì có thể dễ dàng được nhận ra trong mô hình. Nếu các ký hiệu có tính phân biệt thấp thì rất dễ đẫn đến việc hiểu nhầm ký hiệu. Chẳng hạn, nghiên cứu cho thấy ký hiệu hình chữ nhật và hình kim cương trong sơ đồ ER rất dễ bị nhầm lẫn. Hay nói cách khác, nếu các ký hiệu có các thuộc tính tương tự nhau như màu sắc, hình dạng thì được coi là có liên quan đến nhau. Theo luật Gestalt (xem phần Tài nguyên số 6) về độ tương tự thì các phần tử sẽ được nhóm với nhau nếu chúng có các thuộc tính tương tự nhau. Do đó, các ký hiệu trong các ngôn ngữ mô hình hoá cần có độ phân biệt cao, tránh sự nhầm lẫn hay nhập nhằng.
Khả năng hiểu ký hiệu: Đặc tính này giúp người dùng hiểu ý nghĩa và đại diện của các ký hiệu cùng các khái niệm liên quan và có thể gắn kết ký hiệu với khái niệm liên quan trong thực tế. Các ngôn ngữ mô hình hoá có thể sử dụng các ký hiệu khác nhau để biểu diễn các khái niệm trong thế giới thực. Theo nghiên cứu của Rockwell và Bajaj, mô hình biểu diễn sẽ có hiệu quả cao hơn nếu các biểu tượng sử dụng trong mô hình giống với “khái niệm cung mô tả nốt-mối quan hệ (node-relationship) trong biểu diễn thông tin” (xem phần Tài nguyên số 1).
Biểu diễn trực quan: Các ký hiệu được sử dụng trong các ngôn ngữ mô hình hoá thường sử dụng rất nhiều các đặc tính trực quan (như hình dạng, kích thước, màu sắc, độ sáng, kết cấu v.v...). Do vậy, để đánh giá một ngôn ngữ mô hình hoá thì việc đánh giá các ký hiệu biểu diễn cũng rất quan trọng.
Tính phức tạp đồ họa: Độ "phức tạp" của một mô hình phụ thuộc vào việc sử dụng các ký tự và sự khác biệt giữa các ký tự đó. Tuy nhiên, đôi khi sự phức tạp của các ký tự đồ họa lại làm giảm khả năng hiểu sơ đồ của người dùng. Hay nói cách khác, cần có sự cân bằng nhất định giữa độ phức tạp đồ họa và khả năng hiểu ký hiệu.
Độ phù hợp với lĩnh vực tài chính - ngân hàng: Xem xét ngôn ngữ có phù hợp với việc mô hình hoá các quy trình nghiệp vụ trong lĩnh vực tài chính - ngân hàng hay không? Cụ thể: Ngôn ngữ có được bổ sung các ký hiệu đặc thù để xây dựng các mô hình trong lĩnh vực này hay không? Mức độ hỗ trợ của ngôn ngữ?

Sự khác nhau giữa các ngôn ngữ mô hình hoá quy trình nghiệp vụ

Mỗi ngôn ngữ mô hình hoá bao gồm các thành phần cơ bản giúp người dùng định nghĩa các quy trình nghiệp vụ, các thành phần cơ bản thường là:
  • Start: Nút xác định điểm bắt đầu của một quy trình. Nút start có thể có một hoặc nhiều cạnh ra.
  • End: Nút xác định điểm kết thúc của một quy trình hoặc quy trình con (sub-process). Mỗi nút end chỉ có duy nhất một cạnh vào.
  • Tasks (tác vụ): Biểu diễn các tác vụ khác nhau của quy trình. Mỗi nút task thường xác định một hành động (action) hoặc một bước trong quy trình. Các nút task có thể do người dùng hoặc các tác nhân (agent) trong phần mềm điều khiển.
  • Decision (lựa chọn quyết định): Thể hiện các lựa chọn có trong quy trình.
  • Merge (tổng hợp): Nút tổng hợp những đường khác nhau là kết quả của các nút lựa chọn.
  • Split (tách): Có tác dụng chia quy trình thành các nhánh song song. Các quy trình con được tách ra sẽ hoạt động đồng thời.
  • Join (nối): Nối các quy trình con hoạt động song song, thông thường nút Join sẽ thực hiện đồng bộ các quy trình con được tách ra từ nút Split.
  • Event (sự kiện): Xác định sự xuất hiện của các sự kiện trong quy trình. Trong mô hình, các event thường dùng để kích hoạt các tác vụ, ngoài ra, trong mỗi tác vụ cũng có thể tạo ra các event để kích hoạt các tác vụ khác.

Petri Nets

Petri Nets là ngôn ngữ có ít ký hiệu nhất trong số các ngôn ngữ được so sánh trong bài viết này. Do đó, ngôn ngữ này gặp phải một vấn đề lớn về tính rõ ràng của các ký hiệu. Các thành phần lại biểu thị các hành vi khác nhau tuỳ thuộc vào số lượng cung vào và ra của thành phần đó. Ngôn ngữ này sử dụng 2 ký hiệu: hình chữ nhật cho các chuyển đổi (transition) và hình tròn dành cho các địa điểm (place).
Hình 1. Các ký hiệu cơ bản của Petri Nets
Các kí hiệu cơ bản của Petri Nets
Hình 2. Ví dụ mô hình quy trình nghiệp vụ với Petri Nets
Ví dụ mô hình quy trình nghiệp vụ với Petri NetsNhấp vào để xem ảnh lớn

EPCs

EPC chứa 3 loại biểu tượng: vòng tròn dành cho các kết nối, hình chữ nhật bo tròn cạnh cho các chức năng, và hình lục giác cho các sự kiện. Tuy nhiên, các sự kiện các khác nhau lại không có các ký hiệu khác nhau để biểu diễn, trong khi đó, EPC sử dụng các ký hiệu khác nhau dành cho các kết nối khác nhau. Chẳng hạn, ký hiệu × dành cho phép XOR, ˄ dành cho phép AND, ˅ dành cho phép OR. Ngoài ra, EPC có 2 cách để xác định các quy trình con, có thể bằng ký hiệu quy trình con ở góc dưới bên phải ký hiệu chức năng hoặc bằng các giao diện quy trình để bắt đầu các quá trình tiếp theo.
Hình 3. Các ký hiệu cơ bản của EPCs
Các kí hiệu cơ bản của EPCsNhấp vào để xem ảnh lớn
Tuy nhiên, EPC chỉ chứa một số ít các biểu tượng và có vấn đề trong việc sử dụng với nhiều điều kiện và tiêu chí khác nhau. Biểu tượng sự kiện (event) bị quá tải (overload) do biểu tượng này đại diện cho nhiều khái niệm, do đó gây ra vấn đề không rõ ràng; biểu tượng kết nối AND và OR khó phân biệt do cả hai đều dùng chung một biểu tượng và chỉ phản ánh theo chiều dọc. Nhìn chung, các ký hiệu của EPC rất trừu tượng, hơn nữa tính biểu diễn trực quan cũng rất hạn chế, do đó gây hạn chế về mặt nhận thức trực giác của người dùng (tuy cũng có một số công cụ thiết kế cho phép sử dụng màu để phân biệt các biểu tượng - như màu đỏ dành cho các chức năng, màu xanh lá cây dành cho các sự kiện v.v...
Hình 4. Ví dụ mô hình quy trình nghiệp vụ với EPC
Ví dụ mô hình quy trình nghiệp vụ với EPC

Ngôn ngữ mô hình hoạt động UML

Thành phần chính trong một mô hình hoạt động là các hoạt động (Activity). Hoạt động là một quá trình bao gồm các hành động (action) và các nút điều khiển (control node). Các hành động diễn tả các nhiệm vụ (task) hay các bước (step) được thực hiện khi thi hành Hoạt động tương ứng. Chẳng hạn, để mô hình (đồng bộ hay không đồng bộ các quá trình khác từ một hoạt động, ta có thể sử dụng biểu tượng hành động (action - hình chữ nhật bo tròn 4 góc) và biểu tượng Fork node hoặc join node (hình 3). Về bản chất, các thành phần mô hình hoá này giúp xác định sự tương tác lẫn nhau giữa các quy trình trong một mô hình hoạt động.
Các mô hình hoạt động thể hiện một mạng ngữ nghĩa (tương tự - nhưng không bằng Petri nets). Mỗi hoạt động có thể có một hoặc nhiều nút khởi tạo (Initial node) và một hoặc nhiều nút kết thúc (final node). Trong trường hợp luồng quy trình đạt đến nút kết thúc thì nó sẽ làm ngừng ngay lập tức việc thi hành các hành động và chấm dứt hoạt động tương ứng. Ngược lại nút kết thúc luồng (Flow Final) thì chỉ làm chấm dứt các luồng vào nó mà không kết thúc cả hoạt động. Nút lựa chọn điều kiện (Decision node) biểu diễn bằng một hình thoi có một đầu vào và nhiều đầu ra. Nút Merge thì ngược lại, có nhiều đầu vào và chỉ có duy nhất một đầu ra. Nút Fork được biểu diễn bằng một gạch thẳng đậm nét với một đầu vào và nhiều đầu ra, nút Join thì ngược lại với nhiều đầu vào và một đầu ra. Nút gửi tín hiệu (Send Signal) biểu diễn bằng ngũ giác lồi. Nút Accept Event Action được biểu diễn bằng 2 loại ký hiệu. ký hiệu ngũ giác lõm là dành để biểu diễn việc chờ một sự kiện cụ thể nào đó xuất hiện. Sự kiện ấy có thể là kết quả từ tín hiệu phát ra từ nút Send Signal. Trong khi đó, ký hiệu đồng hồ cát là biểu diễn của Accept Time Event Action.
Hình 5. Các thành phần cơ bản của ngôn ngữ hoạt động UML
Các thành phần cơ bản của ngôn ngữ hoạt động UML Tuy nhiên, ngôn ngữ UML vi phạm một số tiêu chí do Moody đưa ra. Mặc dù các nút kết thúc (kết thúc hoạt động và kết thúc luồng trong hoạt động) có tự khác biệt rõ rệt nhưng các nút bắt đầu và kết thúc hoạt động lại có nét giống nhau. Điểm mạnh của UML là phân biệt tốt giữa các quyết định (decision) và đồng thời (concurrency), các thành phần định hướng này có sự khác nhau rõ rệt. Các nút Send Signal và Accept Event có sự gắn kết khá tốt, nhưng các nút còn lại thì vẫn còn tương đối trừu tượng.
Hình 6. Ví dụ mô hình quy trình nghiệp vụ với UML
Ví dụ mô hình quy trình nghiệp vụ với UML Bất lợi lớn nhất của biểu đồ hoạt động là nó không thể hiện rõ ràng các mối quan hệ giữa các hoạt động và các đối tượng, điều này được thể hiện tốt hơn ở biểu đồ tương tác hoặc biểu đồ trạng thái.
Trong biểu đồ hoạt động, các đối tượng bị tác động bởi hành động của đối tượng khác không được chỉ ra rõ ràng. Bên cạnh đó, biểu đồ hoạt động cũng không chỉ ra được trường hợp các đối tượng khác nhau có thể thực hiện cùng một hành động (hoặc đối tượng này thực hiện hoặc đối tượng kia thực hiện) và trường hợp cùng một đối tượng có thể thực hiện một trong nhiều hành động (hoặc thực hiện điều này hoặc thực hiện điều kia).

BPMN

Hình dưới đây là các ký hiệu cơ bản của BPMN. BPMN sử dụng các loại sự kiện khác nhau để xác định điểm đầu và điểm cuối của một quy trình. Các kí tự cơ bản này có thể được mô tả mở rộng bằng nhiều ký hiệu khác. BPMN cũng sử dụng các ký hiệu khác nhau cho sự kiện kết thúc. Nút kết thúc (Terminal) sẽ chấm dứt toàn bộ các phần đang thực hiện (nếu có) trong quy trình. Nút thể hiện sự kiện Gửi (Send) và Nhận (Receive) được biểu diễn bằng các ký hiệu rỗng và đặc trong các hình tròn. Các nút này sử dụng hình phong bì thư khá trực quan. Các bước khác nhau trong một quy trình được gọi là các nhiệm vụ (task): chẳng hạn quy trình con nhúng (embedded sub-process) hoặc quy trình con thu gọn (collapsed sub-proccess). BPMN sử dụng các cổng (gateway) để thể hiện các ràng buộc. Các nút Join và Split của các cổng này đều sử dụng ký hiệu hình thoi để biểu diễn. Cổng XOR thì có thể được có hoặc không có dấu X còn cổng AND thì có dấu + ở bên trong.
Hình 7. Các thành phần cơ bản của BPMN
Các thành phần cơ bản của BPMN Tuy vậy, BPMN cũng có một số điểm yếu, đôi khi gây lầm lẫn cho người đọc. Chẳng hạn, cổng XOR có thể được biểu diễn bằng nhiều ký hiệu (hình thoi rỗng hoặc hình thoi và dấu X. Hơn nữa, giữa các ký hiệu đôi khi có ít sự phân biệt rõ. Chẳng hạn, ký hiệu Start và End chỉ khác nhau ở viền của hình tròn (độ dày, đậm); cổng XOR có dấu X tương đối khó phân biệt với cổng AND có dấu +. Nhiều ký hiệu trong BPMN sử dụng độ sáng khác nhau để diễn tả các sự kiện khác nhau (chẳng hạn hình rỗng hay hình đặc v.v...). Hoa văn và màu sắc tuy không được sử dụng trong bộ ký hiệu chuẩn, nhưng các công cụ thiết kế vẫn thường đưa vào để làm nổi bật các nhiệm vụ. Các ký hiệu của BPMN không có sự phức tạp, cầu kỳ, trau chuốt về mặt đồ họa, nhưng BMPN lại có rất nhiều các biểu tượng và hàng loạt các biểu tượng phụ kèm theo, chính điều này có thể làm cho người dùng khó học.
Hình 8. Ví dụ mô hình quy trình nghiệp vụ với BPMN
Ví dụ mô hình quy trình nghiệp vụ với BPMN

Đánh giá

Dựa trên những phân tích cụ thể về các ngôn ngữ trong phần trên, có thể tổng hợp sự khác biệt của các ngôn ngữ mô hình hoá xét cả về mặt xây dựng mô hình và hiểu mô hình trong Bảng 1 dưới đây.
Bảng 1. So sánh các ngôn ngữ mô hình hoá

Petri NetsEPCsUMLBPMN
Tính rõ ràng của ký hiệu
  • Các ký hiệu thiếu tính rõ ràng.
  • Ký hiệu rất trừu tượng, không rõ ràng.
  • Một số ký hiệu bị quá tải.
  • Gây hạn chế về nhận thức cho người dùng.
  • Nhiều nút vẫn còn tương đối trừu tượng.
  • Biểu đồ hoạt động chưa thể hiện rõ mối quan hệ giữa hoạt động và các đối tượng.
  • Hệ thống ký hiệu phong phú, các ký hiệu được biểu diễn trực quan.
  • Một số ký hiệu chưa thực sự khác biệt.
Tính phân biệt của ký hiệu
  • Khó khăn khi phân biệt ký hiệu function và event.
  • Ký hiệu OR và AND khó phân biệt.
  • Các nút có tính phân biệt khá tốt.
  • Khó khi phân biệt nút start và end.
  • Khó khi phân biệt nút start và end.
  • Ký hiệu X và + khá giống nhau trong một số biểu tượng.
Khả năng hiểu ký hiệu
  • Dễ gây nhầm lẫn do sử dụng quá ít ký hiệu.
  • Nhiều ký hiệu trừu tượng, khó hiểu.
  • Nhiều nút vẫn còn tương đối trừu tượng.
  • Một số ký hiệu trừu tượng, khó hiểu.
Biểu diễn trực quan
  • Khả năng biểu diễn trực quan rất hạn chế.
  • Khả năng biểu diễn trực quan bị hạn chế.
  • Hầu hết biểu tượng phân biệt hình dáng và kích thước.
  • Khả năng biểu diễn trực quan bị hạn chế.
  • Khả năng biểu diễn trực quan bị hạn chế.
Tính phức tạp đồ họa
  • Ký hiệu đơn giản, nghèo nàn.
  • Số lượng ký hiệu ít, dễ học.
  • Số lượng ký hiệu phong phú .
  • Số lượng ký hiệu phong phú nhất.
  • Mất nhiều thời gian để học hơn.
Độ phù hợp với lĩnh vực tài chính - ngân hàng
  • Có quá ít ký hiệu.
  • Không phù hợp mô hình hoá quy trình nghiệp vụ ngân hàng.
  • Có khả năng biểu diễn, tuy nhiên rất hạn chế.
  • Có khả năng biểu diễn, tuy nhiên khá hạn chế.
  • Tiếp cận theo hướng quy trình.
  • Có khả năng mở rộng thêm các ký hiệu.
  • Đã được bổ sung thêm các biểu tượng về ngân hàng.
  • Phù hợp để mô hình hoá các quy trình nghiệp vụ ngân hàng.

Kết luận

Mô hình hoá quy trình nghiệp vụ là một công việc quan trọng, có ý nghĩa lớn đối với việc tổ chức, xây dựng và quản lý doanh nghiệp. Việc sử dụng các ngôn ngữ mô hình hoá để biểu diễn, mô phỏng và đánh giá các quy trình nghiệp vụ trong thực tế ngày càng tăng lên trong các ngân hàng. Vấn đề đặt ra là nên lựa chọn ngôn ngữ nào để phù hợp với hoạt động tin học hóa, phát triển sản phẩm dịch vụ trong lĩnh vực ngân hàng vốn đòi hỏi sự linh hoạt, ổn định và khả năng tích hợp với các hệ thống sẵn có.
Kết quả đánh giá các ngôn ngữ cho thấy, ngôn ngữ BPMN là một ngôn ngữ được tiếp cận theo hướng quy trình, có hệ thống ký hiệu phong phú nhất, có khả năng mở rộng thêm các ký hiệu. Ngôn ngữ này còn có các kỹ thuật sinh tự động mã BPEL thực thi dưới dạng các Web-services nhằm tích hợp giữa tầng nghiệp vụ với các hệ thống nghiệp vụ ngân hàng lõi core banking. Các công cụ mô hình hóa sử dụng BPMN đều được trang bị các chức năng tạo báo cáo và đánh giá hiệu quả, chỉ có khác là mức độ tiện dụng và sự thân thiện. BPMN có thể được sử dụng bởi cả người làm công nghệ và người làm nghiệp vụ, nhưng chắc chắn người làm nghiệp vụ sẽ dễ dàng làm quen với BPMN hơn so với các ngôn ngữ mô hình hóa khác. Việc sử dụng bộ ngôn ngữ BPMN – vốn được thiết kế theo hướng quy trình cho người làm nghiệp vụ – chắc chắn sẽ đáp ứng được các yêu cầu trong quá trình mô tả các sản phẩm dịch vụ ngân hàng về sự linh hoạt, ổn định, dễ sử dụng và khả năng tích hợp với các hệ thống thông tin khác tại ngân hàng.

Tài nguyên

  • Tài liệu tham khảo:
    • [1] Akhilesh Bajaj và Stephen Rockwell. Advanced Topics in Database Research, Kapitel COGEVAL: Khung mệnh đề Dựa trên lý thuyết nhận thức để đánh giá Mô hình khái niệm, trang 255–282. Nhà xuất bản Idea Group, 2005.
    • [2] Anna Gunhild Nysetvold và John Krogstie, đánh giá ngôn ngữ Business Processing Modeling sử dụng Generic Quality Framework, Advanced Topics in Database Research: Vol. 5, Đại học khoa học và công nghệ Na Uy, Viện khoa học máy tính, thông tin và truyền thông SINTEF , Na Uy, 2006, trang 79-91.
    • [3] Daniel Moody và Jos Hillegersberg. Evaluating the Visual Syntax of UML An Analysisof the Cognitive Effectiveness of the UML Family of Diagrams. Springer-Verlag, Berlin, Heidelberg, 2008
    • [4] Jan Mendling và Jan Recker. Hướng tới việc sử dụng các nhãn (Labels) và biểu tượng (Icons) trong Business Process Models. Trong Terry Halpin, Hendrik Alexander Proper and John Krogstie, Hrsg., 12th International Workshop on Exploring Modeling Methods in Systems Analysis and Design, CEUR Workshop Proceedings Series, trang 1–13, Montpellier, France, 2008.
    • [5] K. Figl , J. Mendling , M. Strembeck, hướng đến việc đánh giá khả năng sử dụng của ngôn ngữ Process Modeling, 8. GI-Workshop EPK 2009: Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten. CEUR-WS: Berlin, 2009.
    • [6] M. Wertheimer. A sourcebook of Gestalt psychology, Kapitel Laws của tổ chức các hình thái tri giác, trang. 7188. Routledge và Kegan Paul, London, Anh, 1938. Được in lại từ Psychologische Forschung, 4, trang 301350, 1923.
    • [7] http://en.wikipedia.org/wiki/Modeling_language 
    Source: http://www.ibm.com/developerworks/vn/library/rational/2013Q4/ra-uml-bpm-bank/

Business Process Management

Đối với mỗi doanh nghiệp, việc ký duyệt các văn bản nội bộ để đưa ra một quyết định sản xuất, kinh doanh, cung cấp dịch vụ hoặc đơn giản chỉ là một sự thay đổi đơn hàng, yêu cầu nguyên vật liệu, một quyết định nâng cấp - nâng lương… cho tới những quyết định để thay đổi một chiến lược kinh doanh mang tầm vĩ mô… đều đòi hỏi có sự ký duyệt từ các bên liên quan để đi tới một quyết định cuối cùng.
 
Điều gì đã xẫy ra khi doanh nghiệp chưa ứng dụng CNTT vào các quy trình ký duyệt của mình?
  • Phần lớn các doanh nghiệp ở Việt Nam đang làm thủ công cho việc ký duyệt các văn bản, điều này đã làm tiêu tốn hầu hết thời giờ của các nhà quản trị và các nhà chiến lược, mỗi ngày họ phải đối mặt với vô số chồng hồ sơ trên bàn làm việc và các áp lực đưa ra một quyết định kinh doanh hiệu quả dựa vào các thông tin tập hợp trong những chồng hồ sơ, văn bản đó thì không đơn giản chút nào.
  • Tiêu tốn quá nhiều thời gian cho quá trình ký duyệt một văn bản.Chi phí cao cho các thiết bị văn
MỘT QUY TRÌNH KÝ DUYỆT VĂN BẢN ĐƠN GIẢN:


(Quy trình ký duyệt nghỉ phép)
 
  • Phòng như: giấy, mực in, máy in, bút… các văn bản cần ký duyệt sẽ bị trễ hạn nếu như các cấp ký duyệt không có mặt tại phòng làm việc.
  • Truy lục lại thông tin luôn là một trong những nhu cầu cần thiết của mỗi doanh nghiệp, nếu các văn bản, thông tin chỉ được lưu trữ trong các tập hồ sơ dày cộp, chúng ta sẽ tiêu tốn nhiều thời gian, công sức để truy tìm lại những thông tin cần thiết khi cần.
  • Nhu cầu tổng hợp thông tin để phục vụ các cấp quản lý trong việc đưa ra các quyết định và chiến lược kinh doanh trong các thị trường đầy năng động và tiềm ẩn nhiều rũi ro như hiện nay rất khó khăn.
  • Không có công cụ để chiết xuất thông tin nhằm phục vụ tốt cho việc lập kế hoạch quản lý, giám sát, kiểm soát chi tiêu nội bộ.
  • Chưa xây dựng được một môi trường văn hóa doanh nghiệp dựa vào CNTT để nâng cao lợi thế cạnh tranh và giá trị doanh nghiệp trên thị trường.

Business Analysis - Phân tích nghiệp vụ

Kỹ năng phân tích - Điều kiện tiên quyết của nghề Phân tích nghiệp vụ

Bạn đã bao giờ nghe nói đến nghề "Chuyên viên phân tích nghiệp vụ" - Business Analyst (BA)? Đó là nghề gì vậy? Bạn cần những kỹ năng nào để trở thành một chuyên viên phân tích nghiệp vụ giỏi?
Chuyên Viên Phân Tích Nghiệp Vụ (BA) là người chịu trách nhiệm phân tích nhu cầu của khách hàng và các đối tác đối với hoạt động kinh doanh của doanh nghiệp để tìm hiểu và đề xuất phương pháp giải quyết vấn đề phát sinh. Họ giúp cải thiện cách thức vận hành kinh doanh, giảm thiểu chi phí hoạt động, sử dụng hiệu quả nhất nguồn lực có giới hạn, và hỗ trợ cho khách hàng tốt hơn.
Một BA thường đóng vai trò “cầu nối” giữa hoạt động kinh doanh của một doanh nghiệp và bộ phận CNTT. Là thành viên của nhóm dự án, họ đóng góp nhiều ý kiến và thông tin giá trị. Họ làm việc với các nhà quản lý và các nhà tư vấn, chịu trách nhiệm phát triển mô hình nghiệp vụ, thực hiện các công việc nghiên cứu và phân tích phức tạp. Các BA làm việc trong nhiều lĩnh vực nghiệp vụ khác nhau, cọ xát với nhiều hoạt động kinh doanh của doanh nghiệp.
Các BA thường có trình độ về kỹ thuật, họ có thể bắt đầu từ vị trí lập trình viên hay kỹ sư công nghệ thông tin. Không nhất thiết phải có chuyên môn kỹ thuật, một số người có thể chuyển sang làm BA từ một ngành nghề kinh doanh khác nhờ có khả năng phân tích nghiệp vụ tốt. Các BA thường phát triển lên vị trí giám đốc dự án, chuyên viên tư vấn hay cố vấn chuyên môn.
Ngoài lĩnh vực IT, các BA còn làm việc trong ngành tài chính, ngânhàng, bảo hiểm, viễn thông, dịch vụ phần mềm… Ngoài trình độ học vấn, một BA cần có kỹ năng giải quyết vấn đề và giao tiếp tốt và chín chắn.
1. BA là gì?
- Business analysts (BA): Nhà phân tích kinh doanh là chuyên viên đánh giá tình trạng bên trong của doanh nghiệp và cung cấp những ý kiến khả thi để thay đổi doanh nghiệp, giúp doanh nghiệp đến gần hơn với mục tiêu hoặc đạt được mục tiêu. Để hoàn thành nhiệm vụ đó, người phân tích phải sử dụng nhiều chiến lược khác nhau, bao gồm làm việc trực tiếp với nhân viên trong doanh nghiệp, tìm hiểu các tài liệu về nghiệp vụ của doanh nghiêp, quy trình hoạt động, các thủ tục trong doanh nghiệp. Ngoài ra, chuyên viên phân tích kinh doanh đôi khi còn phải làm việc với khách hàng.
- Một chuyên viên phân tích kinh doanh giỏi thường đóng nhiều vai trò, người đó có thể đánh giá hoạt động của doanh nghiệp và so sánh hoạt động đó với mục tiêu của doanh nghiệp. Đây chính là lí do mà nhà phân tích thường bắt đầu công việc bằng cách nghiên cứu các tiến trình trong doanh nghiệp. Điều đó bao gồm việc phải biết lịch sử của doanh nghiệp, bản chất của dòng sản phẩm của doanh nghiệp, cách tổ chức doanh nghiệp hiện thời, các chính sách thủ tục ở doanh nghiệp. Một khi nhà phân tích hiểu được doanh nghiệp đã và đang ở đâu trong hôm nay thì điều đó có thể giúp nhà phân tích nhận ra điểm mạnh và điểm yếu của doanh nghiệp ở hoàn cảnh hiện tại, và bắt đầu quá trình nhận ra những thay đổi của doanh nghiệp trước đây.
- Một số nhà phân tích lựa chọn phân tích,đánh giá dịch vụ trong doanh nghiệp, một số khác thì lựa chọn chuyên về các lĩnh vực cụ thể trong hoạt động của doanh nghiệp. Một nhà phân tích kinh doanh có thể tập trung phân tích vào các vấn đề công nghệ thông tin, bộ phận kế toán, bán hàng, quy trình marketting, hoặc thậm chí dựa trên sự hiệu quả  của  sự điều hành cơ cấu doanh nghiệp. Tùy thuộc vào lĩnh vực chuyên môn, nhà phân tích có thể có chứng chỉ từ hiệp hội hoặc cơ quan, mặc dù đa số các nhà phân tích trước đây thường là nhà điều hành hoặc quản lý, những người cung cấp các dịch vụ của họ dựa trên tập hợp kinh nghiệp ở nơi làm việc. Ngoài ra một số trường cao đẳng trên thế giới còn đưa ra các mức độ của phân tích kinh doanh và cung cấp cả chứng chỉ sau khi hoàn tất xong chương trình học.
- Chuyên viên phân tích kinh doanh nếu hoạt động trong lĩnh vực công nghệ thông tin thì thường được gọi là chuyên viên "phân tích nghiệp vụ". Vậy phân tích nghiệp vụ là gì? Điểm giống và khác nhau của nó so với phân tích kinh doanh là gì
2. Chuyên viên Phân tích Nghiệp vụ?
- Nhà phân tích kinh doanh là một cá nhân làm việc chặt chẽ với doanh nghiệp để hỗ trợ trong quá trình cải tiến. Công việc chủ yếu của họ là phân tích và thiết kế trong các lĩnh vực, tổ chức, và cả trong công nghệ thông tin. Một nhà phân tích kinh doanh làm việc trong lĩnh vực công nghệ thông tin thì gọi là chuyên viên phân tích nghiệp vụ.
- Chuyên viên phân tích nghiệp vụ là một chuyên gia phải am hiểu cả hai lĩnh vực: kinh doanh  và CNTT. Họ như là cầu nối giữa đội ngũ kinh doanh và đội ngũ kĩ thuật để hỗ trợ công việc phát triển doanh nghiệp.
- Để hiểu rõ hơn, tôi xin lấy một ví dụ sau: Có một công ty ABC cần một phần mềm xuất nhập kho để quản lý hàng hóa của họ, hàng hóa của công ty ABC là các loại rượu. Họ thuê một công ty tin học “Solution software AAA” viết cho họ phần mềm đó. Nguyên tắc đầu tiên để viết phần mềm là phải có các mô tả về công ty ABC, sản phẩm, quy trình xuất nhập hàng hóa và…. gọi chung là các nghiệp vụ. Các chuyên viên phân tích nghiệp vụ của công ty Solution Software AAA chịu trách nhiệm đến công ty AAA và thu thập các yêu cầu nghiệp vụ. Họ sẽ phải chịu trách nhiệm lập các tài liệu, các tài liệu này môt tả các yêu cầu của doanh nghiệp, quy định trong doanh nghiệp. Sau đó họ sẽ phải lập báo cáo cho người quản lý các dự án CNTT, giám đốc hoặc trưởng phòng bộ phận CNTT, thậm chí là cho cả công ty ABC. Các chuyên viên phân tích nghiệp vụ phải đảm bảo rằng các thiết kế của họ phải phù hợp tiêu chuẩn kỹ thuật của công ty. Vì phải viết các tài liệu và bản thiết kế sao cho bộ phận lập trình có thể đọc được nên các chuyên viên phân tích nghiệp thường nằm trong bộ phận CNTT.
- Những người có ý định trở thành một chuyên viên phân tích nghiệp vụ có thể làm việc tại một công ty tư vấn hoặc trong tổ chức lớn bất kì. Tuy nhiên, nếu làm việc trong công ty tư vấn với vai trò là nhà tư vấn thì nó sẽ tốt cho ta vì nó mang lại cho ta nhiều kinh nghiệm hơn. Các nhà tư vấn được thuê làm việc theo dự án cụ thể, cho phép ta cộng tác với nhiều đội ngũ làm việc trong thời gian ngắn. Một khi một nhà phân tích đã có được những kinh nghiệm cần thiết, họ sẽ dễ dàng giữ một vai trò quan trọng trong các dự án.
- Hầu hết các chuyên viên phân tích nghiệp vụ có đều có bằng cấp của một ngành nào đó, một ngành có sự kết hợp của CNTT và kinh doanh: khoa học máy tính, hệ thống thông tin, quản lý tài chính… Bởi vì họ là cầu nối giữa doanh nghiệp cần một giải pháp CNTT và doanh nghiệp cung cấp giải pháp CNTT, cho nên họ phải hiểu các quy trình, cách làm việc của doanh nghiệp cần giải pháp CNTT, đây là điều quang trọng. Kỹ năng của họ là sự kết hợp các giao tiếp giữa kinh doanh và kĩ thuật.
- Có nhiều khóa học được mở ra để đào tạo cho các cá nhân quan tâm đến việc trở thành một chuyên viên phân tích nghiệp vụ. Các khóa học đó chuyên giúp người học hiểu cách giao tiếp trong kĩ thuật, các yêu cầu trong quy trình quản lý, và kỹ năng viết các tài liệu kinh doanh. Chuyên viên phân tích nghiệp vụ là một vị trí khó khăn vì nó có vị trí như hỗ trợ doanh nghiệp, họ cần phải hiểu cách làm thế nào để thực hiện các yêu cầu của doanh nghiệp. Họ đại diện cho công ty cung cấp phần mềm phải đáp ứng nhu cầu, sự kì vọng của công ty cần giải pháp phần mềm.
- Certified Business Analyst Professional (CBAP) là một chứng chỉ dành cho các nhà phân tích nghiệp vụ với ít nhất 5 năm kinh nghiệm. Để có được chứng chỉ này, họ cần phải trải qua một kỳ thi nhằm kiểm tra các kỹ năng của các nhà phân tích trong các lĩnh vực lập kế hoạch, phân tích doanh nghiệp, quản lý yêu cầu, và đánh giá các giải pháp.

Source: http://vinabac.com/node/327

Wednesday, September 10, 2014

Manual update HTC One X to official Android OTA

  1. Make sure that the phone’s bootloader is unlocked and it has custom recovery (CWM) installed.
  2. HTC One X should be running firmware version 3.20.401.3 otherwise you will receive an error.
  3. Download HTC One X official Android 4.2.2 OTA file [OTA_ENDEAVOR_U_JB_50_S_HTC_Europe_4.18.401.2-3.20.401.3_release_330300ryyxmahrvif4vkyl.zip] from this link, Mirror)
  4. Connect the phone to the computer using USB cable and transfer all the files which you got after extracting the zip archive in the previous step.
  5. Disconnect phone from computer and turn off the phone and enter recovery mode by pressing Volume Down + Power buttons simultaneously for 10 second till you see Fastboot screen. On the Fastboot screen select the Recovery option. Use the Volume buttons to navigate and Power button to select.
  6. Once you are in recovery mode, flash the OTA.zip file
  7. Now return Fastboot.
  8. Reboot the phone.
If HTC__ID runs 3.20.401.1, need to first update the phone to 3.20.401.3 using this http://fotadl.htc.com/OTA_ENDEAVOR_U_JB_45_S_HTC_Europe_3.20.401.3-3.20.401.1_release_31823765m022e6p4w085de.zip

Tuesday, September 9, 2014

HTML Tips

style = {color: red; text-decoration: line-through;}

Android - Terminology


1. ROM - FIRMWARE:
- Là phần mềm và là "hệ điều hành" trên máy điện thoại. Chính là chương trình chính để máy hoạt động mà không có nó thì máy chỉ là "cục gạch". Có người gọi là phần sụn hay sự mềm dẻo hóa phần cứng. Thực chất Firmware là phần mềm nhớ trong bộ nhớ chỉ đọc (ROM: Read Only Memory) chứa các thủ tục khởi động, lệnh vào/ra ở mức thấp. Nó mềm dẻo hóa phần cứng cho linh hoạt, dễ sửa đổi và thông quá đó làm điều khiển, tăng tốc phần cứng...

- Về khía cạnh thương mại, Firmware là một phần mềm miễn phí. Nhưng thực chất bạn đã trả phí khi bỏ tiền mua phần cứng. Firmware có thể do chính hãng sản xuất thiết bị phần cứng viết hoặc thuê hãng thứ ba viết để hỗ trợ khách hàng. Vì vậy, việc update firmware qua OTA là miễn phí.

Rom có các loại:
1.1 ROM SHIP: Là ROM được phát hành chính thức của nhà sản xuất (hãng).
1.2 ROM STOCK: Là ROM của nhà mạng, được tạo ra dựa trên cơ sở ROM SHIP.
1.3 ROM COOK, CUSTOM ROM: là ROM tự chế dựa trên ROM SHIP hoặc ROM STOCK. Custom rom được độ chế tuỳ vào nhu cầu của người dùng!

2. FLASH máy:
- Flash máy, hiểu ngắn gọn là xoá hệ điều hành đang có trên máy và chép đè vào một hệ điều hành cùng hãng có thể cùng hoặc khác version thông qua các Tool đặc thù cho mỗi hiệu máy.

3. BRICK:
- Là hiện tượng bị lỗi làm máy bạn sẽ thành “cục gạch” do lỗi trong qua trình up rom, file hệ thống android...!
- Để không bị brick, phải nhớ tuyệt đối không up nhầm rom của máy khác, khi đang up rom không làm mất nguồn hay rút cáp, và khi up Radio+SPL (Structed Query Language) phải đúng thứ tự, sai bước vẫn brick và up không đúng dòng máy vẫn brick.

4. UNLOCK CODE:
- Tất cả các loại ĐTDĐ được bán ra dưới dạng hợp đồng (ở nước ngoài) thì đều bị khoá lại với một mã số (CODE) nào đó gồm 8, 14, 15 hoặc 16 số để tránh việc bạn có được điện thoại với giá rẻ đem đi sử dụng dịch vụ mạng khác. Khi bạn đưa Simcard của nhà mạng khác vào thì máy sẽ đòi hỏi bạn nhập một dãy số để mở khoá mạng gọi là unlock code thì bạn mới có thể sử dụng được. Mở khoá dạng này thì chi phí cao hơn khi mở khoá trực tiếp bằng thiết bị chuyên dụng. Tuy nhiên một số máy đời mới do cơ chế bảo mật quá cao nên một số thiết bị chuyên dùng hiện nay chưa xử lý được, nhất là dãy 16 chữ số, vì vậy mở khoá mạng bằng unlock code là một trong những cách unlock đảm bảo an toàn nhất cho điện thoại của bạn, có thể Unlock được từ xa, chỉ cần dựa vào số IMEI của máy mà nơi cung cấp dịch vụ mở khoá (nhà mạng, nhà sản xuất thiết bị, hay các hacker...) sẽ cấp cho bạn một dãy số để bạn nhập vào máy khi gắn sim khác mạng vào.

5. ROOT máy (Hack ROOT):
+ Khi thiết kế hệ điều hành cho mỗi dòng máy, nhà sản xuất thường đặt hệ thống bảo vệ quyền can thiệp vào hệ điều hành để nhằm các mục đích:
- Bảo vệ đặc trưng của thương hiệu.
- Tránh rắc rối phát sinh từ người sử dụng (do không hiểu nên thay đổi, chép đè, xoá file hệ thống v.v...) làm máy không hoạt động được
- Bảo vệ quyền lợi kinh doanh từ các phần mềm ứng dụng được họ cho phép.
- v.v...

+ Vì vậy, Root máy (hack Root) là làm cho người sử dụng có quyền được tạo những thay đổi cho hệ thống files của system và từ đó có thể làm những việc mà nếu không có quyền này sẽ không được như hack multitouch, apps to SD, lấy apk của phần mềm trả tiền, update những firmware được cook riêng, bỏ / thêm phần mềm khác vào hệ thống, khả năng end tasks... và rất, rất nhiều thứ khác.

+ Lưu ý là khi bạn hack root sẽ mất quyền update OTA (Over The Air), được hiểu là cập nhật trực tuyến hệ thống từ nhà sản xuất qua wifi, qua các kết nối mạng khác.

6. HBOOT, BOOTLOADER:
- HBOOT là bộ nạp khởi động cho máy (Hiểu nôm na nó là Bootloader)
- Từ đây bạn có thể có các tùy chọn vào các chế độ nạp khởi động như Fastboot, Recovery.....)
- Lưu ý là với mỗi một version Firmware thì sẽ có một HBOOT khác nhau. Vì vậy nếu không tìm hiểu kỹ những bản Rom Ship mà đã up ngay thì nó sẽ nâng HBOOT của bạn lên và bạn không thể ROOT được nó => đồng nghĩa với việc bạn sẽ "Nằm im" với bản ROM đó mà không thể up một bản ROM nào khác (Phải đợi các DEV (develop: nhà phát triển) chế ra Tool ROOT phù hợp)

7. S-OFF:
- S-OFF đơn giản nó là SECURITY OFF ( Tắt Bảo vệ )
- Máy HTC mới bây giờ được cài 1 chip để chống uprom và update vào System nên chúng ta cần s-off để tắt chip đó đi => Mới có thể UP ROM và Update System (Kernel, Radio....)
- Nếu S-ON khi vào recovery sẽ thấy hình điện thoại với biểu tượng tam giác và chấm than đỏ (tuy nhiên, có một số tool làm cho máy vẫn có thể vào được recovery mà không hiển thị hình điện thoại với biểu tượng tam giác và chấm than đỏ, dù máy vẫn ở trạng thái S-ON)
- Với S-OFF sẽ có 2 khái niệm là ENG S-OFF và SHIP S-OFF

7.1 ENG S-OFF (engineering S-Off ):
- Nó có tác dụng là cài đặt một hboot img mới lên điện thoại của bạn, đặt Memory Card (Thẻ nhớ) vào bên trong S-OFF lúc khởi động => Nó có thể qua được bước Check Security => Bạn có thể up ROM Cook, cài các file Update.zip vào hệ thống....
- Nó không có tác dụng với việc bạn muốn update RADIO hoặc các ROM SHIP của các nhà mạng khác (ROM SHIP thì bao giờ cũng kèm RADIO)
- Khi bạn UP ROM SHIP (đúng phiên bản hỗ trợ cho máy của bạn) thì nó sẽ mất và trở lại là S-ON

7.2 SHIP S-OFF ( Radio S-Off)
- Với SHIP S-OFF (Radio S-Off) thì nó sẽ tắt hoàn toàn chế độ bảo mật (Security) của điện thoại (HTC) và điều này cũng đồng nghĩa với việc bạn có thể up các bản Rom, Radio (SHIP) của các nhà mạng khác nhau và các bản Rom Cook, update System vô tư.
- Trạng thái này có tính bền vững
+ Nó sẽ không bị mất đi khi bạn up ROM SHIP
+ Muốn trở lại S-ON thì bạn phải dùng Tool và phải nhớ CID (Carrier ID) xuất xứ máy của bạn.

8. CID (Carrier ID)
- Mã nhận dạng khu vực (Asia, Euro.....) hoặc nhà mạng cung cấp (Orange, T-Mobile....)
- Không nhớ mã này thì không thể trở lại tình trạng như máy xuất sưởng (S-ON và CID đúng như ban đầu) nếu như bạn đã dùng SHIP S-OFF (Radio S-OFF) đã nêu ở trên.

Những mục trong H BOOT (Bootloader)

Khi điện thoại android đã được thực hiện Root, Eng-S off và Recovery thì trong Menu HBoot (Bootloader) thường sẽ có những mục sau (tuỳ loại máy có hết hoặc chỉ có vài mục):

1. FAST BOOT : dùng để Update các file *.zip, *.img và UP ROM qua kết nối với PC

2. RECOVERY : Khi bạn vào mục này sẽ có các lựa chọn cho bạn Update các file *.zip (Kernel, Theme.....), Wipe / Factory Reset (Đưa máy về nguyên trạng xuất xưởng, tuy nhiên chỉ là đưa về bản rom gốc, radio, kernel bạn đang sử dụng chứ không phải đưa về bản Rom khi bạn mua máy)...

3. FACTORY RESET : Tác dụng như mục Wipe / Factory Reset trong RECOVERY (Nếu bạn đã cài RECOVERY thì khi chọn mục này nó sẽ vào RECOVERY đã nói ở trên).

4. SIMLOCK : Chưa đụng tới vì các mục liên quan đến SIMLOCK thường rất nhạy cảm (Trên cả điện thoại thường lẫn smart phone) => Không nên voọc nếu không biết rõ về nó.

5. SYSTEM INFO : Thông tin về phần cứng, phiên bản Android, CID máy của bạn . Nếu máy bạn chạy ENG S-OFF thì mới có mục này, còn nếu bạn chạy Tool One Click S-OFF (SHIP S-OFF) thì nó sẽ không hiện.

 Một số thuật ngữ khác, từ viết tắt bắt nguồn từ diễn đàn XDA

1. CW hoặc CWM: Viết tắt của từ ClockWorkMod Recovery :
- Những file update *.zip mà có chữ CW ở đằng trước là dùng cho các máy đã vào được chế độ Recovery trong Bootloader (Các bạn có thể update bằng thẻ nhớ) để phân biệt với FastBooot (Chỉ có thể cập nhật qua kết nối với PC)

2. CM: Viết tắt của từ CyanogenMod :
- Là những bản Rom dựa trên Base mặc định của hệ điều hành Android (Google) và đã được tích hợp thêm tùy chỉnh giao diện Cyanogen. Nó khác với những bản Rom Andoid do nhà sản xuất phát triển (Tích hợp giao diện SENSE, BLUR…)

- Hiểu đơn giản là
+ CM : Rom không có SENSE, BLUR…
+ SENSE, BLUR… : Rom có SENSE, BLUR…

3. UV: Viết tắt của từ Under Volt (Hạ điện áp) :
- Thuật ngữ này được dùng trong các Kernel do các Dev chỉnh sửa tối ưu , UV là điều chỉnh điện áp cung cấp tuơng thích với mỗi chế độ hoạt động xung nhịp của CPU

4. OC: Viết tắt của từ Over Clock (Ép xung)
- Thuật ngữ này cũng được dùng trong các Kernel nói trên, OC có tác dụng ép xung nhịp cho CPU hoạt động tăng công xuất xử lý hoặc điều chỉnh xung nhịp theo nhu cầu sử dụng....


Cơ bản
Bộ nhớ trong của smartphone HTC chạy Android được phân thành nhiều vùng (partition). Mỗi một vùng được sử dụng vào mục đích riêng. Sau đây là những vùng chính:

  • System: vùng cho hệ thống điều hành, thường là bị khóa. Khi các bạn up ROM, đại đa số (nếu không phải là 100%) là được viết vào đây. Root là lý do mà bạn muốn có quyền để có thể viết/xóa trên vùng này.
  • Data (userdata): Vùng dành cho phần mềm tải trên mạng về, chép vào máy và cài đặt. Một số custom ROM (ROM cook) có thể cài đặt một số nhỏ ứng dụng của ROM vào phần này. Những ứng dụng mà ROM cook cài ứng dụng trên vùng này thường là có thể tải từ nguồn khác về, thường là những ứng dụng thông thường nhưng không phải là phần tất yếu của ROM. Tất cả dữ liệu trên vùng này sẽ bị xóa nếu bạn dùng chức năng factory reset.
  • Recovery: vùng dành cho chức năng hồi phục. Lúc bạn cài (flash) custom Recovery.img là bạn viết vào đây.
  • Boot: Vùng chứa Android kernel (boot.img)
  • Radio: Vùng chứa firmware cho radio, camera và một số phần cứng của máy.
  • HBOOT: Bootloader, phần mềm liên quan tới khởi động của máy.
  • Cache: Chứa ROM tải về qua OTA, dữ liệu tạm thời từ tải về từ Play Store.
  • Sdcard (internalsd): Vùng dùng chứa dữ liệu cá nhân.
Chú thích:
Xanh: Vùng bạn có thể can thiệp dữ liệu mà không cần bất cứ quyền hay chức năng đặc biệt. Khả năng máy bạn có thể biến thành là cục gạch là 0.

Vàng: Bạn có thể can thiệp dữ liệu trên vùng khi có được ít nhất là root (cần Unlock Bootloader cho Boot và Recovery). Nếu không cẩn thận thì có thể bootloop hoặc tệ hơn là softbrick.

Đỏ: Bạn chỉ có thể can thiệp dữ liệu trên vùng này khi có được S-OFF. Cơ hội máy bạn thành cục gạch là khá cao nếu bạn không cẩn thận khi táy máy trên các vùng này.

Android Diễn Nghĩa
Bạn có thể xem máy bạn như cấm thành Bắc Kinh. Muốn được vào kinh thành thì bạn phải vượt qua Vạn Lý Trường Thành (Root), muốn vào gặp vua thì phải qua Tử Cấm Thành (Unlock Bootloader), và muốn lấy Ngọc Ấn thì phải có S-OFF.
Root, unlock bootloader, và S-OFF không phụ thuộc vào nhau.

Root (superuser / SuperSU) - Cơ bản
“Root” cơ bản cho phép bạn là chạy bất cứ ứng dụng/chương trình mà không có giới hạn. Nói cách khác các ứng dụng và chương trình của bạn sẽ được phép chạy dưới quyền admin (tương tự như bạn chạy với account Administrator trong Windows). Bạn @vuhai6 đã có một bài chi tiết nói về root ở đây. http://www.tinhte.vn/threads/1540865/
Lúc bạn root xong thì bạn sẽ có thêm 2 thứ trên máy của mình:

  1. /system/xbin/su: đây là chương trình cho phép bạn đổi qua quyền hạn của root (admin).
  2. /system/app/superuser hay /system/app/superSU: ứng dụng để quản lý những ứng dụng khác có quyền sử dụng root (/system/xbin/su) hay không.
Điều kiện để root
Muốn root thì bạn phải cài đặt su và superuser/superSU trong /system nhưng chưa có root thì làm sao có thể viết lên trên /system được? Đây là bài toán mà muốn root máy, bạn phải giải. Câu trả lời ở phía dưới:
  • Máy đã S-OFF hoặc Bootloader đã được mở khóa (UNLOCKED): Vì máy đã unlock nên bạn có thể truy cập trên /system mà không bị cản trở. Bạn chỉ cần flash một tập tin có su và superuser/superSU từ custom recovery hoặc “đẩy qua” (push) dùng ADB. (Bạn đã có ngọc ấn hay ở trong Tử Cấm Thành rồi thì muốn đi tham quan kinh thành thì cứ mở cổng thành mà đi).
  • Máy bạn S-ON và Bootloader LOCKED: Trong trường hợp này, bạn thường được yêu cầu để chạy phần mềm dùng để khai thác lỗ hổng để có thể viết lên /system bằng một cách nào đó (Bạn đang ở ngoài VLTT chỉ có cách là trèo, chui hoặc đục thành, tìm lổ hổng để vào). Các phần mềm này đại đa số đều khai thác lỗ hổng của Android kernel 2.3.x những máy chạy kernel 3.x đa số đã không còn lổ hỗng nên các phần mềm này trở nên ít hơn.
Vì 2 lý do trên nên root không yêu cầu điện thoại phải đã mở khóa Bootloader hoặc S-OFF, nhưng nó thường được đề cập chung vì nếu Bootloader đã được mở khóa hay máy đã được S-OFF thì dễ làm hơn nhiều.

Mở khóa bootloader
Unlock (mở khóa) bootloader cho phép bạn có thể tùy tiện đặt ROM vì bạn có toàn quyền truy cập vào /system và /recovery. Unlock bootloader được thực hiện để bạn có thể viết lên các phân vùng của hệ thống điều hành Android (các vùng màu vàng).

Điều kiện để mở khóa Bootloader

  1. Máy đã S-OFF: Một khi đã S-OFF, tất cả mọi vùng đã đều được mở (Bạn đã có Ngọc Tỷ trong tay rồi thì cũng không cần unlock bootloader làm cái gì, ngoại trừ khi bạn muốn táy máy chơi).
  2. HTCDev Unlock Bootloader (vẫn còn S-ON): HTC có cho phép một số máy được mở khóa qua HTCDev.com (Cho bạn cái chìa khóa của cửa Tử Cấm Thành, bạn muốn ra vô tùy ý).
    Yếu điểm của phương pháp HTCDev là nó không cho bạn can thiệp vào vùng radio, HBOOT và cũng không cho phép Recovery truy cập vào vùng kernel (/boot), hoặc splash màn hình. Đây là lý do tại sao mặc dù đã Unlock Bootloader rồi, sau khi flash ROM nào đó bạn bị lỗi wifi hay bootloop, vì tuy ROM (chính xác hơn là drivers modules của ROM) đã được viết lên /system nhưng kernel (boot.img) không được cập nhật.
    Để khắc phục yếu điểm này bạn cần có 1 trong 2 điều kiện sau đây:
    1. Dùng fastboot để cài kernel (boot.img) sau khi gắn ROM từ PC với lệnh: fastboot flash boot <tên của boot.img của bạn lấy ra từ ROM>. Boot.img nằm trong gốc của zip của ROM/kernel.
    2. Dùng một custom Recovery sử dụng phương pháp HTC Dumlock để có thể flash kernel từ recovery. 4Ext và TWRP Recovery là hai recovery sử dụng HTC Dumlock. Vắn tắt là HTC Dumlock nhảy từ chế độ recovery qua fastboot khi cần flash boot.img.
S-OFF
Ngoài khóa Bootloader ra, HTC còn có một kiểm soát an ninh tên S(ecurity)-ON/OFF. Một khi đã được S-OFF, bạn có thể làm bất cứ điều gì bạn muốn ngay cả sử dụng một bootloader vẫn còn khóa để cài đặt ROM (nhưng phải cẩn thận khi cài RUU). Một điện thoại S-OFF cho phép bạn truy cập để viết firmware radio, HBOOT mới vào thiết bị. Một điện thoại S-OFF không có hạn chế về vùng, vì vậy bạn có thể xóa sạch mọi thứ trên máy và bị kẹt lại với một chiếc điện thoại không có hệ điều hành và không có cách nào để làm bất cứ điều gì. Nói cách khác bạn có thể biến chiếc điện thoại của bạn thành cục gạch nếu bạn không cẩn thận. Ngược lại, vì bạn có thể can thiệp vào bất cứ vùng nào trên máy, bạn có thể biến nó từ cục gạch trở lại một chiếc điện thoại bình thường.
Tóm lại, S-OFF như bạn có Ngọc Tỷ trong tay và muốn làm gì cũng được.

S-OFF để làm gì

  1. Đầu tiên và quan trọng nhất, nó cho phép bạn cài ROM và khôi phục Nandroid backup một cách dễ dàng hơn nhiều, bằng cách cho phép Recovery có quyền can thiệp vào vùng boot (kernel). Bạn sẽ không cần máy tính để flash boot.img sau khi up ROM/khôi phục Nandroid backup như trong trường hợp còn S-ON.
  2. Cho phép thay đổi firmware: bạn có thể cập nhật một HBOOT “vá” hoặc “kỹ thuật”(engineering), lợi thế của sẽ được thảo luận phía dưới.
  3. Bạn có thể nâng cấp các radio và firmware liên quan mà không cần phải flash/chạy cái RUU gốc.
  4. Nó cho phép bạn xuống cấp phiên bản Android, thí dụ bạn chán/không thích ICS và muốn xuống lại Gingerbread. Bạn có thể flash những ROM rò rỉ mới nhất và nếu không thích, quay trở lại hệ điều hành/ firmware cũ mà không có vấn đề gì.
  5. Bạn có thể thay đổi màn hình splash của bạn, đây không phải là chức năng quan trọng, nhưng thỏa mãn nhu cầu cá nhân hóa điện thoại của bạn.
  6. Khả năng để cài đặt một HBOOT “vá” hoặc kỹ thuật, kết hợp với khả năng có thể chạy bất kỳ RUU nào, cho cơ hội lớn hơn để “vực dậy” một điện thoại đã bị biến thành cục gạch “mềm”.
  7. Giảm thiểu các bước để thay đổi trạng thái mở khóa của bạn cho mục đích bảo hành.
Cách để S-OFF
Hiện tại có 2 cách bạn có thể sử dụng để S-OFF: Revolutionary.IO và Unlimited.IO. Có một vài máy HTC, tùy theo HBOOT mà bạn đang chạy có thể sử dụng một cách khác nhưng phần nhiều là khá rắc rối và chỉ dành cho các bạn đã quen với ADB và fastboot. Đối với những bạn mới thử S-OFF, mình khuyên bạn nên dùng Revolutionary.IO hoặc Unlimited.IO.
Cả hai cách đều đòi hỏi là bạn đang chạy ở những dòng đời HBOOT nhất định. Nếu máy bạn chạy trên những HBOOT phiên bản khác thì ĐỪNG THỬ.

Cách để xem phiên bản HBOOT hiện tại của máy
Vào Bootloader (Nhấn nút Power và Volume – cho tới khi máy vào trong hình HBOOT).
Dãy số hiển thị sau chử HBOOT-… là số phiên bản HBOOT của máy

Revolutionary.IO
Đây là cách đầu tiên được sử dụng để có thể S-OFF và công cụ S-OFF cũng khá dễ dùng để làm theo các bước để dẫn tới S-OFF. Cách S-OFF của Revolutionary.IO sử dụng là dựa trên lỗ hổng của các HBOOT để thực hiện. Do đó các bạn chỉ nên S-OFF trước khi chắc chắn là HBOOT mình đúng phiên bản HBOOT được hỗ trợ bởi Revolutionary.IO.
Hiện tại các máy sau (và đời HBOOT) đang được hỗ trợ bởi Revolutionary.IO

Monday, September 8, 2014

HTC - Flash Custom ROM

Your CID number must be exactly the same. If it's written "HTC__001" it means you can't flash it, if your CID is "02__001". The whole text must match!

HTC - Restore Backup/Stock ROM

Methods for returning back HTC One X to stock ROM from any custom ROM

Method 1
Go to: bootloader / fastboot mode: (refer above guide)
1- flash a stock recovery.img
  • fastboot flash recovery recovery_signed.img
  • fastboot reboot-bootloader
  • fastboot erase cache
2- flash a stock boot.img
  • fastboot flash boot boot_signed.img
  • fastboot reboot-bootloader
  • fastboot erase cache
3- re-lock bootloader
  • fastboot oem lock
  • fastboot reboot-bootloader
  • fastboot erase cache
4- run/doubleclick RUU and follow instructions.
Grab the stock boot.img & recovery from : xda-developers.com
install stock rom of your CID-fastboot oem readcid (to know your CID)
-all roms are based on x.xx.401.xx , so you need to download the right RUU(that matches your CID) and extract rom.zip to cook a stock rom for you
-flash custom stock rom(extracted and cooked from right RUU) on custom recovery
-fastboot flash boot c:\boot.img (flash stock kernel that’s inside custom stock rom boot.img file)
  • RElock the bootloader (you can allways unlock)
-fastboot oem lock
  • Right RUU file for your CID
  • put your phone on fastboot (it will not boot because you have a custom rom on a locked bootloader)
  • now you can run the RUU exe file and upgrade your phone
Method 2
  • Extract the rom.zip from RUU of your CID (google how extract ruu.exe)
  • fastboot oem readcid (to know your CID)
  • Extract boot.img, system.img, signed_recovery.img from rom.zip
  • Flash
  • fastboot flash recovery signed_recovery.img
  • fastboot flash boot boot.img
  • fastboot flash system system.img
  • fastboot erase cache
  • fastboot oem lock
  • Power on the phone
  • Run the RUU exe file (of your CID) and upgrade your phone
Method 3 (like Method 2, but we dont need to flash the system) (thanks to EddyOS)
  • Extract the rom.zip from RUU of your CID (google how extract ruu.exe)-fastboot oem readcid (to know your CID)
  • Extract boot.img, signed_recovery.img from rom.zip
  • Flash-fastboot flash recovery signed_recovery.img
  • fastboot flash boot boot.img
  • fastboot oem lock
  • Run the RUU exe file (of your CID) in fastboot modeFlash a ROM and boot image based on 1.26 (e.g ARHD 2.1)
  • Clear fastboot cache Code:
  • fastboot clear cache
  • Boot your phone
  • Charge you phone completely
  • Download stock recovery
  • Flash stock recovery Code:
  • fastboot flash recovery endeavoru_recovery_signed.img
  • Relock bootloader Code:
  • fastboot oem lock
  • Run your required RUU
Restore
  • Reboot the phone into Recovery again
  • Go to Backup & Restore> restore> Choose the backup folder or stock folder extracted. 
Notice
CWM NAND: fastboot flash boot path/to/boot.img
TWRP NAND: fastboot flash boot boot.emmc.win

source:XDA and XDA-Developer