SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
 
1 
Communicating in Asynchronous 
World with Netty 
In this chapter, we will cover asynchronous socket programming and common recipes using 
Netty for building network­based application. The user story is, you get requirements to 
develop a system, that client and server can communicate asynchronously using TCP/IP . So 
we will divide the problem to 6 common recipes: 
● Building an asynchronous TCP/IP server and client 
● Sending hello message to server when connection is ready 
● Receiving message asynchronously 
● Get callback when closing an active Channel 
● Get notification from ChannelHandler states 
● Data pipeline processing with ChannelHandler 
Introduction 
Before we go to the first recipe, we need to ask ourselves for the key question of first chapter: 
Why is the asynchronous programming model is more suitable for building applications in 
Internet­Scale Services ? And some main reasons are: 
● Cooperatively schedule the CPU or other resources to each connection. 
● Easily divide the work it into relatively small pieces. 
● Efficient and elegant coding style. 
● Scalability ­ hundreds of connections means only hundreds of socket/state objects 
● Requires no interlocking for access to shared resources. 
● integrates easily with event­driven programming and Lambda Expression in Java 8 
 
 
 
 
So we got some ideas to continue to next question “How Netty solve the asynchronous I/O?” 
The answer is at the main loop, or the message dispatcher, is a programming construct that 
waits for and dispatches events or messages in a program. Your program at the Internet­Scale 
Services always receiving a lot of data events, so with Netty, the work for building 
networking­based solution more elegant and easier. 
 
Getting ready: 
Make sure you install the Gradle Integration with Eclipse (4.4) and the JDK 8 is installed 
Go to the page ​http://trieu.github.io/netty­cookbook 
You will see the guideline how to checkout the source code of book. 
Recipe 1.1 Building an asynchronous TCP Server 
In this recipe, we go through an simple example to build a TCP server. You will use 
EventLoopGroup, ServerBootstrap, ChannelInitializer, StringEncoder, StringDecoder, 
ChannelHandler and ChannelInboundHandlerAdapter  to build solution. 
 
 
How to do it ... 
The basic main steps: 
1. Configure the server with ServerBootstrap 
2. Setting the String codec to define how server encoding/decoding messages and add to 
ChannelPipeline. 
3. Implementing the handler, the subclass of ChannelInboundHandlerAdapter, that the 
main logic of our application 
4. Start server and synchronize with the active channel, the socket that is listening 
public​ ​final​ ​class​ ​AsynchTcpServer​ { 
    ​static​ ​final​ ​int​ PORT ​=​ ​Integer​.​parseInt​(​System​.​getProperty​(​"port"​,​ ​"8007"​)); 
    ​public​ ​static​ ​void​ main​(​String​[]​ args​)​ ​throws​ ​Exception​ ​{     
        ​EventLoopGroup​ bossGroup ​=​ ​new​ ​NioEventLoopGroup​(​1​); 
        ​EventLoopGroup​ workerGroup ​=​ ​new​ ​NioEventLoopGroup​(); 
        ​try​ { 
            ​ServerBootstrap​ b ​=​ ​new​ ​ServerBootstrap​(); 
            b​.​group​(​bossGroup​,​ workerGroup) 
             ​.​channel​(​NioServerSocketChannel​.​class) 
             ​.​handler​(​new​ ​LoggingHandler​(​LogLevel​.​INFO​)) 
             ​.​childHandler​(​new​ ​ChannelInitializer​<​SocketChannel​>()​ { 
                 ​@Override 
                 ​public​ ​void​ initChannel​(​SocketChannel​ ch​)​ ​throws​ ​Exception​ { 
                     ​ChannelPipeline​ p ​=​ ch​.​pipeline​(); 
                     p​.​addLast​(​new​ ​StringDecoder​(​CharsetUtil​.​UTF_8​)); 
                     p​.​addLast​(​new​ ​StringEncoder​(​CharsetUtil​.​UTF_8​));  
                     p​.​addLast​(​new​ ​ChannelInboundHandlerAdapter​(){ 
   ​@Override 
  public​ ​void​ channelRead​(​ChannelHandlerContext​ ctx, 
  Object​ msg​)​ ​throws​ ​Exception​ { 
   ​String​ s ​=​ ​String​.​format​(​"Response the message %s from 
server"​,​ msg​); 
   ctx​.​writeAndFlush​(​s​); 
  } 
 
 
                     ​}); 
                 } 
             ​}); 
            ​ChannelFuture​ f ​=​ b​.​bind​(​PORT​).​sync​(); 
            ​Channel​ channel ​=​ f​.​channel​();   
            channel​.​closeFuture​().​sync​(); 
        ​}​ ​finally​ { 
            bossGroup​.​shutdownGracefully​(); 
            workerGroup​.​shutdownGracefully​(); 
        } 
    } 
} 
Recipe 1.2 Sending hello message to server when 
connection is ready 
In practice, sending  messages between client and server is not safe. If connection is not ready 
or not available, your code should be notified immediately if you want to send a message 
asynchronously to server. You can extend the SimpleChannelInboundHandler in your 
implemented handler. Then, when a channel or a connection is ready, you can use the 
ChannelHandlerContext to send data. 
 
 
 
 
 
How to do it … 
The example code:  
public​ ​class​ ​TcpClientHandler​ ​extends​ ​SimpleChannelInboundHandler​<​String​>​ ​{  
String​ message; 
CallbackProcessor​ asynchCall; 
    ​public​ ​TcpClientHandler​(​String​ message​,​ ​CallbackProcessor​ asynchCall​)​ { 
  this​.​message ​=​ message; 
  this​.​asynchCall ​=​ asynchCall; 
    ​} 
    ​@Override 
    ​public​ ​void​ channelActive​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception​ { 
  ctx​.​writeAndFlush​(​this​.​message​); 
    } 
Recipe 1.3 Receiving message asynchronously 
You want to create a TCP client, and the response should be send back to the caller. In the 
recipe, we can use the cool feature in Java 8, the Lambda Expression to create better elegant 
syntax likes this code 
new​ ​TcpClient​(​"127.0.0.1"​,​8007​).​setMessage​(​"Hello"​).​onResponseReceived​(​rs ​­>​ { 
System​.​out​.​println​(​rs​);   
}).​execute​(); 
How to do it ... 
Define a FunctionalInterface, named “CallbackProcessor”  
@FunctionalInterface 
public​ ​interface​ ​CallbackProcessor​ ​{   
public​ ​void​ process​(​String​ res​); 
} 
 
 
In the handler, when client receive the message from server, the channelRead0 method is 
called and received data. In this code, you can apply the function “process” to delegate to 
lambda method. 
public​ ​class​ ​TcpClientHandler​ ​extends​ ​SimpleChannelInboundHandler​<​String​>​ ​{  
String​ message; 
CallbackProcessor​ asynchCall; 
    ​public​ ​TcpClientHandler​(​String​ message​,​ ​CallbackProcessor​ asynchCall​)​ { 
  this​.​message ​=​ message; 
  this​.​asynchCall ​=​ asynchCall; 
    ​}   
    ​@Override 
    ​public​ ​void​ channelRead0​(​ChannelHandlerContext​ ctx​,​ ​String​ msg​)​ { 
        ​this​.​asynchCall​.​process​(​msg​); 
    } 
Recipe 1.4 Get notification from Netty I/O operations 
Using the asynchronous I/O in Netty, or non­blocking I/O permits a ChannelHandler 
processing to continue before the transmission has finished. The advantages are improving 
throughput, latency, and/or responsiveness. 
Channel I/O in Netty is designed to maximize CPU utilization and throughput by offloading 
most I/O onto a coprocessor, by using Zero­Copy Networking.  
The context of our problem is when your application receives all data from peers, you want to 
close channel and add a listener to get notification when the operation completes. 
 
 
 
How to do it … 
Implement the interface GenericFutureListener to get notification when a TCP channel close 
successfully.  
@Sharable 
public​ ​class​ ​TcpServerOutboundHandler​ ​extends​ ​ChannelOutboundHandlerAdapter​ ​{  
@Override 
public​ ​void​ flush​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception​ ​{  
super​.​flush​(​ctx​);  
ctx​.​close​().​addListener​(​new​ ​GenericFutureListener​<​Future​<?​ ​super 
Void​>>()​ { 
@Override 
public​ ​void​ operationComplete​(​Future​<?​ ​super​ ​Void​>​ future) 
throws​ ​Exception​ { 
System​.​out​.​println​(​"close connection: 
"​+​future​.​isSuccess​()); 
} 
}); 
} 
 
 
Recipe 1.5 Get notification from ChannelHandler states 
In Netty, there are 2 core concepts that you usually use:  
Channel​ : the link ('connection') to a resource that provides IO operations like read / write 
(the link between client and server) 
ChannelHandler​: Your business logic needs a place, and this is where it belongs too. 
The state of Channel is really important, because it tells you about the connection status. The 
diagram here , illustrate the state model of Channel 
 
How can we hook the code and listen the states of Channel ? 
How to do it … 
In the interface ChannelInboundHandler, there 4 methods you can override. 
    ​void​ channelRegistered​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception; 
    ​void​ channelUnregistered​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception; 
    ​void​ channelActive​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception; 
    ​void​ channelInactive​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception; 
This example code for illustrating the solution: 
 
 
public​ ​class​ ​TcpServerHandler​ ​extends​ ​ChannelInboundHandlerAdapter​ { 
    ​@Override 
    ​public​ ​void​ channelRead​(​ChannelHandlerContext​ ctx​,​ ​Object​ msg​)​ { 
  System​.​out​.​println​(​msg​);   
        ctx​.​write​(​"ok"​); 
    } 
    ​@Override 
    ​public​ ​void​ channelRegistered​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception​ ​{   
  super​.​channelRegistered​(​ctx​); 
  InetSocketAddress​ address ​=​ ​(​InetSocketAddress​)​ ctx​.​channel​().​remoteAddress​(); 
  System​.​out​.​println​(​"channelRegistered "​+​ address​.​getAddress​()); 
  isCatchedException ​=​ ​false; 
    ​}   
    ​@Override 
    ​public​ ​void​ channelUnregistered​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception​ ​{   
  super​.​channelUnregistered​(​ctx​); 
  InetSocketAddress​ address ​=​ ​(​InetSocketAddress​)​ ctx​.​channel​().​remoteAddress​(); 
  System​.​out​.​println​(​"channelUnregistered "​+​ address​.​getAddress​()); 
    ​}   
    ​@Override 
    ​public​ ​void​ channelActive​(​ChannelHandlerContext​ ctx​)​ ​throws​ ​Exception​ ​{   
  super​.​channelActive​(​ctx​); 
  System​.​out​.​println​(​"channelActive "​+​ctx​.​channel​()); 
  ctx​.​channel​().​writeAndFlush​(​"connected"​); 
    } 
The output from code look likes this: 
 
 
 
Recipe 1.6 Data pipeline processing with 
ChannelHandler 
In Netty, a ChannelPipeline is a set of data processing ChannelHandlers connected as pipe, 
where the output of one element is the input of the next one. The elements of a 
ChannelPipeline are often executed in parallel. 
There are four concepts that you should familiar with in this recipe. 
ChannelInboundHandler​ Defines listener methods for incoming I/O events 
ChannelOutboundHandler​ Defines listener methods for outgoing I/O events 
ChannelPipeline​ A list of ChannelHandlers that process incoming and outgoing events in a 
specific order. 
ChannelInitializer​ : Configures the pipeline for a Channel. 
The pattern in Netty normally likes this: 
Channel​ ch ​=​ ​...; 
ChannelPipeline​ p ​=​ ch​.​pipeline​(); 
EventExecutor​ e1 ​=​ ​new​ ​DefaultEventExecutor​(​16​); 
EventExecutor​ e2 ​=​ ​new​ ​DefaultEventExecutor​(​8​); 
p​.​addLast​(​new​ ​MyProtocolCodec​()); 
p​.​addLast​(​e1​,​ ​new​ ​MyDatabaseAccessingHandler​()); 
p​.​addLast​(​e2​,​ ​new​ ​MyHardDiskAccessingHandler​()); 
 
 
 
The diagram above show how inbound events and outbound events go through all handlers in 
ChannelPipeline. 
How to do it … 
public​ ​class​ ​DataProcessingPipeline​ ​extends​ ​ChannelInitializer​<​SocketChannel​>{ 
final​ ​static​ ​Logger​ logger ​=​ ​Logger​.​getLogger​(​DataProcessingPipeline​.​class​);  
@Override 
protected​ ​void​ initChannel​(​SocketChannel​ ch​)​ ​throws​ ​Exception​ { 
 ​ChannelPipeline​ p ​=​ ch​.​pipeline​();    
         ​// the Decoder 
         p​.​addLast​(​"stringDecoder"​,​ ​new​ ​StringDecoder​(​CharsetUtil​.​UTF_8​)); 
         ​// the Encoder 
         p​.​addLast​(​"stringEncoder"​,​ ​new​ ​StringEncoder​(​CharsetUtil​.​UTF_8​)); 
         ​// the log handler and data transformer 
         p​.​addLast​(​"logger"​,​new​ ​MessageToMessageDecoder​<​String​>(){ 
@Override 
protected​ ​void​ decode​(​ChannelHandlerContext​ ctx​,​ ​String 
msg​,​List​<​Object​>​ ​out​)​ ​throws​ ​Exception​ ​{  
logger​.​info​(​String​.​format​(​"logged raw data '%s'"​,​ msg​)); 
InetSocketAddress​ address ​=​ ​(​InetSocketAddress​) 
ctx​.​channel​().​remoteAddress​(); 
Map​<​String​,​ ​String​>​ request ​=​ ​new​ ​HashMap​<>(); 
 
 
request​.​put​(​"data"​,​ msg​); 
request​.​put​(​"from­ip"​, 
address​.​getAddress​().​getHostAddress​()); 
out​.​add​(​request​); 
}    
         ​}); 
         ​// the processing logic handler 
         p​.​addLast​(​"handler"​,​new​ ​SimpleChannelInboundHandler​<​Map​<​String​,​ ​String​>>(){ 
   ​@Override 
  public​ ​void​ channelRead0​(​ChannelHandlerContext​ ctx​,​ ​Map​<​String​,​ ​String​> 
request) 
  throws​ ​Exception​ { 
  logger​.​info​(​String​.​format​(​"from­host: '%s'"​, 
request​.​get​(​"from­ip"​))); 
  logger​.​info​(​String​.​format​(​"data: '%s'"​,​ request​.​get​(​"data"​))); 
  ctx​.​writeAndFlush​(​"Done"​); 
  }   
         ​}); 
} 
} 
How it works… 
The main idea is  the implementation of MessageToMessageDecoder. The message “Hello” is 
sent from client and is catched at StringDecoder first. Then, it transform “ByteBuf” to String. 
All classes , extends from abstract class MessageToMessageDecoder,  the data will be catched 
at the method “protected void decode(ChannelHandlerContext ctx, String msg,List<Object> 
out)”.  After processing the inbound event, data should be put into List<Object> out.  
When you run the code, the output should look like this: 
2014​­​11​­​17​ ​14​:​41​:​45​ INFO  ​LoggingHandler​:​100​ ​­​ ​[​id​:​ ​0x8daa6b57​]​ REGISTERED 
2014​­​11​­​17​ ​14​:​41​:​45​ INFO  ​LoggingHandler​:​100​ ​­​ ​[​id​:​ ​0x8daa6b57​] 
BIND​(​0.0​.​0.0​/​0.0​.​0.0​:​8007) 
2014​­​11​­​17​ ​14​:​41​:​45​ INFO  ​LoggingHandler​:​100​ ​­​ ​[​id​:​ ​0x8daa6b57​,​ ​/​0​:​0​:​0​:​0​:​0​:​0​:​0​:​0​:​8007​] 
ACTIVE 
2014​­​11​­​17​ ​14​:​41​:​59​ INFO  ​LoggingHandler​:​100​ ​­​ ​[​id​:​ ​0x8daa6b57​,​ ​/​0​:​0​:​0​:​0​:​0​:​0​:​0​:​0​:​8007​] 
RECEIVED​:​ ​[​id​:​ ​0x0fa09432​,​ ​/127.0.0.1:47855 => /​127.0​.​0.1​:​8007] 
 
 
2014​­​11​­​17​ ​14​:​41​:​59​ INFO  ​DataProcessingPipeline​:​34​ ​­​ logged raw data ​'Hello' 
2014​­​11​­​17​ ​14​:​41​:​59​ INFO  ​DataProcessingPipeline​:​47​ ​­​ ​from​­​host​:​ ​'127.0.0.1' 
2014​­​11​­​17​ ​14​:​41​:​59​ INFO  ​DataProcessingPipeline​:​48​ ​­​ data​:​ ​'Hello' 
 
 

Weitere ähnliche Inhalte

Was ist angesagt?

Quantum (OpenStack Meetup Feb 9th, 2012)
Quantum (OpenStack Meetup Feb 9th, 2012)Quantum (OpenStack Meetup Feb 9th, 2012)
Quantum (OpenStack Meetup Feb 9th, 2012)Dan Wendlandt
 
How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)Salvatore Orlando
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceRick Hightower
 
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Dave Neary
 
Securing & Enforcing Network Policy and Encryption with Weave Net
Securing & Enforcing Network Policy and Encryption with Weave NetSecuring & Enforcing Network Policy and Encryption with Weave Net
Securing & Enforcing Network Policy and Encryption with Weave NetLuke Marsden
 
Coap based application for android phones
Coap based application for android phonesCoap based application for android phones
Coap based application for android phonesMd Syed Ahamad
 
OpenStack Neutron Liberty Updates
OpenStack Neutron Liberty UpdatesOpenStack Neutron Liberty Updates
OpenStack Neutron Liberty Updatesmestery
 
OpenStack networking - Neutron deep dive with PLUMgrid
OpenStack networking - Neutron deep dive with PLUMgridOpenStack networking - Neutron deep dive with PLUMgrid
OpenStack networking - Neutron deep dive with PLUMgridKamesh Pemmaraju
 
What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021
What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021
What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021StreamNative
 
Troubleshooting Tracebacks
Troubleshooting TracebacksTroubleshooting Tracebacks
Troubleshooting TracebacksJames Denton
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Benjamin Cabé
 
Group Based Policy: Open Source Policy in OpenDaylight and OpenStack Neutron
Group Based Policy: Open Source Policy in OpenDaylight and OpenStack NeutronGroup Based Policy: Open Source Policy in OpenDaylight and OpenStack Neutron
Group Based Policy: Open Source Policy in OpenDaylight and OpenStack Neutronmestery
 
Developing Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache KafkaDeveloping Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache KafkaJoe Stein
 
Next Generation Network Developer Skills
Next Generation Network Developer SkillsNext Generation Network Developer Skills
Next Generation Network Developer Skillsmestery
 
Neutron behind the scenes
Neutron   behind the scenesNeutron   behind the scenes
Neutron behind the scenesinbroker
 
How and why we got Prometheus working with Docker Swarm
How and why we got Prometheus working with Docker SwarmHow and why we got Prometheus working with Docker Swarm
How and why we got Prometheus working with Docker SwarmLuke Marsden
 
Neutron Advanced Services - Akanda - Astara 201 presentation
Neutron Advanced Services - Akanda - Astara 201 presentationNeutron Advanced Services - Akanda - Astara 201 presentation
Neutron Advanced Services - Akanda - Astara 201 presentationEric Lopez
 
Overlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container NetworkingOverlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container NetworkingLee Calcote
 
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack NetworkingONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networkingmarkmcclain
 

Was ist angesagt? (20)

Quantum (OpenStack Meetup Feb 9th, 2012)
Quantum (OpenStack Meetup Feb 9th, 2012)Quantum (OpenStack Meetup Feb 9th, 2012)
Quantum (OpenStack Meetup Feb 9th, 2012)
 
Spring 5 Project Reactor
Spring 5 Project ReactorSpring 5 Project Reactor
Spring 5 Project Reactor
 
How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST Microservice
 
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
 
Securing & Enforcing Network Policy and Encryption with Weave Net
Securing & Enforcing Network Policy and Encryption with Weave NetSecuring & Enforcing Network Policy and Encryption with Weave Net
Securing & Enforcing Network Policy and Encryption with Weave Net
 
Coap based application for android phones
Coap based application for android phonesCoap based application for android phones
Coap based application for android phones
 
OpenStack Neutron Liberty Updates
OpenStack Neutron Liberty UpdatesOpenStack Neutron Liberty Updates
OpenStack Neutron Liberty Updates
 
OpenStack networking - Neutron deep dive with PLUMgrid
OpenStack networking - Neutron deep dive with PLUMgridOpenStack networking - Neutron deep dive with PLUMgrid
OpenStack networking - Neutron deep dive with PLUMgrid
 
What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021
What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021
What's New in Apache Pulsar 2.9- Pulsar Summit Asia 2021
 
Troubleshooting Tracebacks
Troubleshooting TracebacksTroubleshooting Tracebacks
Troubleshooting Tracebacks
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
 
Group Based Policy: Open Source Policy in OpenDaylight and OpenStack Neutron
Group Based Policy: Open Source Policy in OpenDaylight and OpenStack NeutronGroup Based Policy: Open Source Policy in OpenDaylight and OpenStack Neutron
Group Based Policy: Open Source Policy in OpenDaylight and OpenStack Neutron
 
Developing Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache KafkaDeveloping Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache Kafka
 
Next Generation Network Developer Skills
Next Generation Network Developer SkillsNext Generation Network Developer Skills
Next Generation Network Developer Skills
 
Neutron behind the scenes
Neutron   behind the scenesNeutron   behind the scenes
Neutron behind the scenes
 
How and why we got Prometheus working with Docker Swarm
How and why we got Prometheus working with Docker SwarmHow and why we got Prometheus working with Docker Swarm
How and why we got Prometheus working with Docker Swarm
 
Neutron Advanced Services - Akanda - Astara 201 presentation
Neutron Advanced Services - Akanda - Astara 201 presentationNeutron Advanced Services - Akanda - Astara 201 presentation
Neutron Advanced Services - Akanda - Astara 201 presentation
 
Overlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container NetworkingOverlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container Networking
 
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack NetworkingONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
 

Andere mochten auch

Using SCTP with Scamper and Netty
Using SCTP with Scamper and NettyUsing SCTP with Scamper and Netty
Using SCTP with Scamper and NettyTim Boudreau
 
Fast Data processing with RFX
Fast Data processing with RFXFast Data processing with RFX
Fast Data processing with RFXTrieu Nguyen
 
Slide 2 collecting, storing and analyzing big data
Slide 2 collecting, storing and analyzing big dataSlide 2 collecting, storing and analyzing big data
Slide 2 collecting, storing and analyzing big dataTrieu Nguyen
 
Reactive Data System in Practice
Reactive Data System in PracticeReactive Data System in Practice
Reactive Data System in PracticeTrieu Nguyen
 
Where is my next jobs in the age of Big Data and Automation
Where is my next jobs in the age of Big Data and AutomationWhere is my next jobs in the age of Big Data and Automation
Where is my next jobs in the age of Big Data and AutomationTrieu Nguyen
 
2016 Data Science Salary Survey
2016 Data Science Salary Survey2016 Data Science Salary Survey
2016 Data Science Salary SurveyTrieu Nguyen
 
Slide 3 Fast Data processing with kafka, rfx and redis
Slide 3 Fast Data processing with kafka, rfx and redisSlide 3 Fast Data processing with kafka, rfx and redis
Slide 3 Fast Data processing with kafka, rfx and redisTrieu Nguyen
 
Experience economy
Experience economyExperience economy
Experience economyTrieu Nguyen
 
Introduction to Human Data Theory for Digital Economy
Introduction to Human Data Theory for Digital EconomyIntroduction to Human Data Theory for Digital Economy
Introduction to Human Data Theory for Digital EconomyTrieu Nguyen
 
How to build a data driven business in big data age
How to build a data driven business in big data ageHow to build a data driven business in big data age
How to build a data driven business in big data ageTrieu Nguyen
 
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)Trieu Nguyen
 

Andere mochten auch (12)

Using SCTP with Scamper and Netty
Using SCTP with Scamper and NettyUsing SCTP with Scamper and Netty
Using SCTP with Scamper and Netty
 
Notes on Netty baics
Notes on Netty baicsNotes on Netty baics
Notes on Netty baics
 
Fast Data processing with RFX
Fast Data processing with RFXFast Data processing with RFX
Fast Data processing with RFX
 
Slide 2 collecting, storing and analyzing big data
Slide 2 collecting, storing and analyzing big dataSlide 2 collecting, storing and analyzing big data
Slide 2 collecting, storing and analyzing big data
 
Reactive Data System in Practice
Reactive Data System in PracticeReactive Data System in Practice
Reactive Data System in Practice
 
Where is my next jobs in the age of Big Data and Automation
Where is my next jobs in the age of Big Data and AutomationWhere is my next jobs in the age of Big Data and Automation
Where is my next jobs in the age of Big Data and Automation
 
2016 Data Science Salary Survey
2016 Data Science Salary Survey2016 Data Science Salary Survey
2016 Data Science Salary Survey
 
Slide 3 Fast Data processing with kafka, rfx and redis
Slide 3 Fast Data processing with kafka, rfx and redisSlide 3 Fast Data processing with kafka, rfx and redis
Slide 3 Fast Data processing with kafka, rfx and redis
 
Experience economy
Experience economyExperience economy
Experience economy
 
Introduction to Human Data Theory for Digital Economy
Introduction to Human Data Theory for Digital EconomyIntroduction to Human Data Theory for Digital Economy
Introduction to Human Data Theory for Digital Economy
 
How to build a data driven business in big data age
How to build a data driven business in big data ageHow to build a data driven business in big data age
How to build a data driven business in big data age
 
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
 

Ähnlich wie Netty Cookbook - Chapter 1

The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stackLuca Mattia Ferrari
 
Services in kubernetes-KnolX .pdf
Services in kubernetes-KnolX .pdfServices in kubernetes-KnolX .pdf
Services in kubernetes-KnolX .pdfKnoldus Inc.
 
Building Cloud-agnostic Serverless APIs
Building Cloud-agnostic Serverless APIsBuilding Cloud-agnostic Serverless APIs
Building Cloud-agnostic Serverless APIsPostman
 
MySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireMySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireSimon J Mudd
 
MuleSoft_Meetup_Datagraph and Async APIs.pptx.pdf
MuleSoft_Meetup_Datagraph and Async APIs.pptx.pdfMuleSoft_Meetup_Datagraph and Async APIs.pptx.pdf
MuleSoft_Meetup_Datagraph and Async APIs.pptx.pdfVikalp Bhalia
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices confluent
 
Zing Me Real Time Web Chat Architect
Zing Me Real Time Web Chat ArchitectZing Me Real Time Web Chat Architect
Zing Me Real Time Web Chat ArchitectChau Thanh
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservicesRon Barabash
 
Day in the life event-driven workshop
Day in the life  event-driven workshopDay in the life  event-driven workshop
Day in the life event-driven workshopChristina Lin
 
Webinar: Draw a line between HTTP/2 client and HTTP Client
Webinar: Draw a line between HTTP/2 client and HTTP ClientWebinar: Draw a line between HTTP/2 client and HTTP Client
Webinar: Draw a line between HTTP/2 client and HTTP ClientKnoldus Inc.
 
Modern VoIP in Modern Infrastructures
Modern VoIP in Modern InfrastructuresModern VoIP in Modern Infrastructures
Modern VoIP in Modern InfrastructuresGiacomo Vacca
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftRX-M Enterprises LLC
 
On component interface
On component interfaceOn component interface
On component interfaceLaurence Chen
 
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ Jitendra Bafna
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
Zero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesZero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesAlexander Penev
 

Ähnlich wie Netty Cookbook - Chapter 1 (20)

The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stack
 
Services in kubernetes-KnolX .pdf
Services in kubernetes-KnolX .pdfServices in kubernetes-KnolX .pdf
Services in kubernetes-KnolX .pdf
 
Building Cloud-agnostic Serverless APIs
Building Cloud-agnostic Serverless APIsBuilding Cloud-agnostic Serverless APIs
Building Cloud-agnostic Serverless APIs
 
MySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireMySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the Wire
 
JUG louvain websockets
JUG louvain websocketsJUG louvain websockets
JUG louvain websockets
 
MuleSoft_Meetup_Datagraph and Async APIs.pptx.pdf
MuleSoft_Meetup_Datagraph and Async APIs.pptx.pdfMuleSoft_Meetup_Datagraph and Async APIs.pptx.pdf
MuleSoft_Meetup_Datagraph and Async APIs.pptx.pdf
 
Monkey Server
Monkey ServerMonkey Server
Monkey Server
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
 
Zing Me Real Time Web Chat Architect
Zing Me Real Time Web Chat ArchitectZing Me Real Time Web Chat Architect
Zing Me Real Time Web Chat Architect
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservices
 
Day in the life event-driven workshop
Day in the life  event-driven workshopDay in the life  event-driven workshop
Day in the life event-driven workshop
 
Webinar: Draw a line between HTTP/2 client and HTTP Client
Webinar: Draw a line between HTTP/2 client and HTTP ClientWebinar: Draw a line between HTTP/2 client and HTTP Client
Webinar: Draw a line between HTTP/2 client and HTTP Client
 
Modern VoIP in Modern Infrastructures
Modern VoIP in Modern InfrastructuresModern VoIP in Modern Infrastructures
Modern VoIP in Modern Infrastructures
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache Thrift
 
Netty training
Netty trainingNetty training
Netty training
 
On component interface
On component interfaceOn component interface
On component interface
 
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
Zero Downtime JEE Architectures
Zero Downtime JEE ArchitecturesZero Downtime JEE Architectures
Zero Downtime JEE Architectures
 
Twitter Finagle
Twitter FinagleTwitter Finagle
Twitter Finagle
 

Mehr von Trieu Nguyen

Building Your Customer Data Platform with LEO CDP in Travel Industry.pdf
Building Your Customer Data Platform with LEO CDP in Travel Industry.pdfBuilding Your Customer Data Platform with LEO CDP in Travel Industry.pdf
Building Your Customer Data Platform with LEO CDP in Travel Industry.pdfTrieu Nguyen
 
Building Your Customer Data Platform with LEO CDP - Spa and Hotel Business
Building Your Customer Data Platform with LEO CDP - Spa and Hotel BusinessBuilding Your Customer Data Platform with LEO CDP - Spa and Hotel Business
Building Your Customer Data Platform with LEO CDP - Spa and Hotel BusinessTrieu Nguyen
 
Building Your Customer Data Platform with LEO CDP
Building Your Customer Data Platform with LEO CDP Building Your Customer Data Platform with LEO CDP
Building Your Customer Data Platform with LEO CDP Trieu Nguyen
 
How to track and improve Customer Experience with LEO CDP
How to track and improve Customer Experience with LEO CDPHow to track and improve Customer Experience with LEO CDP
How to track and improve Customer Experience with LEO CDPTrieu Nguyen
 
[Notes] Customer 360 Analytics with LEO CDP
[Notes] Customer 360 Analytics with LEO CDP[Notes] Customer 360 Analytics with LEO CDP
[Notes] Customer 360 Analytics with LEO CDPTrieu Nguyen
 
Leo CDP - Pitch Deck
Leo CDP - Pitch DeckLeo CDP - Pitch Deck
Leo CDP - Pitch DeckTrieu Nguyen
 
LEO CDP - What's new in 2022
LEO CDP  - What's new in 2022LEO CDP  - What's new in 2022
LEO CDP - What's new in 2022Trieu Nguyen
 
Lộ trình triển khai LEO CDP cho ngành bất động sản
Lộ trình triển khai LEO CDP cho ngành bất động sảnLộ trình triển khai LEO CDP cho ngành bất động sản
Lộ trình triển khai LEO CDP cho ngành bất động sảnTrieu Nguyen
 
Why is LEO CDP important for digital business ?
Why is LEO CDP important for digital business ?Why is LEO CDP important for digital business ?
Why is LEO CDP important for digital business ?Trieu Nguyen
 
From Dataism to Customer Data Platform
From Dataism to Customer Data PlatformFrom Dataism to Customer Data Platform
From Dataism to Customer Data PlatformTrieu Nguyen
 
Data collection, processing & organization with USPA framework
Data collection, processing & organization with USPA frameworkData collection, processing & organization with USPA framework
Data collection, processing & organization with USPA frameworkTrieu Nguyen
 
Part 1: Introduction to digital marketing technology
Part 1: Introduction to digital marketing technologyPart 1: Introduction to digital marketing technology
Part 1: Introduction to digital marketing technologyTrieu Nguyen
 
Why is Customer Data Platform (CDP) ?
Why is Customer Data Platform (CDP) ?Why is Customer Data Platform (CDP) ?
Why is Customer Data Platform (CDP) ?Trieu Nguyen
 
How to build a Personalized News Recommendation Platform
How to build a Personalized News Recommendation PlatformHow to build a Personalized News Recommendation Platform
How to build a Personalized News Recommendation PlatformTrieu Nguyen
 
How to grow your business in the age of digital marketing 4.0
How to grow your business  in the age of digital marketing 4.0How to grow your business  in the age of digital marketing 4.0
How to grow your business in the age of digital marketing 4.0Trieu Nguyen
 
Video Ecosystem and some ideas about video big data
Video Ecosystem and some ideas about video big dataVideo Ecosystem and some ideas about video big data
Video Ecosystem and some ideas about video big dataTrieu Nguyen
 
Concepts, use cases and principles to build big data systems (1)
Concepts, use cases and principles to build big data systems (1)Concepts, use cases and principles to build big data systems (1)
Concepts, use cases and principles to build big data systems (1)Trieu Nguyen
 
Open OTT - Video Content Platform
Open OTT - Video Content PlatformOpen OTT - Video Content Platform
Open OTT - Video Content PlatformTrieu Nguyen
 
Apache Hadoop and Spark: Introduction and Use Cases for Data Analysis
Apache Hadoop and Spark: Introduction and Use Cases for Data AnalysisApache Hadoop and Spark: Introduction and Use Cases for Data Analysis
Apache Hadoop and Spark: Introduction and Use Cases for Data AnalysisTrieu Nguyen
 
Introduction to Recommendation Systems (Vietnam Web Submit)
Introduction to Recommendation Systems (Vietnam Web Submit)Introduction to Recommendation Systems (Vietnam Web Submit)
Introduction to Recommendation Systems (Vietnam Web Submit)Trieu Nguyen
 

Mehr von Trieu Nguyen (20)

Building Your Customer Data Platform with LEO CDP in Travel Industry.pdf
Building Your Customer Data Platform with LEO CDP in Travel Industry.pdfBuilding Your Customer Data Platform with LEO CDP in Travel Industry.pdf
Building Your Customer Data Platform with LEO CDP in Travel Industry.pdf
 
Building Your Customer Data Platform with LEO CDP - Spa and Hotel Business
Building Your Customer Data Platform with LEO CDP - Spa and Hotel BusinessBuilding Your Customer Data Platform with LEO CDP - Spa and Hotel Business
Building Your Customer Data Platform with LEO CDP - Spa and Hotel Business
 
Building Your Customer Data Platform with LEO CDP
Building Your Customer Data Platform with LEO CDP Building Your Customer Data Platform with LEO CDP
Building Your Customer Data Platform with LEO CDP
 
How to track and improve Customer Experience with LEO CDP
How to track and improve Customer Experience with LEO CDPHow to track and improve Customer Experience with LEO CDP
How to track and improve Customer Experience with LEO CDP
 
[Notes] Customer 360 Analytics with LEO CDP
[Notes] Customer 360 Analytics with LEO CDP[Notes] Customer 360 Analytics with LEO CDP
[Notes] Customer 360 Analytics with LEO CDP
 
Leo CDP - Pitch Deck
Leo CDP - Pitch DeckLeo CDP - Pitch Deck
Leo CDP - Pitch Deck
 
LEO CDP - What's new in 2022
LEO CDP  - What's new in 2022LEO CDP  - What's new in 2022
LEO CDP - What's new in 2022
 
Lộ trình triển khai LEO CDP cho ngành bất động sản
Lộ trình triển khai LEO CDP cho ngành bất động sảnLộ trình triển khai LEO CDP cho ngành bất động sản
Lộ trình triển khai LEO CDP cho ngành bất động sản
 
Why is LEO CDP important for digital business ?
Why is LEO CDP important for digital business ?Why is LEO CDP important for digital business ?
Why is LEO CDP important for digital business ?
 
From Dataism to Customer Data Platform
From Dataism to Customer Data PlatformFrom Dataism to Customer Data Platform
From Dataism to Customer Data Platform
 
Data collection, processing & organization with USPA framework
Data collection, processing & organization with USPA frameworkData collection, processing & organization with USPA framework
Data collection, processing & organization with USPA framework
 
Part 1: Introduction to digital marketing technology
Part 1: Introduction to digital marketing technologyPart 1: Introduction to digital marketing technology
Part 1: Introduction to digital marketing technology
 
Why is Customer Data Platform (CDP) ?
Why is Customer Data Platform (CDP) ?Why is Customer Data Platform (CDP) ?
Why is Customer Data Platform (CDP) ?
 
How to build a Personalized News Recommendation Platform
How to build a Personalized News Recommendation PlatformHow to build a Personalized News Recommendation Platform
How to build a Personalized News Recommendation Platform
 
How to grow your business in the age of digital marketing 4.0
How to grow your business  in the age of digital marketing 4.0How to grow your business  in the age of digital marketing 4.0
How to grow your business in the age of digital marketing 4.0
 
Video Ecosystem and some ideas about video big data
Video Ecosystem and some ideas about video big dataVideo Ecosystem and some ideas about video big data
Video Ecosystem and some ideas about video big data
 
Concepts, use cases and principles to build big data systems (1)
Concepts, use cases and principles to build big data systems (1)Concepts, use cases and principles to build big data systems (1)
Concepts, use cases and principles to build big data systems (1)
 
Open OTT - Video Content Platform
Open OTT - Video Content PlatformOpen OTT - Video Content Platform
Open OTT - Video Content Platform
 
Apache Hadoop and Spark: Introduction and Use Cases for Data Analysis
Apache Hadoop and Spark: Introduction and Use Cases for Data AnalysisApache Hadoop and Spark: Introduction and Use Cases for Data Analysis
Apache Hadoop and Spark: Introduction and Use Cases for Data Analysis
 
Introduction to Recommendation Systems (Vietnam Web Submit)
Introduction to Recommendation Systems (Vietnam Web Submit)Introduction to Recommendation Systems (Vietnam Web Submit)
Introduction to Recommendation Systems (Vietnam Web Submit)
 

Kürzlich hochgeladen

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 

Kürzlich hochgeladen (20)

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 

Netty Cookbook - Chapter 1