Sciology = Science + Technology

Commonsense in Technology

Archive for the ‘EMF’ Category

BayArea Eclipse DemoCamp roundup

Posted by sureshkrishna on November 21, 2008

I am excited to attend the much awaited DemoCamp and meet some Regional Community enthusiasts. Till now 21 got registered for the Regional Community and i am expecting this number to grow; i am sure that Bay Area has more companies working on Eclipse and its just the matter of time.

The DemoCamp started with the demo by Ingres Corporation – A quick tour of the Eclipse Data Tools Platform, which followed by an exciting presentation from Michael Galpin – Eclipse @ eBay.

img_0034

I gave a presentation + demo on the Single Source; Three Runtimes, which definitely excited many people in the DemoCamp.

Francis Upton gave a nice presentation on the Oakland Software Data Transformer.

img_0036

Oracle‘s Greg Stachnick gave a presentation and demo of the Oracle Enterprise Pack for Eclipse. I am definitely going to use this OEPE in future, it has nice WebLogic integration features.

img_0037

I met Randy Kerber and discussed EMF stuff and experiences. We are yet to find some users for EMF so that we can have some interesting discussions.

Last but not the least, i thank Ingres Corporation for organizing this DemoCamp (, beer and pizza’s too :)) where all Eclipse enthusiasts had an opportunity to share their experiences. Hoping to see more participation from the other Bay Area companies in future.

Happy Eclipse-ing.

Posted in AJAX, Eclipse, EMF, RCP | Tagged: , , , | 2 Comments »

Need some Experiences on Topcased, OAW for MDA

Posted by sureshkrishna on November 30, 2007

I have been looking at the Topcased IDE for Model Driven Development. With so many tools used inside, its a lot overwhelming to know each tool and see how they should be used. Tools / Concepts like AADL, Acceleo, OAW in the TopCased makes me confuse with the Eclipse Modeling Framework Project. OAW has the topics like Model-to-Text, Model-to-Model and other Model Front end tools.

I would need some help from any one who can point me to a high level differences between the EMF Project and OAW/Topcased. I do remember seeing OAW on Eclipse site some time back, but i don’t remember the context.

More importantly, if any of individuals or companies are using Topcased suite for the MDA, please do let me know your experiences.  I am evaluating some of the MDA Development tools and i would like to get feedback from all you experts.

Posted in Eclipse, EMF | Tagged: , , , | 5 Comments »

Persist your EMF Objects with Teneo

Posted by sureshkrishna on October 9, 2007

JMatter, NakedObjects and EMF are few technologies that i have been interested recently. That fact that all these technologies allows to create the model, generate the code for UI and finally persist the UI State in Object Reational Databases, makes me get excited about these. Without the help of these frameworks, some business usecases which needs the domain model/metadata to be persisted in the databases does require a lot of hand-coding and often requires long months of implementation. JMatter and Naked Object are supposedly generate the OR mapping from the domain data to the direct database tables with the help of the Hibernate mapping.

For all the EMF and Eclipse lovers it would be difficult to change their applications to JMatter or NakedObjects.  And one reason that i do not want to do it right now is that these frameworks are yet to support the SWT and interop with EMF models. For the Object relational database persistence of the metadata and domain models i found the Teneo project from eclipse to be quite promising.

What is Teneo : Teneo is the eclipse sub-project from  EMFT, which aims at providing the database persistency solution for EMF using Hibernate or JPOX/JDO 2.0. It supports automatic creation of EMF to Relational Mappings and the related database schemas. EMF Objects can be queried and stored using the advanced queries like HQL and JDOQL.

Why use Teneo

  • Teneo allows you to start with your model (UML or XML Schema) and automatically generate the java source code and object-relational mappings.
  • Teneo takes over much (or even all) of the manual work of creating relational mapping schemes.
  • Teneo supports JPA annotations on model level, this keeps your java code clean from persistency specific constructs.
  • The integration with EMF allows you to generate Eclipse RCP editors which persist automatically to a relational database.

And More  Teneo automatically maps the EMF model to a Hibernate OR mapping. The automatic mapping can be done in-memory when your application is initialized or a separate hibernate mapping file can be generated. The generated hbm file can be adapted manually and used in the runtime layer. To handle the EMF resource management and also the Hibernate mappings, a special runtime layer called EMF-Hibernate Runtime layer was developed. Teneo takes care of instantiating the EMF Objects and getters/setters for EFeatures of EMF from database.

This project is definitely a great relief to the EMF and Eclipse developers. Now everyone can persist their models in the Databases with a cleaner Hibernate implementation.

References

Posted in Eclipse, EMF, Java, JMatter, Naked Objects, Plug-ins, Plugin | Tagged: , , , , , , | 4 Comments »

What do you do with Eclipse ?

Posted by sureshkrishna on October 7, 2007

Eclipse the ubiquitous platform has survived another challenge by releasing the Europa and the incredible download numbers speak for it. Initially it was perceived as a Java IDE  then Tool development Environment, then RCP  Platform, then Tool Integration Platform and now its an eco-system of platform, application frameworks, tools, runtimes and especially Eclipse is a universal tool platform – an open, extensible IDE for anything, but nothing in particular. The intent of the article is to highlight the different areas of the industry and how eclipse is used by different category of users.

The Eclipse open source community has over 60 open source projects. These projects can be conceptually organized into seven different “pillars” or categories:

  1. Enterprise Development
  2. Embedded and Device Development
  3. Rich Client Platform
  4. Rich Internet Applications
  5. Application Frameworks
  6. Application Lifecycle Management (ALM)
  7. Service Oriented Architecture (SOA)

The list gives a fair understanding of the different areas where eclipse is getting popular and also the business verticals, which can be transformed. It is very interesting to see what eclipse means to different people. Following scenarios give a better understanding of what can be done with eclipse (and the rest are for your imagination…)

Eclipse – Java IDE

As comprehended in early 2000 (even now after the europa release), its a Java IDE with which java developers can create, modify, debug, build the java projects. Eclipse provides different features like code refactoring, syntax highlighting, syntax/code checks, code completion, quick fix, compile/build, team integration with CVS, debug, jarring, etc… In this use-case scenario eclipse is being primarily used as Java IDE. Eclipse + JDT  = Java IDE. Eclipse Platform contains basic UI elements (swt, jface), runtime, help system, debug support, search support and some other IDE elements. Java IDE can be downloaded from Eclipse Site.

Java IDE

Eclipse – Plugin/Tool Development IDE

Along the similar lines of the Java IDE, the C/C++ development tools, PHP development tools, Cobol development tools, etc… have brought fabulous features in the Eclipse eco-system. These development tools not only improved the productivity of the developers but also Myth-Busters for many managers, developers. This gave the real meaning for eclipse, an open, extensible IDE for anything, but nothing in particular. Vendors were successfully able to adopt the Eclipse Platform and build several tools and Language Editors around it. The ground rule of “Everything is a contribution” perfectly fits in this scenario.
PDE (Plugin Development Environment) and JDT (Java Development Tools) are the ones that support and enable this use-case. A plugin can be developed, debugged, deployed with the help of these two tools. PHP Editor Plugin is developed with the help of the PDE and JDT. When a developer is using Eclipse to develop the PHP, it looks as though eclipse is a PHP IDE. In this scenario, the developer might not necessarily know that there is PDE and JDT in the eclipse that has been used. Thus depending on the user and what he is trying to achieve, the perception changes.

Eclipse + Ruby on Rails = RadRails
Eclipse + Ruby on Rails = 3rdRails
Eclipse + JDT = Java IDE
Eclipse + PHP = PHP IDE
Eclipse + CDT = C/C++ IDE
<!–[if !supportLineBreakNewLine]–>
<!–[endif]–>

IDE Framework


Eclipse – RCP

Application development requires a platform to relay upon, where an organization’s software product lines can be built. A Rich Client Platform (RCP) of eclipse uses the windowing and UI features of the underlying OS platform. It enables the application to use the native look-and-feel, native widgets, and all available UI features. In the end users and IT departments wants to have a uniform architecture, look-and-feel over all the applications. Eclipse RCP is considered as the minimal set of plugins that are required to build rich applications. In short if the SDK capabilities and Platform capabilities are removed, the resulting set of plugins would be RCP.
An interesting set of applications can be built with the help of Eclipse RCP.

Few examples from Open Source RCP applications included, but not limited to…

<!–[if !supportLists]–>·        <!–[endif]–>JPMorgan’s Banking application

<!–[if !supportLists]–>·        <!–[endif]–>Maestro – NASA Space Mission Management

<!–[if !supportLists]–>·        <!–[endif]–>GumTree – Australian Nuclear Science and Technology Organization – GumTree is an open source multi-platform scientific workbench for performing scientific experiment under a server-client environment. It provides easy-to-use graphical user interface for instrument data acquisition, online or offline data visualization and analysis.

<!–[if !supportLists]–>·        <!–[endif]–>RSSOwlApplications that collect data from RSS-compliant sites are called RSS readers or “aggregators.” RSSOwl is such an application.

<!–[if !supportLists]–>·        <!–[endif]–>Talend Open Studio 1.0Talend Open Studio is the first ETL open source software provider for data integration tools (ETL: Extract, Transform, Load)

Following are examples for Commercial plugins

<!–[if !supportLists]–>·        <!–[endif]–>Actuate BIRT Report DesignerThe Actuate BIRT Report Designer is a powerful tool for designing and deploying reports against data sources ranging from typical business SQL databases, to XML data sources, to in-memory Java objects.

<!–[if !supportLists]–>·        <!–[endif]–>BSI CRM on EclipseThis customer relationship management (CRM) solution is a fully configured RCP application to support the whole customer contact process from first contact to the successful project implementation and also retention management.

<!–[if !supportLists]–>·        <!–[endif]–>IBM Workplace Client Technology – IBM Workplace Client Technology is a strategic new IBM framework to enable the creation of server-managed rich client applications.

<!–[if !supportLists]–>·        <!–[endif]–>MyEclipse – SNAPs – Lightweight, Individual, Task-Based Developement Tools FREE as Part of the MyEclipse Distribution. MyEclipse SNAPs (Simple Non-integrated Applications) are special-purpose, Windows-integrated applications that are targeted for quick, non-IDE based development tasks.

If required, one can use plugins other than core RCP plugins e.g. one might want to use the help plugins, search plugins etc.

RCP

Eclipse – Tools Framework

Plugins makes eclipse what ever one wants it to be. For the tool integrators, this is a universal platform on which everyone can contribute and extend on. Tool development on Eclipse leverages the existing platform infrastructure to contribute and/or extend the existing functionality.

Many of such tools that are popular are like

<!–[if !supportLists]–>·        <!–[endif]–>Web Tools Project (WTP)

<!–[if !supportLists]–>·        <!–[endif]–>Eclipse Modeling Framework (EMF)

<!–[if !supportLists]–>·        <!–[endif]–>Graphical Editing Framework (GEF)

<!–[if !supportLists]–>·        <!–[endif]–>Business Intelligence and Reporting Tools (BIRT)

<!–[if !supportLists]–>·        <!–[endif]–>Test and Performance Tooling Project (TPTP)

<!–[if !supportLists]–>·        <!–[endif]–>Aptana Web2.0 IDE

<!–[if !supportLists]–>·        <!–[endif]–>MyEclipse

Tool Framework

Eclipse – Application Framework

For enterprises it makes sense to have a single application framework so that all the tools and frameworks can be built upon. Individuals and enterprises can leverage frameworks and tools provided by the eclipse eco-system and also benefit from the different release time lines of eclipse. One of the examples is to be able to create the entire development life cycle of a complex engineering activity flow of an organization in to the eclipse. Various development stages like, system requirements, software requirements, component design, function design, coding, unit testing, integration testing, system testing, delivery and finally the Issue Tracking can be integrated into Eclipse. On the technical level this transforms to writing new tools/plugins if necessary, using plugins from 3rd party vendors, using the tools and frameworks from eclipse community and finally completing the maze by integration.

Genuitec is one of the companies that extensively use the Eclipse platform and other frameworks on the eclipse to have a set of seamless integration of tools.

Innopract based its products like Yoxos and RAP on the eclipse platform.

Application Framework

Summary
Eclipse is an IDE and application framework for anything and nothing in particular. It totally depends on the user/developer’s perception and what is targeted to achieve with the help of eclipse. With the contribution rules of eclipse and platform architecture, its easy to contribute ones own functionality and/or extend the eclipse.

References :
1) Eclipse Platform Overview http://www.eclipse.org/platform/overview.php
2) Eclipse House Rules http://udig.refractions.net/help/index.jsp?topic=/net.refractions.udig.doc/html/Eclipse%20House%20Rules.html
3) Eclipse RCP Applications http://www.eclipse.org/community/example_rcp_applications_v2.pdf

Posted in Eclipse, EMF, Java, JFace, Plug-ins, Plugin | Tagged: , , , | 2 Comments »

Is “Naked Objects” trying to address similar problems as “EMF” ?

Posted by sureshkrishna on October 2, 2007

Yesterday i was going through the article from the Naked Objects about their platform and architecture. Once i gone through some of their articles and website, i had an impression that its also solving subset/similar set of problems solved by EMF.

For the ones who is not familiar with the Naked Objects, its “an open source Java-based application development platform. It’s called Naked Objects because all you need to develop are your domain objects – the Naked Objects platform auto-creates an object-oriented user interface (giving you the choice of different styles) and the underlying database (using Hibernate)“.

Thus the developer has to develop only the domain model and the UI and Persistence mechanism is auto-generated by the platform. I tried to draw some categories on which i felt Naked Objects is in similar lined as EMF.

Domain Model : Naked Objects requires the entire domain model to be developed in plain java and the domain validations to be described in each of the domain class. That means that domain class will contains the data + behavior + validations. Last but not the lease, each class must implement a NakedObject interface.

All the eclipse projects that i have worked on till date, have EMF models designed as domain models. Mostly created right from the scratch (Omondo, Together, or plain ECore Editor) or from schema. In my view i have always used custom diagnostics/validations for each domain class. In principle i do have my validations on each class.

UI Generation : Naked Objects framework does generate the Web and RCP kind of UIs. I have seen the demos of both the UI and its definitely appealing.  At this point of time, i am not sure how they tackled the “Separation of Concerns”. I really like the differentiation between the View, Content and Label providers level. Not sure if we do have the access to change the editors and custom UI thats generated.

Of course regarding EMF, it does generate the Edit and Editor Plugins along with the Model. I love this separation of concerns about the Content and Labels for the Viewers.  Though the generated editor does contain different kinds of editors, i am at will to change them. I can change what ever i want from this Editor.

Rapid Application Development : Yes in my view both of them does support a very fast development of applications and validation of concepts (though i have not used Naked Objects, i am making this claim on what is mentioned their site and what i have seen in demos) .

In the end i guess in both the frameworks, developers will need to change the UI. As i believe we do need some custom User Interface all the time. Every customer is unique and every customer wants a different UI.

Persistence : Naked Objects claims that it can persist the data directly via hibernate. I feel this is a real good feature, as many a times i do need a persistence mechanism. I would say this is definitely an advancement.

EMF does provide the XML and XMI as the default persistence mechanisms. I did use the Oracle Toplink as a persistence layer for EMF. Of course we do also have the hibernate support, but i have not personally used it.

Interesting thing would be if Naked Objects working with Eclipse. That means i get a similar UI and Persistence mechanism in addition to what EMF provides.

Posted in Eclipse, EMF, Hibernate, Naked Objects, Plug-ins, Plugin, Top Link | 4 Comments »

At what level do you use eclipse ?

Posted by sureshkrishna on August 7, 2007

 Eclipse the ubiquitous platform has survived another challenge by releasing the Europa and i am already seeing the # of downloads. Initially it was Java IDE then RCP Platform then Tool Building Platform and now as i know its an eco-system of major frameworks, tools, runtimes and platform which can be extended for ANYTHING an NOTHING in particular. OK, i am not going to define what eclipse does and what not. The scope of my article is to highlight the problems i am solving with eclipse platform.
I have been using eclipse right from 2003 and built tools on Automotive Domain and Ajax&SOA Domain. I have been closely following the other implementations on different verticals. Several OEMs, ISVs, Startups, Universities and individuals have adopted the eclipse “principles” and they know what they are doing soon after they use it. All the content in this article is purely my personal views from my professional experience and do not correlate to any ones opinions dead or alive 😉
What can i do with Eclipse : I would want to start with highlighting the tasks which can be accomplished with eclipse. I am hoping that we will understand the differences between using the eclipse, developing the plugins, making an IDE out of eclipse and eclipse as an integration platform.

Eclipse an IDE
: This is what many of us know about the eclipse and what can it do. Its a Java IDE and java developers can create, modify, build the java projects in eclipse. It provides different features like code refactoring (one of the gr8 feature), syntax highlighting, syntax/code checks, code completion, code suggestions, compile, debug, jarring, etc… I have used for an year with out knowing what ELSE can eclipse do. In this use-case we are primarily involved in using the eclipse IDE features as is. I am sure that you are aware of different eclipse language ides like, JDT, CDT, Cobol, PHP editors amongst the most popular ones.
Eclipse Happy User.

Eclipse does Plugins : By this time you know that eclipse can be used to develop plugins and bootstrap in eclipse. Design Plugins in Eclipse -> Develop Plugins in Eclipse -> Test in Eclipse -> Run in Eclipse. A plugin is a logical group of some functionality that in turn can be run in eclipse. If there is no UI part that is associated, it can be used as a simple jar file. In any case its pretty common that we have some UI associated with the plugin. This can be run either on a normal eclipse platform or on a RCP environment.
A simplest plugin you can think of it is a Hello World application (damn…why always HelloWorld). You basically want to contribute an action item to the toolbar of eclipse and on click of that button you want to display a dialog with Hello World Message. Thus in this plugin, you just USEd the eclipse platform to add some functionality your current eclipse runtime.
Basic Plugin Developer.

Eclipse as a Platform :All of us know about the JDT, CDT, PHP language plugins. On this level of platform usage, we as developers are building the different kind of plugins and these they will be used by target audience, who in turn develop some applications with our language kit. Its like one of my colleague had developed Cobol Language toolkit for Fujitsu customer (of course they have released it to open source after some time). In my view i think of the some of the editors like JSF Editor, XML Editors, JSP Editor, JS Editor that fall under this category.
There are many companies that are using the Eclipse as their real time application configuration platform. Its like they have the metadata and the configuration of metadata is a big deal.
Advanced Plugin Developer.

Eclipse an Integration Framework :This is the highest level of integration and complex applications that i have seen with Eclipse. Here i am talking about different usecases. One of the nice example is to be able to create the entire development life cycle of your complex engineering activities in to the eclipse. Starting from System Requirements, Software Requirements, Component Design, Function Design, Coding, Unit Testing, Integration Testing, System Testing, Delivery and finally Issue Tracking into Eclipse. Dont feel apprehensive about the possibility, i am aware of some companies who have done this. This on the ground level means, to integrate different tools [editors, compilers, debuggers, configurators] into eclipse. The integration can be done done on sharing different data models/formats primarily on the EMF models.
Many companies have integrated some AJAX and SOA kind of applications. A typical of these applications would use Platform, WTP, ATF, DTP. The final application could be a RCP application or a plugin distributed via internet/intranet.
I also knew of many Data ETL companies that have started adopting the eclipse as their integration platform of their next generation tooling platform. Many have migrated from their conventional COM/DCOM and Perl based applications to java/eclipse.
Happy Application Integrator.

In the next article i want to highlight the different usecases that are prevailing in the automobile and web 2.0 industries.
In the end you need to know that Eclipse is an ECO System.
You have almost all plugins, tools and frameworks that you want to build/integrate your applications.

Till then Happy Application Integration with Eclipse.

Posted in AJAX, Automobile, Eclipse, EMF, GEF, GMF, Java, Plug-ins, Plugin, RCP, SOA, SWT, TPTP, Web Services | Leave a Comment »

Europa launched…

Posted by sureshkrishna on July 2, 2007

The long awaited europa launched few days ago and its really really cool. Releasing 21 eclipse projects at the same time is a tremendous work and they have did it again. I was very apprehensive about the initial stages of Callisto, whether it will be able to make it or not. Callisto it self was a great success and Europa has broken these records too.

Looks like europa has 17 million lines of code and the real nice thing i found is that now we have 2 different distributions for Java Developers and C/C++ Developers. That’s so cool, is nt it. Now the developers need to not remove/disable the parts that they dont want. And most importantly its slim.

Long live Eclipse. !!!

Posted in Eclipse, EMF, GEF, GMF, Plug-ins, Plugin, RCP, SWT | Leave a Comment »

Is Eclipse getting Eclipsed ?

Posted by sureshkrishna on April 30, 2007

I have been working on the Eclipse platform right from version 2.0. I have lead few projects on the Automotive and Internet Industries. Initially around 2001 and 2002, there were lot of announcements from the member companies and new joiners in the eclipse eco system.

In the recent years there were many new projects that have evolved into a full blown features(J2EE, WTP, ATP, STP, TPTP, etc…). All of a sudden i have a feeling that the eclipse eco system has stopped any major contributions. No major contributions were made from 2006 mid till now. I understand that the platform is been made stable and i have no complaints about it. Rest of the projects seem to be moving in the Tortoise and Tortoise race.

Is the Eclipse community (eco system) planning not to sponsor many of the new projects? or the contributors are not serious about the deadlines and commitments or eclipse is more of a stabl;e product and given to the community to build more and mroe commercial products around it.

I am sure the big Blue has a major role in the direction of the eclipse, but where is Eclipse leading to … Is Hare turning into Tortoise ???

Posted in Eclipse, EMF, ESB and SOA, GEF, GMF, Plug-ins, Plugin, Uncategorized | 7 Comments »

Showing Hierarchical data in Eclipse

Posted by sureshkrishna on December 9, 2006

Withe the introduction of RCP, EMF-RCP, GEF and GMF, now there are plethora of choices to display hierarchical or grouped data. I have been struggling with all these varieties to choose one amongst them. Its quite clear why would you choose a viewer (Tree, Table, etc…), so i am not going to write much about it. The real challenge is to choose between the available widgets appropriate for your application.

The Hierarchical data that need to be presented to the end user can be in many ways. It can be a TreeView, TableView, TableTreeView, Nebula PShelf Widget, ExpandBar. Probably there can be more viewers/widgets that i am not aware of.

The real important difference is to make sure that we have the right Widget and right Viewer to represent the data. Pretty clearly, many of the widgets from SWT can not manage the complex data manipulation. That’s the reason we have a very user friendly layer called JFace on the top of it 🙂

Recently i also fiddled around with the PaletteView in GEF. This is also a very good starting point to represent collection of artifacts, from which we are going to select a specific action or tool. To provide a select-drag-create kind of scenario, i love to use PaletteView, TreeView, PShelf.

A more dynamic scenario is supported by the TreeView (as it has the providers behind) . If we are sure of the artifacts to be represented at the design and development time, its better to go with the PaletteView, PShelf kind.

Posted in Eclipse, EMF, ExpandBar, GEF, GMF, JFace, PShelf, RCP, SWT, TableTreeView, TableView, TreeView | Leave a Comment »