카카오 서비스 장애

2022년 10/15 20시
서비스 이원화가 동작하지 않은 일도 의아한 상황이지만, 앱은 안드로이드 네트워크 탓을 하는구나. 카카오의 민낯을 이리 볼줄이야, ...
 
10/16 06시 
일개 IDC의 단순화재인데 카카오의 티스토리 블로그 서비스(http://blogzin.net)도 아웃된 상태인데, 도대체 어찌 이러한 시스템 설계가 이루어질 수 있을까? 참으로 궁금한 일이다.

'Software' 카테고리의 다른 글

Listing of free VoIP softphone applications  (0) 2007.07.12
개발자는 무슨 일을 할까?  (0) 2007.07.03
TextCube 1.5를 설치하니...  (0) 2007.07.02
The Pattern of ACE  (0) 2007.02.12
Summary of Project Management Application  (0) 2007.02.06

Posted by BlogZin

Response
,

Listing of free VoIP softphone applications

아래 목록은 VoIP 사업자를 사용자가 선택하여 사용할 수 있는 소프트폰입니다. 대부분 SIP를 구현한 것이고, SJPhone은 SIP/H.323/Jabber가 구현된 것입니다. Ekiga는 GPL 라이센스인데, H.323/SIP이 구현되어 있습니다. 기능적으로 보면 왠만한 사업자가 제공하는 것보다 훌륭하군요. 우측은 에키가이고, 좌측은 SJPhone입니다.

사용자 삽입 이미지 사용자 삽입 이미지


Free choice of provider


X-Lite 3.0
Free Client, Good features counterpath.com
Eyebeam X-Lite Pro -with video feature - not free counterpath.com
Global IP Free Client, Many features PC Phone
SJPhone Beta test version -free SJLabs.com
SIPPS Encypted, Instant messaging NERO.com
SNOM 360 Emulation of the Snom 360 Hardware for WIN SNOM
MyJabber With Jabber messaging service MyJabber.net
SipEyePhone Easy to configure, very reliable eyepmedia
Firefly Softphone Messaging Firefly with low bandwidth requirements firefly

Twinkle Softphone

SIP Softphone for Linux Twinkle Softphone
Openzoep VoIP and IM engine based on SIP Openzoep
PhonerLite Free SIP Softphone, easy to use PhonerLite
Express talk Supports 4 lines,call transfer, Address book Express Talk

From : http://www.myvoipprovider.com/Free_VoIP_Software/Free_VoIP_Soft_Phones/

'Software' 카테고리의 다른 글

카카오 서비스 장애  (0) 2022.10.21
개발자는 무슨 일을 할까?  (0) 2007.07.03
TextCube 1.5를 설치하니...  (0) 2007.07.02
The Pattern of ACE  (0) 2007.02.12
Summary of Project Management Application  (0) 2007.02.06

Posted by BlogZin

Response
,

개발자는 무슨 일을 할까?

(주)마이구스에서 10여명의 소프트웨어 개발자를 구하고 있습니다. VoIP 서비스를 위한 웹포털 시스템을 구축하는 것이 향후 1년간 주로 해야 할 일입니다.

먼저 영역별로 해야 할 일들을 정리하면 아래와 같군요.

1. Unix C++ Developer - H.323/SIP 서버, TrunkGateway, 미디어 서버
2. Windows C++ Developer - H.323/SIP 클라이언트, Jabber(XMPP) 클라이언트
3. Java Developer - SSO 서버, Jabber 서버, SOAP/REST 서버, Service Enabler, Billing
4. Web Developer - EndUser Portal, SP Portal

일반적인 개발자로서의 스킬에 더해 아래의 기반 기술들을 배워가야 합니다.
1. VoIP 표준 - H.323, SIP, JAIN, Parlay
2. Presence - Jabber(XMPP)
3. Media 처리 - G.723, G.729, H.263, H.264

다음은 당사에서 사용하는 프레임웍에 관한 내용입니다.
1. Web Framework - Velocity, iBatis, JSTL, Spring
2. Messaging Framework - MOM, ESB

자세한 구인정보는 (주)마이구스에서 함께 일할 인재를 모십니다.를 참고하시고, 재미난 일들을 열정적으로 해 보시고 싶은 분들을 많이 뵙기를 기대합니다.

'Software' 카테고리의 다른 글

카카오 서비스 장애  (0) 2022.10.21
Listing of free VoIP softphone applications  (0) 2007.07.12
TextCube 1.5를 설치하니...  (0) 2007.07.02
The Pattern of ACE  (0) 2007.02.12
Summary of Project Management Application  (0) 2007.02.06

Posted by BlogZin

Response
,

TextCube 1.5를 설치하니...

새로 만들고 있는 회사(http://mygoose.net)의 홈페이지 제작 도구로 태터를 사용하려고 하다가, Textcube 1.5 beta 1 발표글을 보고 팀블로그 기능 때문에 업그레이드를 했습니다. [큐브] 텍스트큐브 1.5B1 레포트 및, 텍스트큐브 1.5 베타 설치 글과 같은 느낌을 가집니다.

태터에서 플러그인으로 가능했던 팀블로그 기능이 바람직한 모습으로 잘 구현되어 있어 다행입니다. '사용자와 팀블로그가 논리적으로 분리되어 한 가입자가 동일한 계정으로 다수의 블로그에 팀원으로 들어갈 수가 있다'는 것이 태터와의 결정적인 차이점이군요.

태터의 데이터는 Export/Import를 이용해서 아무 문제없이 복구가 되더군요. 그런데 OpenID 플러그인이 동작하지 않는 것으로 보입니다. 아래 화면이 기본적으로 설치되는 플러그인인데, OpenID를 활성화 시키면 블로그 페이지 자체가 먹통이 되어 열리지 않습니다.
Image Hosted by ImageShack.us

그리고, 이 글을 쓰다가 보니 에디터의 '미리보기' 기능도 동작하지 않는군요. 더 테스트 해 봐야겠습니다.

'Software' 카테고리의 다른 글

Listing of free VoIP softphone applications  (0) 2007.07.12
개발자는 무슨 일을 할까?  (0) 2007.07.03
The Pattern of ACE  (0) 2007.02.12
Summary of Project Management Application  (0) 2007.02.06
NMS 제품들  (0) 2007.01.04

Posted by BlogZin

Response
,

The Pattern of ACE

Pattern Benefits
  • Preserve crucial design information used by applications & middleware frameworks & components
  • Facilitate reuse of proven software designs & architectures
  • Guide design choices for application developers
사용자 삽입 이미지
출처 : Powerpoint tutorial for C++ Network Programming: Mastering Complexity with ACE and Patterns.

~~~

'Software' 카테고리의 다른 글

개발자는 무슨 일을 할까?  (0) 2007.07.03
TextCube 1.5를 설치하니...  (0) 2007.07.02
Summary of Project Management Application  (0) 2007.02.06
NMS 제품들  (0) 2007.01.04
Unix Error 코드 설명  (0) 2006.11.24

Posted by BlogZin

Response
,

Summary of Project Management Application

dotProject, NetOffice 등 소프트웨어 개발 조직에서 사용할 만한 프로젝트 관리도구들을 비교한 자료이다.

문서원본 : http://blog.kakaka.org/images/2006/01/20050317-Survey.pdf

~~~

'Software' 카테고리의 다른 글

TextCube 1.5를 설치하니...  (0) 2007.07.02
The Pattern of ACE  (0) 2007.02.12
NMS 제품들  (0) 2007.01.04
Unix Error 코드 설명  (0) 2006.11.24
MVC architecture in a J2EE application  (0) 2006.09.26

Posted by BlogZin

Response
,

NMS 제품들

누리텔레콤 : 나스센터는 이기종의 복잡한 네트워크 장비, 서버, 데스크톱 PC 등 IT 자원의 장애,구성,성능,보안,통계관리 기능을 제공하고 중앙에서 실시간으로 감시, 제어하여 IT통합관리를 제공하는 도구이다.


브레인즈스퀘어 : Zenius-EMS는 이기종, 분산 시스템 환경을 이루고 있는 서버, 네트워크, DB, WAS, IP, 전산 환경설비 등을 일관된 관리정책에 따라 통합적으로 운영/관리하기 위한 Total Management System 이다.


예지텍 - PANORAMA-V > e-NetManager
OpenView 기반으로 보이는데, 네트웍 관리의 4대 필수 구성관리, 장애관리, 성능관리, 자원관리를 지원한다.



다임즈 : IP Network Management


IP 망을 구성하는 개별 통신 장비 (라우터, 스위치, 허브 등)에 대한 장애, 성능, 구성 관리 및 제어 기능을 제공하여 망 운용 효율을 높일 수 있으며, IP 망 차원의 장애, 성능 분석 기능과 다양한 보고서 작성 기능을 제공하여 망 운용과 계획에 유용한 각종의 정보를 생성 할 수 있는 기능을 제공한다.





서비스 서버 호스트, 개인 업무용 PC, 네트워크 프린터, 허브 등은 서비스 제공 업체 및 일반 기업에서 업무 자동화를 위해 사용하는 전산 자원이다. 이들 전산 자원은 일반적으로 IP 망 기반의 LAN 으로 연결되어 있고, SNMP를 이용한 관리 기능을 제공한다. 'IP 전산 자원 관리 시스템'은 SNMP 와 ICMP 등과 같은 관리 프로토콜을 이용하여 각 전산 자원의 자원 사용 현황 및 현재 성능을 관리하는 기능을 제공한다. 전산 자원의 현재 상태, 자원 사용량, 구성 등에 대한 관리 기능과 비정상적인 자원 사용에 대한 통보 및 이력 관리, 보고서 생성 기능을 제공한다.





IP 망을 구성하는 가장 중요한 통신 장비 중의 하나인 라우터를 경유하는 트래픽에 대한 다양한 정보를 수집하여 트래픽의 특성을 분석하여, 그 결과를 기반으로 망의 구성 변경, 망의 확장, 이상 현상 파악 등의 기능을 수행 할 수 있다. 분석 가능한 트래픽 특성은 '이용자별', '가입기관별', '시간대별', '프로토콜별', '응용 프로그램별' 등이 있다. CISCO 와 JUNIPER 라우터는 Netflow 기능을 이용하여 자신을 경유하는 트래픽에 대한 정보를 제공하고 있다.

㈜시스코프 : ISeeNet는

IseeNet은 네트워크의 성능, 장애, 자산을 관리하는 웹 기반의 NMS로서 장애 사전 경보 및 네트워크 운영 현황에 대한 실시간 리포트를 제공한다. 서버단 및 WAN 상의 터미널까지 포함한 QOS 관리가 가능해 보인다. SYSLOAD
는 에이젼트 기반 소프트웨어로 OS, Database, Application의 성능 관리 도구이다.
The image “http://www.ciscorp.co.kr/images/ISEE(1).jpg” cannot be displayed, because it contains errors.


어니언소프트웨어 : Midnight Keeper
기업·기관의 시스템 및 네트워크를 효과적으로 관리하기 위한 솔루션으로 시스템관리소프트웨어(SMS)와네트워크관리소프트웨어(NMS)의 기본기능인 성능·장애관리는 물론 휴대폰·개인휴대단말기(PDA) 등 무선기기를 이용한 원격관리 및제어가 가능한 제품이다.

솔고지닷컴 : AndanTe
서버, 각종 통신시설장비, 네트웍에 대한 실시간 통합 관리용 시스템 소프트웨어로서 운용시설에 대한 성능 모니터링, 장애처리 그리고 이러한 시설의 운용보전자료를 자동으로 생성 이를 웹 상에서 관리하는 통합 자원관리 솔루션


씨에프정보통신 : iConsole은 분산 운영 환경에서 시스템, 네트웍,데이터베이스 등 mission-critical한 관리 자원에 대한 통합 모니터링 View와 Control을 제공한다.
/

분산된 다수의 시스템, 네트웍, 데이터베이스를 중앙에서 통합하여 모니터링 할 수 있으며 관리되는 시스템과 자원들을 계층적인 구조로 표현함으로써 관리의 복잡성을 최소화하여 업무의 효율성을 극대화합니다.

/

관리 항목의 상태 변화, 성능 과부하 발생, 장애 발생 등의 상황을 실시간으로 모니터링하며 그래프로 표현함으로써 시스템의 운영 상태를 용이하게 파악합니다.


/

관리 항목의 상태가 경고 상태로 변하면 계층적인 관리 구조를 따라 경고 상태를 상위 자원으로 전이시키며 자원을 나타내는 아이콘의 색상을 변경 시킴으로써 경고 상태를 신속하게 파악합니다.

/

관리자가 관심을 갖고 관리하는 항목들만으로 운영 화면을 구성하거나 또는 여러 운영 환경마다 최적화된 운영 화면을 구성 해서 저장한 후 필요시 로드하면 자동으로 재구성하여 관리 환경을 다양화합니다.

/

히스토리 데이터를 RDBMS에 저장하고 관리함으로써 관리 자원의 상태가 변하는 추이를 분석하거나 장애가 발생한 시점의 상황을 히스토리 데이터를 근간으로 분석할 수 있으며 필요한 운영 통계 보고서를 생성합니다.

네비스텍 : ISeeEMS는 기업의 다양한 IT 자원을 자동으로 관리하기 위한 NMS, SMS, TMS의 통합관리 시스템을 의미 하며 분산환경의 시스템을 전사적인 차원에서 일관된 정책에 따라 통합적으로 운영 / 관리 함으로서 시스템 관리 업무의 효율화를 통하여 업무의 영속성 ( Business Continuity ) 확보와 시스템의 총 소유비용 절감을 극대화 시킬 목적으로 제공되는 네비스텍㈜의 통합 솔루션이다.
한국이디에스 : i-Solutions는 다양한 종류의 인터넷 서비스를 효율적으로 관리하기 위해 이를 구성하는 네트워크 장비, 서비스 제공 호스트 장비, 응용 프로그램 등 서비스에 필요한 모든 구성 요소를 통합 관리할 수 있는 최적의 통합 전산/망 자원 및 서비스 운용 관리 솔루션이다.

출처 : 구글 검색으로 다양하게 찾음.

'Software' 카테고리의 다른 글

The Pattern of ACE  (0) 2007.02.12
Summary of Project Management Application  (0) 2007.02.06
Unix Error 코드 설명  (0) 2006.11.24
MVC architecture in a J2EE application  (0) 2006.09.26
ACE - Object Oriented(OO) Framework  (0) 2006.09.14

Posted by BlogZin

Response
,

Unix Error 코드 설명

#define EPERM 1 /* Not super-user */
#define ENOENT 2 /* No such file or directory */
#define ESRCH 3 /* No such process */
#define EINTR 4 /* interrupted system call */
#define EIO 5 /* I/O error */
#define ENXIO 6 /* No such device or address */
#define E2BIG 7 /* Arg list too long */
#define ENOEXEC 8 /* Exec format error */
#define EBADF 9 /* Bad file number */
#define ECHILD 10 /* No children */
#define EAGAIN 11 /* Resource temporarily unavailable */
#define ENOMEM 12 /* Not enough core */
#define EACCES 13 /* Permission denied */
#define EFAULT 14 /* Bad address */
#define ENOTBLK 15 /* Block device required */
#define EBUSY 16 /* Mount device busy */
#define EEXIST 17 /* File exists */
#define EXDEV 18 /* Cross-device link */
#define ENODEV 19 /* No such device */
#define ENOTDIR 20 /* Not a directory */
#define EISDIR 21 /* Is a directory */
#define EINVAL 22 /* Invalid argument */
#define ENFILE 23 /* File table overflow */
#define EMFILE 24 /* Too many open files */
#define ENOTTY 25 /* Inappropriate ioctl for device */
#define ETXTBSY 26 /* Text file busy */
#define EFBIG 27 /* File too large */
#define ENOSPC 28 /* No space left on device */
#define ESPIPE 29 /* Illegal seek */
#define EROFS 30 /* Read only file system */
#define EMLINK 31 /* Too many links */
#define EPIPE 32 /* Broken pipe */
#define EDOM 33 /* Math arg out of domain of func */
#define ERANGE 34 /* Math result not representable */
#define ENOMSG 35 /* No message of desired type */
#define EIDRM 36 /* Identifier removed */
#define ECHRNG 37 /* Channel number out of range */
#define EL2NSYNC 38 /* Level 2 not synchronized */
#define EL3HLT 39 /* Level 3 halted */
#define EL3RST 40 /* Level 3 reset */
#define ELNRNG 41 /* Link number out of range */
#define EUNATCH 42 /* Protocol driver not attached */
#define ENOCSI 43 /* No CSI structure available */
#define EL2HLT 44 /* Level 2 halted */
#define EDEADLK 45 /* Deadlock condition. */
#define ENOLCK 46 /* No record locks available. */
#define ECANCELED 47 /* Operation canceled */
#define ENOTSUP 48 /* Operation not supported */

/* Filesystem Quotas */
#define EDQUOT 49 /* Disc quota exceeded */

/* Convergent Error Returns */
#define EBADE 50 /* invalid exchange */
#define EBADR 51 /* invalid request descriptor */
#define EXFULL 52 /* exchange full */
#define ENOANO 53 /* no anode */
#define EBADRQC 54 /* invalid request code */
#define EBADSLT 55 /* invalid slot */
#define EDEADLOCK 56 /* file locking deadlock error */

#define EBFONT 57 /* bad font file fmt */

/* Interprocess Robust Locks */
#define EOWNERDEAD 58 /* process died with the lock */
#define ENOTRECOVERABLE 59 /* lock is not recoverable */

/* stream problems */
#define ENOSTR 60 /* Device not a stream */
#define ENODATA 61 /* no data (for no delay io) */
#define ETIME 62 /* timer expired */
#define ENOSR 63 /* out of streams resources */

#define ENONET 64 /* Machine is not on the network */
#define ENOPKG 65 /* Package not installed */
#define EREMOTE 66 /* The object is remote */
#define ENOLINK 67 /* the link has been severed */
#define EADV 68 /* advertise error */
#define ESRMNT 69 /* srmount error */

#define ECOMM 70 /* Communication error on send */
#define EPROTO 71 /* Protocol error */

/* Interprocess Robust Locks */
#define ELOCKUNMAPPED 72 /* locked lock was unmapped */

#define EMULTIHOP 74 /* multihop attempted */
#define EBADMSG 77 /* trying to read unreadable message */
#define ENAMETOOLONG 78 /* path name is too long */
#define EOVERFLOW 79 /* value too large to be stored in data type */
#define ENOTUNIQ 80 /* given log. name not unique */
#define EBADFD 81 /* f.d. invalid for this operation */
#define EREMCHG 82 /* Remote address changed */

/* shared library problems */
#define ELIBACC 83 /* Can't access a needed shared lib. */
#define ELIBBAD 84 /* Accessing a corrupted shared lib. */
#define ELIBSCN 85 /* .lib section in a.out corrupted. */
#define ELIBMAX 86 /* Attempting to link in too many libs. */
#define ELIBEXEC 87 /* Attempting to exec a shared library. */
#define EILSEQ 88 /* Illegal byte sequence. */
#define ENOSYS 89 /* Unsupported file system operation */
#define ELOOP 90 /* Symbolic link loop */
#define ERESTART 91 /* Restartable system call */
#define ESTRPIPE 92 /* if pipe/FIFO, don't sleep in stream head */
#define ENOTEMPTY 93 /* directory not empty */
#define EUSERS 94 /* Too many users (for UFS) */

/* BSD Networking Software */
/* argument errors */
#define ENOTSOCK 95 /* Socket operation on non-socket */
#define EDESTADDRREQ 96 /* Destination address required */
#define EMSGSIZE 97 /* Message too long */
#define EPROTOTYPE 98 /* Protocol wrong type for socket */
#define ENOPROTOOPT 99 /* Protocol not available */
#define EPROTONOSUPPORT 120 /* Protocol not supported */
#define ESOCKTNOSUPPORT 121 /* Socket type not supported */
#define EOPNOTSUPP 122 /* Operation not supported on socket */
#define EPFNOSUPPORT 123 /* Protocol family not supported */
#define EAFNOSUPPORT 124 /* Address family not supported by */
/* protocol family */
#define EADDRINUSE 125 /* Address already in use */
#define EADDRNOTAVAIL 126 /* Can't assign requested address */
/* operational errors */
#define ENETDOWN 127 /* Network is down */
#define ENETUNREACH 128 /* Network is unreachable */
#define ENETRESET 129 /* Network dropped connection because */
/* of reset */
#define ECONNABORTED 130 /* Software caused connection abort */
#define ECONNRESET 131 /* Connection reset by peer */
#define ENOBUFS 132 /* No buffer space available */
#define EISCONN 133 /* Socket is already connected */
#define ENOTCONN 134 /* Socket is not connected */
/* XENIX has 135 - 142 */
#define ESHUTDOWN 143 /* Can't send after socket shutdown */
#define ETOOMANYREFS 144 /* Too many references: can't splice */
#define ETIMEDOUT 145 /* Connection timed out */
#define ECONNREFUSED 146 /* Connection refused */
#define EHOSTDOWN 147 /* Host is down */
#define EHOSTUNREACH 148 /* No route to host */
#define EWOULDBLOCK EAGAIN
#define EALREADY 149 /* operation already in progress */
#define EINPROGRESS 150 /* operation now in progress */

/* SUN Network File System */
#define ESTALE 151 /* Stale NFS file handle */

'Software' 카테고리의 다른 글

Summary of Project Management Application  (0) 2007.02.06
NMS 제품들  (0) 2007.01.04
MVC architecture in a J2EE application  (0) 2006.09.26
ACE - Object Oriented(OO) Framework  (0) 2006.09.14
CodeHighright에 Java 코드를 넣어보니..  (1) 2006.08.31

Posted by BlogZin

Response
,

MVC architecture in a J2EE application

You need a solution that lets you develop loosely-coupled applications. The Model-View-Controller (MVC) architecture is the suggested solution. MVC has been used very effectively in GUI-type applications. By applying the MVC architecture to a J2EE application, you can separate the data access logic from the data presentation logic. You can also build a flexible and easily extensible controller that controls the whole flow of the application. The figure below depicts the MVC architecture.

MVC Architecture

The MVC architecture can be mapped to multi-tiered enterprise J2EE applications as follows:

  • All enterprise data and the business logic to process the data can be represented in the MODEL.
  • The VIEW can access the data through the model and decide on how to present them to the client. The VIEW must ensure that the presentation changes as and when the MODEL changes.
  • The CONTROLLER can interact with the view and convert the client actions into actions that are understood and performed by the MODEL. The CONTROLLER also decides on the next view to be presented depending on the last client action and results of the corresponding MODEL action(s).

from Design Patterns for Building Flexible and Maintainable J2EE Applications

'Software' 카테고리의 다른 글

NMS 제품들  (0) 2007.01.04
Unix Error 코드 설명  (0) 2006.11.24
ACE - Object Oriented(OO) Framework  (0) 2006.09.14
CodeHighright에 Java 코드를 넣어보니..  (1) 2006.08.31
CVS/Subversion Resources  (1) 2006.08.31

Posted by BlogZin

Response
,

ACE - Object Oriented(OO) Framework

오랜만에 ACE를 보니 이전에는 좀 기능이 많은 C++ Class Library였는데, 이제는 분산시스템을 위한  Framework으로 이용할 만큼 많이 발전했네요. Who is Using ACE을 보니 제가 관심두는 영역인 통신 영역에서도 벌써 많은 레퍼런스가 있군요.

The Structure and Functionality of ACE

The following diagram illustrates the key components in ACE and their hierarchical relationships:

Frameworks

ACE also contains a higher-level network programming framework that integrates and enhances the lower-level C++ wrapper facades. This framework supports the dynamic configuration of concurrent distributed services into applications. The framework portion of ACE contains the following components:

  • Event demultiplexing components -- The ACE Reactor and Proactor are extensible, object-oriented demultiplexers that dispatch application-specific handlers in response to various types of I/O-based, timer-based, signal-based, and synchronization-based events.
  • Service initialization components -- The ACE Acceptor and Connector components decouple the active and passive initialization roles, respectively, from application-specific tasks that communication services perform once initialization is complete.
  • Service configuration components -- The ACE Service Configurator supports the configuration of applications whose services may be assembled dynamically at installation-time and/or run-time.
  • Hierarchically-layered stream components -- The ACE Streams components simplify the development of communication software applications, such as user-level protocol stacks, that are composed of hierarchically-layered services.
  • ORB adapter components -- ACE can be integrated seamlessly with single-threaded and multi-threaded CORBA implementations via its ORB adapters.
The ACE framework components facilitate the development of communication software that can be updated and extended without the need to modify, recompile, relink, or often restart running applications. This flexibility is achieved in ACE by combining (1) C++ language features, such as templates, inheritance, and dynamic binding, (2) design patterns, such as Abstract Factory, Strategy, and Service Configurator, and (3) OS mechanisms, such as explicit dynamic linking and multi-threading.


Distributed Services and Components

In addition to its OS adaptation layer, C++ wrapper facades, and framework components, ACE provides a standard library of distributed services that are packaged as self-contained components. Although these service components are not strictly part of the ACE framework library, these service components play two roles in ACE:

  1. Factoring out reusable distributed application building blocks -- These service components provide reusable implementations of common distributed application tasks such as naming, event routing, logging, time synchronization, and network locking.
  2. Demonstrating common use-cases of ACE components -- The distributed services also demonstrate how ACE components like Reactors, Service Configurators, Acceptors and Connectors, Active Objects, and IPC wrappers can be used effectively to develop flexible, efficient, and reliable communication software.

Higher-level Distributed Computing Middleware Components

Developing robust, extensible, and efficient communication applications is challenging, even when using a communication framework like ACE. In particular, developers must still master a number of complex OS and communication concepts such as:

  • Network addressing and service identification.
  • Presentation conversions, such as encryption, compression, and network byte-ordering conversions between heterogeneous end-systems with alternative processor byte-orderings.
  • Process and thread creation and synchronization.
  • System call and library routine interfaces to local and remote interprocess communication (IPC) mechanisms.
It is possible to alleviate some of the complexity of developing communication applications by employing higher-level distributed computing middleware, such as CORBA, DCOM, or Java RMI. Higher-level distributed computing middleware resides between clients and servers and automates many tedious and error-prone aspects of distributed application development, including:

  • Authentication, authorization, and data security.
  • Service location and binding.
  • Service registration and activation.
  • Demultiplexing and dispatching in response to events.
  • Implementing message framing atop bytestream-oriented communication protocols like TCP.
  • Presentation conversion issues involving network byte-ordering and parameter marshaling.
To provide developers of communication software with these features, the following higher-level middleware applications are bundled with the ACE release:

  1. The ACE ORB (TAO) -- TAO is a real-time implementation of CORBA built using the framework components and patterns provided by ACE. TAO contains the network interface, OS, communication protocol, and CORBA middleware components and features. TAO is based on the standard OMG CORBA reference model, with the enhancements designed to overcome the shortcomings of conventional ORBs for high-performance and real-time applications. TAO, like ACE, is freely available, open source software.
  2. JAWS -- JAWS is a high-performance, adaptive Web server built using the framework components and patterns provided by ACE. JAWS is structured as a framework of frameworks. The overall JAWS framework contains the following components and frameworks: an Event Dispatcher, Concurrency Strategy, I/O Strategy, Protocol Pipeline, Protocol Handlers, and Cached Virtual Filesystem. Each framework is structured as a set of collaborating objects implemented by combining and extending components in ACE. JAW is also freely available, open-source software.

'Software' 카테고리의 다른 글

Unix Error 코드 설명  (0) 2006.11.24
MVC architecture in a J2EE application  (0) 2006.09.26
CodeHighright에 Java 코드를 넣어보니..  (1) 2006.08.31
CVS/Subversion Resources  (1) 2006.08.31
MOM - xmlBlaster  (0) 2006.08.30

Posted by BlogZin

Response
,