Re: [Fornax-developer] Higher abstraction level

2010-04-15 Thread Patrik Nordwall

Thinking time is over :-)

I think this is very interesting. In my dreams it would be possible and easy
for anyone to develop their own DSL and code generator on top of Sculptor.
Then it would be possible to develop things like you describe without adding
everything in the core of Sculptor. I can think of many use cases for this.
One would be a to develop a DSL for the business domain (not only technical
stuff) of something in your company. Then we are talking about higher level
of abstraction!

We already have great possibilities to customize the code generation
templates (and transformations).

It is already possible to design your own meta model that refers to or
extends sculptor meta model. This is what we do in gui meta model.

It is already possible to develop a new xtext dsl with references to the
sculptordsl. This is what we do in sculptorguidsl.

The part that is missing is to easily be able to tweek existing sculptordsl.
Maybe you only need a few additions to existing rule definitions. In new
xtext this should be possible as described in xtext user guide.
http://www.eclipse.org/Xtext/documentation/0_7_2/xtext.html#grammarMixins
I have not tried, so I don't know if is usable.

My suggestion is that you try to develop some of your ideas as a separate
add-on. Maybe we need to adjust things in core sculptor to be able to
support these kind of custom DSL/genererators even better.

/Patrik


Patrik Nordwall wrote:
 
 I need some mental thinking time on this :-)
 
 PaloT wrote:
 
 Hi Patrki, just needed time to do mental work. I was thinking about
 your proposal. Than I will have free tied entities. For example in ORG
 module I have Employee and in CMDB module will have CMDBEmployee with
 link to Employee like:
 
 Entity CMDBEmployee {
Long originEmployee;
...
 }
 
 I was dreaming more about some automatic sharing attributes, automatic
 spliting and merging entities, ... . Is here some generic pattern,
 technology which we can support in Sculptor regarding this? Some
 generic concept in Spring, SOA (ServiceMix 4, Eclipse Swordfish, ...)
 which can be implemented in Sculptor? I'm just trying to find
 something common what should be useful for others. I know how to do it
 manually in SOA or using some other technologies. But maybe here is
 some standardization going on. Something like:
 
 BusinessEntity CentralEmployee {
  String firstName searchable readonly - OrgEmployee.name,
 HrEmployee.firstName
  String secondName searchable readonly - OrgEmployee.lastName,
 HrEmployee.secondName
  String title readonly - OrgEmployee.title
  String eyeColor
  Date birthdate searchable readonly - HrEmplyee.birthdate
  HrEmployee hrDetail - HrEmployee.* except firstName, secondName
  CmdbEmployee cmdbDetail - CmdbEmployee.*
 }
 
 Business entity will remember all set operation and set dirty flag for
 specific entities which need to be saved and allow to get specific
 entities like 'createHrEmployee' which will return HrEmployee object.
 Similar to this service:
 
 BusinessService EmployeeService {
save - OrgEmployeeService failfast recover, HrEmployeeService.save
 ignoreerror, CmdbEmloyeeService.save ignoreerror
 }
 
 I have in ming many concept around this like transaction control,
 messaging, search database, orchestration, ... . You are wise man, you
 read even more than I about concepts. Do you have something in mind
 regarding this? Am I totally foolish if I want achieve this?
 
 Pavel
 
 On Fri, Apr 9, 2010 at 7:28 AM, Patrik Nordwall
 patrik.nordw...@gmail.com wrote:

 My intuitive recommendation is that you should use seperate
 representations
 in the different systems. More flexible and less dependencies between
 them.

 I think it is bad to share db between systems. Each should own it's
 data,
 but replication (via message bus) might be needed. Each system can store
 it's own representation. Only one should be master (responsible for
 updating
 data).

 In ddd terms this is about different bounded contexts and
 anti-corruption
 layer. This is absolutely not the only ddd strategic design pattern.
 Read
 more in the ddd book or in this article
 http://www.infoq.com/articles/ddd-contextmapping

 /Patrik

 PaloT wrote:

 Hi,
 maybe this is not right forum but I know that many clever brains watch
 it.

 I have following problem:
 We have organization structure with Employee entity, pretty simple.
 Now we are going to implement ConfigurationDatabase system (CMDB). I
 have to add some attributes to Employee (machines which he
 administrate, ...). Than we are implementing sales system. I have to
 again add some attributes to Person like teritory, distributionPhase,
 ... . And than problem come when I want deploy and combine different
 systems for customers (with sales system, without CMDB, ...). How to
 solve this?

 a) Create independent systems with CmdbEmployee, SalesEmployee and
 create higher level on bus (SOA) which will care about merging and
 spliting all entities 

Re: [Fornax-developer] Higher abstraction level

2010-04-13 Thread Pavel Tavoda
Hi Patrki, just needed time to do mental work. I was thinking about
your proposal. Than I will have free tied entities. For example in ORG
module I have Employee and in CMDB module will have CMDBEmployee with
link to Employee like:

Entity CMDBEmployee {
   Long originEmployee;
   ...
}

I was dreaming more about some automatic sharing attributes, automatic
spliting and merging entities, ... . Is here some generic pattern,
technology which we can support in Sculptor regarding this? Some
generic concept in Spring, SOA (ServiceMix 4, Eclipse Swordfish, ...)
which can be implemented in Sculptor? I'm just trying to find
something common what should be useful for others. I know how to do it
manually in SOA or using some other technologies. But maybe here is
some standardization going on. Something like:

BusinessEntity CentralEmployee {
 String firstName searchable readonly - OrgEmployee.name,
HrEmployee.firstName
 String secondName searchable readonly - OrgEmployee.lastName,
HrEmployee.secondName
 String title readonly - OrgEmployee.title
 String eyeColor
 Date birthdate searchable readonly - HrEmplyee.birthdate
 HrEmployee hrDetail - HrEmployee.* except firstName, secondName
 CmdbEmployee cmdbDetail - CmdbEmployee.*
}

Business entity will remember all set operation and set dirty flag for
specific entities which need to be saved and allow to get specific
entities like 'createHrEmployee' which will return HrEmployee object.
Similar to this service:

BusinessService EmployeeService {
   save - OrgEmployeeService failfast recover, HrEmployeeService.save
ignoreerror, CmdbEmloyeeService.save ignoreerror
}

I have in ming many concept around this like transaction control,
messaging, search database, orchestration, ... . You are wise man, you
read even more than I about concepts. Do you have something in mind
regarding this? Am I totally foolish if I want achieve this?

Pavel

On Fri, Apr 9, 2010 at 7:28 AM, Patrik Nordwall
patrik.nordw...@gmail.com wrote:

 My intuitive recommendation is that you should use seperate representations
 in the different systems. More flexible and less dependencies between them.

 I think it is bad to share db between systems. Each should own it's data,
 but replication (via message bus) might be needed. Each system can store
 it's own representation. Only one should be master (responsible for updating
 data).

 In ddd terms this is about different bounded contexts and anti-corruption
 layer. This is absolutely not the only ddd strategic design pattern. Read
 more in the ddd book or in this article
 http://www.infoq.com/articles/ddd-contextmapping

 /Patrik

 PaloT wrote:

 Hi,
 maybe this is not right forum but I know that many clever brains watch it.

 I have following problem:
 We have organization structure with Employee entity, pretty simple.
 Now we are going to implement ConfigurationDatabase system (CMDB). I
 have to add some attributes to Employee (machines which he
 administrate, ...). Than we are implementing sales system. I have to
 again add some attributes to Person like teritory, distributionPhase,
 ... . And than problem come when I want deploy and combine different
 systems for customers (with sales system, without CMDB, ...). How to
 solve this?

 a) Create independent systems with CmdbEmployee, SalesEmployee and
 create higher level on bus (SOA) which will care about merging and
 spliting all entities together
 b) We will provide some kind of mixins in Sculptor DSL which will
 allow merging entities (CmdbEmployee mixin Employee)
 c) AspectJ ITD
 e) Any other better idea?

 Thanks for ANY hint you can provide

 Pavel

 --
 Download Intel#174; Parallel Studio Eval
 Try the new software tools for yourself. Speed compiling, find bugs
 proactively, and fine-tune applications for parallel performance.
 See why Intel Parallel Studio got high marks during beta.
 http://p.sf.net/sfu/intel-sw-dev
 ___
 Fornax-developer mailing list
 Fornax-developer@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/fornax-developer



 --
 View this message in context: 
 http://old.nabble.com/Higher-abstraction-level-tp28177781s17564p28188159.html
 Sent from the Fornax-Platform mailing list archive at Nabble.com.


 --
 Download Intel#174; Parallel Studio Eval
 Try the new software tools for yourself. Speed compiling, find bugs
 proactively, and fine-tune applications for parallel performance.
 See why Intel Parallel Studio got high marks during beta.
 http://p.sf.net/sfu/intel-sw-dev
 ___
 Fornax-developer mailing list
 Fornax-developer@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/fornax-developer


--
Download 

Re: [Fornax-developer] Higher abstraction level

2010-04-13 Thread Patrik Nordwall

I need some mental thinking time on this :-)

PaloT wrote:
 
 Hi Patrki, just needed time to do mental work. I was thinking about
 your proposal. Than I will have free tied entities. For example in ORG
 module I have Employee and in CMDB module will have CMDBEmployee with
 link to Employee like:
 
 Entity CMDBEmployee {
Long originEmployee;
...
 }
 
 I was dreaming more about some automatic sharing attributes, automatic
 spliting and merging entities, ... . Is here some generic pattern,
 technology which we can support in Sculptor regarding this? Some
 generic concept in Spring, SOA (ServiceMix 4, Eclipse Swordfish, ...)
 which can be implemented in Sculptor? I'm just trying to find
 something common what should be useful for others. I know how to do it
 manually in SOA or using some other technologies. But maybe here is
 some standardization going on. Something like:
 
 BusinessEntity CentralEmployee {
  String firstName searchable readonly - OrgEmployee.name,
 HrEmployee.firstName
  String secondName searchable readonly - OrgEmployee.lastName,
 HrEmployee.secondName
  String title readonly - OrgEmployee.title
  String eyeColor
  Date birthdate searchable readonly - HrEmplyee.birthdate
  HrEmployee hrDetail - HrEmployee.* except firstName, secondName
  CmdbEmployee cmdbDetail - CmdbEmployee.*
 }
 
 Business entity will remember all set operation and set dirty flag for
 specific entities which need to be saved and allow to get specific
 entities like 'createHrEmployee' which will return HrEmployee object.
 Similar to this service:
 
 BusinessService EmployeeService {
save - OrgEmployeeService failfast recover, HrEmployeeService.save
 ignoreerror, CmdbEmloyeeService.save ignoreerror
 }
 
 I have in ming many concept around this like transaction control,
 messaging, search database, orchestration, ... . You are wise man, you
 read even more than I about concepts. Do you have something in mind
 regarding this? Am I totally foolish if I want achieve this?
 
 Pavel
 
 On Fri, Apr 9, 2010 at 7:28 AM, Patrik Nordwall
 patrik.nordw...@gmail.com wrote:

 My intuitive recommendation is that you should use seperate
 representations
 in the different systems. More flexible and less dependencies between
 them.

 I think it is bad to share db between systems. Each should own it's data,
 but replication (via message bus) might be needed. Each system can store
 it's own representation. Only one should be master (responsible for
 updating
 data).

 In ddd terms this is about different bounded contexts and anti-corruption
 layer. This is absolutely not the only ddd strategic design pattern. Read
 more in the ddd book or in this article
 http://www.infoq.com/articles/ddd-contextmapping

 /Patrik

 PaloT wrote:

 Hi,
 maybe this is not right forum but I know that many clever brains watch
 it.

 I have following problem:
 We have organization structure with Employee entity, pretty simple.
 Now we are going to implement ConfigurationDatabase system (CMDB). I
 have to add some attributes to Employee (machines which he
 administrate, ...). Than we are implementing sales system. I have to
 again add some attributes to Person like teritory, distributionPhase,
 ... . And than problem come when I want deploy and combine different
 systems for customers (with sales system, without CMDB, ...). How to
 solve this?

 a) Create independent systems with CmdbEmployee, SalesEmployee and
 create higher level on bus (SOA) which will care about merging and
 spliting all entities together
 b) We will provide some kind of mixins in Sculptor DSL which will
 allow merging entities (CmdbEmployee mixin Employee)
 c) AspectJ ITD
 e) Any other better idea?

 Thanks for ANY hint you can provide

 Pavel

 --
 Download Intel#174; Parallel Studio Eval
 Try the new software tools for yourself. Speed compiling, find bugs
 proactively, and fine-tune applications for parallel performance.
 See why Intel Parallel Studio got high marks during beta.
 http://p.sf.net/sfu/intel-sw-dev
 ___
 Fornax-developer mailing list
 Fornax-developer@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/fornax-developer



 --
 View this message in context:
 http://old.nabble.com/Higher-abstraction-level-tp28177781s17564p28188159.html
 Sent from the Fornax-Platform mailing list archive at Nabble.com.


 --
 Download Intel#174; Parallel Studio Eval
 Try the new software tools for yourself. Speed compiling, find bugs
 proactively, and fine-tune applications for parallel performance.
 See why Intel Parallel Studio got high marks during beta.
 http://p.sf.net/sfu/intel-sw-dev
 ___
 Fornax-developer mailing list
 Fornax-developer@lists.sourceforge.net
 

Re: [Fornax-developer] Higher abstraction level

2010-04-09 Thread Patrik Nordwall

My intuitive recommendation is that you should use seperate representations
in the different systems. More flexible and less dependencies between them. 

I think it is bad to share db between systems. Each should own it's data,
but replication (via message bus) might be needed. Each system can store
it's own representation. Only one should be master (responsible for updating
data). 

In ddd terms this is about different bounded contexts and anti-corruption
layer. This is absolutely not the only ddd strategic design pattern. Read
more in the ddd book or in this article
http://www.infoq.com/articles/ddd-contextmapping

/Patrik

PaloT wrote:
 
 Hi,
 maybe this is not right forum but I know that many clever brains watch it.
 
 I have following problem:
 We have organization structure with Employee entity, pretty simple.
 Now we are going to implement ConfigurationDatabase system (CMDB). I
 have to add some attributes to Employee (machines which he
 administrate, ...). Than we are implementing sales system. I have to
 again add some attributes to Person like teritory, distributionPhase,
 ... . And than problem come when I want deploy and combine different
 systems for customers (with sales system, without CMDB, ...). How to
 solve this?
 
 a) Create independent systems with CmdbEmployee, SalesEmployee and
 create higher level on bus (SOA) which will care about merging and
 spliting all entities together
 b) We will provide some kind of mixins in Sculptor DSL which will
 allow merging entities (CmdbEmployee mixin Employee)
 c) AspectJ ITD
 e) Any other better idea?
 
 Thanks for ANY hint you can provide
 
 Pavel
 
 --
 Download Intel#174; Parallel Studio Eval
 Try the new software tools for yourself. Speed compiling, find bugs
 proactively, and fine-tune applications for parallel performance.
 See why Intel Parallel Studio got high marks during beta.
 http://p.sf.net/sfu/intel-sw-dev
 ___
 Fornax-developer mailing list
 Fornax-developer@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/fornax-developer
 
 

-- 
View this message in context: 
http://old.nabble.com/Higher-abstraction-level-tp28177781s17564p28188159.html
Sent from the Fornax-Platform mailing list archive at Nabble.com.


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Fornax-developer mailing list
Fornax-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fornax-developer