Java * * *
1. Efficient Java WEB Development Framework Jessma
2. Java Log cutting Cleanup tool Log-cutter
C + + * *
1. Universal High Performance Windows Socket component Hp-socket
2. Windows C + + application common Log component Vc-logger
First, Java
1.Java Almighty Efficient MVC & REST Development Framework Jessma
Jessma is a full-featured, high-performance Full-stack Web application Development framework with a built-in extensible MVC Web infrastructure and DAO database Access Components (Hibernate, MyBatis, and JDBC DAO components are provided internally), integrated with Action Basic WEB application components such as interception, form/dao/spring Bean assembly, internationalization, file upload download, and page statics provide an efficient and flexible pure jsp/servlet API programming model that seamlessly integrates Spring/guice and supports Action C Onvention can quickly develop traditional style and RESTful style applications, with documentation and examples perfect and very easy to learn.
Jessma Project Home: http://www.jessma.org
At the beginning of the design, Jessma a full focus on functionality, performance, and usage experience. Jessma Main Features:
★ Fully functional: built-in stable and efficient MVC infrastructure and DAO framework, support Action interception, Form Bean/dao bean/spring Bean Assembly and declarative transactions, provide internationalization, file upload download, cache and page static and other common Web Components to meet the needs of most Web applications.
★ Highly Scalable: Jessma plug-in mechanism can be expanded flexibly, Jessma release package jessma-ext-rest and jessma-ext-spring are provided as plug-in form, Users can load or unload these plugins as needed. Application developers can also write custom plug-ins to extend Jessma based on their actual needs.
★ Strong integration capabilities: Strong integration capabilities: JESSMA is a full-stack framework and an open framework that integrates third-party components in a very simple way. This development manual will detail how to integrate common frameworks and components such as Freemarker, Velocity, Urlrewrite, Ehcache-web, Spring, Hibernate, and Mybaits in Jessma.
★ High Performance: performance requirements are hard indicators of Jessma, from the design of each module to the implementation of each line of code to strive for simplicity and efficiency. In addition, Portal-basi C does not have too much encapsulation of the Jsp/servet API, developers still use the Jsp/servet API to develop applications, there is no excessive detour, performance is guaranteed.
★ Excellent Experience: Excellent experience: One of Jessma's design goals is to provide a good development experience that minimizes the work of application developers, and the API is designed to be simple, complete, and clear. At the same time, Jessma provides a number of Util tools for application development that address general issues that are commonly encountered during application development and further reduce the burden on application developers.
★ Gentle Learning curve: A gentle learning curve: Learning to use JESSMA requires only a certain Core Java and jsp/servlet Knowledge, the development manual will be a step-by-step elaboration of each knowledge point, each knowledge point will be combined with a complete sample to tell, The knowledge points between the back and forth, ensure that learners in learning restudying, mastery.
★ Perfect Technical Support: In addition to providing a complete development manual and sample code, but also provide a blog and q~q~ group to answer all the problems encountered during the use of Jessma, you can also visit the Jessma official website for more information.
* Jessma Overall architecture
* Jessma application Dependencies
----------------------------------------------------------------
2.Java Log cutting cleanup tool Log-cutter
Log-cutter is a simple and useful log cutting cleanup tool developed by JESSMA Open source organization. Log cleanup is very important for routine maintenance of the server, and if there are too many residual logs, it can seriously waste disk space and affect the performance of the service. If you clean it by hand, it will take too much time, and many times it is difficult to meet the actual requirements. For example: How to cut more than 2G log files at every Saturday 3 o'clock in the morning and keep the latest 100M log records? No log cutting tools were found on the Internet to meet this requirement, so it took some leisure time to write one yourself. Because it is used on multiple platforms, it is easy to implement Java. This tool is named Log-cutter, which has the following features:
- Supports all common operating system platforms such as Linux, Mac, and Windows
- Support for command line Interactive run
- Support for background non-interactive running (Linux/mac using daemon process implementation, Windows with system Service implementation)
- Supports three types of log cleanup: Delete log files, cut log files, archive log files
- Supports cutting of common log file types such as GB18030, UTF-8, Utf-16le, Utf-16be, and so on (no half-character cuts will occur)
- Highly configurable (program execution cycle, log file expiration time to delete, log file thresholds to cut, and retention size) configurable
Log-cutter Project Home: http://www.jessma.org
Second, C + +
1. Universal High Performance Windows Socket component Hp-socket
Hp-socket is a general-purpose, high-performance TCP/UDP communication framework that includes server-side components, client components, and agent components, and is widely used in TCP/UDP communication systems in a variety of applications, from C + +, C #, Delphi, E (Easy language), Java, Programming language interfaces such as Python. Hp-socket completely encapsulates the communication layer, the application does not have to focus on any details of the communication layer, and Hp-socket provides an API interface based on the event notification model, which can be easily and efficiently integrated into the old and new applications.
In order to enable users to quickly learn and use Hp-socket, quickly grasp the framework of design ideas and use of methods, we have carefully crafted a large number of Demo samples (such as: PUSH model example, pull model example, performance test examples and other programming language examples). Hp-socket is currently running on the Windows platform and will implement cross-platform support in the future.
Hp-socket's design is fully focused on functionality, general purpose, ease of use and scalability:
Versatility
- Hp-socket's sole responsibility is to receive and send byte streams, not to participate in application protocol resolution.
- Hp-socket interacts with the application through an interface and is fully decoupled. Any application can seamlessly integrate Hp-socket as long as the Hp-socket interface specification is implemented.
Ease of Use
Ease of use is essential for all common frameworks, and it is not as easy to write them as you would if they were too difficult. Therefore, the Hp-socket interface is designed to be very simple and uniform.
The hp-socket completely encapsulates all the underlying communication details, and the application does not have to interfere with the underlying communication operations. The communication connection is abstracted to the Connection id,connection ID as the unique identity of the connection provided to the application to handle the different connections.
Performance
Hp-socket as a general framework of the underlying, performance is the key indicator, absolutely cannot become the bottleneck of the system. Hp-socket is designed to take into account performance, usage scenarios, complexity, and ease of use, making the following design decisions:
- Client component: based on the Event Select communication model, the communication operation is performed in a separate thread to avoid interfering with the main thread or other threads. Each Component object manages a Socket connection.
- Server components: based on the IOCP communication model, combined with technology such as the cache pool, private heap, and other technologies, to support ultra-large-scale connections, in high-concurrency scenarios to achieve efficient memory management.
- Agent components: for scenarios such as proxy servers or transit servers, the server itself also initiates large-scale connections to other servers as a client, and an agent Component object can manage multiple Socket connections at the same time; Agent components and server Components use the same technical architecture that can be used as client parts for a proxy server or a staging server.
Elasticity of
Applications can adjust Hp-socket performance parameters (e.g. number of worker threads, size of cache pool, send mode and receive mode, etc.) based on realistic scenarios such as different capacity requirements, communication scale and resource status, and optimize resource allocation to meet application needs without wasting resources.
* Hp-socket interface model
* Hp-socket Component classification
----------------------------------------------------------------
2.Windows C + + application common Log component Vc-logger
Vc-logger is an easy-to-use, common day component of C + + programs. The design is focused on three aspects:
Function: The purpose of this log component is to meet the requirements of most application logging-output logs to a file or send to an application, and does not provide some complex but infrequently used functionality. The features of this log component include:
- Output log information to the specified file
- Generate a log file daily
- For GUI programs, log information can be sent to the specified window
- For the console application, log information can be sent to standard output (std::cout)
- Support Mbcs/unicode,console/gui Program
- Supports dynamic loading and static loading of log component DLLs
- Supports multiple log levels such as Debug/trace/info/warn/error/fatal
Usability: This log component focuses on usability, making it easy and enjoyable for users to use:
- Simple and pure: do not rely on any library or framework
- Easy to use interface, no complicated configuration or setup work required
- Provides Cstaticlogger and Cdynamiclogger wrapper classes for static or dynamic loading and operation log components without the user's attention to loading details
- Program to record multiple log files simply create the appropriate Cstaticlogger or Cdynamiclogger object for each log file
- Simply call log ()/debug ()/trace ()/info ()/warn ()/error ()/fatal () and so on logging
- Logging methods Support variable parameters
- Log output format:< time > < thread id> < logging level > < log content >
Performance: performance is a tough of whether a component is worth using, and the process of designing to coding takes into account performance optimizations as much as possible:
- Support multi-threaded simultaneous send write log request
- Use a separate thread to write logs in the background without affecting the normal execution of worker threads
- Batch Logging in batches
Vc-logger Project Home: http://www.jessma.org
Update my Java and C + + Open Source project (2014.11)