Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Modeling (top-level project) » EMF in distributed SOA environment
EMF in distributed SOA environment [message #379650] Thu, 15 February 2007 10:28 Go to next message
Eclipse User
Originally posted by: aquaholic.rogers.com

Hi,

My company has been using MDD for quite some time now. Before the advent of
EMF we developed our own modeling language around which we built a
distributed SOA framework. The concept was very innovative at the time.
Model your service as a set of objects and behaviours on those objects. The
models themselves become the brokers to the service that you want to invoke.
This all sits on top of the J2EE stack that we use for
clustering/distribution/transactions/etc.

The problem is that we have wrapped our persistence into the service
invocation layers of the framework. This was not a wise decision (it was
before my time here ;-) ) as it has lead to numerous system crashes and
hours of debugging. So a major refactoring is in order! As such we are
hoping to incorporate industrial & open source tools into the framework as
much as possible. Myself I am a strong proponent of EMF and its
capabilities (I used it extensively in my Master's thesis). As such I am
trying to compile a report to discuss the advantages of leveraging EMF. We
all know the beauty of open source and the having a community to back our
development, but I have some questions that I am sure will come up regarding
EMF.

1. Are there any technologies/commercial products that use EMF outside of a
tooling context?
I am aware of Teneo and other persistence products that make use of EMF
(MetaMatrix). I am also aware of UIMA that uses the CAS modeling system;
but which has mappings to EMF. I am sure that someone has leverage EMF and
GEF/GMF in some RCP applications. What I am looking for here is the
applications of EMF in a distributed application where the main emphasis is
not on tooling (development tooling that is). Any J2EE application servers
that have introduced EMF in someway in their architecture? If people have
other good examples of using EMF in interesting applications I am all ears.

2. Using EMF as a transportation protocol for data?
So as we all know EObjects are not meant to be serializable, it is the
Resources that serialize the data and usually persist it to the file system.
But given that you have a backend service that has just read an EObject(s)
from a Resource that may be persisted to a file or to a database using the
Teneo project, what would be the best way of transporting a subset of the
Resource graph to the client? Also what if the result that is to be sent to
the client is composed of objects from many Resources? This may be tricky
as an object is only supposed to live in a single Resource, as such the only
solution that I foresee is to duplicate the data and place it in a special
Resource to serialize to the client. The beauty of a specialized 'client
transport Resource' is that you can easily introduce proxies that EMF can
resolve with the server, change monitoring by the client (ala SDO
ChangeSummary), close and serialize the data back to the service to be
persisted in the data store(s). Anyone thoughts of using EMF in this
manner?


I am sure that I will think of more questions as I progress with my report,
but if anyone has more to add on using EMF in a distributed SOA environment
please do post your opinions.

Thanks,
Alex
Re: EMF in distributed SOA environment [message #379653 is a reply to message #379650] Thu, 15 February 2007 11:09 Go to previous messageGo to next message
Ed Merks is currently offline Ed Merks
Messages: 24538
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------000804010904070906030807
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Alex,

My comments are below.


Eclipse wrote:
> Hi,
>
> My company has been using MDD for quite some time now. Before the advent of
> EMF we developed our own modeling language around which we built a
> distributed SOA framework. The concept was very innovative at the time.
> Model your service as a set of objects and behaviours on those objects. The
> models themselves become the brokers to the service that you want to invoke.
> This all sits on top of the J2EE stack that we use for
> clustering/distribution/transactions/etc.
>
> The problem is that we have wrapped our persistence into the service
> invocation layers of the framework. This was not a wise decision (it was
> before my time here ;-) ) as it has lead to numerous system crashes and
> hours of debugging. So a major refactoring is in order! As such we are
> hoping to incorporate industrial & open source tools into the framework as
> much as possible. Myself I am a strong proponent of EMF and its
> capabilities (I used it extensively in my Master's thesis). As such I am
> trying to compile a report to discuss the advantages of leveraging EMF. We
> all know the beauty of open source and the having a community to back our
> development, but I have some questions that I am sure will come up regarding
> EMF.
>
> 1. Are there any technologies/commercial products that use EMF outside of a
> tooling context?
>
EMF is definitely designed to run well standalone so it should be usable
in *any *environment. The Apache Tuscany project is using EMF
http://incubator.apache.org/tuscany/ to implement SDO 2.x, WebSphere's
WCCM model uses EMF, and WebSphere Process Server's business objects are
built on EMF's SDO 1.0 implementation.
> I am aware of Teneo and other persistence products that make use of EMF
> (MetaMatrix). I am also aware of UIMA that uses the CAS modeling system;
> but which has mappings to EMF. I am sure that someone has leverage EMF and
> GEF/GMF in some RCP applications. What I am looking for here is the
> applications of EMF in a distributed application where the main emphasis is
> not on tooling (development tooling that is). Any J2EE application servers
> that have introduced EMF in someway in their architecture? If people have
> other good examples of using EMF in interesting applications I am all ears.
>
> 2. Using EMF as a transportation protocol for data?
> So as we all know EObjects are not meant to be serializable, it is the
> Resources that serialize the data and usually persist it to the file system.
> But given that you have a backend service that has just read an EObject(s)
> from a Resource that may be persisted to a file or to a database using the
> Teneo project, what would be the best way of transporting a subset of the
> Resource graph to the client?
I think the idea should be to decompose your model into the appropriate
granularity of resources so that you can always aways deal with a
resource as a unit. In 2.2 we introduced support for cross resource
containment so it's literally possible at the extreme to put every
EObject in its own resource verses the other extreme of everything in a
single resource.
> Also what if the result that is to be sent to
> the client is composed of objects from many Resources?
I could imagine making a resource set be java.io.Serializeable and
composing the result from the XML serializations of the individual
resources. It's very easy to load a resource just from a stream, and
with the introduction and support for URIConverter.ReadableInputStream
and URIConverter.WriteableOutputStream in 2.2, it's possible to deal
directly and efficiently with Strings without the cost of String-> bytes
-> String encoding and decoding.
> This may be tricky
> as an object is only supposed to live in a single Resource, as such the only
> solution that I foresee is to duplicate the data and place it in a special
> Resource to serialize to the client. The beauty of a specialized 'client
> transport Resource' is that you can easily introduce proxies that EMF can
> resolve with the server, change monitoring by the client (ala SDO
> ChangeSummary), close and serialize the data back to the service to be
> persisted in the data store(s). Anyone thoughts of using EMF in this
> manner?
>
You can serialize a resource into any stream (or even just into a
StringWriter using the above approach). There are many approaches that
could be taken (but I'm not expert on web services). A very
interesting thing you could so with something like the ChangeRecorder
and Change model (which are used to implement SDO's ChangeSummary) is to
send your data to the client, record all the changes that they make, and
send back the change description only. With a model whose references
are purely ID based, the change description can easily be resolved on
the server side to reference the version of the data available there.
This article describes some of the interesting things you can do with
EMF in terms of supporting models based on schemas:
< http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava>

http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava

>
> I am sure that I will think of more questions as I progress with my report,
> but if anyone has more to add on using EMF in a distributed SOA environment
> please do post your opinions.
>
>
I'm starting to feeling like a salesman now, but since EMF is free, I
suppose that's a contradiction. I think it would be particularly
interesting to look at how the XML Schema -> Ecore mapping could be
extended to support WSDL to Ecore. (The XSD -> Ecore mapping can
already be applied for .wsdl files, but only the embedded <schema>s are
processed.)
> Thanks,
> Alex
>
>
>


--------------000804010904070906030807
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Alex,<br>
<br>
My comments are below.<br>
<br>
<br>
Eclipse wrote:
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap="">Hi,

My company has been using MDD for quite some time now. Before the advent of
EMF we developed our own modeling language around which we built a
distributed SOA framework. The concept was very innovative at the time.
Model your service as a set of objects and behaviours on those objects. The
models themselves become the brokers to the service that you want to invoke.
This all sits on top of the J2EE stack that we use for
clustering/distribution/transactions/etc.

The problem is that we have wrapped our persistence into the service
invocation layers of the framework. This was not a wise decision (it was
before my time here ;-) ) as it has lead to numerous system crashes and
hours of debugging. So a major refactoring is in order! As such we are
hoping to incorporate industrial &amp; open source tools into the framework as
much as possible. Myself I am a strong proponent of EMF and its
capabilities (I used it extensively in my Master's thesis). As such I am
trying to compile a report to discuss the advantages of leveraging EMF. We
all know the beauty of open source and the having a community to back our
development, but I have some questions that I am sure will come up regarding
EMF.

1. Are there any technologies/commercial products that use EMF outside of a
tooling context?
</pre>
</blockquote>
EMF is definitely designed to run well standalone so it should be
usable in <b>any </b>environment.&nbsp; The Apache Tuscany project is
using EMF&nbsp; <a href="http://incubator.apache.org/tuscany/">http://incubator.apache.org/tuscany/</a>
to implement SDO 2.x, WebSphere's WCCM model uses EMF, and WebSphere
Process Server's business objects are built on EMF's SDO 1.0
implementation.<br>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap="">I am aware of Teneo and other persistence products that make use of EMF
(MetaMatrix). I am also aware of UIMA that uses the CAS modeling system;
but which has mappings to EMF. I am sure that someone has leverage EMF and
GEF/GMF in some RCP applications. What I am looking for here is the
applications of EMF in a distributed application where the main emphasis is
not on tooling (development tooling that is). Any J2EE application servers
that have introduced EMF in someway in their architecture? If people have
other good examples of using EMF in interesting applications I am all ears.

2. Using EMF as a transportation protocol for data?
So as we all know EObjects are not meant to be serializable, it is the
Resources that serialize the data and usually persist it to the file system.
But given that you have a backend service that has just read an EObject(s)
from a Resource that may be persisted to a file or to a database using the
Teneo project, what would be the best way of transporting a subset of the
Resource graph to the client? </pre>
</blockquote>
I think the idea should be to decompose your model into the appropriate
granularity of resources so that you can always aways deal with a
resource as a unit.&nbsp; In 2.2 we introduced support for cross resource
containment so it's literally possible at the extreme to put every
EObject in its own resource verses the other extreme of everything in a
single resource.<br>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap=""> Also what if the result that is to be sent to
the client is composed of objects from many Resources? </pre>
</blockquote>
I could imagine making a resource set be java.io.Serializeable and
composing the result from the XML serializations of the individual
resources.&nbsp; It's very easy to load a resource just from a stream, and
with the introduction and support for URIConverter.ReadableInputStream
and URIConverter.WriteableOutputStream in 2.2, it's possible to deal
directly and efficiently with Strings without the cost of String-&gt;
bytes -&gt; String encoding and decoding.<br>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap=""> This may be tricky
as an object is only supposed to live in a single Resource, as such the only
solution that I foresee is to duplicate the data and place it in a special
Resource to serialize to the client. The beauty of a specialized 'client
transport Resource' is that you can easily introduce proxies that EMF can
resolve with the server, change monitoring by the client (ala SDO
ChangeSummary), close and serialize the data back to the service to be
persisted in the data store(s). Anyone thoughts of using EMF in this
manner?
</pre>
</blockquote>
You can serialize a resource into any stream (or even just into a
StringWriter using the above approach).&nbsp; There are many approaches that
could be taken (but I'm not expert on web services).&nbsp;&nbsp; A very
interesting thing you could so with something like the ChangeRecorder
and Change model (which are used to implement SDO's ChangeSummary) is
to send your data to the client, record all the changes that they make,
and send back the change description only.&nbsp; With a model whose
references are purely ID based, the change description can easily be
resolved on the server side to reference the version of the data
available there. This article describes some of the interesting things
you can do with EMF in terms of supporting models based on schemas:<a
href=" http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava"><br>
</a>
<blockquote><a
href=" http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava"> http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava</a><br>
</blockquote>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap="">

I am sure that I will think of more questions as I progress with my report,
but if anyone has more to add on using EMF in a distributed SOA environment
please do post your opinions.

</pre>
</blockquote>
I'm starting to feeling like a salesman now, but since EMF is free, I
suppose that's a contradiction.&nbsp; I think it would be particularly
interesting to look at how the XML Schema -&gt; Ecore mapping could be
extended to support WSDL to Ecore.&nbsp; (The XSD -&gt; Ecore mapping can
already be applied for .wsdl files, but only the embedded
&lt;schema&gt;s are processed.)<br>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap="">Thanks,
Alex


</pre>
</blockquote>
<br>
</body>
</html>

--------------000804010904070906030807--
Re: EMF in distributed SOA environment [message #379655 is a reply to message #379650] Fri, 16 February 2007 01:07 Go to previous message
Eike Stepper is currently offline Eike Stepper
Messages: 5152
Registered: July 2009
Senior Member
Alex,

If I got your 2. question right the EMFT CDO technology could be
something like that.
CDO treats a local ResourceSet as a consistent view onto a remote
repository of persistent Resources.
In that it is functionally (thus namely) similar to SDO. If you'd like
to use CDO as an SDO implementation
please file a Bugzilla and I will try to evaluate ways to implement the
SDO API.

If you want to have a look at CDO, I suggest that you checkout from HEAD
where I'm currently
developing a new design that is capable of transparent versioning, time
travel and some other features.
The previous version is in the R0_7_maintenance branch (newer than the
published downloads because
the build system is not working since I returned from vacation).

If you have questions regarding CDO I'd be happy to answer them.

Cheers
Eike



Eclipse schrieb:
> Hi,
>
> My company has been using MDD for quite some time now. Before the advent of
> EMF we developed our own modeling language around which we built a
> distributed SOA framework. The concept was very innovative at the time.
> Model your service as a set of objects and behaviours on those objects. The
> models themselves become the brokers to the service that you want to invoke.
> This all sits on top of the J2EE stack that we use for
> clustering/distribution/transactions/etc.
>
> The problem is that we have wrapped our persistence into the service
> invocation layers of the framework. This was not a wise decision (it was
> before my time here ;-) ) as it has lead to numerous system crashes and
> hours of debugging. So a major refactoring is in order! As such we are
> hoping to incorporate industrial & open source tools into the framework as
> much as possible. Myself I am a strong proponent of EMF and its
> capabilities (I used it extensively in my Master's thesis). As such I am
> trying to compile a report to discuss the advantages of leveraging EMF. We
> all know the beauty of open source and the having a community to back our
> development, but I have some questions that I am sure will come up regarding
> EMF.
>
> 1. Are there any technologies/commercial products that use EMF outside of a
> tooling context?
> I am aware of Teneo and other persistence products that make use of EMF
> (MetaMatrix). I am also aware of UIMA that uses the CAS modeling system;
> but which has mappings to EMF. I am sure that someone has leverage EMF and
> GEF/GMF in some RCP applications. What I am looking for here is the
> applications of EMF in a distributed application where the main emphasis is
> not on tooling (development tooling that is). Any J2EE application servers
> that have introduced EMF in someway in their architecture? If people have
> other good examples of using EMF in interesting applications I am all ears.
>
> 2. Using EMF as a transportation protocol for data?
> So as we all know EObjects are not meant to be serializable, it is the
> Resources that serialize the data and usually persist it to the file system.
> But given that you have a backend service that has just read an EObject(s)
> from a Resource that may be persisted to a file or to a database using the
> Teneo project, what would be the best way of transporting a subset of the
> Resource graph to the client? Also what if the result that is to be sent to
> the client is composed of objects from many Resources? This may be tricky
> as an object is only supposed to live in a single Resource, as such the only
> solution that I foresee is to duplicate the data and place it in a special
> Resource to serialize to the client. The beauty of a specialized 'client
> transport Resource' is that you can easily introduce proxies that EMF can
> resolve with the server, change monitoring by the client (ala SDO
> ChangeSummary), close and serialize the data back to the service to be
> persisted in the data store(s). Anyone thoughts of using EMF in this
> manner?
>
>
> I am sure that I will think of more questions as I progress with my report,
> but if anyone has more to add on using EMF in a distributed SOA environment
> please do post your opinions.
>
> Thanks,
> Alex
>
>
>
Re: EMF in distributed SOA environment [message #586669 is a reply to message #379650] Thu, 15 February 2007 11:09 Go to previous message
Ed Merks is currently offline Ed Merks
Messages: 24538
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------000804010904070906030807
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Alex,

My comments are below.


Eclipse wrote:
> Hi,
>
> My company has been using MDD for quite some time now. Before the advent of
> EMF we developed our own modeling language around which we built a
> distributed SOA framework. The concept was very innovative at the time.
> Model your service as a set of objects and behaviours on those objects. The
> models themselves become the brokers to the service that you want to invoke.
> This all sits on top of the J2EE stack that we use for
> clustering/distribution/transactions/etc.
>
> The problem is that we have wrapped our persistence into the service
> invocation layers of the framework. This was not a wise decision (it was
> before my time here ;-) ) as it has lead to numerous system crashes and
> hours of debugging. So a major refactoring is in order! As such we are
> hoping to incorporate industrial & open source tools into the framework as
> much as possible. Myself I am a strong proponent of EMF and its
> capabilities (I used it extensively in my Master's thesis). As such I am
> trying to compile a report to discuss the advantages of leveraging EMF. We
> all know the beauty of open source and the having a community to back our
> development, but I have some questions that I am sure will come up regarding
> EMF.
>
> 1. Are there any technologies/commercial products that use EMF outside of a
> tooling context?
>
EMF is definitely designed to run well standalone so it should be usable
in *any *environment. The Apache Tuscany project is using EMF
http://incubator.apache.org/tuscany/ to implement SDO 2.x, WebSphere's
WCCM model uses EMF, and WebSphere Process Server's business objects are
built on EMF's SDO 1.0 implementation.
> I am aware of Teneo and other persistence products that make use of EMF
> (MetaMatrix). I am also aware of UIMA that uses the CAS modeling system;
> but which has mappings to EMF. I am sure that someone has leverage EMF and
> GEF/GMF in some RCP applications. What I am looking for here is the
> applications of EMF in a distributed application where the main emphasis is
> not on tooling (development tooling that is). Any J2EE application servers
> that have introduced EMF in someway in their architecture? If people have
> other good examples of using EMF in interesting applications I am all ears.
>
> 2. Using EMF as a transportation protocol for data?
> So as we all know EObjects are not meant to be serializable, it is the
> Resources that serialize the data and usually persist it to the file system.
> But given that you have a backend service that has just read an EObject(s)
> from a Resource that may be persisted to a file or to a database using the
> Teneo project, what would be the best way of transporting a subset of the
> Resource graph to the client?
I think the idea should be to decompose your model into the appropriate
granularity of resources so that you can always aways deal with a
resource as a unit. In 2.2 we introduced support for cross resource
containment so it's literally possible at the extreme to put every
EObject in its own resource verses the other extreme of everything in a
single resource.
> Also what if the result that is to be sent to
> the client is composed of objects from many Resources?
I could imagine making a resource set be java.io.Serializeable and
composing the result from the XML serializations of the individual
resources. It's very easy to load a resource just from a stream, and
with the introduction and support for URIConverter.ReadableInputStream
and URIConverter.WriteableOutputStream in 2.2, it's possible to deal
directly and efficiently with Strings without the cost of String-> bytes
-> String encoding and decoding.
> This may be tricky
> as an object is only supposed to live in a single Resource, as such the only
> solution that I foresee is to duplicate the data and place it in a special
> Resource to serialize to the client. The beauty of a specialized 'client
> transport Resource' is that you can easily introduce proxies that EMF can
> resolve with the server, change monitoring by the client (ala SDO
> ChangeSummary), close and serialize the data back to the service to be
> persisted in the data store(s). Anyone thoughts of using EMF in this
> manner?
>
You can serialize a resource into any stream (or even just into a
StringWriter using the above approach). There are many approaches that
could be taken (but I'm not expert on web services). A very
interesting thing you could so with something like the ChangeRecorder
and Change model (which are used to implement SDO's ChangeSummary) is to
send your data to the client, record all the changes that they make, and
send back the change description only. With a model whose references
are purely ID based, the change description can easily be resolved on
the server side to reference the version of the data available there.
This article describes some of the interesting things you can do with
EMF in terms of supporting models based on schemas:
< http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava>

http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava

>
> I am sure that I will think of more questions as I progress with my report,
> but if anyone has more to add on using EMF in a distributed SOA environment
> please do post your opinions.
>
>
I'm starting to feeling like a salesman now, but since EMF is free, I
suppose that's a contradiction. I think it would be particularly
interesting to look at how the XML Schema -> Ecore mapping could be
extended to support WSDL to Ecore. (The XSD -> Ecore mapping can
already be applied for .wsdl files, but only the embedded <schema>s are
processed.)
> Thanks,
> Alex
>
>
>


--------------000804010904070906030807
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Alex,<br>
<br>
My comments are below.<br>
<br>
<br>
Eclipse wrote:
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap="">Hi,

My company has been using MDD for quite some time now. Before the advent of
EMF we developed our own modeling language around which we built a
distributed SOA framework. The concept was very innovative at the time.
Model your service as a set of objects and behaviours on those objects. The
models themselves become the brokers to the service that you want to invoke.
This all sits on top of the J2EE stack that we use for
clustering/distribution/transactions/etc.

The problem is that we have wrapped our persistence into the service
invocation layers of the framework. This was not a wise decision (it was
before my time here ;-) ) as it has lead to numerous system crashes and
hours of debugging. So a major refactoring is in order! As such we are
hoping to incorporate industrial &amp; open source tools into the framework as
much as possible. Myself I am a strong proponent of EMF and its
capabilities (I used it extensively in my Master's thesis). As such I am
trying to compile a report to discuss the advantages of leveraging EMF. We
all know the beauty of open source and the having a community to back our
development, but I have some questions that I am sure will come up regarding
EMF.

1. Are there any technologies/commercial products that use EMF outside of a
tooling context?
</pre>
</blockquote>
EMF is definitely designed to run well standalone so it should be
usable in <b>any </b>environment.&nbsp; The Apache Tuscany project is
using EMF&nbsp; <a href="http://incubator.apache.org/tuscany/">http://incubator.apache.org/tuscany/</a>
to implement SDO 2.x, WebSphere's WCCM model uses EMF, and WebSphere
Process Server's business objects are built on EMF's SDO 1.0
implementation.<br>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap="">I am aware of Teneo and other persistence products that make use of EMF
(MetaMatrix). I am also aware of UIMA that uses the CAS modeling system;
but which has mappings to EMF. I am sure that someone has leverage EMF and
GEF/GMF in some RCP applications. What I am looking for here is the
applications of EMF in a distributed application where the main emphasis is
not on tooling (development tooling that is). Any J2EE application servers
that have introduced EMF in someway in their architecture? If people have
other good examples of using EMF in interesting applications I am all ears.

2. Using EMF as a transportation protocol for data?
So as we all know EObjects are not meant to be serializable, it is the
Resources that serialize the data and usually persist it to the file system.
But given that you have a backend service that has just read an EObject(s)
from a Resource that may be persisted to a file or to a database using the
Teneo project, what would be the best way of transporting a subset of the
Resource graph to the client? </pre>
</blockquote>
I think the idea should be to decompose your model into the appropriate
granularity of resources so that you can always aways deal with a
resource as a unit.&nbsp; In 2.2 we introduced support for cross resource
containment so it's literally possible at the extreme to put every
EObject in its own resource verses the other extreme of everything in a
single resource.<br>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap=""> Also what if the result that is to be sent to
the client is composed of objects from many Resources? </pre>
</blockquote>
I could imagine making a resource set be java.io.Serializeable and
composing the result from the XML serializations of the individual
resources.&nbsp; It's very easy to load a resource just from a stream, and
with the introduction and support for URIConverter.ReadableInputStream
and URIConverter.WriteableOutputStream in 2.2, it's possible to deal
directly and efficiently with Strings without the cost of String-&gt;
bytes -&gt; String encoding and decoding.<br>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap=""> This may be tricky
as an object is only supposed to live in a single Resource, as such the only
solution that I foresee is to duplicate the data and place it in a special
Resource to serialize to the client. The beauty of a specialized 'client
transport Resource' is that you can easily introduce proxies that EMF can
resolve with the server, change monitoring by the client (ala SDO
ChangeSummary), close and serialize the data back to the service to be
persisted in the data store(s). Anyone thoughts of using EMF in this
manner?
</pre>
</blockquote>
You can serialize a resource into any stream (or even just into a
StringWriter using the above approach).&nbsp; There are many approaches that
could be taken (but I'm not expert on web services).&nbsp;&nbsp; A very
interesting thing you could so with something like the ChangeRecorder
and Change model (which are used to implement SDO's ChangeSummary) is
to send your data to the client, record all the changes that they make,
and send back the change description only.&nbsp; With a model whose
references are purely ID based, the change description can easily be
resolved on the server side to reference the version of the data
available there. This article describes some of the interesting things
you can do with EMF in terms of supporting models based on schemas:<a
href=" http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava"><br>
</a>
<blockquote><a
href=" http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava"> http://www.theserverside.com/tt/articles/article.tss?l=Bindi ngXMLJava</a><br>
</blockquote>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap="">

I am sure that I will think of more questions as I progress with my report,
but if anyone has more to add on using EMF in a distributed SOA environment
please do post your opinions.

</pre>
</blockquote>
I'm starting to feeling like a salesman now, but since EMF is free, I
suppose that's a contradiction.&nbsp; I think it would be particularly
interesting to look at how the XML Schema -&gt; Ecore mapping could be
extended to support WSDL to Ecore.&nbsp; (The XSD -&gt; Ecore mapping can
already be applied for .wsdl files, but only the embedded
&lt;schema&gt;s are processed.)<br>
<blockquote cite="mider1u78$23g$1@utils.eclipse.org" type="cite">
<pre wrap="">Thanks,
Alex


</pre>
</blockquote>
<br>
</body>
</html>

--------------000804010904070906030807--
Re: EMF in distributed SOA environment [message #586686 is a reply to message #379650] Fri, 16 February 2007 01:07 Go to previous message
Eike Stepper is currently offline Eike Stepper
Messages: 5152
Registered: July 2009
Senior Member
Alex,

If I got your 2. question right the EMFT CDO technology could be
something like that.
CDO treats a local ResourceSet as a consistent view onto a remote
repository of persistent Resources.
In that it is functionally (thus namely) similar to SDO. If you'd like
to use CDO as an SDO implementation
please file a Bugzilla and I will try to evaluate ways to implement the
SDO API.

If you want to have a look at CDO, I suggest that you checkout from HEAD
where I'm currently
developing a new design that is capable of transparent versioning, time
travel and some other features.
The previous version is in the R0_7_maintenance branch (newer than the
published downloads because
the build system is not working since I returned from vacation).

If you have questions regarding CDO I'd be happy to answer them.

Cheers
Eike



Eclipse schrieb:
> Hi,
>
> My company has been using MDD for quite some time now. Before the advent of
> EMF we developed our own modeling language around which we built a
> distributed SOA framework. The concept was very innovative at the time.
> Model your service as a set of objects and behaviours on those objects. The
> models themselves become the brokers to the service that you want to invoke.
> This all sits on top of the J2EE stack that we use for
> clustering/distribution/transactions/etc.
>
> The problem is that we have wrapped our persistence into the service
> invocation layers of the framework. This was not a wise decision (it was
> before my time here ;-) ) as it has lead to numerous system crashes and
> hours of debugging. So a major refactoring is in order! As such we are
> hoping to incorporate industrial & open source tools into the framework as
> much as possible. Myself I am a strong proponent of EMF and its
> capabilities (I used it extensively in my Master's thesis). As such I am
> trying to compile a report to discuss the advantages of leveraging EMF. We
> all know the beauty of open source and the having a community to back our
> development, but I have some questions that I am sure will come up regarding
> EMF.
>
> 1. Are there any technologies/commercial products that use EMF outside of a
> tooling context?
> I am aware of Teneo and other persistence products that make use of EMF
> (MetaMatrix). I am also aware of UIMA that uses the CAS modeling system;
> but which has mappings to EMF. I am sure that someone has leverage EMF and
> GEF/GMF in some RCP applications. What I am looking for here is the
> applications of EMF in a distributed application where the main emphasis is
> not on tooling (development tooling that is). Any J2EE application servers
> that have introduced EMF in someway in their architecture? If people have
> other good examples of using EMF in interesting applications I am all ears.
>
> 2. Using EMF as a transportation protocol for data?
> So as we all know EObjects are not meant to be serializable, it is the
> Resources that serialize the data and usually persist it to the file system.
> But given that you have a backend service that has just read an EObject(s)
> from a Resource that may be persisted to a file or to a database using the
> Teneo project, what would be the best way of transporting a subset of the
> Resource graph to the client? Also what if the result that is to be sent to
> the client is composed of objects from many Resources? This may be tricky
> as an object is only supposed to live in a single Resource, as such the only
> solution that I foresee is to duplicate the data and place it in a special
> Resource to serialize to the client. The beauty of a specialized 'client
> transport Resource' is that you can easily introduce proxies that EMF can
> resolve with the server, change monitoring by the client (ala SDO
> ChangeSummary), close and serialize the data back to the service to be
> persisted in the data store(s). Anyone thoughts of using EMF in this
> manner?
>
>
> I am sure that I will think of more questions as I progress with my report,
> but if anyone has more to add on using EMF in a distributed SOA environment
> please do post your opinions.
>
> Thanks,
> Alex
>
>
>
Previous Topic:EMF in distributed SOA environment
Next Topic:IllegalArgumentException: The feature 'artifact' is not a valid feature, when load resource
Goto Forum:
  


Current Time: Mon May 20 21:32:41 EDT 2013

Powered by FUDForum. Page generated in 0.03448 seconds