This document discusses OSGi-enabled Java applications in GlassFish. It provides an overview of OSGi and how it is used in GlassFish to provide modularity. Key points include:
- OSGi allows applications to be broken into modules or bundles that can be installed, uninstalled, started and stopped dynamically without restarting the container.
- In GlassFish, all modules are OSGi bundles which run on top of the OSGi framework. This provides stronger modularity compared to a non-OSGi application server.
- Benefits of using OSGi in GlassFish include demanding stronger modularity, enabling custom tailored application servers, and lazy loading of bundles based on usage patterns.
Running your Java EE applications in the CloudArun Gupta
This document discusses running Java EE 6 applications in the cloud using various platforms. It provides an overview of Java EE 6 and how it is well-suited for cloud deployments. It then discusses specific implementations on Amazon EC2, RightScale, Elastra, Joyent, and GlassFish distributions and roadmaps.
The State of Java under Oracle at JCertif 2011Arun Gupta
The document discusses Oracle's strategy regarding Java, open source, and middleware. Key points include:
- Delivering a complete, open, integrated stack of hardware, infrastructure, database, middleware, and applications.
- Integrating Oracle software components to provide unique value to customers.
- Priorities for Java platforms include growing the developer base, adoption, competitiveness, and adapting to change.
- Details of new features in Java SE 7 like string switching and automatic resource management.
- Plans for Java SE 8 including language enhancements from Project Lambda and modularity.
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Arun Gupta
This document discusses tools support for the Java EE 6 platform in NetBeans, Eclipse, and IntelliJ IDEs. It provides an overview of Java EE 6 and demos of key Java EE 6 APIs like JPA, JSF 2.0, CDI, and JAX-RS being used in the different IDEs.
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
The document discusses integrating OSGi and Java EE technologies in GlassFish. It provides an overview of OSGi and how GlassFish leverages OSGi for modularity. Key points include:
- GlassFish runs on top of OSGi and all GlassFish modules are OSGi bundles. This provides improved modularity over traditional Java EE servers.
- OSGi enables features like dynamic installation/uninstallation of bundles without restarting the server. It also allows multiple versions of modules to coexist.
- The document discusses how various Java EE technologies like EJB, JPA, JAX-WS can be integrated with OSGi. This allows OSGi bundles to leverage Java EE services.
- GlassFish
Java Platform, Enterprise Edition 6 (Java EE 6) is the new, improved release of Java EE 5 with new features and a corresponding release of GlassFish v3.
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
The document provides an overview of the new features in the Java EE 6 platform, including new APIs, the Web Profile specification, improved extensibility, and highlights of APIs like JAX-RS and EJB 3.1. It summarizes the key components and extension points included in the Web Profile and describes how the platform focuses on pluggability, modular web applications, and common design patterns across APIs.
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
The document outlines the key features and capabilities of Java EE 6, which aims to provide more power to developers with less code. It discusses various Java EE 6 technologies like EJB 3.1, CDI, JPA 2.0, JSF 2.0, JAX-RS and how they simplify development. It also previews GlassFish 3.1, the reference implementation of Java EE 6 and talks about the next steps in the evolution of Java EE.
The document discusses the evolution of the Java EE platform and new features in Java EE 6. It outlines how Java EE has moved from being robust but complex to becoming more lightweight and flexible with profiles and pruning of unused specifications. It describes key programming model improvements in Java EE 6 like managed beans, Contexts and Dependency Injection (CDI), and annotations that simplify development.
Running your Java EE applications in the CloudArun Gupta
This document discusses running Java EE 6 applications in the cloud using various platforms. It provides an overview of Java EE 6 and how it is well-suited for cloud deployments. It then discusses specific implementations on Amazon EC2, RightScale, Elastra, Joyent, and GlassFish distributions and roadmaps.
The State of Java under Oracle at JCertif 2011Arun Gupta
The document discusses Oracle's strategy regarding Java, open source, and middleware. Key points include:
- Delivering a complete, open, integrated stack of hardware, infrastructure, database, middleware, and applications.
- Integrating Oracle software components to provide unique value to customers.
- Priorities for Java platforms include growing the developer base, adoption, competitiveness, and adapting to change.
- Details of new features in Java SE 7 like string switching and automatic resource management.
- Plans for Java SE 8 including language enhancements from Project Lambda and modularity.
Tools Coverage for the Java EE Platform @ Silicon Valley Code Camp 2010Arun Gupta
This document discusses tools support for the Java EE 6 platform in NetBeans, Eclipse, and IntelliJ IDEs. It provides an overview of Java EE 6 and demos of key Java EE 6 APIs like JPA, JSF 2.0, CDI, and JAX-RS being used in the different IDEs.
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
The document discusses integrating OSGi and Java EE technologies in GlassFish. It provides an overview of OSGi and how GlassFish leverages OSGi for modularity. Key points include:
- GlassFish runs on top of OSGi and all GlassFish modules are OSGi bundles. This provides improved modularity over traditional Java EE servers.
- OSGi enables features like dynamic installation/uninstallation of bundles without restarting the server. It also allows multiple versions of modules to coexist.
- The document discusses how various Java EE technologies like EJB, JPA, JAX-WS can be integrated with OSGi. This allows OSGi bundles to leverage Java EE services.
- GlassFish
Java Platform, Enterprise Edition 6 (Java EE 6) is the new, improved release of Java EE 5 with new features and a corresponding release of GlassFish v3.
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
The document provides an overview of the new features in the Java EE 6 platform, including new APIs, the Web Profile specification, improved extensibility, and highlights of APIs like JAX-RS and EJB 3.1. It summarizes the key components and extension points included in the Web Profile and describes how the platform focuses on pluggability, modular web applications, and common design patterns across APIs.
Java EE 6 workshop at Dallas Tech Fest 2011Arun Gupta
The document outlines the key features and capabilities of Java EE 6, which aims to provide more power to developers with less code. It discusses various Java EE 6 technologies like EJB 3.1, CDI, JPA 2.0, JSF 2.0, JAX-RS and how they simplify development. It also previews GlassFish 3.1, the reference implementation of Java EE 6 and talks about the next steps in the evolution of Java EE.
The document discusses the evolution of the Java EE platform and new features in Java EE 6. It outlines how Java EE has moved from being robust but complex to becoming more lightweight and flexible with profiles and pruning of unused specifications. It describes key programming model improvements in Java EE 6 like managed beans, Contexts and Dependency Injection (CDI), and annotations that simplify development.
The document discusses Java EE 6 and its goals of being flexible, lightweight, and easier to develop on compared to previous versions. It outlines many of the new and updated specifications in Java EE 6, including Contexts and Dependency Injection, Bean Validation, JAX-RS, and others. It also describes key Java EE 6 concepts like managed beans, interceptors, and profiles aimed at improving ease of development.
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
Arun Gupta presented on running Java EE 6 applications in the cloud. He discussed Java EE 6 support on various cloud platforms including Amazon, RightScale, Elastra, and Joyent. He also compared features of different cloud vendors and how Java EE can evolve to better support cloud computing. Gupta concluded that Java EE 6 applications can easily be deployed to various clouds and GlassFish provides a feature-rich implementation of Java EE 6.
This document provides an overview of new features and changes in Java 7, including improved support for dynamic languages through the invokedynamic instruction, string switching, try-with-resources, and minor language and API improvements. It also outlines two potential plans for future Java releases, with Plan A representing Java 7 as currently planned and Plan B splitting features between Java 7 and 8 to accelerate delivery.
This document provides an overview of Java EE 6 and how it can simplify enterprise application development. It discusses the evolution of Java EE and new features in Java EE 6 like profiles, pruning of legacy technologies, pluggability, dependency injection, RESTful web services, and validation APIs. It also covers tools like NetBeans IDE and Glassfish application server and demonstrates a bookstore application.
GlassFish & Java EE Business Update @ CEJUGArun Gupta
This document summarizes GlassFish and Java EE, including:
1. GlassFish has over 200 new customers in 2009 and over 24 million downloads since 2005. It is best for lightweight web applications while WebLogic is best for transactional Java EE applications.
2. GlassFish and WebLogic benefit each other, with GlassFish being the open source Java EE platform and WebLogic the commercial platform integrated with Oracle products.
3. GlassFish is the "scout thread" for Java EE standards and drives innovation, while WebLogic implements standards after GlassFish to ensure alignment. GlassFish 3.1 will include clustering in 2011.
The document discusses new features in Java Persistence API (JPA) 2.0, including more flexible object/relational mapping, an expanded query language, the addition of the Criteria API and Metamodel API, support for pessimistic locking and validation, and standardized configuration options. JPA 2.0 provides object/relational mapping for Java applications and allows developers to manage data persistence through an entity manager and query language.
Full Java EE 6 support, great developer experience, multiple yet simple admin tools, embedded mode, mutli-language runtime, OSGi modularity, ... The GlassFish set of feature reads like the roadmap of our closest competitors. See how they can work for you. Today.
Running your Java EE 6 applications in the CloudArun Gupta
The document discusses running Java EE applications in the cloud using platforms like Amazon Web Services, RightScale, Microsoft Azure, and Joyent. It provides an overview of deploying Java EE applications on each platform, including how to configure and manage applications on Amazon EC2 and S3, deploy using RightScripts on RightScale, publish to Microsoft Azure using Visual Studio, and the language and server options for Joyent. The document also touches on pricing models and some considerations for evolving Java EE for cloud platforms.
The document discusses the evolution of the Java EE platform. Some key points include:
- Java EE 6 introduced many new APIs and improvements to existing APIs like EJB 3.1, JPA 2.0, Servlets 3.0, Bean Validation, Context and Dependency Injection.
- It aimed to make Java EE more lightweight, flexible and developer-friendly through features like the Web Profile, more annotations, and less XML configuration.
- New APIs and capabilities in Java EE 6 included managed beans, interceptors, RESTful web services, and better integration between technologies like JSF and EJB.
GlassFish Server 3.1 is the latest version of the open source Java EE application server. It provides improved developer productivity and manageability. New features include application versioning support, application scoped resources, improved monitoring, and clustering and high availability for HTTP, EJB, and other services. GlassFish remains focused on Java EE standards, open source development, and providing the best platform for building Java applications.
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012Arun Gupta
The document discusses new features and improvements in Java EE 7 including higher productivity through less boilerplate code and richer functionality, support for HTML5 technologies like WebSockets and JSON, and simplified APIs for RESTful web services, Java Message Service, and JSON processing. Key areas of focus for Java EE 7 are improving developer productivity and adding support for HTML5.
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
This document discusses the evolution and capabilities of the Java platform. It outlines the major releases of the Java Development Kit and Java EE over time. It also describes some of the key features and technologies available in the Java ecosystem today, including Java EE, JavaFX, RESTful and SOAP web services, dynamic languages support, and Project Jigsaw for modularity. The document promotes the Java platform as powering next generation applications and services.
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Skills Matter
This document discusses Java EE 6 and GlassFish 3. It outlines that Java EE 6 and GlassFish 3 aim to provide a light-weight, extensible, and powerful platform. Key goals for Java EE 6 include making it more flexible, extensible by embracing open source frameworks, and easier to use and develop on. GlassFish 3 is the open source reference implementation of Java EE 6 and includes new features like clustering and centralized administration.
Java EE 6 introduces several new specifications and updates to existing ones to improve ease of development. Key additions include Contexts and Dependency Injection (JSR 299), Bean Validation (JSR 303), and a RESTful Web Services API (JSR 311). Many specifications were updated, including major overhauls to Java Server Faces 2.0 (JSR 314) and Java Persistence 2.0 (JSR 317). The reference implementation is GlassFish v3, which supports all Java EE 6 features and provides both open source and commercial distributions.
TDC 2011: The Java EE 7 Platform: Developing for the CloudArun Gupta
The document discusses the Java EE 7 platform and its focus on developing applications for the cloud. It outlines the modular structure of Java EE 7 applications and services, and how this modularity supports deployment on cloud platforms. Key areas that Java EE 7 addresses for cloud development include multi-tenancy, elastic scaling, resource management, and security.
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010Arun Gupta
This document provides an overview of getting started with Ruby on Rails development on GlassFish. It discusses installing JRuby, Rails, the GlassFish gem, and creating a sample Rails application with CRUD functionality. It also covers deploying Rails applications to GlassFish using directory deployment and WAR deployment, as well as options for monitoring and improving performance of Rails applications on GlassFish.
Java EE 6 & GlassFish = Less Code + More Power at CEJUGArun Gupta
The document discusses Java EE 6 and GlassFish, which provide developers with more power and flexibility while requiring less code. Key features of Java EE 6 like EJB 3.1, CDI, and JSF 2.0 incorporate more annotations and reduce the need for deployment descriptors. GlassFish is the open source reference implementation of Java EE 6 and offers benefits like modularity, embeddability, and support for cloud computing. Future versions of Java EE and GlassFish will focus on continued standards-based innovation.
JAX-RS 2.0 provides enhancements to the JAX-RS API that allow for more powerful RESTful services. Key new features include a client API, filters and interceptors for customization, bean validation integration, and support for asynchronous processing. The client API allows building and invoking requests in a standard way. Filters and interceptors provide extension points for tasks like logging and compression. Bean validation leverages existing JSR 303 annotations. Asynchronous processing supports suspending and resuming requests.
WildFly AppServer - State of the Union
as presented at SoftShake Geneva, Oct 2015
http://soft-shake.ch/2015/en/
Covering the whole WildFly v8/9/10 series and the key aspects of the base AS7 architecture.
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
Arun Gupta presents an overview of the key features and specifications of Java EE 6, including:
1) Lightweight profiles like the Web Profile 1.0 make Java EE easier to use for web applications. Core specifications like EJB 3.1, JSF 2.0, and JPA 2.0 saw major updates.
2) New specifications include Contexts and Dependency Injection and Bean Validation which make developing Java EE applications simpler.
3) Servlets 3.0 brings annotations-based configuration and extensibility through web fragments, making it easier for frameworks to integrate with Java EE containers.
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.
The document discusses Java EE 6 and its goals of being flexible, lightweight, and easier to develop on compared to previous versions. It outlines many of the new and updated specifications in Java EE 6, including Contexts and Dependency Injection, Bean Validation, JAX-RS, and others. It also describes key Java EE 6 concepts like managed beans, interceptors, and profiles aimed at improving ease of development.
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Arun Gupta
Arun Gupta presented on running Java EE 6 applications in the cloud. He discussed Java EE 6 support on various cloud platforms including Amazon, RightScale, Elastra, and Joyent. He also compared features of different cloud vendors and how Java EE can evolve to better support cloud computing. Gupta concluded that Java EE 6 applications can easily be deployed to various clouds and GlassFish provides a feature-rich implementation of Java EE 6.
This document provides an overview of new features and changes in Java 7, including improved support for dynamic languages through the invokedynamic instruction, string switching, try-with-resources, and minor language and API improvements. It also outlines two potential plans for future Java releases, with Plan A representing Java 7 as currently planned and Plan B splitting features between Java 7 and 8 to accelerate delivery.
This document provides an overview of Java EE 6 and how it can simplify enterprise application development. It discusses the evolution of Java EE and new features in Java EE 6 like profiles, pruning of legacy technologies, pluggability, dependency injection, RESTful web services, and validation APIs. It also covers tools like NetBeans IDE and Glassfish application server and demonstrates a bookstore application.
GlassFish & Java EE Business Update @ CEJUGArun Gupta
This document summarizes GlassFish and Java EE, including:
1. GlassFish has over 200 new customers in 2009 and over 24 million downloads since 2005. It is best for lightweight web applications while WebLogic is best for transactional Java EE applications.
2. GlassFish and WebLogic benefit each other, with GlassFish being the open source Java EE platform and WebLogic the commercial platform integrated with Oracle products.
3. GlassFish is the "scout thread" for Java EE standards and drives innovation, while WebLogic implements standards after GlassFish to ensure alignment. GlassFish 3.1 will include clustering in 2011.
The document discusses new features in Java Persistence API (JPA) 2.0, including more flexible object/relational mapping, an expanded query language, the addition of the Criteria API and Metamodel API, support for pessimistic locking and validation, and standardized configuration options. JPA 2.0 provides object/relational mapping for Java applications and allows developers to manage data persistence through an entity manager and query language.
Full Java EE 6 support, great developer experience, multiple yet simple admin tools, embedded mode, mutli-language runtime, OSGi modularity, ... The GlassFish set of feature reads like the roadmap of our closest competitors. See how they can work for you. Today.
Running your Java EE 6 applications in the CloudArun Gupta
The document discusses running Java EE applications in the cloud using platforms like Amazon Web Services, RightScale, Microsoft Azure, and Joyent. It provides an overview of deploying Java EE applications on each platform, including how to configure and manage applications on Amazon EC2 and S3, deploy using RightScripts on RightScale, publish to Microsoft Azure using Visual Studio, and the language and server options for Joyent. The document also touches on pricing models and some considerations for evolving Java EE for cloud platforms.
The document discusses the evolution of the Java EE platform. Some key points include:
- Java EE 6 introduced many new APIs and improvements to existing APIs like EJB 3.1, JPA 2.0, Servlets 3.0, Bean Validation, Context and Dependency Injection.
- It aimed to make Java EE more lightweight, flexible and developer-friendly through features like the Web Profile, more annotations, and less XML configuration.
- New APIs and capabilities in Java EE 6 included managed beans, interceptors, RESTful web services, and better integration between technologies like JSF and EJB.
GlassFish Server 3.1 is the latest version of the open source Java EE application server. It provides improved developer productivity and manageability. New features include application versioning support, application scoped resources, improved monitoring, and clustering and high availability for HTTP, EJB, and other services. GlassFish remains focused on Java EE standards, open source development, and providing the best platform for building Java applications.
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012Arun Gupta
The document discusses new features and improvements in Java EE 7 including higher productivity through less boilerplate code and richer functionality, support for HTML5 technologies like WebSockets and JSON, and simplified APIs for RESTful web services, Java Message Service, and JSON processing. Key areas of focus for Java EE 7 are improving developer productivity and adding support for HTML5.
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
This document discusses the evolution and capabilities of the Java platform. It outlines the major releases of the Java Development Kit and Java EE over time. It also describes some of the key features and technologies available in the Java ecosystem today, including Java EE, JavaFX, RESTful and SOAP web services, dynamic languages support, and Project Jigsaw for modularity. The document promotes the Java platform as powering next generation applications and services.
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Skills Matter
This document discusses Java EE 6 and GlassFish 3. It outlines that Java EE 6 and GlassFish 3 aim to provide a light-weight, extensible, and powerful platform. Key goals for Java EE 6 include making it more flexible, extensible by embracing open source frameworks, and easier to use and develop on. GlassFish 3 is the open source reference implementation of Java EE 6 and includes new features like clustering and centralized administration.
Java EE 6 introduces several new specifications and updates to existing ones to improve ease of development. Key additions include Contexts and Dependency Injection (JSR 299), Bean Validation (JSR 303), and a RESTful Web Services API (JSR 311). Many specifications were updated, including major overhauls to Java Server Faces 2.0 (JSR 314) and Java Persistence 2.0 (JSR 317). The reference implementation is GlassFish v3, which supports all Java EE 6 features and provides both open source and commercial distributions.
TDC 2011: The Java EE 7 Platform: Developing for the CloudArun Gupta
The document discusses the Java EE 7 platform and its focus on developing applications for the cloud. It outlines the modular structure of Java EE 7 applications and services, and how this modularity supports deployment on cloud platforms. Key areas that Java EE 7 addresses for cloud development include multi-tenancy, elastic scaling, resource management, and security.
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010Arun Gupta
This document provides an overview of getting started with Ruby on Rails development on GlassFish. It discusses installing JRuby, Rails, the GlassFish gem, and creating a sample Rails application with CRUD functionality. It also covers deploying Rails applications to GlassFish using directory deployment and WAR deployment, as well as options for monitoring and improving performance of Rails applications on GlassFish.
Java EE 6 & GlassFish = Less Code + More Power at CEJUGArun Gupta
The document discusses Java EE 6 and GlassFish, which provide developers with more power and flexibility while requiring less code. Key features of Java EE 6 like EJB 3.1, CDI, and JSF 2.0 incorporate more annotations and reduce the need for deployment descriptors. GlassFish is the open source reference implementation of Java EE 6 and offers benefits like modularity, embeddability, and support for cloud computing. Future versions of Java EE and GlassFish will focus on continued standards-based innovation.
JAX-RS 2.0 provides enhancements to the JAX-RS API that allow for more powerful RESTful services. Key new features include a client API, filters and interceptors for customization, bean validation integration, and support for asynchronous processing. The client API allows building and invoking requests in a standard way. Filters and interceptors provide extension points for tasks like logging and compression. Bean validation leverages existing JSR 303 annotations. Asynchronous processing supports suspending and resuming requests.
WildFly AppServer - State of the Union
as presented at SoftShake Geneva, Oct 2015
http://soft-shake.ch/2015/en/
Covering the whole WildFly v8/9/10 series and the key aspects of the base AS7 architecture.
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
Arun Gupta presents an overview of the key features and specifications of Java EE 6, including:
1) Lightweight profiles like the Web Profile 1.0 make Java EE easier to use for web applications. Core specifications like EJB 3.1, JSF 2.0, and JPA 2.0 saw major updates.
2) New specifications include Contexts and Dependency Injection and Bean Validation which make developing Java EE applications simpler.
3) Servlets 3.0 brings annotations-based configuration and extensibility through web fragments, making it easier for frameworks to integrate with Java EE containers.
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.
TDC 2011: OSGi-enabled Java EE ApplicationArun Gupta
This document provides a summary of OSGi-enabled Java EE applications in GlassFish. It discusses how GlassFish uses OSGi to provide modularity and dynamic features. Key points include:
- GlassFish runs on top of OSGi and uses it to modularize server components and enable dynamic installation/uninstallation of bundles.
- Java EE applications can be packaged as OSGi bundles to take advantage of OSGi features while still using Java EE APIs. This allows for better modularity and dynamic deployment.
- Specifications like OSGi/HTTP Service, OSGi/Web Application, and OSGi/JTA integrate OSGi services into Java EE.
- Declarative services and injection simplify accessing
OSGi & Java EE in GlassFish - Best of both worldsArun Gupta
This document discusses integrating OSGi and Java EE technologies in Oracle's GlassFish application server. It provides an overview of OSGi and how GlassFish leverages OSGi's modular architecture by implementing all of its core components and modules as OSGi bundles. The benefits of using OSGi in GlassFish include improved modularity, flexibility to customize the application server, lazy loading of bundles based on usage, and support for additional JVM technologies through OSGi bundles.
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaArun Gupta
GlassFish v3 supports OSGi bundles and enables hybrid applications that can leverage both OSGi and Java EE. It implements Java EE services and APIs as OSGi services, allowing OSGi bundles to access Java EE functionality. This allows for improved modularity, reusability, and a faster development cycle compared to traditional Java EE applications. Going forward, GlassFish aims to better support OSGi-enabled Java EE applications and improve the underlying OSGi framework administration.
This document discusses the need for modularity in large software systems and introduces Liferay's new Module Framework which uses OSGI to provide modularity. Some key points:
- Modularity through relatively small self-contained modules with clear interfaces is needed to develop and maintain large complex systems.
- OSGI provides features like dynamism, deployment, dependency management, and versioning that address this need and are being used as the foundation for Liferay's new Module Framework.
- The framework will provide benefits both internally through more focused development and testing, and externally through more frequent updates and improvements.
- It is currently in development and will be available in Liferay 6.2, leveraging
OSGi is a modular system for Java that allows software to be split into components called bundles that can be installed, started, stopped, updated dynamically without requiring a restart. Bundles define dependencies and versions, and services can be published and discovered within a Java Virtual Machine. OSGi aims to support component-based development and addresses issues with modularity in standard Java.
The document discusses OSGi Service Platform and its capabilities for Java modularity. It describes how OSGi bundles provide an explicit module concept in Java by defining code boundaries and versioned dependencies. The OSGi framework automatically resolves dependencies between bundles and enforces consistency rules during class loading to support multi-versioning and isolated namespaces for modules. It also provides life-cycle management for dynamic installation and updating of bundles.
The document provides an introduction to OSGi and its architecture, describing how OSGi bundles work as modular, reusable components and how they can publish and consume services through a service registry, with examples of how to program with the OSGi framework by using bundle activators, service listeners, and more. It also discusses OSGi adoption in Java platforms and how it addresses limitations of other modular systems.
This document provides an overview of eBay's use of OSGi for its enterprise architecture. Some key points:
- eBay has a large codebase of over 44 million lines of code that was becoming difficult to manage due to its monolithic nature and tight coupling.
- eBay adopted OSGi to introduce modularity and loose coupling into its architecture in order to tame complexity, increase agility, and allow different components to evolve independently.
- OSGi was chosen because its features like bundles, imports/exports, and versioning help achieve eBay's goals of modularity, hiding implementation details, and accurate dependency management.
This document discusses polyglot programming using OSGi. It defines polyglot as using multiple programming languages and explains how OSGi allows different JVM languages to be used together through its modular architecture and service registry. Key OSGi concepts discussed include encapsulation, versioning, dynamism through its lifecycle model. Popular OSGi implementations like Equinox and tools like PaxConstruct, PaxRunner and PaxExam that facilitate OSGi development and testing are also summarized. Finally, benefits and challenges of using a polyglot approach with OSGi are outlined.
Enabling modularization through OSGi and SpringDMmukulobject
This document discusses OSGi and Spring Dynamic Modules. It summarizes that:
1) OSGi is a dynamic module system for Java that implements a complete service-oriented architecture. It addresses limitations of conventional Java applications like JAR hell and lack of versioning.
2) The OSGi framework architecture includes module, life cycle, and service layers. It allows modular code packaging and hiding, as well as dynamic loading and updating of modules.
3) Spring Dynamic Modules brings OSGi benefits to Java application development. It allows OSGi services to be used as Spring beans and vice versa, hiding the low-level OSGi framework API.
GlassFish Server is the open source application server for Java EE. It provides a proven, high-quality Java EE runtime and is the reference implementation for Java EE standards. GlassFish Server 3.1 combines the benefits of clustering and centralized administration from version 2.1.1 with the modularity and Java EE 6 support of version 3.x. It focuses on developer productivity through tools integration and an improved embedded API, along with updated technologies like Grizzly WebSocket support and refreshed Java EE components.
The Java EE 7 Platform: Developing for the Cloud (FISL 12)Arun Gupta
The document discusses the Java EE 7 platform and developing applications for the cloud. It outlines the core Java EE 6 programming model and web profile. It also discusses new features in Java EE 7 like modularity, cloud support in specifications like Servlets 3.1 and JPA 2.1, and a technology refresh with specifications like JAX-RS 2.0. The modular design of Java EE 7 applications is also described.
Part 8 - Enforcing modularity of JasForge using OSGI and Futures EvolutionsJasmine Conseil
The document discusses using OSGI and futures evolutions to enforce modularity in JasForge. It provides a brief overview of OSGI, explaining how it breaks applications into modules that can be dynamically installed, uninstalled, started and stopped without restarting the container. It then outlines how JasForge agile tools will be available as bundles in an OSGI container like Spring DM, making projects "OSGI ready". An update installer is planned which will facilitate localizing and updating OSGI compatible tools on the JasForge platform.
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Arun Gupta
GlassFish Server 3.1 provides clustering and high availability for Java EE 6 applications. It allows deploying applications across multiple instances for scalability and redundancy. Some key features include session replication using Shoal, support for clustering web, EJB, and other services, and application versioning to deploy multiple versions of an application.
This document provides an introduction to OSGi, including the Jar Hell problem it aims to solve, its modular architecture and key concepts like bundles, services, and lifecycles. It also outlines some popular OSGi frameworks, tools, and next steps like advanced services, distributed OSGi, and integrating with other technologies like Spring and SCA.
This document discusses launching multiple OSGi frameworks within a single Java Virtual Machine (JVM). It describes challenges like runtime isolation, application models, and avoiding conflicts between frameworks and applications. The RFC 0138 proposes addressing these issues by allowing child frameworks to be created and managed, and by multiplexing singleton services like URL handlers across frameworks. However, the specification is incomplete and complex to implement. The document concludes that running multiple frameworks in a single JVM is important but not straightforward to achieve.
The document discusses several OSGi tools including Libra, Gemini Web, and Virgo. Libra provides tools for OSGi enterprise application development by integrating existing PDE and WTP tooling. Gemini Web allows installation of WAR files and Web Application Bundles in OSGi and controls their lifecycle. Virgo is a modular Java application server for enterprise Java applications that features application isolation, hot deployment, and support for Spring. It discusses concepts like regions, deployment of bundles and plans, and debugging and security techniques for Virgo.
Similar to OSGi-enabled Java EE Applications using GlassFish at JCertif 2011 (20)
5 Skills To Force Multiply Technical Talents.pdfArun Gupta
This talk explains what are non-technical skills, why they are relevant, and what are some of the most important skills to master to force multiply your technical talent.
Machine Learning using Kubernetes - AI Conclave 2019Arun Gupta
This document discusses machine learning using Kubeflow. It provides an overview of Kubeflow, which is a containerized machine learning platform that makes it easy to develop, deploy, and manage portable, scalable end-to-end ML workflows on Kubernetes. It discusses various Kubeflow components like Jupyter notebooks, Fairing for packaging ML jobs, Katib for hyperparameter tuning, KFServing for model serving, Pipelines for orchestrating workflows, and Metadata for tracking artifacts. It also provides guidance on deploying Kubeflow on Amazon EKS and optimizing distributed deep learning performance on EKS.
Secure and Fast microVM for Serverless Computing using FirecrackerArun Gupta
Firecracker is a lightweight virtualization technology developed by Amazon that provides security and isolation of virtual machines with the speed and density of containers. It uses KVM virtualization and has a minimal guest device model to provide fast launch times of less than 125ms per microVM while using under 5MB of memory per microVM. Firecracker is open source and designed to securely run thousands of multitenant microVMs on a single host through its REST API and by leveraging statistical multiplexing of resources.
Building Java in the Open - j.Day at OSCON 2019Arun Gupta
Amazon develops and maintains Corretto, an open-source distribution of OpenJDK. Corretto provides long-term support with quarterly security updates for Java on Linux, Windows, and macOS. Amazon contributes patches and improvements to OpenJDK and aims to upstream all changes. The Amazon Corretto Crypto Provider offers accelerated cryptographic performance for workloads.
Amazon contributes to open source projects for several reasons: to better serve customers by supporting popular open source technologies, drive innovation by collaborating with the open source community, reduce maintenance costs by fixing issues upstream, and improve quality and security by incorporating community feedback. Some examples of projects Amazon contributes to include Docker, Kubernetes, Apache Spark, and Linux kernel. Amazon engages with the open source community through its website, Twitter account, and blog to share updates on its open source efforts.
This document discusses machine learning using Kubernetes. It provides an overview of Amazon EKS for running Kubernetes in the cloud, and options for setting up Kubernetes clusters for machine learning workloads, including training models, inference, and applications. It also covers challenges in containerizing machine learning and introduces AWS deep learning containers and KubeFlow for simplifying machine learning on Kubernetes.
The key principles of cloud native applications are:
1. They enable organizations to build and ship features faster without worrying about failure or iteration.
2. They pay for what is used last month, not what may be needed next year, allowing teams to experiment and fail fast without significant investment.
3. They are self-service, API-driven, and automated, moving from requesting tickets for each step to self-service tools that empower teams.
This document discusses chaos engineering and how to use it to test the resilience of applications running in Kubernetes clusters. It describes how chaos engineering involves intentionally introducing failures and disturbances to test a system's ability to withstand turbulent conditions. The document outlines the phases of chaos engineering experiments including defining hypotheses, scoping experiments, monitoring metrics, and implementing fixes to address any issues found. It also provides examples of how tools like Istio can be used to inject faults like timeouts or HTTP errors to test applications running in Kubernetes on Amazon EKS.
How to be a mentor to bring more girls to STEAMArun Gupta
The document discusses how to be a mentor to bring more girls to STEAM. It outlines challenges like unconscious bias, lack of role models, and topics/content mainly appealing to boys. It recommends starting mentorship early, encouraging girls to attend and present at events, and being a role model. Examples are given of girls who found success through mentorship programs like Devoxx4Kids, pursuing interests in computer science, engineering, and NASA. The conclusion calls mentors to inspire one girl to get involved in STEAM through attending, volunteering, or presenting at events like Devoxx4Kids.
Java in a World of Containers - DockerCon 2018Arun Gupta
This document discusses Java and containers. It begins with an introduction to Java's suitability for containers due to its managed runtime, hardware agnosticism, safety/security, reliability, and rich ecosystem. It then covers topics like creating Docker images from Java applications, building custom Java runtimes using jlink, and optimizing image sizes through multi-stage builds and smaller base images like Alpine Linux. The document also discusses features like class data sharing between containers using AppCDS, ahead-of-time compilation with jaotc, and how the JVM can honor Docker resource limits for CPU and memory. Overall it provides an overview of using Java in container environments and related tools and techniques.
The Serverless Tidal Wave - SwampUP 2018 KeynoteArun Gupta
The document discusses the rise of serverless computing and its benefits. It describes how AWS pioneered serverless computing with AWS Lambda and has since expanded its serverless offerings. The serverless model provides easy scaling, high availability, and developers can focus on writing code without worrying about infrastructure management. Containers are also discussed as working with serverless computing.
Introduction to Amazon EKS - KubeCon 2018Arun Gupta
Amazon EKS (Elastic Kubernetes Service) is a managed service that makes it easy to run Kubernetes on AWS. It handles provisioning and managing control plane resources so users can focus on applications. EKS provides a native Kubernetes experience while integrating seamlessly with other AWS services to eliminate undifferentiated heavy lifting. The EKS team actively contributes to the open source Kubernetes project.
Mastering Kubernetes on AWS - Tel Aviv SummitArun Gupta
The document contains instructions and diagrams for deploying and managing Kubernetes clusters on AWS. It includes commands for creating a Kubernetes cluster using KOPS or EKS, as well as diagrams showing example Kubernetes cluster architectures with nodes, masters, storage, logging and monitoring components when using AWS.
Top 10 Technology Trends Changing Developer's LandscapeArun Gupta
The document discusses 10 emerging technology trends that are changing the developer landscape:
1. Containers are being used as a lightweight alternative to virtual machines for packaging, deploying, and scaling applications. Container orchestration frameworks like Docker and Kubernetes are emerging.
2. Microservices architectures break applications into small, independent services that communicate over HTTP. This enables independent deployment and scaling of services.
3. DevOps practices like continuous integration/deployment, automation, and collaboration between development and operations are becoming standard.
Java EE and NoSQL using JBoss EAP 7 and OpenShiftArun Gupta
The document discusses using Java EE 7 and NoSQL databases with JBoss EAP 7 and OpenShift. It highlights key features of Java EE 7 including improved developer productivity. It also provides an overview of different types of NoSQL databases like key-value, document, graph and columnar databases. Examples are given of using Couchbase with Java applications and frameworks like WildFly Swarm.
Docker, Kubernetes, and Mesos recipes for Java developersArun Gupta
The document discusses Docker, Kubernetes, and Mesos for Java developers. It provides an overview of Docker, including what it is, how images and containers work, and common commands. It also covers using Docker Machine to create Docker hosts, Docker Compose for defining and running multi-container apps, networking with Docker, and persistent storage options.
Arun Gupta has over 25 years of experience in senior technology leadership roles. He has held positions such as Vice President at Intuit, Group Vice President at Oracle, and Vice President and General Manager at Middleware. Currently, Arun Gupta is the President and CEO of PAMTEN Inc.
Migrate your traditional VM-based Clusters to ContainersArun Gupta
The document discusses migrating traditional VM-based clusters to container-based clusters using Docker, Kubernetes, DC/OS, and Couchbase. It provides step-by-step instructions on setting up Couchbase clusters on each platform, including creating Docker machines and Swarm clusters, defining Kubernetes replication controllers and services, deploying Couchbase applications on DC/OS using Marathon, and automatically scaling the clusters.
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.
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.
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.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
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.
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
"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.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...Jason Yip
The typical problem in product engineering is not bad strategy, so much as “no strategy”. This leads to confusion, lack of motivation, and incoherent action. The next time you look for a strategy and find an empty space, instead of waiting for it to be filled, I will show you how to fill it in yourself. If you’re wrong, it forces a correction. If you’re right, it helps create focus. I’ll share how I’ve approached this in the past, both what works and lessons for what didn’t work so well.
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
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
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 .
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
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.
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
1. <Insert Picture Here>
OSGi-enabled Java EE Applications in GlassFish
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta, @arungupta
2. The following/preceding is intended to outline our
general product direction. It is intended for
information purposes only, and may not be
incorporated into any contract. It is not a
commitment to deliver any material, code, or
functionality, and should not be relied upon in
making purchasing decisions.
The development, release, and timing of any
features or functionality described for Oracle’s
products remains at the sole discretion of Oracle.
2
9. The OSGi Alliance is a worldwide
consortium of technology innovators
that advances a proven and mature
process to assure interoperability of
applications and services based on
its component integration platform.
9
11. What is OSGi Specification ?
• Delivered by OSGi Alliance
• Originally for embedded devices, set top boxes, network
• Architecture for modular application development
in Java
• Breaks applications into “modules” or “bundles”
• Can install, uninstall, start, and stop each bundle
dynamically without restarting container
• Multiple versions are supported
• Dependencies explicitly defined with clear
boundaries
11
12. “JAR Hell”
• JAR is a build-time and deploy-time
concept, not run-time
• Based on the ZIP file format
• No metadata to indicate dependencies
• Multiple versions of JARs cannot be
loaded
• All “public” classes are public
• Access modifiers are for packages, not JAR
12
13. OSGi Layers
Service
Life Cycle
Module
Execution Environment
13
14. OSGi Bundle – Just a JAR File!
Export-Package
Import-Package
Java Classes, Static Files, … Bundle-ClassPath
(bundle private) ...
META-INF/MANIFEST.MF
Persistent
OSGI-OPT
(docs, source code, ...)
Atomic
14
15. Bundle is identified by ...
• Bundle Identifier
• Unique for the lifetime
• getBundleId()
• Bundle Location
• Unique location of the bundle
• getLocation()
• Bundle Symbolic Name and Version
• Globally unique identifier
• getSymbolicName(), getVersion()
15
17. Interaction between layers
register / unregister
get / unget Service
manage
start / stop
Life Cycle
Bundle
install
uninstall
classload
Module
execute
EE
17
18. Bundle State Diagram
update
refresh install
INSTALLED
STARTING
update rt
resolv sta
refresh e
RESOLVED ACTIVE
uninstal stop
l
STOPPING
Each bundle installation is new
18
20. OSGi in GlassFish
• GlassFish runs on top of OSGi
• Felix is default, also runs on Equinox &
Knopflerfish
• Runs in an existing shell
• 260+ bundles in 3.1
• All GlassFish modules are OSGi bundles
• No OSGi APIs are used in GlassFish
• HK2 provides abstraction layer
http://blogs.oracle.com/arungupta/entry/totd_103_glassfish_v3_with
http://blogs.oracle.com/arungupta/entry/totd_127_embedding_glassfish_in
20
21. GlassFish: Modular Platform
REST
REST SOAP
SOAP High
High
Clustering
Clustering JMS
JMS
Web Services
Web Services Web Services
Web Services Availability
Availability
Web
Web Connection
Connection Java
Java
JSF
JSF EJB Container
EJB Container
Application Container
Container
Container Pooling (JCA)
Pooling (JCA) Persistence
Persistence
Management Console Update Center Management CLI
Naming Grizzly Framework Monitoring/
Injection
Service Config Deploy
Manager
Security Monitor Configuration
Cluster Serviceability/
Logging
GlassFish V3 Core
Transaction Security (Module Subsystem)
Service Service Deployment Clustering
OSGi
OSGi
Java SE
Java SE
21
22. GlassFish v3 Runtime with OSGi
GlassFish V3 modules
Random OSGi Bundle
(OSGi + extra metadata)
Service OSGi
HK2 Service layer
Mapper Service Layer
OSGi Bundle Management
22
23. Benefits of OSGi for GlassFish
• Demands and enforces stronger modularity
• Enables custom tailored App server
• Lazy loading based on usage patterns
• Successfully maintained quick startup
• Available to GlassFish developers and
users
23
24. Create an OSGi Bundle – Maven
• Create a Maven project
• Implement “BundleActivator”
• Update “pom.xml”
• Change packaging to “bundle”
• Add dependencies on OSGI APIs
• Use “maven-bundle-plugin” to package
• Build the bundle
http://blogs.oracle.com/arungupta/entry/totd_36_deploy_osgi_bundles
24
25. Create an OSGi bundle – NetBeans
http://blogs.oracle.com/arungupta/entry/totd_125_creating_an_osgi
25
26. Create an OSGi bundle – NetBeans
http://blogs.oracle.com/arungupta/entry/totd_125_creating_an_osgi
26
27. Create an OSGi bundle – Eclipse
http://blogs.oracle.com/arungupta/entry/totd_126_creating_an_osgi
27
28. OSGi Bundles in GlassFish
• asadmin deploy –type osgi
• “cp”/“rm”
glassfish/domains/domain1/autodeploy/bundles
• telnet localhost 6666
• Apache Felix Web Console
• REST Console bundle
• Perl-based shell (Osgish)
• VisualVM OSGi Plugin
• Supports OBR
• Discover and deploy dependencies together
http://blogs.oracle.com/arungupta/entry/totd_118_managing_osgi_bundles
28
30. Dynamic Discovery of OSGi service
OSGi
Export-Package API Service
Registry
Import-Package
Impl
Bundle-Activator
Import-Package
cker
Client Service Tra
Bundle-Activator
Filters
http://blogs.oracle.com/arungupta/entry/totd_131_dynamic_osgi_services
30
31. Why OSGi in Enterprise Apps ?
• Improved modularity
• Reusable bundles
• Dependencies are more visible
• Better isolation / Cleaner class loading model
• Better version control
• Faster deployment cycle
• Better tools for deployment
• Observable bundle life cycle
• Service Tracking
• Criteria-based service selection
31
32. Why Java EE in Enterprise Apps ?
• Better API (JPA, JTA, JAXB, JNDI)
• Better component model (Servlet, EJB, JAX-RS)
• Better frameworks (JSF, CDI)
• Ease-of-use (Annotations, Convention-over-
configuration)
• Platform provided integrated infrastructure
services
• Transaction, Security, Persistence, Remoting, ...
• Many more reasons ...
32
34. OSGi Enterprise Expert Group
The OSGi Enterprise Expert Group
(EEG) is chartered to define the
technical requirements and
specifications to tailor and extend the
OSGi Service Platform to address
information technology software
infrastructure use cases found in
enterprise business scenarios.
http://www.osgi.org/EEG/HomePage
34
35. OSGi EEG Focus
• Scaling, including multi-container and multi-process
environments
• Distributed and/or federated service model for
• Multiple Service Platforms
• External, heterogeneous systems
• Requirements for extensions to the OSGi
publish/find/bind service model
• Enterprise-class life cycle and configuration
management
• Integration of established Java EE technology into
OSGi
35
36. Hybrid Applications
“A hybrid application is an OSGi
bundle as well as a Java EE
archive and hence has both an
OSGi bundle context and Java EE
context at runtime and can
leverage capabilities of both the
platforms.”
36
37. Why Hybrid Apps ?
Best of both worlds!!!
Why do you want to learn new APIs ?
37
38. Role of GlassFish
• Provides a runtime for Hybrid Applications
• Implements Java EE related OSGi services
and standards
• Don't have to assemble the bits
• OSGi is no longer under the cover
• Raises visibility from GlassFish developers to users
38
40. OSGi/Web Application (rfc #66)
• Web Application Bundle (WAB)
• WAR + OSGi + Web-ContextPath Header
• Can use all enterprise APIs include JPA with lazy loading
• Sample manifest:
Manifest-Version: 1.0
Import-Package: javax.servlet.http; javax.persistence
Bundle-ClassPath: WEB-INF/classes/,WEB-INF/lib/entities.jar
Bundle-Version: 1.0
Bundle-ManifestVersion: 2
Web-ContextPath: /hello
Bundle-SymbolicName: test.hellowab
• Wrapped WAR Support
• webbundle: URL scheme
40
41. OSGi Declarative Services
• Complications of Publish/Find/Bind
• Long startup time
• Memory footprint
• Complex service programming model
• OSGi services in Java EE
@Resource(mappedName=”osgiName”)
SomeOSGiService osgiService;
• JNDI Lookup
• Portable, no OSGi dependencies in application
• Exported APIs visible to Java EE apps
41
45. JAX-WS & OSGi
Artifacts WSDL
JAX-WS
JAX-WS Endpoint
Client Business
Delegate
Method
Query
Registry
OSGi OSGi
Register
Service
Service
Bundle
Registry
Business
Method
http://blogs.oracle.com/arungupta/entry/totd_130_invoking_a_osgi
45
46. OSGi & EJB
Client OSGi Service Registry
login
Export-Package
API register
Export-EJB Impl
Container-managed
JPA
LoadData
http://weblogs.java.net/blog/ss141213/archive/2010/03/30/ejb-osgi-service-demo-eclipsecon
46
47. OSGi + EJB
• Export EJB as OSGi services
Export-EJB: ALL/None/<names>
• Pure OSGi components can discover/invoke
• Advantages
• Declarative security, transaction, CDI, … are available
to non-EE components
• Tx context from pure OSGi bundle propagates
to invoked EJB
• Ditto for security and persistence context
47
49. Extending GlassFish v3
Using Spring dm Container
• Simple Spring bean
implementing the
service
• Invoke the service
from a servlet using
standard @Resource
injection
• Single runtime for
both Spring and full
Java EE
http://blogs.oracle.com/dochez/entry/glassfish_v3_extensions_part_4
49
50. OSGi + CDI
OSGi
Export-Package API Service
Registry
Import-Package
Impl
Bundle-Activator
Import-Package
cker
ice
Client Ser SGiServ
@OviceTra
Bundle-Activator
Filters
http://blogs.oracle.com/arungupta/entry/totd_154_dynamic_osgi_services
50
51. OSGi + CDI
ServiceTracker tracker = new ServiceTracker(context,
Hello.class.getName(), null);
tracker.open();
Hello hello = (Hello) tracker.getService();
System.out.println(hello.sayHello("Duke"));
@Inject @OSGiService(dynamic=true) Hello hello;
System.out.println(hello.sayHello("Duke"));
• Injected reference is never null because
of CDI proxies
51
52. OSGi + JPA
• Enhancement of JPA entities at runtime
• Entities + persistence.xml bundled as OSGi
bundle
• EntityManagerFactory available as
@Inject @OSGiService
• Shared persistence unit and there by shared second
level cache
52
53. OSGi + EE Resources
• Define a DataSource, JavaMail, or JMS resource
available in Admin Console
• Corresponding OSGi service is already available
• Resource/Services are dynamic
53