IBM ESB 나름 좋음.
Posted 2007. 5. 9. 14:33현 프로젝트에서 적용중 -.0- 그러나 난관은 있다.
내가 생각하는 SOA모델이 가장 잘 일치하는 것은 IBM의 SOA모델...
이 이야기를 좀 적어보까 ^^
어디부터 시작을 해야 이게... 적히게 될려나....
정치부터 해야 하나 -.T
- Filed under : 카테고리 없음
현 프로젝트에서 적용중 -.0- 그러나 난관은 있다.
내가 생각하는 SOA모델이 가장 잘 일치하는 것은 IBM의 SOA모델...
이 이야기를 좀 적어보까 ^^
어디부터 시작을 해야 이게... 적히게 될려나....
정치부터 해야 하나 -.T
http://www.chwlund.com/?p=60
After the release of the Service Component Architecture (SCA) specification last month there have been a lot of discussion related to how SCA relates to Java Business Integration (JBI) (JSR-208). I will try to clear thinks up, all in all (if you dont have time to read more): SCA is a specification to make developers make services (in a SOA) in a standard, consistent and technology-independent way and JBI is a specification that defines how integration products should look like and how vendors could actually choose to design an integration product or component (standardization between integration technology vendors)
I have written about Java Business Integration in another post. Read this to learn more about JBI. To sum it up, JBI is all about the standardization of integration products (mainly ESBs). JBI specifies an architecture and an API that should be used when developing integration products. So, in our everyday consultant lifes, we do not have to care so much about this standard, but I think its a really important standard for the integration market, because it opens up integration solutions and makes it possible for different vendors to collaborate. I have written a lot more about this in my older post.
SCA, on the other hand, will maybe influence our everyday life much more than JBI. SCA is a specification that defines how we as developers should write services in a service -oriented architecture. Its like a general WSDL, but also much more. It defines how a service should be described and how it relates to other services. In this way we can define services independent of the technology used to implement it.
A white paper from IBM shows a specific example of how SCA will change how we develop services:
A EJB represents a reservation service for a airline-company and the service is loaded by the application like this:
// Get the initial context as shown in a previous example
...
// Look up the home interface using the JNDI name
try {
java.lang.Object ejbHome =
initialContext.lookup(
"java:comp/env/com/ejb/CarReservation");
carHome =
(CarReservationHome)javax.rmi.PortableRemoteObject.narrow(
(org.omg.CORBA.Object) ejbHome, CarReservationHome.class);
}
catch (NamingException e) { // Error getting the home interface
...
This is fine if you only use EJBs and your future services only will be EJBs. But what if you have to implement the reservation service using a different kind of java component or even another technology platform (like .Net). Then its better to refer to your services in a more neutral and transparent way, like this:
ModuleContext moduleContext=CurrentModuleContext.getContext();
AirReservation airReservation= (AirReservation)moduleContext.locateService(“AirReservation?);
airReservation.bookFlight(flight);
Dave Schaffer says this about the relation between JBI and SCA:
One of the beauty of SCA is that it is focusing only on things that a SOA developer sees and touches. SCA does not care about how the runtime that is going to execute a SCA module is architected.
SCA defines services and a way to create them, but it does not say anything about how the runtime enviroments should be like. A SCA service could be executed by an integration product like an ESB. And this ESB could be designed according to JBI. So, summed up, there may not be any relation between SCA and JBI, but they are two very important standard that may function complementary in a service-oriented architecture and you may end up running your SCA services in a JBI-compatible integraton suite. Please correct me if I am wrong, because I havent got a deep understanding of SCA yet…
Links:
Dave Schaffer: SCA, JBI and more..
The serverside: Discussion
Servicemix.org: How does ServiceMix compare to Tuscany or SCA”
Entry Filed under: Uncategorized
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2824
Blogs
Comparing SCA, Java EE and JBI |
Java EE is one of the most successful application model and rightfully so. It greatly simplifies the development of stand alone, scalable, available, secure and transacted web applications. Everything in its application model is designed to process an arbitrary number of simultaneous requests and create a response synchronously as fast as possible. JSPs/Servlets, Session beans, Entity beans (as an in memory data cache), the security model, the transaction model, ... are all assisting the developer in creating these responses, in the richest and fastest possible way.
In fact, JEE has been so successful it has imposed itself as the main and preferred way of accessing back-end data, not just as a way to write new and cool stand alone web applications. Back-end integration is not easy, technologies are varied and often rustic to say the least, and most back-end systems were not designed with the requirements of web applications in mind. There are three approaches to develop back-end integration solutions: invocation, mediation and activation.
Invocation has been the most commonly used approach used to date through technologies such as JCA, JAX-WS or WS-IF which are well aligned to support the request/response model but fail to support complex long running integration scenarios associated to particular application states. This is precisely one of the problems in JEE today because back-end integration does not always fit well the synchronous request/response model.
Mediation, is not new, and has been applied through proprietary products and frameworks for a decade. Last summer the JCP published an API to build standardized mediation infrastructure: the JBI specification. JBI is based on the "mediated message exchange" pattern: when a component sends a message to another component, this interchange is mediated by the JBI infrastructure, namely the NMR or Normalized Message Router. The NMR functionality can be augmented by Service Engines (such as transformation or orchestration engines) to facilitate the mediation with back-end systems. However, centrally coordinated architectures, such as JBI, have historically always struggled with the problem of "who manages the central infrastructure". The problem is most acute in B2B scenarios where most companies don't want to incur the cost of "mediating" message interchanges unless there is some value add. Actually, the JBI specification explicitly excludes from its scope the normalization of the interactions between two JBI instances. These type of interactions happen behind binding components in a completely proprietary way. This restriction greatly compromises the composition capabilities of JBI instances. Hence, JBI is well suited to solve small and local integration problems.
Activation is a relatively new approach to the problem. It consists of producing components which can be accessed via different middleware, synchronously or asynchronously. Activation maximizes the autonomy of the components themselves and their ability to be composed with other components. In particular, this means that the business logic implemented by a component cannot depend or rely on any specific middleware facilities. This is the component model proposed by SCA. In SCA, activation applies either at the component level or at the module level. A module is an assembly of components running in the same process.
SCA enables arbitrary topologies of systems, supporting synchronous and asynchronous, client/server, peer-to-peer, long running or short lived interactions. SCA does not make any assumption about company boundaries and enables exposing a system as a component participating in another system, each of which having different managing authorities, i.e. company boundaries may be defined or shifted arbitrarily across an SCA system. SCA is well suited to solve any integration problem in particular the most complex ones, including the ones solved by mediation and invocation infrastructures. In many ways, SCA can be viewed as a decentralized mediation infrastructure where mediation happens either at the provider or the consumer side, without necessarily involving an intermediary.
To further understand the differences between the 3 approaches, let's look at how a "connected system" is assembled, i.e. how the wiring is defined and enacted in each approach. In an invocation based infrastructure, the wiring is usually defined via a "connection string containing the end point reference and some credential. In a mediation based infrastructure, the connected system is defined via a configuration file that contains the specification of a particular assembly of components, routing rules, ... This specification is consumed by the JBI infrastructure (NMR, Binding Components and Service Components). However each binding component retains its own proprietary mechanism to specify wiring to the service provider or consumer behind the binding component. In SCA, there is no central coordinator and an assembly of components is deployed to each component type, which activate components (instances of component types) for each unit of work being performed.
I do not want to end this note just by saying that SCA offers a new integration model because, SCA is also and above all a new application model, i.e a new way to build applications as an assembly of autonomous software agents, exposing service interfaces. SCA is innovative because it offers a unified application and integration model.
We can expect that Java EE and SCA will coexist offering a complementary application model while JBI will be used in traditional Enterprise Application Integration scenario.
Jean-Jacques Dubray is a Standards Architect at SAP Labs, Palo Alto.