100% found this document useful (1 vote)
12 views

An Introduction to Network Programming with Java 1st Edition Jan Graba - Download the ebook now and read anytime, anywhere

The document is a promotional material for the ebook 'An Introduction to Network Programming with Java' by Jan Graba, providing download links and additional recommended Java programming resources. It highlights the book's focus on practical network programming concepts and updates in the second edition, including new features from J2SE 5.0. The document also includes a detailed table of contents outlining various chapters covering essential topics in network programming.

Uploaded by

nwryhomar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
12 views

An Introduction to Network Programming with Java 1st Edition Jan Graba - Download the ebook now and read anytime, anywhere

The document is a promotional material for the ebook 'An Introduction to Network Programming with Java' by Jan Graba, providing download links and additional recommended Java programming resources. It highlights the book's focus on practical network programming concepts and updates in the second edition, including new features from J2SE 5.0. The document also includes a detailed table of contents outlining various chapters covering essential topics in network programming.

Uploaded by

nwryhomar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Visit ebookfinal.

com to download the full version and


explore more ebooks or textbooks

An Introduction to Network Programming with Java


1st Edition Jan Graba

_____ Click the link below to download _____


https://ebookfinal.com/download/an-introduction-to-network-
programming-with-java-1st-edition-jan-graba/

Explore and download more ebooks or textbook at ebookfinal.com


Here are some recommended products that we believe you will be
interested in. You can click the link to download.

Simply Java An Introduction to Java Programming


Programming Series 1st Edition James Levenick

https://ebookfinal.com/download/simply-java-an-introduction-to-java-
programming-programming-series-1st-edition-james-levenick/

Java An Introduction to Problem Solving and Programming


7th Edition Walter Savitch

https://ebookfinal.com/download/java-an-introduction-to-problem-
solving-and-programming-7th-edition-walter-savitch/

Introduction to Java Programming Comprehensive Version 6th


Edition Liang

https://ebookfinal.com/download/introduction-to-java-programming-
comprehensive-version-6th-edition-liang/

An introduction to programming with Mathematica 3rd


Edition Paul R. Wellin

https://ebookfinal.com/download/an-introduction-to-programming-with-
mathematica-3rd-edition-paul-r-wellin/
Wireless Java Programming with J2ME 1st Edition Yu Feng

https://ebookfinal.com/download/wireless-java-programming-
with-j2me-1st-edition-yu-feng/

Beginning Programming with Java For Dummies Third Edition


Barry Burd

https://ebookfinal.com/download/beginning-programming-with-java-for-
dummies-third-edition-barry-burd/

An Introduction to Stata Programming 2nd Edition


Christopher F. Baum

https://ebookfinal.com/download/an-introduction-to-stata-
programming-2nd-edition-christopher-f-baum/

Introduction to 3D game programming with DirectX 10 1st


Edition Frank D. Luna

https://ebookfinal.com/download/introduction-to-3d-game-programming-
with-directx-10-1st-edition-frank-d-luna/

Beginning Java 8 APIs Extensions and Libraries Swing


JavaFX JavaScript JDBC and Network Programming APIs 1st
Edition Kishori Sharan
https://ebookfinal.com/download/beginning-java-8-apis-extensions-and-
libraries-swing-javafx-javascript-jdbc-and-network-programming-
apis-1st-edition-kishori-sharan/
An Introduction to Network Programming with Java 1st
Edition Jan Graba Digital Instant Download
Author(s): Jan Graba
ISBN(s): 9780321116147, 0321116143
Edition: 1
File Details: PDF, 2.62 MB
Year: 2007
Language: english
An Introduction to Network
Programming with Java
Jan Graba

An Introduction to Network
Programming with Java
Jan Graba, BA, PGCE, MSc
Faculty of ACES
Sheffield Hallam University
UK

British Library Cataloguing in Publication Data


A catalogue record for this book is available from the British Library

Library of Congress Control Number: 2006923894

ISBN-10: 1-84628-380-9
ISBN-13: 978-1-84628-380-2

Printed on acid-free paper

© Jan Graba 2007

New and revised edition of An Introduction to Network Programming with Java published by Addison
Wesley, 2003, ISBN 0321116143

Sun, Sun Microsystems, the Sun Logo, the Java programming language, J2SE 5.0, and JavaBeans are
trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

Microsoft, Encarta, MSN, and Windows are either registered trademarks or trademarks of Microsoft
Corporation in the United States and/or other countries.

Apart from any fair dealing for the purposes of research or private study, or criticism or review, as
permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced,
stored or transmitted, in any form or by any means, with the prior permission in writing of the publish-
ers, or in the case of reprographic reproduction in accordance with the terms of licences issued by the
Copyright Licensing Agency. Enquiries concerning reproduction outside those terms should be sent to
the publishers.

The use of registered names, trademarks, etc. in this publication does not imply, even in the absence of
a specific statement, that such names are exempt from the relevant laws and regulations and therefore
free for general use.

The publisher makes no representation, express or implied, with regard to the accuracy of the information
contained in this book and cannot accept any legal responsibility or liability for any errors or omissions
that may be made.

Whilst we have made considerable efforts to contact all holders of copyright material contained in this
book, we may have failed to locate some of them. Should holders wish to contact the Publisher, we will
be happy to come to some arrangement with them.

Printed in the United States of America (SB)

9 8 7 6 5 4 3 2 1

Springer Science+Business Media, LLC

springer.com
Preface
The market in general-purpose Java texts is an exceptionally well populated one, as
can be seen from just a cursory examination of the programming language section of
any major bookshop. Surprisingly, the market in Java network programming texts is
a much less exploited one, featuring very few texts. It is true that the better general-
purpose Java texts provide some guidance on aspects of network programming, but
this almost invariably takes the form of rather superficial coverage, often relegated to
the end of the particular text and offering little more than an outline of the relevant
concepts. Even those few texts that are devoted specifically to network programming
in Java (and one or two are very good indeed) are rather thick tomes that are
probably of greatest use as reference texts. The truth of this assertion appears to be
reinforced by the absence of practical exercises from such texts.
When I began work on the first edition of this work, my declared intention was to
write a more 'streamlined' work that could serve equally as the core text on an
undergraduate module and as the quick, clear, 'no-nonsense' guide required by a busy
IT professional. Numerous examples and associated screenshots were provided, with
the examples 'stripped down' to their bare essentials in order to avoid overwhelming
the reader with too much detail. There is, of course, a level of detail below which it
is impossible to go without omitting some of the essentials and this led to a few
examples running over multiple pages. However, a conscious effort was made to
keep this to a minimum and to provide adequate program comments where this did
occur.
It was gratifying to find that the first edition was well received, but the time has
now come to replace it with an updated version. The changes in this second edition
fall into three categories:

• language changes, largely reflecting the significant changes introduced


by J2SE 5.0 (but also including one or two changes brought in by earlier
versions of Java);
• the updating of support software, particularly that used for Web
applications;
• new material, some related to the changes introduced by J2SE 5.0
(otherwise known as Java 5) and some extending earlier coverage.

A summary of the major elements of these changes is given below.

Language Changes
These mostly affect the example programs and the model solutions provided on the
associated Web site. However, there are occasional, passing references to some of
these new features in the main body of the text where it is considered
appropriate. The main language changes introduced are listed below.

• Replacement of the BufferedReader+InputStreamReader combination with


the single Scanner class, with consequent erradication of the need to use the
vi An Introduction to Network Programming with Java

type 'wrapper' classes to convert String input into numeric values (a major
improvement on the traditional method for obtaining input).
• Associated with the above, replacement of the BufferedReader+FileReader
combination with Scanner+File and that of the PrintWriter+FileWriter
combination with PrintWriter+File for serial disc file I/O.
• Replacement of the cumbersome addWindowListener(new
WindowAdapter... method for closing down GUI applications with
setDefaultCloseOperation(EXIT_ON_CLOSE). (This had been available
since J2SE 1.3, but had deliberately not been included in the original text
due to the earlier method being the one still used by most people at that
time.)
• The formatting of numeric output (particularly decimal output) via method
printf.
• The inclusion of generics in the declaration of Vectors, with the associated
'auto-boxing' and 'auto-unboxing' of elements.
• Introduction of the 'enhanced for' loop where appropriate.

Updating of Support Software


• Replacement of the JSWDK Web server with Apache Tomcat.
• Replacement of the JavaBean Development Kit (BDK) with the Bean
Builder for the testing of JavaBeans.
• Removal of the section on the now defunct HTMLConverter utility and
updating of the example browsers to Internet Explorer 6 and Firefox 1.5.

New Material
• Coverage of non-blocking I/O (introduced in J2SE 1.4), but retaining
coverage of the more traditional blocking I/O.
• The use of JDBC with the DataSource interface (also introduced in J2SE
1.4), but maintaining coverage of the more traditional DriverManager class
approach. The associated examples are no longer confined to the use of MS
Access, but have been extended to include MySQL. The significant
advantages to large-scale, commercial databases of using DataSource in
preference to DriverManager are made clear to the reader.
• As part of good practice, the above DataSource technique makes use of a
DAO (Data Access Object) to encapsulate access to the database, so that
data manipulation code is separated from business logic.

On the CD-ROM accompanying this text may be found the executable file for
installing J2SE 5.0 onto MS Windows platforms (available via free download from
the Sun site, of course). In addition to this, the CD contains all example code and
several media files (the latter for use with material in the final two chapters). Model
solutions for end-of-chapter exercises are accessible by lecturers and other
authorised individuals from the companion Web site (accessible via
http://homepage.ntlworld.com/jan.graba/javanet.html). Finally, there is a document
entitled Java Environment Installation that provides downloading and installation
Preface vii

instructions for those additional software elements for which permission for
inclusion on the CD was not forthcoming. This document also contains installation
instructions (and downloading instructions, which shouldn't be required) for J2SE
5.0 itself.
I sincerely hope that your programming experiences while using this text give you
some of the sense of satisfaction that I have derived from writing it. Of course, along
with such satisfaction comes the occasional (?) infuriating sense of frustration when
things just won't work, but you wouldn't want things to be too easy ... would you??
:-)

Jan
22nd Feb 2006
Contents

Chapter 1 Basic Concepts, Protocols and Terminology ......................... 1


1.1 Clients, Servers and Peers ................................................................. 1
1.2 Ports and Sockets .............................................................................. 2
1.3 The Internet and IP Addresses .......................................................... 3
1.4 Internet Services, URLs and DNS .................................................... 4
1.5 TCP ................................................................................................... 5
1.6 UDP .................................................................................................. 7

Chapter 2 Starting Network Programming in Java ............................... 9


2.1 The InetAddress Class ...................................................................... 9
2.2 Using Sockets ................................................................................... 12
2.2.1 TCP Sockets ..... .................................................................... 12
2.2.2 Datagram (UDP) Sockets ....................................................... 18
2.3 Network Programming with GUIs ................................................... 28
2.4 Downloading Web Pages ................................................................. 37
Exercises ................................................................................................... 41

Chapter 3 Multithreading and Multiplexing .......................................... 51


3.1 Thread Basics ................................................................................... 51
3.2 Using Threads in Java ..................................................................... 52
3.2.1 Extending the Thread Class ................................................... 53
3.2.2 Explicitly Implementing the Runnable Interface ...................... 57
3.3 Multithreaded Servers ..................................................................... 60
3.4 Locks and Deadlock ........................................................................ 65
3.5 Synchronising Threads .................................................................... 67
3.6 Non-Blocking Servers ..................................................................... 74
3.6.1 Overview ................................................................................. 74
3.6.2 Implementation ......................................................................... 76
3.6.3 Further Details .......................................................................... 86
Exercises .................................................................................................. 88

Chapter 4 File Handling .......................................................................... 91


4.1 Serial Access Files .......................................................................... 91
4.2 File Methods ................................................................................... 97
4.3 Redirection .................................................................................... 99
4.4 Command Line Parameters ............................................................ 101
4.5 Random Access Files ..................................................................... 102
4.6 Serialisation .................................................................................... 109
4.7 File I/O with GUIs ......................................................................... 113
4.8 Vectors ........................................................................................... 120
4.9 Vectors and Serialisation ............................................................... 123
Contents ix

Exercises ................................................................................................. 132

Chapter 5 Remote Method Invocation (RMI) ...................................... 136


5.1 The Basic RMI Process .................................................................. 136
5.2 Implementation Details .................................................................. 137
5.3 Compilation and Execution ............................................................ 141
5.4 Using RMI Meaningfully ............................................................... 143
5.5 RMI Security .................................................................................. 153
Exercises ................................................................................................. 156

Chapter 6 CORBA ................................................................................... 158


6.1 Background and Basics ................................................................... 158
6.2 The Structure of a Java IDL Specification ...................................... 159
6.3 The Java IDL Process ...................................................................... 163
6.4 Using Factory Objects ..................................................................... 173
6.5 Object Persistence ........................................................................... 184
6.6 RMI-IIOP ........................................................................................ 184
Exercises .................................................................................................. 186

Chapter 7 Java Database Connectivity (JDBC) ................................... 188


7.1 The Vendor Variation Problem ....................................................... 188
7.2 SQL and Versions of JDBC ............................................................ 189
7.3 Creating an ODBC Data Source ..................................................... 190
7.4 Simple Database Access .................................................................. 191
7.5 Modifying the Database Contents ................................................... 199
7.6 Transactions .................................................................................... 203
7.7 Meta Data ........................................................................................ 204
7.8 Using a GUI to Access a Database ................................................. 207
7.9 Scrollable ResultSets in JDBC 2.0 .................................................. 210
7.10 Modifying Databases via Java Methods ......................................... 215
7.11 Using the DataSource Interface ...................................................... 220
7.11.1 Overview and Support Software ............................................ 220
7.11.2 Defining a JNDI Resource Reference ....................................... 222
7.11.3 Mapping the Resource Reference onto a Real Resource ........... 223
7.11.4 Obtaining the Data Source Connection ..................................... 225
7.11.5 Data Access Objects .................................................................. 226
Exercises .................................................................................................. 232

Chapter 8 Servlets .................................................................................... 234


8.1 Servlet Basics .................................................................................... 234
8.2 Setting up the Servlet API ............................................................... 235
8.3 Creating a Web Application ............................................................ 237
8.4 The Servlet URL and the Invoking Web Page ................................ 239
8.5 Servlet Structure ............................................................................... 240
8.6 Testing a Servlet .............................................................................. 242
8.7 Passing Data .................................................................................... 242
x An Introduction to Network Programming with Java

8.8 Sessions ........................................................................................... 249


8.9 Cookies ............................................................................................ 260
8.10 Accessing a Database Via a Servlet ................................................ 268
Exercises .................................................................................................. 275

Chapter 9 JavaServer Pages (JSPs) ........................................................ 278


9.1 The Rationale behind JSPs ............................................................... 278
9.2 Compilation and Execution ............................................................. 279
9.3 JSP Tags .......................................................................................... 280
9.4 Implicit JSP Objects ........................................................................ 283
9.5 Collaborating with Servlets ............................................................. 285
9.6 JSPs in Action ................................................................................. 285
9.7 Error Pages ...................................................................................... 291
9.8 Using JSPs to Access Remote Databases ....................................... 294
Exercises .................................................................................................. 295

Chapter 10 JavaBeans ................................................................................ 297


10.1 Introduction to the Bean Builder .................................................... 298
10.2 Creating a JavaBean ....................................................................... 301
10.3 Exposing a Bean's Properties ......................................................... 307
10.4 Making Beans Respond to Events ................................................. 311
10.5 Using JavaBeans within an Application ........................................ 315
10.6 Bound Properties ........................................................................... 317
10.7 Using JavaBeans in JSPs ............................................................... 324
10.7.1 The Basic Procedure ........................................................ 324
10.7.2 Calling a Bean's Methods Directly .................................. 326
10.7.3 Using HTML Tags to Manipulate a Bean's Properties .... 330
Exercises .................................................................................................. 342

Chapter 11 Introduction to Enterprise JavaBeans ................................. 345


11.1 Categories of EJB ........................................................................... 345
11.2 Basic Structure of an EJB ............................................................... 346
11.3 Packaging and Deployment ............................................................ 349
11.4 Client Programs .............................................................................. 351
11.5 Entity EJBs ..................................................................................... 353

Chapter 12 Multimedia ............................................................................. 359


12.1 Transferring and Displaying Images Easily ................................... 360
12.2 Transferring Media Files ................................................................ 365
12.3 Playing Sound Files ....................................................................... 370
12.4 The Java Media Framework ........................................................... 372
Exercises ................................................................................................. 379

Chapter 13 Applets ................................................................................... 380


13.1 Applets and JApplets ...................................................................... 380
Contents xi

13.2 Applet Basics and the Development Process ................................. 381


13.3 The Internal Operation of Applets .................................................. 385
13.4 Using Images in Applets ................................................................ 392
13.4.1 Using Class Image ........................................................... 392
13.4.2 Using Class ImageIcon .................................................... 397
13.5 Scaling Images ................................................................................ 400
13.6 Using Sound in Applets .................................................................. 401
Exercises .................................................................................................. 405

Appendix A Structured Query Language (SQL) ............................. 406

Appendix B Deployment Descriptors for EJBs ................................ 411

Appendix C Further Reading ............................................................. 414

Index ............................................................................................................. 417


1 Basic Concepts, Protocols and Terminology

Learning Objectives
After reading this chapter, you should:
• have a high level appreciation of the basic means by which
messages are sent and received on modern networks;
• be familiar with the most important protocols used on networks;
• understand the addressing mechanism used on the Internet;
• understand the basic principles of client/server programming.

The fundamental purpose of this opening chapter is to introduce the underpinning


network principles and associated terminology with which the reader will need to be
familiar in order to make sense of the later chapters of this book. The material
covered here is entirely generic (as far as any programming language is concerned)
and it is not until the next chapter that we shall begin to consider how Java may be
used in network programming. If the meaning of any term covered here is not clear
when that term is later encountered in context, the reader should refer back to this
chapter to refresh his/her memory.
It would be very easy to make this chapter considerably larger than it currently is,
simply by including a great deal of dry, technical material that would be unlikely to
be of any practical use to the intended readers of this book. However, this chapter is
intentionally brief, the author having avoided the inclusion of material that is not of
relevance to the use of Java for network programming. The reader who already has a
sound grasp of network concepts may safely skip this chapter entirely.

1.1 Clients, Servers and Peers


The most common categories of network software nowadays are clients and servers.
These two categories have a symbiotic relationship and the term client/server
programming has become very widely used in recent years. It is important to
distinguish firstly between a server and the machine upon which the server is
running (called the host machine), since I.T. workers often refer loosely to the host
machine as 'the server'. Though this common usage has no detrimental practical
effects for the majority of I.T. tasks, those I.T. personnel who are unaware of the
distinction and subsequently undertake network programming are likely to be caused
a significant amount of conceptual confusion until this distinction is made known to
them.
A server, as the name implies, provides a service of some kind. This service is
provided for clients that connect to the server's host machine specifically for the
purpose of accessing the service. Thus, it is the clients that initiate a dialogue with
the server. (These clients, of course, are also programs and are not human clients!)
Common services provided by such servers include the 'serving up' of Web pages
2 An Introduction to Network Programming with Java

(by Web servers) and the downloading of files from servers' host machines via the
File Transfer Protocol (FTP servers). For the former service, the corresponding
client programs would be Web browsers (such as Netscape Communicator or
Microsoft Explorer). Though a client and its corresponding server will normally run
on different machines in a real-world application, it is perfectly possible for such
programs to run on the same machine. Indeed, it is often very convenient (as will be
seen in subsequent chapters) for server and client(s) to be run on the same machine,
since this provides a very convenient ‘sandbox’ within which such applications may
be tested before being released (or, more likely, before final testing on separate
machines). This avoids the need for multiple machines and multiple testing
personnel.
In some applications, such as messaging services, it is possible for programs on
users’ machines to communicate directly with each other in what is called peer-to-
peer (or P2P) mode. However, for many applications, this is either not possible or
prohibitively costly in terms of the number of simultaneous connections required.
For example, the World Wide Web simply does not allow clients to communicate
directly with each other. However, some applications use a server as an
intermediary, in order to provide ‘simulated ‘ peer-to-peer facilities. Alternatively,
both ends of the dialogue may act as both client and server. Peer-to-peer systems are
beyond the intended scope of this text, though, and no further mention will be made
of them.

1.2 Ports and Sockets


These entities lie at the heart of network communications. For anybody not already
familiar with the use of these terms in a network programming context, the two
words very probably conjure up images of hardware components. However,
although they are closely associated with the hardware communication links
between computers within a network, ports and sockets are not themselves hardware
elements, but abstract concepts that allow the programmer to make use of those
communication links.
A port is a logical connection to a computer (as opposed to a physical connection)
and is identified by a number in the range 1-65535. This number has no
correspondence with the number of physical connections to the computer, of which
there may be only one (even though the number of ports used on that machine may
be much greater than this). Ports are implemented upon all computers attached to a
network, but it is only those machines that have server programs running on them
for which the network programmer will refer explicitly to port numbers. Each port
may be dedicated to a particular server/service (though the number of available ports
will normally greatly exceed the number that is actually used). Port numbers in the
range 1-1023 are normally set aside for the use of specified standard services, often
referred to as 'well-known' services. For example, port 80 is normally used by Web
servers. Some of the more common well-known services are listed in Section 1.4.
Application programs wishing to use ports for non-standard services should avoid
using port numbers 1-1023. (A range of 1024-65535 should be more than enough for
even the most prolific of network programmers!)
Basic Concepts, Protocols and Terminology 3

For each port supplying a service, there is a server program waiting for any
requests. All such programs run together in parallel on the host machine. When a
client attempts to make connection with a particular server program, it supplies the
port number of the associated service. The host machine examines the port number
and passes the client’s transmission to the appropriate server program for
processing.
In most applications, of course, there are likely to be multiple clients wanting the
same service at the same time. A common example of this requirement is that of
multiple browsers (quite possibly thousands of them) wanting Web pages from the
same server. The server, of course, needs some way of distinguishing between
clients and keeping their dialogues separate from each other. This is achieved via the
use of sockets. As stated earlier, a socket is an abstract concept and not an element
of computer hardware. It is used to indicate one of the two end-points of a
communication link between two processes. When a client wishes to make
connection to a server, it will create a socket at its end of the communication link.
Upon receiving the client's initial request (on a particular port number), the server
will create a new socket at its end that will be dedicated to communication with that
particular client. Just as one hardware link to a server may be associated with many
ports, so too may one port be associated with many sockets. More will be said about
sockets in Chapter 2.

1.3 The Internet and IP Addresses


An internet (lower-case 'i') is a collection of computer networks that allows any
computer on any of the associated networks to communicate with any other
computer located on any of the other associated networks (or on the same network,
of course). The protocol used for such communication is called the Internet Protocol
(IP). The Internet (upper-case 'I') is the world's largest IP-based network. Each
computer on the Internet has a unique IP address, the current version of which is
IPv4 (Internet Protocol version 4). This represents machine addresses in what is
called quad notation. This is made up of four eight-bit numbers (i.e., numbers in
the decimal range 0-255), separated by dots. For example, 131.122.3.219 would be
one such address. Due to a growing shortage of IPv4 addresses, IPv4 is due to be
replaced with IPv6, the draft standard for which was published on the 10th of
August, 1998. IPv6 uses 128-bit addresses, which provide massively more
addresses. Many common Internet applications already work with IPv6 and it is
expected that IPv6 will gradually replace IPv4, with the two coexisting for a number
of years during a transition period.
Recent years have witnessed an explosion in the growth and use of the Internet. As
a result, there has arisen a need for a programming language with features designed
specifically for network programming. Java provides these features and does so in a
platform-independent manner, which is vital for a heterogeneous network such as
the Internet. Java is sometimes referred to as 'the language of the Internet' and it is
the use of Java in this context that has had a major influence on the popularisation of
the language. For many programmers, the need to program for the Internet is one of
the main reasons, if not the reason, for learning to program in Java.
4 An Introduction to Network Programming with Java

1.4 Internet Services, URLs and DNS


Whatever the service provided by a server, there must be some established protocol
governing the communication that takes place between server and client. Each end
of the dialogue must know what may/must be sent to the other, the format in which
it should be sent, the sequence in which it must be sent (if sequence matters) and, for
'open-ended' dialogues, how the dialogue is to be terminated. For the standard
services, such protocols are made available in public documents, usually by either
the Internet Engineering Task Force (IETF) or the World Wide Web Consortium
(W3C). Some of the more common services and their associated ports are shown in
Figure 1.1. For a more esoteric or 'bespoke' service, the application writer must
establish a protocol and convey it to the intended users of that service.

Protocol Port Nature of service


name number
Echo 7 The server simply echoes the data
sent to it. This is useful for testing
purposes.
Daytime 13 Provides the ASCII representation of
the current date and time on the
server.
FTP-data 20 Transferring files. (FTP uses two
ports.)
FTP 21 Sending FTP commands like PUT
and GET.
Telnet 23 Remote login and command line
interaction.
SMTP 25 E-mail. (Simple Mail Transfer
Protocol.)
HTTP 80 HyperText Transfer Protocol
(the World Wide Web protocol).
NNTP 119 Usenet. (Network News
Transfer Protocol.)

Table 1.1 Some well-known network services.

A URL (Uniform Resource Locator) is a unique identifier for any resource


located on the Internet. It has the following structure (in which BNF notation is
used):
<protocol>://<hostname>[:<port>][/<pathname>][/<filename>[#<section>]]

For example:

http://java.sun.com/j2se/1.5.0/download.jsp
Basic Concepts, Protocols and Terminology 5

For a well-known protocol, the port number may be omitted and the default port
number will be assumed. Thus, since the example above specifies the HTTP
protocol (the protocol of the Web) and does not specify on which port of the host
machine the service is available, it will be assumed that the service is running on
port 80 (the default port for Web servers). If the file name is omitted, then the server
sends a default file from the directory specified in the path name. (This default file
will commonly be called index.html or default.html.) The 'section' part of the URL
(not often specified) indicates a named 'anchor' in an HTML document. For
example, the HTML anchor in the tag

<A NAME="thisPlace"></A>

would be referred to as thisPlace by the section component of the URL.


Since human beings are generally much better at remembering meaningful strings
of characters than they are at remembering long strings of numbers, the Domain
Name System was developed. A domain name, also known as a host name, is the
user-friendly equivalent of an IP address. In the previous example of a URL, the
domain name was java.sun.com. The individual parts of a domain name don't
correspond to the individual parts of an IP address. In fact, domain names don't
always have four parts (as IPv4 addresses must have).
Normally, human beings will use domain names in preference to IP addresses, but
they can just as well use the corresponding IP addresses (if they know what they
are!). The Domain Name System provides a mapping between IP addresses and
domain names and is held in a distributed database. The IP address system and the
DNS are governed by ICANN (the Internet Corporation for Assigned Names and
Numbers), which is a non-profitmaking organisation. When a URL is submitted to a
browser, the DNS automatically converts the domain name part into its numeric IP
equivalent.

1.5 TCP
In common with all modern computer networks, the Internet is a packet-switched
network, which means that messages between computers on the Internet are broken
up into blocks of information called packets, with each packet being handled
separately and possibly travelling by a completely different route from that of other
such packets from the same message. IP is concerned with the routing of these
packets through an internet. Introduced by the American military during the Cold
War, it was designed from the outset to be robust. In the event of a military strike
against one of the network routers, the rest of the network had to continue to
function as normal, with messages that would have gone through the damaged router
being re-routed. IP is responsible for this re-routing. It attaches the IP address of the
intended recipient to each packet and then tries to determine the most efficient route
available to get to the ultimate destination (taking damaged routers into account).
However, since packets could still arrive out of sequence, be corrupted or even
not arrive at all (without indication to either sender or intended recipient that
6 An Introduction to Network Programming with Java

anything had gone wrong), it was decided to place another protocol layer on top of
IP. This further layer was provided by TCP (Transmission Control Protocol), which
allowed each end of a connection to acknowledge receipt of IP packets and/or
request retransmission of lost or corrupted packets. In addition, TCP allows the
packets to be rearranged into their correct sequence at the receiving end. IP and TCP
are the two commonest protocols used on the Internet and are almost invariably
coupled together as TCP/IP. TCP is the higher level protocol that uses the lower
level IP.
For Internet applications, a four-layer model is often used, which is represented
diagrammatically in Figure 1.1 below. The transport layer will often comprise the
TCP protocol, but may be UDP (described in the next section), while the internet
layer will always be IP. Each layer of the model represents a different level of
abstraction, with higher levels representing higher abstraction. Thus, although
applications may appear to be communicating directly with each other, they are
actually communicating directly only with their transport layers. The transport and
internet layers, in their turn, communicate directly only with the layers immediately
above and below them, while the host-to-network layer communicates directly only
with the IP layer at each end of the connection. When a message is sent by the
application layer at one end of the connection, it passes through each of the lower
layers. As it does so, each layer adds further protocol data specific to the particular
protocol at that level. For the TCP layer, this process involves breaking up the data
packets into TCP segments and adding sequence numbers and checksums; for the IP
layer, it involves placing the TCP segments into IP packets called datagrams and
adding the routing details. The host-to-network layer then converts the digital data
into an analogue form suitable for transmission over the carrier wire, sends the data
and converts it back into digital form at the receiving end.

Logical

Application Layer path Application Layer

Transport Layer (E.g., TCP) Transport Layer (E.g., TCP)

Internet Layer (IP) Internet Layer (IP)

Host-to-network layer

Figure 1.1 The 4-Layer Network Model

At the receiving end, the message travels up through the layers until it reaches the
receiving application layer. As it does so, each layer converts the message into a
form suitable for receipt by the next layer (effectively reversing the corresponding
process carried out at the sending end) and carries out checks appropriate to its own
Basic Concepts, Protocols and Terminology 7

protocol. If recalculation of checksums reveals that some of the data has been
corrupted or checking of sequence numbers shows that some data has not been
received, then the transport layer requests re-transmission of the corrupt/missing
data. Otherwise, the transport layer acknowledges receipt of the packets. All of this
is completely transparent to the application layer. Once all the data has been
received, converted and correctly sequenced, it is presented to the recipient
application layer as though that layer had been in direct communication with the
sending application layer. The latter may then send a response in exactly the same
manner (and so on). In fact, since TCP provides full duplex transmission, the two
ends of the connection may be sending data simultaneously.
The above description has deliberately hidden many of the low-level details of
implementation, particularly the tasks carried out by the host-to-network layer. In
addition, of course, the initial transmission may have passed through several routers
and their associated layers before arriving at its ultimate destination. However, this
high-level view covers the basic stages that are involved and is quite sufficient for
our purposes.
Another network model that is often referred to is the seven-layer Open Systems
Interconnection (OSI) model. However, this model is an unnecessarily complex one
for our purposes and is better suited to non-TCP/IP networks anyway.

1.6 UDP
Most Internet applications use TCP as their transport mechanism. Unfortunately, the
checks built into TCP to make it such a robust protocol do not come without a cost.
The overhead of providing facilities such as confirmation of receipt and re-
transmission of lost or corrupted packets means that TCP is a relatively slow
transport mechanism. For many applications (e.g., file transfer), this does not really
matter greatly. For these applications, it is much more important that the data arrives
intact and in the correct sequence, both of which are guaranteed by TCP. For some
applications, however, these factors are not the most important criteria and the
relatively slow throughput speed provided by TCP is simply not feasible. Such
applications include the playing of audio and video while the associated files are
being downloaded, via what is called streaming. One of the most popular streaming
technologies is called RealAudio. RealAudio does not use TCP, because of its large
overhead. This and other such applications use User Datagram Protocol (UDP).
UDP is an unreliable protocol, since:

• it doesn't guarantee that each packet will arrive;


• it doesn't guarantee that packets will be in the right order.

UDP doesn't re-send a packet if it is missing or there is some other error, and it
doesn't assemble packets into the correct order. However, it is significantly faster
than TCP. For applications such as the streaming of audio or video, losing a few bits
of data is much better than waiting for re-transmission of the missing data. The
major objective in these two applications is to keep playing the sound/video without
8 An Introduction to Network Programming with Java

interruption. In addition, it is possible to build error-checking code into the UDP


data streams to compensate for the missing data.
2 Starting Network Programming in Java

Learning Objectives
After reading this chapter, you should :
• know how to determine the host machine's IP address via a Java
program;
• know how to use TCP sockets in both client programs and server
programs;
• know how to use UDP sockets in both client programs and server
programs;
• appreciate the convenience of Java's stream classes and the
consistency of the interface afforded by them;
• appreciate the ease with which GUIs can be added to network
programs;
• know how to check whether ports on a specified machine are
running services;
• know how to use Java to render Web pages.

Having covered fundamental network protocols and techniques in a generic fashion


in Chapter 1, it is now time to consider how those protocols may be used and the
techniques implemented in Java. Core package java.net contains a number of very
useful classes that allow programmers to carry out network programming very
easily. Package javax.net, introduced in J2SE 1.4, contains factory classes for
creating sockets in an implementation-independent fashion. Using classes from
these packages (primarily from the former), the network programmer can
communicate with any server on the Internet or implement his/her own Internet
server.

2.1 The InetAddress Class


One of the classes within package java.net is called InetAddress, which handles
Internet addresses both as host names and as IP addresses. Static method getByName
of this class uses DNS (Domain Name System) to return the Internet address of a
specified host name as an InetAddress object. In order to display the IP address from
this object, we can simply use method println (which will cause the object's
toString method to be executed). Since method getByName throws the checked
exception UnknownHostException if the host name is not recognised, we must
either throw this exception or (preferably) handle it with a catch clause. The
following example illustrates this.
10 An Introduction to Network Programming with Java

Example
import java.net.*;
import java.util.*;

public class IPFinder


{
public static void main(String[] args)
{
String host;
Scanner input = new Scanner(System.in);

System.out.print("\n\nEnter host name: ");


host = input.next();
try
{
InetAddress address =
InetAddress.getByName(host);
System.out.println("IP address: "
+ address.toString());
}
catch (UnknownHostException uhEx)
{
System.out.println("Could not find " + host);
}
}
}
The output from a test run of this program is shown in Figure 2.1.

Figure 2.1 Using method getByName to retrieve IP address of a specified host.


Discovering Diverse Content Through
Random Scribd Documents
piano determinato a priori, ma procede a tentoni, per mille imprevisti
casi ed atti, fino a terminare, nei secoli V. e VI., con l’inaugurazione
di una vera e propria scuola di Stato.
Ma se la pratica è conseguente, le teoriche espresse dalle due età
sono l’una diametralmente opposta all’altra. Si voglia codesta
teorica, per il primo periodo della storia romana ritrovare tutta intera,
e in modo assoluto, nelle parole de La repubblica di Cicerone, là
dove si afferma che nelle buone tradizioni nazionali romane non
trovava posto alcun sistema di educazione pubblica ed uniforme per
tutti i fanciulli di nascita libera; [820] o si vogliano le parole di
Cicerone, come è forse più probabile, [821] interpretare con
discrezione e cautela maggiori del consueto, l’impero può in ogni
modo contrapporre ad esse una molto diversa teorica. Che, se
Costanzo II, in un documento ufficiale dirà, che il primo merito di un
governo e di un principe è quello ch’egli si conquista verso la
pubblica istruzione, [822] Simmaco, uno dei più grandi personaggi del
secolo IV. ribadirà, rivolgendosi al primo magistrato romano, che «la
prova della floridezza di uno Stato si desume dallo stanziamento di
cospicue retribuzioni ai pubblici docenti» [823].
Ci troviamo dunque, come si vede, in aere e dinnanzi a
concepimenti assai diversi. Per l’impero romano, lo Stato ideale è
quello che largisce a sue spese la pubblica istruzione; per la
repubblica, ogni paese civile poteva serenamente prescindere da
siffatte preoccupazioni.
Per quali vie s’era compiuta tanta rivoluzione? La risposta non riesce
difficile a chi con noi ha seguito, passo passo, lo svolgersi
dell’amministrazione scolastica dello Stato romano.
Questa parte della sua attività si esplica sotto tre forme: creazione di
scuole pubbliche ed ufficiali; regolamenti sull’istruzione municipale;
vigilanza sull’istruzione privata.
Quanto alle scuole di Stato, duplice fu la via, che noi abbiamo vista
seguire dal governo romano. Da un canto, esso istituisce delle
cattedre di discipline, preferibilmente attinenti all’insegnamento
superiore. Ciò avvenne dapprima nella capitale del mondo, nella
città regia per eccellenza, in Roma; poscia, nelle città più notevoli
per il loro passato, letterario e scientifico, e perciò più degne delle
cure imperiali, quale, ad esempio, Atene.
Tale istituzione non importava di necessità che lo Stato si arrogasse
il diritto della nomina del docente. In genere — almeno nel rito
esteriore — essa era lasciata al Consiglio municipale, cioè al senato
del luogo; importava bensì che lo Stato si addossasse l’onere dello
stipendio del docente. Ma insieme con questo procedimento l’impero
amò seguirne un altro. Esso preferì talvolta avocare a se stesso
determinati insegnamenti, designando una città come loro sede
officiale, imponendovi, più o meno rigorosamente, i suoi programmi,
facendone la depositaria responsabile, spesso liberandola da ogni
concorrenza. Fu il caso della facoltà giuridica di Berito con
Giustiniano e coi suoi predecessori, sin forse da Diocleziano. [824]
Questa volta siamo dinnanzi ad un’investitura morale, non già ad
una creazione ex novo di cattedre, e lo Stato rimane estraneo sia
alla nomina dei docenti, sia alla retribuzione dell’opera loro.
Fra l’una e l’altra forma di scuola di Stato, fra le due età, in cui
ciascuna viene incarnata, noi assistiamo al primo sorgere, su
modello appositamente scelto di una completa Università, che
raccoglie nel suo seno l’insegnamento delle varie discipline, ritenute
fondamentali e necessarie. È questa l’ora della fondazione
dell’Ateneo Costantinopolitano, e sarà anche questo il momento, in
cui l’autorità del potere centrale, così solennemente affermatasi,
libererà l’Università ufficiale da tutte le altre forme di insegnamento,
che fino allora le erano fiorite accanto, e ne darà a quella l’assoluto
monopolio. Ancora un altro secolo, infatti, e ciò che Teodosio II.,
integrando l’opera di Costantino I., aveva disposto per la sola
Costantinopoli, sarà da Giustiniano ripetuto per altre scuole o
cattedre dell’impero — private, municipali, imperiali — e
dell’organismo dell’istruzione dello Stato, saranno, pur
disciplinandole scrupolosamente, mantenute solo quelle parti, che il
governo riterrà opportuno mantenere.
Ma tanta operosità non riguarda tutte le forme dell’antico
insegnamento; l’istruzione elementare rimane ancora estranea a
ogni iniziativa dello Stato, e le cattedre, che questo curò e raccolse,
quali sedi di insegnamenti ufficiali, corrisposero invece alle sole
contemplate dal nostro insegnamento superiore e dal nostro
insegnamento medio di secondo grado.
Le discipline fondamentali — qua e là ce ne poterono essere anche
delle altre — oggetto del primo, furono la eloquenza greca e latina,
la filosofia, più tardi, la giurisprudenza; le discipline, oggetto
dell’insegnamento secondario superiore: la lingua e la letteratura
latina. E se, come taluno ha asserito, la denominazione di Università
non si attaglia perfettamente agli istituti d’istruzione pubblica, sorti in
Roma, in Atene, in Costantinopoli e nelle altre città, che quegli
insegnamenti raccolsero in un corpo unico, l’eccezione ha valore
sopra tutto, in quanto dei programmi di codeste scuole facevano
parte anche quelle discipline, che oggi costituiscono il nostro
insegnamento secondario superiore.
Ma la cura e la sorveglianza del governo centrale sulle scuole di
Stato non si limita a largire uno stipendio ai docenti, a raccogliere
questi ultimi in un istituto unico, a pareggiare, a quelle di fondazione
imperiale, alcune scuole, che tali non erano state, a coordinarne
l’opera, sia pure entro gli incerti confini, che abbiamo segnati.
Vedemmo, dall’esempio di Roma e di Costantinopoli, come lo Stato
fornisse i locali; ma esso curava ancora la disciplina degli studiosi, sì
che l’autorità, che oggi viene divisa fra il rettore dell’istituto, il corpo
accademico e l’autorità politica, veniva dal governo centrale
assegnata solo a quest’ultima. Era questa la conseguenza
necessaria dell’acefalia della scuola, ove, se c’erano degli
insegnanti, non c’era un ufficio direttivo. E noi vediamo che, sotto
Valentiniano I., nella mancanza dell’organo necessario per la
disciplina, le scuole venivano governate dal prefetto della città, in
Roma e — si può presumere — anche in Costantinopoli, e dalle altre
autorità provinciali più immediate, nelle quattro prefetture
dell’impero, come, più tardi, insieme con queste, dalle supreme
autorità ecclesiastiche del luogo. [825] Un dirigente d’istituto di
nomina imperiale non esiste, [826] e il collegio dei professori o non è
investito di alcun potere, o ne ha uno assolutamente subordinato, e
solo sussidiario, a quello dell’autorità civile e religiosa.
Ma tale delegazione all’autorità politica dei poteri disciplinari, che
non è un male, come potrebbe temersi, giacchè quella si limitava
esclusivamente a sorvegliare la parte più esteriore, e meno intima,
della condotta degli studenti, dipende anche dalla concezione
dell’insegnamento, che lo Stato romano ereditò — e mantenne
fedelmente — dalla repubblica. Per esso, fu l’insegnamento
un’attività liberissima tra le libere; per esso, l’insegnante dovea farsi
valere con la sua capacità; lo scolaro apprendere per il bisogno
intellettuale o professionale, che lo sospingeva [827]. Il fallo scolastico
non è quindi contemplato; esistono solo dei reati comuni, e di
reprimerli è, naturalmente, incaricata l’autorità civile o giudiziaria.
Questo è il fondo teorico della pratica seguita dall’impero romano in
fatto di disciplina scolastica. Va da sè che esso era troppo bello, per
tradursi senza alterazioni nella realtà; e, infatti, provvedimenti
speciali di questo o di quell’imperatore ne ombrarono la classica
purezza. Ma essi non riuscirono mai a intaccare vitalmente il
sistema, che rivivrà più tardi, attraverso i più celebri istituti
d’istruzione pubblica del Medioevo.

II.

Tali le norme, che regolarono le scuole di Stato. Ma queste non


furono, nel concetto, che i Romani ebbero della loro importanza,
paragonabili alle nostre scuole regie, secondarie e superiori. Per i
Romani, fino almeno a Giustiniano, la scuola di Stato fu un istituto di
lusso, una speciale degnazione del superiore governo verso
determinate città; fu una scuola modello, non la scuola ministra
quotidiana e ordinaria del sapere e della cultura. Quella invece, che,
per valor sociale, nel concetto degli uomini politici di quel tempo,
avrebbe potuto paragonarsi alle nostre, fu la scuola municipale, ed a
questa si deve la romanizzazione del mondo conquistato.
Delle sue sorti, vedemmo, il governo imperiale comincia ad
occuparsi fin da Antonino Pio. Quest’imperatore inscrive, per il
primo, fra le spese obbligatorie di parecchi Comuni dell’impero,
anche quella per il mantenimento di determinate cattedre, ed
autorizza altri, che lo chiedevano, ad aprire pubbliche scuole. E la
sua iniziativa è proseguita ininterrottamente fino all’ultima età. Il
governo imperiale investe ufficialmente i Consigli comunali della
nomina dei maestri, stabilisce appositi concorsi, li fa sorvegliare e, in
taluni casi, infligge, o fa infliggere loro, punizioni determinate e
perfino la destituzione [828]. Viceversa, impone ai Comuni dei privilegi
a favore dei maestri, non che l’esenzione dai carichi locali, e richiede
da essi la scrupolosa osservanza del pagamento degli stipendi [829].
Vi è un certo momento anzi — fu questo il biennio del governo di
Giuliano — in cui lo Stato giunge ad arrogarsi il diritto di conferma
delle nomine dei maestri municipali, di cui vuol controllare il merito
scientifico ed il valore morale. Ma, se questa particolare ingerenza
cessa con la morte di quel principe, lo Stato non consente mai che si
rallenti la sorveglianza dei Comuni sulle loro scuole, e sempre si
conduce come se pensasse che quelli non fanno che operare in
nome ed in rappresentanza del governo centrale [830].
Appunto per questo, esso crede talora di potere senz’altro nominare
direttamente gl’insegnanti comunali — è il caso di Proeresio a
Treviri, di Flavio e di Lattanzio a Nicomedia, di Eumenio ad
Augustodunum —; esso crede di poter fissare, ed imporre, la misura
degli stipendii — è il caso dell’ordinamento dato da Graziano
all’istruzione pubblica nelle Gallie —; esso crede di poter
direttamente destituire dei maestri, o sopprimere, sia pure
temporaneamente, delle scuole; così fanno Giuliano e Giustiniano.
Solo, da tanta cura, rimane, anche sotto l’impero, di bel nuovo,
esclusa ogni forma di istruzione primaria.
Verso l’istruzione privata le pretese, gli atteggiamenti, del governo
centrale sono assai più rimessi e modesti, nè le condizioni, in cui tale
forma d’istruzione suole in ogni tempo vivere, consentono che sia
fatto in modo diverso. Tutto l’insegnamento privato domestico fu
dunque libero da ogni sorveglianza e da ogni controllo. Anche
quando Giustiniano opererà i suoi tagli cesarei nell’organismo delle
scuole dell’impero, egli non colpirà che l’istruzione impartita
pubblicamente, e con lui, e dopo, perfino in Atene, l’insegnamento
domestico, se non prospererà, non cesserà di sopravvivere.
Non basta. Nella stessa istruzione privata, impartita pubblicamente,
lo Stato non cura, nè sorveglia, che una sola forma: l’istruzione
media e superiore a tipo classico, quella, che metteva capo alla così
detta scuola di grammatica, greca e latina, a quella di retorica, di
filosofia e delle restanti discipline, contemplate nel quadro dei
programmi scolastici consuetudinari.
Quasi tutte le altre specie di insegnamento, che non riguardavano le
discipline canonizzate dalla tradizione — come le scuole
professionali, le scuole cristiane, catechetiche, teologiche etc. —
rimangono estranee all’invadenza del governo centrale.
Ben diversamente procedevano le cose nei rispetti dell’istruzione
privato-pubblica di tipo classico. Giuliano vuole che gli insegnanti
abbiano la ratifica dei Consigli municipali e la propria. I successori si
contenteranno della prima soltanto, ma talora, per evitare una
spesso temibile concorrenza, seguiranno l’esempio di Teodosio II., e
preferiranno vietare in modo assoluto, sotto la minaccia di gravi
pene, ogni insegnamento pubblico-privato.
Ma, com’è nella sua natura, questa forma d’insegnamento, sfidò
anche allora, ogni controllo e contravvenne ad ogni divieto. Morto
Giuliano, si constata che l’impero è pieno di docenti di filosofia,
sprovvisti di autorizzazione, e, sotto Giustiniano, i volontari docenti di
giurisprudenza riescono ugualmente pericolosi sia per la loro
ignoranza come per il loro numero. [831]

III.
Ma chi voglia frugare in fondo ai criteri, che ispirarono lo Stato
romano nei riguardi dell’istruzione; chi voglia intenderne
compiutamente il principio animatore non può sottrarsi ad un’assai
significativa constatazione, che s’impone al confronto delle cure e
della sorveglianza, che lo Stato antico ebbe, ed esercitò, con quelle,
avute ed esercitate, dagli Stati moderni.
Noi ci occupiamo della scuola e crediamo di operare al suo effettivo
incremento, sovvenendola, o correggendola, nei suoi elementi
oggettivi e impersonali; l’impero romano si occupò sovra tutto
dell’elemento soggettivo, del maestro e dello scolaro, e fu
elevandone la condizione, materiale e morale, ch’esso credette
giovare alla scuola e agli studii. Perciò noi ritroviamo, fino dai primi
tempi dell’impero, quella copia di immunità dai pubblici carichi e di
altri privilegi, di cui ad ogni passo sono onorati gl’insegnanti —
persino, qualche volta, gli eterni dimenticati, i maestri elementari.
Perciò noi li vediamo, nelle costituzioni imperiali del IV. secolo,
parificati, in onorificenze, ai più grandi dignitari dello Stato. Perciò il
loro ufficio, riguardato dapprima con disdegno e con diffidenza, tocca
rimunerazioni elevatissime, come, ad esempio quella assegnata ad
Eumenio in Gallia. Perciò, poco a poco, i maestri divengono gli
ispiratori della politica imperiale, e si dànno dei lunghi periodi, come
sotto Marco Aurelio, sotto Alessandro Severo, sotto Giuliano, in cui
essi possono ben dirsi i principi dello stato, dopo l’unico principe
effettivo. Perciò, dal II. secolo ai primi anni del IV., si suscita, e
fiorisce, quell’ampia distesa di istituzioni alimentari, che costituiranno
il terreno fecondatore della istruzione pubblica in questa età, nella
quale, allorchè non infieriranno eventi contrari, la coltura pubblica
raggiungerà il massimo della sua diffusione. Perciò, sin dal III.
secolo, noi vedremo assegnati dei privilegi e delle borse di studio ai
giovani studenti di questa o di quella disciplina, o di tutte le discipline
insieme. Conforme a tali criterii, conforme cioè al criterio che il bene
della scuola non si raggiunge con riforme di programmi e di
ordinamenti scolastici, ma con il merito e l’eccellenza dei maestri,
con il benessere degli scolari, l’insegnamento rimane libero da ogni
imposizione ufficiale. Il controllo dello Stato, o che lo Stato richiede
dai Comuni, si limita alla verifica della capacità, della diligenza e
della dignità della vita degl’insegnanti. Tutto il resto, programmi,
orarii, metodi, tutto, nello Stato antico, è di esclusiva spettanza del
maestro. E come l’insegnante, esente da ogni imposizione, è
responsabile solo degli effetti dell’opera sua, così manca ogni
responsabilità collettiva ed ogni forma di accordo didattico fra i vari
docenti di un unico istituto. Le scuole dell’antichità, che non
conferivano diplomi o attestati, che non conoscevano l’umiliante
soggezione degli esami, non avevano neanche bisogno di imporre e
di promuovere con artifici la diligenza dei maestri e l’efficacia del loro
insegnamento. La scuola allora poteva bene avere un’anima, e fu
vero peccato che, per la mancanza di questa intima virtù, che non
infondono nè la scienza, nè l’ufficio, ma l’indole personale dei
maestri e la vita storica circostante; per questa deficienza spirituale,
che tanto faceva fremere Giuliano, i docenti abbiano, da così grande
libertà, ritratto una copia sempre minore di vantaggi effettivi.
Venne l’ora, in cui tutto questo ebbe termine, o si volle almeno che
avesse termine. Quando, in una grigia giornata invernale,
Giustiniano fissò schematicamente i programmi delle poche scuole
riconosciute di giurisprudenza, inaugurò quell’obbligo, di cui
grandissimi, sono, insieme con i pregi, i difetti, e che impera tuttavia
nelle scuole pubbliche dei paesi latini e degli altri che hanno avuto la
malinconia di imitarli, l’obbligo — dico — di una scuola, la cui
essenza più intima e più gelosa si sia voluta ufficialmente plasmare.

IV.

Come abbiamo dianzi affermato, quasi tutti gli insegnamenti di


discipline, che non fossero quelle giudicate fondamentali, rimasero
nell’impero romano estranei ad ogni cura ed a ogni ingerenza
imperiale. Qualche tentativo in senso contrario ebbe tuttavia luogo, e
fu più o meno audace, a seconda dei tempi e dei principi.
Il momento più propizio fu il regno di Alessandro Severo. Egli istituì
— lo vedemmo — in Roma, cattedre ufficiali di medicina, di
astrologia, di aruspicina, di ingegneria, di architettura, cattedre cioè
di discipline, scientifiche o pseudoscientifiche, attinenti
all’insegnamento superiore e improntate all’esempio di altre
esistenti, per iniziativa privata o municipale, nelle provincie, nonchè
cattedre d’insegnamenti schiettamente professionali. È nota la
miseranda fine delle scuole d’astrologia, e, da quanto noi
conosciamo, è facile dedurre eziandio l’abbandono, in cui i
successori lasciarono precipitare le cattedre di materie scientifiche,
istituite da Alessandro Severo, che rimasero interamente escluse dal
quadro tipico della Università costantinopolitana.
Ma l’insegnamento professionale venne allora favorito con altri
mezzi, che non fossero quelli diretti della istituzione di scuole
apposite in qualche città dell’impero. Le scuole vennero lasciate
all’iniziativa privata; soltanto, esse furono, più o meno
interrottamente, protette e sussidiate, i giovani vennero eccitati con
vantaggi tangibili, e per essi vennero posti in condizione privilegiata
coloro, che tali scuole avrebbero tenute. Furono questi i criterii
seguiti per le scuole di musica da Adriano; poi, per queste e per altre
professionali da Costantino I., da Giuliano, dai Valentiniani; e, se è
soltanto probabile che essi siano riusciti più proficui di quelli, che
avevano ispirato Alessandro Severo, è certo che la loro applicazione
ne fu più continua e più duratura.

V.

Le esigenze della pubblica istruzione furono, dal governo


dell’impero, non soltanto soddisfatte con la creazione di un più
perfetto organismo scolastico, ma altresì con la istituzione di
biblioteche, e con l’istituzione, e il mantenimento, di accademie, di
musei, di gallerie.
La fondazione di pubbliche biblioteche fu una lodevole iniziativa, che
rimonta al I. secolo di Cristo. Essa, come le scuole di Stato, venne
dapprima limitata a Roma, ma più tardi, si eressero e si fondarono
biblioteche pubbliche e semipubbliche anche altrove, ad esempio, in
Alessandria, in Atene e in Costantinopoli. E, se dapprima il loro
unico tipo fu quello di istituti di coltura generale, in cui si accoglieva
tutta la produzione letteraria, greca e latina, allora esistente, è
probabile che, in seguito si siano andate man mano specializzando.
Così, se noi non siamo sicuri di imbatterci in raccolte speciali di libri
scientifici, le antiche collezioni giuridiche delle biblioteche greco-
latine dovettero col tempo trasformarsi in biblioteche autonome o in
sezioni di biblioteche quasi indipendenti.
Le nostre notizie sul personale e sul reggimento delle biblioteche
pubbliche, se non tali e così copiose come le desidereremmo, non
sono però eccezionalmente scarse. Dall’età di Claudio — potrebbe
anche dirsi da Augusto — e certamente per tutto il primo secolo,
l’amministrazione delle biblioteche imperiali romane fu affidata ad un
procurator bybliothecarum o ad un procurator Augusti a
bibliothecis. [832]
I procuratores erano in genere degli affrancati, addetti al servizio
personale dell’imperatore, e questo li soleva contraddistinguere dai
procuratores Augusti, membri dell’ordine equestre e depositarii di
una più larga e diretta autorità dello Stato nel disimpegno dei
pubblici servizi. [833] Noi troviamo infatti, nell’amministrazione delle
biblioteche, taluni procuratores, che sono esplicitamente detti liberti
imperiali, [834] ma, poichè di altri questo deve escludersi [835] e
poichè ci furono veri e proprii procuratores Augusti, deve inferirsi che
la procura delle biblioteche, e, perciò, il servizio ad esse relativo,
siano da considerarsi quali uffici e servizi di Stato, e non già impieghi
o servizi privati della Corte imperiale. Nel II. secolo, i procuratores
sono due, di diverso ruolo, uno, l’antico procurator bybliothecarum,
l’altro, un procurator sexagenarius, stipendiato cioè con soli 60.000
sesterzii annui, e, forse, addetto soltanto alla parte amministrativa
dei singoli istituti. Ebbe tutto ciò a mutare nel III. secolo, nel quale
un’epigrafe ci addita un procurator rationum summarum privatarum
bybliothecarum Augusti nostri, [836] secondo cui il servizio delle
biblioteche imperiali parrebbe tornato a carico della cassa privata
dell’imperatore? Questa ipotesi, che pure ha avuto dei sostenitori,
non è certo la più probabile. Anzi tutto, l’epigrafe può comportare
interpretazioni e riferimenti diversi dai consueti: essa può intendersi
riferita alla biblioteche private dell’imperatore, che neanche in Roma
o in Costantinopoli alcuna sufficiente ragione riesce ad
escludere [837], e può il nostro procurator del III. secolo essere stato
soltanto l’amministratore di quella parte di patrimonio privato, con cui
l’imperatore avrebbe accresciuto il non lauto fondo destinato alle
biblioteche, specie a costituirne di nuove. Ma la considerazione più
grave, che vale ad escludere l’ipotesi di un regresso delle
biblioteche, da istituti pubblici a proprietà private del principe, muove
dall’indirizzo generale dell’amministrazione dell’impero, che coi
secoli andò, in tutti i suoi rami, perdendo ogni carattere di servizio
personale per convertirsi man mano, più saldamente, in servizio di
Stato.
Questo per il personale superiore delle biblioteche. Quello
subalterno appare, fin dal I. secolo di C., composto di liberi, di liberti
imperiali e di schiavi, che, nel IV. secolo e in Costantinopoli, si
preferirono pubblici, e furono, come tanti altri funzionari, stipendiati
su le annonae populares [838].

VI.

Di Accademie, fondate dagli imperatori, non ve n’è che una sola, il


Museo Claudio, sede di studio, laboratorio di scienze e di letteratura,
auditorium destinato a pubbliche conferenze. Ma gl’imperatori
romani continuarono nel mantenimento e nella direzione dell’antico
Museo alessandrino, di cui, a suo tempo, notammo i tratti
caratteristici. Noi vedemmo, anzi, come gli imperatori abbiano col
tempo reso più universali i benefici di quella Accademia, facendone
partecipi i dotti di altre provincie dell’impero, e fornendo loro,
ovunque risiedessero, delle congrue pensioni, che ne garantissero
l’agio dell’esistenza.
Ma certo assai più interessante ed efficace, nei riguardi della cultura
pubblica, fu la sollecitudine del governo imperiale pei monumenti
antichi ed artistici di Roma, di Costantinopoli e di altre città d’Italia e
delle provincie, che contribuì non poco a formare quel gusto della
scultura, della pittura e dell’architettura, così esiguo durante il
periodo repubblicano, e a salvare più tardi, al culto dei posteri, gli
ormai pericolanti resti dell’arte greco-romana.
Ed infatti, nell’età imperiale, noi assistiamo alla ordinata conversione
in pubblici di parecchi musei e gallerie, esistenti nella capitale del
mondo, e alla formazione di un primo nucleo di amministrazione
centrale e provinciale delle belle arti. La serie dei magistrati, che
l’avrebbero costituita, porta nomi diversi attraverso i tempi. Da un
procurator a pinacothecis e da un procurator moninentum terra (?)
imaginum dell’età degli Antonini noi passiamo, nel IV. secolo, a
imbatterci in un curator statuarum e in un centurio o tribunus o
comes rerum nitentium. Noi non siamo sempre in grado di
distinguere le attribuzioni di ciascuno; non siamo neanche in grado
di distinguere cronologicamente il tempo, in cui il loro ufficio si
volgeva soltanto alla città capitale, da quello, in cui cominciò a
esercitarsi nella città di provincia. Ma sappiamo tuttavia di essere
certamente dinanzi a una consuetudine e a un ordinamento così
notevoli, che, attraverso le disavventure dei tempi, rimarranno ancor
saldi durante il governo del secondo Re barbaro in Italia. E
sappiamo ancora che cotali magistrati, quando non dipendevano
direttamente dall’imperatore, stavano alle dipendenze delle varie
autorità provinciali (praefecti praetorio, vicarii, duces) o della
suprema autorità cittadina delle due metropoli regie, il praefectus
urbi, e che essi furono altre volte, da apposite costituzioni imperiali,
direttamente incaricati della custodia, della manutenzione,
dell’esposizione e dell’apertura al pubblico di opere e di edifici,
considerati monumenti nazionali [839].
VII.

Le due autorità, che, durante l’impero, quasi sino all’ultimo, si


ripartirono la direzione degli affari concernenti la pubblica istruzione,
furono l’imperatore e il senato, ciascuno, naturalmente, con il
diverso, effettivo potere, di cui disponeva, nelle nuove invalse
consuetudini della politica generale dello Stato. E può dirsi
recisamente che i poteri del senato, infinitamente minori di quelli
dell’imperatore, andassero man mano assottigliandosi, per restare
da ultimo limitati all’ordinamento della istruzione pubblica in Roma e
in Costantinopoli. Fu questo un processo di involuzione, analogo a
quello, che le attribuzioni del senato ebbero a subire in tutti i campi
dell’amministrazione; onde quel consesso, che, sotto Augusto,
aveva cominciato col largire l’immunità a tutti i medici e i docenti
dell’impero, terminò, nei secoli V. e VI. di Cristo, con l’assumere il
modesto carattere di minuscola, subordinata autorità municipale.
In Roma e in Costantinopoli, dunque, il senato sceglie i pubblici
docenti, [840] ne fissa gli stipendii, [841] conferisce loro nuove
immunità [842] e propone per essi le onorificenze contemplate dalla
legge, [843] provvede alla custodia dei monumenti e delle opere
d’arte, [844] mantiene, in una parola, la generale sorveglianza sulle
cose attinenti alla cultura e alla pubblica istruzione, ed è tramite
necessario tra il pensiero o il volere imperiale e i maestri delle due
città [845].
Ben altra, conforme alla natura del nuovo regime, fu l’autorità legale
ed effettiva dell’imperatore!
Come monarca assoluto, come responsabile di ogni atto e di
ciascuna delle norme regolatrici del suo governo, egli, nell’àmbito
della pubblica istruzione, non soggiace ad alcuna norma superiore,
che diriga o limiti la sua potestà. Le regole generali e particolari della
sua amministrazione egli le crea saltuariamente, volta per volta, e
l’unico termine di appello a qualche cosa di costante è la tradizione
dei predecessori.
Così l’imperatore fonda cattedre, stipendia pubblici insegnanti, crea
ex novo, o sopprime, interi istituti di istruzione, riordina le scuole
provinciali, legifera sull’insegnamento privato, conferisce immunità e
privilegi ai docenti e ai discenti, fonda biblioteche, musei, accademie,
stabilisce le norme fondamentali dell’educazione dei giovani,
promuove speciali rami d’istruzione, investe di tutte coteste
competenze la burocrazia dell’impero, ha, in una parola, potere
sovrano su tutte le cose, dalle massime alle minime, che alla
pubblica istruzione si riferiscono. Ma non solo egli può tutto quello,
che gli altri insieme non riescono a potere; egli è altresì ognora in
diritto di strappare oggi quello che ieri poteva aver voluto e fissato.
Così, ad esempio, benchè la scelta dei docenti, anche nelle scuole
di Stato, tocchi ai Comuni, dove esse risiedono, il principe, talora,
tralasciando di consultarli, non si fa scrupolo di arrogarsene
direttamente la facoltà, e non già solo in circostanze eccezionali, per
soddisfare a urgenti necessità di servizio, come può dirsi avvenisse
per le prime cattedre di filosofia in Atene, ma anche in tempi normali,
anche per rendere dei favori [846] o soddisfare il capriccio personale,
il che non viene punto giudicato un arbitrio, ma un atto di legittimo
imperio, spesso un segno solenne di sovrana degnazione. Così,
benchè le leggi, via via emanate, stabiliscano e specifichino le
immunità e i privilegi consentiti, i principi son sempre in facoltà di
conferirne motu proprio, a singoli maestri, di nuovi e di speciali, [847]
perfino di ereditarii, [848] come di togliere loro quelli conferiti dalle
leggi comuni [849]. Così, sebbene nessuna legge generale ne dia loro
il diritto, gli imperatori possono mettere a riposo maestri in servizio,
come possono, qualora lo vogliano, destituirli improvvisamente, ciò
che, ad esempio, vedemmo avvenire sotto Adriano [850] e sotto
Giuliano.

VIII.
Dietro il Senato e l’imperatore, che rappresentano i due poteri
dirigenti, noi ne aspetteremmo ancora altri, quali esecutori della loro
rispettiva volontà, nel campo della pubblica istruzione. Se non che, a
reggere il nuovo organismo amministrativo, che si era venuto
formando, lo Stato non sentì vivo il bisogno di destinarvi un apposito
congegno burocratico.
I nuovi uffici, creatisi a corte in quell’età dell’impero romano, in cui
l’autorità assoluta del principe cominciò a farsi valere anche nelle
forme esteriori, differiscono dai nostri, in quanto riguardano, non un
genere di lavoro determinato, ma la forma comune di lavori diversi,
non assolutamente separati nè distintamente assegnati. È questo il
motivo, per cui noi non troviamo, in questo tempo, un nucleo di
amministrazione centrale, che degnamente risponda al nuovo
servizio e, meno ancora, delle apposite amministrazioni provinciali
per la pubblica istruzione.
L’unico ufficio infatti, che, nella vecchia capitale dell’impero, ci
apparisca fornito di tali caratteri, è quello dell’a studiis, ma, se
l’oscurità, che avvolge le sue funzioni direttive scolastiche, è prova
della sua scarsa importanza, almeno al confronto delle nostre
aspettative, è altresì degno di rilievo il fatto che l’a studiis non
incombeva soltanto sulle cose della pubblica istruzione, nè la durata
della sua carica oltrepassò il regno di Costantino [851]. Nel momento
cioè, del maggiore sviluppo della politica scolastica dell’impero,
l’unico ufficio, che direttamente la riguardava, dispare [852] o si
confonde con altri di specie diversa, [853] e la direzione suprema
delle cose della pubblica coltura rimane alla mercè dei mutevoli
suggerimenti e dell’opera di questo o di quel ministro, qualunque
carica essi rivestano, sì che, allorquando Giustiniano sopprimerà
buona parte delle scuole dell’impero, noi apprenderemo con
meraviglia che consigliere di quel gravissimo provvedimento era
stato soltanto il prefetto di Costantinopoli [854].
In modo analogo, fuori della Corte ci troviamo dinanzi a una serie di
attribuzioni scolastiche, assegnate a questo o a quel magistrato
civile, non dinanzi a una vera e propria amministrazione scolastica.
Le persone, incaricate della cura e della trattazione degli affari,
relativi all’istruzione pubblica, furono i praefecti urbi, coi loro
dipendenti nelle due città regie, esecutori tanto della volontà
dell’imperatore come di quella del senato [855], i governatori, col
personale loro dipendente, nelle provincie, o, più tardi, nelle
prefetture; talora, anche, in qualche sede speciale, per l’ultima età
dell’impero, le autorità ecclesiastiche [856].
Questi sono i naturali destinatari, delle numerose costituzioni
imperiali, relative ai professori, agli studenti e alle cose dell’istruzione
pubblica in genere. Ma una distinzione di attribuzioni tra il praefectus
urbi e le autorità provinciali o il prefetto del pretorio non esiste. Ciò
che determina la differenza delle loro funzioni è solo il diverso
àmbito territoriale, su cui si esplicano le rispettive competenze
amministrative. Il praefectus urbi si incarica della sorveglianza
disciplinare sui maestri, di Roma e di Costantinopoli, cui ha facoltà di
infliggere pene determinate; [857] si incarica della manutenzione degli
edifici scolastici di proprietà dello Stato; dell’assegnazione a ciascun
docente di un determinato locale nell’università cittadina; [858], e,
forse, dopo Giustiniano, del regolare svolgimento dei loro
programmi. Consiglia l’imperatore nei suoi provvedimenti
scolastici; [859] sorveglia il pagamento degli stipendi; [860] cura che i
maestri siano informati delle onorificenze [861] e delle immunità
concesse, o ridotte, o negate; esegue e garantisce l’applicazione
delle leggi relative, sia per parte dello Stato che dei municipi; invigila
sulla condotta degli studenti, dentro e fuori la scuola, per il che mette
in opera l’attività del dipendente ufficio censuale. Infine, come
governatore di ciascuna delle due metropoli, che sono anche i centri
maggiori della pubblica istruzione, provvede talora di pubblici docenti
le città di provincia, che ne abbisognano [862], e, almeno fin dal IV.
secolo, raccoglie nelle proprie mani l’amministrazione generale delle
biblioteche di ciascuna delle due città [863].
Analogamente, i governatori provinciali o i prefetti del pretorio,
ciascuno nel proprio àmbito territoriale, sorvegliano l’apertura e la
chiusura delle scuole pubbliche e private ed i maestri che le
dirigono; [864] ne impongono di nuove, o ne regolano il mantenimento
insieme con la nomina, lo stipendio dei docenti [865] e, dopo
Giustiniano, forse anche l’insegnamento. Al pari del praefectus urbi,
informano i docenti delle immunità concesse, o ridotte, o negate, e
ne eseguono e garantiscono, l’applicazione, non solo per parte dello
Stato, ma anche per parte dei municipi; rimpatriano i docenti, che
aspirano a torto a determinate immunità, cercando così di sottrarsi ai
loro obblighi sociali [866]; curano che i municipi osservino gli altri
privilegi, dall’imperatore stabiliti pei maestri, sia di arti liberali che di
altre discipline, e infliggono ai violatori le penalità comminate; [867]
bandiscono e corrispondono borse di studio agli studiosi; sorvegliano
la disciplina, e la condotta extrascolastica, degli scolari, rilasciano
loro il permesso di recarsi altrove a studiare [868]. Nè questo è tutto.
Le notizie pervenuteci sulle scuole ateniesi, che sono le più
abbondanti, ci dànno qualche altro particolare prezioso. I governatori
provinciali nominano, o fanno nominare dai Consigli municipali, le
Commissioni di concorso, le presiedono, decidono sulle loro
proposte, sui reclami dei candidati, convocano i professori e gli
studenti a gare solenni, premiano i vincitori, propongono quesiti,
sentenziano nelle contese, sospendono, destituiscono, reintegrano,
richiamano al dovere i maestri, che disertano la cattedra, inducono le
città a determinate scelte, inviano all’imperatore rapporti sullo stato
delle scuole; sono in una parola, fin dal IV. secolo, i veri e propri
curatori dell’andamento delle scuole, almeno delle principali,
collocate entro la loro giurisdizione [869].

IX.

Oltre al nuovo organismo scolastico creato dallo Stato e


all’assoggettamento dell’istruzione municipale e privata al governo
centrale; oltre, e all’infuori di ciò che questo poteva operare per tal
via, noi abbiamo dovuto notare come ugualmente grandi — sebbene
meno direttamente apprezzabili — fossero gli impulsi, che, da varie
forme dell’attività, o del capriccio imperiale, derivarono a parecchie e
corrispondenti forme della cultura sociale. L’incremento degli studi
filosofici, musicali e giuridici non si deve ad altro. Ma di questi
impulsi indiretti, venuti dallo Stato all’istruzione e alla educazione
pubblica, è sovra ogni altra cosa degna di rilievo la concezione di
quel piano generale di educazione delle classi dominanti, che
Augusto elaborò e che, per circa due secoli, s’impose in Italia e nelle
provincie.
Noi vedemmo a suo luogo quali ne fossero stati i criterii ispiratori —
criterii morali, politici, civili e religiosi — e indicammo anche, con
sufficiente ampiezza, quali istituti e quali consuetudini si fossero
creati o fatti rivivere. Ma occorre che ora c’indugiamo alquanto a
chiarire i rapporti dei collegi giovanili italici e provinciali (che
dell’esecuzione di tale disegno furono lo strumento migliore) coi
poteri centrali e locali dello Stato.
Che quelli fossero associazioni meramente private fu opinione un
tempo divisa dagli studiosi, ma che è oramai da abbandonare
definitivamente [870]. Esse invece costituirono uno degli ingranaggi
della vita dello Stato romano nei secoli II. e III. di C. L’effigie
dell’imperatore che ritroviamo in talune tessere plumbee, non prova
in modo incontrastabile, il carattere ufficiale dell’istituto, [871] ma è,
ciò non ostante, fuori dubbio che, come quei collegi furono più volte
fondati dagli imperatori, la loro vita rimase sempre sotto gli auspici
dell’unico o del maggiore magistrato dell’impero [872]. Altra volta, gli
stessi municipii domandano il riconoscimento legale di un collegio
giovanile. Verso il 130, Cizico ne chiede l’autorizzazione al Senato
romano, [873] segno questo evidentissimo del loro carattere pubblico,
e, nella stessa Africa, la corporazione giovanile è una suddivisione
della curia municipale [874]. Egualmente significativa è la
considerazione, di cui essi godono nella vita dei municipii: i collegi
giovanili vantano il primo posto tra gli altri della città, e lo cedono
soltanto, e di rado, agli Augustales e ai Seviri. I loro magistrati poi
hanno strette relazioni con le autorità municipali, talora con le
autorità militari, e queste — come se si trattasse di collegia
propriamente militari — vanno ad istruirvi i giovani e a sorvegliarne
la disciplina [875]. I collegia iuvenum non furono dunque istituzioni
private, ma istituti pubblici, voluti e favoriti dallo Stato romano, che
ne ebbe tutto il merito; e, sia per la loro importanza come per
l’efficacia sociale, esercitata durante tre secoli, possono ben definirsi
la più originale e fortunata creazione della politica scolastica
imperiale romana.
E con impulsi indiretti, più che con le sollecitudini, usate verso quelli,
che si consideravano gli elementi integranti dell’istruzione scolastica,
noi ritroviamo favorito dal governo di Roma ciò che, nel mondo
ellenico, era stato il primo punto dei programmi scolastici:
l’educazione fisica degli adolescenti e dei giovani.
Noi non sappiamo se in Roma (o anche altrove) lo Stato
stipendiasse all’uopo dei maestri; noi ignoriamo affatto la condizione
dei magistri dei ludi Troiae e dei magistri iuventutis, esistenti fra i
giovani dei vari collegi giovanili dell’impero; ma noi sappiamo che
dallo Stato erano, per l’educazione fisica della gioventù, assegnati
locali appositi, e che ivi i maestri potevano insegnare e i giovani
esercitarsi ed allenarsi.

X.

Ebbero la progrediente cura dello Stato, verso l’istruzione pubblica, e


il perfezionarsi degli istituti ufficiali d’insegnamento una efficacia
decisiva sulle opere dell’intelletto? La risposta, per chi scorra la
produzione letteraria della repubblica e dell’impero, non può essere
che negativa, e la constatazione, a cui si è costretti, rompe contro un
vecchio pregiudizio della chiesa cattolica e, insieme, della
democrazia moderna, che cioè la scuola abbia la virtù di creare la
società e la vita, più di quanto non ne sia essa medesima influenzata
e soggiogata; che sia insomma la scuola, e non la società tutta, a
determinare il valore dell’insegnamento e a renderlo operoso e
fecondo. Pur troppo, la scuola ufficiale non è sempre, o soltanto, un
mezzo d’apprendimento e di diffusione della cultura; non soltanto lo
strumento di preparazione a determinati uffici o professioni,
reclamato da una società, che si trova al colmo della sua floridezza
intellettuale e materiale; essa è, assai più spesso, l’espediente
escogitato per sanare un male, arrestare un regresso, promuovere
artificialmente una serie di effetti, che, per altra via, non sembrava
possibile conseguire. La scuola ufficiale è dunque, assai di
consueto, l’indice di una società, che organicamente decade. E, se
essa può, per un certo tempo, reagire contro questo fatale andare,
ne è a sua volta, alla fine, sopraffatta e soffocata. La società male
assestata, la società, distratta da altre cure, inquina e corrompe la
scuola, la disordina, la piega, la deforma a scopi, che quella non può
avere, la isola, la diserta, ne isterilisce ogni buon effetto. È ciò che
noi vediamo seguire negli ultimi secoli dell’impero, ciò che noi
vedremo ripetersi nell’ultima fase delle Università medievali. [876]
Durante questo periodo, la scuola, che ammanisce tutte le specie
del sapere, che prepara a tutte le attività intellettuali, non produce
più nè prosatori, nè scienziati, nè filosofi, nè giuristi, nè letterati; nè
riesce a fermare l’ignoranza, che sale, o a chiudere le porte
all’invadente Medioevo dell’intelletto.
Ma la specifica vanità dell’opera della scuola ufficiale, dell’opera
dello Stato, rispetto alla produzione intellettuale, è forse ancora più
sensibile nei periodi felici dell’impero romano, ad esempio, nell’età
degli Antonini. La società ci offre allora il curioso spettacolo di un
appassionarsi a tutte le manifestazioni dell’intelligenza, per cui la
letteratura, la filosofia, la scienza si diffondono per le varie classi
sociali e si fanno popolari. Ma quella società ha acquistato in cultura
tutto ciò che ha perduto in qualità e in potenza di pensiero, e la
scienza e l’arte vi hanno guadagnato in estensione e in diffusione
tanto quanto hanno perduto in virtù ed in profondità. Non è più
questa, pur troppo, l’êra della grande arte e della grande
speculazione. Mancano all’uopo la capacità individuale e la
collettiva, che non si possono creare per sapienza di reggimento
scolastico. Ciò che il retore Materno aveva, con profondo
pessimismo, sostenuto nell’immortale dialogo Degli oratori, è, in tesi
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookfinal.com

You might also like