At the beginning of January 2010, SpringSource announced that dm Server would enter the Eclipse project, opening the first chapter of the new year of Java modularization. OSGi continues to thrive over the past month, signaling that 2010 will be the year of Java modularity.
News from InfoQ: Latest progress on Java modularization in January 2010. (Original title: "Bundle.update: A Year of Modularity" http://www.infoq.com/cn/news/2010/01/year-of-modularity )
51CTO Editor’s Recommendation: Getting Started with OSGi
dm Server migrated to Eclipse
The biggest news is undoubtedly the Eclipse Virgo project proposal (see 51CTO related reports here). The current dm Server version is 2.0.0, which means that the next 2.1 version will be developed and released under Eclipse.
One significant difference between the existing project and the new proposal is the protocol. This means that dm Server will be based on EPL in the future instead of the current GPL. EPL is an agreement that is more conducive to business practices. The aim is to boost community contributions while encouraging this approach to software development.
The current enterprise OSGi and dm Server have aroused the interest of many people, and innovation around them has never stopped. This interest is particularly high among early adopters and projects that require compliance with the dynamic module features of the OSGi Service Platform. But for mainstream development teams (who just want to build enterprise applications as quickly as possible with less and less trouble), the current cost of adopting enterprise OSGi may exceed its short-term benefits. This issue needs to be considered before enterprise OSGi becomes the de facto standard for mainstream enterprise application development methods.
New book introducing OSGi and Equinox published
A new book introducing OSGi and Equinox was published this week. This is also the first book in the Eclipse RunTime series. This book introduces how to build modular Java applications through OSGi. Although the examples in the book are based on Equinox, the book is also valuable for developers who want to develop on other OSGi platforms.
The book also implements a Toast sample project from beginning to end, with the purpose of paving the way for subsequent books in the series through specific sample code (so that developers who have read this book can quickly start other books). This book is divided into four parts: the first is an overview of OSGi, followed by a guide to building a Toast example, the third part explores the details of OSGi in depth, and finally the bibliography.
ECF remote services development completed
Recently, the Eclipse Communications Framework project has implemented the OSGi Remote Services specification, which can connect OSGi services across VMs through a variety of heterogeneous protocols, including REST, WS-*, JMS, XMPP, Skype and an ECF Generic implementation.
Not only that, but there are a variety of different detection mechanisms, such as ZeroConf, SLP, and static, file-based detection.
The Apache Felix implementation of OSGi Remote Services has also been released (Apache CXF), which is also the reference implementation of OSGi. But this implementation focuses on access through the WS-* transport layer, while ECF is independent of the transport layer. Regardless of the implementation, the API used by end users and developers is the same. This allows users to replace the implementation at runtime.
Enterprise Expert Group work nearing completion
Recently, Peter Kriens announced that the OSGi Enterprise Expert Group is about to be completed, and the Enterprise Expert Group draft 4 was also released not long ago, which provides a large number of Java EE features. We have reason to expect that the final version will be released in March of this year, which is when OSGi DevCon and EclipseCon are held.
EEG will provide new query mechanisms for JNDI-style lookups through OSGi, use JMX to manage the OSGi runtime, database access through JTA, JPA and DataSources, and also provide management of Remote Services and Service Component Architecture. In addition, a new deployment bundle: WAB will be released, so that web application bundles can be installed into containers like WARs. InfoQ will provide in-depth coverage of EEG's results as they are released.
WebSphere releases Alpha version
IBM WebSphere has been developed based on OSGi for some time, and recently it released an Alpha version of OSGi applications. The application is based on Apache Aries and includes an OSGi Blueprint container (similar to Eclipse Gemini proposed by SpringSource). These projects all hope to solve some of the problems faced by JNDI and JTA, which are also the focus of the Enterprise Expert Group.
These containers are extending the boundaries of the OSGi runtime to accommodate multiple applications. In the future, applications will be split through OSGi Nested Frameworks (similar to how web application servers split WAR). But unlike Web application servers (WAR is completely separated and cannot share code), WAB can integrate the OSGi runtime, and then you can share code and services as easily as using private bundles and services.
Tycho builds OSGi using Maven
Recently, Sonatype released Tycho 0.6.0, using the new version of Maven 3. Tycho is a set of Maven builders that can infer dependencies based on OSGi Manifest.MF instead of assuming dependencies exist in the Maven POM. This allows you to create OSGi bundles either POM-first (when the Manifest is automatically generated) or Manifest-first.
Although most OSGi developers who use Maven (such as developers under Apache Felix) are more accustomed to the POM-first development method, the Manifest-first development method is a supplement to this and can be more advanced through Eclipse PDE (Plug-in Development Environment). Develop OSGi bundles conveniently.
Among many Eclipse projects, EGit and the incubation project Tigerstripe are built using Maven instead of Ant.
The Maven project is moving towards Maven 3, which has undergone extensive refactoring and uses Google Guice. In addition, the success of the Maven repository (managed by Sonatype) also proves that Java development with multiple dependencies is not difficult. There are also more and more people using OSGi bundle repositories (such as OBR and SpringSource repositories), and they can be distributed across different providers. An exploratory study is currently underway on the topic of providing a unified set of OSGi repositories (used by Tycho with the help of Nexus). Experimental repositories are located at bundles.sonatype.org and osgi.sonatype.org. The future goal is to provide access to multiple formats (OBR, P2, etc.) so that using OSGi bundles can be as easy as Maven JARs.
Nimble and POSH
If you are just getting OSGi bundles, then using the OSGi bundle parser would be a better choice. Recently, Paremus released Nimble, a parser for obtaining and downloading OSGi bundles.
Paremus binds POSH (Paremus OSGi Shell) to the Nimble parser. This way, you can use the same set of commands to initialize and manage the general OSGi framework (this will simplify the testing of Felix, Equinox and Knopflerfish), and with the help of Nimble, you can quickly start the OSGi runtime, as Dave Savage said narrate. You can install and run Spring-based OSGi web applications through the following two lines of commands:
posh -kc "repos -l springdm;add org.springframework.osgi.samples.simplewebapp@active " open http://localhost:8080/simple-web-app/ Interested readers can learn more about Nimble on DZone More information.
OSGi UK User Group and OSGi DevCon London
The OSGi UK User Group is thriving and has over 100 members. The most recent lecture comes from Marcel Offerman (from Luminis) and Graham Charters (from IBM). Videos and materials related to the lecture will be posted on its website in a few days.
The first part of the lecture was an introduction to the incubation project Apache ACE, which aims to simplify the use of OSGi on multiple devices, including remotely.
In the process of assembling software from reusable components, the most difficult problem to solve is how to deploy the software to the growing number of connected devices. The situation gets worse if the software stack on the device is heterogeneous, requiring different components at the same time. This lecture introduces us to how to distribute software components to different types of devices based on Apache ACE (an open source, OSGi-based solution), covering everything from mobile phones to nodes in the cloud.
The Apache Ace project is based on software donated by Luminis early last year. The software has been applied to many real projects, such as On-ship Radar systems, field X-Ray Equipment, CMS software update and protocol management, and airport baggage handling systems.
The second lecture introduced OSGi Remote Services (already included in OSGi 4.2) and how it interacts with Service Component Architecture (SCA), using Apache Tuscany as an example.
Java modularization concepts and summary of current situation
Comprehensive summary of OSGi and WebSphere application examples
Sun's JSR 294 halted as application servers bet on OSGi
An overview of the advantages and implementation principles of modular programming. Modularization to answer questions: JSR 294, visibility and usability..
OASIS has been working on developing the Service Component Architecture (SCA) specification. SCA provides a heterogeneous SOA programming model that spans numerous implementation technologies (EJB, BPEL, C++, COBOL, etc.), bindings (Web services, JMS, IIOP, etc.) and policies (WS-Policy, etc.).
The lecture gave a brief introduction to OSGi Remote Services and Service Component Architecture technologies, and then talked about how to integrate the two so that OSGi applications can access multiple SCA implementation technologies, bindings, and policy frameworks through Remote Services.
The upcoming OSGi DevCon London and JAX London conference schedules have been announced. The offer ends today, but OSGi UK User Group members can get additional discounts.
Summarize
It is obvious that more and more large server systems will adopt OSGi, and at the same time OSGi will also begin to enter the small and medium-sized systems. As build tools continue to evolve, developers can develop OSGi bundles in a variety of IDEs; at the same time, new repositories for sharing OSGi bundles are also emerging, and the development of modular Java applications will become increasingly easy. Based on this, Kirk Knoernschild asserts: 2010 will be the year of Java modularity.