SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
Use Eclipse Technologies to build a modern
       embedded development IDE.


          Gaétan Morice – Benjamin Cabé
                October 28th, 2009
Embedded Modeling IDE
      Requirements
Requirements


• What is M2M ?


                                                                        API/Web
                                                                        Services

                    Asset        Communication           Connectivity               Customer
                                    Device                Network                  Application




• Definition : “M2M refers to data communication between machines.”




        © Sierra Wireless inc. – Made available under EPL v1.0
Requirements




                                                                                         API/Web
                                                                                         Services

                 Asset        Communication           Connectivity                                      Customer
                                 Device                Network       Operated & Hosted                 Application
                                                                       M2M Services
                                                                         Platform

                            Hosted and operated M2M services platform. Highly scalable, available and secure.
                           Provides APIs to develop web-based custom designed applications.


                           Open embedded agent integrated in virtually any cell devices (Airlink box, modules
                          embedded in OEM equipment, custom box etc. both from Sierra or other 3rd party).


                            Patented world class Eclipse based IDE to develop embedded applications
                           and to generate widgets for end-users.




     © Sierra Wireless inc. – Made available under EPL v1.0
Requirements


 • Embedded development (Machine-to-Machine)

 • Modeling environment

 • Component-oriented approach


   Model                    Code                       Binary       Target   Execution   Debug




           © Sierra Wireless inc. – Made available under EPL v1.0
Requirements


• Users profiles
  ►Newbies
  ►Solution providers

• Multiple targets
  ►Sierra Wireless devices
  ►Embedded Linux
  ►…




       © Sierra Wireless inc. – Made available under EPL v1.0
Embedded Modeling IDE
    Technical Solution
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




       Communication                                          Target         Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Features




                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Modeling
                                                                        Model

• EMF - Eclipse Modeling Framework
  ►The model is the pillar of the tool
  ►Used to model what an embedded project is
  ►Benefits from EMF
     –Notifications
     –Serialization
     –Reflective API
     –… all the incredible EMF tools (GMF, Validation, Xpand, Ecore Tools, …)




       © Sierra Wireless inc. – Made available under EPL v1.0
Modeling
                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Features


                                                                      Navigator




                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                        Navigator




• Objectives                                                    Model


  ►1:1 Mapping between Project and Model
  ►Display informations in the model as project’s artefacts




       © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                                                     Navigator




• Workspace integration                                                                 Model


  ►AdapterFactory transforms
      –IProject into Model Project
      –Model Project into Iproject


    public class ProjectAdapterFactory implements IAdapterFactory {
         @Override
         public Object getAdapter(Object adaptableObject, Class adapterType) {
              Object result = null;
              // Bi-directional adapter IProject <----> M2MProject
              if (adaptableObject instanceof IProject && adapterType.equals(Project.class)) {
                   result = adaptToModel((IProject) adaptableObject);
              }
              else if (adaptableObject instanceof Project && adapterType.equals(IProject.class)) {
                   result = adaptIProject((Project) adaptableObject, adapterType);
              }
              return result;
         }
    }




         © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                                                        Navigator




• Workspace integration                                                                   Model


     ►EMF Transaction
         –Global model repository
         –Transactional Editing Domain



 public class ProjectActivator extends Plugin {

      public static final String TRANSACTIONAL_EDITING_DOMAIN_ID = "com.anwrt.ec598.project.editingDomain";

      ...
      public TransactionalEditingDomain getEditingDomain(){
           TransactionalEditingDomain shared = TransactionalEditingDomain.Registry.INSTANCE
                                            .getEditingDomain(TRANSACTIONAL_EDITING_DOMAIN_ID);
           return shared;
      }
      ...
 }




            © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                                  Navigator




 • Project Explorer                                                       Model


   ►Displays model objects as the Project structure
   ►Based on Common Navigator Framework
       –Extensible tree view
       –Rather complex API
       –But really powerful


              Extension Points: org.eclipse.ui.navigator.*
              Excellent tutorial: “Building a Common Navigator based viewer”


   ►We use an internal model to define the structure (nodes only
   used to group or display informations)

       © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                                                      Navigator




• Project Explorer                                                                            Model


  ►Result



                       EMF Objects
                                                                Model contribution


                 Navigation nodes


                                                                CDT contribution




                                                                Default display (resources)




       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                                                                        Navigator




                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Model dition
                                                                                                   Editors




• Forms editors                                                                                    Model

  ►Forms + EMF + databinding
     –Create UI
         private void createContent(FormToolkit toolkit, Composite parent) {
              Composite composite = toolkit.createComposite(parent, SWT.NONE);
              GridDataFactory.fillDefaults().grab(true, false).applyTo(composite);
              GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite);

                toolkit.createLabel(composite, "Name:", SWT.NONE);
                _textName = toolkit.createText(composite, "", SWT.BORDER);
                GridDataFactory.fillDefaults().grab(true, false).applyTo(_textName);
         }



     –Bind UI to model
         private void bind() {
              DataBindingContext bindingContext = new EMFDataBindingContext();
              // -- Bind the Name
              bindingContext.bindValue(SWTObservables.observeText(_textName, SWT.FocusOut),
                   EMFEditObservables.observeDetailValue(Realm.getDefault(), getEditingDomain(),
                   _myEObject, M2MPackage.eINSTANCE.getINamedElement_Name()));
         }


       © Sierra Wireless inc. – Made available under EPL v1.0
Model edition
                                                                               Editors




• Forms editors                                                                Model

  ►Result




                 Available in PDE Incubator:
                 EMF-Forms Editor to be used for next-generation PDE editors


       © Sierra Wireless inc. – Made available under EPL v1.0
Model edition
                                                                                                       Editors




• Graphical Editor: GMF                                                                                Model

  ►Uses GMF generator to bootstrap

                                            GMF generation
                    Model
                                                                Generated   Customization
                                                                  editor
                                                                                            Modified
                                                                                             editor


  ►Heavy use of GMF Runtime




       © Sierra Wireless inc. – Made available under EPL v1.0
Model edition
                                                                 Editors




• Graphical Editor: GMF                                          Model

  ►Other features
     –Rotation
     –Automatic port creation
     –HTML Tooltips
     –Extensible presentation
       •Custom figures can be defined using an extension point




       © Sierra Wireless inc. – Made available under EPL v1.0
Model edition
                                                                Editors




• Graphical Editor: GMF                                         Model

  ►Result




       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Model validation
                                                                                 Validation




• EMF Validation                                                                              Model


  ►Extensible (needed for specific-target constraints)
  ►Constraints are registered using an extension point


                            Extension points: org.eclipse.emf.validation.*

  ►We use only the batch mode

           public IStatus validate (EObject model, IProgressMonitor monitor) {
                IBatchValidator batchValidator = ModelValidationService.getInstance()
                                            .newValidator(EvaluationMode.BATCH);
                batchValidator.setIncludeLiveConstraints(true);
                batchValidator.setReportSuccesses(false);
                return batchValidator.validate(model, monitor);
           }




       © Sierra Wireless inc. – Made available under EPL v1.0
Model validation
                                                                                                  Validation




  ►Integrated in a builder                                                                                     Model


     –Transparent and automatic (on save)
     –Uses Problem Markers
     –Coupled with quick fixes for a better user experience




                                                    Validation decorators are based on
                                                    markers generated by the Validation builder




       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model




                                                              Code




     © Sierra Wireless inc. – Made available under EPL v1.0
Code generation
                                                                                       Model



• Xpand                                                                                Code

  ►Performance issue
     –Workflow is too slow then use only Java API
  ►Example of template
                 «IMPORT model»
                 «DEFINE file FOR SourceComponentClass»
                 «FILE project.name.toLowerCase() + "/" + name + ".java"-»
                 package «project.name.toLowerCase()»;

                 public class «name» extends ComponentClass {

                 «IF methods.select(m | m.kind.toString() == "EVENT").size > 0»
                      public void receiveEvent(int inputEventMethod, Object value) {
                 «FOREACH methods.select(m | m.kind.toString() == "EVENT") AS m-»
                           // TODO handle Event: " + «m.name.toUpperCase()»:
                 «ENDFOREACH-»
                      }
                 «ENDIF»
                 }
                 «ENDFILE»
                 «ENDDEFINE»




      © Sierra Wireless inc. – Made available under EPL v1.0
Code generation
                                                                                                  Model



• Xpand                                                                                           Code

  ►Call the Xpand generator programmatically
    public void generate(final EObject object, IProgressMonitor monitor) throws CoreException {
         Generator generator = new Generator();

         // define the metamodel used in the template
         MetaModel m2mMetamodel = new EmfMetaModel(M2MPackage.eINSTANCE);
         generator.addMetaModel(m2mMetamodel);
         // define the template
         generator.setExpand("templates::SourceComponentClass::file FOR component");
         // define the output folder
         Outlet outlet = new Outlet("C:/myOutput/src");
         generator.addOutlet(outlet);
         // configure protected regions
         generator.setPrSrcPaths("C:/myOutput/src");
         generator.setPrDefaultExcludes(true);
         // define the EObject input
         WorkflowContextDefaultImpl ctx = new WorkflowContextDefaultImpl();
         ctx.set("component", object);
         // run the generator
         generator.invoke(ctx, new ProgressMonitorAdapter(monitor), new IssuesImpl());
    }




        © Sierra Wireless inc. – Made available under EPL v1.0
Code generation
                                                                Model



• Integrated in a builder                                       Code

  ►Transparent and automatic (on save)
  ►Synchronization between model and code
  ►Incremental generation




       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

                                                              Code
                                                                             Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Code editors and navigator
                                                                         Editor

                                                                 Code

• CDT
                                                                        Navigator




  ►Code navigation
  ►Syntax highlight
  ►Content assist
  ►Refactoring
  ►…

• LuaEclipse
  ►Currently not based on DLTK but under development



        © Sierra Wireless inc. – Made available under EPL v1.0
Code editors and navigator
                                                                         Editor

                                                                 Code

• CDT
                                                                        Navigator




        © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

                                                              Code
                                                                             Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Round-tripping
                                                                Model



• Mandatory for a good user experience                          Code


• Be able to edit code or model indifferently
  ►Continuous synchronization

• First study: EMF Compare
  ►Good candidate but too rich for our needs
  ►Solution: Direct modification of existing models




       © Sierra Wireless inc. – Made available under EPL v1.0
Round-tripping
                                                                                                                    Model



• Solution                                                                                                          Code

  ►Integrated in a builder
  ►Synchronize Model and AST                                                       Code

  ►From code to model:                                                                   Based on existing parser


                                                                                    AST
                                                                                         Java transformation


                                                  Model                           Model
                                             (previous version)               (extract from code)


                                                                          Merge


                                                                    Model
                                                                  (new version)


       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Compilation
                                                                   Compilation    Code



• CDT - Managed Build System (MBS)
  ►Declarative creation of custom tool chains
     –Through MBS Extension point
     –Direct integration in CDT builder and preference
     –A bit complex
             Extension Point: org.eclipse.ui.managebuilder.core.buildDefinition
             Excellent tutorial: CDT Plug-in Developer Guide

  ►Mechanism of scanner discovery profiles to find tools binaries
             Extension Point:
             org.eclipse.cdt.make.core.ScannerConfigurationDisccoveryProfile




       © Sierra Wireless inc. – Made available under EPL v1.0
Compilation
                                                                                               Compilation              Code



• CDT – MBS
   ►Result
                                                                       Binaries packages for download on device



Options




                                                                       Compiler and linker for the device (based on ARM GCC)
          Tools




                                                                        Binary post-processors to match device caracteristics




              © Sierra Wireless inc. – Made available under EPL v1.0
Compilation
                                                                Compilation   Code



• CDT - Dependencies management
  ►Dependencies management
     –Difficult with CDT
     –Configuration, build artefacts, libraries include, header include to manage
     –No generic rule => have to be hand craft
     –Use of CDT API to access projects description
     –Managed by refactoring process




       © Sierra Wireless inc. – Made available under EPL v1.0
Compilation
                                                                               Compilation           Code



• CDT - Dependencies management
 public class ModifyCProjectDependenciesChange extends Change {

     private final IProject project;

     ...
     public Change perform(IProgressMonitor pm) throws CoreException {
          ICProjectDescription projectDescription = CDTPropertyManager.getProjectDescription(project);

           ICConfigurationDescription[] configurationDescription = projectDescription.getConfigurations();

           ...
     }
     ...
 }




           © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




                                                              Target



     © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




       Communication                                          Target



     © Sierra Wireless inc. – Made available under EPL v1.0
Target communication
                                                                Communication   Target


• Objectives:
  ►make device's services available
     –Download
     –Terminal
     –…
  ►De-coupling of services and communication channel
  ►Extensible




       © Sierra Wireless inc. – Made available under EPL v1.0
Target communication
                                                                               Communication              Target


• Target Communication Framework - TCF
  ►Embedded agent
  ►Asynchronous                                                       Launch                   Terminal
                                                                      Config                     View
  ►Protocol based on
  ►Command, Result                                                   Download                  Terminal
  ►Event                                                              Service                  Service



                            Connection
                                                               TCF              Channel
                             Manager


                                                                               Embedded
                                                                                 Agent
      © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




       Communication                                          Target         Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Target navigator
                                                               Target   Navigator




• Remote System Explorer - RSE
  ►GUI framework
  ►Tree Explorer
  ►Match well with TCF




      © Sierra Wireless inc. – Made available under EPL v1.0
Target navigator
                                                               Target   Navigator




• Remote System Explorer




      © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                              Navigator
                                                                   Forms
                                             EMF Validation        GMF
                                                                                Project Explorer + CNF

                                                              Model

                                                 Xpand                  AST
                                                                                           Editor
                                       CDT
            Compilation                                       Code              CDT + DLTK


                                                                                        Navigator



                                       TCF                                    RSE
       Communication                                          Target                     Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Embedded Modeling IDE
     Demonstration
Embedded Modeling IDE
       Conclusion
The benefits of a large ecosystem


• Allows to create really complex environment quickly

• Covers differents kinds of domains

• Offers reactive support with the community

• Allows to focus on real added value




       © Sierra Wireless inc. – Made available under EPL v1.0
Questions?
    Gaétan Morice
gmorice@sierrawireless.com

   Benjamin Cabé
 bcabe@sierrawireless.com

Weitere ähnliche Inhalte

Was ist angesagt?

MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183Robert Nicholson
 
Intercloud Registry
Intercloud RegistryIntercloud Registry
Intercloud Registryguest236753
 
JLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldJLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldGrace Jansen
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia
 
The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019Kim Clark
 
Mastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud EnvironmentsMastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud EnvironmentsSam Garforth
 
Agile integration architecture in relation to APIs and messaging
Agile integration architecture in relation to APIs and messagingAgile integration architecture in relation to APIs and messaging
Agile integration architecture in relation to APIs and messagingKim Clark
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationKim Clark
 
Automating agile integration
Automating agile integrationAutomating agile integration
Automating agile integrationKim Clark
 
9 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 29 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 2Digicomp Academy AG
 
20120620 moving to windows azure
20120620 moving to windows azure20120620 moving to windows azure
20120620 moving to windows azureLuis Martins
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the airNokia
 

Was ist angesagt? (15)

MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
 
Ad cloud
Ad cloudAd cloud
Ad cloud
 
Intercloud Registry
Intercloud RegistryIntercloud Registry
Intercloud Registry
 
JLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldJLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven World
 
Android Deep Dive
Android Deep DiveAndroid Deep Dive
Android Deep Dive
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
 
The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019
 
Mastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud EnvironmentsMastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud Environments
 
Agile integration architecture in relation to APIs and messaging
Agile integration architecture in relation to APIs and messagingAgile integration architecture in relation to APIs and messaging
Agile integration architecture in relation to APIs and messaging
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
 
Mono for android
Mono for androidMono for android
Mono for android
 
Automating agile integration
Automating agile integrationAutomating agile integration
Automating agile integration
 
9 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 29 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 2
 
20120620 moving to windows azure
20120620 moving to windows azure20120620 moving to windows azure
20120620 moving to windows azure
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the air
 

Andere mochten auch

Fundamentals of Modern Embedded Systems
Fundamentals of Modern Embedded SystemsFundamentals of Modern Embedded Systems
Fundamentals of Modern Embedded Systemseselab
 
My students and shared resources: Design of a supervision tool
My students and shared resources: Design of a supervision toolMy students and shared resources: Design of a supervision tool
My students and shared resources: Design of a supervision toolLuis Borges Gouveia
 
Beautiful UIs With JFace Databinding
Beautiful UIs With JFace DatabindingBeautiful UIs With JFace Databinding
Beautiful UIs With JFace DatabindingLars Vogel
 
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...tamarmot
 
Survey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power IndustrySurvey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power IndustryShrey Bhatnagar
 
Security And Ethical Challenges Of Infornation Technology
Security And Ethical Challenges Of Infornation TechnologySecurity And Ethical Challenges Of Infornation Technology
Security And Ethical Challenges Of Infornation Technologyparamalways
 
Ethical hacking & Information Security
Ethical hacking & Information SecurityEthical hacking & Information Security
Ethical hacking & Information SecurityAjay Dhamija
 
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless Technologies
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless TechnologiesPresentation on 1G/2G/3G/4G/5G/Cellular & Wireless Technologies
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless TechnologiesKaushal Kaith
 

Andere mochten auch (8)

Fundamentals of Modern Embedded Systems
Fundamentals of Modern Embedded SystemsFundamentals of Modern Embedded Systems
Fundamentals of Modern Embedded Systems
 
My students and shared resources: Design of a supervision tool
My students and shared resources: Design of a supervision toolMy students and shared resources: Design of a supervision tool
My students and shared resources: Design of a supervision tool
 
Beautiful UIs With JFace Databinding
Beautiful UIs With JFace DatabindingBeautiful UIs With JFace Databinding
Beautiful UIs With JFace Databinding
 
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
 
Survey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power IndustrySurvey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power Industry
 
Security And Ethical Challenges Of Infornation Technology
Security And Ethical Challenges Of Infornation TechnologySecurity And Ethical Challenges Of Infornation Technology
Security And Ethical Challenges Of Infornation Technology
 
Ethical hacking & Information Security
Ethical hacking & Information SecurityEthical hacking & Information Security
Ethical hacking & Information Security
 
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless Technologies
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless TechnologiesPresentation on 1G/2G/3G/4G/5G/Cellular & Wireless Technologies
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless Technologies
 

Ähnlich wie Use Eclipse Technologies to build a modern embedded development IDE

Developing and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateDeveloping and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateShikha Srivastava
 
Machine Learning Inference at the Edge
Machine Learning Inference at the EdgeMachine Learning Inference at the Edge
Machine Learning Inference at the EdgeJulien SIMON
 
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud PrivateIBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud PrivateIBM France Lab
 
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...CodeOps Technologies LLP
 
Machine Learning Inference at the Edge
Machine Learning Inference at the EdgeMachine Learning Inference at the Edge
Machine Learning Inference at the EdgeAmazon Web Services
 
Zero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessZero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessDavalen LLC
 
Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virendervithakur
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010fmadiot
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateMichael Elder
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orangesliard
 
Imaginea_CloudComputing_Services
Imaginea_CloudComputing_ServicesImaginea_CloudComputing_Services
Imaginea_CloudComputing_ServicesImaginea
 
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...Docker, Inc.
 
g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008guest462d7
 
IBM SmartCloudEnterprise use of IBM Rational Solutions
IBM SmartCloudEnterprise use of IBM Rational SolutionsIBM SmartCloudEnterprise use of IBM Rational Solutions
IBM SmartCloudEnterprise use of IBM Rational SolutionsAlex Amies
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Prolifics
 
Session One Intro
Session One IntroSession One Intro
Session One Introrsnarayanan
 
Architecting & Developing On The Cloud Operating System Windows Azure V3
Architecting & Developing On The Cloud Operating System  Windows Azure  V3Architecting & Developing On The Cloud Operating System  Windows Azure  V3
Architecting & Developing On The Cloud Operating System Windows Azure V3Venkatarangan Thirumalai
 

Ähnlich wie Use Eclipse Technologies to build a modern embedded development IDE (20)

Developing and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateDeveloping and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud Private
 
Machine Learning Inference at the Edge
Machine Learning Inference at the EdgeMachine Learning Inference at the Edge
Machine Learning Inference at the Edge
 
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud PrivateIBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
 
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...
 
Machine Learning Inference at the Edge
Machine Learning Inference at the EdgeMachine Learning Inference at the Edge
Machine Learning Inference at the Edge
 
Zero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessZero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or less
 
Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virender
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
 
PIM4Cloud
PIM4CloudPIM4Cloud
PIM4Cloud
 
Portlet factory 101
Portlet factory 101Portlet factory 101
Portlet factory 101
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orange
 
Imaginea_CloudComputing_Services
Imaginea_CloudComputing_ServicesImaginea_CloudComputing_Services
Imaginea_CloudComputing_Services
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
 
g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008
 
IBM SmartCloudEnterprise use of IBM Rational Solutions
IBM SmartCloudEnterprise use of IBM Rational SolutionsIBM SmartCloudEnterprise use of IBM Rational Solutions
IBM SmartCloudEnterprise use of IBM Rational Solutions
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
Session One Intro
Session One IntroSession One Intro
Session One Intro
 
Architecting & Developing On The Cloud Operating System Windows Azure V3
Architecting & Developing On The Cloud Operating System  Windows Azure  V3Architecting & Developing On The Cloud Operating System  Windows Azure  V3
Architecting & Developing On The Cloud Operating System Windows Azure V3
 

Mehr von Benjamin Cabé

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018Benjamin Cabé
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Benjamin Cabé
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?Benjamin Cabé
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Benjamin Cabé
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Benjamin Cabé
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016Benjamin Cabé
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handBenjamin Cabé
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Benjamin Cabé
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Benjamin Cabé
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTBenjamin Cabé
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Benjamin Cabé
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackBenjamin Cabé
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialBenjamin Cabé
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTBenjamin Cabé
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbookBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Benjamin Cabé
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014Benjamin Cabé
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleBenjamin Cabé
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Benjamin Cabé
 

Mehr von Benjamin Cabé (20)

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in hand
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stack
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoT
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbook
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetup
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day Grenoble
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
 

Kürzlich hochgeladen

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Kürzlich hochgeladen (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

Use Eclipse Technologies to build a modern embedded development IDE

  • 1. Use Eclipse Technologies to build a modern embedded development IDE. Gaétan Morice – Benjamin Cabé October 28th, 2009
  • 2. Embedded Modeling IDE Requirements
  • 3. Requirements • What is M2M ? API/Web Services Asset Communication Connectivity Customer Device Network Application • Definition : “M2M refers to data communication between machines.” © Sierra Wireless inc. – Made available under EPL v1.0
  • 4. Requirements API/Web Services Asset Communication Connectivity Customer Device Network Operated & Hosted Application M2M Services Platform  Hosted and operated M2M services platform. Highly scalable, available and secure. Provides APIs to develop web-based custom designed applications.  Open embedded agent integrated in virtually any cell devices (Airlink box, modules embedded in OEM equipment, custom box etc. both from Sierra or other 3rd party).  Patented world class Eclipse based IDE to develop embedded applications and to generate widgets for end-users. © Sierra Wireless inc. – Made available under EPL v1.0
  • 5. Requirements • Embedded development (Machine-to-Machine) • Modeling environment • Component-oriented approach Model Code Binary Target Execution Debug © Sierra Wireless inc. – Made available under EPL v1.0
  • 6. Requirements • Users profiles ►Newbies ►Solution providers • Multiple targets ►Sierra Wireless devices ►Embedded Linux ►… © Sierra Wireless inc. – Made available under EPL v1.0
  • 7. Embedded Modeling IDE Technical Solution
  • 8. Features Editors Validation Navigator Model Editor Compilation Code Navigator Communication Target Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 9. Features Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 10. Modeling Model • EMF - Eclipse Modeling Framework ►The model is the pillar of the tool ►Used to model what an embedded project is ►Benefits from EMF –Notifications –Serialization –Reflective API –… all the incredible EMF tools (GMF, Validation, Xpand, Ecore Tools, …) © Sierra Wireless inc. – Made available under EPL v1.0
  • 11. Modeling Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 12. Features Navigator Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 13. Navigator Navigator • Objectives Model ►1:1 Mapping between Project and Model ►Display informations in the model as project’s artefacts © Sierra Wireless inc. – Made available under EPL v1.0
  • 14. Navigator Navigator • Workspace integration Model ►AdapterFactory transforms –IProject into Model Project –Model Project into Iproject public class ProjectAdapterFactory implements IAdapterFactory { @Override public Object getAdapter(Object adaptableObject, Class adapterType) { Object result = null; // Bi-directional adapter IProject <----> M2MProject if (adaptableObject instanceof IProject && adapterType.equals(Project.class)) { result = adaptToModel((IProject) adaptableObject); } else if (adaptableObject instanceof Project && adapterType.equals(IProject.class)) { result = adaptIProject((Project) adaptableObject, adapterType); } return result; } } © Sierra Wireless inc. – Made available under EPL v1.0
  • 15. Navigator Navigator • Workspace integration Model ►EMF Transaction –Global model repository –Transactional Editing Domain public class ProjectActivator extends Plugin { public static final String TRANSACTIONAL_EDITING_DOMAIN_ID = "com.anwrt.ec598.project.editingDomain"; ... public TransactionalEditingDomain getEditingDomain(){ TransactionalEditingDomain shared = TransactionalEditingDomain.Registry.INSTANCE .getEditingDomain(TRANSACTIONAL_EDITING_DOMAIN_ID); return shared; } ... } © Sierra Wireless inc. – Made available under EPL v1.0
  • 16. Navigator Navigator • Project Explorer Model ►Displays model objects as the Project structure ►Based on Common Navigator Framework –Extensible tree view –Rather complex API –But really powerful Extension Points: org.eclipse.ui.navigator.* Excellent tutorial: “Building a Common Navigator based viewer” ►We use an internal model to define the structure (nodes only used to group or display informations) © Sierra Wireless inc. – Made available under EPL v1.0
  • 17. Navigator Navigator • Project Explorer Model ►Result EMF Objects Model contribution Navigation nodes CDT contribution Default display (resources) © Sierra Wireless inc. – Made available under EPL v1.0
  • 18. Features Editors Navigator Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 19. Model dition Editors • Forms editors Model ►Forms + EMF + databinding –Create UI private void createContent(FormToolkit toolkit, Composite parent) { Composite composite = toolkit.createComposite(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(true, false).applyTo(composite); GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite); toolkit.createLabel(composite, "Name:", SWT.NONE); _textName = toolkit.createText(composite, "", SWT.BORDER); GridDataFactory.fillDefaults().grab(true, false).applyTo(_textName); } –Bind UI to model private void bind() { DataBindingContext bindingContext = new EMFDataBindingContext(); // -- Bind the Name bindingContext.bindValue(SWTObservables.observeText(_textName, SWT.FocusOut), EMFEditObservables.observeDetailValue(Realm.getDefault(), getEditingDomain(), _myEObject, M2MPackage.eINSTANCE.getINamedElement_Name())); } © Sierra Wireless inc. – Made available under EPL v1.0
  • 20. Model edition Editors • Forms editors Model ►Result Available in PDE Incubator: EMF-Forms Editor to be used for next-generation PDE editors © Sierra Wireless inc. – Made available under EPL v1.0
  • 21. Model edition Editors • Graphical Editor: GMF Model ►Uses GMF generator to bootstrap GMF generation Model Generated Customization editor Modified editor ►Heavy use of GMF Runtime © Sierra Wireless inc. – Made available under EPL v1.0
  • 22. Model edition Editors • Graphical Editor: GMF Model ►Other features –Rotation –Automatic port creation –HTML Tooltips –Extensible presentation •Custom figures can be defined using an extension point © Sierra Wireless inc. – Made available under EPL v1.0
  • 23. Model edition Editors • Graphical Editor: GMF Model ►Result © Sierra Wireless inc. – Made available under EPL v1.0
  • 24. Features Editors Validation Navigator Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 25. Model validation Validation • EMF Validation Model ►Extensible (needed for specific-target constraints) ►Constraints are registered using an extension point Extension points: org.eclipse.emf.validation.* ►We use only the batch mode public IStatus validate (EObject model, IProgressMonitor monitor) { IBatchValidator batchValidator = ModelValidationService.getInstance() .newValidator(EvaluationMode.BATCH); batchValidator.setIncludeLiveConstraints(true); batchValidator.setReportSuccesses(false); return batchValidator.validate(model, monitor); } © Sierra Wireless inc. – Made available under EPL v1.0
  • 26. Model validation Validation ►Integrated in a builder Model –Transparent and automatic (on save) –Uses Problem Markers –Coupled with quick fixes for a better user experience Validation decorators are based on markers generated by the Validation builder © Sierra Wireless inc. – Made available under EPL v1.0
  • 27. Features Editors Validation Navigator Model Code © Sierra Wireless inc. – Made available under EPL v1.0
  • 28. Code generation Model • Xpand Code ►Performance issue –Workflow is too slow then use only Java API ►Example of template «IMPORT model» «DEFINE file FOR SourceComponentClass» «FILE project.name.toLowerCase() + "/" + name + ".java"-» package «project.name.toLowerCase()»; public class «name» extends ComponentClass { «IF methods.select(m | m.kind.toString() == "EVENT").size > 0» public void receiveEvent(int inputEventMethod, Object value) { «FOREACH methods.select(m | m.kind.toString() == "EVENT") AS m-» // TODO handle Event: " + «m.name.toUpperCase()»: «ENDFOREACH-» } «ENDIF» } «ENDFILE» «ENDDEFINE» © Sierra Wireless inc. – Made available under EPL v1.0
  • 29. Code generation Model • Xpand Code ►Call the Xpand generator programmatically public void generate(final EObject object, IProgressMonitor monitor) throws CoreException { Generator generator = new Generator(); // define the metamodel used in the template MetaModel m2mMetamodel = new EmfMetaModel(M2MPackage.eINSTANCE); generator.addMetaModel(m2mMetamodel); // define the template generator.setExpand("templates::SourceComponentClass::file FOR component"); // define the output folder Outlet outlet = new Outlet("C:/myOutput/src"); generator.addOutlet(outlet); // configure protected regions generator.setPrSrcPaths("C:/myOutput/src"); generator.setPrDefaultExcludes(true); // define the EObject input WorkflowContextDefaultImpl ctx = new WorkflowContextDefaultImpl(); ctx.set("component", object); // run the generator generator.invoke(ctx, new ProgressMonitorAdapter(monitor), new IssuesImpl()); } © Sierra Wireless inc. – Made available under EPL v1.0
  • 30. Code generation Model • Integrated in a builder Code ►Transparent and automatic (on save) ►Synchronization between model and code ►Incremental generation © Sierra Wireless inc. – Made available under EPL v1.0
  • 31. Features Editors Validation Navigator Model Editor Code Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 32. Code editors and navigator Editor Code • CDT Navigator ►Code navigation ►Syntax highlight ►Content assist ►Refactoring ►… • LuaEclipse ►Currently not based on DLTK but under development © Sierra Wireless inc. – Made available under EPL v1.0
  • 33. Code editors and navigator Editor Code • CDT Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 34. Features Editors Validation Navigator Model Editor Code Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 35. Round-tripping Model • Mandatory for a good user experience Code • Be able to edit code or model indifferently ►Continuous synchronization • First study: EMF Compare ►Good candidate but too rich for our needs ►Solution: Direct modification of existing models © Sierra Wireless inc. – Made available under EPL v1.0
  • 36. Round-tripping Model • Solution Code ►Integrated in a builder ►Synchronize Model and AST Code ►From code to model: Based on existing parser AST Java transformation Model Model (previous version) (extract from code) Merge Model (new version) © Sierra Wireless inc. – Made available under EPL v1.0
  • 37. Features Editors Validation Navigator Model Editor Compilation Code Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 38. Compilation Compilation Code • CDT - Managed Build System (MBS) ►Declarative creation of custom tool chains –Through MBS Extension point –Direct integration in CDT builder and preference –A bit complex Extension Point: org.eclipse.ui.managebuilder.core.buildDefinition Excellent tutorial: CDT Plug-in Developer Guide ►Mechanism of scanner discovery profiles to find tools binaries Extension Point: org.eclipse.cdt.make.core.ScannerConfigurationDisccoveryProfile © Sierra Wireless inc. – Made available under EPL v1.0
  • 39. Compilation Compilation Code • CDT – MBS ►Result Binaries packages for download on device Options Compiler and linker for the device (based on ARM GCC) Tools Binary post-processors to match device caracteristics © Sierra Wireless inc. – Made available under EPL v1.0
  • 40. Compilation Compilation Code • CDT - Dependencies management ►Dependencies management –Difficult with CDT –Configuration, build artefacts, libraries include, header include to manage –No generic rule => have to be hand craft –Use of CDT API to access projects description –Managed by refactoring process © Sierra Wireless inc. – Made available under EPL v1.0
  • 41. Compilation Compilation Code • CDT - Dependencies management public class ModifyCProjectDependenciesChange extends Change { private final IProject project; ... public Change perform(IProgressMonitor pm) throws CoreException { ICProjectDescription projectDescription = CDTPropertyManager.getProjectDescription(project); ICConfigurationDescription[] configurationDescription = projectDescription.getConfigurations(); ... } ... } © Sierra Wireless inc. – Made available under EPL v1.0
  • 42. Features Editors Validation Navigator Model Editor Compilation Code Navigator Target © Sierra Wireless inc. – Made available under EPL v1.0
  • 43. Features Editors Validation Navigator Model Editor Compilation Code Navigator Communication Target © Sierra Wireless inc. – Made available under EPL v1.0
  • 44. Target communication Communication Target • Objectives: ►make device's services available –Download –Terminal –… ►De-coupling of services and communication channel ►Extensible © Sierra Wireless inc. – Made available under EPL v1.0
  • 45. Target communication Communication Target • Target Communication Framework - TCF ►Embedded agent ►Asynchronous Launch Terminal Config View ►Protocol based on ►Command, Result Download Terminal ►Event Service Service Connection TCF Channel Manager Embedded Agent © Sierra Wireless inc. – Made available under EPL v1.0
  • 46. Features Editors Validation Navigator Model Editor Compilation Code Navigator Communication Target Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 47. Target navigator Target Navigator • Remote System Explorer - RSE ►GUI framework ►Tree Explorer ►Match well with TCF © Sierra Wireless inc. – Made available under EPL v1.0
  • 48. Target navigator Target Navigator • Remote System Explorer © Sierra Wireless inc. – Made available under EPL v1.0
  • 49. Features Editors Validation Navigator Forms EMF Validation GMF Project Explorer + CNF Model Xpand AST Editor CDT Compilation Code CDT + DLTK Navigator TCF RSE Communication Target Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 50. Embedded Modeling IDE Demonstration
  • 51. Embedded Modeling IDE Conclusion
  • 52. The benefits of a large ecosystem • Allows to create really complex environment quickly • Covers differents kinds of domains • Offers reactive support with the community • Allows to focus on real added value © Sierra Wireless inc. – Made available under EPL v1.0
  • 53. Questions? Gaétan Morice gmorice@sierrawireless.com Benjamin Cabé bcabe@sierrawireless.com