Remote Data Service - Dịch vụ dữ liệu từ xa Qua Internet

Liên hệ QC

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,421
Được thích
4,033
Giới tính
Nam
Tương tự như chủ đề sau nhưng Tôi tách ra làm 2 chuyên đề khác nhau cho tiện quản lý và hổ trợ ai đó sử dụng tránh sự nhầm lẫn trong hỏi và trả lời không đáng có


1/ WebServer.dll được thiết kế cho ai đó vận dụng viết máy chủ và máy khách trên bất cứ ngôn ngữ lập trình nào ... hay trên VBA ta cũng sử dụng viết máy chủ máy khách tốt thông qua các hàm API dựng sẳn Áp dụng cho máy chủ sử dụng hàm API là: StartServer hay InitializeServer

2/ ServerServices.exe Tương tự như WebServer.dll nhưng nó hoàn toàn tư động chạy máy chủ theo dịch vụ Services của Windows thay thế cho 2 hàm StartServer hay InitializeServer

Hướng dẫn sử dụng ServerServices.exe

1/ Bạn phải có quyền Admin trên PC đó
2/ Copy File ServerServices.exe vào đâu đó trên PC thì tuỳ thích

3/ Chạy Run As chọn Yes xác nhận với Windows
4/ Khởi động lại PC và sử dụng ( nếu không khởi động thì vào dịch vụ Services của Windows khởi động lại nó lên là OK )

5/ sau khi đăng ký sử dụng thành công mà thay đổi Folder lưu nó thì thực hiện lại từ mục số 1
6/ trong một số trường hợp khi Windows Update thì dịch vụ ngừng hoạt động thì ta tiến hành thực hiện lại như ban đầu
7/ khi khởi chạy ServerServices.exe thì nó sẻ lưu vào cùng path là file Services.log ghi thông tin IP và Port
8/ Mặc định khi khởi chạy nó sẻ ping IP public trước nếu ta đã NAT Port và IP public nếu không thành công thì nó lắng nghe trên IP LAN
9/ Nếu ai đó muốn ổn định sử dụng trong mạng LAN thì nên Set IP LAN là IP tĩnh cho tiện kết nối các máy trong Mạng LAN


Nên Sử dụng hệ thống 64 bít:

1/ Máy tính và RAM nay quá bèo nên khuyên dùng Windows 64 bít

2/ Tôi thiết kế ServerServices.exe là 64 bít để tận dụng tối đa sử dụng bộ nhớ RAM cho 64 bít

khi máy chủ chạy nhiều luồng khác nhau từ phía các máy khách trên Internet truy xuất dữ liệu từ xa, Downloads, Uploads, Tìm kiếm File - Folder Qua Internet ... 2 chiều qua lại liên tục nếu ta sử dụng hệ thống 32 bít thì bị giới hạn phân bổ bộ nhớ RAM rất ít vì vậy tốc độ truy xuất qua lại máy chủ qua máy khách và máy khách qua máy chủ sẻ hạn chế khi nhiều máy cùng truy xuất

Hướng dẫn phía máy khách


1/ Cách truy xuất dữ liệu từ xa, Downloads, Uploads, Tìm kiếm File - Folder Qua Internet thực hiện theo chỉ dẫn link mục số 1

2/ Trên VBA ta có thể sử dụng ADODB tự viết hàm sử dụng để đọc và ghi dữ liệu từ xa tốt nhưng Tôi không chỉ dẫn chi tiết lên đây ... mà chỉ gợi ý ra đó nếu ai đó có khả năng dò là ra thôi ( không cần sử dụng API trong WebServer.dll)
3/ Nếu mục số 2 không dò ra thì sử dụng API trong hàm GetRs của WebServer.dll là hàm chính kết nối đọc và ghi dữ liệu từ xa

4/ Khi máy chủ kết nối tới các File liên tục để tăng tốc Tôi tạo cho nó 1 chuỗi kết nối duy nhất và liên tục nên các file đã kết nối phía máy chủ ta mở lên sẻ báo tình trạng file đang sử dụng VD như Access sẻ có hình sau

1702195531229.png

Còn Excel sẻ báo tình trạng file đang sử dụng ( với mục đích tăng tốc duy trì kết nối không đóng và mở liên tục )

5/ Khi tắt máy tính hay dừng Services thì tự động giải phóng mọi kết nối trước đó


6/ Khi bạn đang mở File Excel hay file bất kỳ thì bạn vẫn có thể Downloads hay Uploads chính nó mà không tạo ra lỗi
( Tóm lại có thể Downloads hay Uploads file đang sử dụng từ máy chủ hay máy khách )

7/ để tăng tốc quá trình vận chuyển File Downloads hay Uploads ... Tôi đã nén file lại trước khi vận chuyển qua Internet xong khi nhận sẻ tự động giải nén nó ra ...

VD: 1 file khoãng 25 MB khi nén lại chỉ còn khoãng 2 MB Vì vậy tốc độ vận chuyển file qua Internet sẻ nhanh lên đáng kể

8/ File Downloads phía máy chủ mặc định lưu vào Folder Downloads có trên PC ( nếu Folder Downloads đã Move sang D:\Downloads thì nó tự hiểu lưu vào đó )
1702213518280.png
9 / Services.exe sẻ chạy hoàn toàn tự động khi ta mở máy tính lên và dừng khi ta rút điện ra ( Tắt PC )
Vì vậy mọi vấn đề mô tả phía trên sẽ chạy ngầm hoàn toàn tự động mà không ảnh hưởng tới các tác vụ khác đang sử dụng trên PC ... Vì vậy Tôi khuyên sử dụng hệ thống 64 bít để nhận sự hổ trợ tốt nhất khi sử dụng bộ nhớ RAM được phân bổ cho ứng dụng chạy trên Windows 64 bít)


10 / đính kèm file ( Services.exe_ 64 bit sử dụng cho Windows 64 bit ) cho ai đó thích thì dùng và có mong muốn điều chỉnh gì cứ nêu nếu phù hợp tôi sẽ viết lại

ai quan tâm có thể tải trên github.com

 
Lần chỉnh sửa cuối:

Remote Data Service - Dịch vụ dữ liệu từ xa​

Cơ bản đã hoàn thiện và chuyển lên kho lưu trữ Github ai quan tâm có thể tải về sử dụng Free không giới hạn

quá trình sử dụng phát sinh lỗi hay có nhu cầu điều chỉnh thì cứ mô tả chi tiết tại chủ đề này ... Tôi xem xét nếu xét thấy phù hợp và khả năng có thể

Tôi sẻ viết lại theo yêu cầu ...
 
Lưu chủ đề sau vào đây khi nào rảnh Tôi mở NAT Port + IP public xong liên kết truy xuất dữ liệu từ Web Server vào Google Sheet Xem sao

Nguyên lý nó gần như nhau thôi


Lưu luôn mã bài số 2 vào đây luôn cho tiện khi cần tra cứu và tham khảo _)()(---=0--=0--=0

Mã:
function onOpen() {

var spreadsheet = SpreadsheetApp.getActive();

var menuItems = [
    {name: 'Lấy dữ liệu', functionName: 'readData'}
];
spreadsheet.addMenu('SQLServer', menuItems);
}


var address = '171.244.39.128'; //IP của bạn
var user = 'AnhDom';
var userPwd = '1234!@#$GPe';
var db = 'Test';

var dbUrl = 'jdbc:sqlserver://' + address + ';databaseName=' + db;


function readData() {
var conn = Jdbc.getConnection(dbUrl, user, userPwd);


var stmt = conn.createStatement();

var results = stmt.executeQuery('SELECT * FROM [dbo].[tblTest]');
var metaData=results.getMetaData();
var numCols = metaData.getColumnCount();

var sheet = SpreadsheetApp.getActiveSheet();



sheet.clearContents();

var arr=[];

for (var col = 0; col < numCols; col++) {
  arr.push(metaData.getColumnName(col + 1));
}

sheet.appendRow(arr);


while (results.next()) {
  arr=[];

  for (var col = 0; col < numCols; col++) {

   arr.push(results.getString(col + 1));
  }
sheet.appendRow(arr);

}

results.close();
stmt.close();

sheet.autoResizeColumns(1, numCols+1);


}
 
Lần chỉnh sửa cuối:
Có lẻ Tôi sẻ bổ sung thêm hàm vào ServerServices.exe để hổ trợ quản lý máy chủ cho PC tốt hơn

1/ ghi log lịch sử và thông tin máy khách truy xuất máy chủ vào file . log theo từng ngày

2/ Tạo danh sách IP máy khách cần thiết phải chặn lại vào file BlockedIPList.log khi cần thiết

3/ Phòng chống tấn công máy chủ khi máy khách chạy vòng lặp tạo ra 1000 kết nối tới máy chủ sẻ gây ra tình trạng quá tải

Kiểm soát giới hạn cho phép vào file AttackThresholdCount.log ... VD trong file này ghi là 900 thì máy khách chỉ thực hiện trong giới hạn đó

nếu vượt giới hạn trên sẻ chặn IP máy khách vào file BlockedIPList.log
...

Cơ bản 1 máy chủ Web Server cần thiết phải có là như vậy ...
xong thong thả bổ sung các hàm bảo vệ máy chủ tốt hơn sau ...
phòng chút nào hay chút đó còn hơn là bỏ ngỏ là điều không tốt lắm --=0--=0--=0_)()(-
 
Lần chỉnh sửa cuối:
Cơ bản code phòng thủ ngăn chặn tấn công máy chủ Web Server thành công ...

Giới hạn cho phép số lần kết nối Máy khách tới Máy chủ trong File AttackThresholdCount.log ...

Nếu vượt quá giới hạn x thì máy chủ tự động ngăn chặn ngay lập tức và ghi IP máy khách vào File BlockedIPList.log

Như vậy chỉ có quản lý máy chủ mới xử lý cho Máy khách kết nối tiếp hay bỏ qua là tuỳ người quản lý

dong chơi vui vẻ thử nghiệm tiếp khi nào ổn và xét thấy ok là Úp thôi ! ''''''''''''''''''

1702886778122.png

Kèm theo ghi log lịch sử Máy khách đăng nhập truy xuất trên Máy chủ theo ngày ...
Hổ trợ quản lý và truy vết tốt hơn trong trường hợp cần thiết...

1702888902781.png
 
Lần chỉnh sửa cuối:
1705803326566.png

Sẽ thiết kế AddIns TaskPane hổ trợ truy xuất dữ liệu, File và Folder qua WebServer
 
Lần chỉnh sửa cuối:
Thời gian tới Rảnh tôi sẻ bổ sung thêm AddIns TaskPane WebServer Client cho chủ đề này ...
Cho những Bạn nào không biết lập trình nhưng chỉ biết bấm chuột là sử dụng tốt ..?!

1/ Truy xuất dữ liệu File Excel và Access trên máy chủ ở bất cứ Folder nào khi máy chủ sử dụng ServerServices.exe

2/ Tổng hợp các Sheet theo File với Tuỳ chọn SheetName hay TableName cho Access

3/ Tổng hợp tất cả các Sheet có trong File áp dụng cho Excel và tất cả các TableName Áp dụng cho Access

4/ Tương tác Downloads hay Uploads File từ máy khách sang máy chủ và ngược lại

5/ Hổ trợ trình tạo SQL cơ bản sử dụng cho việc truy xuất dữ liệu từ xa file Excel và Access

6/ Tìm kiếm Folder duyệt đệ quy hay không đệ quy ( Có lẽ bỏ duyệt đệ Quy cho Taskpane vì xx... )

7/ Tìm kiếm File duyệt đệ quy hay không đệ quy ( Có lẽ bỏ duyệt đệ Quy cho Taskpane vì xx ...)

8/ Mục số 6 và 7 nếu ai đó thích dùng thì trong WebServer.dll có sẳn hàm với tuỳ chọn False = Không đệ quy, hay True = đệ quy

9/ Kế hoạch phát triển mở rộng biến máy tính để bàn hay Latop thành máy chủ thao tác với File, Folder và truy xuất dữ liệu Từ xa qua Internet chạy đa tầng, đa dịch vụ thông qua giao diện WebServer

10/ đang thiết kế Form cho WebServer Taskpane Client làm sao:
Thân thiện, hài hoà, tiện ích và dễ sử dụng nhất cho ai đó không biết lập trình nhưng biết bấm Chuột vi tính là xong

Xem hình sơ bộ chưa hoàn chỉnh...

1705884146071.png
 
Lần chỉnh sửa cuối:
Đầu xuân năm mới ... thong thả và thư giãn chơi cho vui thôi... nếu nổi gió Tôi sẽ viết úp lên một hàm nhỏ gọi hàm Macro VBA từ xa qua Internet
( Nhờ Em ChatGPT hổ trợ bộ khung hàm và nguyên lý cơ bản đã xong .....................................--=0)

xong từ máy chủ mở File DataServer.xlsb lên thì các máy có trong Internet nhập dữ liệu chung vào File DataServer.xlsb trên Server theo hàm đã viết trong file DataServer.xlsb

1/ Hàm viết trong file DataServer.xlsb trên máy chủ do người dùng tự viết = VBA với các tham số tuỳ thích
( tham số biến thiên Tối đa từ 0 đến 30 tham số )

2/ xong từ máy khách gọi hàm truyền các tham số từ máy khách vào từ mục số 1 nhận tham số ghi dữ liệu vào chính file Excel đó

3/ Tạm keo bảo mật code VBA trên máy chủ vậy ... máy khách chỉ sử dụng hàm trung gian xong nhập liệu lên máy chủ

vậy xem như xong hàm nhập liệu từ xa qua Internet vào File Excel sử dụng chung trên máy chủ:p
 
Lần chỉnh sửa cuối:
để sử dụng 1 File Excel dùng chung cho các máy khác nhau trong Internet cùng nhập dữ liệu vào khi file đang mở ...

Giờ này Tôi biến nó thành một hàm nho nhỏ trong bộ thư viện hàm WebServer mà thôi

Nó trở thành thứ trò chơi tiêu kiển vui vẽ à ... không có gì hay ho cả chỉ là ai đó chưa chịu khó cùng Em trợ lý ChatGPT dò cho vui thôi _)(#;::?>>
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom