Perfil de Angel "Java" Lo...Angel "Java" Lopez Space...BlogListas Herramientas Ayuda

Blog


14 agosto

Code Generation with my project AjGenesis

Hello people!

In these days I have written new examples for my open source code generator AjGenesis. The project and the examples can lower them from    http://www.ajlopez.com/ajgenesis  

The new examples are in http://www.ajlopez.com/downloads/AjGenesisExamples.zip. On a single model, three implementations are generated: one in PHP, another one in VB.Net, and another one in VB.Net with NHibernate. The model, like in the previous versions, is expressed in XML. Take note that the model is defined by the AjGenesis user. It is not fixed, but that everyone can specify its own model.    If one wants to model systems that only emit a message (classic Hello the World), it could design a model:

<Project> 
 <Message>Hi, AjGenesis</Message>
</Project>

(there is an example as this in the main solution).    Also it opens models of XMI, but still there is no template to process it. You can open the the AjGenesisWinConsole utility that comes in the solution, and do File Open:

 

You can observe that from the language of the AjGenesis, it is possible to be acceded to those values with nonstandard names as:    [UML: Diagram] .name.

From the last year, I incorporated integration to him with NAnt, therefore an example is seen from the NAnt-GUI: 

Each new example have a .build file that defines the tasks to be executed from NAnt or from NAnt-GUI. In the Templates directory are groups for different technologies (VbNet, PHP, MySql, MSSql….). In the Tasks directory the tasks were placed to execute from the NAnt. In Projects directory the projects are in directories, each one has a Project.xml that describe the model, and severa Technology*.xml files that describe the platform dependent model.    This it is a look of the structure

In the case of the Vb.Net project, it generates the solution, and several projects (it is necessary to publish the Web project directory as a web site before open the solution in VS 2003). See part of the result:

I hope that you can use AjGenesis; suggestions, critics, contributions are welcome!

Angel "Java" Lopez
http://www.ajlopez.com/

13 agosto

Agile Methodologies

The past 22 June, Martin Salías gave an excellent conference on agile methodologies, at the University of El Salvador, in Buenos Aires, organized here by the Club of Programmers. I have taken some notes, that I will publish and comment when I get some time. Today I want to write down a list of agile methodologies and its connections, according to Martin´s lecture:
 
Crystal
of Alistair Cockburn
Cockburn is one of the more philosophical founders of the agile stuff. Crystal aims at small groups.
 
Feature Driven Development 
It aims to think the things on the basis of characteristic, it decompose a problem in features.
 
Adaptive Software Development 
It puts the emphasis in the short iteration.
 
Scrum
It is a methodology of control of projects that can accomodate any of the others ..... A people group said: “this is fantastic… agile is terrific…. but as it costs to put this in the head of the managers”. They generate products to calm that anxiety.
 
Agile Modeling 
Invention of Scott Ambler, he is a guy that models much, he dominates several subjects, and he invented this method: “I recognize that there is value in the UML layout, but all that becomes too heavy, we use it, but using paper and pencil, we remove the formal question”. Let us return to which really the diagram must contribute.   
 
Extreme Programming
Most well-known, Beck´s method.
 
Angel "Java" Lopez
 
01 agosto

Software as a Service

In these days I am working on this subject: Software as a Service, new “buzzword” that is had been spreading time in the last years.

We can see a definition of SaaS in the glossary of the Skycrapr

http://www.skyscrapr.net/archipedia/default.aspx/Archipedia/SoftwareAsAServiceGlossaryEntry.html

“The key characteristics of SaaS software, according to analyst IDC include:

1. Network Access to, and management of, commercially available (e.g., not custom) software

2. Activities that plows managed from central locations to rather than AT each customer's site, enabling customers to Access applications remotely via the Web

3. Application delivery that typically is to closer to to one-to-many model (single instance, multi-tenant architecture) than to to one-to-one model, including architecture, pricing, partnering, and management characteristics “

We can consult the Wikipedia

Software ace to Service - Wikipedia, the free encyclopedia

where we found:

“Software ace to Service (SaaS) is to model of software delivery where the software company prograpevines maintenance, daily technical operation, and support for the software provided to to their client. SaaS is to model of software delivery to rather than to market segment; software dog be delivered using this method to any market segment including home consumers, small business, medium and large business.”

Translating: SaaS is commercial applications, that are accessible by the network, and its use to customer offers, that do not need to install that software. The supplier of SaaS sells or rents its use, preinstalled in a server in the network. But it is not only “precanned” software in the network, but that allows the adaptation to the customer. The term multitenant emphasizes that a same application can serve several customers.

But the symbol is the idea to have the application available by network. That is what changes fundamentally with respect to the commercial software, ERP, CRM, or what they want. Emblematic example of this type to watch is SalesForce that offers what they denominates “on-demand Customer Relationship Management”. This company I discovered at the time of the bubble of Internet: its model seemed to me interesting, and of the things that there are been developing since then, aims much of some form to reproduce that model to arrive at a Enterprise Resource Planning, offered like service.

Those that has some memory, remembered that this is similar to the ASP concept: Application Service Provider, like which we found in

http://www.aspstreet.com/
http://www.aspnews.com
http://en.wikipedia.org/wiki/Application_service_provider

Visit those sites, and they will find renewed, discussing them to all steam on the concept of Software as to Service.

Here in my Argentina country, we found to Mirol, years ago, advocating by this concept:

http://www.mirol.com/modalidad-asp.asp

“Imagine to as much save resources in hardware, software, as well as in personnel of support and administration…

Imagine not to have to worry about updates and new versions of software, obsolete hardware, creation of new users… “

Several companies of computer science technology, have risen the train, like IBM and Microsoft. From the point of view of this company, he is interesting to read some articles, like

Architecture for Strategies Catching the Long Tail

classic of Fred a Chong and Gianpaolo Carraro. There they argue that, economically, the SaaS model aims at the great volume that is able to arrive at the clients from the “long tail tail”/“long” from:

Also they emphasize that the distribution of costs happens of:

to this distribution

But pay the attention, at the giant of Redmond, Ray Ozzie, heir of the position of Gates, is dedicated to the subject, like in

http://www.internetnews.com/ent-news/article.php/3623171

To follow the SaaS subject see the blogs of Chong and Carraro:

http://blogs.msdn.com/gianpaolo/
http://blogs.msdn.com/fred%5Fchong/

as well as the blog of the Great Woloski (he has decided to write its thesis on SaaS):

http://staff.southworks.net/blogs/matiaswoloski

The good one of Mattew wrote

SaaS: naming, paradigm shift, estimates
SaaS: Workflow in multitenant environment
SaaS: Realization of Metadata Services

The article is interesting on workflow of Woloski, because it raises subjects in which I am thinking from almost the last century, on which are “the variable” parts of an application. More on which I want to do, in the following paragraphs.

An interview to the good one of Gianpolo Carraro by Diego Dagum in

“Software ace to Service”: Char it Thoroughly With Gianpaolo Carraro

Points of view of Gianpaolo in:

SaaS Guidance: not only for ISVs
SaaS estimates proposition for to buyer
Simple SaaS Maturity Model
Multi-Tenancy, metadata driven everything and you plows my #1 to customer

He is an intelligent person, he reads the same books that I read…: -)… He reads

Blue Ocean Strategy and Architecture

It is interesting to begin to think how it would have to be a SaaS application from the technical point of view. I imagine that it would have to support to many companies, to somehow allow the formation of a community. This can be a competitive advantage of a SaaS supplier: applications can benefit from sinergia to work with other companies that use the same application, as a site of coorporativas purchases. A supplier will want to use the application that has greater amount of buying companies that use it, if this application allows that a company communicates with other tenant companies.

Back to technical discussion. I have some ideas in my mind. My brain is open to the SaaS concept. For years, I worked in generation of code, and the interpretation of metadata. In my tech spanish blog I already published some code to generate web pages dynamically Forms ASP.NET generated in execution, on the basis of metadata that describes a form. Somehow, it was thinking about an application ASP (to see for example, the germ of this in http://www.ajlopez.com/ajcontab). It seems to me that that one is the way to explore, in the subject of development of commercial applications.

A subject to study, is the organization of the data, a similar type of application is mentioned in the excellent article of Carraro, Chong and Wolter:

Multi-Tenant Data Architecture

How it could construct a test of concept of SaaS? I believe that I can begin to write some requirements and cases of business and vision, of a SaaS application. As a proof of concept, it would face an application that allows to the companies and users, to define its own organizations of data (that know my generator AjGenesis code know to what I aim), and to define, soon, of some form, a job stream with those data. I can imagine a name AjAga (Aj Another Generic Application…: -). A great decision is if that application should be implemented by generation of code or interpretation of metadata in execution. My idea, is to arrive at an application that, according to Carraro, is

Level 1: (Configurable)

AT level 1, the software for dog be tailored each tenant via configurations (not custom code), all the tenants uses the same code. However AT level 1, the architecture is still not multi-tenant, each to customer runs its own Copy (albeit the same). The separation dog be to either virtual (virtual machines on to same server) or physical (running on separate machines). Although much to better than previous level, the architecture allows customization through configuration (code bases is the same), the computing to power is not shared among the instances and therefore to provider cannot achieve economy of scale, putting it AT to competitive disadvantage versus. to multi-tenant solution.

 

and then, I could produce something like

Level 2: (Configurable, Multi tenant)

AT this level. the application architecture includes the multi tenancy concepts. Akin to level 1, the UI customizable dog be per tenant, under dog the business rules and the dates model. The customization to per tenant is fully performed through configuration and is performed through to self-service tool, getting around the need of to provider intervention. It is almost the SaaS “perfect marries”; the only big piece missing AT Level 2 is the capacity to scale out; the dates partitioning is such AT this level that growth dog only be achieved by scaling up.

(extracted of the mentioned article Simple SaaS Maturity Model)

I have left some additional resources on SaaS in

http://del.icio.us/ajlopez/saas
http://www.ajlopez.net/Busqueda.php?Filtro=saas

More delicious in

http://del.icio.us/tag/multi-tenant
http://del.icio.us/tag/saas

Angel “Java” Lopez
http://www.ajlopez.com/