'API'에 해당되는 글 8건

  1. 2014.02.04 Web Socket API
  2. 2013.09.30 ClamAV 0.98 has been released!
  3. 2010.12.07 SKT, 서비스 플랫폼 사업 본격화…지도·문자 API 공개
2014. 2. 4. 19:13

Web Socket API

Web Socket API

The Web Socket protocol enables web applications to maintain bidirectional communications with server-side processes. The typhoonae.websocket package provides a Web Socket Service API for GAE applications. It was introduced by the TyphoonAE 0.1.2 release anddoes not run on the productive Google App Engine platform.

However, in order to enable the Web Socket API for the Google App Engine SDK, go through the following guide.

Patching the Google App Engine SDK (Python) to enable TyphoonAE's Web Socket API

To get an idea how Web Sockets could work with GAE download the SDK 1.5.0 patch from this location. It also includes a demo app and some basic instructions.

Web Borwsers Supporting Web Sockets

Overview

Since Bret Taylor came up with a neat implementation of a Web Socket handler for the Tornado web server, it's no longer a hassle to get an experimental Web Socket service up and running. A client can establish a Web Socket connection to the service which solely utilizes web hooks to dispatch messages to and from an application.


A client requests (1) a web page containing the Java Script call to establish a Web Socket connection (2) to a URL provided by the application. The application and Web Socket service communicate over web hooks (3, 4).

Sending and Receiving Web Socket Messages

We distinguish between two types of incoming Web Socket messages. A handshake message is received once per Web Socket session when the client establishes the connection. This type of message can be handled seperately by a request handler. All other incoming messages can be handled by another request handler. The API we use in our handshake handler as well as in the handler for all other incoming Web Socket messages doesn't differ. However, in many cases it is very useful to handle Web Socket handshake messages seperately from normalmessages.

In order to handle incoming Web Socket requests, add this script handler to the handlers section of the app.yaml file.

  - url: /_ah/websocket/.*
    script
: script.py
    login
: admin

Define the correct URL mapping for your WSGI application:

  app = google.appengine.ext.webapp.WSGIApplication([
   
('/_ah/websocket/handshake/(.*)', HandshakeHandler),
   
('/_ah/websocket/message/(.*)', MessageHandler),
 
], debug=True)

Our Web Socket API provides a convenience function to obtain the appropriate service URL. It has one argument for additional URI information:

  websocket_url = typhoonae.websocket.create_websocket_url('/foo/bar')

The following request handler receives and sends messages from and to a Web Socket. The POST method is used to receive an incoming message where the first non-self argument contains the additional URI information from above:

  class MessageHandler(google.appengine.ext.webapp.RequestHandler):
   
"""Handles Web Socket requests."""

   
def post(self, path):
      message
= typhoonae.websocket.Message(self.request.POST)
      typhoonae
.websocket.send_message(
       
[message.socket], 'Received: "%s"' % message.body)

message object has the two attributes socket and body. The former is a string containing the socket id. The latter contains our message body as a unicode string.

The client, usually a Web Socket capable browser, establishes a Web Socket by using Java Script:

  ws = new WebSocket("ws://example.com");

Broadcast Messages

TyphoonAE adds another very useful function which enables an app to broadcast messages to all currently open Web Sockets of an app. Without this convenient method a developer has to implement a solution to remember all open Web Sockets. By using broadcast_message the Web Socket service takes care of it.

  class MessageHandler(google.appengine.ext.webapp.RequestHandler):
   
"""Handles Web Socket requests."""

   
def post(self, path):
      message
= typhoonae.websocket.Message(self.request.POST)
      typhoonae
.websocket.broadcast_message(message.body)

Handling Closed Sockets

Applications sometimes should be informed when a socket is closed. Therefore, an app can implement a third request handler for the following URL pattern:

    '/_ah/websocket/closed/(.*)'

The success path can be utilized for keeping track of additional informations such as encoded user IDs.

  class SocketClosedHandler(google.appengine.ext.webapp.RequestHandler):
   
"""Handler for socket closed events."""

   
def post(self, path):
      user
= decode_user_from_path(path)
      typhoonae
.websocket.broadcast_message('%s has left the building' % user)

See http://dev.w3.org/html5/websockets/ for further information on Web Sockets.




출처 : code.google.com


Trackback 0 Comment 0
2013. 9. 30. 19:57

ClamAV 0.98 has been released!



ClamAV 0.98 includes many new features, across many different components
of ClamAV. There are new scanning options, extensions to the libclamav API,
support for additional filetypes, and internal upgrades.

- Signature improvements: New signature targets have been added for
PDF files, Flash files and Java class files. (NOTE: Java archive files
(JAR) are not part of the Java target.) Hash signatures can now specify
a '*' (wildcard) size if the size is unknown. Using wildcard size
requires setting the minimum engine FLEVEL to avoid backwards
compatibility issues. For more details read the ClamAV Signatures
guide.
- Scanning enhancements: New filetypes can be unpacked and scanned,
including ISO9660, Flash, and self-extracting 7z files. PDF
handling is now more robust and better handles encrypted PDF files. 
- Authenticode: ClamAV is now aware of the certificate chains when
scanning signed PE files. When the database contains signatures for
trusted root certificate authorities, the engine can whitelist
PE files with a valid signature. The same database file can also
include known compromised certificates to be rejected! This
feature can also be disabled in clamd.conf (DisableCertCheck) or
the command-line (nocerts). 
- New options: Several new options for clamscan and clamd have been
added. For example, ClamAV can be set to print infected files and
error files, and suppress printing OK results. This can be helpful
when scanning large numbers of files. This new option is "-o" for
clamscan and "LogClean" for clamd. Check clamd.conf or the clamscan
help message for specific details. 
- New callbacks added to the API: The libclamav API has additional hooks
for developers to use when wrapping ClamAV scanning. These function
types are prefixed with "clcb_" and allow developers to add logic at
certain steps of the scanning process without directly modifying the
library. For more details refer to the clamav.h file. 
- More configurable limits: Several hardcoded values are now configurable
parameters, providing more options for tuning the engine to match your
needs. Check clamd.conf or the clamscan help message for specific
details. 
- Performance improvements: This release furthers the use of memory maps
during scanning and unpacking, continuing the conversion started in
prior releases. Complex math functions have been switched from
libtommath to tomsfastmath functions. The A/C matcher code has also
been optimized to provide a speed boost. 
- Support for on-access scanning using Clamuko/Dazuko has been replaced
with fanotify. Accordingly, clamd.conf settings related to on-access
scanning have had Clamuko removed from the name. Clamuko-specific
configuration items have been marked deprecated and should no longer
be used.


There are also fixes for other minor issues and code quality changes. Please
see the ChangeLog file for details.

--
The ClamAV team (http://www.clamav.net/team)


Trackback 0 Comment 0
2010. 12. 7. 18:47

SKT, 서비스 플랫폼 사업 본격화…지도·문자 API 공개

SK텔레콤(이하 SKT)이 각종 오픈 API를 모아 외부 개발자에게 공개하는 ‘T API 센터’를 3일 오픈했다고 밝혔다. 1차로 위치기반서비스(LBS – T맵, 위치측위) API와 SMS/MMS의 API(Application Programming Interface)가 ‘T API 센터’에 공개됐다.

이번에 SKT가 ‘T API 센터’를 오픈한 것은 지난 10월 발표한 ‘서비스 플랫폼 육성’ 전략에 따른 것이다. 당시 정만원 SKT 사장은 모든 핵심 서비스를 단계적으로 공개해 글로벌 서비스 플랫폼으로 발전시키겠다는 계획을 발표한 바 있다.


T API 센터 화면 캡쳐

‘T API 센터’는 SKT가 보유한 다양한 서비스를 API 형태로 웹 상에 공개해, 외부 개발자들이 이를 활용한 다양한 애플리케이션을 개발할 수 있도록 하는 개발자 지원 시스템이다. SKT의 LBS(T맵, 위치측위) API와 SMS/MMS의 API와 함께, 정부 및 공공기관에서 제공하는 API를 모아서 소개하고 있다.

SKT는 해당 API를 소개하고 이용방법에 대한 정보를 제공하는 것은 물론, 앱 개발에 필요한 SDK(소프트웨어 개발자 키트)와 API 개발에 적용될 인증키 발급 및 관리 등을 제공하고 개발에 유용한 다양한 포럼도 개최할 예정이다.

SKT는 T맵 API를 공개하면서 정확한 위치 측정 기술과 전국 교통정보를 반영한 빠른 길 안내를 장점으로 다양한 분야의 서비스로 확대해나가겠다는 뜻을 밝혔다. 빠르고 정확한 길 안내로 유명한 T맵 서비스의 경쟁력을 강화하면서, 보행자 영역으로 범위를 호가대해 T맵을 대표적인 LBS 플랫폼을 만들어나가겠다는 것이다.

현재 제공되는 API는 ▲GPS, 와이파이, Cell, P-Cell 등을 활용한 정확한 측위 기술과 ▲전국 맵 플랫폼 ▲T 맵 내비게이션과 연동되는 목적지 길 안내 등이다. 모든 T맵 기능에 대한 API 단순화 작업이 완료되는 내년 상반기에는 ▲각종 위치/장소에 대해 100만 개 이상의 정보가 축적된 POI(Point Of Interest) ▲실시간 교통정보가 반영된 가장 빠른 길 안내 ▲전국 6대 광역시 및 지방 국도 실시간 교통 정보 등까지 제공된다.

SKT는 향후 새로운 기능이 추가될 때마다, 해당 기술을 API로 만들어 개발자들에게 공개한다는 방침이다. LBS기술(T맵/위치확인)이 ▲기업솔루션(택배, 퀵서비스, 대리운전, 운송업체) ▲생활레저형(관광 정보, 방송, 골프, 등산) ▲엔터테인먼트(LBS활용 게임, 뮤직) 등 영역에서 새로운 가치를 제공할 것으로 기대하고 있다.

이와 함께 태블릿 PC와 7인치 내비게이션 단말기, 스마트 TV 등 더욱 다양한 기기로 T맵을 확장시키면서, 각 기기의 특성에 맞는 T맵을 차별화해 제공한다는 전략이다. 현재 T맵은 갤럭시탭에 기본 탑재돼 있으며, 내비게이션 2위 업체인 파인디지털 및 SK M&C의 7인치 내비게이션 기기에도 공급되는 등 단말기 확장성을 넓혀가고 있다.

메시지 발송과 연계한 다양한 서비스를 개발할 수 있도록 SMS/MMS의 API도 공개됐다. 기존에는 이동통신망을 통해서만 문자메시지를 전송할 수 있었던 것과 달리, 비통신형 기기에서도 와이파이나 유선인터넷을 통해 메시지를 발송할 수 있게 해 다양한 산업에서 새로운 시장을 창출하겠다는 전략이다.

예를 들어 냉장고에 보관한 식품의 유효기간이 임박할 경우, 사용자의 스마트폰에 보관 상태와 처리 방법을 문자로 전송해주는 서비스가 나올 수 있다는 것이다.

SKT는 스마트 TV와 냉장고, 세탁기, 카메라 등 비통신 기기에서 SK텔레콤의 메시징 인프라를 활용해 홈네트워크 상용화를 앞당길 수 있도록 다양한 사업자와 B2B 분야의 협력을 추진하고 있다고 밝혔다. 국내 PMP 업계 1위인 코원과 협력해 SMS/MMS 송수신이 가능한 PMP를 이달 중에 출시할 예정이다.

SKT는 지난 3일 서울대에 위치한 SKT 상생혁신센터에서 ‘오픈 API 설명회)를 개최하기도 했다. 앞으로 T스토어, 멜론, 모바일 페이먼트 등에 대해서도 API화 작업을 완료하는 대로 ‘T API 센터’를 통해 제공할 계획이며, 향후 3년간 1조원을 투입해 위치기반서비스(LBS), 상거래(Commerce), 메시징(Messaging), 콘텐츠 유통, 소셜네트워크서비스(SNS), 기업간 거래(B2B), 범용 플랫폼 등 7대 플랫폼 군을 육성한다는 방침이다.

홍성철 SKT 서비스부문장은 “이번 API 개방을 통해 SKT의 핵심 부가서비스가 다양한 서비스 플랫폼으로 진화할 수 있는 계기가 마련됐다”라며 “LBS와 SMS/MMS를 시작으로 콘텐트 유통과 SNS, 상거래 등 다양한 API를 추가로 공개해 구글맵, 아이튠즈와 같은 글로벌 플랫폼으로 발전시켜 나가겠다고”전했다.

‘T API 센터’가 이와 같은 역할을 하기 위해서는 외부 개발자들이 필요로 하는 API를 다양하게 구비하고 안정적으로 제공할 수 있느냐가 관건이 될 것이다. 또한, SDK와 레퍼런스, 개발 가이드 등을 얼마나 잘 만들어 제공하느냐도 중요하다.

지난 10월 SKT가 오픈 API 정책을 발표한 이후 많은 개발자들이 ‘기대감 반 회의감 반’이라는 반응을 보인 바 있다. 이번에 오픈한 ‘T API 센터’의 사이트를 들러본 개발자들의 소감이 궁금하다.

출처 : www.bloter.net


Trackback 0 Comment 0