Tuesday, December 10, 2019

Webinar for Software Engineering

ACM SIGSOFT organizes online and offline webinars with some organizations/people on Software Engineering.

Archive list is here: https://learning.acm.org/techtalks-archive 

Friday, October 25, 2019

8 Important Tips for BPEL Code Quality



Code quality is very important for software development. If organization contains many young developers for BPEL, composing and maintaining coding standarts are must. If codes are written according to standarts, code reading and developing is getting easier.

As a programming language BPEL is easy to use and deploy. But there are some important points that the developers should not omit.



Except AQ Adapter, all of BPEL Projects are deployed as web services. So we should consider following keypoints are listed below.
1. Sensor Values
The main purpose of sensors’ definition in BPEL processes is the following business events such as faults and web service calls in runtime. When Fault events occured fault events are collected by BPEL, fault events is used to report other integrated systems from BPEL Platform.
2. Fault Policy
Fault Policy is a very important feature of BPEL environment. When fault policy is defined and error occurs in runtime, Bpel allows to trigger defined another environments for creating alarms.
3. Timeout
Service invocation takes time and a default timeout interval may be too long for external services. For managing service availability of SOA Suite and transaction SLA(Service Level Agreement) time, timeout policy should be defined for external web service calls.
4. MDS usage
MDS is a repository which holds common artifacts such as WSDLs, XSDs, Domain Values Maps but can also hold fault policies and event definitions.
In many big SOA applications, all the composites use the same data model (message definitions) for their service contracts. Many entities and elements are reused. Therefore we upload common artifacts to MDS and access these artifacts from MDS in the project, instead of using local copies of WSDLs and XSDs. If we don’t use MDS, if mayor part of message definitions changes then we need to update all the SOA composite projects.
MDS usage provides reusability and avoids unnecessary redundancy and also guarantees that the changes are made in only one place. Also MDS usage helps in loose coupling of service bindings & remove service dependencies.
5. DVM Usage
DVM allows you to map values used in one domain for specific field to the value used in other domain for same field. For example some domains might use the code for customerType 1 as Residential, where as the other domain can use the complete name as Residential . In these cases we can use domain value maps. Domain value maps are static. DVM is like a properties file in Java.
No code change is required if you want to change the dvm values or add new entities to your DVM. You can change the values at runtime in SOA composer.
6.Local Variable Usage
Local variables are types defined in Scope in . bpel file. They can be accessed only in the scope. At run time while executing the flow, when the scope ends the local variables no longer remain in the memory. But global variables live during executing the full bpel flow. Using local variables enables us a more effective memory usage.
7. Naming Conventions
Generating Flow names should be managed from common center. Partitions could be seperated according to mediator and flows.
When component does not contain many components, name of composite should be same name with its component.
8. Implementation
When marketplace does not belong to BPEL domain, adding omitWSA to the partnerlink allows to prevent extra headers values in the SOAP messsage to external service.
If number of transactions is greater than 100K, audit log could be closed or manuel audit could be applied.
Suna Ün Aytar, Arzu Tarımcı
İstanbul,2019

Tuesday, August 20, 2019

Seeing Agile




Project Management since the Industrial Revolution has become a science and research topic according to metrics of business needs and  capacities of resources etc.

I wonder transformation speed of teams from one project management type to the another one?

Do you ever think  which metrics are more effective to calculate this speed?

Team Members' experience/population
Project Metrics (Size)
Deadline
Motivation
and ?








Wednesday, February 6, 2019

AI--Machine Learning -- Deep Learning in Coding

24 years ago, when I was at university, the Fuzzy Logic and  Artificial Intelligence(AI) were popular like  today  but  students just made survey of AI  as graduate thesis. For master and PhD students, things were different just as today.

14 years ago, when I was master student, using  machine learning(ML) algorithms for research  were very useful but learning rate could be not satisfied mostly.

For my graduated thesis, I remember training phase took 2 days approximately. 

But today, everything in ML/AI is easier than before. 
Open source world growth quadratically  and we could find any library __that we need__  in open source repositories. Without knowing the theory of neural computing, we could do anything in ML by using open source projects such as WEKA, H2O.  In addition, deep learning libraries in Python  are awesome today (GPU usage instead CPU helped to reputation of Phyton libraries). 

I have too many Rube Goldberg projects which AI based, one of them my AI kit watches the kitchen of  the Michelin Star Chefs and learns to cook :).

Why not? For Go play, It was worked. 

https://deepmind.com/research/alphago/


A.I./ML in programming languages for memory management  could be nice. But it comes to the source code analyzing/DF Topic  actually everything seems rule based. So statistical methods are very helpful such as classification. Using classification algorithms and announce we are using ML  etc comes to me funny and not smart.