Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Net4j"

m
 
(31 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__TOC__
+
__NOTOC__
 +
The Net4j Signalling platform is an extensible client/server communications framework.<br>
 +
Net4j eases the development of fast and maintainable application protocols that are independent<br>
 +
of the physical transport medium. Transport protocols are pluggable and Net4j ships with support<br>
 +
for TCP, HTTP and in-memory transport. The core of Net4j is a fast, asynchronous and non-blocking<br>
 +
buffer multiplexing kernel, based on OSGi but also executable stand-alone.
  
==Introduction==
+
'''The Net4j project is now integrated into the [[CDO]] project.'''<br>
 +
'''[http://www.eclipse.org/cdo/downloads/ Downloads] and other resources are provided there.'''
 +
<br>
 +
<br>
  
Net4j is an extensible client-server communications platform based on OSGi but also executable stand alone. You can easily extend the protocol stack with Eclipse plugins that provide new transport or application protocols. Net4j's focus on performance and scalability is featured by non-blocking I/O, zero-copy signals and multiplexed binary protocols. Net4j was originally developed to support the [[CDO]] technology for distributed shared and persistent EMF models but can also multiplex your own user-supplied application protocols through the same socket connection.
+
[[Image:Multiplexing.png|600px]]
 +
<br>
  
 +
==Core Features==
 +
* Extensible signalling framework for '''application protocols''' (IProtocol, SignalProtocol)
 +
* Extensible transport framework for '''physical transports''' (IConnector, IAcceptor)
 +
* '''Multiplexing''' of different application protocols (IChannel)
 +
* Fast, asynchronous and non-blocking '''buffering kernel''' (IBuffer)
 +
<br>
  
==Features==
+
==Transports==
 +
* NIO-based '''TCP''' transport implementation (ITCPConnector, ITCPAcceptor)
 +
* In-process '''JVM''' transport implementation (IJVMConnector, IJVMAcceptor)
 +
* Polling '''HTTP''' transport implementation (IHTTPConnector, IHTTPAcceptor)
 +
<br>
  
TBD.
+
==Examples==
 +
* Extensible collaborations platform with buddy list, chat, fileshare, and more. [[Net4j/Using_Net4j_example|Tutorial]]
 +
* JMS(TM) provider implementation (experimental but functional)
 +
<br>
  
 +
==Utilities==
 +
* Caching and monitoring framework
 +
* Special collections
 +
* Concurrency support
 +
* Wiring framework (managed containers)
 +
* Event framework
 +
* Factory framework
 +
* Generic finite state machine (FSM)
 +
* I/O tools
 +
* Lifecycle framework
 +
* Operations and maintenance framework (OM)
 +
** Platform abstraction (OSGi, Eclipse runtime, stand alone)
 +
** Bundle abstraction
 +
** Logging abstraction
 +
** Tracing abstraction
 +
** Preferences abstraction
 +
** Progress monitoring framework
 +
* Memory sensitivity framework
 +
* Transactional and notifying registries
 +
* Extensible security framework
 +
* Generic transactional operations framework
 +
* Debugging Tools
 +
** Remote tracing (OM extension + Eclipse UI)
 +
** Container view (Eclipse UI)
 +
** Introspector view (Eclipse UI)
 +
* Extensible DB abstraction framework
 +
** Derby DB adapter implementation
 +
** HSQLDB adapter implementation
 +
** MySQL adapter implementation
 +
** PostgreSQL adapter implementation
 +
<br>
  
==Project Resources==
+
==Thoughts==
 
+
* [http://www.eclipse.org/modeling/emft/downloads/index.php?project=net4j&showAll=0&showMax=5 Net4j Downloads] and [http://www.eclipse.org/modeling/emft/news/relnotes.php?project=net4j&version=HEAD Release notes]
+
* [http://www.eclipse.org/modeling/emft/updates/ EMFT Update Manager]
+
* [http://www.ohloh.net/projects/8907?p=Net4j Net4j at Ohloh]
+
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.emf/org.eclipse.emf.net4j/?root=Modeling_Project CVS Web Viewer]
+
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.emf/org.eclipse.emf.cdo/develop/psf/pserver/?root=Modeling_Project PSF Folder] or [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.emf/org.eclipse.emf.cdo/develop/psf/pserver/All.psf?root=Modeling_Project&view=co All.psf]
+
* [http://download.eclipse.org/modeling/emft/net4j/javadoc/0.8.0/ JavaDoc for Net4j 0.8.0]
+
* [http://bugs.eclipse.org/bugs/buglist.cgi?product=EMFT&component=NET4J&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&order=bugs.bug_status,bugs.target_milestone,bugs.bug_id&query_format=advanced Browse Open Bugs] or [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMFT Submit a Bug]
+
* [http://www.eclipse.org/modeling/emft/newsgroup-mailing-list.php Newsgroups & Mailing Lists]
+
 
+
==Further Reading==
+
* [[Net4j Architecture]]
+
* [[Net4j User Interface]]
+
* [[Net4j Transports]]
+
* [[Net4j Protocols]]
+
* [[Net4j Utilities]]
+
* [[CDO]]
+
 
+
  
 +
* Providing a Tutorial for [https://wiki.eclipse.org/Writing_Standalone_Net4j_Applications Writing Standalone Net4j Applications] (by Andreas Rytina, Twitter: [https://twitter.com/andyrytina @andyrytina])
 +
* Please add your Net4j thoughts here...
  
 +
<br>
 
----
 
----
 
Wikis: [[CDO]] | [[Eclipse]] | [http://en.wikipedia.org/wiki/OSGi OSGi] | [http://en.wikipedia.org/wiki/Nio NIO] | [http://en.wikipedia.org/wiki/New_I/O New I/O]
 
Wikis: [[CDO]] | [[Eclipse]] | [http://en.wikipedia.org/wiki/OSGi OSGi] | [http://en.wikipedia.org/wiki/Nio NIO] | [http://en.wikipedia.org/wiki/New_I/O New I/O]
 +
 +
[[Category:Modeling]] [[Category:EMF]] [[Category:Net4j]]

Latest revision as of 02:07, 9 October 2014

The Net4j Signalling platform is an extensible client/server communications framework.
Net4j eases the development of fast and maintainable application protocols that are independent
of the physical transport medium. Transport protocols are pluggable and Net4j ships with support
for TCP, HTTP and in-memory transport. The core of Net4j is a fast, asynchronous and non-blocking
buffer multiplexing kernel, based on OSGi but also executable stand-alone.

The Net4j project is now integrated into the CDO project.
Downloads and other resources are provided there.

Multiplexing.png

Core Features

  • Extensible signalling framework for application protocols (IProtocol, SignalProtocol)
  • Extensible transport framework for physical transports (IConnector, IAcceptor)
  • Multiplexing of different application protocols (IChannel)
  • Fast, asynchronous and non-blocking buffering kernel (IBuffer)


Transports

  • NIO-based TCP transport implementation (ITCPConnector, ITCPAcceptor)
  • In-process JVM transport implementation (IJVMConnector, IJVMAcceptor)
  • Polling HTTP transport implementation (IHTTPConnector, IHTTPAcceptor)


Examples

  • Extensible collaborations platform with buddy list, chat, fileshare, and more. Tutorial
  • JMS(TM) provider implementation (experimental but functional)


Utilities

  • Caching and monitoring framework
  • Special collections
  • Concurrency support
  • Wiring framework (managed containers)
  • Event framework
  • Factory framework
  • Generic finite state machine (FSM)
  • I/O tools
  • Lifecycle framework
  • Operations and maintenance framework (OM)
    • Platform abstraction (OSGi, Eclipse runtime, stand alone)
    • Bundle abstraction
    • Logging abstraction
    • Tracing abstraction
    • Preferences abstraction
    • Progress monitoring framework
  • Memory sensitivity framework
  • Transactional and notifying registries
  • Extensible security framework
  • Generic transactional operations framework
  • Debugging Tools
    • Remote tracing (OM extension + Eclipse UI)
    • Container view (Eclipse UI)
    • Introspector view (Eclipse UI)
  • Extensible DB abstraction framework
    • Derby DB adapter implementation
    • HSQLDB adapter implementation
    • MySQL adapter implementation
    • PostgreSQL adapter implementation


Thoughts



Wikis: CDO | Eclipse | OSGi | NIO | New I/O

Back to the top