diff --git a/src/docbook/en-US/module/architecture.xml b/src/docbook/en-US/module/architecture.xml
index 12f23d5fa7..c681ae5a00 100644
--- a/src/docbook/en-US/module/architecture.xml
+++ b/src/docbook/en-US/module/architecture.xml
@@ -211,29 +211,28 @@
On top of the core components mentioned above, that already enable the
implementation of all types of network applications, Netty provides a set
- of advanced features to accelerate the development pace even more.
+ of advanced features to accelerate the page of development even more.
Codec framework
As demonstrated in , it is always a good
- idea to separate a protocol codec from a business logic. However, there
+ idea to separate a protocol codec from business logic. However, there
are some complications when implementing this idea from scratch. You
have to deal with the fragmentation of messages. Some protocols are
- multi-layered (i.e. built on top of other lower level protocol). Some
+ multi-layered (i.e. built on top of other lower level protocols). Some
are too complicated to be implemented in a single state machine.
Consequently, a good network application framework should provide an
extensible, reusable, unit-testable, and multi-layered codec framework
- that generates maintainable user codec.
+ that generates maintainable user codecs.
- Netty provides a number of basic and advanced codecs built on top of
- its core to address most issues you will encounter when you write a
- protocol codec regardless if it is simple or not, binary or text -
- simply whatever.
+ Netty provides a number of basic and advanced codecs to address most
+ issues you will encounter when you write a protocol codec regardless
+ if it is simple or not, binary or text - simply whatever.
@@ -244,16 +243,16 @@
You can't simply wrap a stream to encrypt or decrypt data but you have
to use javax.net.ssl.SSLEngine.
SSLEngine is a state machine which is as complex
- as SSL is. You have to manage all possible states such as cipher suite
- and encryption key negotiation (or re-negotiation), certificate
- exchange and validation. Moreover, SSLEngine is
- not even completely thread-safe unlike usual expectation.
+ as SSL itself. You have to manage all possible states such as cipher
+ suite and encryption key negotiation (or re-negotiation), certificate
+ exchange, and validation. Moreover, SSLEngine is
+ not even completely thread-safe, as one would expect.
In Netty, &SslHandler; takes care of all the gory details and pitfalls
of SSLEngine. All you need to do is to configure
- and insert the &SslHandler; to your &ChannelPipeline;. It also allows
- you to implement advanced features like
+ the &SslHandler; and insert it into your &ChannelPipeline;. It also
+ allows you to implement advanced features like
StartTLS
very easily.
@@ -268,13 +267,13 @@
Netty's HTTP support is very different from the existing HTTP libraries.
- It gives you complete control over how HTTP messages are exchanged in a
- low level. Because it is basically the combination of HTTP codec and
- HTTP message classes, there is no restriction such as enforced thread
+ It gives you complete control over how HTTP messages are exchanged at a
+ low level. Because it is basically the combination of an HTTP codec and
+ HTTP message classes, there is no restriction such as an enforced thread
model. That is, you can write your own HTTP client or server that works
- exactly the way you want. You have full control over thread model,
- connection life cycle, chunked encoding, and as much as what HTTP
- specification allows you to do.
+ exactly the way you want. You have full control over everything that's
+ in the HTTP specification, including the thread model, connection life
+ cycle, and chunked encoding.
Thanks to its highly customizable nature, you can write a very efficient
@@ -290,18 +289,18 @@
Media streaming server that needs to keep the connection open
- until the whole media is streamed (e.g. 2 hours of movie)
+ until the whole media is streamed (e.g. 2 hours of video)
- File server that allows the upload of large files without memory
- pressure (e.g. uploading 1GB per request)
+ File server that allows the uploading of large files without
+ memory pressure (e.g. uploading 1GB per request)
- Scalable mash-up client that connects to tens of thousand 3rd
+ Scalable mash-up client that connects to tens of thousands of 3rd
party web services asynchronously
@@ -314,10 +313,11 @@
Google Protocol Buffers
are an ideal solution for the rapid implementation of a highly efficient
- binary protocol that evolves over time. With &ProtobufEncoder; and
- &ProtobufDecoder;, you can turn the message classes generated by Google
- Protocol Buffers Compiler (protoc) into Netty codec. Please take a look
- into the 'LocalTime' example
+ binary protocols that evolve over time. With &ProtobufEncoder; and
+ &ProtobufDecoder;, you can turn the message classes generated by the
+ Google Protocol Buffers Compiler (protoc) into Netty codec. Please take
+ a look into the
+ 'LocalTime' example
that shows how easily you can create a high-performing binary protocol
client and server from the
sample protocol definition.