[VoiceOps] Any subscribers from the UK?
Alex Balashov
abalashov at evaristesys.com
Wed Aug 5 04:50:10 EDT 2009
Peter Beckman wrote:
> I really think it has to do with the existing code-base and the existing
> developers. Each company is beholden to the geeks that build, maintain
> and manage the mess of code that exists. Those geeks either get to choose
> what technologies are used, or do not have the resources to rewrite
> working code and are forced to maintain the code already written, maybe
> adding things on in different more familiar languages along the way, until
> you're in a giant pile of spaghetti code in 9 languages, all tangled
> loosely but functionally together by a very thin thread.
As far as I see, large, well-capitalised companies selling into the
enterprise market generally have the resources to recruit, hire and
integrate developers in whatever platform and/or software development
ecosystem they please. If they want to switch, they can switch. If
they want to rewrite or refactor large chunks of it, they can do that,
although certainly not with any kind of speed, and that can lead to very
valuable lost time to market.
Still, I think the real criteria there have to do with, in addition to
leveraging existing code and/or licensed core technologies (such as
commercial SIP stacks, for example) - as you say - also with issues that
are fundamentally cultural and somewhat religious in nature. The belief
systems and experiential biases of CTOs and senior directors of this and
that certainly play a major role.
> What do Metaswitch or Broadsoft use? C? Perl? Are they using Asterisk
> or did they build their own telecom server stack? How do you know they
> are NOT using PHP internally or even externally? Disabling the web
> management server's tag (not returning "Apache/1.2.47 PHP/5.2.5" on
> requests, even though that is exactly what it is running) is trivial and a
> good security choice, assuming these devices are configured via a
> web-based interface.
For all my talking smack about PHP, I don't actually have a detailed
knowledge of what those two platforms use, although I know for a fact
they don't use PHP.
Given the strangehold that Java has on big telecom, I would imagine it
plays a dominant role. As Peter Childs mentioned, BroadWorks seems to
revolve primarily around Java, which also makes sense in many ways given
the vertical integration possibilities it offers. For example, a core
management layer in Java can contain an embedded application server
serving JSP that directly accesses runtime data from the former process,
saving the need to implement costly and complicated APIs and/or
middleware for those two components to communicate. BroadWorks
certainly appears to work on that principle.
On the other hand, I cannot imagine that every component of the system
is written in Java; for instance, I have a hard time believing that the
high-capacity media relay and media generation portions of the Broadsoft
assembly are done in Java. That wouldn't make any sense. Most likely,
those are done in C.
I would hypothesise something similar about Metaswitch, although their
stuff doesn't scream Java nearly so obviously apart from the switch EMS
client itself. Doing management front-end GUIs that provision the and
monitor the switch via SNMP in Java seems to be fairly standard fare for
almost everyone.
Also, most SIP stacks and signaling agents for other IP signaling
protocols (H.323, H.248/MEGACO, MGCP, etc.) are written in C or C++, if
for no other reason than performance, along with access to low-level
system calls used to trigger various kernel-side APIs and subsystems[1].
And, of course, any sort of TDM hardware interfaces such as would be
necessary on media gateway hardware (this is relevant to Metaswitch
rather than Broadsoft) would of almost certain necessity have to be done
in C or C++ - I just don't see the device driver access being plumbed up
to the level of abstraction in which the JVM operates, with the VM and
the sandbox and the security model aspects in mind alongside the more
obvious restrictions and performance implications.
I do not know if there's anything ASIC-assisted in the Metaswitch aside
from the TDM ports, but if so that would almost certainly call for C or
C++ as well.
So, if I had to take a stab at it, it sounds like some combination of
C/C++ on the low level, Java on the general level, and perhaps
miscellaneous Perl throughout.
-- Alex
[1] Although, it is an interesting case in point that one of the most
popular open-source media relays, AG Projects' MediaProxy 2.0, is
written in Python but uses kernel APIs plumbed through C to Python that
reach into the Linux kernel's IP forwarding subsystem to provide faster
RTP relay than would be possible in pure userspace, let alone in an
interpreted language like Python. That's about as close to relay at
wire speed as you're going to get.
--
Alex Balashov
Evariste Systems
Web : http://www.evaristesys.com/
Tel : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (678) 237-1775
More information about the VoiceOps
mailing list