Grizzly is an open source NIO framework that provides high performance APIs for TCP, UDP, and SSL communications. It aims to simplify programming with Java NIO by hiding complexity. Grizzly 2.0 is a complete redesign with a clearer core API and improved performance. It introduces unified buffer/memory management and thread pool APIs. Grizzly includes modules for HTTP, Comet, and servlets that can be used to build web servers and applications. The Grizzly community is active with around 25,000 downloads per month and discussions on mailing lists.
Tricks and Tips With NIO Using the Grizzly Frameworkelliando dias
Project Grizzly is an open source NIO framework that aims to simplify building scalable servers using non-blocking sockets. The presenters discuss Project Grizzly's performance advantages over other frameworks like Apache MINA. They provide an overview of Java NIO concepts like selectors and byte buffers. The presenters then share several tips and tricks they learned while developing Project Grizzly, such as using SelectionKey.attach() carefully since attached objects may not be reclaimed if the key is not returned to a ready state.
This document provides a comparative analysis of the Jetty and Tomcat web servers. It discusses their technical differences, such as architecture (Jetty uses a modular component approach while Tomcat is monolithic) and performance (Jetty scales better with many idle connections). It also covers non-technical comparisons like market share (Jetty is gaining on Tomcat), development community (Jetty's is more stable and collaborative), and how Jetty more closely follows web standards. The document concludes that while Tomcat is widely used, Jetty's flexibility and responsiveness to changes make it a preferable option.
Jetty 9 – The Next Generation Servlet ContainerCodemotion
Jetty has always been known to be a technology leader in several areas—from Jetty Continuations (later standardized as Servlet 3 asynchronous servlets) to WebSocket to SPDY—delivering exceptional production performance.
Jetty 9 is not only a great production server but provides features such as the Jetty Maven plug-in and embedded Jetty that help you in application development and integration testing. This session covers Jetty 9’s scalability, stability, performance, and features such as the new HTTP client and how to configure Jetty for optimal production performance.
This document discusses Jetty Continuation, which allows suspending and resuming HTTP requests in Jetty. It allows one thread to handle multiple requests asynchronously. With Continuation, thread usage can be reduced by suspending requests during asynchronous operations and resuming them on completion. Listeners can be used to handle request completion or timeout. Continuations provide asynchronous servlet processing capabilities to Jetty.
The document discusses WebSocket technology. It provides an overview of WebSocket, including how it works, how it differs from HTTP by being bidirectional and using a single TCP connection, and how the handshake process upgrades an HTTP connection to WebSocket. It also covers WebSocket subprotocols and extensions.
This document provides an overview of HTML5 WebSocket technology. It discusses limitations of traditional HTTP and how WebSocket enables full-duplex communication by reducing overhead and latency compared to alternative techniques like polling. The WebSocket API and protocol are introduced, along with browser support and server library options. Key benefits of WebSocket include unlimited connections per server, very small overhead, and true real-time bidirectional communication across the web.
Tomcat New Evolution discusses the new features introduced in Tomcat 6 and 7. Some key highlights include:
- Tomcat 6 introduced features like memory leak prevention, CSRF protection, session fixation protection, NIO connector, Comet support, logging improvements, web services support, and clustering.
- Tomcat 7 features included externalizing static resources, WebSocket support, easier embedded usage, and asynchronous logging.
- Both versions aimed to improve performance, security, and scalability through these new capabilities. Tomcat continues evolving to support newer standards and address common issues.
Tricks and Tips With NIO Using the Grizzly Frameworkelliando dias
Project Grizzly is an open source NIO framework that aims to simplify building scalable servers using non-blocking sockets. The presenters discuss Project Grizzly's performance advantages over other frameworks like Apache MINA. They provide an overview of Java NIO concepts like selectors and byte buffers. The presenters then share several tips and tricks they learned while developing Project Grizzly, such as using SelectionKey.attach() carefully since attached objects may not be reclaimed if the key is not returned to a ready state.
This document provides a comparative analysis of the Jetty and Tomcat web servers. It discusses their technical differences, such as architecture (Jetty uses a modular component approach while Tomcat is monolithic) and performance (Jetty scales better with many idle connections). It also covers non-technical comparisons like market share (Jetty is gaining on Tomcat), development community (Jetty's is more stable and collaborative), and how Jetty more closely follows web standards. The document concludes that while Tomcat is widely used, Jetty's flexibility and responsiveness to changes make it a preferable option.
Jetty 9 – The Next Generation Servlet ContainerCodemotion
Jetty has always been known to be a technology leader in several areas—from Jetty Continuations (later standardized as Servlet 3 asynchronous servlets) to WebSocket to SPDY—delivering exceptional production performance.
Jetty 9 is not only a great production server but provides features such as the Jetty Maven plug-in and embedded Jetty that help you in application development and integration testing. This session covers Jetty 9’s scalability, stability, performance, and features such as the new HTTP client and how to configure Jetty for optimal production performance.
This document discusses Jetty Continuation, which allows suspending and resuming HTTP requests in Jetty. It allows one thread to handle multiple requests asynchronously. With Continuation, thread usage can be reduced by suspending requests during asynchronous operations and resuming them on completion. Listeners can be used to handle request completion or timeout. Continuations provide asynchronous servlet processing capabilities to Jetty.
The document discusses WebSocket technology. It provides an overview of WebSocket, including how it works, how it differs from HTTP by being bidirectional and using a single TCP connection, and how the handshake process upgrades an HTTP connection to WebSocket. It also covers WebSocket subprotocols and extensions.
This document provides an overview of HTML5 WebSocket technology. It discusses limitations of traditional HTTP and how WebSocket enables full-duplex communication by reducing overhead and latency compared to alternative techniques like polling. The WebSocket API and protocol are introduced, along with browser support and server library options. Key benefits of WebSocket include unlimited connections per server, very small overhead, and true real-time bidirectional communication across the web.
Tomcat New Evolution discusses the new features introduced in Tomcat 6 and 7. Some key highlights include:
- Tomcat 6 introduced features like memory leak prevention, CSRF protection, session fixation protection, NIO connector, Comet support, logging improvements, web services support, and clustering.
- Tomcat 7 features included externalizing static resources, WebSocket support, easier embedded usage, and asynchronous logging.
- Both versions aimed to improve performance, security, and scalability through these new capabilities. Tomcat continues evolving to support newer standards and address common issues.
This document provides an overview of Akka I/O, which is a toolkit for building concurrent, fault-tolerant, and scalable applications using message passing and reactive and actor-based APIs. It discusses the basic entities used in Akka I/O like ByteString, and how to create TCP and UDP clients and servers. It also covers lessons learned like how message sending/receiving works, and the importance of heartbeat messages to detect disconnected connections.
This document discusses proposed features for Servlet 3.1 including support for cloud platforms, non-blocking I/O, protocol upgrades, and security enhancements. Key points include leveraging Java EE 7 services to enable multi-tenancy in cloud environments, exposing a non-blocking I/O API using listeners and asynchronous streams and sinks, and allowing HTTP connections to upgrade to other protocols like WebSocket. The proposed features aim to improve Servlet for cloud/PaaS usage and support newer web technologies.
The Java EE 6 platform provides easier development, more flexibility, and improved learnability. It includes profiles like the Web Profile, improved technologies like Servlet 3.0 with asynchronous processing, EJB 3.1 with singleton sessions, and JPA 2.0 with criteria queries. The platform aims to embrace open source libraries and provide full pluggability. All specifications will be developed transparently and the final Java EE 6 release is scheduled for September 2009.
WebSocket is a protocol that provides bidirectional communication over a single TCP connection. It uses an HTTP handshake to establish a connection and then transmits messages as frames that can contain text or binary data. The frames include a header with metadata like opcode and payload length. WebSocket aims to provide a standard for browser-based applications that require real-time data updates from a server.
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...Edureka!
This Edureka "What is Node.js" tutorial will help you to learn the Node.js fundamentals and how to create an application in Node.js. Node.js is an open-source, cross-platform JavaScript runtime environment for developing a diverse variety of server tools and applications. Below are the topics covered in this tutorial:
1) Client Server Architecture
2) Limitations of Multi – Threaded Model
3) What is Node.js?
4) Features of Node.js
5) Node.js Installation
6) Blocking Vs. Non – Blocking I/O
7) Creating Node.js Program
8) Node.js Modules
JavaOne San Francisco 2013 - Servlet 3.1 (JSR 340)Shing Wai Chan
This document outlines the key features of Servlet 3.1 including non-blocking I/O, protocol upgrades, and security enhancements. It discusses how Servlet 3.1 introduces APIs for asynchronous and non-blocking I/O using read and write listeners. It also covers how protocol upgrades allow servlets to upgrade HTTP connections to other protocols like WebSocket. The document reviews new security features like changing the session ID on authentication to prevent fixation attacks.
Upgrading to Apache Tomcat 7 covers the key changes in upgrading from older versions of Tomcat to version 7, including specification changes to support Servlet 3.0 and new features like asynchronous servlets and annotations. It outlines new management, performance, security, deployment, and embedding capabilities in Tomcat 7. The presentation also provides an overview of WebSocket support in Tomcat 7 and future plans, as well as useful resources for more information.
OSGi-enabled Java EE Applications using GlassFishArun Gupta
The document discusses OSGi-enabled Java EE applications in GlassFish. It provides an overview of OSGi and how it is used in GlassFish to create modular applications. Key points include:
- OSGi allows applications to be broken into bundles that can be installed, uninstalled, started and stopped dynamically.
- GlassFish runs on top of OSGi and all GlassFish modules are OSGi bundles. This allows for a modular platform and custom application servers.
- OSGi specifications like Declarative Services allow OSGi services to be used in Java EE applications through JNDI lookups.
- Hybrid applications can be both OSGi bundles and Java EE archives, leveraging capabilities of both platforms.
Introduction to node js - From "hello world" to deploying on azureColin Mackay
Slide deck from my talk on Node.js.
More information is available here: http://colinmackay.scot/2014/11/29/dunddd-2014-introduction-to-node-jsfrom-hello-world-to-deploying-on-azure/
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...Ivan Loire
Node.js is a JavaScript runtime built on Chrome's V8 engine that is lightweight and efficient for building fast web applications. It allows single-threaded, event-driven programming that is ideal for I/O intensive applications like web servers. The document discusses why Node.js is exciting for developers, how it works asynchronously using callbacks, and how frameworks like Express.js help build full-featured web applications with Node.js.
The document discusses the history and development of WebSockets. It describes how earlier protocols like HTTP, AJAX, and polling had limitations for real-time full-duplex communication needs. WebSockets were created as a new protocol to allow persistent connections and transmission of data between a client and server with low overhead. The document outlines the WebSocket handshake process and API, discusses security considerations, and provides examples of how WebSockets have been used in online games, visualization tools, and other real-time applications.
Node JS Express: Steps to Create Restful Web AppEdureka!
Node.js uses JavaScript - a language known to millions of developers worldwide - thus giving it a much lower learning curve even for complete beginners. Using Node.js you can build simple Command Line programs or complex enterprise level web applications with equal ease. Node.js is an event-driven, server-side, asynchronous development platform with lightning speed execution. It is open source and cross-platform, running on OS X, Linux and Windows. It also has an open source community that produces amazing modules available for use in your project for additional functionalities. Node.js helps you to code the most complex functionalities in just a few lines of code.
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Yevgeniy Brikman
This is a talk about managing your software and infrastructure-as-code that walks through a real-world example of deploying microservices on AWS using Docker, Terraform, and ECS.
Node.js is well-suited for applications that require lightweight concurrency and asynchronous I/O. It uses an event-driven, non-blocking model that makes it efficient for real-time applications with high concurrency needs, such as chat, live data feeds, and web site monitoring dashboards. While Node.js performs well for lightweight operations, heavier CPU-intensive tasks may be better suited for Java/J2EE due to its multi-threading capabilities. The Node.js ecosystem is growing rapidly but still less mature than Java/J2EE's established ecosystem.
This document provides an overview of embedded GlassFish, including its history and key features. Embedded GlassFish allows running a GlassFish application server within a JVM without requiring a full GlassFish installation. It provides benefits like very fast startup times, running web applications like regular Java applications, and using GlassFish for testing without a separate domain. Examples are provided demonstrating how to embed GlassFish using the API and via command line. The schedule outlines upcoming support for Java standards and references provide links to related projects.
This document discusses asynchronous I/O in Java and Scala using the Play Framework. It describes how LinkedIn uses a service-oriented architecture with hundreds of services making requests to each other. It then covers how Play supports non-blocking I/O using asynchronous code, promises, and futures to allow parallel requests without blocking threads. Key points covered include using map and flatMap to transform promises and futures, handling errors and timeouts, and the benefits of non-blocking I/O for scalability.
The document discusses HTTP/2 and its implications for Java. It begins with an introduction to HTTP/2 and why it was created, noting limitations of HTTP/1.1 in handling modern web pages with many dependent resources. The document then covers specifics of the HTTP/2 protocol, and how it addresses issues like head-of-line blocking. It discusses how HTTP/2 is being adopted by browsers and considers impacts and integration of HTTP/2 with Java SE and Java EE technologies.
The document discusses Node.js, including what it is, its benefits, use cases, and readiness for enterprise use. Node.js is an event-driven, non-blocking I/O model that is well-suited for building scalable web applications with real-time features but not CPU-intensive batch processes. It promotes fast development with smaller codebases and is widely adopted by enterprises. The document also covers Node.js application architecture, database support, development tools, deployment practices, and strategies for adoption.
Node js is said to be an open source. It is the cross-platform JavaScript runtime to developing different types of applications and tools. Thus the best node js course js is not a JavaScript framework with its many of the core modules which are mainly written in the JavaScript and even the developers to writing a new module. It is also primarily used to develop the input and output web applications like single page applications, video streaming sites with other web applications.
The document discusses Project Grizzly Comet, an open source framework for building real-time web applications using Comet techniques. It provides an overview of key Grizzly Comet components like CometContext, CometHandler, NotificationHandler, and how they enable asynchronous communication between a server and browsers. Additional related projects like Grizzly Messages Bus, Bayeux protocol, and Grizzlet interface are also summarized.
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE
FIWARE Wednesday Webinar - Short Term History within Smart Systems (2nd April 2020)
Corresponding webinar recording: https://youtu.be/fX_YAc7G4Dk
This webinar will show how to utilise times series components and monitor and display trends within FIWARE applications.
Chapter: Core Context
Difficulty: 3
Audience: Any Technical
Presenter: Jason Fox (Senior Technical Evangelist, FIWARE Foundation)
This document provides an overview of Akka I/O, which is a toolkit for building concurrent, fault-tolerant, and scalable applications using message passing and reactive and actor-based APIs. It discusses the basic entities used in Akka I/O like ByteString, and how to create TCP and UDP clients and servers. It also covers lessons learned like how message sending/receiving works, and the importance of heartbeat messages to detect disconnected connections.
This document discusses proposed features for Servlet 3.1 including support for cloud platforms, non-blocking I/O, protocol upgrades, and security enhancements. Key points include leveraging Java EE 7 services to enable multi-tenancy in cloud environments, exposing a non-blocking I/O API using listeners and asynchronous streams and sinks, and allowing HTTP connections to upgrade to other protocols like WebSocket. The proposed features aim to improve Servlet for cloud/PaaS usage and support newer web technologies.
The Java EE 6 platform provides easier development, more flexibility, and improved learnability. It includes profiles like the Web Profile, improved technologies like Servlet 3.0 with asynchronous processing, EJB 3.1 with singleton sessions, and JPA 2.0 with criteria queries. The platform aims to embrace open source libraries and provide full pluggability. All specifications will be developed transparently and the final Java EE 6 release is scheduled for September 2009.
WebSocket is a protocol that provides bidirectional communication over a single TCP connection. It uses an HTTP handshake to establish a connection and then transmits messages as frames that can contain text or binary data. The frames include a header with metadata like opcode and payload length. WebSocket aims to provide a standard for browser-based applications that require real-time data updates from a server.
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...Edureka!
This Edureka "What is Node.js" tutorial will help you to learn the Node.js fundamentals and how to create an application in Node.js. Node.js is an open-source, cross-platform JavaScript runtime environment for developing a diverse variety of server tools and applications. Below are the topics covered in this tutorial:
1) Client Server Architecture
2) Limitations of Multi – Threaded Model
3) What is Node.js?
4) Features of Node.js
5) Node.js Installation
6) Blocking Vs. Non – Blocking I/O
7) Creating Node.js Program
8) Node.js Modules
JavaOne San Francisco 2013 - Servlet 3.1 (JSR 340)Shing Wai Chan
This document outlines the key features of Servlet 3.1 including non-blocking I/O, protocol upgrades, and security enhancements. It discusses how Servlet 3.1 introduces APIs for asynchronous and non-blocking I/O using read and write listeners. It also covers how protocol upgrades allow servlets to upgrade HTTP connections to other protocols like WebSocket. The document reviews new security features like changing the session ID on authentication to prevent fixation attacks.
Upgrading to Apache Tomcat 7 covers the key changes in upgrading from older versions of Tomcat to version 7, including specification changes to support Servlet 3.0 and new features like asynchronous servlets and annotations. It outlines new management, performance, security, deployment, and embedding capabilities in Tomcat 7. The presentation also provides an overview of WebSocket support in Tomcat 7 and future plans, as well as useful resources for more information.
OSGi-enabled Java EE Applications using GlassFishArun Gupta
The document discusses OSGi-enabled Java EE applications in GlassFish. It provides an overview of OSGi and how it is used in GlassFish to create modular applications. Key points include:
- OSGi allows applications to be broken into bundles that can be installed, uninstalled, started and stopped dynamically.
- GlassFish runs on top of OSGi and all GlassFish modules are OSGi bundles. This allows for a modular platform and custom application servers.
- OSGi specifications like Declarative Services allow OSGi services to be used in Java EE applications through JNDI lookups.
- Hybrid applications can be both OSGi bundles and Java EE archives, leveraging capabilities of both platforms.
Introduction to node js - From "hello world" to deploying on azureColin Mackay
Slide deck from my talk on Node.js.
More information is available here: http://colinmackay.scot/2014/11/29/dunddd-2014-introduction-to-node-jsfrom-hello-world-to-deploying-on-azure/
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...Ivan Loire
Node.js is a JavaScript runtime built on Chrome's V8 engine that is lightweight and efficient for building fast web applications. It allows single-threaded, event-driven programming that is ideal for I/O intensive applications like web servers. The document discusses why Node.js is exciting for developers, how it works asynchronously using callbacks, and how frameworks like Express.js help build full-featured web applications with Node.js.
The document discusses the history and development of WebSockets. It describes how earlier protocols like HTTP, AJAX, and polling had limitations for real-time full-duplex communication needs. WebSockets were created as a new protocol to allow persistent connections and transmission of data between a client and server with low overhead. The document outlines the WebSocket handshake process and API, discusses security considerations, and provides examples of how WebSockets have been used in online games, visualization tools, and other real-time applications.
Node JS Express: Steps to Create Restful Web AppEdureka!
Node.js uses JavaScript - a language known to millions of developers worldwide - thus giving it a much lower learning curve even for complete beginners. Using Node.js you can build simple Command Line programs or complex enterprise level web applications with equal ease. Node.js is an event-driven, server-side, asynchronous development platform with lightning speed execution. It is open source and cross-platform, running on OS X, Linux and Windows. It also has an open source community that produces amazing modules available for use in your project for additional functionalities. Node.js helps you to code the most complex functionalities in just a few lines of code.
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Yevgeniy Brikman
This is a talk about managing your software and infrastructure-as-code that walks through a real-world example of deploying microservices on AWS using Docker, Terraform, and ECS.
Node.js is well-suited for applications that require lightweight concurrency and asynchronous I/O. It uses an event-driven, non-blocking model that makes it efficient for real-time applications with high concurrency needs, such as chat, live data feeds, and web site monitoring dashboards. While Node.js performs well for lightweight operations, heavier CPU-intensive tasks may be better suited for Java/J2EE due to its multi-threading capabilities. The Node.js ecosystem is growing rapidly but still less mature than Java/J2EE's established ecosystem.
This document provides an overview of embedded GlassFish, including its history and key features. Embedded GlassFish allows running a GlassFish application server within a JVM without requiring a full GlassFish installation. It provides benefits like very fast startup times, running web applications like regular Java applications, and using GlassFish for testing without a separate domain. Examples are provided demonstrating how to embed GlassFish using the API and via command line. The schedule outlines upcoming support for Java standards and references provide links to related projects.
This document discusses asynchronous I/O in Java and Scala using the Play Framework. It describes how LinkedIn uses a service-oriented architecture with hundreds of services making requests to each other. It then covers how Play supports non-blocking I/O using asynchronous code, promises, and futures to allow parallel requests without blocking threads. Key points covered include using map and flatMap to transform promises and futures, handling errors and timeouts, and the benefits of non-blocking I/O for scalability.
The document discusses HTTP/2 and its implications for Java. It begins with an introduction to HTTP/2 and why it was created, noting limitations of HTTP/1.1 in handling modern web pages with many dependent resources. The document then covers specifics of the HTTP/2 protocol, and how it addresses issues like head-of-line blocking. It discusses how HTTP/2 is being adopted by browsers and considers impacts and integration of HTTP/2 with Java SE and Java EE technologies.
The document discusses Node.js, including what it is, its benefits, use cases, and readiness for enterprise use. Node.js is an event-driven, non-blocking I/O model that is well-suited for building scalable web applications with real-time features but not CPU-intensive batch processes. It promotes fast development with smaller codebases and is widely adopted by enterprises. The document also covers Node.js application architecture, database support, development tools, deployment practices, and strategies for adoption.
Node js is said to be an open source. It is the cross-platform JavaScript runtime to developing different types of applications and tools. Thus the best node js course js is not a JavaScript framework with its many of the core modules which are mainly written in the JavaScript and even the developers to writing a new module. It is also primarily used to develop the input and output web applications like single page applications, video streaming sites with other web applications.
The document discusses Project Grizzly Comet, an open source framework for building real-time web applications using Comet techniques. It provides an overview of key Grizzly Comet components like CometContext, CometHandler, NotificationHandler, and how they enable asynchronous communication between a server and browsers. Additional related projects like Grizzly Messages Bus, Bayeux protocol, and Grizzlet interface are also summarized.
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE
FIWARE Wednesday Webinar - Short Term History within Smart Systems (2nd April 2020)
Corresponding webinar recording: https://youtu.be/fX_YAc7G4Dk
This webinar will show how to utilise times series components and monitor and display trends within FIWARE applications.
Chapter: Core Context
Difficulty: 3
Audience: Any Technical
Presenter: Jason Fox (Senior Technical Evangelist, FIWARE Foundation)
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016Zabbix
At DBC we are running docker and other container types in a mesos/marathon cluster environment. I will demonstrate how we collect statistics, logs etc. and monitor this environment, showing configuration examples, data flows and templates.
Some of the covered topics:
- Mesos master and agents
- Marathon Framework
- Docker engine
- Containers
- Zookeeper
- Elasticserach/ELK
GlassFish v3 Prelude is a lightweight, modular application server featuring enhancements such as modular OSGi architecture, dynamic deployment capabilities, and support for Java EE 6 technologies. It provides simplified development features like auto redeployment and session retention. The lightweight server can be used for Java, Groovy, Ruby on Rails, and other applications and includes tools like the update center and embedded usage.
Kubernetes is exploding in popularity right now and has all the buzz and cargo-culting that Docker enjoyed just a few years ago. But what even is Kubernetes? How do I run my PHP apps in it? Should I run my PHP apps in it ?
Simon Willison gave a presentation on Comet, a technique for enabling live data updates in web applications. Comet allows a web server to push events to connected browsers in real-time. It has faced many technical challenges due to browser limitations. Key techniques discussed include streaming, long polling, and the Bayeaux protocol which provides a common way for Comet clients and servers to communicate. The presentation showed how to easily build a basic Comet application using Jetty and Dojo in just a few lines of code.
The document provides instructions for a lab on Snort and firewall rules. It describes:
1) Setting up the virtual environment and configuring networking on the CyberOps Workstation VM.
2) Explaining the differences between firewall and IDS rules while noting their similarities, such as both having matching and action components.
3) Having students run commands to start a malware server, use Snort to monitor traffic, and download a file from the server to trigger an alert, observing the alert in the Snort log.
Dans cette session, Chris Wilson parlera d’Internet Explorer 8 et de ses avancées en termes de conformité aux standards et de prise en charge d’AJAX. Il illustrera aussi les nouvelles possibilités qui s’offrent aux responsables de sites Web.
This document discusses network topology offloading using intelligent network interface cards (NICs). It proposes using a programmable network processor like the Netronome NFP3200 to implement complex network topologies in software and offload the data and control planes for network functions like switching, firewalls, and load balancing. Example topologies are presented to demonstrate how virtual machines could be connected using common network elements like switches implemented entirely in the network processor.
Presented at the Yahoo! Web Development Summit in December 2007. Comet is the new name for the old trick of streaming events down to the browser from the server. This talk introduces Comet and shows how, despite the terrifying browser tricks needed, it's actually now very simple to build against.
Matt Tucker discusses how XMPP (Jabber) can be used for cloud services and architectures. Some key benefits of XMPP over traditional web services include its support for real-time bidirectional communication, presence, and easier firewall traversal. Open source XMPP servers like Openfire and client libraries provide tools to build scalable cloud components and services. Examples like Twitter's use of XMPP for its firehose API demonstrate how XMPP can enable new types of cloud applications.
This document summarizes a talk about microservices architecture using Golang. It discusses some key advantages of Golang for building microservices like static compilation, concurrency support through goroutines, and built-in HTTP and JSON packages. It also covers Docker for containerization, and tools like Docker Machine, Swarm and Compose for orchestration. Prometheus is presented as an open-source monitoring solution for microservices running in Docker containers.
This talk will focus on a brief overview of Kubernetes, with a brief demo, and then more of an in-depth focus on issues we've faced moving PHP projects into Docker and Kubernetes like signal propagation, init systems, and logging.
Talk from Cape Town PHP meetup on Feb. 7, 2016:
https://www.meetup.com/Cape-Town-PHP-Group/events/237226310/
Code: https://github.com/zoidbergwill/kubernetes-php-examples
Slides as markdown: http://www.zoidbergwill.com/presentations/2017/kubernetes-php/index.md
Devoxx 2015 - Building the Internet of Things with Eclipse IoTBenjamin Cabé
Eclipse is much more than an IDE. Repeat after me: "Eclipse is much more than just an IDE! Eclipse has a lot of cool projects that can get me started with the Internet of Things!". So whether or not you are using Eclipse as your IDE, this session will give you a crash course on the available technologies to build the Internet of Things on top of Java. You will learn how protocols like MQTT, CoAP or LwM2M and embedded frameworks like Kura help solve classical IoT issues, and you will get useful tips to move from "yay, I blinked an LED!" to more useful industrial IoT scenarios.
Kommons is a collection of reusable Java classes for J2ME applications. It includes classes for logging, working with ISO date/time formats, HTTP networking, Bluetooth communication, caching objects to RMS, and more. The goals of Kommons are to provide classes that are stable, easy to use, well tested, and open source. Future work includes improving documentation, testing, and integrating other useful projects.
CAS 4.2 focuses on easy configuration through auto-configuration and reducing XML, universal protocol support through additional modules, and delegated authentication through pac4j integrations. New features include configuration via properties files instead of XML, support for OAuth, SAML, and OpenID Connect through additional dependencies, and replacing Spring Security with pac4j for security. Future plans for CAS 4.3 include Java 8 support, multifactor authentication, improved OAuth/OpenID Connect, SAML SSO, and a Groovy management console.
This document discusses developing applications for SDN controllers using the Floodlight controller. It covers the main steps to write a module for Floodlight including creating a listener, adding the class in Eclipse, setting up module dependencies and initialization. It also discusses how to handle packet-in messages by receiving them, extracting information from the Ethernet frame, and installing flow entries on Open vSwitch switches by creating match, flow add, and action objects. The document uses examples to demonstrate how to extract layer 3 and above information from packets, and how to create and send flow modification messages to switches.
This document describes Xavier Mertens' approach to implementing a full packet capture (FPC) infrastructure using Docker containers and Moloch. Key components include Moloch capture sensors running in Docker containers to perform packet capture and transfer files to a central Moloch server, and a Moloch server container that indexes transferred PCAP files for analysis. This distributed approach allows capturing traffic from multiple locations and centralizing it for long-term retention and investigation in Moloch. The open source project is available on GitHub to allow others to test and deploy the FPC solution.
Do any VM's contain a particular indicator of compromise? E.g. Run a YARA signature over all executables on my virtual machines and tell me which ones match.
The document provides an overview of juggling, including definitions, basic techniques, objects used, physics principles, mathematical concepts, social aspects, world records, and introductory resources. It defines juggling as the manipulation of objects for recreation or entertainment. Basic demonstrations include 3-ball cascade, shower, and column passes. Juggling incorporates a variety of objects and actions governed by physics principles like gravity, mass, and angular momentum. Siteswap notation is used to describe juggling patterns mathematically. The document emphasizes that juggling benefits brain function and can be learned by anyone, while also highlighting its social and competitive aspects.
Initial Sketch on Capstone Fall 2016. Uses RFID, Beacons, Phones, NativeScript and AMTech to provide an App for attendees and presenters to the Capstone Festival
This document discusses activity management using Internet of Things (IOT) sensors and devices. It provides examples of how activity management can be used in retail stores, conferences, and transportation to track inventory, employee movement, attendee movement, bus arrivals, and more. It also describes the components of an activity management platform, including sensors, gateways, processing rules, data storage, and applications. The platform can operate on-premise, at the edge, or in the cloud and support various protocols and devices.
The document discusses developing software in the new era of digital transformation. Key points include:
- Mobile, internet of things, cloud computing, big data, and fast product cycles are driving digital transformations.
- Systems are evolving from systems of record to systems of engagement, insight, and automation.
- Developers need to embrace cloud-first approaches, open source, cross-platform development, and leverage existing systems of record.
As part of the Progress Exchange conference in Sao Paulo (Oct 2015) I presented on some key trends in IT: Mobile, IOT, Cloud and Data, talked about Systems of Record and Systems of Engagement, and described how the trends are relevant to creating Systems of Engagement
The document discusses the Internet of Things (IoT) and how Progress software can help build IoT applications. It describes what IoT is and why JavaScript is well-suited for IoT development. Examples are provided of IoT applications like using beacons to detect presence and control lights (Roll Call) and tracking snow plow locations. Future directions discussed include augmented reality, wearables, home automation and connected cars.
What is IoT and how Modulus and Pacific can Help - Featuring Node.js and Roll...Eduardo Pelegri-Llopart
Presentation at Progress Exchange 2014.
The Internet of Things is everywhere, from the connected home to the connected car, from smart watches to smart glasses, from beacons to smart thermostats. In this session we will provide an updated view of the IOT space and we will show you how Pacific technology like Node.js and Rollbase can be used to build IOT applications.
The presentation included a demo showing how Node.js and MongoDB can be used to process a GPS feed (from vehicles like snow plows), using MongoDB to store the data. The data is then presented to Rollbase as an external source where it can be combined with other sources in model-driven productivity applications. The content is also exposed via REST through a SPA using AngularJS and through an Apache Cordova (Phonegap)-based mobile app.
Oracle presented their roadmap for GlassFish following their acquisition of Sun Microsystems. Key points include maintaining GlassFish as an open source project, releasing new versions every 100 days with improvements and additional features, and integrating GlassFish with Oracle's other products over time. Future releases will focus on areas like centralized administration, high availability, and Java EE specification support. Oracle aims to balance open governance of GlassFish with their commercial interests.
Oracle presented their roadmap for the GlassFish application server following their acquisition of Sun Microsystems. Key points include:
1) GlassFish will continue to be developed through 100 day releases with Oracle support and integration with Oracle products.
2) Future releases will focus on improved clustering, high availability, and Java EE specification support.
3) GlassFish will remain open source but Oracle will distribute a commercial version with support and additional features.
The document discusses Sun's GlassFish Portfolio, which includes the GlassFish Enterprise Server, GlassFish Web Space Server, GlassFish Web Stack, and GlassFish ESB. It provides an overview of each product, highlights recent improvements and new features, and announces related sessions at the CommunityOne conference.
VirtualBox 2.2 provides new features for sharing and publishing virtual appliances using the Open Virtualization Format (OVF) standard. It offers improved performance through hypervisor and graphics optimizations and supports more powerful guests. The update also aims to simplify the user experience with smarter defaults, enhanced networking options, and improved interoperability.
This document discusses Java EE 6 Web Beans, which define a unifying dependency injection and contextual lifecycle model. Some key points:
- Web Beans are defined in JSR-299 and provide a richer dependency management model for Java EE 6 that integrates web and transactional tiers.
- Objects can be injected including EJBs, resources, producers. Scopes like request and conversation are supported.
- Producer methods allow controlling object instantiation. Events allow decoupling producers and observers. Specialization allows overriding beans.
- The reference implementation is integrated in JBoss and GlassFish. It provides extra integrations and is available for other containers via addons. The JSR is in its second public
Ludovic Poitou gives a presentation on the OpenDS project. OpenDS is an open source LDAP directory server written in Java. The presentation discusses the history and goals of OpenDS, including improvements to performance, scalability, and features in recent and upcoming versions like OpenDS 2.0. The roadmap envisions more frequent incremental releases with a focus on ease of use, monitoring, and continued performance optimizations.
The document summarizes a presentation on Project Fuji, the next generation of OpenESB. Some key points:
- Project Fuji aims to improve agility, flexibility, ease-of-use and productivity compared to OpenESB v2.
- New features include web-based service composition, using a domain-specific language for composition, and first-class support for enterprise integration patterns.
- The architecture is modular and lightweight, running as an OSGi bundle. It focuses on conventions over configuration for higher productivity.
- The presentation concludes that Project Fuji is revolutionary in simplifying and enriching the GlassFish offering while also being evolutionary in leveraging the existing OpenESB component ecosystem
The document discusses Nuxeo EP5.2, an open source enterprise content management platform. It provides an overview of Nuxeo's architecture including key components like the Nuxeo Runtime, Core, and WebEngine. The document also outlines new features in version 5.2 like content annotations and previews. Finally, it speculates on potential directions for Nuxeo EP6, including CMIS support, replication, and building social applications.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Discover top-tier mobile app development services, offering innovative solutions for iOS and Android. Enhance your business with custom, user-friendly mobile applications.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
3. 1. What is Project Grizzly
• Open Source Project https://grizzly.dev.java.net
• Open Sourced under CDDL/LGPL license.
• Very open community policy.
> All project communications are done on Grizzly mailing
list. No internal, off mailing list conversations a-la-Sailfin.
> Project meetings open to anyone
• Project decisions are made by project member
votes. Code contributions frequents.
• Approx ~25 000 download for the last 3 months
• Mailing list quite busy some day!
3
4. 1. What is project Grizzly
• Commiters
> Oleksiy Stashok (Sun) – Lead (all modules)
> Jean-Francois Arcand (Sun)( all modules)
> Shing Wai Chan (Sun)( http, comet, bayeux)
> Ken Cavanaugh (Sun)( framework)
> Charlie Hunt (Sun)( framework)
> John Vieten (Conclude GmbH)( tutorial, framework)
> Sebastien Dionne (Consultant)( tutorial, framework)
> Takai Naoto (ITOCHU Techno-Solution)( jruby, bayeux)
• Active users list…the community answer for us!
4
5. What is Project Grizzly
ses Java NIO primitives and hides the complexity
U
programming with Java NIO.
tarted in 2004 (Grizzly 1.0). Own project February 2007
S
(Grizzly 1.5)
.0 represented extracted network layer of Glassfish
1
asy-to-use high performance APIs for TCP, UDP and SSL
E
communications.
tilizes high performance buffers and buffer management.
U
hoice of several different high performance thread pools.
C
hip with an HTTP module which is really easy to embed.
S
5
8. 2.1 Framework
• The root of Grizzly. Everything build on top of this module
• The Grizzly Framework bundles default implementation
for TCP, UDP and TLS/SSL transports.
• Used to implement protocol based applications like http,
sip, custom protocol, etc.
• In this module, EVERYTHING is customizable. If the
default isn't doing what you need , customize it!
8
14. HTTP modules (http, http-utils)
• The Grizzly Framework also have an HTTP framework that can be
used to build Web Server
• Extremely small, perfect for small devices
> Like iPhone, Android, Smart Box, etc.
• Simple interface to allow customization of the HTTP Protocol
> GrizzlyRequest: A utility class to manipulate the HTTP protocol
request.
> GrizzlyResponse: A utility class to manipulate the HTTP protocol
response.
> GrizzlyAdapter: A utility class to manipulate the HTTP request/
response object.
14
15. 2.2 Http module
public class FileAdapter extends GrizzlyAdapter{
public void service(GrizzlyRequest req,
GrizzlyResponse res){
ByteChun bc = req.decodedURI();
// Prevent XSS attack
HttpRequestDecoded.decode(bc);
// OK, we are safe
res.write((loadFile(bc));
res.flush();
res.close();
15
19. 2.4 Grizzly Comet Framework
• Grizzly Comet is a framework that ship with
GlassFish v1|2|3, and can also be embedded into
any application.
> One day , the code will be moved to a new project
called Atmosphere (Atmosphere.dev.java.net)
> Grizzly Comet, for all web server!!
• The Grizzly Comet Framework includes a set of
components that can be used for building Comet
based application:
> Grizzly Comet, Continuation, Grizzlet, Messages Bus,
Bayeux support
19
20. Atmosphere….
Reuse experience and code...from Grizzly Comet to Jersey!
Grizzlet Atmosphere re-usable
(Atmosphere POJO) Components library
Jersey's Injection Provider, Jersey’s IoC Support
Atmosphere Servlet Runtime Engine
Tomcat Comet Grizzly Comet Jetty Comet Blocking WS
User defined Atmosphere Component
20
23. 2.5 Grizzly Servlet Container
• The community started developing a Servlet
Container
> Incomplete, not (*yet*) Servlet compliant
> Very small and fast
> No extra…just the basic….with power
> Easy to embed in any application.
• Really useful for writing unit test.
23
26. 4.1 Introduction
• Started in June 2008.
• Completely new Grizzly core API.
• No backwards compatibility requirement.
> 1.0 suffered design limitation like supporting SJSAS,
Tomcat API AND Sun Web Server API. This was a major
restriction and some API are quite ugly.
> 1.5 was a tentative to keep our 1.0 Community on board,
and grow.
> 1.8.x is successful, but is now time to do a revolution,
e.g. bye bye GlassFish API
26
27. 4.2 Goals
• Make framework core API more clear and useful,
based on earlier experience. Especially client side.
• Performance. Make sure API changes will not affect
the performance, which is still the main goal for
Grizzly.
• Introduce unified Buffer/Memory management API.
• Unify ThreadPool implementation. Make it compatible
with ExecutorService, provided by JDK.
• Reborn a Grizzly based on Community Feedback
and lessons learned since 2004.!
27
29. 4.3 New features
• Filter chain standalone read/write.
• Message parsing using streams.
• Smart message parser
29
30. 4.3.1 FilterChain standalone read/
write
• Leverage filters logic for a client side.
• Minimize the effort to build nice client code.
• Supports blocking and asynchronous modes
30
31. 4.3.1 FilterChain standalone read/
write
TCPNIOTransport transport =
TransportManager.instance().createTCPTransport();
transport.getFilterChain().add(new TransportFilter());
transport.getFilterChain().add(new SSLFilter());
transport.getFilterChain().add(new StringFilter());
transport.getFilterChain().add(new EchoFilter());
--- (1) start the “transport” in the server mode
--- (2) connect client the “connection” to the “transport”
Future writeFuture = transport.getFilterChain().write(connection, “Hello
world”);
Future readFuture = transport.getFilterChain().read(connection);
String result = (String) readFuture.get();
// The result should contain “Hello world”, sent by server
31
32. 4.3.2 Message parsing using streams
• Simplify message parsing.
• No ByteBuffer positions, limits, capacities!
• Simple stream API, which supports Java primitive
types and arrays.
32
33. 4.3.2 Message parsing using streams
// initialize the filter chain
transport.getFilterChain().add(new TransportFilter());
transport.getFilterChain().add(new StreamFilter());
transport.getFilterChain().add(new CustomProtocolParser());
-------------------------------- cut --------------------------------------
public class CustomProtocolParser extends FilterAdapter {
public NextAction handleRead(FilterChainContext context) {
StreamMessage message =
(StreamMessage) context.getMessage();
Reader reader = message.getReader();
if (reader.availabe(4)) {
int a = reader.getInt();
int b = reader.getInt();
message.getWriter().putInt(a+b);
33
34. 4.3.3 Smart message parser
• Knows how to parse the custom message, based on
message class structure.
• POJO in enough, however could be driven by
annotations.
• It's possible to provide custom encoder/decoder for
complex types.
34
35. 4.3.3 Smart message parser
transport.getFilterChain().add(new TransportFilter());
transport.getFilterChain().add(new SSLFilter());
// Parse the data according to MyMessage class
transport.getFilterChain().add(new SmartParserFilter(MyMessage.class));
// Echo MyMessage
transport.getFilterChain().add(new EchoFilter());
-------------------------------- cut --------------------------------------
public class MyMessage {
public MyMessage(int a, int b) { this.a = a; this.b = b;}
public int a;
public int b;
}
35
36. 4.4 Example #1: Start the echo server
TCPNIOTransport transport =
TransportManager.instance().createTCPTransport();
transport.getFilterChain().add(new TransportFilter());
transport.getFilterChain().add(new EchoFilter());
try {
transport.bind(PORT);
transport.start();
-------------- wait until server is running ---------
} finally {
transport.stop();
TransportManager.instance().close();
}
36
38. 4.4 Example #3: EchoFilter
public class EchoFilter extends FilterAdapter {
@Override
public NextAction handleRead(FilterChainContext ctx,
NextAction nextAction) throws IOException {
Object message = ctx.getMessage();
ctx.getFilterChain().write(ctx.getConnection(), message);
return nextAction;
}
}
38
39. 5 Roadmap
• 1.8.6 was released 09/24
> Biggest tested community release.
• 1.9.0 still discussed
> Will include NIO.2 support
> May include an http-client new module
– Depends on the community
> Last release for the 1.x branch.
• Release Grizzly 2 framework core: December 2008
• Release Grizzly 2 http module: February 2009
39
40. 6. Summary
• Project Grizzly is a simple NIO Framework.
> With less than 50 lines, you can create power client or
server side components.
> Support Java NIO and NIO.2
> Simple, but customizable.
• Grizzly 2.0 will be better than the original! Better
API, same performance!
• Healthy community: get a response in less than 2
hours :-)!
40
41. For More Information
• Grizzly Active’s Bloggers:
> Alexey: http://blogs.sun.com/oleksiys/
> Shing Wai: http://blogs.sun.com/swchan/
> John: http://weblogs.java.net/blog/johnmann/
> Sebastien: http://www2.sebastiendionne.ca
> Jeanfrancois: http://weblogs.java.net/jfarcand
• News:
> Every week or so, a list of interesting blogs talking about us
http://www.nabble.com/forum/Search.jtp?forum=23249&local=y&query=News
• Project Grizzly mailing lists,
> dev@grizzly.dev.java.net & users@dev.grizzly.java.net
41