Page 186 -
P. 186

6.4   Application architectures  169


                                       4.  Finally, the lowest layer, which is built using a commercial database manage-
                                          ment system, provides transaction management and persistent data storage.

                                         Information and resource management systems are now usually web-based systems
                                       where  the  user  interfaces  are  implemented  using  a  web  browser.  For  example,
                                       e-commerce systems are Internet-based resource management systems that accept elec-
                                       tronic orders for goods or services and then arrange delivery of these goods or services
                                       to the customer. In an e-commerce system, the application-specific layer includes addi-
                                       tional functionality supporting a ‘shopping cart’ in which users can place a number of
                                       items in separate transactions, then pay for them all together in a single transaction.
                                         The organization of servers in these systems usually reflects the four-layer
                                       generic model presented in Figure 6.16. These systems are often implemented as
                                       multi-tier client server/architectures, as discussed in Chapter 18:


                                       1.  The web server is responsible for all user communications, with the user inter-
                                          face implemented using a web browser;

                                       2.  The application server is responsible for implementing application-specific
                                          logic as well as information storage and retrieval requests;
                                       3.  The database server moves information to and from the database and handles
                                          transaction management.


                                         Using multiple servers allows high throughput and makes it possible to handle
                                       hundreds of transactions per minute. As demand increases, servers can be added at
                                       each level to cope with the extra processing involved.



                                6.4.3 Language processing systems

                                       Language processing systems translate a natural or artificial language into another
                                       representation of that language and, for programming languages, may also execute
                                       the resulting code. In software engineering, compilers translate an artificial program-
                                       ming language into machine code. Other language-processing systems may translate
                                       an XML data description into commands to query a database or to an alternative
                                       XML representation. Natural language processing systems may translate one natural
                                       language to another e.g., French to Norwegian.
                                         A possible architecture for a language processing system for a programming lan-
                                       guage is illustrated in Figure 6.18. The source language instructions define the pro-
                                       gram to be executed and a translator converts these into instructions for an abstract
                                       machine. These instructions are then interpreted by another component that fetches
                                       the instructions for execution and executes them using (if necessary) data from the
                                       environment. The output of the process is the result of interpreting the instructions
                                       on the input data.
   181   182   183   184   185   186   187   188   189   190   191