vendredi 13 avril 2012

Android vs Windows phone 7 round one


          I’m a Microsoft Student Partner for three years and I’m starting my start-up which is a Microsoft partner too, so basically I’m a .Net user and in particular I’m developing mobile application for the windows phone 7 operating system, but recently I have been doing some projects for the Android operation system. Anyone with my Microsoft background will start doing  some marketing for Microsoft technologies describing them as the best solutions ever, today I’m not doing that also what I’m not doing is describing android as the shiny white knight that save me from Microsoft hell. I’m just going to talk about my little experience using both technologies.

          To begin with I would like to compare the IDE in other words Visual Studio vs eclipse, eclipse is good for an open source product but VS is great, starting with the design, visual studio have much better user interface than eclipse. Also VS provide better debugging options and tools even the break point are better and clearer, because after 8 hours of programming you don’t really like to fetch for little blue points that eclipse call break points, furthermore visual studio handles better the manipulation of the UI elements drag an drops and provide a nice  property tool box that you can use it to customize the UI element as you like, with android it’s another story where UI elements jumps everywhere in the window taking strange positions all over the place which is really missy, and after spending all that time fixing them sometimes at  runtime you get a view completely  different from what you have at design time.  Also visual studio provides a lot of tools helping developers to increase their productivity like creating code snippets, measuring application performance, managing projects, generating graphs…May be all those tools exist with eclipse but you really need to look for them in the web figuring out how to add them and use them which is not very productive, the visual studio philosophy is delivering an environment that empower  developers and let them  focuses only on the code and the application, Microsoft actually did that very well where eclipse is still have a lot to hit that point so let’s give WP7 one point for the IDE.

          Next I would like to compare the views creation process, I’m not going to compare android xml vs Microsoft XAML because I think they are the same, both are just structured XML but I would like to talk about expression kit for wp7 where by the time I just finished creating all the xml that I need to just change an android button color, with expression blend I already created an animated awesome user interface. Manipulating xml is not easy specially for non-developers witch make creating great user interfaces with android harder, In the other hand using blend for wp7 it’s just like using Photoshop where designers can feel free to do everything basically with the mouse without having to write any XAML, and after creating those views developers can and add all the code they want using visual studio. By the way expression kit is free so I will have to give wp7 another point.

          Now let’s compare the functionalities that both OS provides for developers, I think android is 100 year in advance comparing to wp7. Windows phone 7 provide only some basic functionalities and of course it’s all closed so you have to wait for Microsoft to add any functionality that you may need, but with android you can pretty much find anything you need for your application and even if Google doesn’t provide it, you can easily find someone somewhere figure out how to add that functionality and blog it. Microsoft has announced the new version of wp7 Mango providing better functionalities like the support of sqlite witch it was supported by Android three years ago so even Mango can’t stand in front of android in term of functionalities provided for developers, so let’s give android one point for the functionality.

          So until now wp7 is the winner but let’s talk about android community vs wp7 community, but wait a second do wp7 even have a community besides few Microsoft partners (student or professionals) that are pretty much influenced by the Microsoft marketing. Android community is very big very strong and I think it’s the most powerful thing android have. If you got  any kind of problem that you can’t figure out how to solve it, just google it and you will find thousands of posts dealing with that same problem so even an android beginner like me can easily create great things just by looking for them in the internet, with wp7 you can only find some few posts nothing serious and even in the forums developers end the discussion with that phrase :“I think I’m going back to android” , so not only wp7 doesn’t  have a  large community but they are losing them  right now, to give an example the last time I spent three days fixing a problem  that takes only 2 or 3 hours  if I was using android. The community is very important factor for the success of any technology and to increase the productivity of any developer, because when you are a part of strong community you feel safe and you feel capable of solving any problem. Maybe Microsoft has the best developers but even Microsoft engineers could never much the force of the community. So in this point android will get 100 points and bit up wp7.

          I will finish by comparing the technology owners Microsoft and Google. I can’t trust Microsoft any more even if they have better support and better documentation than Google have. Microsoft has killed four technologies in just four years: windows phone 6, Silverlight (that was announced as the future of the web, many start-ups has been established to create application using that technology and now they have nothing to do anymore),WPF and XNA so it will be no surprise if Microsoft announce next year the death of the wp7.And    I don’t trust Google either but I really trust the community because I think that Google doesn’t own android any more Google is just a part of a big community and the real owner of android is android people this is why it will be there for some time  so let’s give android another point for that. 

          It is obviously that 2012 is android year, and I can’t say anything else otherwise I will be a layer or illusionist, but android community must learn from Microsoft philosophy providing better tools to developers and designer, also Google can provide better documentation and support for android and finally the community must really watch out from those guys at Redmond because they are not letting go that market easily specially after the failure of many projects like(Azure cloud) and they will do anything to be the number one after all no one knows what will happen in 2015.

mercredi 7 mars 2012

Cloud Broker : Compatible one solution


What is cloud broker??

      First I will start by explaining what is cloud brokerage, a cloud broker is an intermediary provide one interface to manage all the complexity behind dealing with different cloud services.
If you are an IT enterprise that uses one cloud (public or private) you don’t need that brokering services, all you have to do is to understand that cloud API and start consuming them. But when organisations start using the cloud seriously the one cloud scenario will be likely the most common scenario. Because cloud offers different services for different use case, it provide infrastructure services, storage services, software as a service, data subscription and so long, having one cloud providing all services perfectly is a hard thing to have, for example let’s consider a software company that uses openstack cloud as private cloud to host intern management applications where security really matters, uses Amazon cloud as test platform to do some different deployment scenarios on different environments and finally they uses windows azure as PAAS. Let’s take a look to what this company must deal with: 

-Mastering all the APIs of different clouds (OpenStack, Amazon and Azure)
-Having different monitoring system for deferent clouds
-Managing the security policies for each cloud
-Managing the billing system for each cloud (for example Amazon and azure have different billing policy)

As you see this company have many challenges to face and must have different teams for different cloud what make using those services very costly and very hard witch make no sense at all because cloud computing supposed to offer simplicity and chip services. So the best solution for this company is to use Cloud Service Brokerage(CSB) that offers one entry point to manage all the cloud providing one API, one security system, one monitoring system…(for more information read The role of a Cloud broker http://www.cio.com.au/article/399699/role_cloud_broker/) so in the future CSB will have a very important role in the world of cloud computing and of course will have an economical influence where company will pay for brokering services. In order to help IT managers, CEO and any decision makers I will present the first open source CSB created by French research group, the project called Compatible one.

What is Compatible one??

      Compatible one is the first open source cloud broker, it’s a collaborative project, the first release was on October 2011 and the final one will be on December 2012, the project members include industry and academics leaders, innovative technology statups and a world-renowned open source community. For more information visit the web site http://compatibleone.org.

Compatible one component
The compatible one is composed of four parts:

Designer: Taking into account the user requirements
Scheduler: Design and construct of the provisioning plan
Broker: Execution of the provisioning plan
Provider: Deliver the request cloud service 






Designer:

     The designer will take user requirements in term of both technical and economic criteria, for example the user want to create an instance that have 3 cpu 16 G of memory and 30 G of hard drive and he want to pay no more than 1$ per hour. The user will put all that in a manifest file (well-structured XML file), the manifest structure is based on the model described by CORDS (CompatibleOne Resource Description Schema). CORDS is a model defined by the CompatibleOne Developers based on OCCI (Open Cloud Computing Interface).

What is OCCI?

      OCCI is a community effort in order to standardize the cloud computing interface, cloud computing standardization is in it’s very early stages and OCCI is an effort that aims in its early start to provide one single interface to manage IAAS, and now it serve many other models like PAAS and SAAS http://occi-wg.org/.

But before continuing with CORDS description I would like to explain how OCCI works:

      OCCI is an intermediary between the client and the provider. The idea is to unify the way how client consume services by providing standard REST APIs called OCCI, OCCI interface will receive the Rest request from the client and then it will mapped to the resource management framework(RMF) of the cloud provider and finally the RMF will create some management resources according the user request and send back information to the RMF, the RMF mapped to the OCCI interface and finally OCCI will send a HTTP response to the user communicating all the information that he need to start using those managed resources.




OCCi Components:

OCCI define the infrastructure model extension witch is an abstraction model to real life resources it defines a Resources class composed of three classes:

Network: the user instantiate this class to define his Network resource needs (vlan, label (Token), state)
Storage: the user instantiate this class to define his storage needs (size, state)
Compute: the user instantiate this class to define his Network needs (Architecture, cores, memory…)
And finally a Link Class, the link class is responsible for associating one resource with another.


      Also OCCI defines Mixin, the Mixins are extensions mechanisms that allow new resources capability to be added dynamically to a collection of resources instances (Mixin can be added to resource instance at creation time or at run-time but Mixin can be added only to instances and not objects).


The only question is how to control Mixin since is all dynamic, that’s mean how the user will now what’s supported and when he must add mixins. Well according to the OCCI the Core model is the solution for all those questions, this a fundamental feature that give the capability to resources to be added and discovered at run-time, OCCI users can connect to OCCI core model without having any idea about available resources and start discovering at run-time the various resources and links supported by that implementation.


But how??

      If we examine the figure bellow will find that the structure of the class diagram become more complex, now Resource and Link both inherit from an abstract class called Entity, each Entity is identified by a unique Kind instance. The Kind type is actually a specialised type of category, Kind add to category Action instances, the Action instance represent an invocable operation applicable to a resource instance (e.g. for Virtual Machine resource Action can be launch). For compliance with OCCI Core, all of the types defined in the OCCI Core Model MUST be implemented.


The core Model assures the identification and classification of Entities (Resources and Links) witch make them discoverable. Because each Entity is associated to a unique identifier(Kind instance) so whatever a resource is added the OCCI will look for new Kind instances and find Entities instances associated to them witch make all the inheritance structure of Entity, Resource and Link is client discoverable. The Kind type must implement all category attributes and all instances of Kind type must follow those rules:


A unique Kind instance Must be assigned to each and every sub type of Entity, including Entity itself.
A Kind instance Must expose the attribute names of the Entity sub-type it identifies.
A Kind instance Must expose the Actions defined for its sub-type.
A Kind instance Must be related directly or indirectly to the Kind instance of Entity
If type B inherits type A, where A is a sub-type of Entity, the Kind instance of B MUST be directly related to the Kind instance of A.




The Figure illustrates the relationship of the Kind instances assigned to the Entity, Resource and Compute types. Compute inherits Resource and therefore the Kind instance assigned to compute is related to the Kind instance of Resource. The same applies to the Resource type which inherits Entity.

Example of simple VM resource creation





We can see that the requested Resources is compute and we added two mixin one associated to the OS(Ubuntu) of the virtual Machine and another one indicate the capacity requested(small machine). So the provider did the job and gives back a HTTP response indicating the URL associated to this managed resource.

So this is a brief explanation of OCCI specifications that help you understand better the CORDS schema. 

Now let’s go back and examine CORDS specifications, CORDS it just an extension of the OCCI specification it adds many new objects like Monitoring, deferent network configurations, some node constraints… but in the same time they keep the compatibility with OCCI by implementing the OCCI core model.



The figure present a logical view of the CORDS, we can see that the implementation of OCCI core model is respected while adding many new objects.




The figure present CORDS virtual instance view. The user can define a contract where he put the profile of the service that he like to get and the list of providers, each service is composed by 1 or many contracts and each plan is composed by one or many services (All the attributes if CORDS are defined in the document CORDS reference Manual http://compatibleone.org/bin/download/Docs/WebHome/CordsReferenceManualV2.03.pdf). Finally after doing all the definition a Manifest must be defined as output to the Design phase.



Manifest version 2 description



Image components: each image has a system and packages to be added example (Ubuntu system + Mysql package)



Infrastructure components: Storage resources(example open stack volumes), Network and computes(small instances, tiny instances…)


CompatibleOne scheduler :

      The User manifest is received by a mechanism called the SLAP Master allocation engine. This engine triggers the gathering of events required for accounting and billing, and then transmits the manifest to the CORDS Parser. The CORDS Parser transforms the XML description of the manifest file into a validated and well-formed provisioning plan. The CORDS Parser performs a syntactic verification of the manifest file prior to engaging the descriptive resources used to represent the resulting architectural plan required to meet the specific requirements (scheduler definition from the web site)

To do the parsing on the Manifest file a command line provided by the compatible one APIs can be used: co-parser manifest, that command line will produce a provisioning plan.


ComaptibleOne broker

      The provisioning plan is transmitted to the CORDS Broker. The CORDS Broker is in charge of executing the provisioning plan for the production of an actual service instance to be delivered to the user. The broker will instantiate a service graph for the control of the contractual components described in the plan. During this operation the CORDS Broker will collaborate with various CompatibleOne service providers as required for the realization of the plan. This will be performed while respecting the different constraints and conditions expressly defined in the plan, such as an carrier selection, optimization, monitoring or accountancy.(broker definition from the web site)

To start the broker: $ broker --config accords.xml BROKER/1.0

To publish a provising plan : $ testcb --publisher http://127.0.0.1:8086 plan_manifest.xml

CompatibleOne services used by the broker:

COES:This component will examine monitoring information in the forms of provisioning alerts which will be used in the elaboration of the scoring information that will be used to influence the selection of particular provider platforms during subsequent placement operations.

CONETS: The CompatibleOne Network Services

COIPS: CompatibleOne Image Production services.

COSACS: CompatibleOne Software Appliance Services this components used to personalize application images during resource deployment startup(example adding requested packages)

PS: All the services used by the broker are standalone OCCI (OCCI implementation) REST servers that must be run before start using the broker.

Broker will produce Contracts for the providers



CompatibleOne Operator

      The CORDS Broker coordinates the activity of the CORDS Procci for the selection of the specific cloud providers for the delivery of the provisioning services required by the consumer. A particular provider's ability to deliver resources is guaranteed by their declaration of presence, and their consequently available resources, to the CORDS Publisher. Providers are selected by the CORDS Procci as directed either by the constraints described in the provisioning plan or specified in the global configuration of an operational instance of the ACCORDS platform. ACCORDS (Advanced Capabilities for CompatibleOne Resources Distribution Services) is actually the Provisioning System for CompatibleOne

Communication with the Provider is performed through standard CORDS OCCI client/server interfaces between the CORDS Procci, on the CompatibleOne side, and the Provider Procci, on the Provider side. In this way a individual and specific Procci service provider is responsible for interfacing with a particular Cloud Provider, e.g. an OpenNebula Procci, an OpenStack Procci, an Amazon Procci or an Azure Procci.

Consequently, in order to be made available for operation and use within ACCORDS, a resource needs only to implement an OCCI client/server Procci interface.

Publisher: the publisher is responsible for publishing service provider collection of categories (OCCI specification) for use by other components.

The publisher is a standlone OCCI REST server and must be started before any of the other components may be used. The publisher is started by the command:

$ publisher --config accords.xml PUBLISHER/1.0

Resolver: The resolver library allows the publisher to be consulted for discovery of the collection of service providers for a particular category of service.

Resolver are C libraries, any category can be inspected by typing this command line

$ testresolver categoryname1 categoryname2

Procci: This component of the ACCORDS platform is responsible for the management of generic provisioning contracts as requested by the service broker during the creation of the service instance control graph. Provider specific contracts will be negotiated here using the provider specific procci components as required by the description of the node to be provisioned.



mardi 19 juillet 2011

The Impact of Cloud Computing on the Medical Field




                 The Cloud Technology is an evolution in the world of computers and it has an impact on many fields and domains, it represent a big help for scientists that want to use the compute capacities, for the biologist that want to use the storage and data analysis capacities and of course on the world of IT where this technology present the best solution for several problems. But today I want to write about the impact of this technology on the medical field.
Strange, Cloud and Health Care, In fact the cloud we will provide services that we can only read about it in the science-fiction comic books, imagine an IPhone that can replace a hospital and getting access to treatment just by pressing a button.
Leveraging Cross-Disciplinary Exponentially technologies (Digital Medicine, Robotic surgery, Nano medicine, connected Health....) have a great impact on the quality of our health care services and provide for us
• Low-Cost Gene Analysis
• Computational Bio-Informatics
• Internet Connectivity
• Social Networking
This growth and those new means give us the chance to attack major problems in the world of health care and medicine like (Insufficient use of Information, Cost, Demography, Prostrated Adoption of innovation....). May be with some examples I can better explain this:

My First example will be the Iphone, Great Device that has more than 20000 applications for medicine and health care for example there is a Glucometer attach to some Iphones and of course an app for that to check the blood Glucose and send it to your doctor, also with the same phone you can attach a chip and check you self or your partner from STI (Sexual transmitted Infections)….

Another great news, now the virtual colonoscopy is available, the technique basically simulate the human colon and by using a very complex Artificial Intelligence  techniques doctors will be able to do this exam virtually without touching the patient 
 
Also the diagnostic devices become cheaper and portable, for example the stenoscope that used to be big and expensive now is available in the size of the hands and cost only 5000 $ of course this device need an application in order for it to work.
Furthermore some everyday objects can be transformed to be diagnostic tools like the mirrors and the watches, imagine at the morning when you wake up you will get a full body check by your lovely Mirror.


 
In the other hand the medical records are going electronics including the genetics information of the patient in fact in the US only less than 20% of patient’s data are still not electronic.  And finally the medical imaginary evolution that able doctors to look inside a human body or brain distantly in real time with a very high resolution in order to understand better the diseases.
All those example are great, and make our life much easier but there are two major problems that will stop this exponential growth, one how we can make those devices do great amount of calculation and computational operation without losing in term of money or size and two how we can keep tracking, centralize and store the big amount of data flow (yesterday we manage 50 MB per patient, today 20 GB and tomorrow 1 terabyte). Well the answer is simple : cloud computing, the cloud can offer a mean to store data in a secure and scalable way also it have an infinity of computational resources so by simply connecting a mirror to a cloud  it will be able to have the same capacities that have a calculation grid.
The Cloud will not help only in storing data and provide the compute resources that tools needs, it will help doctors to diagnose diseases by using A.I(those techniques need a big computational resources)  so we can get more and more precise diagnostic and reduce the errors probability, in addition cloud will offer a great reports on your health providing you with advices based on your current state of health and by doing some complex data and genetically analysis it well be able to predict and prevent diseases on some regular basis (T4 medicine) 

Also the cloud will provide great resource for studying the patients so pharmaceutical companies provide better cures that consider human variety.
And finally the cloud will offer cheaper services because what we use to pay for 10 MB hard disk now will get us thousands of Gigabytes
The cloud computer will be the central system that provides storage and computational resources for hundreds of medical and non-medical devices that are distributed everywhere (inside and outside the body) and that keep tracking the human health state so we can have a health system that:
·         Empower the patient
·         Enable the doctor
·         And Enhance wellness

Cloud computer is a fact and has its own impact in many fields, it opens doors for scientists and researchers to innovate and create without thinking about resources or means.

vendredi 4 mars 2011

The Great Cloud






Since I was interested with the cloud I was looking around everywhere in articles, interview and videos to know about this « new technology » that everybody is talking about..
In the beginning I was scared, I found in front of my face a big number of new terms and paradigms was also the term cloud is over-applied “it’s the new trend” , “the new technology choice FOR the IT in the future”, “everybody will go to the cloud” cloud here and cloud there. Also in almost articles and video the authors suppose that you are a great IT and he suppose that you know all about the cloud and he start talking about his own cloud or predicting about the future of the new cloud solution that exist. But in this article I like to answer the basic questions that I got when I started goofing around:
  • What is the cloud in first place (Clear definition)??
  • After I move to the cloud what are the management tasks removed and what I still have to do (I have to do something right)
  • What are the solutions that exist and what is the difference between them??
  • What I need to know before starting use the cloud??

I will Start by an abstract definition for the cloud and I think it is the best definition I ever read:
“The Cloud is a utility computing environment where the developer can treat the compute and the storage resources as infinite”.
Great Definition and great news not only for the IT guys who doesn’t like to manage storage issues but specially for every creator and innovator that he can’t find great resource to apply or to create his idea which can be the next million dollar idea, it’s a great news for people who like game development and 3D simulation and of course it is great news for science because now Scientist everywhere can use the cloud capacities to do hard and complex calculations that used to be done in some specific high cost grid calculation. There is a project done by a Tunisian engineer called Karim Chine this project allow scientists to do and share hard calculations and simulations by implementing the R platform on the cloud this project called Elastic-R and finally is a great news for people who like to test their startups “Now only with a pc we can start our own business”.

Now let’s talk about what it was removed and what it still you have to worry about, I will start by the good things:
  • All ITs must do some theoretical calculation and estimation about the maximum load, with the cloud you don’t need to do this anymore you have infinite resources.
  • No more replication strategy
  • No more Platform Patching/maintenance strategy
  • Don’t think about Storage “Head Room”
  • And Finally no more Data Center setup (Redundant Power, Redundant cooling, redundant internet connectivity….)

Cool!!!!!!!! Ok don’t be so sure because you still have a bunch of headaches that you need to worry about:
  • Data Storage: Nosql style or SQL style
  • Maximum concurrency in application
  • If Sql : storage sharing??
  • If no SQL: partition and row keys??
  • Programming language

  • Monitoring software
  • When to adjust capacity (especially that you pay for what you use)
So If you like this and actually you decided to move to the cloud there are many solution exposed out there by the big players (Microosft, Google,Amazon…):
  • SalesForce.com
  • Rackspace Hosting
  • Google App Engine
  • Amazon Web Services
  • Azure Services Platform
All those platforms are cloud based platform but there are different in term of services for example Amazon offers Virtualization other don’t, Also in management for example with Amazon you manage your virtual machine and add ones when you need it, but Azure manage for you the virtualization and add capacity when the application need it and finally in paying mode some of them offer a bill on timing others on operations and queries.
Is not something easy to move to the cloud you need to be familiar with distributed architectures and design patterns also you need to have a strong knowledge about security and of course managing Data Bases.
This is a little introduction about the cloud all you have to do now is to go out there and find the most solution that is suitable for your application or for you enterprise and be the first that present it to your boss.



dimanche 6 février 2011

MonoDroid Project

.Net Developers can start now developing for Android using c# and visual Studio.


Android is the winning cart in the world of smartphones it is the most popular with more than 100000 applications in the MArketpalce also many devices use it as an OS, in one word it is the windows of the smartphones.

But before the monoDroid project .Net developers was filling envy and frustrated because they are disable to share the goodness of the Android world and they will have to learn a new Framework. Also
the people who use the Visual Studio IDE will have problems using Eclipse.
So with the mono project (open source project to make .net compatible with different platforms), Nouvel( the same company than introduced the MonoTaouch (framework able you to develop for iphone using .net) in 2009) has stepped up and presented the MonoDroid project. You can start developing for Android after you download the monDroid for visual studio and some other tools all the download instructions are found in this Link http://monodroid.net/Installation#Install_the_Java_JDK. Later more Tutorials will come up in order to introduce bettter the MonoDroid Project



mercredi 2 février 2011

Initiation à ASP.Net MVC


Cet article sera divisé sur trois parties

            Asp.Net MVC définition et introduction
            Asp.Net MVC Comment ça marche ???
            Asp.Net MVC application démos 


Asp.Net définition et introduction (partie 1)

C’est quoi le MVC???

MVC (Model Vien Controller) est un pattern architectural qui sépare l’application en trois composants : The model, The View and the Controller.

        Models : L’objet model ce sont les parties de l’application qui implémentent  la logique de domaine des données de l’application, l’objet model charge et enregistre des états de model dans une base de données. Par exemple, un objet produit peut charger des informations de la base de données, faire un traitement sur les données et enfin mettre à jour la base de données dans le serveur.
       Views : Ce sont les composants qui affichent l’interface utilisateur de l’application. Typiquement cette UI est créé suivant un modèle de données. Par exemple si on veut créer un édit view pour un tableau de produits qui affiche des zones de textes, des listes, des cases à coucher… suivant l’état actuel de l’objet produits.
       Controllers. Les contrôleurs sont les composantes qui traitent l’interaction de l’utilisateur avec le système. Ils choisissent un view et l’affichent. Dans le pattern MVC le view affiche seulement l’interface mais le contrôle des données se fait par les controllers qui passent ces données aux Models.

MVC Pattern offre une séparation entre les différentes aspects de l’application (logique de présentation, logique  de métier et logique des données), en même temps ils offrent un couplage libre entre ces composants. Le patern indique où chaque élément appartient dans l’application, la logique de métier appartient au model, la logique de présentation appartient au view et la logique des données appartient au controllers. Cette séparation permet de Controller la complexité pendant la création de l’application. Parce qu’il vous permet de concentrer sur un aspect de l’implémentation chaque fois. En plus il diminue la complexité des Tests et enfin cette séparation vous permet de créer les différentes parties de l’application en parallèle.

Quand je choisis de créer une application MVC ???

Vous pouvez choisir soit une application Asp.net classique basé sur les web_forms ou choisir une application ASP.Net MVC mais pas les deux.
Avantages d’une application basée sur MVC
Rendre le control de complexité de développement plus facile à manager
MVC Framework est idéal pour les développeurs qui aiment avoir le contrôle sur tout le comportement de l’application.

Il utilise un Front Controller patterns qui traite les web application requests comme un seul controller qui vous permet de développer une application qui supporte une riche  routing infrastructure.
Supporte mieux les TDD(test-driven-developpment)
En général il sera très intéressant d’utiliser le MVC pour des applications complexes qui engagent un grand nombre de développeur et des Web designers qui ont besoin d’un dégréé supérieur de control sur le comportement de l’application.

vendredi 21 janvier 2011

The New JSR ( Java Specification Requests)


Finally JSR for java 7 & 8
JSR are primordial documents for Java Community Process:

The new Java 7 JSR:

JSR 334 : Small Enhancements to the Java™
Programming Language (The coin project for
Java 7) : 

JSR 335 : Lambda Expressions for the Java™
Programming Language (the lambda project for
Java 8) :  

JSR 336 : Java™ SE 7 Release Contents 

JSR 337 : Java™ SE 8 Release Contents 

3 principals JSR for Java SE7

JSR 203 : More New I/O APIs for the Java
Platform ("NIO.2") : 

JSR 292 : Supporting Dynamically Typed
Languages on the Java Platform :

JSR 334 : Small Enhancements to the Java
Programming Language (OpenJDK Project
Coin)

For Java 8 is a lot more interesting because we discover and for the first Time the JSR that compose it

JSR 308 : Annotations on Java Types
JSR 310 : Date and Time API 

JSR ???: More Small Enhancements to the Java
Programming Language (OpenJDK Project Coin)

JSR 335 : Lambda Expressions for the Java
Programming Language (OpenJDK Project
Lambda)

JSR ???: Java Platform Module System
JSR 260 : Javadoc Tag Technology Update :

JSR 295 : Beans Binding 

JSR 296 : Swing Application Framework

Some dates:
JDK7 is available from jule 2010 but the JDK8 will be available in 2012

With Those amelioration Java is really catching up with the .Net framework witch contain many functionalities that we can’t found it with java and I hope that the open source community  with Oracle people  create many cool features that us developpers can use.
PS : Java now is supported by The Windows Azure