58 Managing Information Access to an EIS Using J2EE and Services Oriented Architecture
2.3 Key technologies
The architecture discussion up to now has focussed mainly on architectural
issues, patterns, components, services, and processes for creating an EIS
Of course, any architecture that you create must have a detailed design and
must be implementable. Otherwise, what would be the purpose of creating an
architecture that cannot be implemented?
Some of the discussions in the architecture chapter have mentioned
technologies or specifications, most notably J2C and JMS. You would also have
noticed the architecture chapter suggesting a services-based style of
architecture, commonly referred to as SOA. Of course, SOA is not an
implementation architecture but rather a style of architecture.
You can assert that calling CICS / COBOL routines on your EIS from your
desktop C/C++ application is a services-based architecture. The fact that you
could have used proprietary technologies, such SNA / APPC, and your own
proprietary protocol does not suggest that you do not have a services-based
architecture. Your services (in this example scenario, your CICS / COBOL
routines) might not pass an interoperability test. However, that is another
discussion and technical challenge.
Our architecture discussion mentions a lot of catchy phrases used by software
architects like interoperability, components, loose coupling, adaptability, scalable
flexible on demand solutions, services, and so on. The following sections discuss
some of the key technologies that you can use to implement this architecture.
Java 2 Platform, Enterprise Edition (J2EE) is a set of coordinated specifications
and practices that together enable the development, deployment, and
management of multi-tier, server-centric applications. J2EE builds on top of the
Java 2 Platform, Standard Edition (J2SE) platform with additional capabilities
that are necessary to provide a complete, stable, and secure environment for an
enterprise level application.
The J2EE platform provides a reusable component model, using a suite of
technologies, such as Enterprise JavaBeans, JavaServer Pages (JSP), Java
Servlets and so on, to allow application developers to build and deploy multi-tier
J2EE applications that are platform and vendor-independent. The J2EE platform
shares the "Write Once, Run Anywhere" approach of the Java platform and has
gained significant industry support.