For the client I work for, there is a standard in which they require that the data layer of the new applications be wrapped in a web service and place the machine separately from where the business layer will be located. Can someone tell me what are the benefits of this? It seems to me that this causes more problems than it solves:
I assume this is potentially due to security issues (where presentation machines are exposed to the Internet and data-tier machines are not); however, I cannot figure out how safer it is than connecting directly to the database: the account in the database should not have more access than the web service shell.
Did I miss something?
I think the reason is the same as for transferring the domain and business logic to stored procedures. Provide secure access to data for several applications and clients running on different platforms, while data integrity checking and other rules are there at the data level.
, . , .
, .
, , - , , . , 3 -, , "" "" 3 , "" -. , DAL ( ).
"" . - (, ..), , , - .
, DAL/BLL/UI (, DLL ) , /.
- - -, - . -, , , -, ( ala ).
, . . , , , , . , . , - , .
, , "" . -, ( -), , "-", -, "" .
, , , , , - -, , .
, -, .
( , , ), (, JDBC, ODBC,...). , -.
-, , . -, , , . .
- , . , - . . webservice , , ( ), , , , .. ( , ).
, JDBC/ODBC . - - ( ).
, - - COBOL.
- Database Node | (database access protocol) - Data Access Layer/Business Logic Layer Node | (web services/RMI/CORBA/other protocol) - Presentation Layer Node
- DMZ, BLL/DAL (node). - " ". DAL- -, node. - (Java,.NET, - ).
So it looks like you have the Web and Business logic on one server and the data access code on the second server. This is unusual since business logic is typically separated from the web server by a data access code on a separate server. The advantage of this is that all your code logic (business) will live in a protected area (and not on a public web server) with a data access code. Your existing web services will then expose the business logic API, not just the data access code.
Source: https://habr.com/ru/post/1719389/More articles:why not use a Java start instead of other RIA frameworks? - javaDecryption using AES and CryptoAPI? When do you know KEY / SALT - c ++Objective-C: high level language? - objective-cBubble event and onblur event - javascriptKills the work of Oracle. 10 g - oracleReplace MergeFields in a Word 2003 document and keep the style - c #jQuery getting the last index of an input field - jqueryFinding errors after moving SVN files - svnFactory method signature for aggregate root - method-signatureAdd coupled pair to PHP array - arraysAll Articles