From 79d660ca91592cf758203986aabf44a206617b36 Mon Sep 17 00:00:00 2001 From: Evan Meagher Date: Mon, 3 Oct 2011 20:53:45 -0700 Subject: [PATCH] Fix wording in "Advanced Components for More Rapid Development" section. --- src/docbook/en-US/module/architecture.xml | 56 +++++++++++------------ 1 file changed, 28 insertions(+), 28 deletions(-) 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.