Welcome!

Java Authors: Don MacVittie, Maureen O'Gara, Liz McMillan, Walter H. Pinson, III, Yakov Werde

Related Topics: Java

Java: Article

SOA Solutions with J2EE

Using different technical and functional requirements

SIDEBAR 1

SOA Reminder
SOA promotes loosely coupled, distributable, reusable services that can be invoked through platform-independent service interfaces. A service is a function that is well defined, self-contained, and does not depend on the state of other services.

SOA is not a technology, an implementation, or a design pattern; it is an architectural paradigm. For example, Web services is a technology-enabling SOA implementation. But Web services is not the only way to implement an SOA system and does not guarantee that the system will be SOA-compliant.

Resources

  • SOA Blueprints Concepts: www.middlewareresearch.com/endeavors/artifacts/ soa-blueprints/SOA_Blueprints_Concepts_v0_5.pdf
  • Web Services and SOA: www.service-architecture.com/index.html

    SIDEBAR 2

    RMI over HTTP
    RMI works over JRMP (Java Remote Methods Protocol) and IIOP. The J2EE specification requires HTTP tunneling, meaning that RMI calls go through HTTP instead of JRMP. As firewalls let HTTP pass through, that solves the communication problem. Unfortunately, the degradation of performance is such that it is better to use Web services than HTTP tunneling. Moreover, HTTPS tunneling is not required in the J2EE specification, which is a serious security issue unless we choose to manage security programmatically.

    Resource

  • Access EJBs Through Firewalls: www.ftponline.com/javapro/2002_09/online/j2ee_asankaran_09_03_02/

    SIDEBAR 3

    CORBA
    Common Object Request Broker Architecture might be said to be the first SOA implementation because it embraces the very same goals as SOA. However, it's not as interoperable as Web services is because it doesn't usually go through firewalls and it's not supported by Microsoft platforms (MS developed COM and DCOM as their own flavors of CORBA). CORBA protocol is Internet Inter-ORB Protocol (IIOP). The interfaces to CORBA services are defined in the Interface Description Language (IDL), which maps to popular languages such as C, C++, Java, Ada, and Python. The languages supporting CORBA are interoperable. RMI is based on IIOP but is specific to Java. Therefore it's natural to consider using IIOP before any other protocol if RMI cannot be used.

    Resources

  • CORBA FAQ: www.omg.org/gettingstarted/corbafaq.htm
  • Java, RMI & CORBA: A comparison of two competing technologies: www.javacoffeebreak.com/articles/rmi_corba/
  • CORBA vs Web Services: www2002.org/CDROM/alternate/395
  • More Stories By Bruno Collet

    Bruno Collet is a seasoned J2EE architect with five years of experience. He recently founded Studio 184 (www.studio184.com), where he is developing the ApolloNews news aggregator. Bruno holds a masters in computer science from ULB (Belgium), as well as several industry certifications (www.brunocollet.com).

    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.