[ Java ] Sử dụng InputStream / OutputStream



Sử dụng luồng vào ra InputStream và OutputStream trong Java

/* ----------------------------------------------------------------------------------------
Ví dụ 1: InputStream - System.in;
- Nhập vào từng ký tự từ bàn phím,  In ký tự vừa nhập, kết thúc khi nhập phím 'q'
*/
package inputstream1;
import java.io.*; 
public class InputStream1 { 
    public static void main(String args[]) 
    {
        InputStream is = System.in;       
        while (true) 
        { 
            try 
            {
                int ch = is.read(); // doc 1 ky tu tu ban phim
                if (ch ==-1 || ch =='q')
                    break; 
                System.out.print((char)ch);
              
            } catch (IOException ie) 
            {
                System.out.print("Error: "+ie); 
            }
        }
        
        
    }
}

/*----------------------------------------------------------------------------------------------
Ví dụ 2: InputStream - System.in
    Nhập vào từ bàn phú dãy ký tự lưu vào mảng b, in mảng b ra màn hình

*/


package inputstream2;
import java.io.*; 
public class InputStream2 
{
    public static void main(String args[])
    {
        InputStream is = System.in; // KeyBoard = System.in 
       
        while (true)
        {
            try
            {
                int num = 10;//is.available(); 
                if (num > 0)
                {
                    byte[] b = new byte[num]; 
                    int result = is.read(b); 
                    if (result == -1) break; 
                    String s = new String(b); 
                    System.out.print(s); 
                } else
                {
                    System.out.print('.');
                }
            } catch (IOException ie)
            {
                System.out.print("Error: "+ie); 
            }
        } 
}
}

/* -----------------------------------------------------------------------------------------
Ví dụ 3:  OutputStream - System.out
   In ra màn hình xâu: "Day la vi du OutputStream voi System.out (man hinh) " 

*/

ackage outputstream1;

import java.io.*; 
public class OutputStream1 
{
    public static void main(String args[]) 
    {
        OutputStream os = System.out;
    
// Monitor = System.out 
        try
        {
            String str = "Day la vi du OutputStream voi System.out (man hinh) \n";
            byte b[] = str.getBytes(); // Đổi chuỗi thành mảng các bytes 
            os.write(b);
        } catch (IOException ie)
        { 
            System.out.print("Error: "+ie); 
        }
    }
}


/*----------------------------------------------------------------------------------------------
Ví dụ 4: - InputStream - InputStreammReader - BufferedReader - readLine()
- Nhập vào 2 số nguyên a, b
- Tính tổng 2 số, in kết quả ra màn hình
*/

package inputstreamreadline;
import java.io.*;
public class InputStreamReadLine{ 
    public static void main(String args[]) 
    { 
        InputStreamReader isr = new InputStreamReader(System.in); 
        BufferedReader br = new BufferedReader(isr);
        
        try{
            System.out.print("\n Nhap a:");
            String xau1=br.readLine();
            int a=Integer.valueOf(xau1);// ép kiểu string -> int
            
            System.out.print("\n Nhap b:");
            String xau2=br.readLine();
            int b=Integer.valueOf(xau2);
            
            int s=a+b;
            String str=String.valueOf(s);// ép kiểu int -> string
            
            // in ra nam hinh
            OutputStream os = System.out;
            PrintWriter xuat = new PrintWriter(os);
            
            xuat.write("Ket qua= ");
            xuat.print(str);
            xuat.flush();
            
           // System.out.print("\n Tong= "+str);
        
        }catch(IOException e){
            System.out.print("Loi "+e.toString());
        }
        
    }
}


>>> GAME CỰC ĐỈNH CHO MOBILE <<<

[ Java ] Lập trình truyền thông - Sử dụng Pipe - Ví dụ1

/*  Pipe - java
Ví dụ1: Viết chương trình mô phỏng Client-Server
- Client gửi cho Server 1 xâu ký tự (nhập từ bàn phím), chờ nhận xâu kết quả từ Server rồi in ra màn hình.
- Server nhận xâu ký tự từ Client, đổi xâu đó ra chữ hoa, gửi kết quả lại cho Client.
*/

// --------------------------------------------------------------------------------------------
// Class Sever

package pipedecho;
import java.io.*; 

public class PipedEchoServer extends Thread 
{
    PipedInputStream readPipe; 
    PipedOutputStream writePipe; 
    int ch;

    // khoi tao
public PipedEchoServer(PipedInputStream readPipe, PipedOutputStream writePipe)

    this.readPipe = readPipe; 
    this.writePipe = writePipe; 
    System.out.println("Server is starting . . .");  


// nhan du lieu tu client
public void Nhan_DuLieu_Tu_Client(){
        try {
            ch = readPipe.read();
        } catch (IOException ex) {
           System.out.print(" Co loi xay ra: "+ex.toString());
        }
}

//gui ket qua da xu ly cho client
public void Gui_QK_Cho_Client(){
        try {
            writePipe.write(ch);
        } catch (IOException ex) {
              System.out.print(" Co loi xay ra: "+ex.toString());
        }
}

// Doi chu thuong thanh chu hoa
public void DoiChu(){
    ch = Character.toUpperCase((char)ch);     
}
public void run()

    while(true) { 
        Nhan_DuLieu_Tu_Client();
        DoiChu();
        Gui_QK_Cho_Client();
    }
}
}




// --------------------------------------------------------------------------------------------
// Class Client

package pipedecho;
import java.io.*; 


public class PipedEchoClient extends Thread { 
    PipedInputStream readPipe; 
    PipedOutputStream writePipe; 
    int ch;
    
    public PipedEchoClient(PipedInputStream readPipe, PipedOutputStream writePipe){ 
        this.readPipe = readPipe; 
        this.writePipe = writePipe; 
        System.out.println("Client creation");         
    } 
  
    // doc 1 ky tu tu ban phim, gui ky tu do cho server
    public void Gui_Server(){   
        try {           
           ch=System.in.read(); 
           writePipe.write(ch);
        } catch (IOException ex) {
            System.out.print(" Co loi xay ra: "+ex.toString());
        }
        
    }
    
    // nhan 1 ky tu tu server
    public void Nhan_KQ_Tu_Server() {
        
        try {            
            ch = readPipe.read();
        } catch (IOException ex) {
           System.out.print(" Co loi xay ra: "+ex.toString());
        }
        
    }
    
    // In ket qua nhan duoc
    public void InKetQua(){
        System.out.print((char)ch); 
    }
    
    // thuc thi
    public void run()
    { 
        while(true) {          
                Gui_Server();
                Nhan_KQ_Tu_Server();
                InKetQua();               
        }
    }
}





// --------------------------------------------------------------------------------------------
// Class Main
package pipedecho;

import java.io.*; 

public class PipedEcho { 
    public static void main(String argv[]){ 
        try{   
            PipedOutputStream cwPipe = new PipedOutputStream(); 
            PipedInputStream crPipe = new PipedInputStream(); 
            
            PipedOutputStream swPipe = new PipedOutputStream(crPipe); 
            PipedInputStream srPipe = new PipedInputStream(cwPipe); 
            
            PipedEchoServer server = new PipedEchoServer(srPipe,swPipe); 
            PipedEchoClient client = new PipedEchoClient(crPipe,cwPipe); 
       
            server.start();
            client.start();
            
        } catch(IOException ie) { 
            System.out.println("Pipe Echo Error:"+ie); 
        }
    }

}

// Chú ý: Tạo 3 class trong cùng 1 project (PipedEcho)

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Tài liệu: Lập trình hướng đối tượng JAVA core dành cho người mới bắt đầu học lập trình [Click để xem]

# Khoá học online: Lập trình Java trong 4 tuần [Click để xem]

Giới thiệu về Class FileInfo - lập trình C#


Giới thiệu class FileInfo

FileInfo là một lớp cung cấp cho bạn những thao tác cơ bản đối với tập tin như tạo, sao chép, xóa, di chuyển và mở tập tin. Để sử dụng được lớp FileInfo bạn cần khai báo phần using System.IO vào đầu chương trình nguồn C# mà bạn viết.
Để sử dụng các phương thức cũng như thuộc tính của lớp FileInfo bạn cần khởi tạo đối tượng FileInfo cho nó.

Cú pháp : FileInfo = new FileInfo();

Ví dụ : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
Kí hiệu @ trong khai báo chuỗi path phía trên là giúp C# hiểu kí tư ‘/’ là một kí hiệu của đường dẫn.
Sau đây tôi xin giới thiệu các bạn một số phương thức và thuộc tính điển hình trong lớp FileInfo này.

Thuộc tính :
+ Exists : trả về giá trị true nếu tập tin khởi tạo trong lớp FileInfo tồn tại, và trả về giá trị False nếu ngược lại.

+ Attributes : trả về thuộc tính của tập tin trong lớp FileInfo mà bạn khởi tạo

Ví dụ : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
Console.WriteLine(file.Attributes.ToString());
Console.ReadLine();

+ CreationTime : trả về thời gian tạo ra tạo ra tập tin này

Ví dụ : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
Console.WriteLine(file.CreationTime.ToString());
Console.ReadLine();

+ Directory : trả về thư mục cha của tập tin

Ví dụ : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
Console.WriteLine(file.Directory.ToString());
Console.ReadLine();

+ DirectoryName : trả về đường dẫn đầy đủ của tập tin bắt đầu đi từ thư mục gốc

+ Extension : lấy phần mở rộng của tập tin

+ IsReadOnly : trả về true nếu tập tin thuộc dạng chỉ đọc, false nếu ngược lại

+ LastAccessTime : trả về thời gian lần cuối cùng file này được mở

+ LastWriteTime : trả về thời gian chỉnh sửa file lần cuối cùng

+ Length : trả về chiều dài của tập tin

+ Name : trả về tên của tập tin
Một số thuộc tính không có ví dụ các bạn đọc ví dụ trong phần trợ giúp Visual Studio hoặc bạn có thể xem ví dụ của một số thuộc tính mà tôi có ghi ở trên, các bạn chỉ cần sửa tên thuộc tính trong các ví dụ là xong.

Phương thức :

+ CopyTo(String) : sao chép tập tin hiện thời đến đường dẫn tập tin đích, tuy nhiên không cho phép ghi đè tập tin nếu tập tin nguồn tồn tại trong đường dẫn tập tin đích.

Ví du : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
file.CopyTo(@"D:\trinh.txt");

+ CopyTo(String, Boolean) : tương tự như phương thức trên nhưng có thêm giá trị boolean để xác định có cho phép ghi đè tập tin hay không

+ Delete : xóa tập tin

Ví dụ : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
file.CopyTo(@"D:\trinh.txt");
file.Delete();

+ MoveTo : di chuyên tập tin đến chỗ mới, có thể tùy chọn đổi tên tập tin đích

Ví dụ : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
file.MoveTo(@"E:\deptrai.txt");

+ Open(FileMode) : mở một tập tin với một chế độ đặc biệt

Ví dụ : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
file.MoveTo(@"E:\deptrai.txt");
file.Open(FileMode.Create);

+ ToString() : trả về đường dẫn đầy đủ của tập tin dưới dạng chuối

Ví du : string path = @"E:\test.txt";
FileInfo file = new FileInfo(path);
Console.WriteLine(file.ToString());
Console.ReadLine();

Trên đây tôi đã giới thiệu một số phương thức và thuộc tính cơ bản để các bạn sử dụng trong việc xử lý tập tin. Hẹn gặp lại các ban trong các bài tiếp theo.

<còn tiếp....>

>>> GAME CỰC ĐỈNH CHO MOBILE <<<

Lập trình viên (programmer) - Nghề thời thượng nhưng cần nỗ lực nhiều

"Thuyền trưởng" cho máy tính hay lập trình viên (LTV) đang là nghề thời thượng và hấp dẫn.
Nó có sức hút đặc biệt bởi "hình ảnh những cô gái chàng trai trí thức sáng sủa, ngồi trong phòng lạnh, lãnh lương cao và lướt net không tốn tiền". Bạn đã hoạch định tương lai cho mình chưa ? 

Hãy cùng tìm hiểu một chút về nghề được coi là "nghề của tương lai" này nhé.

Thế nào là nghề LTV? LTV là người thiết kế, xây dựng và bảo trì các chương trình máy tính (phần mềm) trên các công cụ lập trình, họ có thể tạo ra các chương trình mới , sửa lỗi hay nâng cấp chương trình đó để tăng tính hiệu quả của việc sử dụng máy tính. Người ta ví LTV là những người thợ "coding" - người ngồi gõ những dòng lệnh (code) trên máy tính, làm ra các phần mềm hoặc chỉnh sửa, phát triển nó dựa trên các công cụ lập trình. Thu nhập của một LTV cao hơn hẳn so với những nghề khác. LTV mới vào nghề cũng được khoảng 200$/tháng. Nếu có vài năm kinh nghiệm hoặc làm quản lý, họ sẽ được trả khoảng 700 - 1000$/tháng. Tuy nhiên mức thu nhập của nghề này ở Việt Nam vẫn còn bị coi là quá thấp so với các nước trên thế giới. 

Thách thức lớn LTV nói riêng và nhân lực ngành CNTT nói chung vẫn còn là thách thức lớn trong công cuộc CNH-HĐH đất nước. Nguồn nhân lực này thiếu nghiêm trọng về lượng và còn yếu về chất. Ngành CNTT hiện nay cần khoảng 50.000 nhân lực nữa mới có thể đáp ứng được nhu cầu của xã hội. Còn số lao động đã tốt nghiệp thì có tới 72% không có kinh nghiệm thực hành, 42% thiếu kĩ năng làm việc nhóm và đến 77,2% doanh nghiệp phải đào tạo lại nhân viên mới ( theo thống kê của Viện Chiến lược CNTT). Trong khi đó, chương trình đào tạo cử nhân mất quá nhiều thời gian cho các môn học đại cương nhưng lại đầu tư ít thời gian cho môn học chuyên ngành, cho sinh viên thực tập tại doanh nghiệp và dạy ngoại ngữ. Mặt khác, hiện nay Việt Nam chưa hình thành hệ thống chứng chỉ quốc gia về đào tạo CNTT để chuẩn hóa và liên thông đào tạo. Cơ sở vật chất, trang thiết bị phục vụ công tác đào tạo còn thiếu và nhanh lạc hậu. Do vậy chất lượng đào tạo nhân lực CNTT ở Việt Nam bị đánh giá là thấp so với các nước tiên tiến trong khu vực. 

Cơ hội vàng Vì CNTT được xem là đòn bẩy, là nền tảng để phát triển các ngành kinh tế khác nên PHó Thủ tướng CP Nguyễn Thiện Nhân đã khẳng định "việc đào tạo nguồn nhân lực CNTT là việc tối trọng trong thời điểm hiện nay, quyết định vận mệnh cho sự nghiệp phát triển của đất nước". Ngành CNTT của Việt Nam đã nhảy những bước tiến vươt bậc rút ngắn khoảng cách so với các nước trong khu vực và trên thế giới. Với tốc độ tăng trưởng 50%/năm, Việt Nam đang gây sức hút mạnh mẽ đối với nhiều nước phát triển. Các tập đoàn CNTT hàng đầu thế giới liên tục đến thăm Việt Nam và tìm kiếm cơ hội đầu tư. Nhiều đại gia như Samsung, Fujitsu, Foxconn,... đã triển khai xây dựng và hoạt động tại Việt Nam. Mặc dù còn nhiều bất cập nhưng chất lượng đào tạo đã bắt đầu được công nhận ở nhiều công ty nước ngoài. Việt Nam còn có tham vọng sẽ "xuất khẩu" lao động IT vào năm 2020. Với mức lương cao gần gấp đôi so với ngành khác, thị trường tuyển dụng nhân lực CNTT tại Việt Nam đang trở nên nóng bỏng. Các doanh nghiệp luôn trong tình trạng "săn đầu người" IT. Rất nhiều sinh viên vừa mới tốt nghiệp đã được các công ty, doanh nghiệp "đặt" trước. Thậm chí nhiều doanh nghiệp còn sẵn sàng tuyển dụng cả ứng viên chưa có kinh nghiệm về đào tạo lại. Còn dân IT thì rất hãnh diện khi thấy thị trường đang "phát điên lên vì họ". Nhu cầu lớn, thách thức lớn nhưng đây chính là cơ hội vàng cho các bạn làm nghề IT làm một cuộc bứt phá cho chính bản thân và cho đất nước.

Theo VietCNTT

Dự đoán 10 xu hướng công nghệ năm 2013


ICTnews - Năm 2013 sẽ xảy ra cuộc chiến trong công nghệ di động, xu hướng Internet of Things (IOT) cất cánh. Đó là hai trong 10 xu hướng công nghệ đáng chú ý sẽ diễn ra trong năm 2013 do Hội nghị Gartner Symnomium ITXpo 2012 dự báo.
Facebook Twitter 0 bình chọn Viết bình luận Lưu bài này

Đại diện của 7 doanh nghiêp Việt Nam bao gồm Ngân hàng VIB, Vietinbank, Ngân hàng MB, Marttime Bank, Tập đoàn VNPT, FPT, Công ty CP Công nghệ DTT đã tham dự Hội nghị này tại Australia từ ngày 12 đến 15/11/2012 vừa qua.

Cuộc chiến trong công nghệ di động

Theo Gartner dự đoán từ năm 2013, duyệt web từ mobile sẽ vượt qua PC và laptop truyền thống, sử dụng các ứng dụng trên mobile cũng đang dần phổ biến. Do vậy từ năm 2013 sẽ nổ ra trận chiến trên mobile của các công nghệ chạy trên các hệ điều hành Android, iOS, Windows phone. Việc các tổ chức quyết định ứng dụng trên những nền tảng nào hay các công ty công nghệ đầu tư vào phát triển các giải pháp dựa trên công nghệ nào cũng phụ thuộc rất nhiều từ kết quả của cuộc chiến trên di động này, mà kết quả quyết định sẽ sẽ phụ thuộc vào xu hướng của số đông người sử dụng.

Các ứng dụng trên di động và HTML 5

Các ứng dụng hiện nay thường phụ thuộc vào nền tảng hệ điều hành mà nó được phát triển. Đà phát triển nhanh của mobile sẽ nảy sinh nhu cầu có các ứng dụng chạy được trên tất cả các nền tảng, độc lập với thiết bị. HTML 5 đã được phát triển hứa hẹn sẽ giải quyết được vấn đề đó. HTML 5 hỗ trợ đa phương tiện như video, voice và tương tác tốt hơn, hạn chế sự can thiệp của bên thứ ba. Nhiều tính năng của HTML5 được xây dựng để hỗ trợ các thiết bị di động. Hiện HTML 5 đã cơ bản hoàn thiện nhưng chưa được đưa ra thành một chuẩn và các nhà phát triển trình duyệt đang nhanh chóng cập nhật và nâng cấp để hỗ trợ HTML 5.

Đám mây cá nhân

Khoảng năm 2014, điện toán đám mây cá nhân sẽ là đầu mối thông tin và các hoạt động của người dùng cá nhân, người sử dùng cá nhân sẽ dùng các thiết bị cá nhân khác nhau của mình để truy cập cuộc sống số (gồm tất cả các dữ liệu liên quan đến cá nhân như các tài liêu, chương trình tivi, ca nhạc, ảnh,… của mình thông qua đám mây cá nhân và có thể chia sẻ với mạng lưới bạn bè.

Internet cung cấp mọi thứ

Dữ liệu được sinh ra từ rất nhiều nguồn khác nhau, từ các hệ thống CNTT, các thiết bị vật lý như kiểm soát, các bộ cảm biến, GPS, các dữ liệu từ mạng xã hội,... Trước đây chưa có công nghệ nào có thể khai thác hiệu quả mối liên kết giữa các dữ liệu này. Nhưng hiện nay, với sự phát triển của Internet cho phép kết nối các dữ liệu này và các công nghệ phân tích xử lý dữ liệu mà đặc biệt là dữ liệu lớn. Các dữ liệu sẽ được khai thác, phân tích để phục vụ cho giao dịch đời sống và kinh doanh, khi đó thế giới của chúng ta sẽ là một thế giới được kết nối theo đúng nghĩa của nó. Ví dụ là người dùng có thể theo dõi với tình hình giao thông hiện tại, xe buýt đang ở địa điểm nào với thời gian thực.

Sự lai ghép giữa CNTT và điện toán đám mây

Hiện nay các tổ chức sử dụng điện toán đám mây (công cộng và tư nhân) để rút ngắn thời gian triển khai, giảm chi phí quản lý và vận hành. Tuy nhiên bên cạnh đó các tổ chức vẫn phải duy trì các hệ thống IT truyền thống do tính đặc thù, các cam kết về dịch vụ và các quy định chính sách của tổ chức. Do vậy hai mô hình IT truyền thống và Cloud vẫn cần song song tồn tại, các tổ chức sẽ cần cân bằng giữa việc duy trì các hệ thống CNTT truyền thống đồng với việc giảm chi phí khi sử dụng các hệ thống trên cloud.

Chiến lược dữ liệu lớn

Dữ liệu lớn là một khái niệm nói đến khối lượng dữ liệu rất lớn, có tốc độ sinh ra cực nhanh và sinh ra từ nhiều nguồn khác nhau (như mạng xã hội, các thiết bị vật lý, không giống như dữ liệu truyền thống là được tạo ra bởi tổ chức hoặc một số nguồn nhất định) và bao gồm cả dữ liệu có cấu trúc và không có cấu trúc.

Phân tích hành vi

Hiện nay là thời điểm mà năng lực và chi phí có thể cho phép thực hiện phân tích và giả lập cho các hoạt động trong kinh doanh, từ khối lượng dữ liệu lớn . Việc này không chỉ được thực hiện bởi các hệ thống trong Data Center mà các thiết bị di động phải có khả năng truy cập và có khả năng thực hiện các phân tích, cho phép sử dụng sự tối ưu hóa và giả lập ở bất cứ thời gian nào và bất cứ đâu.

Công nghệ Xử lý ngay trong bộ nhớ trong

Với sự xuất hiện và phát triển của đám mây, dữ liệu lớn,… việc phải xử lý khối lượng dữ liệu lớn và tốc độ nhanh đã đặt ra vấn đề đối với bộ nhớ trong (In-Memory Computing - IMC). Công nghệ IMC sẽ lưu trữ toàn bộ các dữ liệu và tiến hành xử lý, phân tích ngay trong bộ nhớ trong, thay vì lưu trong các cơ sở dữ liệu quan hệ và chỉ xử lý theo lô (Batch processing). Việc xử lý theo lô hiện nay mất hàng tiếng đồng hồ và nếu sử dụng công nghệ In-Memory Computing chỉ mất một vài phút hoặc một vài giây, các kết quả được đưa ra với thời gian thực hoặc gần thời gian thực. Hiện SAP đã phát triển sản phẩm giải pháp gọi là High-Speed Analytical Appliance (HANA), sử dụng các công nghệ nén dữ liệu phức tạp để xử lý ngay trong bộ nhớ trong (RAM).

Hệ sinh thái tích hợp

Hiện nay nhiều tổ chức đang sử dụng thiết bị máy chủ (Server applicance) được cài đặt sẵn phần cứng và giải pháp giúp họ tránh khỏi quá trình triển khai và tích hợp phức tạp và giảm các công sức quản lý. Tuy nhiên việc sử dụng Server appliance cũng có hạn chế khi tổ chức cần thêm các yêu cầu, chức năng mới và các hãng công nghệ vẫn tiếp tục đưa ra các sản phẩm mới để kiểm soát được các open stack của họ và tối đa hóa lợi nhuận.

Hiện nay đang xuất hiện một xu hướng mới là Virtual Appliance (thiết bị ảo), theo đó các nhà cung cấp giải pháp có thể cung cấp các giải pháp đầy đủ bao gồm: Từ phần mềm tới hạ tầng phần cứng tới khách hàng trong môi trường ảo, khách hàng không cần có thiết bị phần cứng vật lý nào. Theo Gartner dự đoán Virtual Appliance sẽ phát triển mạnh trong vòng 5 năm tới, tuy nhiên nó sẽ không hoàn toàn thay thế cho Physical Appliance mà sẽ là một lựa chọn khác hoặc kết hợp vì lý do bảo mật, các yêu cầu đặc thù về phần cứng….

Kho ứng dụng doanh nghiệp

Do sự phát triển mạnh của các thiết bị di động, hiện nay nhiều tổ chức cho phép các nhân viên của mình làm việc qua thiết bị di động, sử dụng các ứng dụng trên Internet như Apple Store, Google Store hoặc ứng dụng do tổ chức đó tự phát triển theo yêu cầu và đặc thù của nghiệp vụ kinh doanh… Vấn đề đặt ra là làm thế nào các tổ chức có thể quản lý các ứng dụng nào cho phép nhân viên của mình sử dụng trong môi trường làm việc, phân quyền, quản lý truy cập và đảm bảo bảo mật. Hiện nay nhiều hãng công nghệ đã cung cấp các giải pháp và dịch vụ kho ứng dụng doanh nghiệp, cho phép tổ chức thiết lập một kho ứng dụng cho riêng mình có chức năng giống như Apple store hay Google Stores. Hiện có rất nhiều hãng công nghệ đã phát triển các giải pháp và dịch vụ giúp các tổ chức có thể làm được điều này như AirWatch, , Appcentral, Apperian, …

Đức Quyền