what is the core technology used in ejb's? - ejb

what is the core technology used in ejb's ?

Um... Java? The expression "core technology" is far too vague to give a meaningful answer here.

Related

What is Clean Architecture in .NET?

What is "Clean Architecture" in .NET ? What doesn't qualify as "Clean Architecture" ?
Are CQRS, DDD mandatory for "Clean Architecture" ?
What is onion architecture ?
Please clarify ... I am actually lost with "Clean Architecture".
Since the question is too broad, I try to answer it on a high level.
What is "Clean Architecture" in .NET ?
In short: "The same as in every other language". Architecture is mainly about managing dependencies, because dependencies are the main problem when it comes to code smells like fragility, rigidity and immobility. It is also often called the structure of the system and I can structure .NET application the same way as Java, JavaScript or even C++ applications. The concepts of repositories, use cases (interactors), entities and so on stay the same, even though their implementation differ based on the language features.
What doesn't qualify as "Clean Architecture" ?
I would say each architecture that breaks the main rule of separating the business value from technical details. That's the core of the clean architecture - to make the business rules technology agnostic with the goal to make them easy to test.
So whenever you have a system structure that needs to boot up a complex framework, a web server or a database (that must be initialized with ddl and dml) just to test your business rules, you don't have a clean architecture.
Are CQRS, DDD mandatory for "Clean Architecture" ?
No, these concept usually fit very well with the clean architecture, but they are concepts that the clean architecture does not require. E.g. you can implement your domain logic as an anemic model and still be clean architecture compliant. But I think it would be a better idea to use DDD or at least a kind of rich domain model.
What is onion architecture ?
The onion architecture is an architecture that was introduced by Jeffrey Palermo. He also wants to decouple the business rules from the technology details. Jeffrey Palermo says:
Hexagonal architecture and Onion Architecture share the following premise: Externalize infrastructure and write adapter code so that the infrastructure does not become tightly coupled.
and he says:
The database is not the center. It is external.
Thus the clean archtitecture and the onion architecture have a lot in common. That is not a big suprise, because Robert C. Martin says in his The Clean Architecture blog:
Over the last several years we’ve seen a whole range of ideas regarding the architecture of systems. These include:
Hexagonal Architecture (a.k.a. Ports and Adapters) by Alistair Cockburn and adopted by Steve Freeman, and Nat Pryce in their wonderful book Growing Object Oriented Software
Onion Architecture by Jeffrey Palermo
Screaming Architecture from a blog of mine last year
DCI from James Coplien, and Trygve Reenskaug.
BCE by Ivar Jacobson from his book Object Oriented Software Engineering: A Use-Case Driven Approach
Though these architectures all vary somewhat in their details, they are very similar.
Thus the clean architecture is a consoidation of other architectures that is enhanced with ideas from Robert C. Martin.
I hope my answer helps you to classify the different terms.

SOA modelling terminologies

I am learning SOA for our new project. I want to know basic information on SOA modelling technologies. I saw lot many terminologies in internet like SoaML, BPMN, SOMF, SOMA, SOBA ... and confused when/where to use what modelling technology.
Please help me to identify exact technology to model our services.
Thanks in Advance.
SOAML - UML Profile (Modeling notation) for modeling SOA.
BPMN - Modeling notation for for modeling business processes.
SOMF - Methodology for designing SOA architectures. From Michael Bell. Supported by tools like Sparx Enterprise Architect
SOMA - Methodology for designing SOA architectures. From IBM. Supported by RSA.
Haven't heard of SOBA.
Model your services using the simplest tool you can, I use blocks and line drawings for the overview (service) level models and UML sequence diagrams for depicting internal orchestration.
The modelling language will not help you learn how to build SOA, experience of doing and following best practices will help.
Good luck and enjoy the journey

Any recommendations for learning the basics of event-driven programming?

My task for today is to fully understand event-driven programming and how it works. Now there are several ways this can be achieved. The first one is to actually program a basic program that covers the key concepts, and the second approach is to watch a video that explains the key concepts in a way I can understand. Which approach do people recommend?
Does anyone have videos/program demos they found useful and could recommend to me? My major experiences are with ASP.NET MVC, so it would be best if the tutorial were with WebForms ASP.NET.
Event-based programming

Symbolic Mathematics for .NET

I am looking for symbolic mathematics library for .NET framework. I have looked at Math.net but it's not something usable yet. Do you know if there is another library exists?
This might be overkill, but you can talk to Mathematica from .NET, using its .NET/Link API.
Symbolism is a library which implements automatic simplification of algebraic expressions in C#. It can be used as a foundation for more complex symbolic mathematics operations.

Why is Peer-to-Peer programming a hard topic to obtain good research for?

After reading a bit more about how Gnutella and other P2P networks function, I wanted to start my own peer-to-peer system. I went in thinking that I would find plenty of tutorials and language-agnostic guidelines which could be applied, however I was met with a vague simplistic overview.
I could only find very small, precise P2P code which didn't do much more than use client/server architecture on all users, which wasn't really what I was looking for. I wanted something like Gnutella, but there doesn't seem to be any articles out in the open for joining the network.
RFC 4981, with its huge bibliography, could be a very good starting point.
I had to write a basic Gnutella client in C# using Web Services and I think the class notes on the P2P stuff are still available here and here.
You might have better success researching Bittorrent, I believe that the creator has written some papers, and it seems others are as well.
BitTyrant
Bittorent.org, see the developers section
I don't know what platform you are trying to use, but here is a decent article on the subject for .NET.
I've found the TheoryOrg Unofficial BitTorrent Specification to be the best online source for Bittorrent information. Also, the Monotorrent code is fairly simple and easy to understand. There's also a project called "GCT" which implements JGroups style P2P for LAN/Multicast environments, and its code is similarly easy to understand (if a bit buggy).
You can try to read Gnutella2 and try to implement messaging. For reading conceptual material you can read Distributed Systems by Andrew Tannenbaum.
You can have a look at JXTA. It's intention was to be a generic, platform agnostic p2p framework, in contrast to other p2p implementations which are usually for a very specific purpose (such as Gnutella).
Don't be fooled by it's Java appearance, there are binding available for C/C++/C#, but the core protocols are implemented in XML which should translate to any language.
You can also download a free book here.

Resources