Welcome!

Machine Learning Authors: Pat Romanski, Yeshim Deniz, Liz McMillan, Elizabeth White, Zakia Bouachraoui

Related Topics: Java IoT, Industrial IoT, Microservices Expo, IBM Cloud, Weblogic, Machine Learning

Java IoT: Article

Part 3 | Component Models in Java

Service Component Architecture Model

Following table summarizes the various features provided by the component models discussed in this article.

Features

EJB

Spring

OSGi

SCA

Standard

Yes

Yes

Yes

Yes

Component Interface

Plain Old Java Interface

(Business Interface)

 

Plain Old Java Interface

 

Plain Old Java Interface

(Service Contract)

Component Implementation

Plain Old Java Object

Plain Old Java Object

Plain Old Java Object

Plain Old Java Object

XML configuration file

ejb-jar.xml (optional, used in earlier versions)

Beans.xml

Manifest.mf

component.xml

xxx.composite

Runtime environment

EJB Container

Spring Container

OSGi Framework

SCA Domain

Annotation support

Supported

Supported

Supported

Supported

Registry

Available - EJB Container

Available - Spring Container

OSGi Service Registry

SCA Domain

Dependency Injection

Supported

Supported

Supported

Supported

Modularity

Partial support

Partial support

Complete support

Partial support

Aspect Oriented Programming

Supported

Supported

Not Supported

Not Supported

 

 

API

EJB API

Spring API

OSGi API

SCA API Implementations

Packaging

Jar file

Jar file

Jar file with Manifest metadata(Bundle)

Composite

Assembly

Using Jar

Using Jar

Using Bundles (Runtime assembly is possible)

Using composites

Component Reference

Using @EJB or  JNDI look up in the container

Using Beans.xml and bean id in the container

Using ComponentContext, ServiceReference APIs and OSGi Registry

Using the service address in the composite

Language

Java

Java

Java

Java, C++, BPEL, Ruby, Python...

References

  1. EJB 3.0 specification - http://jcp.org/en/jsr/detail?id=220
  2. EJB 3.0 Technology - http://www.oracle.com/technetwork/java/javaee/ejb-jsp-138626.html
  3. Spring - http://www.springsource.org/
  4. Spring framework - http://www.springsource.org/spring-framework
  5. Spring documentation - http://www.springsource.org/documentation
  6. OSGi - http://www.osgi.org/Main/HomePage
  7. Eclipse OSGi - http://www.eclipse.org/osgi/
  8. Component Development and Assembly using OSGi - http://java.sys-con.com/node/2146647
  9. SCA - http://www.oasis-opencsa.org/sca
  10. Apache Tuscany - http://tuscany.apache.org/

Acknowledgements
The authors would like to sincerely thank Anupama Nithyanand and Sarma KVRS for their support.

More Stories By Piram Manickam

Piram Manickam works at Infosys Limited. He would like to acknowledge and thank Sangeetha S, a beloved colleague and friend, for her invaluable contributions in this work.

More Stories By Subrahmanya SV

Subrahmanya SV works at Infosys Limited. He would like to acknowledge and thank Sangeetha S, a beloved colleague and friend, for her invaluable contributions in this work.

More Stories By S Sangeetha

S Sangeetha is a Senior Technical Architect at the E-Commerce Research Labs at Infosys Limited. She has over 15 years of experience in architecture, design and development of enterprise Java applications. She is also involved in enhancing the technical skills of Architects at Infosys. She has co-authored a book on ‘J2EE Architecture’ and also has written numerous articles on Java for various online Java forums like JavaWorld, java.net, DevX.com and internet.com. She can be reached at [email protected]

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


CloudEXPO Stories
With more than 30 Kubernetes solutions in the marketplace, it's tempting to think Kubernetes and the vendor ecosystem has solved the problem of operationalizing containers at scale or of automatically managing the elasticity of the underlying infrastructure that these solutions need to be truly scalable. Far from it. There are at least six major pain points that companies experience when they try to deploy and run Kubernetes in their complex environments. In this presentation, the speaker will detail these pain points and explain how cloud can address them.
The deluge of IoT sensor data collected from connected devices and the powerful AI required to make that data actionable are giving rise to a hybrid ecosystem in which cloud, on-prem and edge processes become interweaved. Attendees will learn how emerging composable infrastructure solutions deliver the adaptive architecture needed to manage this new data reality. Machine learning algorithms can better anticipate data storms and automate resources to support surges, including fully scalable GPU-centric compute for the most data-intensive applications. Hyperconverged systems already in place can be revitalized with vendor-agnostic, PCIe-deployed, disaggregated approach to composable, maximizing the value of previous investments.
When building large, cloud-based applications that operate at a high scale, it's important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. "Fly two mistakes high" is an old adage in the radio control airplane hobby. It means, fly high enough so that if you make a mistake, you can continue flying with room to still make mistakes. In his session at 18th Cloud Expo, Lee Atchison, Principal Cloud Architect and Advocate at New Relic, discussed how this same philosophy can be applied to highly scaled applications, and can dramatically increase your resilience to failure.
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by sharing information within the building and with outside city infrastructure via real time shared cloud capabilities.
As Cybric's Chief Technology Officer, Mike D. Kail is responsible for the strategic vision and technical direction of the platform. Prior to founding Cybric, Mike was Yahoo's CIO and SVP of Infrastructure, where he led the IT and Data Center functions for the company. He has more than 24 years of IT Operations experience with a focus on highly-scalable architectures.